From 9b71253be1f8ece4dcfbdc30c575ddf274420158 Mon Sep 17 00:00:00 2001 From: Johannes Anderwald Date: Wed, 8 Nov 2006 11:47:44 +0000 Subject: [PATCH] set most of trunk svn property eol-style:native svn path=/trunk/; revision=24701 --- reactos/base/applications/cacls/lang/De.rc | 158 +- reactos/base/applications/cacls/lang/Nl.rc | 150 +- reactos/base/applications/cacls/lang/Ru.rc | 150 +- reactos/base/applications/control/control.dsp | 274 +- reactos/base/applications/control/control.dsw | 58 +- reactos/base/applications/control/lang/Hu.rc | 56 +- reactos/base/applications/control/lang/Uk.rc | 68 +- reactos/base/applications/devmgmt/En.rc | 158 +- reactos/base/applications/devmgmt/about.c | 124 +- reactos/base/applications/devmgmt/devmgmt.c | 134 +- .../base/applications/devmgmt/devmgmt.rbuild | 58 +- reactos/base/applications/devmgmt/devmgmt.rc | 58 +- .../base/applications/devmgmt/enumdevices.c | 928 +- reactos/base/applications/devmgmt/mainwnd.c | 1436 +- .../base/applications/devmgmt/manifest.xml | 46 +- reactos/base/applications/devmgmt/misc.c | 520 +- reactos/base/applications/devmgmt/precomp.h | 232 +- reactos/base/applications/devmgmt/resource.h | 126 +- .../applications/games/solitaire/ReadMe.txt | 44 +- .../base/applications/games/solitaire/de.rc | 256 +- .../base/applications/games/solitaire/en.rc | 256 +- .../base/applications/games/solitaire/sol.rc | 10 +- .../base/applications/games/winemine/Nl.rc | 166 +- .../base/applications/getfirefox/lang/Fr.rc | 90 +- .../base/applications/getfirefox/lang/Hu.rc | 90 +- .../base/applications/getfirefox/lang/Nl.rc | 88 +- .../base/applications/getfirefox/lang/Sv.rc | 92 +- reactos/base/applications/ibrowser/De.rc | 296 +- reactos/base/applications/ibrowser/Fr.rc | 302 +- reactos/base/applications/ibrowser/Hu.rc | 162 +- .../base/applications/ibrowser/Makefile-MinGW | 136 +- .../applications/ibrowser/Makefile-precomp | 146 +- reactos/base/applications/ibrowser/Ro.rc | 244 +- reactos/base/applications/ibrowser/Sv.rc | 280 +- .../base/applications/ibrowser/ibrowser.dsp | 692 +- .../base/applications/ibrowser/ibrowser.dsw | 82 +- .../base/applications/ibrowser/ibrowser.rc | 26 +- .../applications/ibrowser/ibrowser_intres.rc | 220 +- .../applications/ibrowser/make_ibrowser.dsp | 294 +- reactos/base/applications/ibrowser/readme.txt | 18 +- reactos/base/applications/imagesoft/about.c | 108 +- .../base/applications/imagesoft/floatwindow.c | 1078 +- .../base/applications/imagesoft/imageprop.c | 522 +- .../base/applications/imagesoft/imagesoft.c | 206 +- .../base/applications/imagesoft/imagesoft.rc | 152 +- .../base/applications/imagesoft/imgedwnd.c | 1068 +- .../base/applications/imagesoft/lang/En.rc | 412 +- reactos/base/applications/imagesoft/mainwnd.c | 2886 +-- .../base/applications/imagesoft/manifest.xml | 48 +- reactos/base/applications/imagesoft/misc.c | 842 +- .../base/applications/imagesoft/opensave.c | 174 +- reactos/base/applications/imagesoft/precomp.h | 792 +- .../base/applications/imagesoft/resource.h | 556 +- .../base/applications/imagesoft/tooldock.c | 2280 +- reactos/base/applications/msconfig/lang/Hu.rc | 196 +- .../base/applications/network/ipconfig/En.rc | 130 +- .../applications/network/ipconfig/resource.h | 36 +- .../base/applications/network/net/net.rbuild | 32 +- reactos/base/applications/notepad/notepad.h | 28 +- reactos/base/applications/regedit/lang/Hu.rc | 814 +- reactos/base/applications/regedit/lang/Pl.rc | 808 +- reactos/base/applications/regedit/lang/Sv.rc | 792 +- reactos/base/applications/regedit/regedit.h | 60 +- .../base/applications/reporterror/lang/Hu.rc | 116 +- .../applications/reporterror/reporterror.rc | 34 +- reactos/base/applications/sc/print.c | 210 +- reactos/base/applications/sc/sc.rc | 20 +- .../screensavers/matrix/Permission.txt | 34 +- .../screensavers/matrix/ReadMe.txt | 64 +- .../applications/screensavers/matrix/config.c | 624 +- .../screensavers/matrix/globals.h | 126 +- .../applications/screensavers/matrix/matrix.c | 892 +- .../screensavers/matrix/matrix.dsp | 316 +- .../applications/screensavers/matrix/matrix.h | 140 +- .../screensavers/matrix/matrix.rbuild | 66 +- .../screensavers/matrix/matrix.rc | 334 +- .../screensavers/matrix/message.c | 500 +- .../screensavers/matrix/message.h | 64 +- .../screensavers/matrix/password.c | 138 +- .../screensavers/matrix/resource.h | 70 +- .../screensavers/matrix/screensave.c | 324 +- .../screensavers/matrix/settings.c | 330 +- .../screensavers/screensavers.rbuild | 18 +- .../base/applications/screenshot/screenshot.c | 808 +- .../base/applications/screenshot/screenshot.h | 30 +- .../applications/screenshot/screenshot.rbuild | 28 +- .../applications/screenshot/screenshot.rc | 20 +- reactos/base/applications/servman/De.rc | 242 +- reactos/base/applications/servman/En.rc | 560 +- reactos/base/applications/servman/about.c | 124 +- reactos/base/applications/servman/control.c | 314 +- reactos/base/applications/servman/create.c | 802 +- reactos/base/applications/servman/delete.c | 284 +- reactos/base/applications/servman/export.c | 250 +- reactos/base/applications/servman/mainwnd.c | 2134 +- reactos/base/applications/servman/misc.c | 518 +- reactos/base/applications/servman/precomp.h | 292 +- reactos/base/applications/servman/progress.c | 82 +- reactos/base/applications/servman/propsheet.c | 820 +- reactos/base/applications/servman/query.c | 1096 +- reactos/base/applications/servman/resource.h | 360 +- reactos/base/applications/servman/servman.c | 138 +- reactos/base/applications/servman/servman.rc | 72 +- reactos/base/applications/servman/start.c | 450 +- reactos/base/applications/servman/stop.c | 156 +- reactos/base/applications/sm/win32err.c | 140 +- reactos/base/applications/sndvol32/Hu.rc | 90 +- reactos/base/applications/sndvol32/Nl.rc | 86 +- reactos/base/applications/taskmgr/Hu.rc | 1372 +- reactos/base/applications/taskmgr/Nl.rc | 1344 +- reactos/base/applications/taskmgr/Sv.rc | 1380 +- reactos/base/applications/taskmgr/Uk.rc | 1372 +- .../testsets/rpcrt4/context_handles/client.c | 914 +- .../testsets/rpcrt4/context_handles/ctx.acf | 14 +- .../testsets/rpcrt4/context_handles/ctx.h | 160 +- .../testsets/rpcrt4/context_handles/ctx.idl | 36 +- .../testsets/rpcrt4/context_handles/ctx_c.c | 670 +- .../testsets/rpcrt4/context_handles/ctx_s.c | 698 +- .../testsets/rpcrt4/context_handles/server.c | 156 +- .../testsets/smss/movefile/movefile.cpp | 470 +- .../testsets/smss/movefile/movefile.rbuild | 22 +- .../testsets/smss/movefile/movefile.rc | 18 +- .../applications/testsets/smss/smss.rbuild | 14 +- .../applications/testsets/testsets.rbuild | 20 +- .../testsets/user32/drawcaption/capicon.c | 290 +- .../testsets/user32/drawcaption/capicon.rc | 26 +- .../testsets/user32/drawcaption/drawcap.c | 578 +- .../testsets/user32/drawcaption/drawcap.rc | 22 +- .../user32/drawcaption/drawcaption.rbuild | 58 +- .../testsets/user32/drawcaption/resource.h | 20 +- .../testsets/user32/sysicon/sysicon.c | 326 +- .../testsets/user32/sysicon/sysicon.rbuild | 26 +- .../testsets/user32/user32.rbuild | 20 +- .../base/applications/tsclient/MissTosca.sln | 76 +- .../applications/tsclient/mstsc/mstsc.cpp | 14 +- .../applications/tsclient/mstsc/mstsc.vcproj | 446 +- .../applications/tsclient/mstsc/stdafx.cpp | 16 +- .../base/applications/tsclient/mstsc/stdafx.h | 30 +- .../applications/tsclient/mstscax/mstscax.cpp | 14 +- .../tsclient/mstscax/mstscax.vcproj | 446 +- .../applications/tsclient/mstscax/stdafx.cpp | 16 +- .../applications/tsclient/mstscax/stdafx.h | 30 +- .../porting-tools/mstscax/mstscax.cpp | 10022 ++++----- .../porting-tools/mstscax/mstscax.def | 28 +- .../porting-tools/mstscax/mstscax.sln | 40 +- .../porting-tools/mstscax/mstscax.vcproj | 458 +- .../tsclient/porting-tools/mstscax/stdafx.cpp | 2 +- .../tsclient/porting-tools/mstscax/stdafx.h | 66 +- .../rdesktop-core-tester/activex.cpp | 12190 +++++------ .../rdesktop-core-tester/mstsclib.idl | 1122 +- .../rdesktop-core-tester/mstsclib.rc | 6 +- .../rdesktop-core-tester/mstsclib_h.h | 17892 ++++++++-------- .../rdesktop-core-tester/mstsclib_i.c | 290 +- .../rdesktop-core-tester/mstsclib_redist.idl | 6 +- .../rdesktop-core-tester/mstsclib_redist.rc | 6 +- .../rdesktop-core-tester/mstsclib_redist_h.h | 17892 ++++++++-------- .../rdesktop-core-tester/mstsclib_redist_i.c | 290 +- .../rdesktop-core-tester.cpp | 1306 +- .../rdesktop-core-tester.vcproj | 754 +- .../rdesktop-core-tester/stdafx.cpp | 6 +- .../rdesktop-core-tester/stdafx.h | 64 +- .../rdesktop-core-tester/typelib.rh | 42 +- .../applications/tsclient/rdesktop/COPYING | 692 +- .../tsclient/rdesktop/Makefile.in | 316 +- .../applications/tsclient/rdesktop/README | 64 +- .../applications/tsclient/rdesktop/bitmap.c | 2224 +- .../applications/tsclient/rdesktop/bootstrap | 6 +- .../applications/tsclient/rdesktop/cache.c | 828 +- .../applications/tsclient/rdesktop/channels.c | 354 +- .../applications/tsclient/rdesktop/cliprdr.c | 364 +- .../tsclient/rdesktop/config.guess | 2822 +-- .../applications/tsclient/rdesktop/config.sub | 3000 +-- .../tsclient/rdesktop/configure.ac | 1454 +- .../tsclient/rdesktop/constants.h | 860 +- .../applications/tsclient/rdesktop/disk.c | 2492 +-- .../applications/tsclient/rdesktop/disk.h | 278 +- .../tsclient/rdesktop/doc/AUTHORS | 28 +- .../tsclient/rdesktop/doc/ChangeLog | 172 +- .../tsclient/rdesktop/doc/HACKING | 56 +- .../applications/tsclient/rdesktop/doc/TODO | 178 +- .../tsclient/rdesktop/doc/ipv6.txt | 58 +- .../tsclient/rdesktop/doc/keymap-names.txt | 248 +- .../tsclient/rdesktop/doc/keymapping.txt | 486 +- .../tsclient/rdesktop/doc/licensing.txt | 112 +- .../tsclient/rdesktop/doc/lspci-channel.txt | 78 +- .../tsclient/rdesktop/doc/patches.txt | 680 +- .../tsclient/rdesktop/doc/rdesktop.1 | 434 +- .../tsclient/rdesktop/doc/redirection.txt | 148 +- .../rdesktop/doc/seamlessrdp-channel.txt | 568 +- .../applications/tsclient/rdesktop/ewmhints.c | 912 +- .../tsclient/rdesktop/indent-all.sh | 6 +- .../applications/tsclient/rdesktop/install-sh | 502 +- .../base/applications/tsclient/rdesktop/iso.c | 480 +- .../tsclient/rdesktop/keymaps/convert-map | 126 +- .../applications/tsclient/rdesktop/licence.c | 656 +- .../applications/tsclient/rdesktop/lspci.c | 354 +- .../base/applications/tsclient/rdesktop/mcs.c | 942 +- .../applications/tsclient/rdesktop/mppc.c | 754 +- .../applications/tsclient/rdesktop/orders.c | 2780 +-- .../applications/tsclient/rdesktop/orders.h | 746 +- .../applications/tsclient/rdesktop/parse.h | 190 +- .../applications/tsclient/rdesktop/printer.c | 324 +- .../tsclient/rdesktop/printercache.c | 598 +- .../applications/tsclient/rdesktop/proto.h | 646 +- .../applications/tsclient/rdesktop/proto.head | 54 +- .../applications/tsclient/rdesktop/proto.tail | 16 +- .../applications/tsclient/rdesktop/pstcache.c | 392 +- .../tsclient/rdesktop/rdesktop-core.vcproj | 502 +- .../applications/tsclient/rdesktop/rdesktop.c | 3112 +-- .../applications/tsclient/rdesktop/rdesktop.h | 626 +- .../tsclient/rdesktop/rdesktop.spec | 80 +- .../base/applications/tsclient/rdesktop/rdp.c | 3020 +-- .../applications/tsclient/rdesktop/rdp5.c | 256 +- .../applications/tsclient/rdesktop/rdpdr.c | 2342 +- .../applications/tsclient/rdesktop/rdpsnd.c | 510 +- .../tsclient/rdesktop/rdpsnd_libao.c | 546 +- .../tsclient/rdesktop/rdpsnd_oss.c | 638 +- .../tsclient/rdesktop/rdpsnd_sgi.c | 680 +- .../tsclient/rdesktop/rdpsnd_sun.c | 626 +- .../tsclient/rdesktop/scancodes.h | 752 +- .../applications/tsclient/rdesktop/seamless.c | 898 +- .../applications/tsclient/rdesktop/seamless.h | 38 +- .../applications/tsclient/rdesktop/secure.c | 1948 +- .../applications/tsclient/rdesktop/serial.c | 2148 +- .../base/applications/tsclient/rdesktop/tcp.c | 736 +- .../applications/tsclient/rdesktop/types.h | 566 +- .../tsclient/rdesktop/uiports/makefile_nanox | 50 +- .../tsclient/rdesktop/uiports/makefile_qt | 154 +- .../tsclient/rdesktop/uiports/makefile_qte | 48 +- .../tsclient/rdesktop/uiports/makefile_svga | 72 +- .../tsclient/rdesktop/uiports/makefile_xxx | 36 +- .../tsclient/rdesktop/uiports/nanoxreadme.txt | 18 +- .../tsclient/rdesktop/uiports/nanoxwin.c | 3094 +-- .../tsclient/rdesktop/uiports/qtereadme.txt | 24 +- .../tsclient/rdesktop/uiports/qtewin.cpp | 5114 ++--- .../tsclient/rdesktop/uiports/qtewin.h | 214 +- .../tsclient/rdesktop/uiports/qtreadme.txt | 24 +- .../tsclient/rdesktop/uiports/qtwin.cpp | 3652 ++-- .../tsclient/rdesktop/uiports/qtwin.h | 64 +- .../tsclient/rdesktop/uiports/readme.txt | 34 +- .../tsclient/rdesktop/uiports/svgareadme.txt | 78 +- .../tsclient/rdesktop/uiports/svgawin.c | 3894 ++-- .../tsclient/rdesktop/uiports/xxxwin.c | 730 +- .../applications/tsclient/rdesktop/vnc/vnc.c | 2752 +-- .../applications/tsclient/rdesktop/vnc/vnc.h | 136 +- .../tsclient/rdesktop/vnc/x11stubs.c | 2810 +-- .../tsclient/rdesktop/vnc/x11stubs.h | 66 +- .../applications/tsclient/rdesktop/xclip.c | 2218 +- .../applications/tsclient/rdesktop/xkeymap.c | 2034 +- .../applications/tsclient/rdesktop/xproto.h | 22 +- .../applications/tsclient/rdesktop/xwin.c | 7136 +++--- reactos/base/applications/utils/ps/ps.rbuild | 14 +- .../applications/utils/rosperf/gradient.c | 308 +- .../applications/utils/sdkparse/sdkparse.dsp | 338 +- .../applications/utils/sdkparse/sdkparse.dsw | 58 +- reactos/base/applications/utils/utils.rbuild | 70 +- .../applications/winefile/make_winefile.dsp | 186 +- .../winefile/make_winefile.vcproj | 154 +- .../base/applications/winefile/winefile.dsp | 538 +- .../base/applications/winefile/winefile.dsw | 82 +- .../base/applications/winefile/winefile.sln | 68 +- .../applications/winefile/winefile.vcproj | 2440 +-- reactos/base/applications/winver/winver.c | 24 +- reactos/base/applications/wordpad/about.c | 108 +- reactos/base/applications/wordpad/dialogs.c | 268 +- reactos/base/applications/wordpad/editwnd.c | 404 +- reactos/base/applications/wordpad/lang/En.rc | 334 +- reactos/base/applications/wordpad/mainwnd.c | 1326 +- .../base/applications/wordpad/manifest.xml | 48 +- reactos/base/applications/wordpad/misc.c | 408 +- reactos/base/applications/wordpad/opensave.c | 174 +- reactos/base/applications/wordpad/precomp.h | 320 +- reactos/base/applications/wordpad/resource.h | 204 +- reactos/base/applications/wordpad/wordpad.c | 168 +- .../base/applications/wordpad/wordpad.rbuild | 54 +- reactos/base/applications/wordpad/wordpad.rc | 52 +- reactos/base/services/tcpsvcs/discard.c | 132 +- reactos/base/services/tcpsvcs/quotes | 104 +- reactos/base/services/umpnpmgr/umpnpmgr.rc | 8 +- reactos/base/setup/reactos/Cz.rc | 24 +- reactos/base/setup/reactos/Fr.rc | 26 +- reactos/base/setup/reactos/Hu.rc | 26 +- reactos/base/setup/reactos/Nl.rc | 24 +- reactos/base/setup/reactos/Sv.rc | 60 +- reactos/base/setup/usetup/inffile.c | 394 +- reactos/base/setup/usetup/inffile.h | 270 +- reactos/base/setup/vmwinst/Hu.rc | 264 +- reactos/base/setup/welcome/Fr.rc | 162 +- reactos/base/setup/welcome/Hu.rc | 128 +- reactos/base/setup/welcome/It.rc | 124 +- reactos/base/setup/welcome/Uk.rc | 160 +- reactos/base/shell/cmd/De.rc | 1292 +- reactos/base/shell/cmd/Hu.rc | 1246 +- .../base/shell/explorer/Make-rosshell-MinGW | 186 +- reactos/base/shell/explorer/Make-rosshell.mak | 136 +- reactos/base/shell/explorer/explorer-cn.rc | 796 +- reactos/base/shell/explorer/explorer.dsp | 1752 +- reactos/base/shell/explorer/explorer.dsw | 112 +- .../base/shell/explorer/explorer.exe.manifest | 44 +- reactos/base/shell/explorer/explorer.sln | 158 +- reactos/base/shell/explorer/explorer.vcproj | 7584 +++---- reactos/base/shell/explorer/make_explorer.dsp | 410 +- .../base/shell/explorer/make_explorer.vcproj | 372 +- reactos/base/shell/explorer/make_rosshell.dsp | 302 +- .../shell/explorer/notifyhook/notifyhook.dsp | 342 +- .../explorer/notifyhook/notifyhook.vcproj | 474 +- reactos/base/shell/explorer/rosshell.dsp | 1216 +- reactos/base/shell/explorer/rosshell.dsw | 112 +- .../shell/explorer/utility/shellclasses.dsp | 292 +- .../shell/explorer/utility/shellclasses.dsw | 58 +- reactos/base/shell/explorer/wexplorer.dsw | 550 +- reactos/base/system/expand/Hu.rc | 34 +- reactos/base/system/expand/Sv.rc | 30 +- reactos/base/system/regsvr32/Hu.rc | 66 +- reactos/base/system/rundll32/Hu.rc | 26 +- reactos/base/system/userinit/lang/En.rc | 24 +- reactos/base/system/userinit/lang/Hu.rc | 26 +- reactos/base/system/userinit/lang/Sv.rc | 24 +- reactos/base/system/winlogon/Hu.rc | 98 +- reactos/base/system/winlogon/Sv.rc | 94 +- reactos/base/system/winlogon/screensaver.c | 656 +- .../bootcdregtest/bootcdregtest.rbuild | 4 +- .../livecdregtest/livecdregtest.rbuild | 4 +- reactos/boot/freeldr/bootsect/isobtrt.asm | 2046 +- reactos/boot/freeldr/fdebug/De.rc | 378 +- reactos/boot/freeldr/fdebug/Hu.rc | 378 +- reactos/boot/freeldr/fdebug/No.rc | 378 +- reactos/boot/freeldr/fdebug/Pl.rc | 382 +- reactos/boot/freeldr/fdebug/fdebug.rbuild | 36 +- reactos/boot/freeldr/freeldr/include/ui/gui.h | 112 +- reactos/boot/freeldr/freeldr/include/ui/tui.h | 300 +- reactos/boot/freeldr/freeldr/include/winldr.h | 164 +- .../boot/freeldr/freeldr/windows/peloader.c | 600 +- reactos/dll/3rdparty/freetype/README.CVS | 50 +- reactos/dll/3rdparty/freetype/autogen.sh | 84 +- .../3rdparty/freetype/builds/amiga/makefile | 530 +- .../freetype/builds/amiga/makefile.os4 | 540 +- .../builds/win32/visualc/freetype.dsp | 698 +- .../builds/win32/visualc/freetype.dsw | 58 +- .../builds/win32/visualc/freetype.sln | 66 +- .../builds/win32/visualc/freetype.vcproj | 3348 +-- .../3rdparty/freetype/src/autofit/module.mk | 44 +- .../3rdparty/freetype/src/autofit/rules.mk | 150 +- .../dll/3rdparty/freetype/src/otvalid/Jamfile | 58 +- .../3rdparty/freetype/src/otvalid/module.mk | 44 +- .../3rdparty/freetype/src/otvalid/rules.mk | 154 +- reactos/dll/cpl/access/De.rc | 220 +- reactos/dll/cpl/access/Fr.rc | 220 +- reactos/dll/cpl/access/Hu.rc | 220 +- reactos/dll/cpl/access/Pl.rc | 220 +- reactos/dll/cpl/appwiz/appwiz.dsp | 248 +- reactos/dll/cpl/appwiz/appwiz.dsw | 58 +- reactos/dll/cpl/desk/It.rc | 232 +- reactos/dll/cpl/hdwwiz/Hu.rc | 16 +- reactos/dll/cpl/hdwwiz/Uk.rc | 30 +- reactos/dll/cpl/intl/hu.rc | 162 +- reactos/dll/cpl/intl/uk.rc | 178 +- reactos/dll/cpl/intl_new/En.rc | 96 +- reactos/dll/cpl/liccpa/De.rc | 58 +- reactos/dll/cpl/liccpa/liccpa.def | 12 +- reactos/dll/cpl/main/Fr.rc | 326 +- reactos/dll/cpl/main/Hu.rc | 294 +- reactos/dll/cpl/mmsys/Fr.rc | 30 +- reactos/dll/cpl/mmsys/Uk.rc | 48 +- reactos/dll/cpl/ncpa/ncpa.dsp | 272 +- reactos/dll/cpl/ncpa/ncpa.dsw | 58 +- reactos/dll/cpl/sysdm/custclicklink.c | 418 +- reactos/dll/cpl/sysdm/hardprof.c | 176 +- reactos/dll/cpl/sysdm/licence.c | 162 +- reactos/dll/cpl/sysdm/precomp.h | 132 +- reactos/dll/cpl/sysdm/startrec.c | 240 +- reactos/dll/cpl/timedate/Uk.rc | 152 +- reactos/dll/directx/ddraw/cleanup.c | 102 +- .../ddraw/soft/surface_callbacks_hel.c | 202 +- .../directx/dsound/dxroslayer/dxros_layer.h | 124 +- .../dxroslayer/dxrosdrv_querydsounddesc.c | 326 +- .../dxroslayer/dxrosdrv_querydsoundiface.c | 144 +- .../directx/dsound/dxroslayer/dxroslayer.c | 230 +- .../dsound/dxroslayer/getguidfromstring.c | 352 +- reactos/dll/directx/dsound/regsvr.c | 1168 +- reactos/dll/keyboard/kbdheb/kbdheb.def | 14 +- reactos/dll/keyboard/kbdheb/kbdheb.rc | 12 +- reactos/dll/keyboard/kbdhu/kbdhu.c | 714 +- reactos/dll/keyboard/kbdhu/kbdhu.def | 16 +- reactos/dll/keyboard/kbdhu/kbdhu.rc | 10 +- reactos/dll/keyboard/kbdpo/kbdpo.def | 6 +- reactos/dll/keyboard/kbdpo/kbdpo.rc | 10 +- reactos/dll/keyboard/kbdru/kbdru.def | 16 +- reactos/dll/lib.mak | 10 +- reactos/dll/ntdll/dbg/dbgui.c | 862 +- reactos/dll/win32/cfgmgr32/cfgmgr32.def | 428 +- reactos/dll/win32/devmgr/Hu.rc | 282 +- reactos/dll/win32/dnsapi/dnsapi/precomp.h | 44 +- reactos/dll/win32/gdi32/include/gdi32p.h | 218 +- reactos/dll/win32/icmp/Makefile.in | 28 +- reactos/dll/win32/icmp/icmp.dsp | 192 +- reactos/dll/win32/imagehlp/precomp.h | 106 +- reactos/dll/win32/kernel32/include/baseheap.h | 248 +- .../dll/win32/kernel32/thread/i386/thread.S | 64 +- reactos/dll/win32/mpr/mpr_Ru.rc | 92 +- reactos/dll/win32/mpr/mpr_Sv.rc | 92 +- reactos/dll/win32/mpr/mpr_Uk.rc | 92 +- reactos/dll/win32/msacm/msacm_De.rc | 112 +- reactos/dll/win32/msacm/msacm_Hu.rc | 114 +- reactos/dll/win32/msgina/En.rc | 112 +- reactos/dll/win32/msgina/gui.c | 822 +- reactos/dll/win32/msgina/tui.c | 474 +- reactos/dll/win32/newdev/newdev.spec | 22 +- reactos/dll/win32/oleaut32/Makefile.in | 92 +- reactos/dll/win32/oleaut32/oleaut32_Tr.rc | 62 +- reactos/dll/win32/opengl32/opengl32.dsp | 362 +- reactos/dll/win32/opengl32/opengl32.dsw | 58 +- reactos/dll/win32/rpcrt4/ndr_contexth.c | 742 +- reactos/dll/win32/rpcrt4/ndr_contexth.h | 120 +- reactos/dll/win32/samsrv/samsrv.c | 104 +- reactos/dll/win32/samsrv/samsrv.def | 148 +- reactos/dll/win32/secur32/precomp.h | 42 +- .../setupapi/res/icons/Icon_Licence/Tango.txt | 252 +- .../dll/win32/setupapi/res/icons/icons_res.rc | 82 +- reactos/dll/win32/setupapi/res/lang/Bg.rc | 68 +- reactos/dll/win32/setupapi/res/lang/Cs.rc | 76 +- reactos/dll/win32/setupapi/res/lang/Da.rc | 70 +- reactos/dll/win32/setupapi/res/lang/De.rc | 80 +- reactos/dll/win32/setupapi/res/lang/En.rc | 80 +- reactos/dll/win32/setupapi/res/lang/Eo.rc | 68 +- reactos/dll/win32/setupapi/res/lang/Es.rc | 82 +- reactos/dll/win32/setupapi/res/lang/Fi.rc | 68 +- reactos/dll/win32/setupapi/res/lang/Fr.rc | 70 +- reactos/dll/win32/setupapi/res/lang/Hu.rc | 84 +- reactos/dll/win32/setupapi/res/lang/It.rc | 70 +- reactos/dll/win32/setupapi/res/lang/Ja.rc | 68 +- reactos/dll/win32/setupapi/res/lang/Ko.rc | 68 +- reactos/dll/win32/setupapi/res/lang/Nl.rc | 68 +- reactos/dll/win32/setupapi/res/lang/No.rc | 68 +- reactos/dll/win32/setupapi/res/lang/Pl.rc | 68 +- reactos/dll/win32/setupapi/res/lang/Pt.rc | 100 +- reactos/dll/win32/setupapi/res/lang/Ru.rc | 68 +- reactos/dll/win32/setupapi/res/lang/Sv.rc | 68 +- reactos/dll/win32/setupapi/res/lang/Tr.rc | 68 +- reactos/dll/win32/shdocvw/Hu.rc | 74 +- reactos/dll/win32/shell32/avi_res.rc | 18 +- reactos/dll/win32/shell32/bitmap_res.rc | 22 +- reactos/dll/win32/shell32/icon_res.rc | 250 +- .../win32/shell32/res/avis/Licence/Tango.txt | 20 +- .../shell32/res/icons/Icon_Licence/Tango.txt | 252 +- reactos/dll/win32/shlwapi/Makefile.in | 70 +- reactos/dll/win32/shlwapi/shlwapi_Hu.rc | 74 +- reactos/dll/win32/syssetup/syssetup_Hu.rc | 460 +- reactos/dll/win32/user32/Hu.rc | 160 +- reactos/dll/win32/user32/windows/spy.c | 5328 ++--- reactos/dll/win32/userenv/Hu.rc | 96 +- reactos/dll/win32/vdmdbg/vdmdbg.c | 428 +- reactos/dll/win32/vdmdbg/vdmdbg.def | 112 +- reactos/dll/win32/vdmdbg/vdmdbg.h | 146 +- reactos/dll/win32/wininet/inet_ntop.c | 378 +- reactos/dll/win32/wininet/wininet_Hu.rc | 88 +- reactos/dll/win32/wininet/wininet_Tr.rc | 92 +- .../dll/win32/winmm/midimap/midimap.drv.spec | 4 +- reactos/dll/win32/winmm/midimap/midimap.spec | 4 +- .../dll/win32/winmm/wavemap/msacm.drv.spec | 6 +- reactos/dll/win32/winmm/wavemap/msacm.spec | 6 +- reactos/dll/win32/winmm/winmm_Hu.rc | 254 +- reactos/dll/win32/winsta/winsta.def | 200 +- reactos/drivers/base/bootvid/bootvid.def | 28 +- reactos/drivers/base/bootvid/vid.c | 238 +- reactos/drivers/base/bootvid/vid_vga.c | 1024 +- reactos/drivers/base/bootvid/vid_vgatext.c | 500 +- reactos/drivers/base/bootvid/vid_xbox.c | 202 +- reactos/drivers/test/kmtest/ntos_ex.c | 360 +- reactos/drivers/test/kmtest/ntos_ob.c | 1048 +- .../usb/miniport/common/usbcommon_types.h | 124 +- reactos/drivers/usb/miniport/usbohci/ohci.c | 152 +- reactos/drivers/usb/miniport/usbuhci/uhci.h | 18 +- .../drivers/usb/nt4compat/usbdriver/devmgr.h | 548 +- .../drivers/usb/nt4compat/usbdriver/events.h | 296 +- .../drivers/usb/nt4compat/usbdriver/irplist.h | 116 +- .../drivers/usb/nt4compat/usbdriver/mouse.c | 1256 +- .../drivers/usb/nt4compat/usbdriver/mouse.h | 46 +- reactos/drivers/usb/usbd/usbd.def | 26 +- reactos/drivers/usb/usbd/usbd.rc | 10 +- .../drivers/usb/usbport/core_drivers/usbkey.c | 472 +- reactos/hal/halx86/generic/irq.S | 1262 +- reactos/hal/halx86/generic/systimer.S | 96 +- reactos/include/ddk/ddkernel.h | 194 +- reactos/include/psdk/amvideo.h | 520 +- reactos/include/psdk/in6addr.h | 38 +- reactos/include/psdk/inaddr.h | 42 +- reactos/include/psdk/intrin.h | 2226 +- reactos/include/psdk/ndrtypes.h | 364 +- reactos/include/psdk/ntgdi.h | 7246 +++---- reactos/include/psdk/sdkddkver.h | 202 +- reactos/include/reactos/arc/setupblk.h | 304 +- reactos/include/reactos/chew/chew.h | 80 +- reactos/include/reactos/idl/lsa.acf | 10 +- reactos/include/reactos/idl/pnp.idl | 476 +- reactos/include/reactos/idl/svcctl.idl | 798 +- reactos/include/reactos/rosldr.h | 102 +- reactos/include/reactos/win32k/ntgdibad.h | 2462 +-- reactos/include/reactos/win32k/ntusrtyp.h | 340 +- reactos/include/reactos/wine/guiddef.h | 184 +- reactos/lib/3rdparty/bzip2/dlltest.dsp | 186 +- reactos/lib/3rdparty/bzip2/libbz2.dsp | 260 +- .../lib/3rdparty/expat/examples/elements.dsp | 206 +- .../3rdparty/expat/examples/elements.vcproj | 348 +- .../lib/3rdparty/expat/examples/outline.dsp | 206 +- .../3rdparty/expat/examples/outline.vcproj | 336 +- reactos/lib/3rdparty/expat/expat.dsw | 220 +- .../lib/3rdparty/expat/gennmtab/gennmtab.dsp | 202 +- reactos/lib/3rdparty/expat/lib/expat.dsp | 352 +- .../lib/3rdparty/expat/lib/expat_static.dsp | 308 +- reactos/lib/3rdparty/expat/lib/expatw.dsp | 354 +- .../lib/3rdparty/expat/lib/expatw_static.dsp | 308 +- .../expat/tests/benchmark/benchmark.dsp | 176 +- .../expat/tests/benchmark/benchmark.dsw | 88 +- reactos/lib/3rdparty/expat/xmlwf/xmlwf.dsp | 278 +- reactos/lib/3rdparty/expat/xmlwf/xmlwf.vcproj | 548 +- .../3rdparty/zlib/contrib/asm386/zlibvc.dsp | 1302 +- .../3rdparty/zlib/contrib/asm386/zlibvc.dsw | 82 +- .../3rdparty/zlib/contrib/minizip/zlibvc.dsp | 1302 +- .../3rdparty/zlib/contrib/minizip/zlibvc.dsw | 82 +- reactos/lib/cmlib/cmdata.h | 308 +- reactos/lib/cmlib/cminit.c | 164 +- reactos/lib/cmlib/cmlib.h | 474 +- reactos/lib/cmlib/cmlib.mak | 144 +- reactos/lib/cmlib/cmlib.rbuild | 28 +- reactos/lib/cmlib/hivebin.c | 196 +- reactos/lib/cmlib/hivecell.c | 858 +- reactos/lib/cmlib/hivedata.h | 278 +- reactos/lib/cmlib/hiveinit.c | 782 +- reactos/lib/cmlib/hivesum.c | 64 +- reactos/lib/cmlib/hivewrt.c | 554 +- reactos/lib/crt/math/i386/atan_asm.s | 44 +- reactos/lib/crt/math/i386/log10_asm.s | 50 +- reactos/lib/crt/math/pow_asm.c | 60 +- reactos/lib/crt/math/s_modf.c | 388 +- reactos/lib/intrlck/i386/compareexchange.c | 74 +- reactos/lib/intrlck/i386/decrement.c | 76 +- reactos/lib/intrlck/i386/exchange.c | 68 +- reactos/lib/intrlck/i386/exchangeadd.c | 80 +- reactos/lib/intrlck/i386/increment.c | 76 +- reactos/lib/recyclebin/openclose.c | 630 +- reactos/lib/recyclebin/readme.txt | 28 +- reactos/lib/recyclebin/recyclebin.c | 678 +- reactos/lib/recyclebin/recyclebin.h | 218 +- reactos/lib/recyclebin/recyclebin.rbuild | 14 +- reactos/lib/recyclebin/recyclebin_private.h | 232 +- reactos/lib/recyclebin/recyclebin_v5.c | 1094 +- reactos/lib/recyclebin/recyclebin_v5.h | 152 +- reactos/lib/recyclebin/refcount.c | 84 +- reactos/lib/rtl/debug.c | 658 +- reactos/lib/rtl/i386/rtlmem.s | 626 +- reactos/lib/rtl/i386/rtlswap.S | 106 +- reactos/lib/rtl/rtlp.h | 264 +- reactos/lib/rtl/sprintf.c | 1500 +- reactos/lib/rtl/swprintf.c | 1498 +- reactos/lib/rtl/vectoreh.c | 294 +- reactos/lib/smlib/precomp.h | 36 +- reactos/lib/string/abs.c | 20 +- reactos/lib/string/atoi.c | 22 +- reactos/lib/string/atoi64.c | 72 +- reactos/lib/string/atol.c | 22 +- reactos/lib/string/bsearch.c | 54 +- reactos/lib/string/itoa.c | 322 +- reactos/lib/string/itow.c | 326 +- reactos/lib/string/labs.c | 18 +- reactos/lib/string/lfind.c | 40 +- reactos/lib/string/mbstowcs.c | 120 +- reactos/lib/string/rand.c | 58 +- reactos/lib/string/splitp.c | 100 +- reactos/lib/string/strrev.c | 48 +- reactos/lib/string/strset.c | 66 +- reactos/lib/string/strtol.c | 180 +- reactos/lib/string/strtoul.c | 146 +- reactos/lib/string/wcsnset.c | 34 +- reactos/lib/string/wcsrev.c | 44 +- reactos/lib/string/wcstol.c | 180 +- reactos/lib/string/wcstombs.c | 118 +- reactos/lib/string/wcstoul.c | 148 +- reactos/lib/string/wtoi.c | 24 +- reactos/lib/string/wtoi64.c | 74 +- reactos/lib/string/wtol.c | 66 +- reactos/media/doc/win32k_refs.txt | 158 +- reactos/media/doc/winsta and desktops.txt | 312 +- reactos/media/drivers/etc/KDBinit | 28 +- reactos/media/inf/acpi.inf | 92 +- reactos/media/inf/display.inf | 50 +- reactos/media/inf/fdc.inf | 128 +- reactos/media/inf/hdc.inf | 154 +- reactos/media/inf/keyboard.inf | 138 +- reactos/media/inf/machine.inf | 286 +- reactos/media/inf/msmouse.inf | 292 +- reactos/media/inf/netamd.inf | 122 +- reactos/media/inf/netisa.inf | 106 +- reactos/media/inf/netrtpnt.inf | 110 +- reactos/media/inf/nettcpip.inf | 122 +- reactos/media/inf/ports.inf | 166 +- reactos/media/inf/usb.inf | 88 +- reactos/media/inf/usbport.inf | 258 +- reactos/media/inf/usbstor.inf | 90 +- reactos/media/inf/xboxdisp.inf | 106 +- reactos/media/wallpapers/wallpapers.txt | 138 +- reactos/ntoskrnl/KrnlFun.c | 84 +- reactos/ntoskrnl/deprecated/irq.c | 1558 +- reactos/ntoskrnl/deprecated/irqhand.S | 198 +- reactos/ntoskrnl/ex/atom.c | 988 +- reactos/ntoskrnl/ex/i386/ioport.S | 440 +- reactos/ntoskrnl/ex/keyedevt.c | 124 +- reactos/ntoskrnl/include/internal/hal.h | 216 +- .../ntoskrnl/include/internal/i386/intrin_i.h | 698 +- reactos/ntoskrnl/include/internal/io_x.h | 206 +- reactos/ntoskrnl/include/internal/ke_x.h | 2552 +-- reactos/ntoskrnl/include/internal/ob_x.h | 294 +- reactos/ntoskrnl/include/internal/ps_i.h | 1214 +- reactos/ntoskrnl/include/internal/ps_x.h | 378 +- reactos/ntoskrnl/include/internal/vdm.h | 388 +- reactos/ntoskrnl/io/iomgr/drvrlist.c | 986 +- reactos/ntoskrnl/io/iomgr/iofunc.c | 6174 +++--- reactos/ntoskrnl/ke/except.c | 338 +- reactos/ntoskrnl/ke/i386/clock.S | 496 +- reactos/ntoskrnl/ke/i386/cpu.c | 1776 +- reactos/ntoskrnl/ke/i386/mtrr.c | 66 +- reactos/ntoskrnl/ke/i386/patpge.c | 126 +- reactos/ntoskrnl/ke/i386/usercall.c | 460 +- reactos/ntoskrnl/ke/i386/v86vdm.c | 246 +- reactos/ntoskrnl/ke/krnlinit.c | 582 +- reactos/ntoskrnl/ke/thrdobj.c | 2862 +-- reactos/ntoskrnl/ke/thrdschd.c | 922 +- reactos/ntoskrnl/lpc/ntlpc/close.c | 790 +- reactos/ntoskrnl/lpc/ntlpc/complete.c | 752 +- reactos/ntoskrnl/lpc/ntlpc/connect.c | 1136 +- reactos/ntoskrnl/lpc/ntlpc/create.c | 390 +- reactos/ntoskrnl/lpc/ntlpc/listen.c | 106 +- reactos/ntoskrnl/lpc/ntlpc/lpc.h | 260 +- reactos/ntoskrnl/lpc/ntlpc/lpc_x.h | 244 +- reactos/ntoskrnl/lpc/ntlpc/port.c | 216 +- reactos/ntoskrnl/lpc/ntlpc/reply.c | 982 +- reactos/ntoskrnl/lpc/ntlpc/send.c | 852 +- reactos/ntoskrnl/tests/symtest.c | 512 +- reactos/ntoskrnl/vdm/vdmexec.c | 646 +- reactos/ntoskrnl/vdm/vdmmain.c | 262 +- reactos/proxy.mak | 42 +- .../regtests/winetests/cabinet/cabinet.rbuild | 18 +- reactos/regtests/winetests/cabinet/testlist.c | 26 +- reactos/regtests/winetests/msi/msi.rbuild | 36 +- reactos/regtests/winetests/msi/testlist.c | 50 +- reactos/regtests/winetests/msvcrt/dir.c | 182 +- .../regtests/winetests/msvcrt/msvcrt_test.dsp | 214 +- reactos/subsystems/ntvdm/Hu.rc | 30 +- .../subsystems/win32/win32k/include/bitmaps.h | 100 +- .../subsystems/win32/win32k/include/brush.h | 158 +- .../subsystems/win32/win32k/include/coord.h | 60 +- reactos/subsystems/win32/win32k/include/dc.h | 406 +- .../subsystems/win32/win32k/include/driver.h | 376 +- .../win32/win32k/include/gdifloat.h | 206 +- .../subsystems/win32/win32k/include/gdiobj.h | 166 +- .../subsystems/win32/win32k/include/misc.h | 24 +- .../subsystems/win32/win32k/include/ntuser.h | 120 +- reactos/subsystems/win32/win32k/include/pen.h | 32 +- .../subsystems/win32/win32k/include/region.h | 42 +- .../win32/win32k/include/userfuncs.h | 408 +- .../win32/win32k/misc/i386/atan2_asm.s | 104 +- .../win32/win32k/misc/i386/ceil_asm.s | 116 +- .../win32/win32k/misc/i386/cos_asm.s | 100 +- .../win32/win32k/misc/i386/floor_asm.s | 116 +- .../win32/win32k/misc/i386/sin_asm.s | 100 +- .../subsystems/win32/win32k/misc/usrheap.c | 432 +- .../subsystems/win32/win32k/ntuser/ntuser.c | 230 +- .../subsystems/win32/win32k/ntuser/session.c | 86 +- .../create_nls/unicode.org/ReactOS/ReadMe | 14 +- .../unicode.org/ReactOS/ibmcp861.diff | 46 +- reactos/tools/pefixup.mak | 72 +- reactos/tools/raddr2line.mak | 82 +- reactos/tools/rbuild/backend/msvc/genguid.cpp | 192 +- reactos/tools/rbuild/backend/msvc/msvc.cpp | 900 +- reactos/tools/rbuild/backend/msvc/msvc.h | 296 +- .../tools/rbuild/backend/msvc/vcprojmaker.cpp | 1674 +- reactos/tools/rbuild/makefile | 6 +- reactos/tools/rbuild/rbuild.dsp | 712 +- reactos/tools/rbuild/rbuild.dsw | 58 +- reactos/tools/rbuild/rbuild.sln | 42 +- reactos/tools/rbuild/rbuild.vcproj | 2016 +- reactos/tools/sysreg/namedpipe_reader.cpp | 500 +- reactos/tools/sysreg/namedpipe_reader.h | 246 +- reactos/tools/sysreg/os_support.cpp | 152 +- reactos/tools/sysreg/os_support.h | 190 +- reactos/tools/sysreg/unicode.cpp | 62 +- reactos/tools/sysreg/unicode.h | 110 +- reactos/tools/tools-check.mak | 44 +- reactos/tools/winebuild/winebuild.mak | 162 +- 689 files changed, 174881 insertions(+), 174881 deletions(-) diff --git a/reactos/base/applications/cacls/lang/De.rc b/reactos/base/applications/cacls/lang/De.rc index ccbc65e8076..99dc7a091eb 100644 --- a/reactos/base/applications/cacls/lang/De.rc +++ b/reactos/base/applications/cacls/lang/De.rc @@ -1,79 +1,79 @@ -/* - * German language file by Daniel Reimer 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" -} +/* + * German language file by Daniel Reimer 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" +} diff --git a/reactos/base/applications/cacls/lang/Nl.rc b/reactos/base/applications/cacls/lang/Nl.rc index fa514f4aeaf..56047129343 100644 --- a/reactos/base/applications/cacls/lang/Nl.rc +++ b/reactos/base/applications/cacls/lang/Nl.rc @@ -1,75 +1,75 @@ -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" -} +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" +} diff --git a/reactos/base/applications/cacls/lang/Ru.rc b/reactos/base/applications/cacls/lang/Ru.rc index daec9a71ef8..79f7c9f67da 100644 --- a/reactos/base/applications/cacls/lang/Ru.rc +++ b/reactos/base/applications/cacls/lang/Ru.rc @@ -1,75 +1,75 @@ -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" -} +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" +} diff --git a/reactos/base/applications/control/control.dsp b/reactos/base/applications/control/control.dsp index c2cdcea4439..df2978730f4 100644 --- a/reactos/base/applications/control/control.dsp +++ b/reactos/base/applications/control/control.dsp @@ -1,137 +1,137 @@ -# 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 +# 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 diff --git a/reactos/base/applications/control/control.dsw b/reactos/base/applications/control/control.dsw index d7d3aa5df4e..1beaf5dbd74 100644 --- a/reactos/base/applications/control/control.dsw +++ b/reactos/base/applications/control/control.dsw @@ -1,29 +1,29 @@ -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> -{{{ -}}} - -############################################################################### - +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> +{{{ +}}} + +############################################################################### + diff --git a/reactos/base/applications/control/lang/Hu.rc b/reactos/base/applications/control/lang/Hu.rc index 2c391dbc42c..3c9d388e2e0 100644 --- a/reactos/base/applications/control/lang/Hu.rc +++ b/reactos/base/applications/control/lang/Hu.rc @@ -1,28 +1,28 @@ -// 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 - +// 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 + diff --git a/reactos/base/applications/control/lang/Uk.rc b/reactos/base/applications/control/lang/Uk.rc index 2fdfe730932..4d99e6fe87b 100644 --- a/reactos/base/applications/control/lang/Uk.rc +++ b/reactos/base/applications/control/lang/Uk.rc @@ -1,34 +1,34 @@ -/* - * 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 - +/* + * 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 + diff --git a/reactos/base/applications/devmgmt/En.rc b/reactos/base/applications/devmgmt/En.rc index 3026500f5e3..d0dec9c5f29 100644 --- a/reactos/base/applications/devmgmt/En.rc +++ b/reactos/base/applications/devmgmt/En.rc @@ -1,79 +1,79 @@ -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 +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 diff --git a/reactos/base/applications/devmgmt/about.c b/reactos/base/applications/devmgmt/about.c index c45304883e8..ed20b2157cb 100644 --- a/reactos/base/applications/devmgmt/about.c +++ b/reactos/base/applications/devmgmt/about.c @@ -1,62 +1,62 @@ -/* - * 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 - * - */ - -#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; -} +/* + * 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 + * + */ + +#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; +} diff --git a/reactos/base/applications/devmgmt/devmgmt.c b/reactos/base/applications/devmgmt/devmgmt.c index afb233b6176..2a0b984ac14 100644 --- a/reactos/base/applications/devmgmt/devmgmt.c +++ b/reactos/base/applications/devmgmt/devmgmt.c @@ -1,67 +1,67 @@ -/* - * 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 - * - */ - -#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; -} - - - +/* + * 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 + * + */ + +#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; +} + + + diff --git a/reactos/base/applications/devmgmt/devmgmt.rbuild b/reactos/base/applications/devmgmt/devmgmt.rbuild index 4c41615c3ca..55a1cf1aec9 100644 --- a/reactos/base/applications/devmgmt/devmgmt.rbuild +++ b/reactos/base/applications/devmgmt/devmgmt.rbuild @@ -1,29 +1,29 @@ - - - - . - - - - - 0x600 - 0x501 - ntdll - setupapi - gdi32 - kernel32 - user32 - comctl32 - advapi32 - devmgr - - about.c - devmgmt.c - enumdevices.c - mainwnd.c - misc.c - - devmgmt.rc - precomp.h - - + + + + . + + + + + 0x600 + 0x501 + ntdll + setupapi + gdi32 + kernel32 + user32 + comctl32 + advapi32 + devmgr + + about.c + devmgmt.c + enumdevices.c + mainwnd.c + misc.c + + devmgmt.rc + precomp.h + + diff --git a/reactos/base/applications/devmgmt/devmgmt.rc b/reactos/base/applications/devmgmt/devmgmt.rc index 9821767f69c..badc2d95491 100644 --- a/reactos/base/applications/devmgmt/devmgmt.rc +++ b/reactos/base/applications/devmgmt/devmgmt.rc @@ -1,29 +1,29 @@ -#include -#include -#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 - -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" +#include +#include +#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 + +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" diff --git a/reactos/base/applications/devmgmt/enumdevices.c b/reactos/base/applications/devmgmt/enumdevices.c index 9ba735fd2db..ba4fa3b8661 100644 --- a/reactos/base/applications/devmgmt/enumdevices.c +++ b/reactos/base/applications/devmgmt/enumdevices.c @@ -1,464 +1,464 @@ -/* - * 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 - * - */ - -#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; -} +/* + * 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 + * + */ + +#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; +} diff --git a/reactos/base/applications/devmgmt/mainwnd.c b/reactos/base/applications/devmgmt/mainwnd.c index a43e680da73..9ad17c929d3 100644 --- a/reactos/base/applications/devmgmt/mainwnd.c +++ b/reactos/base/applications/devmgmt/mainwnd.c @@ -1,718 +1,718 @@ -/* - * 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 - * - */ - -#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); -} - - +/* + * 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 + * + */ + +#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); +} + + diff --git a/reactos/base/applications/devmgmt/manifest.xml b/reactos/base/applications/devmgmt/manifest.xml index 2320af6a533..c0a2723eca5 100644 --- a/reactos/base/applications/devmgmt/manifest.xml +++ b/reactos/base/applications/devmgmt/manifest.xml @@ -1,23 +1,23 @@ - - - -ReactOS Device Manager - - - - - - + + + +ReactOS Device Manager + + + + + + diff --git a/reactos/base/applications/devmgmt/misc.c b/reactos/base/applications/devmgmt/misc.c index 642457be20a..709ab473dea 100644 --- a/reactos/base/applications/devmgmt/misc.c +++ b/reactos/base/applications/devmgmt/misc.c @@ -1,260 +1,260 @@ -/* - * PROJECT: ReactOS Device Managment - * LICENSE: GPL - See COPYING in the top level directory - * FILE: base/system/devmgmt/misc.c - * PURPOSE: miscallanous functions - * COPYRIGHT: Copyright 2006 Ged Murphy - * - */ - -#include "precomp.h" - -static INT -LengthOfStrResource(IN HINSTANCE hInst, - IN UINT uID) -{ - HRSRC hrSrc; - HGLOBAL hRes; - LPWSTR lpName, lpStr; - - if (hInst == NULL) - { - return -1; - } - - /* There are always blocks of 16 strings */ - lpName = (LPWSTR)MAKEINTRESOURCE((uID >> 4) + 1); - - /* Find the string table block */ - if ((hrSrc = FindResourceW(hInst, lpName, (LPWSTR)RT_STRING)) && - (hRes = LoadResource(hInst, hrSrc)) && - (lpStr = (LPWSTR)LockResource(hRes))) - { - UINT x; - - /* Find the string we're looking for */ - uID &= 0xF; /* position in the block, same as % 16 */ - for (x = 0; x < uID; x++) - { - lpStr += (*lpStr) + 1; - } - - /* Found the string */ - return (int)(*lpStr); - } - return -1; -} - -INT -AllocAndLoadString(OUT LPTSTR *lpTarget, - IN HINSTANCE hInst, - IN UINT uID) -{ - INT ln; - - ln = LengthOfStrResource(hInst, - uID); - if (ln++ > 0) - { - (*lpTarget) = (LPTSTR)LocalAlloc(LMEM_FIXED, - ln * sizeof(TCHAR)); - if ((*lpTarget) != NULL) - { - INT Ret; - if (!(Ret = LoadString(hInst, uID, *lpTarget, ln))) - { - LocalFree((HLOCAL)(*lpTarget)); - } - return Ret; - } - } - return 0; -} - -DWORD -LoadAndFormatString(IN HINSTANCE hInstance, - IN UINT uID, - OUT LPTSTR *lpTarget, - ...) -{ - DWORD Ret = 0; - LPTSTR lpFormat; - va_list lArgs; - - if (AllocAndLoadString(&lpFormat, - hInstance, - uID) > 0) - { - va_start(lArgs, lpTarget); - /* let's use FormatMessage to format it because it has the ability to allocate - memory automatically */ - Ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING, - lpFormat, - 0, - 0, - (LPTSTR)lpTarget, - 0, - &lArgs); - va_end(lArgs); - - LocalFree((HLOCAL)lpFormat); - } - - return Ret; -} - -BOOL -StatusBarLoadAndFormatString(IN HWND hStatusBar, - IN INT PartId, - IN HINSTANCE hInstance, - IN UINT uID, - ...) -{ - BOOL Ret = FALSE; - LPTSTR lpFormat, lpStr; - va_list lArgs; - - if (AllocAndLoadString(&lpFormat, - hInstance, - uID) > 0) - { - va_start(lArgs, uID); - /* let's use FormatMessage to format it because it has the ability to allocate - memory automatically */ - Ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING, - lpFormat, - 0, - 0, - (LPTSTR)&lpStr, - 0, - &lArgs); - va_end(lArgs); - - if (lpStr != NULL) - { - Ret = (BOOL)SendMessage(hStatusBar, - SB_SETTEXT, - (WPARAM)PartId, - (LPARAM)lpStr); - LocalFree((HLOCAL)lpStr); - } - - LocalFree((HLOCAL)lpFormat); - } - - return Ret; -} - -BOOL -StatusBarLoadString(IN HWND hStatusBar, - IN INT PartId, - IN HINSTANCE hInstance, - IN UINT uID) -{ - BOOL Ret = FALSE; - LPTSTR lpStr; - - if (AllocAndLoadString(&lpStr, - hInstance, - uID) > 0) - { - Ret = (BOOL)SendMessage(hStatusBar, - SB_SETTEXT, - (WPARAM)PartId, - (LPARAM)lpStr); - LocalFree((HLOCAL)lpStr); - } - - return Ret; -} - - -INT -GetTextFromEdit(OUT LPTSTR lpString, - IN HWND hDlg, - IN UINT Res) -{ - INT len = GetWindowTextLength(GetDlgItem(hDlg, Res)); - if(len > 0) - { - GetDlgItemText(hDlg, - Res, - lpString, - len + 1); - } - else - lpString = NULL; - - return len; -} - - -HIMAGELIST -InitImageList(UINT StartResource, - UINT EndResource, - UINT Width, - UINT Height) -{ - HBITMAP hBitmap; - HIMAGELIST hImageList; - UINT i; - INT Ret; - - /* Create the toolbar icon image list */ - hImageList = ImageList_Create(Width, - Height, - ILC_MASK | ILC_COLOR24, - EndResource - StartResource, - 0); - if (hImageList == NULL) - return NULL; - - /* Add all icons to the image list */ - for (i = StartResource; i <= EndResource; i++) - { - hBitmap = (HBITMAP)LoadImage(hInstance, - MAKEINTRESOURCE(i), - IMAGE_BITMAP, - Width, - Height, - LR_LOADTRANSPARENT); - if (hBitmap == NULL) - return NULL; - - Ret = ImageList_AddMasked(hImageList, - hBitmap, - RGB(255, 0, 128)); - if (Ret == -1) - return NULL; - - DeleteObject(hBitmap); - } - - return hImageList; -} - - -VOID GetError(VOID) -{ - LPVOID lpMsgBuf; - - FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | - FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, - GetLastError(), - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPTSTR) &lpMsgBuf, - 0, - NULL ); - - MessageBox(NULL, lpMsgBuf, _T("Error!"), MB_OK | MB_ICONERROR); - - LocalFree(lpMsgBuf); -} - - -VOID DisplayString(LPTSTR Msg) -{ - MessageBox(NULL, Msg, _T("Note!"), MB_ICONEXCLAMATION|MB_OK); -} +/* + * PROJECT: ReactOS Device Managment + * LICENSE: GPL - See COPYING in the top level directory + * FILE: base/system/devmgmt/misc.c + * PURPOSE: miscallanous functions + * COPYRIGHT: Copyright 2006 Ged Murphy + * + */ + +#include "precomp.h" + +static INT +LengthOfStrResource(IN HINSTANCE hInst, + IN UINT uID) +{ + HRSRC hrSrc; + HGLOBAL hRes; + LPWSTR lpName, lpStr; + + if (hInst == NULL) + { + return -1; + } + + /* There are always blocks of 16 strings */ + lpName = (LPWSTR)MAKEINTRESOURCE((uID >> 4) + 1); + + /* Find the string table block */ + if ((hrSrc = FindResourceW(hInst, lpName, (LPWSTR)RT_STRING)) && + (hRes = LoadResource(hInst, hrSrc)) && + (lpStr = (LPWSTR)LockResource(hRes))) + { + UINT x; + + /* Find the string we're looking for */ + uID &= 0xF; /* position in the block, same as % 16 */ + for (x = 0; x < uID; x++) + { + lpStr += (*lpStr) + 1; + } + + /* Found the string */ + return (int)(*lpStr); + } + return -1; +} + +INT +AllocAndLoadString(OUT LPTSTR *lpTarget, + IN HINSTANCE hInst, + IN UINT uID) +{ + INT ln; + + ln = LengthOfStrResource(hInst, + uID); + if (ln++ > 0) + { + (*lpTarget) = (LPTSTR)LocalAlloc(LMEM_FIXED, + ln * sizeof(TCHAR)); + if ((*lpTarget) != NULL) + { + INT Ret; + if (!(Ret = LoadString(hInst, uID, *lpTarget, ln))) + { + LocalFree((HLOCAL)(*lpTarget)); + } + return Ret; + } + } + return 0; +} + +DWORD +LoadAndFormatString(IN HINSTANCE hInstance, + IN UINT uID, + OUT LPTSTR *lpTarget, + ...) +{ + DWORD Ret = 0; + LPTSTR lpFormat; + va_list lArgs; + + if (AllocAndLoadString(&lpFormat, + hInstance, + uID) > 0) + { + va_start(lArgs, lpTarget); + /* let's use FormatMessage to format it because it has the ability to allocate + memory automatically */ + Ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING, + lpFormat, + 0, + 0, + (LPTSTR)lpTarget, + 0, + &lArgs); + va_end(lArgs); + + LocalFree((HLOCAL)lpFormat); + } + + return Ret; +} + +BOOL +StatusBarLoadAndFormatString(IN HWND hStatusBar, + IN INT PartId, + IN HINSTANCE hInstance, + IN UINT uID, + ...) +{ + BOOL Ret = FALSE; + LPTSTR lpFormat, lpStr; + va_list lArgs; + + if (AllocAndLoadString(&lpFormat, + hInstance, + uID) > 0) + { + va_start(lArgs, uID); + /* let's use FormatMessage to format it because it has the ability to allocate + memory automatically */ + Ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING, + lpFormat, + 0, + 0, + (LPTSTR)&lpStr, + 0, + &lArgs); + va_end(lArgs); + + if (lpStr != NULL) + { + Ret = (BOOL)SendMessage(hStatusBar, + SB_SETTEXT, + (WPARAM)PartId, + (LPARAM)lpStr); + LocalFree((HLOCAL)lpStr); + } + + LocalFree((HLOCAL)lpFormat); + } + + return Ret; +} + +BOOL +StatusBarLoadString(IN HWND hStatusBar, + IN INT PartId, + IN HINSTANCE hInstance, + IN UINT uID) +{ + BOOL Ret = FALSE; + LPTSTR lpStr; + + if (AllocAndLoadString(&lpStr, + hInstance, + uID) > 0) + { + Ret = (BOOL)SendMessage(hStatusBar, + SB_SETTEXT, + (WPARAM)PartId, + (LPARAM)lpStr); + LocalFree((HLOCAL)lpStr); + } + + return Ret; +} + + +INT +GetTextFromEdit(OUT LPTSTR lpString, + IN HWND hDlg, + IN UINT Res) +{ + INT len = GetWindowTextLength(GetDlgItem(hDlg, Res)); + if(len > 0) + { + GetDlgItemText(hDlg, + Res, + lpString, + len + 1); + } + else + lpString = NULL; + + return len; +} + + +HIMAGELIST +InitImageList(UINT StartResource, + UINT EndResource, + UINT Width, + UINT Height) +{ + HBITMAP hBitmap; + HIMAGELIST hImageList; + UINT i; + INT Ret; + + /* Create the toolbar icon image list */ + hImageList = ImageList_Create(Width, + Height, + ILC_MASK | ILC_COLOR24, + EndResource - StartResource, + 0); + if (hImageList == NULL) + return NULL; + + /* Add all icons to the image list */ + for (i = StartResource; i <= EndResource; i++) + { + hBitmap = (HBITMAP)LoadImage(hInstance, + MAKEINTRESOURCE(i), + IMAGE_BITMAP, + Width, + Height, + LR_LOADTRANSPARENT); + if (hBitmap == NULL) + return NULL; + + Ret = ImageList_AddMasked(hImageList, + hBitmap, + RGB(255, 0, 128)); + if (Ret == -1) + return NULL; + + DeleteObject(hBitmap); + } + + return hImageList; +} + + +VOID GetError(VOID) +{ + LPVOID lpMsgBuf; + + FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | + FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, + GetLastError(), + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPTSTR) &lpMsgBuf, + 0, + NULL ); + + MessageBox(NULL, lpMsgBuf, _T("Error!"), MB_OK | MB_ICONERROR); + + LocalFree(lpMsgBuf); +} + + +VOID DisplayString(LPTSTR Msg) +{ + MessageBox(NULL, Msg, _T("Note!"), MB_ICONEXCLAMATION|MB_OK); +} diff --git a/reactos/base/applications/devmgmt/precomp.h b/reactos/base/applications/devmgmt/precomp.h index f0b48905b3a..d1cfc335b2d 100644 --- a/reactos/base/applications/devmgmt/precomp.h +++ b/reactos/base/applications/devmgmt/precomp.h @@ -1,116 +1,116 @@ -#ifndef __DEVMGMT_PRECOMP_H -#define __DEVMGMT_PRECOMP_H - -#define WIN32_LEAN_AND_MEAN -#include -#include -#include -#include -#include -#include -#include -#include "resource.h" - -#ifdef _MSC_VER -#pragma warning(disable : 4100) -#endif - -#define MAX_DEV_LEN 256 - -typedef struct _MAIN_WND_INFO -{ - HWND hMainWnd; - HWND hTreeView; - HWND hStatus; - HWND hTool; - HWND hProgDlg; - HMENU hShortcutMenu; - int nCmdShow; - - /* status flags */ - UINT InMenuLoop : 1; - -} MAIN_WND_INFO, *PMAIN_WND_INFO; - - -BOOL CALLBACK AboutDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); - - -/* devmgmt.c */ -extern HINSTANCE hInstance; -extern HANDLE ProcessHeap; - -/* mainwnd.c */ -typedef struct _MENU_HINT -{ - WORD CmdId; - UINT HintId; -} MENU_HINT, *PMENU_HINT; - -BOOL InitMainWindowImpl(VOID); -VOID UninitMainWindowImpl(VOID); -HWND CreateMainWindow(LPCTSTR lpCaption, int nCmdShow); - - -/* enumdevices.c */ -// undocumented API's from devmgr -#ifdef _UNICODE -#define DevicePropertiesEx DevicePropertiesExW -INT_PTR -WINAPI -DevicePropertiesExW(IN HWND hWndParent OPTIONAL, - IN LPCWSTR lpMachineName OPTIONAL, - IN LPCWSTR lpDeviceID OPTIONAL, - IN DWORD dwFlags OPTIONAL, - IN BOOL bShowDevMgr); -#else -#define DevicePropertiesEx DevicePropertiesExA -INT_PTR -WINAPI -DevicePropertiesExA(IN HWND hWndParent OPTIONAL, - IN LPCSTR lpMachineName OPTIONAL, - IN LPCSTR lpDeviceID OPTIONAL, - IN DWORD dwFlags OPTIONAL, - IN BOOL bShowDevMgr); -#endif - -VOID FreeDeviceStrings(HWND hTreeView); -VOID OpenPropSheet(HWND hTreeView, HTREEITEM hItem); -HTREEITEM InitTreeView(HWND hTreeView); -VOID ListDevicesByType(HWND hTreeView, HTREEITEM hRoot); - - -/* misc.c */ -INT AllocAndLoadString(OUT LPTSTR *lpTarget, - IN HINSTANCE hInst, - IN UINT uID); - -DWORD LoadAndFormatString(IN HINSTANCE hInstance, - IN UINT uID, - OUT LPTSTR *lpTarget, - ...); - -BOOL StatusBarLoadAndFormatString(IN HWND hStatusBar, - IN INT PartId, - IN HINSTANCE hInstance, - IN UINT uID, - ...); - -BOOL StatusBarLoadString(IN HWND hStatusBar, - IN INT PartId, - IN HINSTANCE hInstance, - IN UINT uID); - -INT GetTextFromEdit(OUT LPTSTR lpString, - IN HWND hDlg, - IN UINT Res); - -HIMAGELIST InitImageList(UINT NumButtons, - UINT StartResource, - UINT Width, - UINT Height); - -VOID GetError(VOID); -VOID DisplayString(LPTSTR); - -#endif /* __DEVMGMT_PRECOMP_H */ +#ifndef __DEVMGMT_PRECOMP_H +#define __DEVMGMT_PRECOMP_H + +#define WIN32_LEAN_AND_MEAN +#include +#include +#include +#include +#include +#include +#include +#include "resource.h" + +#ifdef _MSC_VER +#pragma warning(disable : 4100) +#endif + +#define MAX_DEV_LEN 256 + +typedef struct _MAIN_WND_INFO +{ + HWND hMainWnd; + HWND hTreeView; + HWND hStatus; + HWND hTool; + HWND hProgDlg; + HMENU hShortcutMenu; + int nCmdShow; + + /* status flags */ + UINT InMenuLoop : 1; + +} MAIN_WND_INFO, *PMAIN_WND_INFO; + + +BOOL CALLBACK AboutDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); + + +/* devmgmt.c */ +extern HINSTANCE hInstance; +extern HANDLE ProcessHeap; + +/* mainwnd.c */ +typedef struct _MENU_HINT +{ + WORD CmdId; + UINT HintId; +} MENU_HINT, *PMENU_HINT; + +BOOL InitMainWindowImpl(VOID); +VOID UninitMainWindowImpl(VOID); +HWND CreateMainWindow(LPCTSTR lpCaption, int nCmdShow); + + +/* enumdevices.c */ +// undocumented API's from devmgr +#ifdef _UNICODE +#define DevicePropertiesEx DevicePropertiesExW +INT_PTR +WINAPI +DevicePropertiesExW(IN HWND hWndParent OPTIONAL, + IN LPCWSTR lpMachineName OPTIONAL, + IN LPCWSTR lpDeviceID OPTIONAL, + IN DWORD dwFlags OPTIONAL, + IN BOOL bShowDevMgr); +#else +#define DevicePropertiesEx DevicePropertiesExA +INT_PTR +WINAPI +DevicePropertiesExA(IN HWND hWndParent OPTIONAL, + IN LPCSTR lpMachineName OPTIONAL, + IN LPCSTR lpDeviceID OPTIONAL, + IN DWORD dwFlags OPTIONAL, + IN BOOL bShowDevMgr); +#endif + +VOID FreeDeviceStrings(HWND hTreeView); +VOID OpenPropSheet(HWND hTreeView, HTREEITEM hItem); +HTREEITEM InitTreeView(HWND hTreeView); +VOID ListDevicesByType(HWND hTreeView, HTREEITEM hRoot); + + +/* misc.c */ +INT AllocAndLoadString(OUT LPTSTR *lpTarget, + IN HINSTANCE hInst, + IN UINT uID); + +DWORD LoadAndFormatString(IN HINSTANCE hInstance, + IN UINT uID, + OUT LPTSTR *lpTarget, + ...); + +BOOL StatusBarLoadAndFormatString(IN HWND hStatusBar, + IN INT PartId, + IN HINSTANCE hInstance, + IN UINT uID, + ...); + +BOOL StatusBarLoadString(IN HWND hStatusBar, + IN INT PartId, + IN HINSTANCE hInstance, + IN UINT uID); + +INT GetTextFromEdit(OUT LPTSTR lpString, + IN HWND hDlg, + IN UINT Res); + +HIMAGELIST InitImageList(UINT NumButtons, + UINT StartResource, + UINT Width, + UINT Height); + +VOID GetError(VOID); +VOID DisplayString(LPTSTR); + +#endif /* __DEVMGMT_PRECOMP_H */ diff --git a/reactos/base/applications/devmgmt/resource.h b/reactos/base/applications/devmgmt/resource.h index ad94561340e..4bf47ae1c7c 100644 --- a/reactos/base/applications/devmgmt/resource.h +++ b/reactos/base/applications/devmgmt/resource.h @@ -1,63 +1,63 @@ -#define IDC_STATIC -1 - -#define IDI_MAIN_ICON 50 -#define IDB_ROOT_IMAGE 51 - -/* windows */ -#define IDC_TREEVIEW 1000 -#define IDC_TOOLBAR 1001 -#define IDC_STATUSBAR 1002 - -/* commands */ -#define IDC_PROP 2000 -#define IDC_REFRESH 2001 -#define IDC_PRINT 2002 -#define IDC_PROGHELP 2003 -#define IDC_EXIT 2004 -#define IDC_ABOUT 4031 - -/* menus */ -#define IDR_MAINMENU 102 -#define IDR_POPUP 103 -#define IDC_DEVBYTYPE 104 - -/* tooltips */ -#define IDS_TOOLTIP_PROP 6000 -#define IDS_TOOLTIP_REFRESH 6001 -#define IDS_TOOLTIP_HELP 6002 -#define IDS_TOOLTIP_EXIT 6003 - -/* button bitmaps */ -#define IDB_PROP 10000 -#define IDB_REFRESH 10001 -#define IDB_HELP 10002 -#define IDB_EXIT 10003 - -/* toolbar buttons */ -#define TBICON_PROP 0 -#define TBICON_REFRESH 1 -#define TBICON_HELP 2 -#define TBICON_EXIT 3 - -/* about box info */ -#define IDD_ABOUTBOX 200 -#define IDC_LICENSE_EDIT 201 -#define IDS_APPNAME 202 -#define IDS_LICENSE 203 - - -/* menu hints */ -#define IDS_HINT_BLANK 20000 -#define IDS_HINT_REFRESH 20002 -#define IDS_HINT_PROP 20003 -#define IDS_HINT_HELP 20004 -#define IDS_HINT_ABOUT 20005 -#define IDS_HINT_EXIT 20006 - -/* system menu hints */ -#define IDS_HINT_SYS_RESTORE 21001 -#define IDS_HINT_SYS_MOVE 21002 -#define IDS_HINT_SYS_SIZE 21003 -#define IDS_HINT_SYS_MINIMIZE 21004 -#define IDS_HINT_SYS_MAXIMIZE 21005 -#define IDS_HINT_SYS_CLOSE 21006 +#define IDC_STATIC -1 + +#define IDI_MAIN_ICON 50 +#define IDB_ROOT_IMAGE 51 + +/* windows */ +#define IDC_TREEVIEW 1000 +#define IDC_TOOLBAR 1001 +#define IDC_STATUSBAR 1002 + +/* commands */ +#define IDC_PROP 2000 +#define IDC_REFRESH 2001 +#define IDC_PRINT 2002 +#define IDC_PROGHELP 2003 +#define IDC_EXIT 2004 +#define IDC_ABOUT 4031 + +/* menus */ +#define IDR_MAINMENU 102 +#define IDR_POPUP 103 +#define IDC_DEVBYTYPE 104 + +/* tooltips */ +#define IDS_TOOLTIP_PROP 6000 +#define IDS_TOOLTIP_REFRESH 6001 +#define IDS_TOOLTIP_HELP 6002 +#define IDS_TOOLTIP_EXIT 6003 + +/* button bitmaps */ +#define IDB_PROP 10000 +#define IDB_REFRESH 10001 +#define IDB_HELP 10002 +#define IDB_EXIT 10003 + +/* toolbar buttons */ +#define TBICON_PROP 0 +#define TBICON_REFRESH 1 +#define TBICON_HELP 2 +#define TBICON_EXIT 3 + +/* about box info */ +#define IDD_ABOUTBOX 200 +#define IDC_LICENSE_EDIT 201 +#define IDS_APPNAME 202 +#define IDS_LICENSE 203 + + +/* menu hints */ +#define IDS_HINT_BLANK 20000 +#define IDS_HINT_REFRESH 20002 +#define IDS_HINT_PROP 20003 +#define IDS_HINT_HELP 20004 +#define IDS_HINT_ABOUT 20005 +#define IDS_HINT_EXIT 20006 + +/* system menu hints */ +#define IDS_HINT_SYS_RESTORE 21001 +#define IDS_HINT_SYS_MOVE 21002 +#define IDS_HINT_SYS_SIZE 21003 +#define IDS_HINT_SYS_MINIMIZE 21004 +#define IDS_HINT_SYS_MAXIMIZE 21005 +#define IDS_HINT_SYS_CLOSE 21006 diff --git a/reactos/base/applications/games/solitaire/ReadMe.txt b/reactos/base/applications/games/solitaire/ReadMe.txt index 90bd89b225b..31448da0376 100644 --- a/reactos/base/applications/games/solitaire/ReadMe.txt +++ b/reactos/base/applications/games/solitaire/ReadMe.txt @@ -1,22 +1,22 @@ -Solitaire for ReactOS - -/***************************************** -A complete working example of the CardLib -card-game library. - -Freeware -Copyright J Brown 2001 - -Updates at http://www.catch22.net - -******************************************/ - -The author has given permission to use these sources -under Public Domain. Do what thou will but please give -credit where credit is due. - -If you wish to use cardlib to write another card game -for ReactOS please make cardlib a static lib. - --sedwards - +Solitaire for ReactOS + +/***************************************** +A complete working example of the CardLib +card-game library. + +Freeware +Copyright J Brown 2001 + +Updates at http://www.catch22.net + +******************************************/ + +The author has given permission to use these sources +under Public Domain. Do what thou will but please give +credit where credit is due. + +If you wish to use cardlib to write another card game +for ReactOS please make cardlib a static lib. + +-sedwards + diff --git a/reactos/base/applications/games/solitaire/de.rc b/reactos/base/applications/games/solitaire/de.rc index bad20480792..175d495f979 100644 --- a/reactos/base/applications/games/solitaire/de.rc +++ b/reactos/base/applications/games/solitaire/de.rc @@ -1,128 +1,128 @@ -/* - * PROJECT: Solitaire - * LICENSE: Freeware, permission to use under Public Domain - * FILE: base/applications/games/solitaire/de.rc - * PURPOSE: German Language File for Solitaire - * PROGRAMMERS: Daniel "EmuandCo" Reimer (reimer.daniel@freenet.de) - */ -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS - -/* winemaker: #include "afxres.h" */ -/* winemaker:warning: 'afxres.h' is an MFC specific header. Replacing it with 'winres.h' */ -#include "winres.h" - -///// - -#undef APSTUDIO_READONLY_SYMBOLS - -///// -// German resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG) -#ifdef _WIN32 -LANGUAGE LANG_GERMAN, SUBLANG_GERMAN -#pragma code_page(1252) -#endif //_WIN32 - -///// -// Dialog - -IDD_DIALOG1 DIALOGEX DISCARDABLE 0, 0, 186, 95 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Dialog" -FONT 8, "MS Shell Dlg" -EXSTYLE DS_SHELLFONT -BEGIN - DEFPUSHBUTTON "OK",IDOK,129,7,50,14 - PUSHBUTTON "Abbrechen",IDCANCEL,129,24,50,14 -END - - -///// -// DESIGNINFO - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO DISCARDABLE -BEGIN - IDD_DIALOG1, DIALOGEX - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 179 - TOPMARGIN, 7 - BOTTOMMARGIN, 88 - END -END -#endif // APSTUDIO_INVOKED - - -#ifdef APSTUDIO_INVOKED - -///// -// TEXTINCLUDE - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE DISCARDABLE -BEGIN - "#include ""winres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE DISCARDABLE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///// -// Menu - -IDR_MENU1 MENU DISCARDABLE -BEGIN - POPUP "&Spiel" - BEGIN - MENUITEM "&Karten geben\t F2", IDM_GAME_NEW - MENUITEM SEPARATOR - MENUITEM "&Deckblatt...", IDM_GAME_DECK - MENUITEM "&Optionen...", IDM_GAME_OPTIONS - MENUITEM SEPARATOR - MENUITEM "&Beenden", IDM_GAME_EXIT - END - POPUP "&?" - BEGIN - MENUITEM "&Inhalt\tF1", IDM_HELP_CONTENTS - MENUITEM "Inf&o", IDM_HELP_ABOUT - END -END - -///// -// Accelerator - -IDR_ACCELERATOR1 ACCELERATORS DISCARDABLE -BEGIN - VK_F1, IDM_HELP_CONTENTS, VIRTKEY, NOINVERT - VK_F2, IDM_GAME_NEW, VIRTKEY, NOINVERT -END - - -///// -// Icon - -IDI_ICON1 ICON DISCARDABLE "solitaire.ico" -#endif // German resources - -///// - - -#ifndef APSTUDIO_INVOKED - -///// -#endif // not APSTUDIO_INVOKED +/* + * PROJECT: Solitaire + * LICENSE: Freeware, permission to use under Public Domain + * FILE: base/applications/games/solitaire/de.rc + * PURPOSE: German Language File for Solitaire + * PROGRAMMERS: Daniel "EmuandCo" Reimer (reimer.daniel@freenet.de) + */ +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS + +/* winemaker: #include "afxres.h" */ +/* winemaker:warning: 'afxres.h' is an MFC specific header. Replacing it with 'winres.h' */ +#include "winres.h" + +///// + +#undef APSTUDIO_READONLY_SYMBOLS + +///// +// German resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG) +#ifdef _WIN32 +LANGUAGE LANG_GERMAN, SUBLANG_GERMAN +#pragma code_page(1252) +#endif //_WIN32 + +///// +// Dialog + +IDD_DIALOG1 DIALOGEX DISCARDABLE 0, 0, 186, 95 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Dialog" +FONT 8, "MS Shell Dlg" +EXSTYLE DS_SHELLFONT +BEGIN + DEFPUSHBUTTON "OK",IDOK,129,7,50,14 + PUSHBUTTON "Abbrechen",IDCANCEL,129,24,50,14 +END + + +///// +// DESIGNINFO + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_DIALOG1, DIALOGEX + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 179 + TOPMARGIN, 7 + BOTTOMMARGIN, 88 + END +END +#endif // APSTUDIO_INVOKED + + +#ifdef APSTUDIO_INVOKED + +///// +// TEXTINCLUDE + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///// +// Menu + +IDR_MENU1 MENU DISCARDABLE +BEGIN + POPUP "&Spiel" + BEGIN + MENUITEM "&Karten geben\t F2", IDM_GAME_NEW + MENUITEM SEPARATOR + MENUITEM "&Deckblatt...", IDM_GAME_DECK + MENUITEM "&Optionen...", IDM_GAME_OPTIONS + MENUITEM SEPARATOR + MENUITEM "&Beenden", IDM_GAME_EXIT + END + POPUP "&?" + BEGIN + MENUITEM "&Inhalt\tF1", IDM_HELP_CONTENTS + MENUITEM "Inf&o", IDM_HELP_ABOUT + END +END + +///// +// Accelerator + +IDR_ACCELERATOR1 ACCELERATORS DISCARDABLE +BEGIN + VK_F1, IDM_HELP_CONTENTS, VIRTKEY, NOINVERT + VK_F2, IDM_GAME_NEW, VIRTKEY, NOINVERT +END + + +///// +// Icon + +IDI_ICON1 ICON DISCARDABLE "solitaire.ico" +#endif // German resources + +///// + + +#ifndef APSTUDIO_INVOKED + +///// +#endif // not APSTUDIO_INVOKED diff --git a/reactos/base/applications/games/solitaire/en.rc b/reactos/base/applications/games/solitaire/en.rc index 22823aa8815..121a5fc3776 100644 --- a/reactos/base/applications/games/solitaire/en.rc +++ b/reactos/base/applications/games/solitaire/en.rc @@ -1,128 +1,128 @@ -/* - * PROJECT: Solitaire - * LICENSE: Freeware, permission to use under Public Domain - * FILE: base/applications/games/solitaire/en.rc - * PURPOSE: English Language File for Solitaire - * PROGRAMMERS: Daniel "EmuandCo" Reimer (reimer.daniel@freenet.de) - */ -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS - -/* winemaker: #include "afxres.h" */ -/* winemaker:warning: 'afxres.h' is an MFC specific header. Replacing it with 'winres.h' */ -#include "winres.h" - -///// - -#undef APSTUDIO_READONLY_SYMBOLS - -///// -// English (U.K.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -///// -// Dialog - -IDD_DIALOG1 DIALOGEX DISCARDABLE 0, 0, 186, 95 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Dialog" -FONT 8, "MS Shell Dlg" -EXSTYLE DS_SHELLFONT -BEGIN - DEFPUSHBUTTON "OK",IDOK,129,7,50,14 - PUSHBUTTON "Cancel",IDCANCEL,129,24,50,14 -END - - -///// -// DESIGNINFO - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO DISCARDABLE -BEGIN - IDD_DIALOG1, DIALOGEX - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 179 - TOPMARGIN, 7 - BOTTOMMARGIN, 88 - END -END -#endif // APSTUDIO_INVOKED - - -#ifdef APSTUDIO_INVOKED - -///// -// TEXTINCLUDE - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE DISCARDABLE -BEGIN - "#include ""winres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE DISCARDABLE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///// -// Menu - -IDR_MENU1 MENU DISCARDABLE -BEGIN - POPUP "&Game" - BEGIN - MENUITEM "&Deal\tF2", IDM_GAME_NEW - MENUITEM SEPARATOR - MENUITEM "De&ck...", IDM_GAME_DECK - MENUITEM "&Options...", IDM_GAME_OPTIONS - MENUITEM SEPARATOR - MENUITEM "&Exit", IDM_GAME_EXIT - END - POPUP "&Help" - BEGIN - MENUITEM "&Contents\tF1", IDM_HELP_CONTENTS - MENUITEM "&About", IDM_HELP_ABOUT - END -END - -///// -// Accelerator - -IDR_ACCELERATOR1 ACCELERATORS DISCARDABLE -BEGIN - VK_F1, IDM_HELP_CONTENTS, VIRTKEY, NOINVERT - VK_F2, IDM_GAME_NEW, VIRTKEY, NOINVERT -END - - -///// -// Icon - -IDI_ICON1 ICON DISCARDABLE "solitaire.ico" -#endif // English (U.K.) resources - -///// - - -#ifndef APSTUDIO_INVOKED - -///// -#endif // not APSTUDIO_INVOKED +/* + * PROJECT: Solitaire + * LICENSE: Freeware, permission to use under Public Domain + * FILE: base/applications/games/solitaire/en.rc + * PURPOSE: English Language File for Solitaire + * PROGRAMMERS: Daniel "EmuandCo" Reimer (reimer.daniel@freenet.de) + */ +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS + +/* winemaker: #include "afxres.h" */ +/* winemaker:warning: 'afxres.h' is an MFC specific header. Replacing it with 'winres.h' */ +#include "winres.h" + +///// + +#undef APSTUDIO_READONLY_SYMBOLS + +///// +// English (U.K.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +///// +// Dialog + +IDD_DIALOG1 DIALOGEX DISCARDABLE 0, 0, 186, 95 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Dialog" +FONT 8, "MS Shell Dlg" +EXSTYLE DS_SHELLFONT +BEGIN + DEFPUSHBUTTON "OK",IDOK,129,7,50,14 + PUSHBUTTON "Cancel",IDCANCEL,129,24,50,14 +END + + +///// +// DESIGNINFO + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_DIALOG1, DIALOGEX + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 179 + TOPMARGIN, 7 + BOTTOMMARGIN, 88 + END +END +#endif // APSTUDIO_INVOKED + + +#ifdef APSTUDIO_INVOKED + +///// +// TEXTINCLUDE + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///// +// Menu + +IDR_MENU1 MENU DISCARDABLE +BEGIN + POPUP "&Game" + BEGIN + MENUITEM "&Deal\tF2", IDM_GAME_NEW + MENUITEM SEPARATOR + MENUITEM "De&ck...", IDM_GAME_DECK + MENUITEM "&Options...", IDM_GAME_OPTIONS + MENUITEM SEPARATOR + MENUITEM "&Exit", IDM_GAME_EXIT + END + POPUP "&Help" + BEGIN + MENUITEM "&Contents\tF1", IDM_HELP_CONTENTS + MENUITEM "&About", IDM_HELP_ABOUT + END +END + +///// +// Accelerator + +IDR_ACCELERATOR1 ACCELERATORS DISCARDABLE +BEGIN + VK_F1, IDM_HELP_CONTENTS, VIRTKEY, NOINVERT + VK_F2, IDM_GAME_NEW, VIRTKEY, NOINVERT +END + + +///// +// Icon + +IDI_ICON1 ICON DISCARDABLE "solitaire.ico" +#endif // English (U.K.) resources + +///// + + +#ifndef APSTUDIO_INVOKED + +///// +#endif // not APSTUDIO_INVOKED diff --git a/reactos/base/applications/games/solitaire/sol.rc b/reactos/base/applications/games/solitaire/sol.rc index 3bf475111b0..5cd95a8fc3b 100644 --- a/reactos/base/applications/games/solitaire/sol.rc +++ b/reactos/base/applications/games/solitaire/sol.rc @@ -1,5 +1,5 @@ -#include "resource.h" - -#include "de.rc" -#include "en.rc" -#include "uk.rc" +#include "resource.h" + +#include "de.rc" +#include "en.rc" +#include "uk.rc" diff --git a/reactos/base/applications/games/winemine/Nl.rc b/reactos/base/applications/games/winemine/Nl.rc index 6254b409662..1e6a993ce84 100644 --- a/reactos/base/applications/games/winemine/Nl.rc +++ b/reactos/base/applications/games/winemine/Nl.rc @@ -1,83 +1,83 @@ -#include "resource.h" - -LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL - -STRINGTABLE { - IDS_APPNAME, "WineMine" - -} - -MENU_WINEMINE MENU DISCARDABLE -{ - POPUP "&Optie's" { - MENUITEM "&Nieuw", IDM_NEW - MENUITEM SEPARATOR - MENUITEM "Vraagteken a&ctiveren", IDM_MARKQ - MENUITEM SEPARATOR - MENUITEM "&Beginner", IDM_BEGINNER - MENUITEM "&Gevorderde", IDM_ADVANCED - MENUITEM "&Expert", IDM_EXPERT - MENUITEM "Aan&passen", IDM_CUSTOM - MENUITEM SEPARATOR - MENUITEM "&Afsluiten", IDM_EXIT - } - POPUP "&Info" { - MENUITEM "Bes&te tijd", IDM_TIMES - MENUITEM "&Over", IDM_ABOUT - } -} - -DLG_TIMES DIALOG DISCARDABLE 0, 0, 160, 80 -STYLE DS_MODALFRAME | DS_3DLOOK | - WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP -CAPTION "Beste tijd" -{ - GROUPBOX "Beste tijd", IDNONE, 10, 10, 140, 45 - LTEXT "Beginner", IDNONE, 20, 20, 40, 8 - LTEXT "Gevorderde", IDNONE, 20, 30, 40, 8 - LTEXT "Expert", IDNONE, 20, 40, 40, 8 - LTEXT "999", IDC_TIME1, 70, 20, 15, 8 - LTEXT "999", IDC_TIME2, 70, 30, 15, 8 - LTEXT "999", IDC_TIME3, 70, 40, 15, 8 - LTEXT "", IDC_NAME1, 90, 20, 55, 8 - LTEXT "", IDC_NAME2, 90, 30, 55, 8 - LTEXT "", IDC_NAME3, 90, 40, 55, 8 - DEFPUSHBUTTON "OK", IDOK, 55, 60, 50, 15 -} - -DLG_CONGRATS DIALOG DISCARDABLE 0, 0, 160, 60 -STYLE DS_MODALFRAME | DS_3DLOOK | - WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP -CAPTION "Gefeleciteerd!" -{ - LTEXT "Gelieve uw naam in te voeren", IDIGNORE, 10, 10, 150, 10 - EDITTEXT IDC_EDITNAME, 25, 20, 110, 12 - DEFPUSHBUTTON "Ok", IDOK, 60, 40, 40, 15 -} - -DLG_CUSTOM DIALOG DISCARDABLE 0, 0, 100, 100 -STYLE DS_MODALFRAME | DS_3DLOOK | - WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP -CAPTION "Aangepast spel" -{ - LTEXT "Rijen", IDNONE, 5, 5, 30, 10 - LTEXT "Kolommen", IDNONE, 5, 35, 30, 10 - LTEXT "Mijnen", IDNONE, 5, 65, 30, 10 - EDITTEXT IDC_EDITROWS, 5, 15, 20, 12, ES_NUMBER - EDITTEXT IDC_EDITCOLS, 5, 45, 20, 12, ES_NUMBER - EDITTEXT IDC_EDITMINES, 5, 75, 20, 12, ES_NUMBER - DEFPUSHBUTTON "OK", IDOK, 40, 30, 50, 15 - PUSHBUTTON "Annuleren", IDCANCEL, 40, 50, 50, 15 -} - -DLG_ABOUT DIALOG DISCARDABLE 0, 0, 145, 80 -STYLE DS_MODALFRAME | DS_3DLOOK | - WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP -CAPTION "Over" -{ - LTEXT "WineMine", IDNONE, 10, 10, 35, 10 - LTEXT "Copyright 2000, Joshua Thielen", IDNONE, 35, 25, 100, 10 - LTEXT "onder de Wine licentie", IDNONE, 35, 35, 100, 10 - ICON "WINEMINE", IDNONE, 10, 25, 20, 20 - DEFPUSHBUTTON "OK", IDOK, 50, 60, 55, 15 -} +#include "resource.h" + +LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL + +STRINGTABLE { + IDS_APPNAME, "WineMine" + +} + +MENU_WINEMINE MENU DISCARDABLE +{ + POPUP "&Optie's" { + MENUITEM "&Nieuw", IDM_NEW + MENUITEM SEPARATOR + MENUITEM "Vraagteken a&ctiveren", IDM_MARKQ + MENUITEM SEPARATOR + MENUITEM "&Beginner", IDM_BEGINNER + MENUITEM "&Gevorderde", IDM_ADVANCED + MENUITEM "&Expert", IDM_EXPERT + MENUITEM "Aan&passen", IDM_CUSTOM + MENUITEM SEPARATOR + MENUITEM "&Afsluiten", IDM_EXIT + } + POPUP "&Info" { + MENUITEM "Bes&te tijd", IDM_TIMES + MENUITEM "&Over", IDM_ABOUT + } +} + +DLG_TIMES DIALOG DISCARDABLE 0, 0, 160, 80 +STYLE DS_MODALFRAME | DS_3DLOOK | + WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP +CAPTION "Beste tijd" +{ + GROUPBOX "Beste tijd", IDNONE, 10, 10, 140, 45 + LTEXT "Beginner", IDNONE, 20, 20, 40, 8 + LTEXT "Gevorderde", IDNONE, 20, 30, 40, 8 + LTEXT "Expert", IDNONE, 20, 40, 40, 8 + LTEXT "999", IDC_TIME1, 70, 20, 15, 8 + LTEXT "999", IDC_TIME2, 70, 30, 15, 8 + LTEXT "999", IDC_TIME3, 70, 40, 15, 8 + LTEXT "", IDC_NAME1, 90, 20, 55, 8 + LTEXT "", IDC_NAME2, 90, 30, 55, 8 + LTEXT "", IDC_NAME3, 90, 40, 55, 8 + DEFPUSHBUTTON "OK", IDOK, 55, 60, 50, 15 +} + +DLG_CONGRATS DIALOG DISCARDABLE 0, 0, 160, 60 +STYLE DS_MODALFRAME | DS_3DLOOK | + WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP +CAPTION "Gefeleciteerd!" +{ + LTEXT "Gelieve uw naam in te voeren", IDIGNORE, 10, 10, 150, 10 + EDITTEXT IDC_EDITNAME, 25, 20, 110, 12 + DEFPUSHBUTTON "Ok", IDOK, 60, 40, 40, 15 +} + +DLG_CUSTOM DIALOG DISCARDABLE 0, 0, 100, 100 +STYLE DS_MODALFRAME | DS_3DLOOK | + WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP +CAPTION "Aangepast spel" +{ + LTEXT "Rijen", IDNONE, 5, 5, 30, 10 + LTEXT "Kolommen", IDNONE, 5, 35, 30, 10 + LTEXT "Mijnen", IDNONE, 5, 65, 30, 10 + EDITTEXT IDC_EDITROWS, 5, 15, 20, 12, ES_NUMBER + EDITTEXT IDC_EDITCOLS, 5, 45, 20, 12, ES_NUMBER + EDITTEXT IDC_EDITMINES, 5, 75, 20, 12, ES_NUMBER + DEFPUSHBUTTON "OK", IDOK, 40, 30, 50, 15 + PUSHBUTTON "Annuleren", IDCANCEL, 40, 50, 50, 15 +} + +DLG_ABOUT DIALOG DISCARDABLE 0, 0, 145, 80 +STYLE DS_MODALFRAME | DS_3DLOOK | + WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP +CAPTION "Over" +{ + LTEXT "WineMine", IDNONE, 10, 10, 35, 10 + LTEXT "Copyright 2000, Joshua Thielen", IDNONE, 35, 25, 100, 10 + LTEXT "onder de Wine licentie", IDNONE, 35, 35, 100, 10 + ICON "WINEMINE", IDNONE, 10, 25, 20, 20 + DEFPUSHBUTTON "OK", IDOK, 50, 60, 55, 15 +} diff --git a/reactos/base/applications/getfirefox/lang/Fr.rc b/reactos/base/applications/getfirefox/lang/Fr.rc index 4d6e3b8ccf8..e394732f98b 100644 --- a/reactos/base/applications/getfirefox/lang/Fr.rc +++ b/reactos/base/applications/getfirefox/lang/Fr.rc @@ -1,45 +1,45 @@ -/* - * PROJECT: ReactOS utilities - * LICENSE: GPL - See COPYING in the top level directory - * FILE: apps/utils/getfirefox/En.rc - * PURPOSE: French resources - * COPYRIGHT: Copyright 2004 Mike McCormack for CodeWeavers - * Copyright 2005 Ge van Geldorp (gvg@reactos.org) - * Copyright 2005 G. Maton (mustang9@gmail.com) - French translation - */ -/* - * Based on Wine dlls/shdocvw/En.rc - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -LANGUAGE LANG_FRENCH, SUBLANG_DEFAULT - -IDD_GETFIREFOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76 -STYLE DS_MODALFRAME | DS_CENTER | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Tйlйchargement de Firefox" -FONT 8, "MS Shell Dlg" -{ - CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 - LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER - CHECKBOX "Supprimer ""Obtenir Firefox"" du Menu dйmarrer une fois terminй", IDC_REMOVE, - 10, 44, 200, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP - PUSHBUTTON "Annuler", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP -} - -STRINGTABLE -BEGIN - IDS_START_MENU_NAME "Obtenir Firefox" -END +/* + * PROJECT: ReactOS utilities + * LICENSE: GPL - See COPYING in the top level directory + * FILE: apps/utils/getfirefox/En.rc + * PURPOSE: French resources + * COPYRIGHT: Copyright 2004 Mike McCormack for CodeWeavers + * Copyright 2005 Ge van Geldorp (gvg@reactos.org) + * Copyright 2005 G. Maton (mustang9@gmail.com) - French translation + */ +/* + * Based on Wine dlls/shdocvw/En.rc + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +LANGUAGE LANG_FRENCH, SUBLANG_DEFAULT + +IDD_GETFIREFOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76 +STYLE DS_MODALFRAME | DS_CENTER | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Tйlйchargement de Firefox" +FONT 8, "MS Shell Dlg" +{ + CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 + LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER + CHECKBOX "Supprimer ""Obtenir Firefox"" du Menu dйmarrer une fois terminй", IDC_REMOVE, + 10, 44, 200, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + PUSHBUTTON "Annuler", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP +} + +STRINGTABLE +BEGIN + IDS_START_MENU_NAME "Obtenir Firefox" +END diff --git a/reactos/base/applications/getfirefox/lang/Hu.rc b/reactos/base/applications/getfirefox/lang/Hu.rc index 10b784dd82a..770cf2862d3 100644 --- a/reactos/base/applications/getfirefox/lang/Hu.rc +++ b/reactos/base/applications/getfirefox/lang/Hu.rc @@ -1,45 +1,45 @@ -/* - * PROJECT: ReactOS utilities - * LICENSE: GPL - See COPYING in the top level directory - * FILE: apps/utils/getfirefox/En.rc - * PURPOSE: English resources - * COPYRIGHT: Copyright 2004 Mike McCormack for CodeWeavers - * Copyright 2005 Ge van Geldorp (gvg@reactos.org) - * Copyright 2005 Robert Horvath (talley@cubeclub.hu) - Hungarian translation - */ -/* - * Based on Wine dlls/shdocvw/En.rc - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT - -IDD_GETFIREFOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76 -STYLE DS_MODALFRAME | DS_CENTER | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "A Firefox letцltйse" -FONT 8, "MS Shell Dlg" -{ - CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 - LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER - CHECKBOX "A ""Szerezd meg a Firefoxot"" elvбtolнtбsa a Start Menьbхl befejezйs utбn", IDC_REMOVE, - 10, 44, 200, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP - PUSHBUTTON "Mйgse", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP -} - -STRINGTABLE -BEGIN - IDS_START_MENU_NAME "Szerezd meg Firefoxot" -END +/* + * PROJECT: ReactOS utilities + * LICENSE: GPL - See COPYING in the top level directory + * FILE: apps/utils/getfirefox/En.rc + * PURPOSE: English resources + * COPYRIGHT: Copyright 2004 Mike McCormack for CodeWeavers + * Copyright 2005 Ge van Geldorp (gvg@reactos.org) + * Copyright 2005 Robert Horvath (talley@cubeclub.hu) - Hungarian translation + */ +/* + * Based on Wine dlls/shdocvw/En.rc + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT + +IDD_GETFIREFOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76 +STYLE DS_MODALFRAME | DS_CENTER | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "A Firefox letцltйse" +FONT 8, "MS Shell Dlg" +{ + CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 + LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER + CHECKBOX "A ""Szerezd meg a Firefoxot"" elvбtolнtбsa a Start Menьbхl befejezйs utбn", IDC_REMOVE, + 10, 44, 200, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + PUSHBUTTON "Mйgse", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP +} + +STRINGTABLE +BEGIN + IDS_START_MENU_NAME "Szerezd meg Firefoxot" +END diff --git a/reactos/base/applications/getfirefox/lang/Nl.rc b/reactos/base/applications/getfirefox/lang/Nl.rc index 2589e6eb11f..98b52070688 100644 --- a/reactos/base/applications/getfirefox/lang/Nl.rc +++ b/reactos/base/applications/getfirefox/lang/Nl.rc @@ -1,44 +1,44 @@ -/* - * PROJECT: ReactOS utilities - * LICENSE: GPL - See COPYING in the top level directory - * FILE: apps/utils/getfirefox/Nl.rc - * PURPOSE: Dutch resources - * COPYRIGHT: Copyright 2004 Mike McCormack for CodeWeavers - * Copyright 2005 Ge van Geldorp (gvg@reactos.org) - */ -/* - * Based on Wine dlls/shdocvw/En.rc - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL - -IDD_GETFIREFOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76 -STYLE DS_MODALFRAME | DS_CENTER | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Bezig met downloaden van Firefox" -FONT 8, "MS Shell Dlg" -{ - CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 - LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER - CHECKBOX "Verwijder ""Get Firefox"" uit het start menu wanneer de download compleet is", IDC_REMOVE, - 10, 44, 200, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP - PUSHBUTTON "Annuleren", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP -} - -STRINGTABLE -BEGIN - IDS_START_MENU_NAME "Get Firefox" -END +/* + * PROJECT: ReactOS utilities + * LICENSE: GPL - See COPYING in the top level directory + * FILE: apps/utils/getfirefox/Nl.rc + * PURPOSE: Dutch resources + * COPYRIGHT: Copyright 2004 Mike McCormack for CodeWeavers + * Copyright 2005 Ge van Geldorp (gvg@reactos.org) + */ +/* + * Based on Wine dlls/shdocvw/En.rc + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL + +IDD_GETFIREFOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76 +STYLE DS_MODALFRAME | DS_CENTER | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Bezig met downloaden van Firefox" +FONT 8, "MS Shell Dlg" +{ + CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 + LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER + CHECKBOX "Verwijder ""Get Firefox"" uit het start menu wanneer de download compleet is", IDC_REMOVE, + 10, 44, 200, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + PUSHBUTTON "Annuleren", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP +} + +STRINGTABLE +BEGIN + IDS_START_MENU_NAME "Get Firefox" +END diff --git a/reactos/base/applications/getfirefox/lang/Sv.rc b/reactos/base/applications/getfirefox/lang/Sv.rc index fc296c32030..4fcddd732d6 100644 --- a/reactos/base/applications/getfirefox/lang/Sv.rc +++ b/reactos/base/applications/getfirefox/lang/Sv.rc @@ -1,46 +1,46 @@ -/* - * PROJECT: ReactOS utilities - * LICENSE: GPL - See COPYING in the top level directory - * FILE: apps/utils/getfirefox/Sv.rc - * PURPOSE: Swedish resources - * COPYRIGHT: Copyright 2004 Mike McCormack for CodeWeavers - * Copyright 2005 Ge van Geldorp (gvg@reactos.org) - * Copyright 2006 Andreas Bjerkeholt (harteex@gmail.com) - */ -/* - * Based on Wine dlls/shdocvw/En.rc - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL - -IDD_GETFIREFOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76 -STYLE DS_MODALFRAME | DS_CENTER | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Hдmtar Firefox" -FONT 8, "MS Shell Dlg" -{ - CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 - LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER - CHECKBOX "Ta bort ""Hдmta Firefox"" frеn startmenyn nдr nedladdningen дr klar", IDC_REMOVE, - 10, 44, 200, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP - PUSHBUTTON "Avbryt", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP -} - -STRINGTABLE -BEGIN - IDS_START_MENU_NAME "Hдmta Firefox" -END - +/* + * PROJECT: ReactOS utilities + * LICENSE: GPL - See COPYING in the top level directory + * FILE: apps/utils/getfirefox/Sv.rc + * PURPOSE: Swedish resources + * COPYRIGHT: Copyright 2004 Mike McCormack for CodeWeavers + * Copyright 2005 Ge van Geldorp (gvg@reactos.org) + * Copyright 2006 Andreas Bjerkeholt (harteex@gmail.com) + */ +/* + * Based on Wine dlls/shdocvw/En.rc + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL + +IDD_GETFIREFOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76 +STYLE DS_MODALFRAME | DS_CENTER | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Hдmtar Firefox" +FONT 8, "MS Shell Dlg" +{ + CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12 + LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER + CHECKBOX "Ta bort ""Hдmta Firefox"" frеn startmenyn nдr nedladdningen дr klar", IDC_REMOVE, + 10, 44, 200, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + PUSHBUTTON "Avbryt", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP +} + +STRINGTABLE +BEGIN + IDS_START_MENU_NAME "Hдmta Firefox" +END + diff --git a/reactos/base/applications/ibrowser/De.rc b/reactos/base/applications/ibrowser/De.rc index 4087fc75ff8..6bcf03995c9 100644 --- a/reactos/base/applications/ibrowser/De.rc +++ b/reactos/base/applications/ibrowser/De.rc @@ -1,148 +1,148 @@ -//Microsoft Developer Studio generated resource script. -// -#include "ibrowser_intres.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// German (Germany) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU) -#ifdef _WIN32 -LANGUAGE LANG_GERMAN, SUBLANG_GERMAN -#pragma code_page(1252) -#endif //_WIN32 - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "ibrowser_intres.h\0" -END - -2 TEXTINCLUDE DISCARDABLE -BEGIN - "#include \0" -END - -3 TEXTINCLUDE DISCARDABLE -BEGIN - "#ifndef _ROS_\r\n" - "LANGUAGE LANG_GERMAN, SUBLANG_GERMAN\r\n" - "STRINGTABLE DISCARDABLE \r\n" - "BEGIN\r\n" - "#ifdef UNICODE\r\n" - "IDS_IBROWSER_VERSION_STR ""ROS IBrowser%0s""\r\n" - "#else\r\n" - "IDS_IBROWSER_VERSION_STR ""ROS IBrowser Ansi%0s""\r\n" - "#endif\r\n" - "END\r\n" - "#endif\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Menu -// - -IDM_SDIFRAME MENU PRELOAD DISCARDABLE -BEGIN - POPUP "&Datei" - BEGIN - MENUITEM "&Beenden", ID_FILE_EXIT - END - POPUP "&Ansicht" - BEGIN - MENUITEM "&Toolbar", ID_VIEW_TOOL_BAR - MENUITEM "S&ide Bar", ID_VIEW_SIDE_BAR, GRAYED - MENUITEM "&Status Bar", ID_VIEW_STATUSBAR - MENUITEM SEPARATOR - MENUITEM "&Aktualisieren\tF5", ID_REFRESH - MENUITEM "&Vollbild\tCtrl+Shift+S", ID_VIEW_FULLSCREEN - END - POPUP "&Hilfe" - BEGIN - MENUITEM "IBrowser &FAQ...", ID_IBROWSER_FAQ - MENUITEM "&Ьber IBrowser...", ID_ABOUT_IBROWSER - MENUITEM "Ьber &OS...", ID_ABOUT_WINDOWS - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_ABOUT_IBROWSER DIALOG DISCARDABLE 0, 0, 199, 106 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "About ReactOS Web Browser" -FONT 10, "MS Sans Serif" -BEGIN - LTEXT "ReactOS Web Browser",IDC_ROS_IBROWSER,91,13,104,11 - LTEXT "V 0.9",IDC_VERSION_TXT,91,27,104,8 - LTEXT "(c) 2005 Martin Fuchs",IDC_STATIC,91,42,104,8 - LTEXT "",IDC_WIN_VERSION,91,58,98,22 - LTEXT "http://www.sky.franken.de/explorer/",IDC_WWW,17,84,129, - 8 - CONTROL "&OK",IDOK,"Button",BS_OWNERDRAW | BS_FLAT | WS_GROUP, - 154,90,38,12 -END - - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE DISCARDABLE -BEGIN - IDS_TITLE "Reactos Internet Web Browser" - IDS_EMPTY "(Empty)" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_ABOUT_IBROWSER "&Ьber..." -END - -#endif // German (Germany) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// -#ifndef _ROS_ -LANGUAGE LANG_GERMAN, SUBLANG_GERMAN -STRINGTABLE DISCARDABLE -BEGIN -#ifdef UNICODE -IDS_IBROWSER_VERSION_STR "ROS IBrowser%0s" -#else -IDS_IBROWSER_VERSION_STR "ROS IBrowser Ansi%0s" -#endif -END -#endif - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - +//Microsoft Developer Studio generated resource script. +// +#include "ibrowser_intres.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// German (Germany) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU) +#ifdef _WIN32 +LANGUAGE LANG_GERMAN, SUBLANG_GERMAN +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "ibrowser_intres.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include \0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#ifndef _ROS_\r\n" + "LANGUAGE LANG_GERMAN, SUBLANG_GERMAN\r\n" + "STRINGTABLE DISCARDABLE \r\n" + "BEGIN\r\n" + "#ifdef UNICODE\r\n" + "IDS_IBROWSER_VERSION_STR ""ROS IBrowser%0s""\r\n" + "#else\r\n" + "IDS_IBROWSER_VERSION_STR ""ROS IBrowser Ansi%0s""\r\n" + "#endif\r\n" + "END\r\n" + "#endif\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDM_SDIFRAME MENU PRELOAD DISCARDABLE +BEGIN + POPUP "&Datei" + BEGIN + MENUITEM "&Beenden", ID_FILE_EXIT + END + POPUP "&Ansicht" + BEGIN + MENUITEM "&Toolbar", ID_VIEW_TOOL_BAR + MENUITEM "S&ide Bar", ID_VIEW_SIDE_BAR, GRAYED + MENUITEM "&Status Bar", ID_VIEW_STATUSBAR + MENUITEM SEPARATOR + MENUITEM "&Aktualisieren\tF5", ID_REFRESH + MENUITEM "&Vollbild\tCtrl+Shift+S", ID_VIEW_FULLSCREEN + END + POPUP "&Hilfe" + BEGIN + MENUITEM "IBrowser &FAQ...", ID_IBROWSER_FAQ + MENUITEM "&Ьber IBrowser...", ID_ABOUT_IBROWSER + MENUITEM "Ьber &OS...", ID_ABOUT_WINDOWS + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_ABOUT_IBROWSER DIALOG DISCARDABLE 0, 0, 199, 106 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "About ReactOS Web Browser" +FONT 10, "MS Sans Serif" +BEGIN + LTEXT "ReactOS Web Browser",IDC_ROS_IBROWSER,91,13,104,11 + LTEXT "V 0.9",IDC_VERSION_TXT,91,27,104,8 + LTEXT "(c) 2005 Martin Fuchs",IDC_STATIC,91,42,104,8 + LTEXT "",IDC_WIN_VERSION,91,58,98,22 + LTEXT "http://www.sky.franken.de/explorer/",IDC_WWW,17,84,129, + 8 + CONTROL "&OK",IDOK,"Button",BS_OWNERDRAW | BS_FLAT | WS_GROUP, + 154,90,38,12 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_TITLE "Reactos Internet Web Browser" + IDS_EMPTY "(Empty)" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_ABOUT_IBROWSER "&Ьber..." +END + +#endif // German (Germany) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#ifndef _ROS_ +LANGUAGE LANG_GERMAN, SUBLANG_GERMAN +STRINGTABLE DISCARDABLE +BEGIN +#ifdef UNICODE +IDS_IBROWSER_VERSION_STR "ROS IBrowser%0s" +#else +IDS_IBROWSER_VERSION_STR "ROS IBrowser Ansi%0s" +#endif +END +#endif + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/reactos/base/applications/ibrowser/Fr.rc b/reactos/base/applications/ibrowser/Fr.rc index d7205135d4a..3b2af5e1e26 100644 --- a/reactos/base/applications/ibrowser/Fr.rc +++ b/reactos/base/applications/ibrowser/Fr.rc @@ -1,151 +1,151 @@ -//Microsoft Developer Studio generated resource script. -// -#include "ibrowser_intres.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// German (Germany) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU) -#ifdef _WIN32 -LANGUAGE LANG_GERMAN, SUBLANG_GERMAN -#pragma code_page(1252) -#endif //_WIN32 - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "ibrowser_intres.h\0" -END - -2 TEXTINCLUDE DISCARDABLE -BEGIN - "#include \r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - -#endif // German (Germany) resources -///////////////////////////////////////////////////////////////////////////// - - -///////////////////////////////////////////////////////////////////////////// -// French (France) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA) -#ifdef _WIN32 -LANGUAGE LANG_FRENCH, SUBLANG_FRENCH -#pragma code_page(1252) -#endif //_WIN32 - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -3 TEXTINCLUDE DISCARDABLE -BEGIN - "#ifndef _ROS_\r\n" - "LANGUAGE LANG_FRENCH, SUBLANG_FRENCH\r\n" - "STRINGTABLE DISCARDABLE \r\n" - "BEGIN\r\n" - "#ifdef UNICODE\r\n" - "IDS_IBROWSER_VERSION_STR ""Navigateur Internet de ReactOS%0s""\r\n" - "#else\r\n" - "IDS_IBROWSER_VERSION_STR ""Navigateur Internet de ReactOS Ansi%0s""\r\n" - "#endif\r\n" - "END\r\n" - "#endif\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Menu -// - -IDM_SDIFRAME MENU PRELOAD DISCARDABLE -BEGIN - POPUP "&Fichier" - BEGIN - MENUITEM "&Ouvrir", ID_FILE_OPEN - MENUITEM "&Quitter", ID_FILE_EXIT - END - POPUP "&Affichage" - BEGIN - MENUITEM "Barre d'ou&tils", ID_VIEW_TOOL_BAR - MENUITEM "Pann&eau lat?al", ID_VIEW_SIDE_BAR, GRAYED - MENUITEM "&Barre d'?at", ID_VIEW_STATUSBAR - MENUITEM SEPARATOR - MENUITEM "Actualise&r", ID_REFRESH - MENUITEM "&Plein ?ran", ID_VIEW_FULLSCREEN - END - POPUP "&Aide" - BEGIN - MENUITEM "&Rubriques d'aide de iBrowser", ID_IBROWSER_FAQ - MENUITEM "? propos de iBrowser...", ID_ABOUT_IBROWSER - MENUITEM "? propos de ReactOS...", ID_ABOUT_WINDOWS - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE DISCARDABLE -BEGIN - IDS_TITLE "Navigateur internet de Reactos" - IDS_EMPTY "(Vide)" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_ABOUT_IBROWSER "? propos de iBrowser..." -END - -#endif // French (France) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// -#ifndef _ROS_ -LANGUAGE LANG_FRENCH, SUBLANG_FRENCH -STRINGTABLE DISCARDABLE -BEGIN -#ifdef UNICODE -IDS_IBROWSER_VERSION_STR "Navigateur Internet de ReactOS%0s" -#else -IDS_IBROWSER_VERSION_STR "Navigateur Internet de ReactOS Ansi%0s" -#endif -END -#endif - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - +//Microsoft Developer Studio generated resource script. +// +#include "ibrowser_intres.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// German (Germany) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU) +#ifdef _WIN32 +LANGUAGE LANG_GERMAN, SUBLANG_GERMAN +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "ibrowser_intres.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include \r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + +#endif // German (Germany) resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// French (France) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA) +#ifdef _WIN32 +LANGUAGE LANG_FRENCH, SUBLANG_FRENCH +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#ifndef _ROS_\r\n" + "LANGUAGE LANG_FRENCH, SUBLANG_FRENCH\r\n" + "STRINGTABLE DISCARDABLE \r\n" + "BEGIN\r\n" + "#ifdef UNICODE\r\n" + "IDS_IBROWSER_VERSION_STR ""Navigateur Internet de ReactOS%0s""\r\n" + "#else\r\n" + "IDS_IBROWSER_VERSION_STR ""Navigateur Internet de ReactOS Ansi%0s""\r\n" + "#endif\r\n" + "END\r\n" + "#endif\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDM_SDIFRAME MENU PRELOAD DISCARDABLE +BEGIN + POPUP "&Fichier" + BEGIN + MENUITEM "&Ouvrir", ID_FILE_OPEN + MENUITEM "&Quitter", ID_FILE_EXIT + END + POPUP "&Affichage" + BEGIN + MENUITEM "Barre d'ou&tils", ID_VIEW_TOOL_BAR + MENUITEM "Pann&eau lat?al", ID_VIEW_SIDE_BAR, GRAYED + MENUITEM "&Barre d'?at", ID_VIEW_STATUSBAR + MENUITEM SEPARATOR + MENUITEM "Actualise&r", ID_REFRESH + MENUITEM "&Plein ?ran", ID_VIEW_FULLSCREEN + END + POPUP "&Aide" + BEGIN + MENUITEM "&Rubriques d'aide de iBrowser", ID_IBROWSER_FAQ + MENUITEM "? propos de iBrowser...", ID_ABOUT_IBROWSER + MENUITEM "? propos de ReactOS...", ID_ABOUT_WINDOWS + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_TITLE "Navigateur internet de Reactos" + IDS_EMPTY "(Vide)" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_ABOUT_IBROWSER "? propos de iBrowser..." +END + +#endif // French (France) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#ifndef _ROS_ +LANGUAGE LANG_FRENCH, SUBLANG_FRENCH +STRINGTABLE DISCARDABLE +BEGIN +#ifdef UNICODE +IDS_IBROWSER_VERSION_STR "Navigateur Internet de ReactOS%0s" +#else +IDS_IBROWSER_VERSION_STR "Navigateur Internet de ReactOS Ansi%0s" +#endif +END +#endif + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/reactos/base/applications/ibrowser/Hu.rc b/reactos/base/applications/ibrowser/Hu.rc index ee9b38e1707..8b905229500 100644 --- a/reactos/base/applications/ibrowser/Hu.rc +++ b/reactos/base/applications/ibrowser/Hu.rc @@ -1,81 +1,81 @@ -//Microsoft Developer Studio generated resource script. -// -#include "ibrowser_intres.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// German (Germany) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU) -#ifdef _WIN32 -LANGUAGE LANG_GERMAN, SUBLANG_GERMAN -#pragma code_page(1252) -#endif //_WIN32 - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "ibrowser_intres.h\0" -END - -2 TEXTINCLUDE DISCARDABLE -BEGIN - "#include \0" -END - -3 TEXTINCLUDE DISCARDABLE -BEGIN - "#ifndef _ROS_\r\n" - "LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT\r\n" - "STRINGTABLE DISCARDABLE \r\n" - "BEGIN\r\n" - "#ifdef UNICODE\r\n" - "IDS_IBROWSER_VERSION_STR ""A ReactOS %s webbцngйszх%0s""\r\n" - "#else\r\n" - "IDS_IBROWSER_VERSION_STR ""A ReactOS %s webbцngйszх Ansi%0s""\r\n" - "#endif\r\n" - "END\r\n" - "#endif\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - -#endif // German (Germany) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// -#ifndef _ROS_ -LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE -BEGIN -#ifdef UNICODE -IDS_IBROWSER_VERSION_STR "A ReactOS %s webbцngйszх%0s" -#else -IDS_IBROWSER_VERSION_STR "A ReactOS %s webbцngйszх Ansi%0s" -#endif -END -#endif - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - +//Microsoft Developer Studio generated resource script. +// +#include "ibrowser_intres.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// German (Germany) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU) +#ifdef _WIN32 +LANGUAGE LANG_GERMAN, SUBLANG_GERMAN +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "ibrowser_intres.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include \0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#ifndef _ROS_\r\n" + "LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT\r\n" + "STRINGTABLE DISCARDABLE \r\n" + "BEGIN\r\n" + "#ifdef UNICODE\r\n" + "IDS_IBROWSER_VERSION_STR ""A ReactOS %s webbцngйszх%0s""\r\n" + "#else\r\n" + "IDS_IBROWSER_VERSION_STR ""A ReactOS %s webbцngйszх Ansi%0s""\r\n" + "#endif\r\n" + "END\r\n" + "#endif\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + +#endif // German (Germany) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#ifndef _ROS_ +LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT +STRINGTABLE DISCARDABLE +BEGIN +#ifdef UNICODE +IDS_IBROWSER_VERSION_STR "A ReactOS %s webbцngйszх%0s" +#else +IDS_IBROWSER_VERSION_STR "A ReactOS %s webbцngйszх Ansi%0s" +#endif +END +#endif + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/reactos/base/applications/ibrowser/Makefile-MinGW b/reactos/base/applications/ibrowser/Makefile-MinGW index 8d71521635c..fff8a0ed8da 100644 --- a/reactos/base/applications/ibrowser/Makefile-MinGW +++ b/reactos/base/applications/ibrowser/Makefile-MinGW @@ -1,68 +1,68 @@ -# -# ROS Internet Web Browser -# -# Makefile.MinGW -# - -CC = gcc -CXX = g++ -LINK = g++ - -CFLAGS = -DWIN32 -D_WIN32_IE=0x0600 -D_WIN32_WINNT=0x0501 -DWINVER=0x0500 -fexceptions -Wall -Wno-unused-value -I. -I$(EXPAT_INC) -RCFLAGS = -DWIN32 -D__WINDRES__ -LFLAGS = -Wl,--subsystem,windows - -ifdef DEBUG -CFLAGS += -D_DEBUG -g -RCFLAGS += -D_DEBUG -LFLAGS += -g -else -CFLAGS += -DNDEBUG -Os -RCFLAGS += -DNDEBUG -LFLAGS += -s -endif - -ifndef UNICODE -UNICODE = 1 -endif - -ifeq ($(UNICODE),1) -CFLAGS += -DUNICODE -# LFLAGS+= -Wl,--entry,_wWinMain@16 -RCFLAGS += -DUNICODE -endif - -CXXFLAGS = $(CFLAGS) - -EXEC_SUFFIX = .exe -RES_SUFFIX = .coff - -VPATH = utility - -PROGRAM = ibrowser - -TARGET = $(PROGRAM)$(EXEC_SUFFIX) - -OBJECTS = \ - utility.o \ - window.o \ - ibrowser.o \ - webchild.o \ - mainframe.o \ - favorites.o \ - xs-native.o \ - xmlstorage.o - -LIBS = gdi32 comctl32 shell32 ole32 uuid oleaut32 - -all: $(TARGET) - -$(TARGET): $(OBJECTS) $(PROGRAM)$(RES_SUFFIX) - $(LINK) $(LFLAGS) -o $@ $^ $(addprefix -l,$(LIBS)) $(addprefix -l,$(DELAYIMPORTS)) - -ibrowser$(RES_SUFFIX): $(PROGRAM)_intres.rc res/*.bmp res/*.ico - windres $(RCFLAGS) -o $@ $(PROGRAM)_intres.rc - -clean: - rm -f $(TARGET) $(OBJECTS) $(PROGRAM)$(RES_SUFFIX) \ - desktop/*.o dialogs/*.o shell/*.o taskbar/*.o utility/*.o +# +# ROS Internet Web Browser +# +# Makefile.MinGW +# + +CC = gcc +CXX = g++ +LINK = g++ + +CFLAGS = -DWIN32 -D_WIN32_IE=0x0600 -D_WIN32_WINNT=0x0501 -DWINVER=0x0500 -fexceptions -Wall -Wno-unused-value -I. -I$(EXPAT_INC) +RCFLAGS = -DWIN32 -D__WINDRES__ +LFLAGS = -Wl,--subsystem,windows + +ifdef DEBUG +CFLAGS += -D_DEBUG -g +RCFLAGS += -D_DEBUG +LFLAGS += -g +else +CFLAGS += -DNDEBUG -Os +RCFLAGS += -DNDEBUG +LFLAGS += -s +endif + +ifndef UNICODE +UNICODE = 1 +endif + +ifeq ($(UNICODE),1) +CFLAGS += -DUNICODE +# LFLAGS+= -Wl,--entry,_wWinMain@16 +RCFLAGS += -DUNICODE +endif + +CXXFLAGS = $(CFLAGS) + +EXEC_SUFFIX = .exe +RES_SUFFIX = .coff + +VPATH = utility + +PROGRAM = ibrowser + +TARGET = $(PROGRAM)$(EXEC_SUFFIX) + +OBJECTS = \ + utility.o \ + window.o \ + ibrowser.o \ + webchild.o \ + mainframe.o \ + favorites.o \ + xs-native.o \ + xmlstorage.o + +LIBS = gdi32 comctl32 shell32 ole32 uuid oleaut32 + +all: $(TARGET) + +$(TARGET): $(OBJECTS) $(PROGRAM)$(RES_SUFFIX) + $(LINK) $(LFLAGS) -o $@ $^ $(addprefix -l,$(LIBS)) $(addprefix -l,$(DELAYIMPORTS)) + +ibrowser$(RES_SUFFIX): $(PROGRAM)_intres.rc res/*.bmp res/*.ico + windres $(RCFLAGS) -o $@ $(PROGRAM)_intres.rc + +clean: + rm -f $(TARGET) $(OBJECTS) $(PROGRAM)$(RES_SUFFIX) \ + desktop/*.o dialogs/*.o shell/*.o taskbar/*.o utility/*.o diff --git a/reactos/base/applications/ibrowser/Makefile-precomp b/reactos/base/applications/ibrowser/Makefile-precomp index 47b5f305501..16ede679423 100644 --- a/reactos/base/applications/ibrowser/Makefile-precomp +++ b/reactos/base/applications/ibrowser/Makefile-precomp @@ -1,73 +1,73 @@ -# -# ROS Internet Web Browser -# -# Makefile-precomp -# -# MinGW Makefile with precompiled header support -# - -CC = gcc -CXX = g++ -LINK = g++ - -CFLAGS = -DWIN32 -D_WIN32_IE=0x0600 -D_WIN32_WINNT=0x0501 -DWINVER=0x0500 -fexceptions -Wall -Wno-unused-value -I. -I$(EXPAT_INC) -RCFLAGS = -DWIN32 -D__WINDRES__ -LFLAGS = -Wl,--subsystem,windows - -ifdef DEBUG -CFLAGS += -D_DEBUG -g -RCFLAGS += -D_DEBUG -LFLAGS += -g -else -CFLAGS += -DNDEBUG -Os -march=pentium4 -RCFLAGS += -DNDEBUG -LFLAGS += -s -endif - -ifndef UNICODE -UNICODE = 1 -endif - -ifeq ($(UNICODE),1) -CFLAGS += -DUNICODE -# LFLAGS+= -Wl,--entry,_wWinMain@16 -RCFLAGS += -DUNICODE -endif - -CXXFLAGS = $(CFLAGS) - -EXEC_SUFFIX = .exe -RES_SUFFIX = .coff - -VPATH = utility - -PROGRAM = ibrowser - -TARGET = $(PROGRAM)$(EXEC_SUFFIX) - -OBJECTS = \ - utility.o \ - window.o \ - ibrowser.o \ - webchild.o \ - mainframe.o \ - favorites.o \ - xs-native.o \ - xmlstorage.o - -LIBS = gdi32 comctl32 shell32 ole32 oleaut32 uuid - -all: precomp.h.gch $(TARGET) - -precomp.h.gch: *.h utility/*.h - $(CXX) $(CFLAGS) precomp.h - -$(TARGET): $(OBJECTS) $(PROGRAM)$(RES_SUFFIX) - $(LINK) $(LFLAGS) -o $@ $^ $(addprefix -l,$(LIBS)) $(addprefix -l,$(DELAYIMPORTS)) - -ibrowser$(RES_SUFFIX): $(PROGRAM)_intres.rc res/*.bmp res/*.ico - windres $(RCFLAGS) -o $@ $(PROGRAM)_intres.rc - -clean: - rm -f $(TARGET) $(OBJECTS) $(PROGRAM)$(RES_SUFFIX) precomp.h.gch \ - utility/*.o +# +# ROS Internet Web Browser +# +# Makefile-precomp +# +# MinGW Makefile with precompiled header support +# + +CC = gcc +CXX = g++ +LINK = g++ + +CFLAGS = -DWIN32 -D_WIN32_IE=0x0600 -D_WIN32_WINNT=0x0501 -DWINVER=0x0500 -fexceptions -Wall -Wno-unused-value -I. -I$(EXPAT_INC) +RCFLAGS = -DWIN32 -D__WINDRES__ +LFLAGS = -Wl,--subsystem,windows + +ifdef DEBUG +CFLAGS += -D_DEBUG -g +RCFLAGS += -D_DEBUG +LFLAGS += -g +else +CFLAGS += -DNDEBUG -Os -march=pentium4 +RCFLAGS += -DNDEBUG +LFLAGS += -s +endif + +ifndef UNICODE +UNICODE = 1 +endif + +ifeq ($(UNICODE),1) +CFLAGS += -DUNICODE +# LFLAGS+= -Wl,--entry,_wWinMain@16 +RCFLAGS += -DUNICODE +endif + +CXXFLAGS = $(CFLAGS) + +EXEC_SUFFIX = .exe +RES_SUFFIX = .coff + +VPATH = utility + +PROGRAM = ibrowser + +TARGET = $(PROGRAM)$(EXEC_SUFFIX) + +OBJECTS = \ + utility.o \ + window.o \ + ibrowser.o \ + webchild.o \ + mainframe.o \ + favorites.o \ + xs-native.o \ + xmlstorage.o + +LIBS = gdi32 comctl32 shell32 ole32 oleaut32 uuid + +all: precomp.h.gch $(TARGET) + +precomp.h.gch: *.h utility/*.h + $(CXX) $(CFLAGS) precomp.h + +$(TARGET): $(OBJECTS) $(PROGRAM)$(RES_SUFFIX) + $(LINK) $(LFLAGS) -o $@ $^ $(addprefix -l,$(LIBS)) $(addprefix -l,$(DELAYIMPORTS)) + +ibrowser$(RES_SUFFIX): $(PROGRAM)_intres.rc res/*.bmp res/*.ico + windres $(RCFLAGS) -o $@ $(PROGRAM)_intres.rc + +clean: + rm -f $(TARGET) $(OBJECTS) $(PROGRAM)$(RES_SUFFIX) precomp.h.gch \ + utility/*.o diff --git a/reactos/base/applications/ibrowser/Ro.rc b/reactos/base/applications/ibrowser/Ro.rc index 884a319dad2..35cc1db8ed3 100644 --- a/reactos/base/applications/ibrowser/Ro.rc +++ b/reactos/base/applications/ibrowser/Ro.rc @@ -1,122 +1,122 @@ -//Microsoft Developer Studio generated resource script. -// -#include "ibrowser_intres.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// Neutral (Default) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEUD) -#ifdef _WIN32 -LANGUAGE LANG_NEUTRAL, SUBLANG_DEFAULT -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Menu -// - -IDM_SDIFRAME MENU PRELOAD DISCARDABLE -BEGIN - POPUP "&Fisier" - BEGIN - MENUITEM "&Iesire", ID_FILE_EXIT - END - POPUP "&Prezentare" - BEGIN - MENUITEM "&Bara cu instrumente", ID_VIEW_TOOL_BAR - MENUITEM "&Side Bar", ID_VIEW_SIDE_BAR, GRAYED - MENUITEM "&Bara de stare", ID_VIEW_STATUSBAR - MENUITEM SEPARATOR - MENUITEM "&Resetare\tF5", ID_REFRESH - MENUITEM "F&ull Screen\tCtrl+Shift+S", ID_VIEW_FULLSCREEN - END - POPUP "&Ajutor" - BEGIN - MENUITEM "IBrowser &FAQ...", ID_IBROWSER_FAQ - MENUITEM "&Despre IBrowser...", ID_ABOUT_IBROWSER - MENUITEM "Despre &OS...", ID_ABOUT_WINDOWS - END -END - -#endif // Neutral (Default) resources -///////////////////////////////////////////////////////////////////////////// - - -///////////////////////////////////////////////////////////////////////////// -// German (Germany) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU) -#ifdef _WIN32 -LANGUAGE LANG_GERMAN, SUBLANG_GERMAN -#pragma code_page(1252) -#endif //_WIN32 - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "ibrowser_intres.h\0" -END - -2 TEXTINCLUDE DISCARDABLE -BEGIN - "#include \0" -END - -3 TEXTINCLUDE DISCARDABLE -BEGIN - "#ifndef _ROS_\r\n" - "LANGUAGE LANG_ROMANIAN, SUBLANG_DEFAULT\r\n" - "STRINGTABLE DISCARDABLE \r\n" - "BEGIN\r\n" - "#ifdef UNICODE\r\n" - "IDS_IBROWSER_VERSION_STR ""ROS IBrowser%0s""\r\n" - "#else\r\n" - "IDS_IBROWSER_VERSION_STR ""ROS IBrowser Ansi%0s""\r\n" - "#endif\r\n" - "END\r\n" - "#endif\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - -#endif // German (Germany) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// -#ifndef _ROS_ -LANGUAGE LANG_ROMANIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE -BEGIN -#ifdef UNICODE -IDS_IBROWSER_VERSION_STR "ROS IBrowser%0s" -#else -IDS_IBROWSER_VERSION_STR "ROS IBrowser Ansi%0s" -#endif -END -#endif - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - +//Microsoft Developer Studio generated resource script. +// +#include "ibrowser_intres.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// Neutral (Default) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEUD) +#ifdef _WIN32 +LANGUAGE LANG_NEUTRAL, SUBLANG_DEFAULT +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDM_SDIFRAME MENU PRELOAD DISCARDABLE +BEGIN + POPUP "&Fisier" + BEGIN + MENUITEM "&Iesire", ID_FILE_EXIT + END + POPUP "&Prezentare" + BEGIN + MENUITEM "&Bara cu instrumente", ID_VIEW_TOOL_BAR + MENUITEM "&Side Bar", ID_VIEW_SIDE_BAR, GRAYED + MENUITEM "&Bara de stare", ID_VIEW_STATUSBAR + MENUITEM SEPARATOR + MENUITEM "&Resetare\tF5", ID_REFRESH + MENUITEM "F&ull Screen\tCtrl+Shift+S", ID_VIEW_FULLSCREEN + END + POPUP "&Ajutor" + BEGIN + MENUITEM "IBrowser &FAQ...", ID_IBROWSER_FAQ + MENUITEM "&Despre IBrowser...", ID_ABOUT_IBROWSER + MENUITEM "Despre &OS...", ID_ABOUT_WINDOWS + END +END + +#endif // Neutral (Default) resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// German (Germany) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU) +#ifdef _WIN32 +LANGUAGE LANG_GERMAN, SUBLANG_GERMAN +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "ibrowser_intres.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include \0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#ifndef _ROS_\r\n" + "LANGUAGE LANG_ROMANIAN, SUBLANG_DEFAULT\r\n" + "STRINGTABLE DISCARDABLE \r\n" + "BEGIN\r\n" + "#ifdef UNICODE\r\n" + "IDS_IBROWSER_VERSION_STR ""ROS IBrowser%0s""\r\n" + "#else\r\n" + "IDS_IBROWSER_VERSION_STR ""ROS IBrowser Ansi%0s""\r\n" + "#endif\r\n" + "END\r\n" + "#endif\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + +#endif // German (Germany) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#ifndef _ROS_ +LANGUAGE LANG_ROMANIAN, SUBLANG_DEFAULT +STRINGTABLE DISCARDABLE +BEGIN +#ifdef UNICODE +IDS_IBROWSER_VERSION_STR "ROS IBrowser%0s" +#else +IDS_IBROWSER_VERSION_STR "ROS IBrowser Ansi%0s" +#endif +END +#endif + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/reactos/base/applications/ibrowser/Sv.rc b/reactos/base/applications/ibrowser/Sv.rc index d52763d0e62..31a24f06768 100644 --- a/reactos/base/applications/ibrowser/Sv.rc +++ b/reactos/base/applications/ibrowser/Sv.rc @@ -1,140 +1,140 @@ -//Microsoft Developer Studio generated resource script. -// -#include "ibrowser_intres.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// German (Germany) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU) -#ifdef _WIN32 -LANGUAGE LANG_GERMAN, SUBLANG_GERMAN -#pragma code_page(1252) -#endif //_WIN32 - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "ibrowser_intres.h\0" -END - -2 TEXTINCLUDE DISCARDABLE -BEGIN - "#include \0" -END - -3 TEXTINCLUDE DISCARDABLE -BEGIN - "#ifndef _ROS_\r\n" - "LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT\r\n" - "STRINGTABLE DISCARDABLE \r\n" - "BEGIN\r\n" - "#ifdef UNICODE\r\n" - "IDS_IBROWSER_VERSION_STR ""ROS IBrowser%0s""\r\n" - "#else\r\n" - "IDS_IBROWSER_VERSION_STR ""ROS IBrowser Ansi%0s""\r\n" - "#endif\r\n" - "END\r\n" - "#endif\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - -#endif // German (Germany) resources -///////////////////////////////////////////////////////////////////////////// - - -///////////////////////////////////////////////////////////////////////////// -// Swedish resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_SVE) -#ifdef _WIN32 -LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Menu -// - -IDM_SDIFRAME MENU PRELOAD DISCARDABLE -BEGIN - POPUP "&Arkiv" - BEGIN - MENUITEM "&Цppna", ID_FILE_OPEN - MENUITEM "&Avsluta", ID_FILE_EXIT - END - POPUP "&Visa" - BEGIN - MENUITEM "&Verktygsfдlt", ID_VIEW_TOOL_BAR - MENUITEM "S&idfдlt", ID_VIEW_SIDE_BAR, GRAYED - MENUITEM "&Statusfдlt", ID_VIEW_STATUSBAR - MENUITEM SEPARATOR - MENUITEM "&Uppdatera\tF5", ID_REFRESH - MENUITEM "&Fullskдrm\tCtrl+Shift+S", ID_VIEW_FULLSCREEN - END - POPUP "&Hjдlp" - BEGIN - MENUITEM "IBrowser &FAQ...", ID_IBROWSER_FAQ - MENUITEM "Om &IBrowser...", ID_ABOUT_IBROWSER - MENUITEM "Om &operativsystemet...", ID_ABOUT_WINDOWS - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE DISCARDABLE -BEGIN - IDS_TITLE "ReactOS webblдsare" - IDS_EMPTY "(Tom)" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_ABOUT_IBROWSER "&Om..." -END - -#endif // Swedish resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// -#ifndef _ROS_ -LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE -BEGIN -#ifdef UNICODE -IDS_IBROWSER_VERSION_STR "ROS IBrowser%0s" -#else -IDS_IBROWSER_VERSION_STR "ROS IBrowser Ansi%0s" -#endif -END -#endif - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - +//Microsoft Developer Studio generated resource script. +// +#include "ibrowser_intres.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// German (Germany) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU) +#ifdef _WIN32 +LANGUAGE LANG_GERMAN, SUBLANG_GERMAN +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "ibrowser_intres.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include \0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#ifndef _ROS_\r\n" + "LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT\r\n" + "STRINGTABLE DISCARDABLE \r\n" + "BEGIN\r\n" + "#ifdef UNICODE\r\n" + "IDS_IBROWSER_VERSION_STR ""ROS IBrowser%0s""\r\n" + "#else\r\n" + "IDS_IBROWSER_VERSION_STR ""ROS IBrowser Ansi%0s""\r\n" + "#endif\r\n" + "END\r\n" + "#endif\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + +#endif // German (Germany) resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// Swedish resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_SVE) +#ifdef _WIN32 +LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDM_SDIFRAME MENU PRELOAD DISCARDABLE +BEGIN + POPUP "&Arkiv" + BEGIN + MENUITEM "&Цppna", ID_FILE_OPEN + MENUITEM "&Avsluta", ID_FILE_EXIT + END + POPUP "&Visa" + BEGIN + MENUITEM "&Verktygsfдlt", ID_VIEW_TOOL_BAR + MENUITEM "S&idfдlt", ID_VIEW_SIDE_BAR, GRAYED + MENUITEM "&Statusfдlt", ID_VIEW_STATUSBAR + MENUITEM SEPARATOR + MENUITEM "&Uppdatera\tF5", ID_REFRESH + MENUITEM "&Fullskдrm\tCtrl+Shift+S", ID_VIEW_FULLSCREEN + END + POPUP "&Hjдlp" + BEGIN + MENUITEM "IBrowser &FAQ...", ID_IBROWSER_FAQ + MENUITEM "Om &IBrowser...", ID_ABOUT_IBROWSER + MENUITEM "Om &operativsystemet...", ID_ABOUT_WINDOWS + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_TITLE "ReactOS webblдsare" + IDS_EMPTY "(Tom)" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_ABOUT_IBROWSER "&Om..." +END + +#endif // Swedish resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#ifndef _ROS_ +LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT +STRINGTABLE DISCARDABLE +BEGIN +#ifdef UNICODE +IDS_IBROWSER_VERSION_STR "ROS IBrowser%0s" +#else +IDS_IBROWSER_VERSION_STR "ROS IBrowser Ansi%0s" +#endif +END +#endif + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/reactos/base/applications/ibrowser/ibrowser.dsp b/reactos/base/applications/ibrowser/ibrowser.dsp index 6de0920891c..1ee6858fd36 100644 --- a/reactos/base/applications/ibrowser/ibrowser.dsp +++ b/reactos/base/applications/ibrowser/ibrowser.dsp @@ -1,346 +1,346 @@ -# Microsoft Developer Studio Project File - Name="ibrowser" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=IBROWSER - 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 "ibrowser.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 "ibrowser.mak" CFG="IBROWSER - WIN32 DEBUG" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "ibrowser - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "ibrowser - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE "ibrowser - Win32 Debug Release" (based on "Win32 (x86) Console Application") -!MESSAGE "ibrowser - Win32 Unicode Release" (based on "Win32 (x86) Console Application") -!MESSAGE "ibrowser - Win32 Unicode Debug" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.cmd -RSC=rc.exe - -!IF "$(CFG)" == "ibrowser - 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 "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GR /GX /O1 /D "NDEBUG" /D "WIN32" /D _WIN32_IE=0x0600 /D _WIN32_WINNT=0x0501 /Yu"precomp.h" /FD /c -# ADD BASE RSC /l 0x407 /d "NDEBUG" -# ADD RSC /l 0x407 /d "NDEBUG" -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:console /machine:I386 -# ADD LINK32 gdi32.lib comctl32.lib shell32.lib ole32.lib /nologo /subsystem:windows /machine:I386 /libpath:"Release" -# SUBTRACT LINK32 /pdb:none - -!ELSEIF "$(CFG)" == "ibrowser - 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 "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /MDd /W3 /Gm /GR /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D _WIN32_IE=0x0600 /D _WIN32_WINNT=0x0501 /FR /Yu"precomp.h" /FD /GZ /c -# ADD BASE RSC /l 0x407 /d "_DEBUG" -# ADD RSC /l 0x407 /d "_DEBUG" -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:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib gdi32.lib comctl32.lib shell32.lib ole32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept /libpath:"Debug" -# SUBTRACT LINK32 /pdb:none - -!ELSEIF "$(CFG)" == "ibrowser - Win32 Debug Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "DRelease" -# PROP BASE Intermediate_Dir "DRelease" -# PROP BASE Ignore_Export_Lib 0 -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "DRelease" -# PROP Intermediate_Dir "DRelease" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_ROS_" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GR /GX /Zi /O2 /D "NDEBUG" /D "WIN32" /D _WIN32_IE=0x0600 /D _WIN32_WINNT=0x0501 /FR /Yu"precomp.h" /FD /c -# ADD BASE RSC /l 0x407 /d "NDEBUG" -# ADD RSC /l 0x407 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 user32.lib gdi32.lib advapi32.lib shell32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 gdi32.lib comctl32.lib shell32.lib ole32.lib /nologo /subsystem:windows /debug /machine:I386 -# SUBTRACT LINK32 /pdb:none - -!ELSEIF "$(CFG)" == "ibrowser - Win32 Unicode Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "URelease" -# PROP BASE Intermediate_Dir "URelease" -# PROP BASE Ignore_Export_Lib 0 -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "URelease" -# PROP Intermediate_Dir "URelease" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "UNICODE" /D "_ROS_" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GR /GX /O2 /D "NDEBUG" /D "UNICODE" /D "WIN32" /D _WIN32_IE=0x0600 /D _WIN32_WINNT=0x0501 /Yu"precomp.h" /FD /c -# ADD BASE RSC /l 0x407 /d "NDEBUG" -# ADD RSC /l 0x407 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 user32.lib gdi32.lib advapi32.lib shell32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 gdi32.lib comctl32.lib shell32.lib ole32.lib /nologo /subsystem:windows /machine:I386 /libpath:"Release" -# SUBTRACT LINK32 /pdb:none - -!ELSEIF "$(CFG)" == "ibrowser - Win32 Unicode Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "UDebug" -# PROP BASE Intermediate_Dir "UDebug" -# PROP BASE Ignore_Export_Lib 0 -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "UDebug" -# PROP Intermediate_Dir "UDebug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "UNICODE" /D "_ROS_" /FR /YX /FD /GZ /c -# ADD CPP /nologo /MDd /W3 /Gm /GR /GX /ZI /Od /D "_DEBUG" /D "UNICODE" /D "WIN32" /D _WIN32_IE=0x0600 /D _WIN32_WINNT=0x0501 /FR /Yu"precomp.h" /FD /GZ /c -# ADD BASE RSC /l 0x407 /d "_DEBUG" -# ADD RSC /l 0x407 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 user32.lib gdi32.lib advapi32.lib shell32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 gdi32.lib comctl32.lib shell32.lib ole32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept /libpath:"Debug" -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "ibrowser - Win32 Release" -# Name "ibrowser - Win32 Debug" -# Name "ibrowser - Win32 Debug Release" -# Name "ibrowser - Win32 Unicode Release" -# Name "ibrowser - Win32 Unicode Debug" -# Begin Group "utility" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\utility\comutil.h -# End Source File -# Begin Source File - -SOURCE=.\utility\utility.cpp -# End Source File -# Begin Source File - -SOURCE=.\utility\utility.h -# End Source File -# Begin Source File - -SOURCE=.\utility\window.cpp -# End Source File -# Begin Source File - -SOURCE=.\utility\window.h -# End Source File -# Begin Source File - -SOURCE=.\utility\xmlstorage.cpp -# End Source File -# Begin Source File - -SOURCE=.\utility\xmlstorage.h -# End Source File -# Begin Source File - -SOURCE=".\utility\xs-native.cpp" -# End Source File -# End Group -# Begin Group "resources" - -# PROP Default_Filter "bmp,ico" -# Begin Source File - -SOURCE=.\De.rc -# PROP Exclude_From_Build 1 -# End Source File -# Begin Source File - -SOURCE=.\res\dot.ico -# End Source File -# Begin Source File - -SOURCE=.\res\dot_red.ico -# End Source File -# Begin Source File - -SOURCE=.\res\dot_trans.ico -# End Source File -# Begin Source File - -SOURCE=.\En.rc -# PROP Exclude_From_Build 1 -# End Source File -# Begin Source File - -SOURCE=.\Es.rc -# PROP Exclude_From_Build 1 -# End Source File -# Begin Source File - -SOURCE=.\res\favorites.ico -# End Source File -# Begin Source File - -SOURCE=.\Fr.rc -# PROP Exclude_From_Build 1 -# End Source File -# Begin Source File - -SOURCE=.\Hu.rc -# PROP Exclude_From_Build 1 -# End Source File -# Begin Source File - -SOURCE=.\res\ibrowser.ico -# End Source File -# Begin Source File - -SOURCE=.\ibrowser.rc -# PROP Exclude_From_Build 1 -# End Source File -# Begin Source File - -SOURCE=.\ibrowser_intres.h -# End Source File -# Begin Source File - -SOURCE=.\ibrowser_intres.rc -# End Source File -# Begin Source File - -SOURCE=.\Ja.rc -# PROP Exclude_From_Build 1 -# End Source File -# Begin Source File - -SOURCE=.\res\network.ico -# End Source File -# Begin Source File - -SOURCE=.\res\reactos.ico -# End Source File -# Begin Source File - -SOURCE=.\Ro.rc -# PROP Exclude_From_Build 1 -# End Source File -# Begin Source File - -SOURCE=.\Sv.rc -# PROP Exclude_From_Build 1 -# End Source File -# Begin Source File - -SOURCE=.\res\toolbar.bmp -# End Source File -# End Group -# Begin Group "main" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\favorites.cpp -# End Source File -# Begin Source File - -SOURCE=.\favorites.h -# End Source File -# Begin Source File - -SOURCE=.\ibrowser.cpp -# End Source File -# Begin Source File - -SOURCE=.\ibrowser.h -# End Source File -# Begin Source File - -SOURCE=.\mainframe.cpp -# End Source File -# Begin Source File - -SOURCE=.\mainframe.h -# End Source File -# Begin Source File - -SOURCE=.\precomp.cpp -# ADD CPP /Yc"precomp.h" -# End Source File -# Begin Source File - -SOURCE=.\precomp.h -# End Source File -# Begin Source File - -SOURCE=.\webchild.cpp -# End Source File -# Begin Source File - -SOURCE=.\webchild.h -# End Source File -# End Group -# Begin Source File - -SOURCE=.\readme.txt -# End Source File -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="ibrowser" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=IBROWSER - 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 "ibrowser.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 "ibrowser.mak" CFG="IBROWSER - WIN32 DEBUG" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "ibrowser - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "ibrowser - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE "ibrowser - Win32 Debug Release" (based on "Win32 (x86) Console Application") +!MESSAGE "ibrowser - Win32 Unicode Release" (based on "Win32 (x86) Console Application") +!MESSAGE "ibrowser - Win32 Unicode Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.cmd +RSC=rc.exe + +!IF "$(CFG)" == "ibrowser - 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 "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GR /GX /O1 /D "NDEBUG" /D "WIN32" /D _WIN32_IE=0x0600 /D _WIN32_WINNT=0x0501 /Yu"precomp.h" /FD /c +# ADD BASE RSC /l 0x407 /d "NDEBUG" +# ADD RSC /l 0x407 /d "NDEBUG" +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:console /machine:I386 +# ADD LINK32 gdi32.lib comctl32.lib shell32.lib ole32.lib /nologo /subsystem:windows /machine:I386 /libpath:"Release" +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "ibrowser - 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 "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GR /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D _WIN32_IE=0x0600 /D _WIN32_WINNT=0x0501 /FR /Yu"precomp.h" /FD /GZ /c +# ADD BASE RSC /l 0x407 /d "_DEBUG" +# ADD RSC /l 0x407 /d "_DEBUG" +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:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib gdi32.lib comctl32.lib shell32.lib ole32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept /libpath:"Debug" +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "ibrowser - Win32 Debug Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "DRelease" +# PROP BASE Intermediate_Dir "DRelease" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "DRelease" +# PROP Intermediate_Dir "DRelease" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_ROS_" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GR /GX /Zi /O2 /D "NDEBUG" /D "WIN32" /D _WIN32_IE=0x0600 /D _WIN32_WINNT=0x0501 /FR /Yu"precomp.h" /FD /c +# ADD BASE RSC /l 0x407 /d "NDEBUG" +# ADD RSC /l 0x407 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 user32.lib gdi32.lib advapi32.lib shell32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 gdi32.lib comctl32.lib shell32.lib ole32.lib /nologo /subsystem:windows /debug /machine:I386 +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "ibrowser - Win32 Unicode Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "URelease" +# PROP BASE Intermediate_Dir "URelease" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "URelease" +# PROP Intermediate_Dir "URelease" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "UNICODE" /D "_ROS_" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GR /GX /O2 /D "NDEBUG" /D "UNICODE" /D "WIN32" /D _WIN32_IE=0x0600 /D _WIN32_WINNT=0x0501 /Yu"precomp.h" /FD /c +# ADD BASE RSC /l 0x407 /d "NDEBUG" +# ADD RSC /l 0x407 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 user32.lib gdi32.lib advapi32.lib shell32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 gdi32.lib comctl32.lib shell32.lib ole32.lib /nologo /subsystem:windows /machine:I386 /libpath:"Release" +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "ibrowser - Win32 Unicode Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "UDebug" +# PROP BASE Intermediate_Dir "UDebug" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "UDebug" +# PROP Intermediate_Dir "UDebug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "UNICODE" /D "_ROS_" /FR /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GR /GX /ZI /Od /D "_DEBUG" /D "UNICODE" /D "WIN32" /D _WIN32_IE=0x0600 /D _WIN32_WINNT=0x0501 /FR /Yu"precomp.h" /FD /GZ /c +# ADD BASE RSC /l 0x407 /d "_DEBUG" +# ADD RSC /l 0x407 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 user32.lib gdi32.lib advapi32.lib shell32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 gdi32.lib comctl32.lib shell32.lib ole32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept /libpath:"Debug" +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "ibrowser - Win32 Release" +# Name "ibrowser - Win32 Debug" +# Name "ibrowser - Win32 Debug Release" +# Name "ibrowser - Win32 Unicode Release" +# Name "ibrowser - Win32 Unicode Debug" +# Begin Group "utility" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\utility\comutil.h +# End Source File +# Begin Source File + +SOURCE=.\utility\utility.cpp +# End Source File +# Begin Source File + +SOURCE=.\utility\utility.h +# End Source File +# Begin Source File + +SOURCE=.\utility\window.cpp +# End Source File +# Begin Source File + +SOURCE=.\utility\window.h +# End Source File +# Begin Source File + +SOURCE=.\utility\xmlstorage.cpp +# End Source File +# Begin Source File + +SOURCE=.\utility\xmlstorage.h +# End Source File +# Begin Source File + +SOURCE=".\utility\xs-native.cpp" +# End Source File +# End Group +# Begin Group "resources" + +# PROP Default_Filter "bmp,ico" +# Begin Source File + +SOURCE=.\De.rc +# PROP Exclude_From_Build 1 +# End Source File +# Begin Source File + +SOURCE=.\res\dot.ico +# End Source File +# Begin Source File + +SOURCE=.\res\dot_red.ico +# End Source File +# Begin Source File + +SOURCE=.\res\dot_trans.ico +# End Source File +# Begin Source File + +SOURCE=.\En.rc +# PROP Exclude_From_Build 1 +# End Source File +# Begin Source File + +SOURCE=.\Es.rc +# PROP Exclude_From_Build 1 +# End Source File +# Begin Source File + +SOURCE=.\res\favorites.ico +# End Source File +# Begin Source File + +SOURCE=.\Fr.rc +# PROP Exclude_From_Build 1 +# End Source File +# Begin Source File + +SOURCE=.\Hu.rc +# PROP Exclude_From_Build 1 +# End Source File +# Begin Source File + +SOURCE=.\res\ibrowser.ico +# End Source File +# Begin Source File + +SOURCE=.\ibrowser.rc +# PROP Exclude_From_Build 1 +# End Source File +# Begin Source File + +SOURCE=.\ibrowser_intres.h +# End Source File +# Begin Source File + +SOURCE=.\ibrowser_intres.rc +# End Source File +# Begin Source File + +SOURCE=.\Ja.rc +# PROP Exclude_From_Build 1 +# End Source File +# Begin Source File + +SOURCE=.\res\network.ico +# End Source File +# Begin Source File + +SOURCE=.\res\reactos.ico +# End Source File +# Begin Source File + +SOURCE=.\Ro.rc +# PROP Exclude_From_Build 1 +# End Source File +# Begin Source File + +SOURCE=.\Sv.rc +# PROP Exclude_From_Build 1 +# End Source File +# Begin Source File + +SOURCE=.\res\toolbar.bmp +# End Source File +# End Group +# Begin Group "main" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\favorites.cpp +# End Source File +# Begin Source File + +SOURCE=.\favorites.h +# End Source File +# Begin Source File + +SOURCE=.\ibrowser.cpp +# End Source File +# Begin Source File + +SOURCE=.\ibrowser.h +# End Source File +# Begin Source File + +SOURCE=.\mainframe.cpp +# End Source File +# Begin Source File + +SOURCE=.\mainframe.h +# End Source File +# Begin Source File + +SOURCE=.\precomp.cpp +# ADD CPP /Yc"precomp.h" +# End Source File +# Begin Source File + +SOURCE=.\precomp.h +# End Source File +# Begin Source File + +SOURCE=.\webchild.cpp +# End Source File +# Begin Source File + +SOURCE=.\webchild.h +# End Source File +# End Group +# Begin Source File + +SOURCE=.\readme.txt +# End Source File +# End Target +# End Project diff --git a/reactos/base/applications/ibrowser/ibrowser.dsw b/reactos/base/applications/ibrowser/ibrowser.dsw index eb8d2593f88..a5c8ffbcaf0 100644 --- a/reactos/base/applications/ibrowser/ibrowser.dsw +++ b/reactos/base/applications/ibrowser/ibrowser.dsw @@ -1,41 +1,41 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "ibrowser"=.\ibrowser.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "make_ibrowser"=.\make_ibrowser.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "ibrowser"=.\ibrowser.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "make_ibrowser"=.\make_ibrowser.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/reactos/base/applications/ibrowser/ibrowser.rc b/reactos/base/applications/ibrowser/ibrowser.rc index 2dbd1d6ceff..d552c19abf6 100644 --- a/reactos/base/applications/ibrowser/ibrowser.rc +++ b/reactos/base/applications/ibrowser/ibrowser.rc @@ -1,13 +1,13 @@ -#include - -#include "ibrowser_intres.rc" - -#define REACTOS_STR_FILE_DESCRIPTION "ROS Internet Web Browser\0" -#define REACTOS_STR_INTERNAL_NAME "ibrowser\0" -#define REACTOS_STR_ORIGINAL_FILENAME "ibrowser.exe\0" -#include - -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US - -#define IDS_VERSION_STR 5000 -#define IDS_IBROWSER_VERSION_STR 5001 +#include + +#include "ibrowser_intres.rc" + +#define REACTOS_STR_FILE_DESCRIPTION "ROS Internet Web Browser\0" +#define REACTOS_STR_INTERNAL_NAME "ibrowser\0" +#define REACTOS_STR_ORIGINAL_FILENAME "ibrowser.exe\0" +#include + +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +#define IDS_VERSION_STR 5000 +#define IDS_IBROWSER_VERSION_STR 5001 diff --git a/reactos/base/applications/ibrowser/ibrowser_intres.rc b/reactos/base/applications/ibrowser/ibrowser_intres.rc index 5911d099402..5e85c2da3a2 100644 --- a/reactos/base/applications/ibrowser/ibrowser_intres.rc +++ b/reactos/base/applications/ibrowser/ibrowser_intres.rc @@ -1,110 +1,110 @@ -//Microsoft Developer Studio generated resource script. -// -#include "ibrowser_intres.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// Neutral resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU) -#ifdef _WIN32 -LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Bitmap -// - -IDB_TOOLBAR BITMAP DISCARDABLE "res/toolbar.bmp" - -///////////////////////////////////////////////////////////////////////////// -// -// Accelerator -// - -IDA_IBROWSER ACCELERATORS DISCARDABLE -BEGIN - 120, ID_FILE_EXIT, ASCII, ALT // "X" - 115, ID_VIEW_FULLSCREEN, ASCII, SHIFT, CONTROL // "S" -END - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "ibrowser_intres.h\0" -END - -2 TEXTINCLUDE DISCARDABLE -BEGIN - "#include \r\n" - "\0" -END - -3 TEXTINCLUDE DISCARDABLE -BEGIN - "#include ""En.rc""\r\n" - "#include ""Es.rc""\r\n" - "#include ""Fr.rc""\r\n" - "#include ""Sv.rc""\r\n" - "#include ""Hu.rc""\r\n" - "#include ""Ro.rc""\r\n" - "#include ""Nl.rc""\r\n" - "#include ""No.rc""\r\n" - "#include ""Ja.rc""\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_REACTOS ICON DISCARDABLE "res/reactos.ico" -IDI_FAVORITES ICON DISCARDABLE "res/favorites.ico" -IDI_DOT ICON DISCARDABLE "res/dot.ico" -IDI_DOT_TRANS ICON DISCARDABLE "res/dot_trans.ico" -IDI_DOT_RED ICON DISCARDABLE "res/dot_red.ico" -IDI_IBROWSER ICON DISCARDABLE "res/ibrowser.ico" -#endif // Neutral resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// -#include "En.rc" -#include "Es.rc" -#include "Fr.rc" -#include "Sv.rc" -#include "Hu.rc" -#include "Ro.rc" -#include "Nl.rc" -#include "Ja.rc" -#include "No.rc" -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - +//Microsoft Developer Studio generated resource script. +// +#include "ibrowser_intres.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// Neutral resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU) +#ifdef _WIN32 +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDB_TOOLBAR BITMAP DISCARDABLE "res/toolbar.bmp" + +///////////////////////////////////////////////////////////////////////////// +// +// Accelerator +// + +IDA_IBROWSER ACCELERATORS DISCARDABLE +BEGIN + 120, ID_FILE_EXIT, ASCII, ALT // "X" + 115, ID_VIEW_FULLSCREEN, ASCII, SHIFT, CONTROL // "S" +END + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "ibrowser_intres.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include \r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""En.rc""\r\n" + "#include ""Es.rc""\r\n" + "#include ""Fr.rc""\r\n" + "#include ""Sv.rc""\r\n" + "#include ""Hu.rc""\r\n" + "#include ""Ro.rc""\r\n" + "#include ""Nl.rc""\r\n" + "#include ""No.rc""\r\n" + "#include ""Ja.rc""\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_REACTOS ICON DISCARDABLE "res/reactos.ico" +IDI_FAVORITES ICON DISCARDABLE "res/favorites.ico" +IDI_DOT ICON DISCARDABLE "res/dot.ico" +IDI_DOT_TRANS ICON DISCARDABLE "res/dot_trans.ico" +IDI_DOT_RED ICON DISCARDABLE "res/dot_red.ico" +IDI_IBROWSER ICON DISCARDABLE "res/ibrowser.ico" +#endif // Neutral resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#include "En.rc" +#include "Es.rc" +#include "Fr.rc" +#include "Sv.rc" +#include "Hu.rc" +#include "Ro.rc" +#include "Nl.rc" +#include "Ja.rc" +#include "No.rc" +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/reactos/base/applications/ibrowser/make_ibrowser.dsp b/reactos/base/applications/ibrowser/make_ibrowser.dsp index 46f54a75a6c..bda6a87b3e8 100644 --- a/reactos/base/applications/ibrowser/make_ibrowser.dsp +++ b/reactos/base/applications/ibrowser/make_ibrowser.dsp @@ -1,147 +1,147 @@ -# Microsoft Developer Studio Project File - Name="make_ibrowser" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) External Target" 0x0106 - -CFG=make_ibrowser - Win32 Release -!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 "make_ibrowser.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 "make_ibrowser.mak" CFG="make_ibrowser - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "make_ibrowser - Win32 Release" (based on "Win32 (x86) External Target") -!MESSAGE "make_ibrowser - Win32 Debug" (based on "Win32 (x86) External Target") -!MESSAGE "make_ibrowser - Win32 Unicode Debug" (based on "Win32 (x86) External Target") -!MESSAGE "make_ibrowser - Win32 Unicode Release" (based on "Win32 (x86) External Target") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" - -!IF "$(CFG)" == "make_ibrowser - 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 Cmd_Line "NMAKE /f make_ibrowser.mak" -# PROP BASE Rebuild_Opt "/a" -# PROP BASE Target_File "make_ibrowser.exe" -# PROP BASE Bsc_Name "make_ibrowser.bsc" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Cmd_Line "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" mingw32-make -f Makefile-precomp UNICODE=0" -# PROP Rebuild_Opt "clean all" -# PROP Target_File "ibrowser.exe" -# PROP Bsc_Name "" -# PROP Target_Dir "" - -!ELSEIF "$(CFG)" == "make_ibrowser - 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 Cmd_Line "NMAKE /f make_ibrowser.mak" -# PROP BASE Rebuild_Opt "/a" -# PROP BASE Target_File "make_ibrowser.exe" -# PROP BASE Bsc_Name "make_ibrowser.bsc" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Cmd_Line "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" mingw32-make -f Makefile-precomp UNICODE=0 DEBUG=1" -# PROP Rebuild_Opt "clean all" -# PROP Target_File "ibrowser.exe" -# PROP Bsc_Name "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" make -f Makefile.MinGW UNICODE=0 DEBUG=1" -# PROP Target_Dir "" - -!ELSEIF "$(CFG)" == "make_ibrowser - Win32 Unicode Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "UDebug" -# PROP BASE Intermediate_Dir "UDebug" -# PROP BASE Cmd_Line "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" make -f Makefile.MinGW UNICODE=1 DEBUG=1" -# PROP BASE Rebuild_Opt "clean all" -# PROP BASE Target_File "ibrowser.exe" -# PROP BASE Bsc_Name "" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "UDebug" -# PROP Intermediate_Dir "UDebug" -# PROP Cmd_Line "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" mingw32-make -f Makefile.MinGW UNICODE=1 DEBUG=1" -# PROP Rebuild_Opt "clean all" -# PROP Target_File "ibrowser.exe" -# PROP Bsc_Name "" -# PROP Target_Dir "" - -!ELSEIF "$(CFG)" == "make_ibrowser - Win32 Unicode Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "URelease" -# PROP BASE Intermediate_Dir "URelease" -# PROP BASE Cmd_Line "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" make -f Makefile.MinGW UNICODE=1" -# PROP BASE Rebuild_Opt "clean all" -# PROP BASE Target_File "ibrowser.exe" -# PROP BASE Bsc_Name "" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "URelease" -# PROP Intermediate_Dir "URelease" -# PROP Cmd_Line "msdevfilt -gcc mingw32-make -f Makefile-precomp UNICODE=1" -# PROP Rebuild_Opt "clean all" -# PROP Target_File "ibrowser.exe" -# PROP Bsc_Name "" -# PROP Target_Dir "" - -!ENDIF - -# Begin Target - -# Name "make_ibrowser - Win32 Release" -# Name "make_ibrowser - Win32 Debug" -# Name "make_ibrowser - Win32 Unicode Debug" -# Name "make_ibrowser - Win32 Unicode Release" - -!IF "$(CFG)" == "make_ibrowser - Win32 Release" - -!ELSEIF "$(CFG)" == "make_ibrowser - Win32 Debug" - -!ELSEIF "$(CFG)" == "make_ibrowser - Win32 Unicode Debug" - -!ELSEIF "$(CFG)" == "make_ibrowser - Win32 Unicode Release" - -!ENDIF - -# Begin Source File - -SOURCE=.\ibrowser.rbuild -# End Source File -# Begin Source File - -SOURCE=".\Makefile-MinGW" -# End Source File -# Begin Source File - -SOURCE=".\Makefile-precomp" -# End Source File -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="make_ibrowser" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) External Target" 0x0106 + +CFG=make_ibrowser - Win32 Release +!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 "make_ibrowser.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 "make_ibrowser.mak" CFG="make_ibrowser - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "make_ibrowser - Win32 Release" (based on "Win32 (x86) External Target") +!MESSAGE "make_ibrowser - Win32 Debug" (based on "Win32 (x86) External Target") +!MESSAGE "make_ibrowser - Win32 Unicode Debug" (based on "Win32 (x86) External Target") +!MESSAGE "make_ibrowser - Win32 Unicode Release" (based on "Win32 (x86) External Target") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" + +!IF "$(CFG)" == "make_ibrowser - 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 Cmd_Line "NMAKE /f make_ibrowser.mak" +# PROP BASE Rebuild_Opt "/a" +# PROP BASE Target_File "make_ibrowser.exe" +# PROP BASE Bsc_Name "make_ibrowser.bsc" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Cmd_Line "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" mingw32-make -f Makefile-precomp UNICODE=0" +# PROP Rebuild_Opt "clean all" +# PROP Target_File "ibrowser.exe" +# PROP Bsc_Name "" +# PROP Target_Dir "" + +!ELSEIF "$(CFG)" == "make_ibrowser - 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 Cmd_Line "NMAKE /f make_ibrowser.mak" +# PROP BASE Rebuild_Opt "/a" +# PROP BASE Target_File "make_ibrowser.exe" +# PROP BASE Bsc_Name "make_ibrowser.bsc" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Cmd_Line "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" mingw32-make -f Makefile-precomp UNICODE=0 DEBUG=1" +# PROP Rebuild_Opt "clean all" +# PROP Target_File "ibrowser.exe" +# PROP Bsc_Name "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" make -f Makefile.MinGW UNICODE=0 DEBUG=1" +# PROP Target_Dir "" + +!ELSEIF "$(CFG)" == "make_ibrowser - Win32 Unicode Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "UDebug" +# PROP BASE Intermediate_Dir "UDebug" +# PROP BASE Cmd_Line "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" make -f Makefile.MinGW UNICODE=1 DEBUG=1" +# PROP BASE Rebuild_Opt "clean all" +# PROP BASE Target_File "ibrowser.exe" +# PROP BASE Bsc_Name "" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "UDebug" +# PROP Intermediate_Dir "UDebug" +# PROP Cmd_Line "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" mingw32-make -f Makefile.MinGW UNICODE=1 DEBUG=1" +# PROP Rebuild_Opt "clean all" +# PROP Target_File "ibrowser.exe" +# PROP Bsc_Name "" +# PROP Target_Dir "" + +!ELSEIF "$(CFG)" == "make_ibrowser - Win32 Unicode Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "URelease" +# PROP BASE Intermediate_Dir "URelease" +# PROP BASE Cmd_Line "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" make -f Makefile.MinGW UNICODE=1" +# PROP BASE Rebuild_Opt "clean all" +# PROP BASE Target_File "ibrowser.exe" +# PROP BASE Bsc_Name "" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "URelease" +# PROP Intermediate_Dir "URelease" +# PROP Cmd_Line "msdevfilt -gcc mingw32-make -f Makefile-precomp UNICODE=1" +# PROP Rebuild_Opt "clean all" +# PROP Target_File "ibrowser.exe" +# PROP Bsc_Name "" +# PROP Target_Dir "" + +!ENDIF + +# Begin Target + +# Name "make_ibrowser - Win32 Release" +# Name "make_ibrowser - Win32 Debug" +# Name "make_ibrowser - Win32 Unicode Debug" +# Name "make_ibrowser - Win32 Unicode Release" + +!IF "$(CFG)" == "make_ibrowser - Win32 Release" + +!ELSEIF "$(CFG)" == "make_ibrowser - Win32 Debug" + +!ELSEIF "$(CFG)" == "make_ibrowser - Win32 Unicode Debug" + +!ELSEIF "$(CFG)" == "make_ibrowser - Win32 Unicode Release" + +!ENDIF + +# Begin Source File + +SOURCE=.\ibrowser.rbuild +# End Source File +# Begin Source File + +SOURCE=".\Makefile-MinGW" +# End Source File +# Begin Source File + +SOURCE=".\Makefile-precomp" +# End Source File +# End Target +# End Project diff --git a/reactos/base/applications/ibrowser/readme.txt b/reactos/base/applications/ibrowser/readme.txt index 234c112c97e..77f7f637006 100644 --- a/reactos/base/applications/ibrowser/readme.txt +++ b/reactos/base/applications/ibrowser/readme.txt @@ -1,9 +1,9 @@ - -IBrowser is a Web Browser User Interface similar derived from ROS Explorer. -It encapsulates the Mozilla or MS Web Browser Control. - - -For more information about ReactOS Explorer please look at the FAQ web page: - -http://www.sky.franken.de/explorer/ - + +IBrowser is a Web Browser User Interface similar derived from ROS Explorer. +It encapsulates the Mozilla or MS Web Browser Control. + + +For more information about ReactOS Explorer please look at the FAQ web page: + +http://www.sky.franken.de/explorer/ + diff --git a/reactos/base/applications/imagesoft/about.c b/reactos/base/applications/imagesoft/about.c index 9ee80c3dcba..88cdbaa08e4 100644 --- a/reactos/base/applications/imagesoft/about.c +++ b/reactos/base/applications/imagesoft/about.c @@ -1,54 +1,54 @@ -#include - -INT_PTR CALLBACK -AboutDialogProc(HWND hDlg, - UINT message, - WPARAM wParam, - LPARAM lParam) -{ - HWND hLicenseEditWnd; - HICON hIcon = NULL; - TCHAR strLicense[700]; - - switch (message) - { - case WM_INITDIALOG: - - hIcon = LoadImage(hInstance, - MAKEINTRESOURCE(IDI_IMAGESOFTICON), - 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; -} +#include + +INT_PTR CALLBACK +AboutDialogProc(HWND hDlg, + UINT message, + WPARAM wParam, + LPARAM lParam) +{ + HWND hLicenseEditWnd; + HICON hIcon = NULL; + TCHAR strLicense[700]; + + switch (message) + { + case WM_INITDIALOG: + + hIcon = LoadImage(hInstance, + MAKEINTRESOURCE(IDI_IMAGESOFTICON), + 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; +} diff --git a/reactos/base/applications/imagesoft/floatwindow.c b/reactos/base/applications/imagesoft/floatwindow.c index cca17faafad..73f4d9217dc 100644 --- a/reactos/base/applications/imagesoft/floatwindow.c +++ b/reactos/base/applications/imagesoft/floatwindow.c @@ -1,539 +1,539 @@ -#include - -static const TCHAR szFloatWndClass[] = TEXT("ImageSoftFloatWndClass"); - -#define ID_TIMER 1 - -TBBUTTON ToolsButtons[] = { -/* iBitmap, idCommand, fsState, fsStyle, bReserved[2], dwData, iString */ - {TBICON_RECTSEL, ID_RECTSEL, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* rectangle select */ - {TBICON_MOVESEL, ID_MOVESEL, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* move selected pixels */ - {TBICON_LASOO, ID_LASOO, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* lasso select */ - {TBICON_MOVE, ID_MOVE, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* move selection */ - {TBICON_ECLIPSESEL, ID_ECLIPSESEL, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* elipse select */ - {TBICON_ZOOM, ID_ZOOM, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* zoom */ - {TBICON_MAGICWAND, ID_MAGICWAND, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* magic wand */ - {TBICON_TEXT, ID_TEXT, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* text */ - {TBICON_PAINTBRUSH, ID_PAINTBRUSH, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* paintbrush */ - {TBICON_ERASER, ID_ERASER, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* eraser */ - {TBICON_PENCIL, ID_PENCIL, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* pencil */ - {TBICON_COLORPICKER, ID_COLORPICKER, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* color picker */ - {TBICON_CLONESTAMP, ID_CLONESTAMP, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* clone stamp */ - {TBICON_RECOLORING, ID_RECOLORING, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* recolor */ - {TBICON_PAINTBUCKET, ID_PAINTBUCKET, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* paint bucket */ - {TBICON_LINE, ID_LINE, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* line */ - {TBICON_RECTANGLE, ID_RECTANGLE, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* rectangle */ - {TBICON_ROUNDRECT, ID_ROUNDRECT, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* round rectangle */ - {TBICON_ECLIPSE, ID_ECLIPSE, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* elipse */ - {TBICON_FREEFORM, ID_FREEFORM, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* free form */ - - {10, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, -}; - -TBBUTTON HistoryButtons[] = { - {TBICON_BACKSM, ID_BACK, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* back */ - {TBICON_UNDOSM, ID_UNDO, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* undo */ - {TBICON_REDOSM, ID_REDO, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* redo */ - {TBICON_FORWARDSM, ID_FORWARD, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* forward */ - {TBICON_DELETESM, ID_DELETE, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* delete */ -}; - - -BOOL -ShowHideWindow(PFLT_WND FltInfo) -{ - ShowWindow(FltInfo->hSelf, FltInfo->bShow ? SW_HIDE : SW_SHOW); - FltInfo->bShow = ~FltInfo->bShow; - - return FltInfo->bShow; -} - - -BOOL -FloatToolbarCreateToolsGui(PMAIN_WND_INFO Info) -{ - HWND hTb; - HIMAGELIST hImageList; - INT NumButtons; - - NumButtons = sizeof(ToolsButtons) / sizeof(ToolsButtons[0]); - - hTb = CreateWindowEx(0, - TOOLBARCLASSNAME, - NULL, - WS_CHILD | WS_VISIBLE | TBSTYLE_FLAT | TBSTYLE_WRAPABLE | CCS_NODIVIDER, - 0, 0, 32, 200, - Info->fltTools->hSelf, - NULL, - hInstance, - NULL); - if (hTb != NULL) - { - SendMessage(hTb, - TB_SETEXTENDEDSTYLE, - 0, - TBSTYLE_EX_HIDECLIPPEDBUTTONS); - - SendMessage(hTb, - TB_BUTTONSTRUCTSIZE, - sizeof(ToolsButtons[0]), - 0); - - SendMessage(hTb, - TB_SETBITMAPSIZE, - 0, - (LPARAM)MAKELONG(16, 16)); - - hImageList = InitImageList(NumButtons, - IDB_TOOLSRECTSEL); - - ImageList_Destroy((HIMAGELIST)SendMessage(hTb, - TB_SETIMAGELIST, - 0, - (LPARAM)hImageList)); - - SendMessage(hTb, - TB_ADDBUTTONS, - NumButtons, - (LPARAM)ToolsButtons); - - SendMessage(hTb, - TB_AUTOSIZE, - 0, - 0); - - return TRUE; - } - - return FALSE; -} - - -VOID -FloatWindowPaintColorPicker(HWND hColorPicker) -{ - HDC hdc; - RECT rect; - - InvalidateRect(hColorPicker, - NULL, - TRUE); - UpdateWindow(hColorPicker); - - hdc = GetDC(hColorPicker); - - GetClientRect(hColorPicker, - &rect); - - Ellipse(hdc, - rect.left, - rect.top, - rect.right, - rect.bottom); - - ReleaseDC(hColorPicker, - hdc); - -} - -VOID -FloatWindowPaintHueSlider(HWND hHueSlider) -{ - HDC hdc; - RECT rect; - - InvalidateRect(hHueSlider, - NULL, - TRUE); - UpdateWindow(hHueSlider); - - hdc = GetDC(hHueSlider); - - GetClientRect(hHueSlider, - &rect); - - Rectangle(hdc, - rect.left, - rect.top, - rect.right, - rect.bottom); - - ReleaseDC(hHueSlider, - hdc); - -} - - -BOOL -FloatToolbarCreateColorsGui(PMAIN_WND_INFO Info) -{ - HWND hColorPicker; - HWND hHueSlider; - HWND hMouseButton; - HWND hMore; - RECT rect; - HBITMAP hMoreBitmap; - - GetClientRect(Info->fltColors->hSelf, - &rect); - - hColorPicker = CreateWindowEx(0, - WC_STATIC, - NULL, - WS_CHILD | WS_VISIBLE | CBS_DROPDOWN, - 2, - 2, - rect.right * 0.65, - rect.bottom - 2, - Info->fltColors->hSelf, - NULL, - hInstance, - NULL); - if (hColorPicker == NULL) - return FALSE; - - hHueSlider = CreateWindowEx(0, - WC_STATIC, - NULL, - WS_CHILD | WS_VISIBLE | CBS_DROPDOWN, - 145, - 35, - 25, - 135, - Info->fltColors->hSelf, - NULL, - hInstance, - NULL); - if (hHueSlider == NULL) - return FALSE; - - hMouseButton = CreateWindowEx(0, - WC_COMBOBOX, - NULL, - WS_CHILD | WS_VISIBLE | CBS_DROPDOWN, - 118, 5, 75, 25, - Info->fltColors->hSelf, - NULL, - hInstance, - NULL); - if (hMouseButton == NULL) - return FALSE; - - //MakeFlatCombo(hMouseButton); - - /* temp, just testing */ - SendMessage(hMouseButton, CB_ADDSTRING, 0, (LPARAM)_T("Primary")); - SendMessage(hMouseButton, CB_ADDSTRING, 0, (LPARAM)_T("Secondary")); - SendMessage(hMouseButton, CB_SETCURSEL, 0, 0); - - - hMore = CreateWindowEx(WS_EX_STATICEDGE, - WC_BUTTON, - NULL, - WS_CHILD | WS_VISIBLE | BS_BITMAP, - rect.right - 15, - rect.bottom - 15, - 15, 15, - Info->fltColors->hSelf, - NULL, - hInstance, - NULL); - if (hMore == NULL) - return FALSE; - - hMoreBitmap = (HBITMAP)LoadImage(hInstance, - MAKEINTRESOURCE(IDB_COLORSMORE), - IMAGE_BITMAP, - 12, - 11, - LR_LOADTRANSPARENT | LR_LOADMAP3DCOLORS); - if (hMoreBitmap != NULL) - { - SendMessage(hMore, - BM_SETIMAGE, - IMAGE_BITMAP, - (LPARAM)hMoreBitmap); - } - - - /* temp functions for playing about with possible layouts */ - FloatWindowPaintHueSlider(hHueSlider); - FloatWindowPaintColorPicker(hColorPicker); - - if (hColorPicker != NULL) - { - HDC hDc = GetDC(hColorPicker); - TextOut(hDc, 8, 75, _T("Possible layout?"), 16); - ReleaseDC(hColorPicker, hDc); - } - - return TRUE; - -} - - -BOOL -FloatToolbarCreateHistoryGui(PMAIN_WND_INFO Info) -{ - HWND hList; - HWND hButtons; - HIMAGELIST hImageList; - INT NumButtons; - - hList = CreateWindowEx(0, - WC_LISTBOX, - NULL, - WS_CHILD | WS_VISIBLE | LBS_EXTENDEDSEL, - 0, 0, 143, 100, - Info->fltHistory->hSelf, - NULL, - hInstance, - NULL); - if (hList == NULL) - return FALSE; - - NumButtons = sizeof(HistoryButtons) / sizeof(HistoryButtons[0]); - hButtons = CreateWindowEx(0, - TOOLBARCLASSNAME, - NULL, - WS_CHILD | WS_VISIBLE | TBSTYLE_FLAT | CCS_BOTTOM | CCS_NODIVIDER, - 0, 0, 0, 0, - Info->fltHistory->hSelf, - NULL, - hInstance, - NULL); - if (hButtons != NULL) - { - SendMessage(hButtons, - TB_BUTTONSTRUCTSIZE, - sizeof(ToolsButtons[0]), - 0); - - SendMessage(hButtons, - TB_SETBITMAPSIZE, - 0, - (LPARAM)MAKELONG(10, 10)); - - hImageList = InitImageList(NumButtons, - IDB_HISTBACK); - - ImageList_Destroy((HIMAGELIST)SendMessage(hButtons, - TB_SETIMAGELIST, - 0, - (LPARAM)hImageList)); - - SendMessage(hButtons, - TB_SETBUTTONSIZE, - 0, - MAKELONG(18, 16)); - - SendMessage(hButtons, - TB_ADDBUTTONS, - NumButtons, - (LPARAM)HistoryButtons); - - return TRUE; - } - - return FALSE; -} - -LRESULT CALLBACK -FloatToolbarWndProc(HWND hwnd, - UINT Message, - WPARAM wParam, - LPARAM lParam) -{ - PFLT_WND FltInfo; - - /* Get the window context */ - FltInfo = (PFLT_WND)GetWindowLongPtr(hwnd, - GWLP_USERDATA); - if (FltInfo == NULL && Message != WM_CREATE) - { - goto HandleDefaultMessage; - } - - switch(Message) - { - case WM_CREATE: - - FltInfo = (PFLT_WND)(((LPCREATESTRUCT)lParam)->lpCreateParams); - - /*FIXME: read this from registry */ - FltInfo->bShow = TRUE; - - FltInfo->bOpaque = FALSE; - - SetWindowLong(hwnd, - GWL_EXSTYLE, - GetWindowLong(hwnd, - GWL_EXSTYLE) | WS_EX_LAYERED); - - /* set the tranclucency to 60% */ - SetLayeredWindowAttributes(hwnd, - 0, - (255 * 60) / 100, - LWA_ALPHA); - - break; - - case WM_TIMER: - { - POINT pt; - - if (FltInfo->bOpaque != TRUE) - { - KillTimer(hwnd, - ID_TIMER); - break; - } - - if (GetCursorPos(&pt)) - { - RECT rect; - - if (GetWindowRect(hwnd, - &rect)) - { - if (! PtInRect(&rect, - pt)) - { - KillTimer(hwnd, - ID_TIMER); - - FltInfo->bOpaque = FALSE; - - SetWindowLong(hwnd, - GWL_EXSTYLE, - GetWindowLong(hwnd, - GWL_EXSTYLE) | WS_EX_LAYERED); - - /* set the tranclucency to 60% */ - SetLayeredWindowAttributes(hwnd, - 0, - (255 * 60) / 100, - LWA_ALPHA); - - } - } - } - } - break; - - case WM_NCMOUSEMOVE: - case WM_MOUSEMOVE: - if (FltInfo->bOpaque == FALSE) - { - SetWindowLong(hwnd, - GWL_EXSTYLE, - GetWindowLong(hwnd, - GWL_EXSTYLE) & ~WS_EX_LAYERED); - - RedrawWindow(hwnd, - NULL, - NULL, - RDW_ERASE | RDW_INVALIDATE | RDW_FRAME | RDW_ALLCHILDREN); - - FltInfo->bOpaque = TRUE; - MessageBox(NULL, _T("in"), _T("Hit test"), MB_OK | MB_ICONEXCLAMATION); - SetTimer(hwnd, - ID_TIMER, - 200, - NULL); - } - break; - - case WM_CLOSE: - ShowHideWindow(FltInfo); - break; - - case WM_COMMAND: - if (LOWORD(wParam) == IDCANCEL) - ShowHideWindow(FltInfo); - - switch(LOWORD(wParam)) - { - case ID_NEW: - MessageBox(hwnd, _T("Kapow!"), _T("Hit test"), MB_OK | MB_ICONEXCLAMATION); - break; - - case ID_CLONESTAMP: - case ID_COLORPICKER: - case ID_ECLIPSE: - case ID_ECLIPSESEL: - case ID_ERASER: - case ID_FREEFORM: - case ID_LASOO: - case ID_LINE: - case ID_MAGICWAND: - case ID_MOVE: - case ID_MOVESEL: - case ID_PAINTBRUSH: - case ID_PAINTBUCKET: - case ID_PENCIL: - case ID_RECOLORING: - case ID_RECTANGLE: - case ID_ROUNDRECT: - case ID_TEXT: - case ID_ZOOM: - /*SendMessage(Info->hSelf, - LOWORD(wParam), - wParam, - lParam);*/ - break; - } - break; - - case WM_NCACTIVATE: - /* FIXME: needs fully implementing */ - return DefWindowProc(hwnd, - Message, - TRUE, - lParam); - break; - - case WM_DESTROY: - SetWindowLongPtr(hwnd, - GWLP_USERDATA, - 0); - break; - - default: -HandleDefaultMessage: - return DefWindowProc(hwnd, - Message, - wParam, - lParam); - } - - return 0; -} - - -BOOL -InitFloatWndClass(VOID) -{ - WNDCLASSEX wc = {0}; - - wc.cbSize = sizeof(WNDCLASSEX); - wc.style = CS_HREDRAW | CS_VREDRAW; - wc.lpfnWndProc = FloatToolbarWndProc; - wc.hInstance = hInstance; - wc.hIcon = NULL; - wc.hCursor = LoadCursor(NULL, - IDC_ARROW); - wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1); - wc.lpszClassName = szFloatWndClass; - wc.hIconSm = NULL; - - return RegisterClassEx(&wc) != (ATOM)0; -} - -VOID -UninitFloatWndImpl(VOID) -{ - UnregisterClass(szFloatWndClass, - hInstance); -} - +#include + +static const TCHAR szFloatWndClass[] = TEXT("ImageSoftFloatWndClass"); + +#define ID_TIMER 1 + +TBBUTTON ToolsButtons[] = { +/* iBitmap, idCommand, fsState, fsStyle, bReserved[2], dwData, iString */ + {TBICON_RECTSEL, ID_RECTSEL, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* rectangle select */ + {TBICON_MOVESEL, ID_MOVESEL, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* move selected pixels */ + {TBICON_LASOO, ID_LASOO, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* lasso select */ + {TBICON_MOVE, ID_MOVE, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* move selection */ + {TBICON_ECLIPSESEL, ID_ECLIPSESEL, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* elipse select */ + {TBICON_ZOOM, ID_ZOOM, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* zoom */ + {TBICON_MAGICWAND, ID_MAGICWAND, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* magic wand */ + {TBICON_TEXT, ID_TEXT, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* text */ + {TBICON_PAINTBRUSH, ID_PAINTBRUSH, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* paintbrush */ + {TBICON_ERASER, ID_ERASER, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* eraser */ + {TBICON_PENCIL, ID_PENCIL, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* pencil */ + {TBICON_COLORPICKER, ID_COLORPICKER, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* color picker */ + {TBICON_CLONESTAMP, ID_CLONESTAMP, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* clone stamp */ + {TBICON_RECOLORING, ID_RECOLORING, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* recolor */ + {TBICON_PAINTBUCKET, ID_PAINTBUCKET, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* paint bucket */ + {TBICON_LINE, ID_LINE, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* line */ + {TBICON_RECTANGLE, ID_RECTANGLE, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* rectangle */ + {TBICON_ROUNDRECT, ID_ROUNDRECT, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* round rectangle */ + {TBICON_ECLIPSE, ID_ECLIPSE, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* elipse */ + {TBICON_FREEFORM, ID_FREEFORM, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0}, /* free form */ + + {10, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, +}; + +TBBUTTON HistoryButtons[] = { + {TBICON_BACKSM, ID_BACK, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* back */ + {TBICON_UNDOSM, ID_UNDO, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* undo */ + {TBICON_REDOSM, ID_REDO, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* redo */ + {TBICON_FORWARDSM, ID_FORWARD, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* forward */ + {TBICON_DELETESM, ID_DELETE, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* delete */ +}; + + +BOOL +ShowHideWindow(PFLT_WND FltInfo) +{ + ShowWindow(FltInfo->hSelf, FltInfo->bShow ? SW_HIDE : SW_SHOW); + FltInfo->bShow = ~FltInfo->bShow; + + return FltInfo->bShow; +} + + +BOOL +FloatToolbarCreateToolsGui(PMAIN_WND_INFO Info) +{ + HWND hTb; + HIMAGELIST hImageList; + INT NumButtons; + + NumButtons = sizeof(ToolsButtons) / sizeof(ToolsButtons[0]); + + hTb = CreateWindowEx(0, + TOOLBARCLASSNAME, + NULL, + WS_CHILD | WS_VISIBLE | TBSTYLE_FLAT | TBSTYLE_WRAPABLE | CCS_NODIVIDER, + 0, 0, 32, 200, + Info->fltTools->hSelf, + NULL, + hInstance, + NULL); + if (hTb != NULL) + { + SendMessage(hTb, + TB_SETEXTENDEDSTYLE, + 0, + TBSTYLE_EX_HIDECLIPPEDBUTTONS); + + SendMessage(hTb, + TB_BUTTONSTRUCTSIZE, + sizeof(ToolsButtons[0]), + 0); + + SendMessage(hTb, + TB_SETBITMAPSIZE, + 0, + (LPARAM)MAKELONG(16, 16)); + + hImageList = InitImageList(NumButtons, + IDB_TOOLSRECTSEL); + + ImageList_Destroy((HIMAGELIST)SendMessage(hTb, + TB_SETIMAGELIST, + 0, + (LPARAM)hImageList)); + + SendMessage(hTb, + TB_ADDBUTTONS, + NumButtons, + (LPARAM)ToolsButtons); + + SendMessage(hTb, + TB_AUTOSIZE, + 0, + 0); + + return TRUE; + } + + return FALSE; +} + + +VOID +FloatWindowPaintColorPicker(HWND hColorPicker) +{ + HDC hdc; + RECT rect; + + InvalidateRect(hColorPicker, + NULL, + TRUE); + UpdateWindow(hColorPicker); + + hdc = GetDC(hColorPicker); + + GetClientRect(hColorPicker, + &rect); + + Ellipse(hdc, + rect.left, + rect.top, + rect.right, + rect.bottom); + + ReleaseDC(hColorPicker, + hdc); + +} + +VOID +FloatWindowPaintHueSlider(HWND hHueSlider) +{ + HDC hdc; + RECT rect; + + InvalidateRect(hHueSlider, + NULL, + TRUE); + UpdateWindow(hHueSlider); + + hdc = GetDC(hHueSlider); + + GetClientRect(hHueSlider, + &rect); + + Rectangle(hdc, + rect.left, + rect.top, + rect.right, + rect.bottom); + + ReleaseDC(hHueSlider, + hdc); + +} + + +BOOL +FloatToolbarCreateColorsGui(PMAIN_WND_INFO Info) +{ + HWND hColorPicker; + HWND hHueSlider; + HWND hMouseButton; + HWND hMore; + RECT rect; + HBITMAP hMoreBitmap; + + GetClientRect(Info->fltColors->hSelf, + &rect); + + hColorPicker = CreateWindowEx(0, + WC_STATIC, + NULL, + WS_CHILD | WS_VISIBLE | CBS_DROPDOWN, + 2, + 2, + rect.right * 0.65, + rect.bottom - 2, + Info->fltColors->hSelf, + NULL, + hInstance, + NULL); + if (hColorPicker == NULL) + return FALSE; + + hHueSlider = CreateWindowEx(0, + WC_STATIC, + NULL, + WS_CHILD | WS_VISIBLE | CBS_DROPDOWN, + 145, + 35, + 25, + 135, + Info->fltColors->hSelf, + NULL, + hInstance, + NULL); + if (hHueSlider == NULL) + return FALSE; + + hMouseButton = CreateWindowEx(0, + WC_COMBOBOX, + NULL, + WS_CHILD | WS_VISIBLE | CBS_DROPDOWN, + 118, 5, 75, 25, + Info->fltColors->hSelf, + NULL, + hInstance, + NULL); + if (hMouseButton == NULL) + return FALSE; + + //MakeFlatCombo(hMouseButton); + + /* temp, just testing */ + SendMessage(hMouseButton, CB_ADDSTRING, 0, (LPARAM)_T("Primary")); + SendMessage(hMouseButton, CB_ADDSTRING, 0, (LPARAM)_T("Secondary")); + SendMessage(hMouseButton, CB_SETCURSEL, 0, 0); + + + hMore = CreateWindowEx(WS_EX_STATICEDGE, + WC_BUTTON, + NULL, + WS_CHILD | WS_VISIBLE | BS_BITMAP, + rect.right - 15, + rect.bottom - 15, + 15, 15, + Info->fltColors->hSelf, + NULL, + hInstance, + NULL); + if (hMore == NULL) + return FALSE; + + hMoreBitmap = (HBITMAP)LoadImage(hInstance, + MAKEINTRESOURCE(IDB_COLORSMORE), + IMAGE_BITMAP, + 12, + 11, + LR_LOADTRANSPARENT | LR_LOADMAP3DCOLORS); + if (hMoreBitmap != NULL) + { + SendMessage(hMore, + BM_SETIMAGE, + IMAGE_BITMAP, + (LPARAM)hMoreBitmap); + } + + + /* temp functions for playing about with possible layouts */ + FloatWindowPaintHueSlider(hHueSlider); + FloatWindowPaintColorPicker(hColorPicker); + + if (hColorPicker != NULL) + { + HDC hDc = GetDC(hColorPicker); + TextOut(hDc, 8, 75, _T("Possible layout?"), 16); + ReleaseDC(hColorPicker, hDc); + } + + return TRUE; + +} + + +BOOL +FloatToolbarCreateHistoryGui(PMAIN_WND_INFO Info) +{ + HWND hList; + HWND hButtons; + HIMAGELIST hImageList; + INT NumButtons; + + hList = CreateWindowEx(0, + WC_LISTBOX, + NULL, + WS_CHILD | WS_VISIBLE | LBS_EXTENDEDSEL, + 0, 0, 143, 100, + Info->fltHistory->hSelf, + NULL, + hInstance, + NULL); + if (hList == NULL) + return FALSE; + + NumButtons = sizeof(HistoryButtons) / sizeof(HistoryButtons[0]); + hButtons = CreateWindowEx(0, + TOOLBARCLASSNAME, + NULL, + WS_CHILD | WS_VISIBLE | TBSTYLE_FLAT | CCS_BOTTOM | CCS_NODIVIDER, + 0, 0, 0, 0, + Info->fltHistory->hSelf, + NULL, + hInstance, + NULL); + if (hButtons != NULL) + { + SendMessage(hButtons, + TB_BUTTONSTRUCTSIZE, + sizeof(ToolsButtons[0]), + 0); + + SendMessage(hButtons, + TB_SETBITMAPSIZE, + 0, + (LPARAM)MAKELONG(10, 10)); + + hImageList = InitImageList(NumButtons, + IDB_HISTBACK); + + ImageList_Destroy((HIMAGELIST)SendMessage(hButtons, + TB_SETIMAGELIST, + 0, + (LPARAM)hImageList)); + + SendMessage(hButtons, + TB_SETBUTTONSIZE, + 0, + MAKELONG(18, 16)); + + SendMessage(hButtons, + TB_ADDBUTTONS, + NumButtons, + (LPARAM)HistoryButtons); + + return TRUE; + } + + return FALSE; +} + +LRESULT CALLBACK +FloatToolbarWndProc(HWND hwnd, + UINT Message, + WPARAM wParam, + LPARAM lParam) +{ + PFLT_WND FltInfo; + + /* Get the window context */ + FltInfo = (PFLT_WND)GetWindowLongPtr(hwnd, + GWLP_USERDATA); + if (FltInfo == NULL && Message != WM_CREATE) + { + goto HandleDefaultMessage; + } + + switch(Message) + { + case WM_CREATE: + + FltInfo = (PFLT_WND)(((LPCREATESTRUCT)lParam)->lpCreateParams); + + /*FIXME: read this from registry */ + FltInfo->bShow = TRUE; + + FltInfo->bOpaque = FALSE; + + SetWindowLong(hwnd, + GWL_EXSTYLE, + GetWindowLong(hwnd, + GWL_EXSTYLE) | WS_EX_LAYERED); + + /* set the tranclucency to 60% */ + SetLayeredWindowAttributes(hwnd, + 0, + (255 * 60) / 100, + LWA_ALPHA); + + break; + + case WM_TIMER: + { + POINT pt; + + if (FltInfo->bOpaque != TRUE) + { + KillTimer(hwnd, + ID_TIMER); + break; + } + + if (GetCursorPos(&pt)) + { + RECT rect; + + if (GetWindowRect(hwnd, + &rect)) + { + if (! PtInRect(&rect, + pt)) + { + KillTimer(hwnd, + ID_TIMER); + + FltInfo->bOpaque = FALSE; + + SetWindowLong(hwnd, + GWL_EXSTYLE, + GetWindowLong(hwnd, + GWL_EXSTYLE) | WS_EX_LAYERED); + + /* set the tranclucency to 60% */ + SetLayeredWindowAttributes(hwnd, + 0, + (255 * 60) / 100, + LWA_ALPHA); + + } + } + } + } + break; + + case WM_NCMOUSEMOVE: + case WM_MOUSEMOVE: + if (FltInfo->bOpaque == FALSE) + { + SetWindowLong(hwnd, + GWL_EXSTYLE, + GetWindowLong(hwnd, + GWL_EXSTYLE) & ~WS_EX_LAYERED); + + RedrawWindow(hwnd, + NULL, + NULL, + RDW_ERASE | RDW_INVALIDATE | RDW_FRAME | RDW_ALLCHILDREN); + + FltInfo->bOpaque = TRUE; + MessageBox(NULL, _T("in"), _T("Hit test"), MB_OK | MB_ICONEXCLAMATION); + SetTimer(hwnd, + ID_TIMER, + 200, + NULL); + } + break; + + case WM_CLOSE: + ShowHideWindow(FltInfo); + break; + + case WM_COMMAND: + if (LOWORD(wParam) == IDCANCEL) + ShowHideWindow(FltInfo); + + switch(LOWORD(wParam)) + { + case ID_NEW: + MessageBox(hwnd, _T("Kapow!"), _T("Hit test"), MB_OK | MB_ICONEXCLAMATION); + break; + + case ID_CLONESTAMP: + case ID_COLORPICKER: + case ID_ECLIPSE: + case ID_ECLIPSESEL: + case ID_ERASER: + case ID_FREEFORM: + case ID_LASOO: + case ID_LINE: + case ID_MAGICWAND: + case ID_MOVE: + case ID_MOVESEL: + case ID_PAINTBRUSH: + case ID_PAINTBUCKET: + case ID_PENCIL: + case ID_RECOLORING: + case ID_RECTANGLE: + case ID_ROUNDRECT: + case ID_TEXT: + case ID_ZOOM: + /*SendMessage(Info->hSelf, + LOWORD(wParam), + wParam, + lParam);*/ + break; + } + break; + + case WM_NCACTIVATE: + /* FIXME: needs fully implementing */ + return DefWindowProc(hwnd, + Message, + TRUE, + lParam); + break; + + case WM_DESTROY: + SetWindowLongPtr(hwnd, + GWLP_USERDATA, + 0); + break; + + default: +HandleDefaultMessage: + return DefWindowProc(hwnd, + Message, + wParam, + lParam); + } + + return 0; +} + + +BOOL +InitFloatWndClass(VOID) +{ + WNDCLASSEX wc = {0}; + + wc.cbSize = sizeof(WNDCLASSEX); + wc.style = CS_HREDRAW | CS_VREDRAW; + wc.lpfnWndProc = FloatToolbarWndProc; + wc.hInstance = hInstance; + wc.hIcon = NULL; + wc.hCursor = LoadCursor(NULL, + IDC_ARROW); + wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1); + wc.lpszClassName = szFloatWndClass; + wc.hIconSm = NULL; + + return RegisterClassEx(&wc) != (ATOM)0; +} + +VOID +UninitFloatWndImpl(VOID) +{ + UnregisterClass(szFloatWndClass, + hInstance); +} + diff --git a/reactos/base/applications/imagesoft/imageprop.c b/reactos/base/applications/imagesoft/imageprop.c index f3d69ec749e..85a3f42eb80 100644 --- a/reactos/base/applications/imagesoft/imageprop.c +++ b/reactos/base/applications/imagesoft/imageprop.c @@ -1,261 +1,261 @@ -#include - -static HWND hImageType, hUnitType, hHeightUnit, hWidthUnit, hResUnit; - -UINT ConvertValue(HWND hDlg, UINT EdBoxChanged, UINT LastUnitSel) -{ - LONG Resolution = GetDlgItemInt(hDlg, IDC_RES_EDIT, NULL, FALSE); - FLOAT Width = (FLOAT)GetDlgItemInt(hDlg, IDC_WIDTH_EDIT, NULL, FALSE); - FLOAT Height = (FLOAT)GetDlgItemInt(hDlg, IDC_HEIGHT_EDIT, NULL, FALSE); - USHORT CurUnit = (USHORT)SendMessage(hUnitType, CB_GETCURSEL, 0, 0); - - /* if the user typed in the resolution box */ - if ((EdBoxChanged == IDC_RES_EDIT) && (CurUnit != PIXELS)) - { - Width = Width / Resolution * 100; - Height = Height / Resolution * 100; - - - /* something wrong with these */ - SetDlgItemInt(hDlg, IDC_WIDTH_EDIT, Width, TRUE); - SetDlgItemInt(hDlg, IDC_HEIGHT_EDIT, Height, FALSE); - - return LastUnitSel; - } - - - /* if the user changed the unit combobox */ - if (EdBoxChanged == IDC_UNIT) - { - switch(LastUnitSel) - { - case PIXELS: - if (CurUnit == CENTIMETERS) - ; - else if (CurUnit == INCHES) - ; - break; - - case CENTIMETERS: - if (CurUnit == PIXELS) - ; - else if (CurUnit == INCHES) - { - Width /= 2.54; - Height /= 2.54; - Resolution *= 2.54; - - SetDlgItemInt(hDlg, IDC_WIDTH_EDIT, Width, FALSE); - SetDlgItemInt(hDlg, IDC_HEIGHT_EDIT, Height, FALSE); - SetDlgItemInt(hDlg, IDC_RES_EDIT, Resolution, FALSE); - } - break; - - case INCHES: - if (CurUnit == PIXELS) - ; - else if (CurUnit == CENTIMETERS) - { - Width *= 2.54; - Height *= 2.54; - Resolution /= 2.54; - - SetDlgItemInt(hDlg, IDC_WIDTH_EDIT, Width, FALSE); - SetDlgItemInt(hDlg, IDC_HEIGHT_EDIT, Height, FALSE); - SetDlgItemInt(hDlg, IDC_RES_EDIT, Resolution, FALSE); - } - break; - } - } - - return CurUnit; -} - - -VOID SetImageSize(HWND hDlg) -{ - DWORD Size; - USHORT Type = 0; - TCHAR buf[20]; - TCHAR SizeUnit[25]; - - FLOAT Width = GetDlgItemInt(hDlg, IDC_WIDTH_EDIT, NULL, FALSE); - FLOAT Height = GetDlgItemInt(hDlg, IDC_HEIGHT_EDIT, NULL, FALSE); - USHORT sel = SendMessage(hImageType, CB_GETCURSEL, 0, 0); - - if (sel == 0) - Type = MONOCHROMEBITS; - else if (sel == 1) - Type = GREYSCALEBITS; - else if (sel == 2) - Type = PALLETEBITS; - else if (sel == 3) - Type = TRUECOLORBITS; - - Size = ((Width * Height * Type) / 8) / 1024; - - if (Size > 1000) - { - Size /= 1024; - LoadString(hInstance, IDS_UNIT_MB, SizeUnit, sizeof(SizeUnit) / sizeof(TCHAR)); - } - else - LoadString(hInstance, IDS_UNIT_KB, SizeUnit, sizeof(SizeUnit) / sizeof(TCHAR)); - - _sntprintf(buf, sizeof(buf) / sizeof(TCHAR), SizeUnit, Size); - SendDlgItemMessage(hDlg, IDC_IMAGE_SIZE, WM_SETTEXT, 0, (LPARAM)buf); - -} - -INT_PTR CALLBACK -ImagePropDialogProc(HWND hDlg, - UINT message, - WPARAM wParam, - LPARAM lParam) -{ - static PIMAGE_PROP ImageProp = NULL; - static UINT LastUnitSel; - TCHAR buf[35]; - - switch (message) - { - case WM_INITDIALOG: - - ImageProp = (PIMAGE_PROP)lParam; - - /* get handles to the windows */ - hImageType = GetDlgItem(hDlg, IDC_IMAGETYPE); - hUnitType = GetDlgItem(hDlg, IDC_UNIT); - hWidthUnit = GetDlgItem(hDlg, IDC_WIDTH_STAT); - hHeightUnit = GetDlgItem(hDlg, IDC_HEIGHT_STAT); - hResUnit = GetDlgItem(hDlg, IDC_RES_STAT); - - /* fill image type combo box */ - LoadString(hInstance, IDS_IMAGE_MONOCHROME, buf, sizeof(buf) / sizeof(TCHAR)); - SendMessage(hImageType, CB_ADDSTRING, 0, (LPARAM)buf); - LoadString(hInstance, IDS_IMAGE_GREYSCALE, buf, sizeof(buf) / sizeof(TCHAR)); - SendMessage(hImageType, CB_ADDSTRING, 0, (LPARAM)buf); - LoadString(hInstance, IDS_IMAGE_PALETTE, buf, sizeof(buf) / sizeof(TCHAR)); - SendMessage(hImageType, CB_ADDSTRING, 0, (LPARAM)buf); - LoadString(hInstance, IDS_IMAGE_TRUECOLOR, buf, sizeof(buf) / sizeof(TCHAR)); - SendMessage(hImageType, CB_ADDSTRING, 0, (LPARAM)buf); - /* default 24bit */ - SendMessage(hImageType, CB_SETCURSEL, 3, 0); - - /* fill unit combo box */ - LoadString(hInstance, IDS_UNIT_PIXELS, buf, sizeof(buf) / sizeof(TCHAR)); - SendMessage(hUnitType, CB_ADDSTRING, 0, (LPARAM)buf); - LoadString(hInstance, IDS_UNIT_CM, buf, sizeof(buf) / sizeof(TCHAR)); - SendMessage(hUnitType, CB_ADDSTRING, 0, (LPARAM)buf); - LoadString(hInstance, IDS_UNIT_INCHES, buf, sizeof(buf) / sizeof(TCHAR)); - SendMessage(hUnitType, CB_ADDSTRING, 0, (LPARAM)buf); - /* default pixels */ - SendMessage(hUnitType, CB_SETCURSEL, 0, 0); - - /* default pixels */ - LoadString(hInstance, IDS_UNIT_PIXELS, buf, sizeof(buf) / sizeof(TCHAR)); - SendMessage(hWidthUnit, WM_SETTEXT, 0, (LPARAM)buf); - SendMessage(hHeightUnit, WM_SETTEXT, 0, (LPARAM)buf); - LoadString(hInstance, IDS_UNIT_DPI, buf, sizeof(buf) / sizeof(TCHAR)); - SendMessage(hResUnit, WM_SETTEXT, 0, (LPARAM)buf); - LastUnitSel = PIXELS; - - /* temperary. Default vals should be loaded from registry */ - SendDlgItemMessage(hDlg, IDC_WIDTH_EDIT, WM_SETTEXT, 0, (LPARAM)_T("400")); - SendDlgItemMessage(hDlg, IDC_HEIGHT_EDIT, WM_SETTEXT, 0, (LPARAM)_T("300")); - SendDlgItemMessage(hDlg, IDC_RES_EDIT, WM_SETTEXT, 0, (LPARAM)_T("50")); - SetImageSize(hDlg); - - break; - - case WM_COMMAND: - - switch(LOWORD(wParam)) - { - case IDOK: - { - /* FIXME: default vals should be taken from registry */ - - INT Ret = GetTextFromEdit(ImageProp->lpImageName, hDlg, IDC_IMAGE_NAME_EDIT); - if (Ret == 0) - ImageProp->lpImageName = NULL; - - ImageProp->Type = SendMessage(hImageType, CB_GETCURSEL, 0, 0); - ImageProp->Resolution = GetDlgItemInt(hDlg, IDC_RES_EDIT, NULL, FALSE); - ImageProp->Width = GetDlgItemInt(hDlg, IDC_WIDTH_EDIT, NULL, FALSE); - ImageProp->Height = GetDlgItemInt(hDlg, IDC_HEIGHT_EDIT, NULL, FALSE); - ImageProp->Unit = SendMessage(hUnitType, CB_GETCURSEL, 0, 0); - - EndDialog(hDlg, 1); - } - break; - - case IDCANCEL: - ImageProp = NULL; - EndDialog(hDlg, 0); - break; - - case IDC_UNIT: - if (HIWORD(wParam) == CBN_SELCHANGE) - { - INT unit = SendMessage(hUnitType, CB_GETCURSEL, 0, 0); - - LastUnitSel = ConvertValue(hDlg, IDC_UNIT, LastUnitSel); - - switch (unit) - { - case 0: /* pixels */ - { - LoadString(hInstance, IDS_UNIT_PIXELS, buf, sizeof(buf) / sizeof(TCHAR)); - SendMessage(hWidthUnit, WM_SETTEXT, 0, (LPARAM)buf); - SendMessage(hHeightUnit, WM_SETTEXT, 0, (LPARAM)buf); - LoadString(hInstance, IDS_UNIT_DPI, buf, sizeof(buf) / sizeof(TCHAR)); - SendMessage(hResUnit, WM_SETTEXT, 0, (LPARAM)buf); - } - break; - - case 1: - /* cm */ - LoadString(hInstance, IDS_UNIT_CM, buf, sizeof(buf) / sizeof(TCHAR)); - SendMessage(hWidthUnit, WM_SETTEXT, 0, (LPARAM)buf); - SendMessage(hHeightUnit, WM_SETTEXT, 0, (LPARAM)buf); - LoadString(hInstance, IDS_UNIT_DOTSCM, buf, sizeof(buf) / sizeof(TCHAR)); - SendMessage(hResUnit, WM_SETTEXT, 0, (LPARAM)buf); - break; - - case 2: - /* inch */ - LoadString(hInstance, IDS_UNIT_INCHES, buf, sizeof(buf) / sizeof(TCHAR)); - SendMessage(hWidthUnit, WM_SETTEXT, 0, (LPARAM)buf); - SendMessage(hHeightUnit, WM_SETTEXT, 0, (LPARAM)buf); - LoadString(hInstance, IDS_UNIT_DPI, buf, sizeof(buf) / sizeof(TCHAR)); - SendMessage(hResUnit, WM_SETTEXT, 0, (LPARAM)buf); - break; - } - } - break; - - case IDC_IMAGETYPE: - if (HIWORD(wParam) == CBN_SELCHANGE) - SetImageSize(hDlg); - break; - - case IDC_WIDTH_EDIT: - case IDC_HEIGHT_EDIT: - if (HIWORD(wParam) == EN_UPDATE) - SetImageSize(hDlg); - break; - - case IDC_RES_EDIT: - if (HIWORD(wParam) == EN_UPDATE) - ConvertValue(hDlg, IDC_RES_EDIT, LastUnitSel); - break; - } - break; - - default: - return FALSE; - } - - return TRUE; -} +#include + +static HWND hImageType, hUnitType, hHeightUnit, hWidthUnit, hResUnit; + +UINT ConvertValue(HWND hDlg, UINT EdBoxChanged, UINT LastUnitSel) +{ + LONG Resolution = GetDlgItemInt(hDlg, IDC_RES_EDIT, NULL, FALSE); + FLOAT Width = (FLOAT)GetDlgItemInt(hDlg, IDC_WIDTH_EDIT, NULL, FALSE); + FLOAT Height = (FLOAT)GetDlgItemInt(hDlg, IDC_HEIGHT_EDIT, NULL, FALSE); + USHORT CurUnit = (USHORT)SendMessage(hUnitType, CB_GETCURSEL, 0, 0); + + /* if the user typed in the resolution box */ + if ((EdBoxChanged == IDC_RES_EDIT) && (CurUnit != PIXELS)) + { + Width = Width / Resolution * 100; + Height = Height / Resolution * 100; + + + /* something wrong with these */ + SetDlgItemInt(hDlg, IDC_WIDTH_EDIT, Width, TRUE); + SetDlgItemInt(hDlg, IDC_HEIGHT_EDIT, Height, FALSE); + + return LastUnitSel; + } + + + /* if the user changed the unit combobox */ + if (EdBoxChanged == IDC_UNIT) + { + switch(LastUnitSel) + { + case PIXELS: + if (CurUnit == CENTIMETERS) + ; + else if (CurUnit == INCHES) + ; + break; + + case CENTIMETERS: + if (CurUnit == PIXELS) + ; + else if (CurUnit == INCHES) + { + Width /= 2.54; + Height /= 2.54; + Resolution *= 2.54; + + SetDlgItemInt(hDlg, IDC_WIDTH_EDIT, Width, FALSE); + SetDlgItemInt(hDlg, IDC_HEIGHT_EDIT, Height, FALSE); + SetDlgItemInt(hDlg, IDC_RES_EDIT, Resolution, FALSE); + } + break; + + case INCHES: + if (CurUnit == PIXELS) + ; + else if (CurUnit == CENTIMETERS) + { + Width *= 2.54; + Height *= 2.54; + Resolution /= 2.54; + + SetDlgItemInt(hDlg, IDC_WIDTH_EDIT, Width, FALSE); + SetDlgItemInt(hDlg, IDC_HEIGHT_EDIT, Height, FALSE); + SetDlgItemInt(hDlg, IDC_RES_EDIT, Resolution, FALSE); + } + break; + } + } + + return CurUnit; +} + + +VOID SetImageSize(HWND hDlg) +{ + DWORD Size; + USHORT Type = 0; + TCHAR buf[20]; + TCHAR SizeUnit[25]; + + FLOAT Width = GetDlgItemInt(hDlg, IDC_WIDTH_EDIT, NULL, FALSE); + FLOAT Height = GetDlgItemInt(hDlg, IDC_HEIGHT_EDIT, NULL, FALSE); + USHORT sel = SendMessage(hImageType, CB_GETCURSEL, 0, 0); + + if (sel == 0) + Type = MONOCHROMEBITS; + else if (sel == 1) + Type = GREYSCALEBITS; + else if (sel == 2) + Type = PALLETEBITS; + else if (sel == 3) + Type = TRUECOLORBITS; + + Size = ((Width * Height * Type) / 8) / 1024; + + if (Size > 1000) + { + Size /= 1024; + LoadString(hInstance, IDS_UNIT_MB, SizeUnit, sizeof(SizeUnit) / sizeof(TCHAR)); + } + else + LoadString(hInstance, IDS_UNIT_KB, SizeUnit, sizeof(SizeUnit) / sizeof(TCHAR)); + + _sntprintf(buf, sizeof(buf) / sizeof(TCHAR), SizeUnit, Size); + SendDlgItemMessage(hDlg, IDC_IMAGE_SIZE, WM_SETTEXT, 0, (LPARAM)buf); + +} + +INT_PTR CALLBACK +ImagePropDialogProc(HWND hDlg, + UINT message, + WPARAM wParam, + LPARAM lParam) +{ + static PIMAGE_PROP ImageProp = NULL; + static UINT LastUnitSel; + TCHAR buf[35]; + + switch (message) + { + case WM_INITDIALOG: + + ImageProp = (PIMAGE_PROP)lParam; + + /* get handles to the windows */ + hImageType = GetDlgItem(hDlg, IDC_IMAGETYPE); + hUnitType = GetDlgItem(hDlg, IDC_UNIT); + hWidthUnit = GetDlgItem(hDlg, IDC_WIDTH_STAT); + hHeightUnit = GetDlgItem(hDlg, IDC_HEIGHT_STAT); + hResUnit = GetDlgItem(hDlg, IDC_RES_STAT); + + /* fill image type combo box */ + LoadString(hInstance, IDS_IMAGE_MONOCHROME, buf, sizeof(buf) / sizeof(TCHAR)); + SendMessage(hImageType, CB_ADDSTRING, 0, (LPARAM)buf); + LoadString(hInstance, IDS_IMAGE_GREYSCALE, buf, sizeof(buf) / sizeof(TCHAR)); + SendMessage(hImageType, CB_ADDSTRING, 0, (LPARAM)buf); + LoadString(hInstance, IDS_IMAGE_PALETTE, buf, sizeof(buf) / sizeof(TCHAR)); + SendMessage(hImageType, CB_ADDSTRING, 0, (LPARAM)buf); + LoadString(hInstance, IDS_IMAGE_TRUECOLOR, buf, sizeof(buf) / sizeof(TCHAR)); + SendMessage(hImageType, CB_ADDSTRING, 0, (LPARAM)buf); + /* default 24bit */ + SendMessage(hImageType, CB_SETCURSEL, 3, 0); + + /* fill unit combo box */ + LoadString(hInstance, IDS_UNIT_PIXELS, buf, sizeof(buf) / sizeof(TCHAR)); + SendMessage(hUnitType, CB_ADDSTRING, 0, (LPARAM)buf); + LoadString(hInstance, IDS_UNIT_CM, buf, sizeof(buf) / sizeof(TCHAR)); + SendMessage(hUnitType, CB_ADDSTRING, 0, (LPARAM)buf); + LoadString(hInstance, IDS_UNIT_INCHES, buf, sizeof(buf) / sizeof(TCHAR)); + SendMessage(hUnitType, CB_ADDSTRING, 0, (LPARAM)buf); + /* default pixels */ + SendMessage(hUnitType, CB_SETCURSEL, 0, 0); + + /* default pixels */ + LoadString(hInstance, IDS_UNIT_PIXELS, buf, sizeof(buf) / sizeof(TCHAR)); + SendMessage(hWidthUnit, WM_SETTEXT, 0, (LPARAM)buf); + SendMessage(hHeightUnit, WM_SETTEXT, 0, (LPARAM)buf); + LoadString(hInstance, IDS_UNIT_DPI, buf, sizeof(buf) / sizeof(TCHAR)); + SendMessage(hResUnit, WM_SETTEXT, 0, (LPARAM)buf); + LastUnitSel = PIXELS; + + /* temperary. Default vals should be loaded from registry */ + SendDlgItemMessage(hDlg, IDC_WIDTH_EDIT, WM_SETTEXT, 0, (LPARAM)_T("400")); + SendDlgItemMessage(hDlg, IDC_HEIGHT_EDIT, WM_SETTEXT, 0, (LPARAM)_T("300")); + SendDlgItemMessage(hDlg, IDC_RES_EDIT, WM_SETTEXT, 0, (LPARAM)_T("50")); + SetImageSize(hDlg); + + break; + + case WM_COMMAND: + + switch(LOWORD(wParam)) + { + case IDOK: + { + /* FIXME: default vals should be taken from registry */ + + INT Ret = GetTextFromEdit(ImageProp->lpImageName, hDlg, IDC_IMAGE_NAME_EDIT); + if (Ret == 0) + ImageProp->lpImageName = NULL; + + ImageProp->Type = SendMessage(hImageType, CB_GETCURSEL, 0, 0); + ImageProp->Resolution = GetDlgItemInt(hDlg, IDC_RES_EDIT, NULL, FALSE); + ImageProp->Width = GetDlgItemInt(hDlg, IDC_WIDTH_EDIT, NULL, FALSE); + ImageProp->Height = GetDlgItemInt(hDlg, IDC_HEIGHT_EDIT, NULL, FALSE); + ImageProp->Unit = SendMessage(hUnitType, CB_GETCURSEL, 0, 0); + + EndDialog(hDlg, 1); + } + break; + + case IDCANCEL: + ImageProp = NULL; + EndDialog(hDlg, 0); + break; + + case IDC_UNIT: + if (HIWORD(wParam) == CBN_SELCHANGE) + { + INT unit = SendMessage(hUnitType, CB_GETCURSEL, 0, 0); + + LastUnitSel = ConvertValue(hDlg, IDC_UNIT, LastUnitSel); + + switch (unit) + { + case 0: /* pixels */ + { + LoadString(hInstance, IDS_UNIT_PIXELS, buf, sizeof(buf) / sizeof(TCHAR)); + SendMessage(hWidthUnit, WM_SETTEXT, 0, (LPARAM)buf); + SendMessage(hHeightUnit, WM_SETTEXT, 0, (LPARAM)buf); + LoadString(hInstance, IDS_UNIT_DPI, buf, sizeof(buf) / sizeof(TCHAR)); + SendMessage(hResUnit, WM_SETTEXT, 0, (LPARAM)buf); + } + break; + + case 1: + /* cm */ + LoadString(hInstance, IDS_UNIT_CM, buf, sizeof(buf) / sizeof(TCHAR)); + SendMessage(hWidthUnit, WM_SETTEXT, 0, (LPARAM)buf); + SendMessage(hHeightUnit, WM_SETTEXT, 0, (LPARAM)buf); + LoadString(hInstance, IDS_UNIT_DOTSCM, buf, sizeof(buf) / sizeof(TCHAR)); + SendMessage(hResUnit, WM_SETTEXT, 0, (LPARAM)buf); + break; + + case 2: + /* inch */ + LoadString(hInstance, IDS_UNIT_INCHES, buf, sizeof(buf) / sizeof(TCHAR)); + SendMessage(hWidthUnit, WM_SETTEXT, 0, (LPARAM)buf); + SendMessage(hHeightUnit, WM_SETTEXT, 0, (LPARAM)buf); + LoadString(hInstance, IDS_UNIT_DPI, buf, sizeof(buf) / sizeof(TCHAR)); + SendMessage(hResUnit, WM_SETTEXT, 0, (LPARAM)buf); + break; + } + } + break; + + case IDC_IMAGETYPE: + if (HIWORD(wParam) == CBN_SELCHANGE) + SetImageSize(hDlg); + break; + + case IDC_WIDTH_EDIT: + case IDC_HEIGHT_EDIT: + if (HIWORD(wParam) == EN_UPDATE) + SetImageSize(hDlg); + break; + + case IDC_RES_EDIT: + if (HIWORD(wParam) == EN_UPDATE) + ConvertValue(hDlg, IDC_RES_EDIT, LastUnitSel); + break; + } + break; + + default: + return FALSE; + } + + return TRUE; +} diff --git a/reactos/base/applications/imagesoft/imagesoft.c b/reactos/base/applications/imagesoft/imagesoft.c index 5b5dcf580a4..907a6be9c7b 100644 --- a/reactos/base/applications/imagesoft/imagesoft.c +++ b/reactos/base/applications/imagesoft/imagesoft.c @@ -1,103 +1,103 @@ -#include - -HINSTANCE hInstance; -HANDLE ProcessHeap; - -#ifdef _MSC_VER -#pragma warning(disable : 4100) -#endif -int WINAPI -WinMain(HINSTANCE hThisInstance, - HINSTANCE hPrevInstance, - LPSTR lpCmdLine, - int nCmdShow) -{ - LPTSTR lpAppName, lpVersion, lpTitle; - HWND hMainWnd; - MSG Msg; - BOOL bRet; - int Ret = 1, len; - 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) || - !AllocAndLoadString(&lpVersion, hInstance, IDS_VERSION) ) - { - return Ret; - } - - len = (int)_tcslen(lpAppName) + (int)_tcslen(lpVersion); - lpTitle = HeapAlloc(ProcessHeap, - 0, - (len + 2) * sizeof(TCHAR)); - if (lpTitle == NULL) - { - LocalFree((HLOCAL)lpAppName); - LocalFree((HLOCAL)lpVersion); - return Ret; - } - - wsprintf(lpTitle, - _T("%s %s"), - lpAppName, - lpVersion); - - LocalFree((HLOCAL)lpAppName); - LocalFree((HLOCAL)lpVersion); - - if (TbdInitImpl()) - { - if (InitMainWindowImpl()) - { - if (InitImageEditWindowImpl()) - { - if (InitFloatWndClass()) - { - hMainWnd = CreateMainWindow(lpTitle, - nCmdShow); - if (hMainWnd != NULL) - { - /* pump the message queue */ - while((bRet = GetMessage(&Msg, - NULL, - 0, - 0) != 0)) - { - if (bRet != (BOOL)-1) - { - if (!MainWndTranslateMDISysAccel(hMainWnd, - &Msg)) - { - TranslateMessage(&Msg); - DispatchMessage(&Msg); - } - } - } - - Ret = 0; - } - - UninitImageEditWindowImpl(); - } - - UninitFloatWndImpl(); - } - - UninitMainWindowImpl(); - } - - TbdUninitImpl(); - } - - HeapFree(GetProcessHeap(), - 0, - lpTitle); - - return Ret; -} +#include + +HINSTANCE hInstance; +HANDLE ProcessHeap; + +#ifdef _MSC_VER +#pragma warning(disable : 4100) +#endif +int WINAPI +WinMain(HINSTANCE hThisInstance, + HINSTANCE hPrevInstance, + LPSTR lpCmdLine, + int nCmdShow) +{ + LPTSTR lpAppName, lpVersion, lpTitle; + HWND hMainWnd; + MSG Msg; + BOOL bRet; + int Ret = 1, len; + 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) || + !AllocAndLoadString(&lpVersion, hInstance, IDS_VERSION) ) + { + return Ret; + } + + len = (int)_tcslen(lpAppName) + (int)_tcslen(lpVersion); + lpTitle = HeapAlloc(ProcessHeap, + 0, + (len + 2) * sizeof(TCHAR)); + if (lpTitle == NULL) + { + LocalFree((HLOCAL)lpAppName); + LocalFree((HLOCAL)lpVersion); + return Ret; + } + + wsprintf(lpTitle, + _T("%s %s"), + lpAppName, + lpVersion); + + LocalFree((HLOCAL)lpAppName); + LocalFree((HLOCAL)lpVersion); + + if (TbdInitImpl()) + { + if (InitMainWindowImpl()) + { + if (InitImageEditWindowImpl()) + { + if (InitFloatWndClass()) + { + hMainWnd = CreateMainWindow(lpTitle, + nCmdShow); + if (hMainWnd != NULL) + { + /* pump the message queue */ + while((bRet = GetMessage(&Msg, + NULL, + 0, + 0) != 0)) + { + if (bRet != (BOOL)-1) + { + if (!MainWndTranslateMDISysAccel(hMainWnd, + &Msg)) + { + TranslateMessage(&Msg); + DispatchMessage(&Msg); + } + } + } + + Ret = 0; + } + + UninitImageEditWindowImpl(); + } + + UninitFloatWndImpl(); + } + + UninitMainWindowImpl(); + } + + TbdUninitImpl(); + } + + HeapFree(GetProcessHeap(), + 0, + lpTitle); + + return Ret; +} diff --git a/reactos/base/applications/imagesoft/imagesoft.rc b/reactos/base/applications/imagesoft/imagesoft.rc index 4892fdce134..c56171166aa 100644 --- a/reactos/base/applications/imagesoft/imagesoft.rc +++ b/reactos/base/applications/imagesoft/imagesoft.rc @@ -1,76 +1,76 @@ -#include -#include -#include "resource.h" - -#define REACTOS_STR_FILE_DESCRIPTION "ReactOS image editor\0" -#define REACTOS_STR_INTERNAL_NAME "imagesoft\0" -#define REACTOS_STR_ORIGINAL_FILENAME "imagesoft.exe\0" -#include - -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US - -1 24 DISCARDABLE "manifest.xml" - -IDI_IMAGESOFTICON ICON "res/imagesoft.ico" - -/* main toolbar icons */ -IDB_MAINCOPYICON BITMAP DISCARDABLE "res/icons/std/MainCopyIcon.bmp" -IDB_MAINCUTICON BITMAP DISCARDABLE "res/icons/std/MainCutIcon.bmp" -IDB_MAINPASTEICON BITMAP DISCARDABLE "res/icons/std/MainPasteIcon.bmp" -IDB_MAINREDOICON BITMAP DISCARDABLE "res/icons/std/MainRedoIcon.bmp" -IDB_MAINUNDOICON BITMAP DISCARDABLE "res/icons/std/MainUndoIcon.bmp" -IDB_MAINNEWICON BITMAP DISCARDABLE "res/icons/std/MainNewIcon.bmp" -IDB_MAINOPENICON BITMAP DISCARDABLE "res/icons/std/MainOpenIcon.bmp" -IDB_MAINPRINTICON BITMAP DISCARDABLE "res/icons/std/MainPrintIcon.bmp" -IDB_MAINPRINTPREICON BITMAP DISCARDABLE "res/icons/std/MainPrintPreIcon.bmp" -IDB_MAINSAVEICON BITMAP DISCARDABLE "res/icons/std/MainSaveIcon.bmp" - - -/* text toolbar icons */ -IDB_TEXTBOLD BITMAP DISCARDABLE "res/icons/text/TextBoldIcon.bmp" -IDB_TEXTITALIC BITMAP DISCARDABLE "res/icons/text/TextItalicIcon.bmp" -IDB_TEXTULINE BITMAP DISCARDABLE "res/icons/text/TextUnderlineIcon.bmp" -IDB_TEXTLEFT BITMAP DISCARDABLE "res/icons/text/TextAlignLeftIcon.bmp" -IDB_TEXTCENTER BITMAP DISCARDABLE "res/icons/text/TextAlignCenterIcon.bmp" -IDB_TEXTRIGHT BITMAP DISCARDABLE "res/icons/text/TextAlignRightIcon.bmp" - -/* tools window icons */ -IDB_TOOLSCLONESTAMP BITMAP DISCARDABLE "res/icons/tools/ToolsCloneStamp.bmp" -IDB_TOOLSCOLORPICKER BITMAP DISCARDABLE "res/icons/tools/ToolsColorPicker.bmp" -IDB_TOOLSECLIPSE BITMAP DISCARDABLE "res/icons/tools/ToolsEllipse.bmp" -IDB_TOOLSECLIPSESEL BITMAP DISCARDABLE "res/icons/tools/ToolsEllipseSelect.bmp" -IDB_TOOLSERASER BITMAP DISCARDABLE "res/icons/tools/ToolsEraser.bmp" -IDB_TOOLSFREEFORM BITMAP DISCARDABLE "res/icons/tools/ToolsFreeformShape.bmp" -IDB_TOOLSLASOO BITMAP DISCARDABLE "res/icons/tools/ToolsLassoSelect.bmp" -IDB_TOOLSLINE BITMAP DISCARDABLE "res/icons/tools/ToolsLine.bmp" -IDB_TOOLSMAGICWAND BITMAP DISCARDABLE "res/icons/tools/ToolsMagicWand.bmp" -IDB_TOOLSMOVE BITMAP DISCARDABLE "res/icons/tools/ToolsMove.bmp" -IDB_TOOLSMOVESEL BITMAP DISCARDABLE "res/icons/tools/ToolsMoveSelection.bmp" -IDB_TOOLSPAINTBRUSH BITMAP DISCARDABLE "res/icons/tools/ToolsPaintBrush.bmp" -IDB_TOOLSPAINTBUCKET BITMAP DISCARDABLE "res/icons/tools/ToolsPaintBucket.bmp" -IDB_TOOLSPENCIL BITMAP DISCARDABLE "res/icons/tools/ToolsPencil.bmp" -IDB_TOOLSRECOLORING BITMAP DISCARDABLE "res/icons/tools/ToolsRecoloring.bmp" -IDB_TOOLSRECTANGLE BITMAP DISCARDABLE "res/icons/tools/ToolsRectangle.bmp" -IDB_TOOLSRECTSEL BITMAP DISCARDABLE "res/icons/tools/ToolsRectangleSelect.bmp" -IDB_TOOLSROUNDRECT BITMAP DISCARDABLE "res/icons/tools/ToolsRoundedRectangle.bmp" -IDB_TOOLSTEXT BITMAP DISCARDABLE "res/icons/tools/ToolsText.bmp" -IDB_TOOLSZOOM BITMAP DISCARDABLE "res/icons/tools/ToolsZoom.bmp" - -/* history window icons */ -IDB_HISTBACK BITMAP DISCARDABLE "res/icons/hist/HistBack.bmp" -IDB_HISTUNDO BITMAP DISCARDABLE "res/icons/hist/HistUndo.bmp" -IDB_HISTREDO BITMAP DISCARDABLE "res/icons/hist/HistRedo.bmp" -IDB_HISTFORWARD BITMAP DISCARDABLE "res/icons/hist/HistForward.bmp" -IDB_HISTDELETE BITMAP DISCARDABLE "res/icons/hist/HistDelete.bmp" - -/* colors window icons */ -IDB_COLORSMORE BITMAP DISCARDABLE "res/icons/color/ColorMore.bmp" -IDB_COLORSLESS BITMAP DISCARDABLE "res/icons/color/ColorLess.bmp" - -/* cursors */ -IDC_PAINTBRUSHCURSOR CURSOR DISCARDABLE "res/cursors/PaintBrushToolCursor.cur" -IDC_PAINTBRUSHCURSORMOUSEDOWN CURSOR DISCARDABLE "res/cursors/PaintBrushToolCursorMouseDown.cur" - -#include "rsrc.rc" - - +#include +#include +#include "resource.h" + +#define REACTOS_STR_FILE_DESCRIPTION "ReactOS image editor\0" +#define REACTOS_STR_INTERNAL_NAME "imagesoft\0" +#define REACTOS_STR_ORIGINAL_FILENAME "imagesoft.exe\0" +#include + +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +1 24 DISCARDABLE "manifest.xml" + +IDI_IMAGESOFTICON ICON "res/imagesoft.ico" + +/* main toolbar icons */ +IDB_MAINCOPYICON BITMAP DISCARDABLE "res/icons/std/MainCopyIcon.bmp" +IDB_MAINCUTICON BITMAP DISCARDABLE "res/icons/std/MainCutIcon.bmp" +IDB_MAINPASTEICON BITMAP DISCARDABLE "res/icons/std/MainPasteIcon.bmp" +IDB_MAINREDOICON BITMAP DISCARDABLE "res/icons/std/MainRedoIcon.bmp" +IDB_MAINUNDOICON BITMAP DISCARDABLE "res/icons/std/MainUndoIcon.bmp" +IDB_MAINNEWICON BITMAP DISCARDABLE "res/icons/std/MainNewIcon.bmp" +IDB_MAINOPENICON BITMAP DISCARDABLE "res/icons/std/MainOpenIcon.bmp" +IDB_MAINPRINTICON BITMAP DISCARDABLE "res/icons/std/MainPrintIcon.bmp" +IDB_MAINPRINTPREICON BITMAP DISCARDABLE "res/icons/std/MainPrintPreIcon.bmp" +IDB_MAINSAVEICON BITMAP DISCARDABLE "res/icons/std/MainSaveIcon.bmp" + + +/* text toolbar icons */ +IDB_TEXTBOLD BITMAP DISCARDABLE "res/icons/text/TextBoldIcon.bmp" +IDB_TEXTITALIC BITMAP DISCARDABLE "res/icons/text/TextItalicIcon.bmp" +IDB_TEXTULINE BITMAP DISCARDABLE "res/icons/text/TextUnderlineIcon.bmp" +IDB_TEXTLEFT BITMAP DISCARDABLE "res/icons/text/TextAlignLeftIcon.bmp" +IDB_TEXTCENTER BITMAP DISCARDABLE "res/icons/text/TextAlignCenterIcon.bmp" +IDB_TEXTRIGHT BITMAP DISCARDABLE "res/icons/text/TextAlignRightIcon.bmp" + +/* tools window icons */ +IDB_TOOLSCLONESTAMP BITMAP DISCARDABLE "res/icons/tools/ToolsCloneStamp.bmp" +IDB_TOOLSCOLORPICKER BITMAP DISCARDABLE "res/icons/tools/ToolsColorPicker.bmp" +IDB_TOOLSECLIPSE BITMAP DISCARDABLE "res/icons/tools/ToolsEllipse.bmp" +IDB_TOOLSECLIPSESEL BITMAP DISCARDABLE "res/icons/tools/ToolsEllipseSelect.bmp" +IDB_TOOLSERASER BITMAP DISCARDABLE "res/icons/tools/ToolsEraser.bmp" +IDB_TOOLSFREEFORM BITMAP DISCARDABLE "res/icons/tools/ToolsFreeformShape.bmp" +IDB_TOOLSLASOO BITMAP DISCARDABLE "res/icons/tools/ToolsLassoSelect.bmp" +IDB_TOOLSLINE BITMAP DISCARDABLE "res/icons/tools/ToolsLine.bmp" +IDB_TOOLSMAGICWAND BITMAP DISCARDABLE "res/icons/tools/ToolsMagicWand.bmp" +IDB_TOOLSMOVE BITMAP DISCARDABLE "res/icons/tools/ToolsMove.bmp" +IDB_TOOLSMOVESEL BITMAP DISCARDABLE "res/icons/tools/ToolsMoveSelection.bmp" +IDB_TOOLSPAINTBRUSH BITMAP DISCARDABLE "res/icons/tools/ToolsPaintBrush.bmp" +IDB_TOOLSPAINTBUCKET BITMAP DISCARDABLE "res/icons/tools/ToolsPaintBucket.bmp" +IDB_TOOLSPENCIL BITMAP DISCARDABLE "res/icons/tools/ToolsPencil.bmp" +IDB_TOOLSRECOLORING BITMAP DISCARDABLE "res/icons/tools/ToolsRecoloring.bmp" +IDB_TOOLSRECTANGLE BITMAP DISCARDABLE "res/icons/tools/ToolsRectangle.bmp" +IDB_TOOLSRECTSEL BITMAP DISCARDABLE "res/icons/tools/ToolsRectangleSelect.bmp" +IDB_TOOLSROUNDRECT BITMAP DISCARDABLE "res/icons/tools/ToolsRoundedRectangle.bmp" +IDB_TOOLSTEXT BITMAP DISCARDABLE "res/icons/tools/ToolsText.bmp" +IDB_TOOLSZOOM BITMAP DISCARDABLE "res/icons/tools/ToolsZoom.bmp" + +/* history window icons */ +IDB_HISTBACK BITMAP DISCARDABLE "res/icons/hist/HistBack.bmp" +IDB_HISTUNDO BITMAP DISCARDABLE "res/icons/hist/HistUndo.bmp" +IDB_HISTREDO BITMAP DISCARDABLE "res/icons/hist/HistRedo.bmp" +IDB_HISTFORWARD BITMAP DISCARDABLE "res/icons/hist/HistForward.bmp" +IDB_HISTDELETE BITMAP DISCARDABLE "res/icons/hist/HistDelete.bmp" + +/* colors window icons */ +IDB_COLORSMORE BITMAP DISCARDABLE "res/icons/color/ColorMore.bmp" +IDB_COLORSLESS BITMAP DISCARDABLE "res/icons/color/ColorLess.bmp" + +/* cursors */ +IDC_PAINTBRUSHCURSOR CURSOR DISCARDABLE "res/cursors/PaintBrushToolCursor.cur" +IDC_PAINTBRUSHCURSORMOUSEDOWN CURSOR DISCARDABLE "res/cursors/PaintBrushToolCursorMouseDown.cur" + +#include "rsrc.rc" + + diff --git a/reactos/base/applications/imagesoft/imgedwnd.c b/reactos/base/applications/imagesoft/imgedwnd.c index 340f025348d..8d8161b1121 100644 --- a/reactos/base/applications/imagesoft/imgedwnd.c +++ b/reactos/base/applications/imagesoft/imgedwnd.c @@ -1,534 +1,534 @@ -#include - -static const TCHAR szImageEditWndClass[] = TEXT("ImageSoftEditWndClass"); - -#define IMAGE_FRAME_SIZE 1 - - -static VOID -EditWndUpdateScrollInfo(PEDIT_WND_INFO Info) -{ - SCROLLINFO si; - RECT rcClient; - - GetClientRect(Info->hSelf, - &rcClient); - - si.cbSize = sizeof(si); - si.fMask = SIF_PAGE | SIF_RANGE; - si.nPage = rcClient.right - (2 * IMAGE_FRAME_SIZE); - si.nMin = 0; - si.nMax = Info->Width; - - SetScrollInfo(Info->hSelf, - SB_HORZ, - &si, - TRUE); - - si.nPage = rcClient.bottom - (2 * IMAGE_FRAME_SIZE); - si.nMax = Info->Height; - SetScrollInfo(Info->hSelf, - SB_VERT, - &si, - TRUE); -} - -static BOOL -InitEditWnd(PEDIT_WND_INFO Info) -{ - BITMAPFILEHEADER bmfh; - PBITMAPINFO pbmi = NULL; - PBYTE pBits; - HANDLE hFile; - BITMAP bitmap; - - Info->Zoom = 100; - - if (Info->OpenInfo != NULL) - { - HDC hDC = GetDC(Info->hSelf); - Info->hDCMem = CreateCompatibleDC(hDC); - ReleaseDC(Info->hSelf, hDC); - - if (Info->OpenInfo->CreateNew) - { - /* FIXME: convert this to a DIB Section */ - /* set bitmap dimensions */ - Info->Width = Info->OpenInfo->New.Width; - Info->Height = Info->OpenInfo->New.Height; - - } - else - { - DWORD InfoSize, BytesRead; - BOOL bSuccess; - - hFile = CreateFile(Info->OpenInfo->Open.lpImagePath, - GENERIC_READ, - FILE_SHARE_READ, - NULL, - OPEN_EXISTING, - FILE_FLAG_SEQUENTIAL_SCAN, - NULL); - if (hFile == INVALID_HANDLE_VALUE) - return FALSE; - - bSuccess = ReadFile(hFile, - &bmfh, - sizeof(BITMAPFILEHEADER), - &BytesRead, - NULL); - - if ( bSuccess && (BytesRead == sizeof(BITMAPFILEHEADER)) - /* FIXME: Why is this failing?? */ - /*&& (bmfh.bfType == *(WORD *)_T("BM"))*/) - { - InfoSize = bmfh.bfOffBits - sizeof(BITMAPFILEHEADER); - - pbmi = HeapAlloc(ProcessHeap, - 0, - InfoSize); - - bSuccess = ReadFile(hFile, - pbmi, - InfoSize, - &BytesRead, - NULL); - - if (bSuccess && (BytesRead == InfoSize)) - { - Info->hBitmap = CreateDIBSection(NULL, - pbmi, - DIB_RGB_COLORS, - (VOID *)&pBits, - NULL, - 0); - if (Info->hBitmap != NULL) - { - ReadFile(hFile, - pBits, - bmfh.bfSize - bmfh.bfOffBits, - &BytesRead, - NULL); - } - else - { - goto fail; - } - } - else - { - goto fail; - } - } - else - { - if (! bSuccess) - GetError(0); - - goto fail; - } - - CloseHandle(hFile); - - HeapFree(ProcessHeap, - 0, - pbmi); - } - - Info->OpenInfo = NULL; - } - - /* get bitmap dimensions */ - GetObject(Info->hBitmap, - sizeof(BITMAP), - &bitmap); - - Info->Width = bitmap.bmWidth; - Info->Height = bitmap.bmHeight; - - EditWndUpdateScrollInfo(Info); - - /* Add image editor to the list */ - Info->Next = Info->MainWnd->ImageEditors; - Info->MainWnd->ImageEditors = Info; - - InvalidateRect(Info->hSelf, - NULL, - TRUE); - - /* FIXME - if returning FALSE, remove the image editor from the list! */ - return TRUE; - - -fail: - if (! hFile) - CloseHandle(hFile); - - if (! pbmi) - HeapFree(ProcessHeap, - 0, - pbmi); - - return FALSE; -} - -static VOID -DestroyEditWnd(PEDIT_WND_INFO Info) -{ - PEDIT_WND_INFO *PrevEditor; - PEDIT_WND_INFO Editor; - - DeleteDC(Info->hDCMem); - - /* FIXME - free resources and run down editor */ - - /* Remove the image editor from the list */ - PrevEditor = &Info->MainWnd->ImageEditors; - Editor = Info->MainWnd->ImageEditors; - do - { - if (Editor == Info) - { - *PrevEditor = Info->Next; - break; - } - PrevEditor = &Editor->Next; - Editor = Editor->Next; - } while (Editor != NULL); -} - -static VOID -ImageEditWndRepaint(PEDIT_WND_INFO Info, - HDC hDC, - LPPAINTSTRUCT lpps) -{ - HBITMAP hOldBitmap; - - if (Info->hBitmap) - { - hOldBitmap = (HBITMAP) SelectObject(Info->hDCMem, - Info->hBitmap); - - BitBlt(hDC, - lpps->rcPaint.left, - lpps->rcPaint.top, - lpps->rcPaint.right - lpps->rcPaint.left, - lpps->rcPaint.bottom - lpps->rcPaint.top, - Info->hDCMem, - lpps->rcPaint.left, - lpps->rcPaint.top, - SRCCOPY); - - Info->hBitmap = SelectObject(Info->hDCMem, hOldBitmap); - } -} - -static LRESULT CALLBACK -ImageEditWndProc(HWND hwnd, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) -{ - PEDIT_WND_INFO Info; - LRESULT Ret = 0; - HDC hDC; - static INT xMouse, yMouse; - static BOOL bLeftButtonDown, bRightButtonDown; - - /* Get the window context */ - Info = (PEDIT_WND_INFO)GetWindowLongPtr(hwnd, - GWLP_USERDATA); - if (Info == NULL && uMsg != WM_CREATE) - { - goto HandleDefaultMessage; - } - - switch (uMsg) - { - case WM_CREATE: - { - Info = (PEDIT_WND_INFO)(((LPMDICREATESTRUCT)((LPCREATESTRUCT)lParam)->lpCreateParams)->lParam); - Info->hSelf = hwnd; - - SetWindowLongPtr(hwnd, - GWLP_USERDATA, - (LONG_PTR)Info); - - if (!InitEditWnd(Info)) - { - Ret = (LRESULT)-1; - break; - } - break; - } - - case WM_ERASEBKGND: - if (Info->Width != 0 && Info->Height != 0) - { - Ret = TRUE; - } - break; - - case WM_LBUTTONDOWN: - if (! bRightButtonDown) - SetCapture(Info->hSelf); - - bLeftButtonDown = TRUE; - xMouse = LOWORD(lParam); - yMouse = HIWORD(lParam); - - SetCursor(LoadCursor(hInstance, - MAKEINTRESOURCE(IDC_PAINTBRUSHCURSORMOUSEDOWN))); - break; - - case WM_LBUTTONUP: - if (bLeftButtonDown) - SetCapture(NULL); - - bLeftButtonDown = FALSE; - - break; - - case WM_RBUTTONDOWN: - if (! bLeftButtonDown) - SetCapture(Info->hSelf); - - bRightButtonDown = TRUE; - xMouse = LOWORD(lParam); - yMouse = HIWORD(lParam); - - SetCursor(LoadCursor(hInstance, - MAKEINTRESOURCE(IDC_PAINTBRUSHCURSORMOUSEDOWN))); - break; - - case WM_RBUTTONUP: - if (bRightButtonDown) - SetCapture(NULL); - - bRightButtonDown = FALSE; - - break; - - case WM_MOUSEMOVE: - { - HPEN hPen, hPenOld; - - if (!bLeftButtonDown && !bRightButtonDown) - break; - - hDC = GetDC(Info->hSelf); - - SelectObject(Info->hDCMem, - Info->hBitmap); - - if (bLeftButtonDown) - hPen = CreatePen(PS_SOLID, - 3, - RGB(0, 0, 0)); - else - hPen = CreatePen(PS_SOLID, - 3, - RGB(255, 255, 255)); - - hPenOld = SelectObject(hDC, - hPen); - - MoveToEx(hDC, - xMouse, - yMouse, - NULL); - - MoveToEx(Info->hDCMem, - xMouse, - yMouse, - NULL); - - xMouse = (short)LOWORD(lParam); - yMouse = (short)HIWORD(lParam); - - LineTo(hDC, - xMouse, - yMouse); - - LineTo(Info->hDCMem, - xMouse, - yMouse); - - DeleteObject(SelectObject(hDC, - hPenOld)); - - ReleaseDC(Info->hSelf, - hDC); - } - break; - - case WM_PAINT: - { - if (Info->Width != 0 && Info->Height != 0) - { - PAINTSTRUCT ps; - HDC hDC; - - hDC = BeginPaint(hwnd, - &ps); - if (hDC != NULL) - { - ImageEditWndRepaint(Info, - hDC, - &ps); - - EndPaint(hwnd, - &ps); - } - } - break; - } - - case WM_SIZE: - { - EditWndUpdateScrollInfo(Info); - goto HandleDefaultMessage; - } - - case WM_MENUSELECT: - case WM_ENTERMENULOOP: - case WM_EXITMENULOOP: - /* forward these messages to the main window procedure */ - Ret = SendMessage(Info->MainWnd->hSelf, - uMsg, - wParam, - lParam); - break; - - case WM_MDIACTIVATE: - /* Switch the main window context if neccessary */ - MainWndSwitchEditorContext(Info->MainWnd, - (HWND)wParam, - (HWND)lParam); - break; - - case WM_DESTROY: - { - DestroyEditWnd(Info); - - HeapFree(ProcessHeap, - 0, - Info); - SetWindowLongPtr(hwnd, - GWLP_USERDATA, - 0); - break; - } - - default: -HandleDefaultMessage: - Ret = DefMDIChildProc(hwnd, - uMsg, - wParam, - lParam); - break; - } - - return Ret; -} - -VOID -SetImageEditorEnvironment(PEDIT_WND_INFO Info, - BOOL Setup) -{ - if (Setup) - { - /* FIXME - setup editor environment (e.g. show toolbars, enable menus etc) */ - } - else - { - /* FIXME - cleanup editor environment (e.g. hide toolbars, disable menus etc) */ - } -} - -BOOL -CreateImageEditWindow(struct _MAIN_WND_INFO *MainWnd, - POPEN_IMAGE_EDIT_INFO OpenInfo) -{ - PEDIT_WND_INFO Info; - HWND hWndEditor; - LONG Width, Height; - - Info = HeapAlloc(ProcessHeap, - 0, - sizeof(EDIT_WND_INFO)); - if (Info != NULL) - { - ZeroMemory(Info, - sizeof(EDIT_WND_INFO)); - Info->MainWnd = MainWnd; - Info->MdiEditorType = metImageEditor; - Info->OpenInfo = OpenInfo; - - if (OpenInfo->CreateNew) - { - Width = OpenInfo->New.Width; - Height = OpenInfo->New.Height; - } - else - { - Width = CW_USEDEFAULT; - Height = CW_USEDEFAULT; - } - - hWndEditor = CreateMDIWindow(szImageEditWndClass, - OpenInfo->lpImageName, - WS_HSCROLL | WS_VSCROLL | WS_MAXIMIZE, - 200, - 200, - Width, - Height, - MainWnd->hMdiClient, - hInstance, - (LPARAM)Info); - - if (hWndEditor != NULL) - { - return TRUE; - } - - HeapFree(ProcessHeap, - 0, - Info); - } - - return FALSE; -} - -BOOL -InitImageEditWindowImpl(VOID) -{ - WNDCLASSEX wc = {0}; - - wc.cbSize = sizeof(WNDCLASSEX); - wc.style = CS_HREDRAW | CS_VREDRAW; - wc.lpfnWndProc = ImageEditWndProc; - wc.hInstance = hInstance; - wc.hIcon = LoadIcon(hInstance, - MAKEINTRESOURCE(IDI_IMAGESOFTICON)); - wc.hCursor = LoadCursor(hInstance, - MAKEINTRESOURCE(IDC_PAINTBRUSHCURSOR)); - wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); - wc.lpszClassName = szImageEditWndClass; - wc.hIconSm = (HICON)LoadImage(hInstance, - MAKEINTRESOURCE(IDI_IMAGESOFTICON), - IMAGE_ICON, - 16, - 16, - LR_SHARED); - - return RegisterClassEx(&wc) != (ATOM)0; -} - -VOID -UninitImageEditWindowImpl(VOID) -{ - UnregisterClass(szImageEditWndClass, - hInstance); -} +#include + +static const TCHAR szImageEditWndClass[] = TEXT("ImageSoftEditWndClass"); + +#define IMAGE_FRAME_SIZE 1 + + +static VOID +EditWndUpdateScrollInfo(PEDIT_WND_INFO Info) +{ + SCROLLINFO si; + RECT rcClient; + + GetClientRect(Info->hSelf, + &rcClient); + + si.cbSize = sizeof(si); + si.fMask = SIF_PAGE | SIF_RANGE; + si.nPage = rcClient.right - (2 * IMAGE_FRAME_SIZE); + si.nMin = 0; + si.nMax = Info->Width; + + SetScrollInfo(Info->hSelf, + SB_HORZ, + &si, + TRUE); + + si.nPage = rcClient.bottom - (2 * IMAGE_FRAME_SIZE); + si.nMax = Info->Height; + SetScrollInfo(Info->hSelf, + SB_VERT, + &si, + TRUE); +} + +static BOOL +InitEditWnd(PEDIT_WND_INFO Info) +{ + BITMAPFILEHEADER bmfh; + PBITMAPINFO pbmi = NULL; + PBYTE pBits; + HANDLE hFile; + BITMAP bitmap; + + Info->Zoom = 100; + + if (Info->OpenInfo != NULL) + { + HDC hDC = GetDC(Info->hSelf); + Info->hDCMem = CreateCompatibleDC(hDC); + ReleaseDC(Info->hSelf, hDC); + + if (Info->OpenInfo->CreateNew) + { + /* FIXME: convert this to a DIB Section */ + /* set bitmap dimensions */ + Info->Width = Info->OpenInfo->New.Width; + Info->Height = Info->OpenInfo->New.Height; + + } + else + { + DWORD InfoSize, BytesRead; + BOOL bSuccess; + + hFile = CreateFile(Info->OpenInfo->Open.lpImagePath, + GENERIC_READ, + FILE_SHARE_READ, + NULL, + OPEN_EXISTING, + FILE_FLAG_SEQUENTIAL_SCAN, + NULL); + if (hFile == INVALID_HANDLE_VALUE) + return FALSE; + + bSuccess = ReadFile(hFile, + &bmfh, + sizeof(BITMAPFILEHEADER), + &BytesRead, + NULL); + + if ( bSuccess && (BytesRead == sizeof(BITMAPFILEHEADER)) + /* FIXME: Why is this failing?? */ + /*&& (bmfh.bfType == *(WORD *)_T("BM"))*/) + { + InfoSize = bmfh.bfOffBits - sizeof(BITMAPFILEHEADER); + + pbmi = HeapAlloc(ProcessHeap, + 0, + InfoSize); + + bSuccess = ReadFile(hFile, + pbmi, + InfoSize, + &BytesRead, + NULL); + + if (bSuccess && (BytesRead == InfoSize)) + { + Info->hBitmap = CreateDIBSection(NULL, + pbmi, + DIB_RGB_COLORS, + (VOID *)&pBits, + NULL, + 0); + if (Info->hBitmap != NULL) + { + ReadFile(hFile, + pBits, + bmfh.bfSize - bmfh.bfOffBits, + &BytesRead, + NULL); + } + else + { + goto fail; + } + } + else + { + goto fail; + } + } + else + { + if (! bSuccess) + GetError(0); + + goto fail; + } + + CloseHandle(hFile); + + HeapFree(ProcessHeap, + 0, + pbmi); + } + + Info->OpenInfo = NULL; + } + + /* get bitmap dimensions */ + GetObject(Info->hBitmap, + sizeof(BITMAP), + &bitmap); + + Info->Width = bitmap.bmWidth; + Info->Height = bitmap.bmHeight; + + EditWndUpdateScrollInfo(Info); + + /* Add image editor to the list */ + Info->Next = Info->MainWnd->ImageEditors; + Info->MainWnd->ImageEditors = Info; + + InvalidateRect(Info->hSelf, + NULL, + TRUE); + + /* FIXME - if returning FALSE, remove the image editor from the list! */ + return TRUE; + + +fail: + if (! hFile) + CloseHandle(hFile); + + if (! pbmi) + HeapFree(ProcessHeap, + 0, + pbmi); + + return FALSE; +} + +static VOID +DestroyEditWnd(PEDIT_WND_INFO Info) +{ + PEDIT_WND_INFO *PrevEditor; + PEDIT_WND_INFO Editor; + + DeleteDC(Info->hDCMem); + + /* FIXME - free resources and run down editor */ + + /* Remove the image editor from the list */ + PrevEditor = &Info->MainWnd->ImageEditors; + Editor = Info->MainWnd->ImageEditors; + do + { + if (Editor == Info) + { + *PrevEditor = Info->Next; + break; + } + PrevEditor = &Editor->Next; + Editor = Editor->Next; + } while (Editor != NULL); +} + +static VOID +ImageEditWndRepaint(PEDIT_WND_INFO Info, + HDC hDC, + LPPAINTSTRUCT lpps) +{ + HBITMAP hOldBitmap; + + if (Info->hBitmap) + { + hOldBitmap = (HBITMAP) SelectObject(Info->hDCMem, + Info->hBitmap); + + BitBlt(hDC, + lpps->rcPaint.left, + lpps->rcPaint.top, + lpps->rcPaint.right - lpps->rcPaint.left, + lpps->rcPaint.bottom - lpps->rcPaint.top, + Info->hDCMem, + lpps->rcPaint.left, + lpps->rcPaint.top, + SRCCOPY); + + Info->hBitmap = SelectObject(Info->hDCMem, hOldBitmap); + } +} + +static LRESULT CALLBACK +ImageEditWndProc(HWND hwnd, + UINT uMsg, + WPARAM wParam, + LPARAM lParam) +{ + PEDIT_WND_INFO Info; + LRESULT Ret = 0; + HDC hDC; + static INT xMouse, yMouse; + static BOOL bLeftButtonDown, bRightButtonDown; + + /* Get the window context */ + Info = (PEDIT_WND_INFO)GetWindowLongPtr(hwnd, + GWLP_USERDATA); + if (Info == NULL && uMsg != WM_CREATE) + { + goto HandleDefaultMessage; + } + + switch (uMsg) + { + case WM_CREATE: + { + Info = (PEDIT_WND_INFO)(((LPMDICREATESTRUCT)((LPCREATESTRUCT)lParam)->lpCreateParams)->lParam); + Info->hSelf = hwnd; + + SetWindowLongPtr(hwnd, + GWLP_USERDATA, + (LONG_PTR)Info); + + if (!InitEditWnd(Info)) + { + Ret = (LRESULT)-1; + break; + } + break; + } + + case WM_ERASEBKGND: + if (Info->Width != 0 && Info->Height != 0) + { + Ret = TRUE; + } + break; + + case WM_LBUTTONDOWN: + if (! bRightButtonDown) + SetCapture(Info->hSelf); + + bLeftButtonDown = TRUE; + xMouse = LOWORD(lParam); + yMouse = HIWORD(lParam); + + SetCursor(LoadCursor(hInstance, + MAKEINTRESOURCE(IDC_PAINTBRUSHCURSORMOUSEDOWN))); + break; + + case WM_LBUTTONUP: + if (bLeftButtonDown) + SetCapture(NULL); + + bLeftButtonDown = FALSE; + + break; + + case WM_RBUTTONDOWN: + if (! bLeftButtonDown) + SetCapture(Info->hSelf); + + bRightButtonDown = TRUE; + xMouse = LOWORD(lParam); + yMouse = HIWORD(lParam); + + SetCursor(LoadCursor(hInstance, + MAKEINTRESOURCE(IDC_PAINTBRUSHCURSORMOUSEDOWN))); + break; + + case WM_RBUTTONUP: + if (bRightButtonDown) + SetCapture(NULL); + + bRightButtonDown = FALSE; + + break; + + case WM_MOUSEMOVE: + { + HPEN hPen, hPenOld; + + if (!bLeftButtonDown && !bRightButtonDown) + break; + + hDC = GetDC(Info->hSelf); + + SelectObject(Info->hDCMem, + Info->hBitmap); + + if (bLeftButtonDown) + hPen = CreatePen(PS_SOLID, + 3, + RGB(0, 0, 0)); + else + hPen = CreatePen(PS_SOLID, + 3, + RGB(255, 255, 255)); + + hPenOld = SelectObject(hDC, + hPen); + + MoveToEx(hDC, + xMouse, + yMouse, + NULL); + + MoveToEx(Info->hDCMem, + xMouse, + yMouse, + NULL); + + xMouse = (short)LOWORD(lParam); + yMouse = (short)HIWORD(lParam); + + LineTo(hDC, + xMouse, + yMouse); + + LineTo(Info->hDCMem, + xMouse, + yMouse); + + DeleteObject(SelectObject(hDC, + hPenOld)); + + ReleaseDC(Info->hSelf, + hDC); + } + break; + + case WM_PAINT: + { + if (Info->Width != 0 && Info->Height != 0) + { + PAINTSTRUCT ps; + HDC hDC; + + hDC = BeginPaint(hwnd, + &ps); + if (hDC != NULL) + { + ImageEditWndRepaint(Info, + hDC, + &ps); + + EndPaint(hwnd, + &ps); + } + } + break; + } + + case WM_SIZE: + { + EditWndUpdateScrollInfo(Info); + goto HandleDefaultMessage; + } + + case WM_MENUSELECT: + case WM_ENTERMENULOOP: + case WM_EXITMENULOOP: + /* forward these messages to the main window procedure */ + Ret = SendMessage(Info->MainWnd->hSelf, + uMsg, + wParam, + lParam); + break; + + case WM_MDIACTIVATE: + /* Switch the main window context if neccessary */ + MainWndSwitchEditorContext(Info->MainWnd, + (HWND)wParam, + (HWND)lParam); + break; + + case WM_DESTROY: + { + DestroyEditWnd(Info); + + HeapFree(ProcessHeap, + 0, + Info); + SetWindowLongPtr(hwnd, + GWLP_USERDATA, + 0); + break; + } + + default: +HandleDefaultMessage: + Ret = DefMDIChildProc(hwnd, + uMsg, + wParam, + lParam); + break; + } + + return Ret; +} + +VOID +SetImageEditorEnvironment(PEDIT_WND_INFO Info, + BOOL Setup) +{ + if (Setup) + { + /* FIXME - setup editor environment (e.g. show toolbars, enable menus etc) */ + } + else + { + /* FIXME - cleanup editor environment (e.g. hide toolbars, disable menus etc) */ + } +} + +BOOL +CreateImageEditWindow(struct _MAIN_WND_INFO *MainWnd, + POPEN_IMAGE_EDIT_INFO OpenInfo) +{ + PEDIT_WND_INFO Info; + HWND hWndEditor; + LONG Width, Height; + + Info = HeapAlloc(ProcessHeap, + 0, + sizeof(EDIT_WND_INFO)); + if (Info != NULL) + { + ZeroMemory(Info, + sizeof(EDIT_WND_INFO)); + Info->MainWnd = MainWnd; + Info->MdiEditorType = metImageEditor; + Info->OpenInfo = OpenInfo; + + if (OpenInfo->CreateNew) + { + Width = OpenInfo->New.Width; + Height = OpenInfo->New.Height; + } + else + { + Width = CW_USEDEFAULT; + Height = CW_USEDEFAULT; + } + + hWndEditor = CreateMDIWindow(szImageEditWndClass, + OpenInfo->lpImageName, + WS_HSCROLL | WS_VSCROLL | WS_MAXIMIZE, + 200, + 200, + Width, + Height, + MainWnd->hMdiClient, + hInstance, + (LPARAM)Info); + + if (hWndEditor != NULL) + { + return TRUE; + } + + HeapFree(ProcessHeap, + 0, + Info); + } + + return FALSE; +} + +BOOL +InitImageEditWindowImpl(VOID) +{ + WNDCLASSEX wc = {0}; + + wc.cbSize = sizeof(WNDCLASSEX); + wc.style = CS_HREDRAW | CS_VREDRAW; + wc.lpfnWndProc = ImageEditWndProc; + wc.hInstance = hInstance; + wc.hIcon = LoadIcon(hInstance, + MAKEINTRESOURCE(IDI_IMAGESOFTICON)); + wc.hCursor = LoadCursor(hInstance, + MAKEINTRESOURCE(IDC_PAINTBRUSHCURSOR)); + wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); + wc.lpszClassName = szImageEditWndClass; + wc.hIconSm = (HICON)LoadImage(hInstance, + MAKEINTRESOURCE(IDI_IMAGESOFTICON), + IMAGE_ICON, + 16, + 16, + LR_SHARED); + + return RegisterClassEx(&wc) != (ATOM)0; +} + +VOID +UninitImageEditWindowImpl(VOID) +{ + UnregisterClass(szImageEditWndClass, + hInstance); +} diff --git a/reactos/base/applications/imagesoft/lang/En.rc b/reactos/base/applications/imagesoft/lang/En.rc index a11b8e27b06..a616103c5c0 100644 --- a/reactos/base/applications/imagesoft/lang/En.rc +++ b/reactos/base/applications/imagesoft/lang/En.rc @@ -1,206 +1,206 @@ -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APPNAME "ImageSoft" - IDS_VERSION "v0.1" -END - -IDR_MAINMENU MENU -BEGIN - POPUP "&File" - BEGIN - MENUITEM "&New...", ID_NEW - MENUITEM "&Open...", ID_OPEN - MENUITEM SEPARATOR - MENUITEM "&Close\tCtrl+F4", ID_CLOSE, GRAYED - MENUITEM "C&lose all", ID_CLOSEALL, GRAYED - MENUITEM SEPARATOR - MENUITEM "&Save", ID_SAVE, GRAYED - MENUITEM "Save &As...", ID_SAVEAS, GRAYED - MENUITEM SEPARATOR - MENUITEM "Print Pre&view", ID_PRINTPRE, GRAYED - MENUITEM "&Print...", ID_PRINT, GRAYED - MENUITEM SEPARATOR - MENUITEM "Pr&operties...", ID_PROP, GRAYED - MENUITEM SEPARATOR - MENUITEM "E&xit\tAlt+F4", ID_EXIT - END - POPUP "&Edit" - BEGIN - MENUITEM "&Undo", ID_UNDO, GRAYED - MENUITEM "&Redo", ID_REDO, GRAYED - MENUITEM SEPARATOR - MENUITEM "Cu&t", ID_CUT, GRAYED - MENUITEM "&Copy", ID_COPY, GRAYED - MENUITEM "&Paste", ID_PASTE, GRAYED - MENUITEM "Paste as new &image", ID_PASTENEWIMAGE, GRAYED - MENUITEM SEPARATOR - MENUITEM "Select &All", ID_SELALL, GRAYED - END - POPUP "&View" - BEGIN - MENUITEM "&Tools", ID_TOOLS - MENUITEM "&Colors", ID_COLOR - MENUITEM "&History", ID_HISTORY - MENUITEM "&Status Bar", ID_STATUSBAR - END - POPUP "&Image" - BEGIN - MENUITEM "&Crop...", -1, GRAYED - MENUITEM "&Resize...", -1, GRAYED - MENUITEM "R&otate...", -1, GRAYED - MENUITEM "&Flip...", -1, GRAYED - MENUITEM "&Stretch...", -1, GRAYED - MENUITEM "S&kew...", -1, GRAYED - MENUITEM "&Invert Colors", -1, GRAYED - MENUITEM SEPARATOR - MENUITEM "&Attributes...", -1, GRAYED - END - POPUP "&Colors" - BEGIN - MENUITEM "&Edit Colors...", ID_EDITCOLOURS - END - POPUP "&Window" - BEGIN - MENUITEM "&Cascade", ID_WINDOW_CASCADE - MENUITEM "Tile &Horizontally", ID_WINDOW_TILE_HORZ - MENUITEM "Tile &Vertiacally", ID_WINDOW_TILE_VERT - MENUITEM "&Arrange Icons", ID_WINDOW_ARRANGE - MENUITEM SEPARATOR - MENUITEM "Nex&t\tCtrl+F6", ID_WINDOW_NEXT - END - POPUP "&Help" - BEGIN - MENUITEM "&About...", ID_ABOUT - END -END - -IDR_POPUP MENU -BEGIN - POPUP "popup" - BEGIN - - MENUITEM SEPARATOR - - END -END - - -IDD_ABOUTBOX DIALOGEX 22,16,210,182 -CAPTION "About ImageSoft" -FONT 8,"Tahoma",0,0 -STYLE WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -//EXSTYLE WS_EX_LAYERED -BEGIN - LTEXT "ImageSoft v0.1\nCopyright (C) 2006\nThomas Weidenmueller (w3seek@reactos.org)\nGed Murphy (gedmurphy@gmail.com)", IDC_STATIC, 48, 7, 150, 36 - PUSHBUTTON "Close", IDOK, 75, 162, 44, 15 - ICON IDI_IMAGESOFTICON, IDC_STATIC, 10, 10, 7, 30 - EDITTEXT IDC_LICENSE_EDIT, 8, 44, 194, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE -END - - -IDD_IMAGE_PROP DIALOGEX 6, 5, 156, 163 -CAPTION "Image Properties" -FONT 8,"MS Sans Serif",0,0 -STYLE WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Name:", IDC_STATIC, 12, 5, 38, 9 - EDITTEXT IDC_IMAGE_NAME_EDIT, 58, 3, 94, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP - GROUPBOX "Canvas properties", IDC_STATIC, 4, 22, 148, 98 - LTEXT "Image type:", IDC_STATIC, 12, 36, 42, 9 - CONTROL "", IDC_IMAGETYPE, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 35, 88, 54 - LTEXT "Width:", IDC_STATIC, 12, 51, 42, 9 - EDITTEXT IDC_WIDTH_EDIT, 58, 49, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_WIDTH_STAT, 94, 51, 40, 9 - LTEXT "Height:", IDC_STATIC, 12, 68, 42, 9 - EDITTEXT IDC_HEIGHT_EDIT, 58, 66, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_HEIGHT_STAT, 94, 68, 40, 9 - LTEXT "Resolution:", IDC_STATIC, 12, 84, 42, 9 - EDITTEXT IDC_RES_EDIT, 58, 83, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER - LTEXT "", IDC_RES_STAT, 94, 84, 40, 9 - LTEXT "Unit:", IDC_STATIC, 12, 99, 42, 9 - CONTROL "", IDC_UNIT, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 99, 54, 50 - LTEXT "Image size:", IDC_STATIC, 12, 125, 42, 9 - LTEXT "", IDC_IMAGE_SIZE, 58, 125, 54, 9 - PUSHBUTTON "OK", IDOK, 50, 144, 48, 13 - PUSHBUTTON "Cancel", IDCANCEL, 102, 144, 48, 13 -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." - IDS_READY " Ready." - IDS_TOOLBAR_STANDARD "Standard" - IDS_TOOLBAR_TEST "Test" - IDS_IMAGE_NAME "Image %1!u!" - IDS_FLT_TOOLS "Tools" - IDS_FLT_COLORS "Colors" - IDS_FLT_HISTORY "History" -END - -/* imageprop.c */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_IMAGE_MONOCHROME "Monochrome (1 bit)" - IDS_IMAGE_GREYSCALE "Greyscale (8 bit)" - IDS_IMAGE_PALETTE "Palette or 256 color (8 bit)" - IDS_IMAGE_TRUECOLOR "True color (24 bit)" - - IDS_UNIT_PIXELS "Pixels" - IDS_UNIT_CM "Cm" - IDS_UNIT_INCHES "Inches" - IDS_UNIT_DOTSCM "Dots / Cm" - IDS_UNIT_DPI "DPI" - IDS_UNIT_KB "%d KB" - IDS_UNIT_MB "%d MB" -END - -/* Tooltips */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_TOOLTIP_NEW "New" - IDS_TOOLTIP_OPEN "Open" - IDS_TOOLTIP_SAVE "Save" - IDS_TOOLTIP_PRINTPRE "Print preview" - IDS_TOOLTIP_PRINT "Print" - IDS_TOOLTIP_CUT "Cut" - IDS_TOOLTIP_COPY "Copy" - IDS_TOOLTIP_PASTE "Paste" - IDS_TOOLTIP_UNDO "Undo" - IDS_TOOLTIP_REDO "Redo" -END - - -/* Hints */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_HINT_BLANK " " - IDS_HINT_NEW " Creates a new document." - IDS_HINT_OPEN " Opens an existing document." - IDS_HINT_CLOSE " Closes this window." - IDS_HINT_CLOSEALL " Closes all windows." - IDS_HINT_SAVE " Saves the active document." - IDS_HINT_SAVEAS " Saves the active document with a new name." - IDS_HINT_PRINTPRE " Previews the printed document." - IDS_HINT_PRINT " Prints the active document." - IDS_HINT_PROP " Shows the properties of the active image." - IDS_HINT_EXIT " Exits this application." - - IDS_HINT_TOOLS " Shows or hides the tools floating window." - IDS_HINT_COLORS " Shows or hides the colors floating window." - IDS_HINT_HISTORY " Shows or hides the history floating window." - IDS_HINT_STATUS " Shows or hides the status bar." - - IDS_HINT_CASCADE " Arrange windows so they overlap." - IDS_HINT_TILE_HORZ " Arrange windows as non-overlapping tiles." - IDS_HINT_TILE_VERT " Arrange windows as non-overlapping tiles." - IDS_HINT_ARRANGE " Arrange icons at the bottom of the window." - IDS_HINT_NEXT " Activates the next window." - - 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." -END +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +STRINGTABLE DISCARDABLE +BEGIN + IDS_APPNAME "ImageSoft" + IDS_VERSION "v0.1" +END + +IDR_MAINMENU MENU +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&New...", ID_NEW + MENUITEM "&Open...", ID_OPEN + MENUITEM SEPARATOR + MENUITEM "&Close\tCtrl+F4", ID_CLOSE, GRAYED + MENUITEM "C&lose all", ID_CLOSEALL, GRAYED + MENUITEM SEPARATOR + MENUITEM "&Save", ID_SAVE, GRAYED + MENUITEM "Save &As...", ID_SAVEAS, GRAYED + MENUITEM SEPARATOR + MENUITEM "Print Pre&view", ID_PRINTPRE, GRAYED + MENUITEM "&Print...", ID_PRINT, GRAYED + MENUITEM SEPARATOR + MENUITEM "Pr&operties...", ID_PROP, GRAYED + MENUITEM SEPARATOR + MENUITEM "E&xit\tAlt+F4", ID_EXIT + END + POPUP "&Edit" + BEGIN + MENUITEM "&Undo", ID_UNDO, GRAYED + MENUITEM "&Redo", ID_REDO, GRAYED + MENUITEM SEPARATOR + MENUITEM "Cu&t", ID_CUT, GRAYED + MENUITEM "&Copy", ID_COPY, GRAYED + MENUITEM "&Paste", ID_PASTE, GRAYED + MENUITEM "Paste as new &image", ID_PASTENEWIMAGE, GRAYED + MENUITEM SEPARATOR + MENUITEM "Select &All", ID_SELALL, GRAYED + END + POPUP "&View" + BEGIN + MENUITEM "&Tools", ID_TOOLS + MENUITEM "&Colors", ID_COLOR + MENUITEM "&History", ID_HISTORY + MENUITEM "&Status Bar", ID_STATUSBAR + END + POPUP "&Image" + BEGIN + MENUITEM "&Crop...", -1, GRAYED + MENUITEM "&Resize...", -1, GRAYED + MENUITEM "R&otate...", -1, GRAYED + MENUITEM "&Flip...", -1, GRAYED + MENUITEM "&Stretch...", -1, GRAYED + MENUITEM "S&kew...", -1, GRAYED + MENUITEM "&Invert Colors", -1, GRAYED + MENUITEM SEPARATOR + MENUITEM "&Attributes...", -1, GRAYED + END + POPUP "&Colors" + BEGIN + MENUITEM "&Edit Colors...", ID_EDITCOLOURS + END + POPUP "&Window" + BEGIN + MENUITEM "&Cascade", ID_WINDOW_CASCADE + MENUITEM "Tile &Horizontally", ID_WINDOW_TILE_HORZ + MENUITEM "Tile &Vertiacally", ID_WINDOW_TILE_VERT + MENUITEM "&Arrange Icons", ID_WINDOW_ARRANGE + MENUITEM SEPARATOR + MENUITEM "Nex&t\tCtrl+F6", ID_WINDOW_NEXT + END + POPUP "&Help" + BEGIN + MENUITEM "&About...", ID_ABOUT + END +END + +IDR_POPUP MENU +BEGIN + POPUP "popup" + BEGIN + + MENUITEM SEPARATOR + + END +END + + +IDD_ABOUTBOX DIALOGEX 22,16,210,182 +CAPTION "About ImageSoft" +FONT 8,"Tahoma",0,0 +STYLE WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME +//EXSTYLE WS_EX_LAYERED +BEGIN + LTEXT "ImageSoft v0.1\nCopyright (C) 2006\nThomas Weidenmueller (w3seek@reactos.org)\nGed Murphy (gedmurphy@gmail.com)", IDC_STATIC, 48, 7, 150, 36 + PUSHBUTTON "Close", IDOK, 75, 162, 44, 15 + ICON IDI_IMAGESOFTICON, IDC_STATIC, 10, 10, 7, 30 + EDITTEXT IDC_LICENSE_EDIT, 8, 44, 194, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE +END + + +IDD_IMAGE_PROP DIALOGEX 6, 5, 156, 163 +CAPTION "Image Properties" +FONT 8,"MS Sans Serif",0,0 +STYLE WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME +BEGIN + LTEXT "Name:", IDC_STATIC, 12, 5, 38, 9 + EDITTEXT IDC_IMAGE_NAME_EDIT, 58, 3, 94, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP + GROUPBOX "Canvas properties", IDC_STATIC, 4, 22, 148, 98 + LTEXT "Image type:", IDC_STATIC, 12, 36, 42, 9 + CONTROL "", IDC_IMAGETYPE, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 35, 88, 54 + LTEXT "Width:", IDC_STATIC, 12, 51, 42, 9 + EDITTEXT IDC_WIDTH_EDIT, 58, 49, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER + LTEXT "", IDC_WIDTH_STAT, 94, 51, 40, 9 + LTEXT "Height:", IDC_STATIC, 12, 68, 42, 9 + EDITTEXT IDC_HEIGHT_EDIT, 58, 66, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER + LTEXT "", IDC_HEIGHT_STAT, 94, 68, 40, 9 + LTEXT "Resolution:", IDC_STATIC, 12, 84, 42, 9 + EDITTEXT IDC_RES_EDIT, 58, 83, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER + LTEXT "", IDC_RES_STAT, 94, 84, 40, 9 + LTEXT "Unit:", IDC_STATIC, 12, 99, 42, 9 + CONTROL "", IDC_UNIT, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 99, 54, 50 + LTEXT "Image size:", IDC_STATIC, 12, 125, 42, 9 + LTEXT "", IDC_IMAGE_SIZE, 58, 125, 54, 9 + PUSHBUTTON "OK", IDOK, 50, 144, 48, 13 + PUSHBUTTON "Cancel", IDCANCEL, 102, 144, 48, 13 +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." + IDS_READY " Ready." + IDS_TOOLBAR_STANDARD "Standard" + IDS_TOOLBAR_TEST "Test" + IDS_IMAGE_NAME "Image %1!u!" + IDS_FLT_TOOLS "Tools" + IDS_FLT_COLORS "Colors" + IDS_FLT_HISTORY "History" +END + +/* imageprop.c */ +STRINGTABLE DISCARDABLE +BEGIN + IDS_IMAGE_MONOCHROME "Monochrome (1 bit)" + IDS_IMAGE_GREYSCALE "Greyscale (8 bit)" + IDS_IMAGE_PALETTE "Palette or 256 color (8 bit)" + IDS_IMAGE_TRUECOLOR "True color (24 bit)" + + IDS_UNIT_PIXELS "Pixels" + IDS_UNIT_CM "Cm" + IDS_UNIT_INCHES "Inches" + IDS_UNIT_DOTSCM "Dots / Cm" + IDS_UNIT_DPI "DPI" + IDS_UNIT_KB "%d KB" + IDS_UNIT_MB "%d MB" +END + +/* Tooltips */ +STRINGTABLE DISCARDABLE +BEGIN + IDS_TOOLTIP_NEW "New" + IDS_TOOLTIP_OPEN "Open" + IDS_TOOLTIP_SAVE "Save" + IDS_TOOLTIP_PRINTPRE "Print preview" + IDS_TOOLTIP_PRINT "Print" + IDS_TOOLTIP_CUT "Cut" + IDS_TOOLTIP_COPY "Copy" + IDS_TOOLTIP_PASTE "Paste" + IDS_TOOLTIP_UNDO "Undo" + IDS_TOOLTIP_REDO "Redo" +END + + +/* Hints */ +STRINGTABLE DISCARDABLE +BEGIN + IDS_HINT_BLANK " " + IDS_HINT_NEW " Creates a new document." + IDS_HINT_OPEN " Opens an existing document." + IDS_HINT_CLOSE " Closes this window." + IDS_HINT_CLOSEALL " Closes all windows." + IDS_HINT_SAVE " Saves the active document." + IDS_HINT_SAVEAS " Saves the active document with a new name." + IDS_HINT_PRINTPRE " Previews the printed document." + IDS_HINT_PRINT " Prints the active document." + IDS_HINT_PROP " Shows the properties of the active image." + IDS_HINT_EXIT " Exits this application." + + IDS_HINT_TOOLS " Shows or hides the tools floating window." + IDS_HINT_COLORS " Shows or hides the colors floating window." + IDS_HINT_HISTORY " Shows or hides the history floating window." + IDS_HINT_STATUS " Shows or hides the status bar." + + IDS_HINT_CASCADE " Arrange windows so they overlap." + IDS_HINT_TILE_HORZ " Arrange windows as non-overlapping tiles." + IDS_HINT_TILE_VERT " Arrange windows as non-overlapping tiles." + IDS_HINT_ARRANGE " Arrange icons at the bottom of the window." + IDS_HINT_NEXT " Activates the next window." + + 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." +END diff --git a/reactos/base/applications/imagesoft/mainwnd.c b/reactos/base/applications/imagesoft/mainwnd.c index 7f72ecc10b4..22ca9ec5960 100644 --- a/reactos/base/applications/imagesoft/mainwnd.c +++ b/reactos/base/applications/imagesoft/mainwnd.c @@ -1,1443 +1,1443 @@ -#include - -static const TCHAR szMainWndClass[] = TEXT("ImageSoftWndClass"); - -#define ID_MDI_FIRSTCHILD 50000 -#define ID_MDI_WINDOWMENU 5 -#define NUM_FLT_WND 3 - -/* toolbar buttons */ -TBBUTTON StdButtons[] = { -/* iBitmap, idCommand, fsState, fsStyle, bReserved[2], dwData, iString */ - {TBICON_NEW, ID_NEW, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0}, /* new */ - {TBICON_OPEN, ID_OPEN, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0}, /* open */ - {TBICON_SAVE, ID_SAVE, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0}, /* save */ - - {10, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, /* separator */ - - {TBICON_PRINT, ID_PRINTPRE, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* print */ - {TBICON_PRINTPRE, ID_PRINT, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* print preview */ - - {10, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, /* separator */ - - {TBICON_CUT, ID_CUT, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* cut */ - {TBICON_COPY, ID_COPY, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* copy */ - {TBICON_PASTE, ID_PASTE, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* paste */ - - {10, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, /* separator */ - - {TBICON_UNDO, ID_UNDO, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* undo */ - {TBICON_REDO, ID_REDO, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* redo */ - - {10, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, -}; - -TBBUTTON TextButtons[] = { - {10, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, /* separator */ - - {TBICON_BOLD, ID_BOLD, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0}, /* bold */ - {TBICON_ITALIC, ID_ITALIC, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0}, /* italic */ - {TBICON_ULINE, ID_ULINE, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0}, /* underline */ - - {10, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, /* separator */ - - {TBICON_TXTLEFT, ID_TXTLEFT, TBSTATE_ENABLED | TBSTATE_CHECKED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0 }, /* left justified */ - {TBICON_TXTCENTER,ID_TXTCENTER,TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0 }, /* centered */ - {TBICON_TXTRIGHT, ID_TXTRIGHT, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0 }, /* right justified */ - - {10, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, /* separator */ -}; - - - -/* menu hints */ -static const MENU_HINT MainMenuHintTable[] = { - /* File Menu */ - {ID_BLANK, IDS_HINT_BLANK}, - {ID_NEW, IDS_HINT_NEW}, - {ID_OPEN, IDS_HINT_OPEN}, - {ID_CLOSE, IDS_HINT_CLOSE}, - {ID_CLOSEALL, IDS_HINT_CLOSEALL}, - {ID_SAVE, IDS_HINT_SAVE}, - {ID_SAVEAS, IDS_HINT_SAVEAS}, - {ID_PRINTPRE, IDS_HINT_PRINTPRE}, - {ID_PRINT, IDS_HINT_PRINT}, - {ID_PROP, IDS_HINT_PROP}, - {ID_EXIT, IDS_HINT_EXIT}, - - /* view menu */ - {ID_TOOLS, IDS_HINT_TOOLS}, - {ID_COLOR, IDS_HINT_COLORS}, - {ID_HISTORY, IDS_HINT_HISTORY}, - {ID_STATUSBAR, IDS_HINT_STATUS}, - - /* Window Menu */ - {ID_WINDOW_NEXT, IDS_HINT_NEXT}, - {ID_WINDOW_CASCADE, IDS_HINT_CASCADE}, - {ID_WINDOW_TILE_HORZ, IDS_HINT_TILE_HORZ}, - {ID_WINDOW_TILE_VERT, IDS_HINT_TILE_VERT}, - {ID_WINDOW_ARRANGE, IDS_HINT_ARRANGE} -}; - -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_CLOSE}, - {SC_NEXTWINDOW, IDS_HINT_NEXT}, -}; - - -/* Toolbars */ -#define ID_TOOLBAR_STANDARD 0 -#define ID_TOOLBAR_TEXT 1 -static const TCHAR szToolbarStandard[] = TEXT("STANDARD"); -static const TCHAR szToolbarText[] = TEXT("TEXT"); - - -/* Test Toolbar */ -#define ID_TOOLBAR_TEST 5 -static const TCHAR szToolbarTest[] = TEXT("TEST"); - -/* Toolbars table */ -static const DOCKBAR MainDockBars[] = { - {ID_TOOLBAR_STANDARD, szToolbarStandard, IDS_TOOLBAR_STANDARD, TOP_DOCK}, - {ID_TOOLBAR_TEST, szToolbarTest, IDS_TOOLBAR_TEST, TOP_DOCK}, - {ID_TOOLBAR_TEXT, szToolbarText, IDS_TOOLBAR_TEXT, TOP_DOCK}, -}; - - -static BOOL CALLBACK -MainWndCreateToolbarClient(struct _TOOLBAR_DOCKS *TbDocks, - const DOCKBAR *Dockbar, - PVOID Context, - HWND hParent, - HWND *hwnd) -{ - const TBBUTTON *Buttons = NULL; - UINT NumButtons = 0; - UINT StartImageRes = 0; - HWND hWndClient = NULL; - - UNREFERENCED_PARAMETER(Context); - - /* Standard toolbar */ - switch (Dockbar->BarId) - { - case ID_TOOLBAR_STANDARD: - { - Buttons = StdButtons; - NumButtons = sizeof(StdButtons) / sizeof(StdButtons[0]); - StartImageRes = IDB_MAINNEWICON; - break; - } - - case ID_TOOLBAR_TEXT: - { - Buttons = TextButtons; - NumButtons = sizeof(TextButtons) / sizeof(TextButtons[0]); - StartImageRes = IDB_TEXTBOLD; - break; - } - - case ID_TOOLBAR_TEST: - { - hWndClient = CreateWindowEx(WS_EX_TOOLWINDOW, - TEXT("BUTTON"), - TEXT("Test Button"), - WS_CHILD | WS_VISIBLE, - 0, - 0, - 150, - 25, - hParent, - NULL, - hInstance, - NULL); - break; - } - } - - if (Buttons != NULL) - { - hWndClient = CreateWindowEx(0, - TOOLBARCLASSNAME, - NULL, - WS_CHILD | WS_CLIPSIBLINGS | - CCS_NOPARENTALIGN | CCS_NOMOVEY | CCS_NORESIZE | CCS_NODIVIDER | - TBSTYLE_FLAT | TBSTYLE_TOOLTIPS, - 0, - 0, - 0, - 0, - hParent, - NULL, - hInstance, - NULL); - if (hWndClient != NULL) - { - HIMAGELIST hImageList; - - SendMessage(hWndClient, - TB_SETEXTENDEDSTYLE, - 0, - TBSTYLE_EX_HIDECLIPPEDBUTTONS); - - /* Send the TB_BUTTONSTRUCTSIZE message, which is required for backward compatibility */ - SendMessage(hWndClient, - TB_BUTTONSTRUCTSIZE, - sizeof(Buttons[0]), - 0); - - SendMessage(hWndClient, - TB_SETBITMAPSIZE, - 0, - (LPARAM)MAKELONG(TB_BMP_WIDTH, TB_BMP_HEIGHT)); - - hImageList = InitImageList(NumButtons, - StartImageRes); - - ImageList_Destroy((HIMAGELIST)SendMessage(hWndClient, - TB_SETIMAGELIST, - 0, - (LPARAM)hImageList)); - - SendMessage(hWndClient, - TB_ADDBUTTONS, - NumButtons, - (LPARAM)Buttons); - - - - } - } - - switch (Dockbar->BarId) - { - case ID_TOOLBAR_TEXT: - { - HWND hFontType; - HWND hFontSize; - - /* drop combo box into container window */ - hFontType = CreateWindowEx(0, - WC_COMBOBOX, - NULL, - WS_CHILD | WS_VISIBLE | CBS_DROPDOWN, - 0, 0, 120, 25, - hParent, - NULL, - hInstance, - NULL); - //MakeFlatCombo(hFontType); - if (hFontType != NULL) - { - SetParent(hFontType, - hWndClient); - - if (!ToolbarInsertSpaceForControl(hWndClient, - hFontType, - 0, - ID_TXTFONTNAME, - TRUE)) - { - DestroyWindow(hFontType); - } - } - - /* drop combo box into container window */ - hFontSize = CreateWindowEx(0, - WC_COMBOBOX, - NULL, - WS_CHILD | WS_VISIBLE | CBS_DROPDOWN, - 0, 0, 40, 25, - hParent, - NULL, - hInstance, - NULL); - if (hFontSize != NULL) - { - SetParent(hFontSize, - hWndClient); - - if (!ToolbarInsertSpaceForControl(hWndClient, - hFontSize, - 0, - ID_TXTFONTSIZE, - TRUE)) - { - DestroyWindow(hFontSize); - } - } - break; - } - } - - if (hWndClient != NULL) - { - *hwnd = hWndClient; - return TRUE; - } - - return FALSE; -} - -static BOOL CALLBACK -MainWndDestroyToolbarClient(struct _TOOLBAR_DOCKS *TbDocks, - const DOCKBAR *Dockbar, - PVOID Context, - HWND hwnd) -{ - UNREFERENCED_PARAMETER(TbDocks); - UNREFERENCED_PARAMETER(Dockbar); - UNREFERENCED_PARAMETER(Context); - - DestroyWindow(hwnd); - return TRUE; -} - -static BOOL CALLBACK -MainWndToolbarInsertBand(struct _TOOLBAR_DOCKS *TbDocks, - const DOCKBAR *Dockbar, - PVOID Context, - UINT *Index, - LPREBARBANDINFO rbi) -{ - switch (rbi->wID) - { - case ID_TOOLBAR_TEXT: - case ID_TOOLBAR_STANDARD: - { - SIZE Size; - - if (SendMessage(rbi->hwndChild, - TB_GETMAXSIZE, - 0, - (LPARAM)&Size)) - { - rbi->fStyle |= RBBS_USECHEVRON | RBBS_HIDETITLE; - rbi->fMask |= RBBIM_SIZE | RBBIM_CHILDSIZE | RBBIM_IDEALSIZE; - rbi->cx = rbi->cxIdeal = Size.cx; - rbi->cxMinChild = 0; - rbi->cyMinChild = Size.cy; - } - break; - } - - case ID_TOOLBAR_TEST: - { - RECT rcBtn; - - if (GetWindowRect(rbi->hwndChild, - &rcBtn)) - { - rbi->fStyle |= RBBS_HIDETITLE; - rbi->fMask |= RBBIM_SIZE | RBBIM_CHILDSIZE; - rbi->cx = rcBtn.right - rcBtn.left; - rbi->cxMinChild = 0; - rbi->cyMinChild = rcBtn.bottom - rcBtn.top; - } - break; - } - } - return TRUE; -} - -static VOID -TbCustomControlChange(HWND hWndToolbar, - HWND hWndControl, - BOOL Vert) -{ - /* the toolbar changed from horizontal to vertical or vice versa... */ - return; -} - -static VOID CALLBACK -MainWndToolbarDockBand(struct _TOOLBAR_DOCKS *TbDocks, - const DOCKBAR *Dockbar, - PVOID Context, - DOCK_POSITION DockFrom, - DOCK_POSITION DockTo, - LPREBARBANDINFO rbi) -{ - if (rbi->fMask & RBBIM_CHILD && rbi->hwndChild != NULL) - { - switch (rbi->wID) - { - case ID_TOOLBAR_TEXT: - case ID_TOOLBAR_STANDARD: - { - SIZE Size; - BOOL Vert; - DWORD dwStyle = SendMessage(rbi->hwndChild, - TB_GETSTYLE, - 0, - 0); - switch (DockTo) - { - case LEFT_DOCK: - case RIGHT_DOCK: - dwStyle |= CCS_VERT | TBSTYLE_WRAPABLE; - Vert = TRUE; - break; - - default: - dwStyle &= ~(CCS_VERT | TBSTYLE_WRAPABLE); - Vert = FALSE; - break; - } - - SendMessage(rbi->hwndChild, - TB_SETSTYLE, - 0, - (LPARAM)dwStyle); - - ToolbarUpdateControlSpaces(rbi->hwndChild, - TbCustomControlChange); - - if (SendMessage(rbi->hwndChild, - TB_GETMAXSIZE, - 0, - (LPARAM)&Size)) - { - rbi->fMask |= RBBIM_SIZE | RBBIM_CHILDSIZE | RBBIM_IDEALSIZE; - rbi->cx = rbi->cxIdeal = (Vert ? Size.cy : Size.cx); - rbi->cxMinChild = 0; - rbi->cyMinChild = (Vert ? Size.cx : Size.cy); - } - break; - } - - case ID_TOOLBAR_TEST: - { - if (DockTo == NO_DOCK) - { - rbi->fMask |= RBBIM_SIZE | RBBIM_CHILDSIZE | RBBIM_IDEALSIZE; - rbi->cx = rbi->cxIdeal = 150; - rbi->cxMinChild = 0; - rbi->cyMinChild = 40; - } - break; - } - } - } -} - -static VOID CALLBACK -MainWndToolbarChevronPushed(struct _TOOLBAR_DOCKS *TbDocks, - const DOCKBAR *Dockbar, - PVOID Context, - HWND hwndChild, - LPNMREBARCHEVRON lpnm) -{ - switch (lpnm->wID) - { - case ID_TOOLBAR_STANDARD: - { - MapWindowPoints(lpnm->hdr.hwndFrom, - HWND_DESKTOP, - (LPPOINT)&lpnm->rc, - 2); - /* Create a popup menu for all toolbar icons hidden */ - break; - } - } -} - -static VOID -MainWndMoveFloatingWindows(PMAIN_WND_INFO Info, - PRECT wndOldPos) -{ - RECT wndNewPos, TbRect; - INT i, xMoved, yMoved; - PFLT_WND WndArr[NUM_FLT_WND]; - - if (GetWindowRect(Info->hSelf, - &wndNewPos)) - { - - xMoved = wndNewPos.left - wndOldPos->left; - yMoved = wndNewPos.top - wndOldPos->top; - - /* store the pointers in an array */ - WndArr[0] = Info->fltTools; - WndArr[1] = Info->fltColors; - WndArr[2] = Info->fltHistory; - - for (i = 0; i < NUM_FLT_WND; i++) - { - GetWindowRect(WndArr[i]->hSelf, - &TbRect); - - WndArr[i]->x = TbRect.left + xMoved; - WndArr[i]->y = TbRect.top + yMoved; - - MoveWindow(WndArr[i]->hSelf, - WndArr[i]->x, - WndArr[i]->y, - WndArr[i]->Width, - WndArr[i]->Height, - TRUE); - } - - CopyMemory(wndOldPos, - &wndNewPos, - sizeof(RECT)); - } -} - - -static VOID -MainWndResetFloatingWindows(PMAIN_WND_INFO Info) -{ - RECT rect; - - if (GetWindowRect(Info->hMdiClient, - &rect)) - { - - /* tools datum */ - MoveWindow(Info->fltTools->hSelf, - rect.left + 5, - rect.top + 5, - Info->fltTools->Width, - Info->fltTools->Height, - TRUE); - - /* colors datum */ - MoveWindow(Info->fltColors->hSelf, - rect.left + 5, - rect.bottom - Info->fltColors->Height - 5, - Info->fltColors->Width, - Info->fltColors->Height, - TRUE); - - /* history datum */ - MoveWindow(Info->fltHistory->hSelf, - rect.right - Info->fltHistory->Width - 5, - rect.top + 5, - Info->fltHistory->Width, - Info->fltHistory->Height, - TRUE); - } -} - -static VOID -MainWndCreateFloatWindows(PMAIN_WND_INFO Info) -{ - RECT rect; - HMENU hMenu; - UINT Res; - PFLT_WND WndArr[NUM_FLT_WND]; /* temp array for looping */ - INT i; - - Info->fltTools = HeapAlloc(ProcessHeap, - HEAP_ZERO_MEMORY, - sizeof(FLT_WND)); - Info->fltColors = HeapAlloc(ProcessHeap, - HEAP_ZERO_MEMORY, - sizeof(FLT_WND)); - Info->fltHistory = HeapAlloc(ProcessHeap, - HEAP_ZERO_MEMORY, - sizeof(FLT_WND)); - - /* set window dimensions */ - Info->fltTools->Width = 53; - Info->fltTools->Height = 300; - Info->fltColors->Width = 200; - Info->fltColors->Height = 200; - Info->fltHistory->Width = 150; - Info->fltHistory->Height = 150; - - if (! GetWindowRect(Info->hMdiClient, - &rect)) - { - return; - } - - /* Set window datums */ - Info->fltTools->x = rect.left + 5; - Info->fltTools->y = rect.top + 5; - - Info->fltColors->x = rect.left + 5; - Info->fltColors->y = rect.bottom - Info->fltColors->Height - 5; - - Info->fltHistory->x = rect.right - Info->fltHistory->Width - 5; - Info->fltHistory->y = rect.top + 5; - - /* save pointers into array incrementing within the loop*/ - WndArr[0] = Info->fltTools; - WndArr[1] = Info->fltColors; - WndArr[2] = Info->fltHistory; - - for (i = 0, Res = IDS_FLT_TOOLS; Res < IDS_FLT_TOOLS + NUM_FLT_WND; Res++, i++) - { - if (! AllocAndLoadString(&WndArr[i]->lpName, - hInstance, - Res)) - { - WndArr[i]->lpName = NULL; - } - - WndArr[i]->hSelf = CreateWindowEx(WS_EX_TOOLWINDOW, - TEXT("ImageSoftFloatWndClass"), - WndArr[i]->lpName, - WS_POPUPWINDOW | WS_DLGFRAME | WS_VISIBLE, - WndArr[i]->x, - WndArr[i]->y, - WndArr[i]->Width, - WndArr[i]->Height, - Info->hSelf, - NULL, - hInstance, - WndArr[i]); - - } - - hMenu = GetMenu(Info->hSelf); - - if (Info->fltTools->hSelf != NULL) - { - if (FloatToolbarCreateToolsGui(Info)) - { - //CheckMenuItem(hMenu, - // ID_TOOLS, - // MF_CHECKED); - - /* temp disable windows until they are useful */ - ShowHideWindow(Info->fltTools); - } - } - - if (Info->fltColors->hSelf != NULL) - { - if (FloatToolbarCreateColorsGui(Info)) - { - //CheckMenuItem(hMenu, - // ID_COLOR, - // MF_CHECKED); - - /* temp disable windows until they are useful */ - ShowHideWindow(Info->fltColors); - } - } - - if (Info->fltHistory->hSelf != NULL) - { - if (FloatToolbarCreateHistoryGui(Info)) - { - //CheckMenuItem(hMenu, - // ID_HISTORY, - // MF_CHECKED); - - /* temp disable windows until they are useful */ - ShowHideWindow(Info->fltHistory); - } - } - -} - -static VOID -MainWndDestroyFloatWindows(PMAIN_WND_INFO Info) -{ - if (Info->fltTools != NULL) - HeapFree(ProcessHeap, 0, Info->fltTools); - - if (Info->fltColors != NULL) - HeapFree(ProcessHeap, 0, Info->fltTools); - - if (Info->fltHistory != NULL) - HeapFree(ProcessHeap, 0, Info->fltTools); -} - - - -static const DOCKBAR_ITEM_CALLBACKS MainWndDockBarCallbacks = { - MainWndCreateToolbarClient, - MainWndDestroyToolbarClient, - MainWndToolbarInsertBand, - MainWndToolbarDockBand, - MainWndToolbarChevronPushed, -}; - -static VOID -CreateToolbars(PMAIN_WND_INFO Info) -{ - UINT i; - - for (i = 0; i < sizeof(MainDockBars) / sizeof(MainDockBars[0]); i++) - { - /* FIXME - lookup whether to display the toolbar */ - TbdAddToolbar(&Info->ToolDocks, - &MainDockBars[i], - Info, - &MainWndDockBarCallbacks); - } - - MainWndCreateFloatWindows(Info); -} - -static VOID CALLBACK -MainWndResize(PVOID Context, - WORD cx, - WORD cy) -{ - RECT rcClient = {0}; - RECT rcStatus = {0}; - HDWP dwp; - INT DocksVisible; - PMAIN_WND_INFO Info = (PMAIN_WND_INFO)Context; - - /* Calculate the MDI client rectangle */ - rcClient.right = cx; - rcClient.bottom = cy; - - if (Info->hStatus != NULL) - { - GetWindowRect(Info->hStatus, - &rcStatus); - rcClient.bottom -= (rcStatus.bottom - rcStatus.top); - } - - /* Adjust the client rect if docked toolbars are visible */ - DocksVisible = TbdAdjustUpdateClientRect(&Info->ToolDocks, - &rcClient); - - dwp = BeginDeferWindowPos(2 + DocksVisible); - if (dwp != NULL) - { - /* Update the toolbar docks */ - if (DocksVisible != 0) - { - dwp = TbdDeferDocks(dwp, - &Info->ToolDocks); - if (dwp == NULL) - return; - } - - /* Update the MDI client */ - if (Info->hMdiClient != NULL) - { - dwp = DeferWindowPos(dwp, - Info->hMdiClient, - NULL, - rcClient.left, - rcClient.top, - rcClient.right - rcClient.left, - rcClient.bottom - rcClient.top, - SWP_NOZORDER); - if (dwp == NULL) - return; - } - - /* Update the status bar */ - if (Info->hStatus != NULL) - { - dwp = DeferWindowPos(dwp, - Info->hStatus, - NULL, - 0, - cy - (rcStatus.bottom - rcStatus.top), - cx, - rcStatus.bottom - rcStatus.top, - SWP_NOZORDER); - if (dwp == NULL) - return; - } - - EndDeferWindowPos(dwp); - } -} - -static VOID -InitMainWnd(PMAIN_WND_INFO Info) -{ - CLIENTCREATESTRUCT ccs; - INT statwidths[] = {110, -1}; - - /* FIXME - create controls and initialize the application */ - - /* create the status bar */ - Info->hStatus = CreateWindowEx(0, - STATUSCLASSNAME, - NULL, - WS_VISIBLE | WS_CHILD | WS_CLIPSIBLINGS | CCS_NOPARENTALIGN | SBARS_SIZEGRIP, - 0, - 0, - 0, - 0, - Info->hSelf, - (HMENU)IDC_STATUSBAR, - hInstance, - NULL); - - if (Info->hStatus != NULL) - SendMessage(Info->hStatus, - SB_SETPARTS, - sizeof(statwidths)/sizeof(int), - (LPARAM)statwidths); - - /* create the MDI client window */ - ccs.hWindowMenu = GetSubMenu(GetMenu(Info->hSelf), - ID_MDI_WINDOWMENU); - ccs.idFirstChild = ID_MDI_FIRSTCHILD; - Info->hMdiClient = CreateWindowEx(WS_EX_ACCEPTFILES | WS_EX_CLIENTEDGE, - TEXT("MDICLIENT"), - NULL, - WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_VSCROLL | WS_HSCROLL, - 0, - 0, - 0, - 0, - Info->hSelf, - NULL, - hInstance, - &ccs); - - TbdInitializeDocks(&Info->ToolDocks, - Info->hSelf, - Info, - MainWndResize); - - CreateToolbars(Info); - - /* initialize file open/save structure */ - FileInitialize(Info->hSelf); -} - -static VOID -MainWndCommand(PMAIN_WND_INFO Info, - WORD CmdId, - HWND hControl) -{ - static TCHAR szFileName[MAX_PATH]; - static TCHAR szImageName[MAX_PATH]; - - UNREFERENCED_PARAMETER(hControl); - - switch (CmdId) - { - case ID_NEW: - { - OPEN_IMAGE_EDIT_INFO OpenInfo; - PIMAGE_PROP ImageProp = NULL; - - ImageProp = HeapAlloc(ProcessHeap, - 0, - sizeof(IMAGE_PROP)); - if (ImageProp == NULL) - break; - - /* load the properties dialog */ - if (DialogBoxParam(hInstance, - MAKEINTRESOURCE(IDD_IMAGE_PROP), - Info->hSelf, - ImagePropDialogProc, - (LPARAM)ImageProp)) - { - /* if an image name isn't provided, load a default name */ - if (! ImageProp->lpImageName) - LoadAndFormatString(hInstance, - IDS_IMAGE_NAME, - &OpenInfo.lpImageName, - ++Info->ImagesCreated); - else - OpenInfo.lpImageName = ImageProp->lpImageName; - - OpenInfo.CreateNew = TRUE; - OpenInfo.Type = ImageProp->Type; - OpenInfo.Resolution = ImageProp->Resolution; - OpenInfo.New.Width = ImageProp->Width; - OpenInfo.New.Height = ImageProp->Height; - - HeapFree(ProcessHeap, - 0, - ImageProp); - - CreateImageEditWindow(Info, - &OpenInfo); - } - } - break; - - case ID_BOLD: - MessageBox(NULL, _T("Bingo"), NULL, 0); - break; - - case ID_OPEN: - { - OPEN_IMAGE_EDIT_INFO OpenInfo; - - if (DoOpenFile(Info->hSelf, - szFileName, /* full file path */ - szImageName)) /* file name */ - { - OpenInfo.CreateNew = FALSE; - - OpenInfo.Open.lpImagePath = szFileName; - OpenInfo.lpImageName = szImageName; - - CreateImageEditWindow(Info, - &OpenInfo); - - /* FIXME: move flt wnd's if scroll bars show - MainWndResetFloatingWindows(Info->hMdiClient); */ - } - - } - break; - - case ID_TOOLS: - { - HMENU hMenu = GetMenu(Info->hSelf); - - if (hMenu != NULL) - { - UINT uCheck; - - ShowHideWindow(Info->fltTools); - - uCheck = Info->fltTools->bShow ? MF_CHECKED : MF_UNCHECKED; - CheckMenuItem(hMenu, - ID_TOOLS, - uCheck); - } - } - break; - - case ID_COLOR: - { - HMENU hMenu = GetMenu(Info->hSelf); - - if (hMenu != NULL) - { - UINT uCheck; - - ShowHideWindow(Info->fltColors); - - uCheck = Info->fltColors->bShow ? MF_CHECKED : MF_UNCHECKED; - CheckMenuItem(hMenu, - ID_COLOR, - uCheck); - } - } - break; - - case ID_HISTORY: - { - HMENU hMenu = GetMenu(Info->hSelf); - - if (hMenu != NULL) - { - UINT uCheck; - - ShowHideWindow(Info->fltHistory); - - uCheck = Info->fltHistory->bShow ? MF_CHECKED : MF_UNCHECKED; - CheckMenuItem(hMenu, - ID_HISTORY, - uCheck); - } - } - break; - - case ID_EXIT: - SendMessage(Info->hSelf, - WM_CLOSE, - 0, - 0); - break; - - /* Window Menu */ - case ID_WINDOW_TILE_HORZ: - SendMessage(Info->hMdiClient, - WM_MDITILE, - MDITILE_HORIZONTAL, - 0); - break; - - case ID_WINDOW_TILE_VERT: - SendMessage(Info->hMdiClient, - WM_MDITILE, - MDITILE_VERTICAL, - 0); - break; - - case ID_WINDOW_CASCADE: - SendMessage(Info->hMdiClient, - WM_MDICASCADE, - 0, - 0); - break; - - case ID_WINDOW_ARRANGE: - SendMessage(Info->hMdiClient, - WM_MDIICONARRANGE, - 0, - 0); - break; - - case ID_WINDOW_NEXT: - SendMessage(Info->hMdiClient, - WM_MDINEXT, - 0, - 0); - break; - - /* Help Menu */ - case ID_ABOUT: - DialogBox(hInstance, - MAKEINTRESOURCE(IDD_ABOUTBOX), - Info->hSelf, - AboutDialogProc); - break; - } -} - -static VOID -DestroyMainWnd(PMAIN_WND_INFO Info) -{ - /* FIXME - cleanup allocated resources */ - - MainWndDestroyFloatWindows(Info); -} - - -static VOID -UpdateMainStatusBar(PMAIN_WND_INFO Info) -{ - if (Info->hStatus != NULL) - { - SendMessage(Info->hStatus, - SB_SIMPLE, - (WPARAM)Info->InMenuLoop, - 0); - } -} - -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 LRESULT CALLBACK -MainWndProc(HWND hwnd, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) -{ - PMAIN_WND_INFO Info; - LRESULT Ret = 0; - static BOOL bLBMouseDown = FALSE; - static RECT wndOldPos; - - /* Get the window context */ - Info = (PMAIN_WND_INFO)GetWindowLongPtr(hwnd, - GWLP_USERDATA); - if (Info == NULL && uMsg != WM_CREATE) - { - goto HandleDefaultMessage; - } - - switch (uMsg) - { - case WM_SIZE: - { - MainWndResize(Info, - LOWORD(lParam), - HIWORD(lParam)); - /* NOTE - do *not* forward this message to DefFrameProc! Otherwise the MDI client - will attempt to resize itself */ - - /* reposition the floating toolbars */ - if ((wParam == SIZE_MAXIMIZED) || (wParam == SIZE_RESTORED)) - MainWndResetFloatingWindows(Info); - - break; - } - - case WM_NCLBUTTONDOWN: - bLBMouseDown = TRUE; - DefWindowProc(hwnd, - uMsg, - wParam, - lParam); - break; - - case WM_NCLBUTTONUP: - - bLBMouseDown = FALSE; - DefWindowProc(hwnd, - uMsg, - wParam, - lParam); - break; - - case WM_MOVE: - { - /* if the main window is moved, move the toolbars too */ - if (bLBMouseDown) - MainWndMoveFloatingWindows(Info, &wndOldPos); - } - break; - - case WM_NOTIFY: - { - UINT BarId; - LPNMHDR pnmhdr = (LPNMHDR)lParam; - if (!TbdHandleNotifications(&Info->ToolDocks, - pnmhdr, - &Ret)) - { - if (TbdDockBarIdFromClientWindow(&Info->ToolDocks, - pnmhdr->hwndFrom, - &BarId)) - { - switch (BarId) - { - case ID_TOOLBAR_TEXT: - switch (pnmhdr->code) - { - case TBN_DELETINGBUTTON: - { - LPNMTOOLBAR lpnmtb = (LPNMTOOLBAR)lParam; - - ToolbarDeleteControlSpace(pnmhdr->hwndFrom, - &lpnmtb->tbButton); - break; - } - } - break; - } - } - } - 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: - { - DestroyWindow(hwnd); - break; - } - - case WM_ENABLE: - { - TbdHandleEnabling(&Info->ToolDocks, - hwnd, - (BOOL)wParam); - goto HandleDefaultMessage; - } - - case WM_NCACTIVATE: - { - TbdHandleActivation(&Info->ToolDocks, - hwnd, - &wParam, - &lParam); - goto HandleDefaultMessage; - } - - case WM_ACTIVATEAPP: - { - //TbdShowFloatingToolbars(&Info->ToolDocks, - // (BOOL)wParam); - goto HandleDefaultMessage; - } - - case WM_CREATE: - { - Info = (PMAIN_WND_INFO)(((LPCREATESTRUCT)lParam)->lpCreateParams); - - /* Initialize the main window context */ - Info->hSelf = hwnd; - - SetWindowLongPtr(hwnd, - GWLP_USERDATA, - (LONG_PTR)Info); - - InitMainWnd(Info); - - /* Show the window */ - ShowWindow(hwnd, - Info->nCmdShow); - /* get the windows position */ - GetWindowRect(hwnd, - &wndOldPos); - - break; - } - - case WM_DESTROY: - { - DestroyMainWnd(Info); - - HeapFree(ProcessHeap, - 0, - Info); - SetWindowLongPtr(hwnd, - GWLP_USERDATA, - 0); - - /* Break the message queue loop */ - PostQuitMessage(0); - break; - } - - default: - { -HandleDefaultMessage: - if (Info != NULL && Info->hMdiClient != NULL) - { - Ret = DefFrameProc(hwnd, - Info->hMdiClient, - uMsg, - wParam, - lParam); - } - else - { - Ret = DefWindowProc(hwnd, - uMsg, - wParam, - lParam); - } - break; - } - } - - return Ret; -} - -MDI_EDITOR_TYPE -MainWndGetCurrentEditor(PMAIN_WND_INFO MainWnd, - PVOID *Info) -{ - MDI_EDITOR_TYPE EditorType; - - if (MainWnd->ActiveEditor != NULL) - { - EditorType = *((PMDI_EDITOR_TYPE)MainWnd->ActiveEditor); - *Info = MainWnd->ActiveEditor; - } - else - { - EditorType = metUnknown; - *Info = NULL; - } - - return EditorType; -} - -VOID -MainWndSwitchEditorContext(PMAIN_WND_INFO Info, - HWND hDeactivate, - HWND hActivate) -{ - PMDI_EDITOR_TYPE EditorType; - - /* FIXME - optimize light weight switching - when switching from and to an editor of same type */ - - if (hDeactivate != NULL) - { - EditorType = (PMDI_EDITOR_TYPE)GetWindowLongPtr(hDeactivate, - GWLP_USERDATA); - if (EditorType != NULL) - { - switch (*EditorType) - { - case metImageEditor: - SetImageEditorEnvironment((PEDIT_WND_INFO)EditorType, - FALSE); - break; - - default: - break; - } - - Info->ActiveEditor = NULL; - } - } - - if (hActivate != NULL) - { - EditorType = (PMDI_EDITOR_TYPE)GetWindowLongPtr(hActivate, - GWLP_USERDATA); - if (EditorType != NULL) - { - Info->ActiveEditor = EditorType; - - switch (*EditorType) - { - case metImageEditor: - SetImageEditorEnvironment((PEDIT_WND_INFO)EditorType, - TRUE); - break; - - default: - break; - } - } - } -} - -HWND -CreateMainWindow(LPCTSTR lpCaption, - int nCmdShow) -{ - PMAIN_WND_INFO Info; - HWND hMainWnd = NULL; - - Info = HeapAlloc(ProcessHeap, - 0, - sizeof(MAIN_WND_INFO)); - if (Info != NULL) - { - ZeroMemory(Info, - sizeof(MAIN_WND_INFO)); - Info->nCmdShow = nCmdShow; - - /* FIXME - load the window position from the registry */ - - hMainWnd = CreateWindowEx(WS_EX_WINDOWEDGE, - szMainWndClass, - lpCaption, - WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, - CW_USEDEFAULT, - CW_USEDEFAULT, - CW_USEDEFAULT, - CW_USEDEFAULT, - NULL, - NULL, - hInstance, - Info); - if (hMainWnd == NULL) - { - HeapFree(ProcessHeap, - 0, - Info); - } - } - - return hMainWnd; -} - -BOOL -MainWndTranslateMDISysAccel(HWND hwnd, - LPMSG lpMsg) -{ - PMAIN_WND_INFO Info; - - /* Get the window context */ - Info = (PMAIN_WND_INFO)GetWindowLongPtr(hwnd, - GWLP_USERDATA); - if (Info != NULL && Info->hMdiClient != NULL) - { - return TranslateMDISysAccel(Info->hMdiClient, - lpMsg); - } - - return FALSE; -} - -BOOL -InitMainWindowImpl(VOID) -{ - WNDCLASSEX wc = {0}; - - wc.cbSize = sizeof(WNDCLASSEX); - wc.lpfnWndProc = MainWndProc; - wc.hInstance = hInstance; - wc.hIcon = LoadIcon(hInstance, - MAKEINTRESOURCE(IDI_IMAGESOFTICON)); - 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_IMAGESOFTICON), - IMAGE_ICON, - 16, - 16, - LR_SHARED); - - return RegisterClassEx(&wc) != (ATOM)0; -} - -VOID -UninitMainWindowImpl(VOID) -{ - UnregisterClass(szMainWndClass, - hInstance); -} +#include + +static const TCHAR szMainWndClass[] = TEXT("ImageSoftWndClass"); + +#define ID_MDI_FIRSTCHILD 50000 +#define ID_MDI_WINDOWMENU 5 +#define NUM_FLT_WND 3 + +/* toolbar buttons */ +TBBUTTON StdButtons[] = { +/* iBitmap, idCommand, fsState, fsStyle, bReserved[2], dwData, iString */ + {TBICON_NEW, ID_NEW, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0}, /* new */ + {TBICON_OPEN, ID_OPEN, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0}, /* open */ + {TBICON_SAVE, ID_SAVE, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0}, /* save */ + + {10, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, /* separator */ + + {TBICON_PRINT, ID_PRINTPRE, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* print */ + {TBICON_PRINTPRE, ID_PRINT, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* print preview */ + + {10, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, /* separator */ + + {TBICON_CUT, ID_CUT, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* cut */ + {TBICON_COPY, ID_COPY, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* copy */ + {TBICON_PASTE, ID_PASTE, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* paste */ + + {10, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, /* separator */ + + {TBICON_UNDO, ID_UNDO, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* undo */ + {TBICON_REDO, ID_REDO, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* redo */ + + {10, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, +}; + +TBBUTTON TextButtons[] = { + {10, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, /* separator */ + + {TBICON_BOLD, ID_BOLD, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0}, /* bold */ + {TBICON_ITALIC, ID_ITALIC, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0}, /* italic */ + {TBICON_ULINE, ID_ULINE, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0}, /* underline */ + + {10, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, /* separator */ + + {TBICON_TXTLEFT, ID_TXTLEFT, TBSTATE_ENABLED | TBSTATE_CHECKED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0 }, /* left justified */ + {TBICON_TXTCENTER,ID_TXTCENTER,TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0 }, /* centered */ + {TBICON_TXTRIGHT, ID_TXTRIGHT, TBSTATE_ENABLED, BTNS_BUTTON | TBSTYLE_GROUP | TBSTYLE_CHECK, {0}, 0, 0 }, /* right justified */ + + {10, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, /* separator */ +}; + + + +/* menu hints */ +static const MENU_HINT MainMenuHintTable[] = { + /* File Menu */ + {ID_BLANK, IDS_HINT_BLANK}, + {ID_NEW, IDS_HINT_NEW}, + {ID_OPEN, IDS_HINT_OPEN}, + {ID_CLOSE, IDS_HINT_CLOSE}, + {ID_CLOSEALL, IDS_HINT_CLOSEALL}, + {ID_SAVE, IDS_HINT_SAVE}, + {ID_SAVEAS, IDS_HINT_SAVEAS}, + {ID_PRINTPRE, IDS_HINT_PRINTPRE}, + {ID_PRINT, IDS_HINT_PRINT}, + {ID_PROP, IDS_HINT_PROP}, + {ID_EXIT, IDS_HINT_EXIT}, + + /* view menu */ + {ID_TOOLS, IDS_HINT_TOOLS}, + {ID_COLOR, IDS_HINT_COLORS}, + {ID_HISTORY, IDS_HINT_HISTORY}, + {ID_STATUSBAR, IDS_HINT_STATUS}, + + /* Window Menu */ + {ID_WINDOW_NEXT, IDS_HINT_NEXT}, + {ID_WINDOW_CASCADE, IDS_HINT_CASCADE}, + {ID_WINDOW_TILE_HORZ, IDS_HINT_TILE_HORZ}, + {ID_WINDOW_TILE_VERT, IDS_HINT_TILE_VERT}, + {ID_WINDOW_ARRANGE, IDS_HINT_ARRANGE} +}; + +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_CLOSE}, + {SC_NEXTWINDOW, IDS_HINT_NEXT}, +}; + + +/* Toolbars */ +#define ID_TOOLBAR_STANDARD 0 +#define ID_TOOLBAR_TEXT 1 +static const TCHAR szToolbarStandard[] = TEXT("STANDARD"); +static const TCHAR szToolbarText[] = TEXT("TEXT"); + + +/* Test Toolbar */ +#define ID_TOOLBAR_TEST 5 +static const TCHAR szToolbarTest[] = TEXT("TEST"); + +/* Toolbars table */ +static const DOCKBAR MainDockBars[] = { + {ID_TOOLBAR_STANDARD, szToolbarStandard, IDS_TOOLBAR_STANDARD, TOP_DOCK}, + {ID_TOOLBAR_TEST, szToolbarTest, IDS_TOOLBAR_TEST, TOP_DOCK}, + {ID_TOOLBAR_TEXT, szToolbarText, IDS_TOOLBAR_TEXT, TOP_DOCK}, +}; + + +static BOOL CALLBACK +MainWndCreateToolbarClient(struct _TOOLBAR_DOCKS *TbDocks, + const DOCKBAR *Dockbar, + PVOID Context, + HWND hParent, + HWND *hwnd) +{ + const TBBUTTON *Buttons = NULL; + UINT NumButtons = 0; + UINT StartImageRes = 0; + HWND hWndClient = NULL; + + UNREFERENCED_PARAMETER(Context); + + /* Standard toolbar */ + switch (Dockbar->BarId) + { + case ID_TOOLBAR_STANDARD: + { + Buttons = StdButtons; + NumButtons = sizeof(StdButtons) / sizeof(StdButtons[0]); + StartImageRes = IDB_MAINNEWICON; + break; + } + + case ID_TOOLBAR_TEXT: + { + Buttons = TextButtons; + NumButtons = sizeof(TextButtons) / sizeof(TextButtons[0]); + StartImageRes = IDB_TEXTBOLD; + break; + } + + case ID_TOOLBAR_TEST: + { + hWndClient = CreateWindowEx(WS_EX_TOOLWINDOW, + TEXT("BUTTON"), + TEXT("Test Button"), + WS_CHILD | WS_VISIBLE, + 0, + 0, + 150, + 25, + hParent, + NULL, + hInstance, + NULL); + break; + } + } + + if (Buttons != NULL) + { + hWndClient = CreateWindowEx(0, + TOOLBARCLASSNAME, + NULL, + WS_CHILD | WS_CLIPSIBLINGS | + CCS_NOPARENTALIGN | CCS_NOMOVEY | CCS_NORESIZE | CCS_NODIVIDER | + TBSTYLE_FLAT | TBSTYLE_TOOLTIPS, + 0, + 0, + 0, + 0, + hParent, + NULL, + hInstance, + NULL); + if (hWndClient != NULL) + { + HIMAGELIST hImageList; + + SendMessage(hWndClient, + TB_SETEXTENDEDSTYLE, + 0, + TBSTYLE_EX_HIDECLIPPEDBUTTONS); + + /* Send the TB_BUTTONSTRUCTSIZE message, which is required for backward compatibility */ + SendMessage(hWndClient, + TB_BUTTONSTRUCTSIZE, + sizeof(Buttons[0]), + 0); + + SendMessage(hWndClient, + TB_SETBITMAPSIZE, + 0, + (LPARAM)MAKELONG(TB_BMP_WIDTH, TB_BMP_HEIGHT)); + + hImageList = InitImageList(NumButtons, + StartImageRes); + + ImageList_Destroy((HIMAGELIST)SendMessage(hWndClient, + TB_SETIMAGELIST, + 0, + (LPARAM)hImageList)); + + SendMessage(hWndClient, + TB_ADDBUTTONS, + NumButtons, + (LPARAM)Buttons); + + + + } + } + + switch (Dockbar->BarId) + { + case ID_TOOLBAR_TEXT: + { + HWND hFontType; + HWND hFontSize; + + /* drop combo box into container window */ + hFontType = CreateWindowEx(0, + WC_COMBOBOX, + NULL, + WS_CHILD | WS_VISIBLE | CBS_DROPDOWN, + 0, 0, 120, 25, + hParent, + NULL, + hInstance, + NULL); + //MakeFlatCombo(hFontType); + if (hFontType != NULL) + { + SetParent(hFontType, + hWndClient); + + if (!ToolbarInsertSpaceForControl(hWndClient, + hFontType, + 0, + ID_TXTFONTNAME, + TRUE)) + { + DestroyWindow(hFontType); + } + } + + /* drop combo box into container window */ + hFontSize = CreateWindowEx(0, + WC_COMBOBOX, + NULL, + WS_CHILD | WS_VISIBLE | CBS_DROPDOWN, + 0, 0, 40, 25, + hParent, + NULL, + hInstance, + NULL); + if (hFontSize != NULL) + { + SetParent(hFontSize, + hWndClient); + + if (!ToolbarInsertSpaceForControl(hWndClient, + hFontSize, + 0, + ID_TXTFONTSIZE, + TRUE)) + { + DestroyWindow(hFontSize); + } + } + break; + } + } + + if (hWndClient != NULL) + { + *hwnd = hWndClient; + return TRUE; + } + + return FALSE; +} + +static BOOL CALLBACK +MainWndDestroyToolbarClient(struct _TOOLBAR_DOCKS *TbDocks, + const DOCKBAR *Dockbar, + PVOID Context, + HWND hwnd) +{ + UNREFERENCED_PARAMETER(TbDocks); + UNREFERENCED_PARAMETER(Dockbar); + UNREFERENCED_PARAMETER(Context); + + DestroyWindow(hwnd); + return TRUE; +} + +static BOOL CALLBACK +MainWndToolbarInsertBand(struct _TOOLBAR_DOCKS *TbDocks, + const DOCKBAR *Dockbar, + PVOID Context, + UINT *Index, + LPREBARBANDINFO rbi) +{ + switch (rbi->wID) + { + case ID_TOOLBAR_TEXT: + case ID_TOOLBAR_STANDARD: + { + SIZE Size; + + if (SendMessage(rbi->hwndChild, + TB_GETMAXSIZE, + 0, + (LPARAM)&Size)) + { + rbi->fStyle |= RBBS_USECHEVRON | RBBS_HIDETITLE; + rbi->fMask |= RBBIM_SIZE | RBBIM_CHILDSIZE | RBBIM_IDEALSIZE; + rbi->cx = rbi->cxIdeal = Size.cx; + rbi->cxMinChild = 0; + rbi->cyMinChild = Size.cy; + } + break; + } + + case ID_TOOLBAR_TEST: + { + RECT rcBtn; + + if (GetWindowRect(rbi->hwndChild, + &rcBtn)) + { + rbi->fStyle |= RBBS_HIDETITLE; + rbi->fMask |= RBBIM_SIZE | RBBIM_CHILDSIZE; + rbi->cx = rcBtn.right - rcBtn.left; + rbi->cxMinChild = 0; + rbi->cyMinChild = rcBtn.bottom - rcBtn.top; + } + break; + } + } + return TRUE; +} + +static VOID +TbCustomControlChange(HWND hWndToolbar, + HWND hWndControl, + BOOL Vert) +{ + /* the toolbar changed from horizontal to vertical or vice versa... */ + return; +} + +static VOID CALLBACK +MainWndToolbarDockBand(struct _TOOLBAR_DOCKS *TbDocks, + const DOCKBAR *Dockbar, + PVOID Context, + DOCK_POSITION DockFrom, + DOCK_POSITION DockTo, + LPREBARBANDINFO rbi) +{ + if (rbi->fMask & RBBIM_CHILD && rbi->hwndChild != NULL) + { + switch (rbi->wID) + { + case ID_TOOLBAR_TEXT: + case ID_TOOLBAR_STANDARD: + { + SIZE Size; + BOOL Vert; + DWORD dwStyle = SendMessage(rbi->hwndChild, + TB_GETSTYLE, + 0, + 0); + switch (DockTo) + { + case LEFT_DOCK: + case RIGHT_DOCK: + dwStyle |= CCS_VERT | TBSTYLE_WRAPABLE; + Vert = TRUE; + break; + + default: + dwStyle &= ~(CCS_VERT | TBSTYLE_WRAPABLE); + Vert = FALSE; + break; + } + + SendMessage(rbi->hwndChild, + TB_SETSTYLE, + 0, + (LPARAM)dwStyle); + + ToolbarUpdateControlSpaces(rbi->hwndChild, + TbCustomControlChange); + + if (SendMessage(rbi->hwndChild, + TB_GETMAXSIZE, + 0, + (LPARAM)&Size)) + { + rbi->fMask |= RBBIM_SIZE | RBBIM_CHILDSIZE | RBBIM_IDEALSIZE; + rbi->cx = rbi->cxIdeal = (Vert ? Size.cy : Size.cx); + rbi->cxMinChild = 0; + rbi->cyMinChild = (Vert ? Size.cx : Size.cy); + } + break; + } + + case ID_TOOLBAR_TEST: + { + if (DockTo == NO_DOCK) + { + rbi->fMask |= RBBIM_SIZE | RBBIM_CHILDSIZE | RBBIM_IDEALSIZE; + rbi->cx = rbi->cxIdeal = 150; + rbi->cxMinChild = 0; + rbi->cyMinChild = 40; + } + break; + } + } + } +} + +static VOID CALLBACK +MainWndToolbarChevronPushed(struct _TOOLBAR_DOCKS *TbDocks, + const DOCKBAR *Dockbar, + PVOID Context, + HWND hwndChild, + LPNMREBARCHEVRON lpnm) +{ + switch (lpnm->wID) + { + case ID_TOOLBAR_STANDARD: + { + MapWindowPoints(lpnm->hdr.hwndFrom, + HWND_DESKTOP, + (LPPOINT)&lpnm->rc, + 2); + /* Create a popup menu for all toolbar icons hidden */ + break; + } + } +} + +static VOID +MainWndMoveFloatingWindows(PMAIN_WND_INFO Info, + PRECT wndOldPos) +{ + RECT wndNewPos, TbRect; + INT i, xMoved, yMoved; + PFLT_WND WndArr[NUM_FLT_WND]; + + if (GetWindowRect(Info->hSelf, + &wndNewPos)) + { + + xMoved = wndNewPos.left - wndOldPos->left; + yMoved = wndNewPos.top - wndOldPos->top; + + /* store the pointers in an array */ + WndArr[0] = Info->fltTools; + WndArr[1] = Info->fltColors; + WndArr[2] = Info->fltHistory; + + for (i = 0; i < NUM_FLT_WND; i++) + { + GetWindowRect(WndArr[i]->hSelf, + &TbRect); + + WndArr[i]->x = TbRect.left + xMoved; + WndArr[i]->y = TbRect.top + yMoved; + + MoveWindow(WndArr[i]->hSelf, + WndArr[i]->x, + WndArr[i]->y, + WndArr[i]->Width, + WndArr[i]->Height, + TRUE); + } + + CopyMemory(wndOldPos, + &wndNewPos, + sizeof(RECT)); + } +} + + +static VOID +MainWndResetFloatingWindows(PMAIN_WND_INFO Info) +{ + RECT rect; + + if (GetWindowRect(Info->hMdiClient, + &rect)) + { + + /* tools datum */ + MoveWindow(Info->fltTools->hSelf, + rect.left + 5, + rect.top + 5, + Info->fltTools->Width, + Info->fltTools->Height, + TRUE); + + /* colors datum */ + MoveWindow(Info->fltColors->hSelf, + rect.left + 5, + rect.bottom - Info->fltColors->Height - 5, + Info->fltColors->Width, + Info->fltColors->Height, + TRUE); + + /* history datum */ + MoveWindow(Info->fltHistory->hSelf, + rect.right - Info->fltHistory->Width - 5, + rect.top + 5, + Info->fltHistory->Width, + Info->fltHistory->Height, + TRUE); + } +} + +static VOID +MainWndCreateFloatWindows(PMAIN_WND_INFO Info) +{ + RECT rect; + HMENU hMenu; + UINT Res; + PFLT_WND WndArr[NUM_FLT_WND]; /* temp array for looping */ + INT i; + + Info->fltTools = HeapAlloc(ProcessHeap, + HEAP_ZERO_MEMORY, + sizeof(FLT_WND)); + Info->fltColors = HeapAlloc(ProcessHeap, + HEAP_ZERO_MEMORY, + sizeof(FLT_WND)); + Info->fltHistory = HeapAlloc(ProcessHeap, + HEAP_ZERO_MEMORY, + sizeof(FLT_WND)); + + /* set window dimensions */ + Info->fltTools->Width = 53; + Info->fltTools->Height = 300; + Info->fltColors->Width = 200; + Info->fltColors->Height = 200; + Info->fltHistory->Width = 150; + Info->fltHistory->Height = 150; + + if (! GetWindowRect(Info->hMdiClient, + &rect)) + { + return; + } + + /* Set window datums */ + Info->fltTools->x = rect.left + 5; + Info->fltTools->y = rect.top + 5; + + Info->fltColors->x = rect.left + 5; + Info->fltColors->y = rect.bottom - Info->fltColors->Height - 5; + + Info->fltHistory->x = rect.right - Info->fltHistory->Width - 5; + Info->fltHistory->y = rect.top + 5; + + /* save pointers into array incrementing within the loop*/ + WndArr[0] = Info->fltTools; + WndArr[1] = Info->fltColors; + WndArr[2] = Info->fltHistory; + + for (i = 0, Res = IDS_FLT_TOOLS; Res < IDS_FLT_TOOLS + NUM_FLT_WND; Res++, i++) + { + if (! AllocAndLoadString(&WndArr[i]->lpName, + hInstance, + Res)) + { + WndArr[i]->lpName = NULL; + } + + WndArr[i]->hSelf = CreateWindowEx(WS_EX_TOOLWINDOW, + TEXT("ImageSoftFloatWndClass"), + WndArr[i]->lpName, + WS_POPUPWINDOW | WS_DLGFRAME | WS_VISIBLE, + WndArr[i]->x, + WndArr[i]->y, + WndArr[i]->Width, + WndArr[i]->Height, + Info->hSelf, + NULL, + hInstance, + WndArr[i]); + + } + + hMenu = GetMenu(Info->hSelf); + + if (Info->fltTools->hSelf != NULL) + { + if (FloatToolbarCreateToolsGui(Info)) + { + //CheckMenuItem(hMenu, + // ID_TOOLS, + // MF_CHECKED); + + /* temp disable windows until they are useful */ + ShowHideWindow(Info->fltTools); + } + } + + if (Info->fltColors->hSelf != NULL) + { + if (FloatToolbarCreateColorsGui(Info)) + { + //CheckMenuItem(hMenu, + // ID_COLOR, + // MF_CHECKED); + + /* temp disable windows until they are useful */ + ShowHideWindow(Info->fltColors); + } + } + + if (Info->fltHistory->hSelf != NULL) + { + if (FloatToolbarCreateHistoryGui(Info)) + { + //CheckMenuItem(hMenu, + // ID_HISTORY, + // MF_CHECKED); + + /* temp disable windows until they are useful */ + ShowHideWindow(Info->fltHistory); + } + } + +} + +static VOID +MainWndDestroyFloatWindows(PMAIN_WND_INFO Info) +{ + if (Info->fltTools != NULL) + HeapFree(ProcessHeap, 0, Info->fltTools); + + if (Info->fltColors != NULL) + HeapFree(ProcessHeap, 0, Info->fltTools); + + if (Info->fltHistory != NULL) + HeapFree(ProcessHeap, 0, Info->fltTools); +} + + + +static const DOCKBAR_ITEM_CALLBACKS MainWndDockBarCallbacks = { + MainWndCreateToolbarClient, + MainWndDestroyToolbarClient, + MainWndToolbarInsertBand, + MainWndToolbarDockBand, + MainWndToolbarChevronPushed, +}; + +static VOID +CreateToolbars(PMAIN_WND_INFO Info) +{ + UINT i; + + for (i = 0; i < sizeof(MainDockBars) / sizeof(MainDockBars[0]); i++) + { + /* FIXME - lookup whether to display the toolbar */ + TbdAddToolbar(&Info->ToolDocks, + &MainDockBars[i], + Info, + &MainWndDockBarCallbacks); + } + + MainWndCreateFloatWindows(Info); +} + +static VOID CALLBACK +MainWndResize(PVOID Context, + WORD cx, + WORD cy) +{ + RECT rcClient = {0}; + RECT rcStatus = {0}; + HDWP dwp; + INT DocksVisible; + PMAIN_WND_INFO Info = (PMAIN_WND_INFO)Context; + + /* Calculate the MDI client rectangle */ + rcClient.right = cx; + rcClient.bottom = cy; + + if (Info->hStatus != NULL) + { + GetWindowRect(Info->hStatus, + &rcStatus); + rcClient.bottom -= (rcStatus.bottom - rcStatus.top); + } + + /* Adjust the client rect if docked toolbars are visible */ + DocksVisible = TbdAdjustUpdateClientRect(&Info->ToolDocks, + &rcClient); + + dwp = BeginDeferWindowPos(2 + DocksVisible); + if (dwp != NULL) + { + /* Update the toolbar docks */ + if (DocksVisible != 0) + { + dwp = TbdDeferDocks(dwp, + &Info->ToolDocks); + if (dwp == NULL) + return; + } + + /* Update the MDI client */ + if (Info->hMdiClient != NULL) + { + dwp = DeferWindowPos(dwp, + Info->hMdiClient, + NULL, + rcClient.left, + rcClient.top, + rcClient.right - rcClient.left, + rcClient.bottom - rcClient.top, + SWP_NOZORDER); + if (dwp == NULL) + return; + } + + /* Update the status bar */ + if (Info->hStatus != NULL) + { + dwp = DeferWindowPos(dwp, + Info->hStatus, + NULL, + 0, + cy - (rcStatus.bottom - rcStatus.top), + cx, + rcStatus.bottom - rcStatus.top, + SWP_NOZORDER); + if (dwp == NULL) + return; + } + + EndDeferWindowPos(dwp); + } +} + +static VOID +InitMainWnd(PMAIN_WND_INFO Info) +{ + CLIENTCREATESTRUCT ccs; + INT statwidths[] = {110, -1}; + + /* FIXME - create controls and initialize the application */ + + /* create the status bar */ + Info->hStatus = CreateWindowEx(0, + STATUSCLASSNAME, + NULL, + WS_VISIBLE | WS_CHILD | WS_CLIPSIBLINGS | CCS_NOPARENTALIGN | SBARS_SIZEGRIP, + 0, + 0, + 0, + 0, + Info->hSelf, + (HMENU)IDC_STATUSBAR, + hInstance, + NULL); + + if (Info->hStatus != NULL) + SendMessage(Info->hStatus, + SB_SETPARTS, + sizeof(statwidths)/sizeof(int), + (LPARAM)statwidths); + + /* create the MDI client window */ + ccs.hWindowMenu = GetSubMenu(GetMenu(Info->hSelf), + ID_MDI_WINDOWMENU); + ccs.idFirstChild = ID_MDI_FIRSTCHILD; + Info->hMdiClient = CreateWindowEx(WS_EX_ACCEPTFILES | WS_EX_CLIENTEDGE, + TEXT("MDICLIENT"), + NULL, + WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_VSCROLL | WS_HSCROLL, + 0, + 0, + 0, + 0, + Info->hSelf, + NULL, + hInstance, + &ccs); + + TbdInitializeDocks(&Info->ToolDocks, + Info->hSelf, + Info, + MainWndResize); + + CreateToolbars(Info); + + /* initialize file open/save structure */ + FileInitialize(Info->hSelf); +} + +static VOID +MainWndCommand(PMAIN_WND_INFO Info, + WORD CmdId, + HWND hControl) +{ + static TCHAR szFileName[MAX_PATH]; + static TCHAR szImageName[MAX_PATH]; + + UNREFERENCED_PARAMETER(hControl); + + switch (CmdId) + { + case ID_NEW: + { + OPEN_IMAGE_EDIT_INFO OpenInfo; + PIMAGE_PROP ImageProp = NULL; + + ImageProp = HeapAlloc(ProcessHeap, + 0, + sizeof(IMAGE_PROP)); + if (ImageProp == NULL) + break; + + /* load the properties dialog */ + if (DialogBoxParam(hInstance, + MAKEINTRESOURCE(IDD_IMAGE_PROP), + Info->hSelf, + ImagePropDialogProc, + (LPARAM)ImageProp)) + { + /* if an image name isn't provided, load a default name */ + if (! ImageProp->lpImageName) + LoadAndFormatString(hInstance, + IDS_IMAGE_NAME, + &OpenInfo.lpImageName, + ++Info->ImagesCreated); + else + OpenInfo.lpImageName = ImageProp->lpImageName; + + OpenInfo.CreateNew = TRUE; + OpenInfo.Type = ImageProp->Type; + OpenInfo.Resolution = ImageProp->Resolution; + OpenInfo.New.Width = ImageProp->Width; + OpenInfo.New.Height = ImageProp->Height; + + HeapFree(ProcessHeap, + 0, + ImageProp); + + CreateImageEditWindow(Info, + &OpenInfo); + } + } + break; + + case ID_BOLD: + MessageBox(NULL, _T("Bingo"), NULL, 0); + break; + + case ID_OPEN: + { + OPEN_IMAGE_EDIT_INFO OpenInfo; + + if (DoOpenFile(Info->hSelf, + szFileName, /* full file path */ + szImageName)) /* file name */ + { + OpenInfo.CreateNew = FALSE; + + OpenInfo.Open.lpImagePath = szFileName; + OpenInfo.lpImageName = szImageName; + + CreateImageEditWindow(Info, + &OpenInfo); + + /* FIXME: move flt wnd's if scroll bars show + MainWndResetFloatingWindows(Info->hMdiClient); */ + } + + } + break; + + case ID_TOOLS: + { + HMENU hMenu = GetMenu(Info->hSelf); + + if (hMenu != NULL) + { + UINT uCheck; + + ShowHideWindow(Info->fltTools); + + uCheck = Info->fltTools->bShow ? MF_CHECKED : MF_UNCHECKED; + CheckMenuItem(hMenu, + ID_TOOLS, + uCheck); + } + } + break; + + case ID_COLOR: + { + HMENU hMenu = GetMenu(Info->hSelf); + + if (hMenu != NULL) + { + UINT uCheck; + + ShowHideWindow(Info->fltColors); + + uCheck = Info->fltColors->bShow ? MF_CHECKED : MF_UNCHECKED; + CheckMenuItem(hMenu, + ID_COLOR, + uCheck); + } + } + break; + + case ID_HISTORY: + { + HMENU hMenu = GetMenu(Info->hSelf); + + if (hMenu != NULL) + { + UINT uCheck; + + ShowHideWindow(Info->fltHistory); + + uCheck = Info->fltHistory->bShow ? MF_CHECKED : MF_UNCHECKED; + CheckMenuItem(hMenu, + ID_HISTORY, + uCheck); + } + } + break; + + case ID_EXIT: + SendMessage(Info->hSelf, + WM_CLOSE, + 0, + 0); + break; + + /* Window Menu */ + case ID_WINDOW_TILE_HORZ: + SendMessage(Info->hMdiClient, + WM_MDITILE, + MDITILE_HORIZONTAL, + 0); + break; + + case ID_WINDOW_TILE_VERT: + SendMessage(Info->hMdiClient, + WM_MDITILE, + MDITILE_VERTICAL, + 0); + break; + + case ID_WINDOW_CASCADE: + SendMessage(Info->hMdiClient, + WM_MDICASCADE, + 0, + 0); + break; + + case ID_WINDOW_ARRANGE: + SendMessage(Info->hMdiClient, + WM_MDIICONARRANGE, + 0, + 0); + break; + + case ID_WINDOW_NEXT: + SendMessage(Info->hMdiClient, + WM_MDINEXT, + 0, + 0); + break; + + /* Help Menu */ + case ID_ABOUT: + DialogBox(hInstance, + MAKEINTRESOURCE(IDD_ABOUTBOX), + Info->hSelf, + AboutDialogProc); + break; + } +} + +static VOID +DestroyMainWnd(PMAIN_WND_INFO Info) +{ + /* FIXME - cleanup allocated resources */ + + MainWndDestroyFloatWindows(Info); +} + + +static VOID +UpdateMainStatusBar(PMAIN_WND_INFO Info) +{ + if (Info->hStatus != NULL) + { + SendMessage(Info->hStatus, + SB_SIMPLE, + (WPARAM)Info->InMenuLoop, + 0); + } +} + +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 LRESULT CALLBACK +MainWndProc(HWND hwnd, + UINT uMsg, + WPARAM wParam, + LPARAM lParam) +{ + PMAIN_WND_INFO Info; + LRESULT Ret = 0; + static BOOL bLBMouseDown = FALSE; + static RECT wndOldPos; + + /* Get the window context */ + Info = (PMAIN_WND_INFO)GetWindowLongPtr(hwnd, + GWLP_USERDATA); + if (Info == NULL && uMsg != WM_CREATE) + { + goto HandleDefaultMessage; + } + + switch (uMsg) + { + case WM_SIZE: + { + MainWndResize(Info, + LOWORD(lParam), + HIWORD(lParam)); + /* NOTE - do *not* forward this message to DefFrameProc! Otherwise the MDI client + will attempt to resize itself */ + + /* reposition the floating toolbars */ + if ((wParam == SIZE_MAXIMIZED) || (wParam == SIZE_RESTORED)) + MainWndResetFloatingWindows(Info); + + break; + } + + case WM_NCLBUTTONDOWN: + bLBMouseDown = TRUE; + DefWindowProc(hwnd, + uMsg, + wParam, + lParam); + break; + + case WM_NCLBUTTONUP: + + bLBMouseDown = FALSE; + DefWindowProc(hwnd, + uMsg, + wParam, + lParam); + break; + + case WM_MOVE: + { + /* if the main window is moved, move the toolbars too */ + if (bLBMouseDown) + MainWndMoveFloatingWindows(Info, &wndOldPos); + } + break; + + case WM_NOTIFY: + { + UINT BarId; + LPNMHDR pnmhdr = (LPNMHDR)lParam; + if (!TbdHandleNotifications(&Info->ToolDocks, + pnmhdr, + &Ret)) + { + if (TbdDockBarIdFromClientWindow(&Info->ToolDocks, + pnmhdr->hwndFrom, + &BarId)) + { + switch (BarId) + { + case ID_TOOLBAR_TEXT: + switch (pnmhdr->code) + { + case TBN_DELETINGBUTTON: + { + LPNMTOOLBAR lpnmtb = (LPNMTOOLBAR)lParam; + + ToolbarDeleteControlSpace(pnmhdr->hwndFrom, + &lpnmtb->tbButton); + break; + } + } + break; + } + } + } + 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: + { + DestroyWindow(hwnd); + break; + } + + case WM_ENABLE: + { + TbdHandleEnabling(&Info->ToolDocks, + hwnd, + (BOOL)wParam); + goto HandleDefaultMessage; + } + + case WM_NCACTIVATE: + { + TbdHandleActivation(&Info->ToolDocks, + hwnd, + &wParam, + &lParam); + goto HandleDefaultMessage; + } + + case WM_ACTIVATEAPP: + { + //TbdShowFloatingToolbars(&Info->ToolDocks, + // (BOOL)wParam); + goto HandleDefaultMessage; + } + + case WM_CREATE: + { + Info = (PMAIN_WND_INFO)(((LPCREATESTRUCT)lParam)->lpCreateParams); + + /* Initialize the main window context */ + Info->hSelf = hwnd; + + SetWindowLongPtr(hwnd, + GWLP_USERDATA, + (LONG_PTR)Info); + + InitMainWnd(Info); + + /* Show the window */ + ShowWindow(hwnd, + Info->nCmdShow); + /* get the windows position */ + GetWindowRect(hwnd, + &wndOldPos); + + break; + } + + case WM_DESTROY: + { + DestroyMainWnd(Info); + + HeapFree(ProcessHeap, + 0, + Info); + SetWindowLongPtr(hwnd, + GWLP_USERDATA, + 0); + + /* Break the message queue loop */ + PostQuitMessage(0); + break; + } + + default: + { +HandleDefaultMessage: + if (Info != NULL && Info->hMdiClient != NULL) + { + Ret = DefFrameProc(hwnd, + Info->hMdiClient, + uMsg, + wParam, + lParam); + } + else + { + Ret = DefWindowProc(hwnd, + uMsg, + wParam, + lParam); + } + break; + } + } + + return Ret; +} + +MDI_EDITOR_TYPE +MainWndGetCurrentEditor(PMAIN_WND_INFO MainWnd, + PVOID *Info) +{ + MDI_EDITOR_TYPE EditorType; + + if (MainWnd->ActiveEditor != NULL) + { + EditorType = *((PMDI_EDITOR_TYPE)MainWnd->ActiveEditor); + *Info = MainWnd->ActiveEditor; + } + else + { + EditorType = metUnknown; + *Info = NULL; + } + + return EditorType; +} + +VOID +MainWndSwitchEditorContext(PMAIN_WND_INFO Info, + HWND hDeactivate, + HWND hActivate) +{ + PMDI_EDITOR_TYPE EditorType; + + /* FIXME - optimize light weight switching + when switching from and to an editor of same type */ + + if (hDeactivate != NULL) + { + EditorType = (PMDI_EDITOR_TYPE)GetWindowLongPtr(hDeactivate, + GWLP_USERDATA); + if (EditorType != NULL) + { + switch (*EditorType) + { + case metImageEditor: + SetImageEditorEnvironment((PEDIT_WND_INFO)EditorType, + FALSE); + break; + + default: + break; + } + + Info->ActiveEditor = NULL; + } + } + + if (hActivate != NULL) + { + EditorType = (PMDI_EDITOR_TYPE)GetWindowLongPtr(hActivate, + GWLP_USERDATA); + if (EditorType != NULL) + { + Info->ActiveEditor = EditorType; + + switch (*EditorType) + { + case metImageEditor: + SetImageEditorEnvironment((PEDIT_WND_INFO)EditorType, + TRUE); + break; + + default: + break; + } + } + } +} + +HWND +CreateMainWindow(LPCTSTR lpCaption, + int nCmdShow) +{ + PMAIN_WND_INFO Info; + HWND hMainWnd = NULL; + + Info = HeapAlloc(ProcessHeap, + 0, + sizeof(MAIN_WND_INFO)); + if (Info != NULL) + { + ZeroMemory(Info, + sizeof(MAIN_WND_INFO)); + Info->nCmdShow = nCmdShow; + + /* FIXME - load the window position from the registry */ + + hMainWnd = CreateWindowEx(WS_EX_WINDOWEDGE, + szMainWndClass, + lpCaption, + WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, + CW_USEDEFAULT, + CW_USEDEFAULT, + CW_USEDEFAULT, + CW_USEDEFAULT, + NULL, + NULL, + hInstance, + Info); + if (hMainWnd == NULL) + { + HeapFree(ProcessHeap, + 0, + Info); + } + } + + return hMainWnd; +} + +BOOL +MainWndTranslateMDISysAccel(HWND hwnd, + LPMSG lpMsg) +{ + PMAIN_WND_INFO Info; + + /* Get the window context */ + Info = (PMAIN_WND_INFO)GetWindowLongPtr(hwnd, + GWLP_USERDATA); + if (Info != NULL && Info->hMdiClient != NULL) + { + return TranslateMDISysAccel(Info->hMdiClient, + lpMsg); + } + + return FALSE; +} + +BOOL +InitMainWindowImpl(VOID) +{ + WNDCLASSEX wc = {0}; + + wc.cbSize = sizeof(WNDCLASSEX); + wc.lpfnWndProc = MainWndProc; + wc.hInstance = hInstance; + wc.hIcon = LoadIcon(hInstance, + MAKEINTRESOURCE(IDI_IMAGESOFTICON)); + 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_IMAGESOFTICON), + IMAGE_ICON, + 16, + 16, + LR_SHARED); + + return RegisterClassEx(&wc) != (ATOM)0; +} + +VOID +UninitMainWindowImpl(VOID) +{ + UnregisterClass(szMainWndClass, + hInstance); +} diff --git a/reactos/base/applications/imagesoft/manifest.xml b/reactos/base/applications/imagesoft/manifest.xml index 8807ca4fdaa..dc84acc1900 100644 --- a/reactos/base/applications/imagesoft/manifest.xml +++ b/reactos/base/applications/imagesoft/manifest.xml @@ -1,24 +1,24 @@ - - - - ReactOS VMware(r) SVGA driver Installer - - - - - - - - + + + + ReactOS VMware(r) SVGA driver Installer + + + + + + + + diff --git a/reactos/base/applications/imagesoft/misc.c b/reactos/base/applications/imagesoft/misc.c index dea7208d9db..869723356b8 100644 --- a/reactos/base/applications/imagesoft/misc.c +++ b/reactos/base/applications/imagesoft/misc.c @@ -1,421 +1,421 @@ -#include - -static INT -LengthOfStrResource(IN HINSTANCE hInst, - IN UINT uID) -{ - HRSRC hrSrc; - HGLOBAL hRes; - LPWSTR lpName, lpStr; - - if (hInst == NULL) - { - return -1; - } - - /* There are always blocks of 16 strings */ - lpName = (LPWSTR)MAKEINTRESOURCE((uID >> 4) + 1); - - /* Find the string table block */ - if ((hrSrc = FindResourceW(hInst, lpName, (LPWSTR)RT_STRING)) && - (hRes = LoadResource(hInst, hrSrc)) && - (lpStr = LockResource(hRes))) - { - UINT x; - - /* Find the string we're looking for */ - uID &= 0xF; /* position in the block, same as % 16 */ - for (x = 0; x < uID; x++) - { - lpStr += (*lpStr) + 1; - } - - /* Found the string */ - return (int)(*lpStr); - } - return -1; -} - -INT -AllocAndLoadString(OUT LPTSTR *lpTarget, - IN HINSTANCE hInst, - IN UINT uID) -{ - INT ln; - - ln = LengthOfStrResource(hInst, - uID); - if (ln++ > 0) - { - (*lpTarget) = (LPTSTR)LocalAlloc(LMEM_FIXED, - ln * sizeof(TCHAR)); - if ((*lpTarget) != NULL) - { - INT Ret; - if (!(Ret = LoadString(hInst, uID, *lpTarget, ln))) - { - LocalFree((HLOCAL)(*lpTarget)); - } - return Ret; - } - } - return 0; -} - -DWORD -LoadAndFormatString(IN HINSTANCE hInstance, - IN UINT uID, - OUT LPTSTR *lpTarget, - ...) -{ - DWORD Ret = 0; - LPTSTR lpFormat; - va_list lArgs; - - if (AllocAndLoadString(&lpFormat, - hInstance, - uID) > 0) - { - va_start(lArgs, lpTarget); - /* let's use FormatMessage to format it because it has the ability to allocate - memory automatically */ - Ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING, - lpFormat, - 0, - 0, - (LPTSTR)lpTarget, - 0, - &lArgs); - va_end(lArgs); - - LocalFree((HLOCAL)lpFormat); - } - - return Ret; -} - -BOOL -StatusBarLoadAndFormatString(IN HWND hStatusBar, - IN INT PartId, - IN HINSTANCE hInstance, - IN UINT uID, - ...) -{ - BOOL Ret = FALSE; - LPTSTR lpFormat, lpStr; - va_list lArgs; - - if (AllocAndLoadString(&lpFormat, - hInstance, - uID) > 0) - { - va_start(lArgs, uID); - /* let's use FormatMessage to format it because it has the ability to allocate - memory automatically */ - Ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING, - lpFormat, - 0, - 0, - (LPTSTR)&lpStr, - 0, - &lArgs); - va_end(lArgs); - - if (lpStr != NULL) - { - Ret = (BOOL)SendMessage(hStatusBar, - SB_SETTEXT, - (WPARAM)PartId, - (LPARAM)lpStr); - LocalFree((HLOCAL)lpStr); - } - - LocalFree((HLOCAL)lpFormat); - } - - return Ret; -} - -BOOL -StatusBarLoadString(IN HWND hStatusBar, - IN INT PartId, - IN HINSTANCE hInstance, - IN UINT uID) -{ - BOOL Ret = FALSE; - LPTSTR lpStr; - - if (AllocAndLoadString(&lpStr, - hInstance, - uID) > 0) - { - Ret = (BOOL)SendMessage(hStatusBar, - SB_SETTEXT, - (WPARAM)PartId, - (LPARAM)lpStr); - LocalFree((HLOCAL)lpStr); - } - - return Ret; -} - - -INT -GetTextFromEdit(OUT LPTSTR lpString, - IN HWND hDlg, - IN UINT Res) -{ - INT len = GetWindowTextLength(GetDlgItem(hDlg, Res)); - if(len > 0) - { - GetDlgItemText(hDlg, - Res, - lpString, - len + 1); - } - else - lpString = NULL; - - return len; -} - - -VOID GetError(DWORD err) -{ - LPVOID lpMsgBuf; - - if (err == 0) - err = GetLastError(); - - FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | - FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, - err, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPTSTR) &lpMsgBuf, - 0, - NULL ); - - MessageBox(NULL, lpMsgBuf, _T("Error!"), MB_OK | MB_ICONERROR); - - LocalFree(lpMsgBuf); -} - - - -/* - * Toolbar custom control routines - */ - -typedef struct _TBCUSTCTL -{ - HWND hWndControl; - INT iCommand; - BOOL HideVertical : 1; - BOOL IsVertical : 1; -} TBCUSTCTL, *PTBCUSTCTL; - -BOOL -ToolbarDeleteControlSpace(HWND hWndToolbar, - const TBBUTTON *ptbButton) -{ - if ((ptbButton->fsStyle & TBSTYLE_SEP) && - ptbButton->dwData != 0) - { - PTBCUSTCTL cctl = (PTBCUSTCTL)ptbButton->dwData; - - DestroyWindow(cctl->hWndControl); - - HeapFree(ProcessHeap, - 0, - cctl); - return TRUE; - } - - return FALSE; -} - -VOID -ToolbarUpdateControlSpaces(HWND hWndToolbar, - ToolbarChangeControlCallback ChangeCallback) -{ - BOOL Vert; - DWORD nButtons, i; - TBBUTTON tbtn; - - Vert = ((SendMessage(hWndToolbar, - TB_GETSTYLE, - 0, - 0) & CCS_VERT) != 0); - - nButtons = SendMessage(hWndToolbar, - TB_BUTTONCOUNT, - 0, - 0); - - for (i = 0; - i != nButtons; - i++) - { - if (SendMessage(hWndToolbar, - TB_GETBUTTON, - (WPARAM)i, - (LPARAM)&tbtn)) - { - if ((tbtn.fsStyle & TBSTYLE_SEP) && tbtn.dwData != 0) - { - PTBCUSTCTL cctl = (PTBCUSTCTL)tbtn.dwData; - - cctl->IsVertical = Vert; - - if (cctl->HideVertical) - { - ShowWindow(cctl->hWndControl, - (Vert ? SW_HIDE : SW_SHOW)); - goto ShowHideSep; - } - else if (cctl->IsVertical != Vert) - { - ChangeCallback(hWndToolbar, - cctl->hWndControl, - Vert); - -ShowHideSep: - /* show/hide the separator */ - SendMessage(hWndToolbar, - TB_HIDEBUTTON, - (WPARAM)cctl->iCommand, - (LPARAM)Vert && cctl->HideVertical); - } - } - } - } -} - -BOOL -ToolbarInsertSpaceForControl(HWND hWndToolbar, - HWND hWndControl, - INT Index, - INT iCmd, - BOOL HideVertical) -{ - PTBCUSTCTL cctl; - RECT rcControl, rcItem; - - cctl = HeapAlloc(ProcessHeap, - 0, - sizeof(TBCUSTCTL)); - if (cctl == NULL) - return FALSE; - - cctl->HideVertical = HideVertical; - cctl->hWndControl = hWndControl; - cctl->iCommand = iCmd; - - if (GetWindowRect(hWndControl, - &rcControl)) - { - TBBUTTON tbtn = {0}; - - tbtn.iBitmap = rcControl.right - rcControl.left; - tbtn.idCommand = iCmd; - tbtn.fsStyle = TBSTYLE_SEP; - tbtn.dwData = (DWORD_PTR)cctl; - - if (SendMessage(hWndToolbar, - TB_GETSTYLE, - 0, - 0) & CCS_VERT) - { - if (HideVertical) - tbtn.fsState |= TBSTATE_HIDDEN; - - cctl->IsVertical = TRUE; - } - else - cctl->IsVertical = FALSE; - - if (SendMessage(hWndToolbar, - TB_INSERTBUTTON, - (WPARAM)Index, - (LPARAM)&tbtn)) - { - if (SendMessage(hWndToolbar, - TB_GETITEMRECT, - (WPARAM)Index, - (LPARAM)&rcItem)) - { - SetWindowPos(hWndControl, - NULL, - rcItem.left, - rcItem.top, - rcItem.right - rcItem.left, - rcItem.bottom - rcItem.top, - SWP_NOZORDER); - - ShowWindow(hWndControl, - SW_SHOW); - - return TRUE; - } - else if (tbtn.fsState & TBSTATE_HIDDEN) - { - ShowWindow(hWndControl, - SW_HIDE); - } - } - } - - return FALSE; -} - - -HIMAGELIST -InitImageList(UINT NumImages, UINT StartResource) -{ - HBITMAP hBitmap; - HIMAGELIST hImageList; - INT i, k, Ret; - - - /* Create the toolbar icon image list */ - hImageList = ImageList_Create(TB_BMP_WIDTH, - TB_BMP_HEIGHT, - ILC_MASK | ILC_COLOR24, - NumImages, - 0); - if (! hImageList) - return NULL; - - /* Add all icons to the image list */ - for (i = StartResource, k = 0; k < NumImages; i++, k++) - { - hBitmap = LoadImage(hInstance, - MAKEINTRESOURCE(i), - IMAGE_BITMAP, - TB_BMP_WIDTH, - TB_BMP_HEIGHT, - LR_LOADTRANSPARENT); - - Ret = ImageList_AddMasked(hImageList, - hBitmap, - RGB(255, 255, 254)); - - DeleteObject(hBitmap); - } - - return hImageList; - -} - -/* -static BOOL -DestroyImageList(HIMAGELIST hImageList) -{ - if (! ImageList_Destroy(hImageList)) - return FALSE; - else - return TRUE; -} -*/ +#include + +static INT +LengthOfStrResource(IN HINSTANCE hInst, + IN UINT uID) +{ + HRSRC hrSrc; + HGLOBAL hRes; + LPWSTR lpName, lpStr; + + if (hInst == NULL) + { + return -1; + } + + /* There are always blocks of 16 strings */ + lpName = (LPWSTR)MAKEINTRESOURCE((uID >> 4) + 1); + + /* Find the string table block */ + if ((hrSrc = FindResourceW(hInst, lpName, (LPWSTR)RT_STRING)) && + (hRes = LoadResource(hInst, hrSrc)) && + (lpStr = LockResource(hRes))) + { + UINT x; + + /* Find the string we're looking for */ + uID &= 0xF; /* position in the block, same as % 16 */ + for (x = 0; x < uID; x++) + { + lpStr += (*lpStr) + 1; + } + + /* Found the string */ + return (int)(*lpStr); + } + return -1; +} + +INT +AllocAndLoadString(OUT LPTSTR *lpTarget, + IN HINSTANCE hInst, + IN UINT uID) +{ + INT ln; + + ln = LengthOfStrResource(hInst, + uID); + if (ln++ > 0) + { + (*lpTarget) = (LPTSTR)LocalAlloc(LMEM_FIXED, + ln * sizeof(TCHAR)); + if ((*lpTarget) != NULL) + { + INT Ret; + if (!(Ret = LoadString(hInst, uID, *lpTarget, ln))) + { + LocalFree((HLOCAL)(*lpTarget)); + } + return Ret; + } + } + return 0; +} + +DWORD +LoadAndFormatString(IN HINSTANCE hInstance, + IN UINT uID, + OUT LPTSTR *lpTarget, + ...) +{ + DWORD Ret = 0; + LPTSTR lpFormat; + va_list lArgs; + + if (AllocAndLoadString(&lpFormat, + hInstance, + uID) > 0) + { + va_start(lArgs, lpTarget); + /* let's use FormatMessage to format it because it has the ability to allocate + memory automatically */ + Ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING, + lpFormat, + 0, + 0, + (LPTSTR)lpTarget, + 0, + &lArgs); + va_end(lArgs); + + LocalFree((HLOCAL)lpFormat); + } + + return Ret; +} + +BOOL +StatusBarLoadAndFormatString(IN HWND hStatusBar, + IN INT PartId, + IN HINSTANCE hInstance, + IN UINT uID, + ...) +{ + BOOL Ret = FALSE; + LPTSTR lpFormat, lpStr; + va_list lArgs; + + if (AllocAndLoadString(&lpFormat, + hInstance, + uID) > 0) + { + va_start(lArgs, uID); + /* let's use FormatMessage to format it because it has the ability to allocate + memory automatically */ + Ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING, + lpFormat, + 0, + 0, + (LPTSTR)&lpStr, + 0, + &lArgs); + va_end(lArgs); + + if (lpStr != NULL) + { + Ret = (BOOL)SendMessage(hStatusBar, + SB_SETTEXT, + (WPARAM)PartId, + (LPARAM)lpStr); + LocalFree((HLOCAL)lpStr); + } + + LocalFree((HLOCAL)lpFormat); + } + + return Ret; +} + +BOOL +StatusBarLoadString(IN HWND hStatusBar, + IN INT PartId, + IN HINSTANCE hInstance, + IN UINT uID) +{ + BOOL Ret = FALSE; + LPTSTR lpStr; + + if (AllocAndLoadString(&lpStr, + hInstance, + uID) > 0) + { + Ret = (BOOL)SendMessage(hStatusBar, + SB_SETTEXT, + (WPARAM)PartId, + (LPARAM)lpStr); + LocalFree((HLOCAL)lpStr); + } + + return Ret; +} + + +INT +GetTextFromEdit(OUT LPTSTR lpString, + IN HWND hDlg, + IN UINT Res) +{ + INT len = GetWindowTextLength(GetDlgItem(hDlg, Res)); + if(len > 0) + { + GetDlgItemText(hDlg, + Res, + lpString, + len + 1); + } + else + lpString = NULL; + + return len; +} + + +VOID GetError(DWORD err) +{ + LPVOID lpMsgBuf; + + if (err == 0) + err = GetLastError(); + + FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | + FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, + err, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPTSTR) &lpMsgBuf, + 0, + NULL ); + + MessageBox(NULL, lpMsgBuf, _T("Error!"), MB_OK | MB_ICONERROR); + + LocalFree(lpMsgBuf); +} + + + +/* + * Toolbar custom control routines + */ + +typedef struct _TBCUSTCTL +{ + HWND hWndControl; + INT iCommand; + BOOL HideVertical : 1; + BOOL IsVertical : 1; +} TBCUSTCTL, *PTBCUSTCTL; + +BOOL +ToolbarDeleteControlSpace(HWND hWndToolbar, + const TBBUTTON *ptbButton) +{ + if ((ptbButton->fsStyle & TBSTYLE_SEP) && + ptbButton->dwData != 0) + { + PTBCUSTCTL cctl = (PTBCUSTCTL)ptbButton->dwData; + + DestroyWindow(cctl->hWndControl); + + HeapFree(ProcessHeap, + 0, + cctl); + return TRUE; + } + + return FALSE; +} + +VOID +ToolbarUpdateControlSpaces(HWND hWndToolbar, + ToolbarChangeControlCallback ChangeCallback) +{ + BOOL Vert; + DWORD nButtons, i; + TBBUTTON tbtn; + + Vert = ((SendMessage(hWndToolbar, + TB_GETSTYLE, + 0, + 0) & CCS_VERT) != 0); + + nButtons = SendMessage(hWndToolbar, + TB_BUTTONCOUNT, + 0, + 0); + + for (i = 0; + i != nButtons; + i++) + { + if (SendMessage(hWndToolbar, + TB_GETBUTTON, + (WPARAM)i, + (LPARAM)&tbtn)) + { + if ((tbtn.fsStyle & TBSTYLE_SEP) && tbtn.dwData != 0) + { + PTBCUSTCTL cctl = (PTBCUSTCTL)tbtn.dwData; + + cctl->IsVertical = Vert; + + if (cctl->HideVertical) + { + ShowWindow(cctl->hWndControl, + (Vert ? SW_HIDE : SW_SHOW)); + goto ShowHideSep; + } + else if (cctl->IsVertical != Vert) + { + ChangeCallback(hWndToolbar, + cctl->hWndControl, + Vert); + +ShowHideSep: + /* show/hide the separator */ + SendMessage(hWndToolbar, + TB_HIDEBUTTON, + (WPARAM)cctl->iCommand, + (LPARAM)Vert && cctl->HideVertical); + } + } + } + } +} + +BOOL +ToolbarInsertSpaceForControl(HWND hWndToolbar, + HWND hWndControl, + INT Index, + INT iCmd, + BOOL HideVertical) +{ + PTBCUSTCTL cctl; + RECT rcControl, rcItem; + + cctl = HeapAlloc(ProcessHeap, + 0, + sizeof(TBCUSTCTL)); + if (cctl == NULL) + return FALSE; + + cctl->HideVertical = HideVertical; + cctl->hWndControl = hWndControl; + cctl->iCommand = iCmd; + + if (GetWindowRect(hWndControl, + &rcControl)) + { + TBBUTTON tbtn = {0}; + + tbtn.iBitmap = rcControl.right - rcControl.left; + tbtn.idCommand = iCmd; + tbtn.fsStyle = TBSTYLE_SEP; + tbtn.dwData = (DWORD_PTR)cctl; + + if (SendMessage(hWndToolbar, + TB_GETSTYLE, + 0, + 0) & CCS_VERT) + { + if (HideVertical) + tbtn.fsState |= TBSTATE_HIDDEN; + + cctl->IsVertical = TRUE; + } + else + cctl->IsVertical = FALSE; + + if (SendMessage(hWndToolbar, + TB_INSERTBUTTON, + (WPARAM)Index, + (LPARAM)&tbtn)) + { + if (SendMessage(hWndToolbar, + TB_GETITEMRECT, + (WPARAM)Index, + (LPARAM)&rcItem)) + { + SetWindowPos(hWndControl, + NULL, + rcItem.left, + rcItem.top, + rcItem.right - rcItem.left, + rcItem.bottom - rcItem.top, + SWP_NOZORDER); + + ShowWindow(hWndControl, + SW_SHOW); + + return TRUE; + } + else if (tbtn.fsState & TBSTATE_HIDDEN) + { + ShowWindow(hWndControl, + SW_HIDE); + } + } + } + + return FALSE; +} + + +HIMAGELIST +InitImageList(UINT NumImages, UINT StartResource) +{ + HBITMAP hBitmap; + HIMAGELIST hImageList; + INT i, k, Ret; + + + /* Create the toolbar icon image list */ + hImageList = ImageList_Create(TB_BMP_WIDTH, + TB_BMP_HEIGHT, + ILC_MASK | ILC_COLOR24, + NumImages, + 0); + if (! hImageList) + return NULL; + + /* Add all icons to the image list */ + for (i = StartResource, k = 0; k < NumImages; i++, k++) + { + hBitmap = LoadImage(hInstance, + MAKEINTRESOURCE(i), + IMAGE_BITMAP, + TB_BMP_WIDTH, + TB_BMP_HEIGHT, + LR_LOADTRANSPARENT); + + Ret = ImageList_AddMasked(hImageList, + hBitmap, + RGB(255, 255, 254)); + + DeleteObject(hBitmap); + } + + return hImageList; + +} + +/* +static BOOL +DestroyImageList(HIMAGELIST hImageList) +{ + if (! ImageList_Destroy(hImageList)) + return FALSE; + else + return TRUE; +} +*/ diff --git a/reactos/base/applications/imagesoft/opensave.c b/reactos/base/applications/imagesoft/opensave.c index 5def9dca7da..9c16aa3ae57 100644 --- a/reactos/base/applications/imagesoft/opensave.c +++ b/reactos/base/applications/imagesoft/opensave.c @@ -1,87 +1,87 @@ -#include - -static OPENFILENAME ofn; - -/* - * Initialize file open / save structure - */ -VOID FileInitialize(HWND hwnd) -{ - ZeroMemory(&ofn, sizeof(ofn)); - ofn.lStructSize = sizeof(OPENFILENAME); - ofn.hwndOwner = hwnd; - ofn.nMaxFile = MAX_PATH; - ofn.nMaxFileTitle = MAX_PATH; - ofn.lpstrDefExt = _T("bmp"); -} - - -static BOOL -DoWriteFile(LPCTSTR pszFileName) -{ - return TRUE; -} - - -BOOL -DoOpenFile(HWND hwnd, - LPTSTR szFileName, - LPTSTR szTitleName) -{ - DWORD err; - /*static TCHAR Filter[] = _T("All image files (*.gif,*.bmp,*.jpg,*.jpeg,*.tif,*.png)\0*.gif,*.bmp,*.jpg,*.jpeg,*.tif,*.png\0") \ - _T("All files (*.*)\0*.*\0") \ - _T("Graphics Interchange format (*gif)\0*.gif\0") \ - _T("Windows Bitmap (*bmp)\0*.bmp\0") \ - _T("JPEG File Interchange Format (*jpg,*.jpeg)\0*.jpg,*.jpeg\0") \ - _T("TAG Image File Format (*tif)\0*.tif\0") \ - _T("Portable Network Graphics (*png)\0*.png\0\0");*/ - - static TCHAR Filter[] = _T("Windows Bitmap (*.bmp)\0*.bmp\0"); - - ofn.lpstrFilter = Filter; - ofn.lpstrFile = szFileName; - ofn.lpstrFileTitle = szTitleName; - ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; - - if (GetOpenFileName(&ofn)) - { - return TRUE; - } - - err = CommDlgExtendedError(); - - if (err != CDERR_GENERALCODES) - MessageBox(NULL, _T("Open file failed"), NULL, 0); - - return FALSE; -} - - - -BOOL -DoSaveFile(HWND hwnd) -{ - TCHAR szFileName[MAX_PATH] = _T(""); - static TCHAR Filter[] = _T("Graphics Interchange format (*gif)\0*.gif\0") \ - _T("Windows Bitmap (*bmp)\0*.bmp\0") \ - _T("JPEG File Interchange Format (*jpg,*.jpeg)\0*.jpg,*.jpeg\0") \ - _T("TAG Image File Format (*tif)\0*.tif\0") \ - _T("Portable Network Graphics (*png)\0*.png\0\0"); - - ofn.lpstrFilter = Filter; - ofn.lpstrFile = szFileName; - ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT; - - if (GetSaveFileName(&ofn)) - { - if (DoWriteFile(szFileName)) - return TRUE; - } - - if (CommDlgExtendedError() != CDERR_GENERALCODES) - MessageBox(NULL, _T("Save to file failed"), NULL, 0); - - return FALSE; -} - +#include + +static OPENFILENAME ofn; + +/* + * Initialize file open / save structure + */ +VOID FileInitialize(HWND hwnd) +{ + ZeroMemory(&ofn, sizeof(ofn)); + ofn.lStructSize = sizeof(OPENFILENAME); + ofn.hwndOwner = hwnd; + ofn.nMaxFile = MAX_PATH; + ofn.nMaxFileTitle = MAX_PATH; + ofn.lpstrDefExt = _T("bmp"); +} + + +static BOOL +DoWriteFile(LPCTSTR pszFileName) +{ + return TRUE; +} + + +BOOL +DoOpenFile(HWND hwnd, + LPTSTR szFileName, + LPTSTR szTitleName) +{ + DWORD err; + /*static TCHAR Filter[] = _T("All image files (*.gif,*.bmp,*.jpg,*.jpeg,*.tif,*.png)\0*.gif,*.bmp,*.jpg,*.jpeg,*.tif,*.png\0") \ + _T("All files (*.*)\0*.*\0") \ + _T("Graphics Interchange format (*gif)\0*.gif\0") \ + _T("Windows Bitmap (*bmp)\0*.bmp\0") \ + _T("JPEG File Interchange Format (*jpg,*.jpeg)\0*.jpg,*.jpeg\0") \ + _T("TAG Image File Format (*tif)\0*.tif\0") \ + _T("Portable Network Graphics (*png)\0*.png\0\0");*/ + + static TCHAR Filter[] = _T("Windows Bitmap (*.bmp)\0*.bmp\0"); + + ofn.lpstrFilter = Filter; + ofn.lpstrFile = szFileName; + ofn.lpstrFileTitle = szTitleName; + ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; + + if (GetOpenFileName(&ofn)) + { + return TRUE; + } + + err = CommDlgExtendedError(); + + if (err != CDERR_GENERALCODES) + MessageBox(NULL, _T("Open file failed"), NULL, 0); + + return FALSE; +} + + + +BOOL +DoSaveFile(HWND hwnd) +{ + TCHAR szFileName[MAX_PATH] = _T(""); + static TCHAR Filter[] = _T("Graphics Interchange format (*gif)\0*.gif\0") \ + _T("Windows Bitmap (*bmp)\0*.bmp\0") \ + _T("JPEG File Interchange Format (*jpg,*.jpeg)\0*.jpg,*.jpeg\0") \ + _T("TAG Image File Format (*tif)\0*.tif\0") \ + _T("Portable Network Graphics (*png)\0*.png\0\0"); + + ofn.lpstrFilter = Filter; + ofn.lpstrFile = szFileName; + ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT; + + if (GetSaveFileName(&ofn)) + { + if (DoWriteFile(szFileName)) + return TRUE; + } + + if (CommDlgExtendedError() != CDERR_GENERALCODES) + MessageBox(NULL, _T("Save to file failed"), NULL, 0); + + return FALSE; +} + diff --git a/reactos/base/applications/imagesoft/precomp.h b/reactos/base/applications/imagesoft/precomp.h index 21c1cb78238..281351bf50d 100644 --- a/reactos/base/applications/imagesoft/precomp.h +++ b/reactos/base/applications/imagesoft/precomp.h @@ -1,396 +1,396 @@ -#ifndef __IMAGESOFT_PRECOMP_H -#define __IMAGESOFT_PRECOMP_H - -//#define WIN32_LEAN_AND_MEAN -#include -#include /* GET_X/Y_LPARAM */ -#include -#include -#include -#include "resource.h" - -/* FIXME - add to headers !!! */ -#ifndef SB_SIMPLEID -#define SB_SIMPLEID 0xFF -#endif -#ifndef RBBS_USECHEVRON -#define RBBS_USECHEVRON 0x200 -#endif -#ifndef RBN_CHEVRONPUSHED -#define RBN_CHEVRONPUSHED (RBN_FIRST - 10) -#endif - -#ifdef _MSC_VER -#pragma warning(disable : 4100) -#endif - -#define MAX_KEY_LENGTH 256 -#define NUM_MAINTB_IMAGES 10 -#define TB_BMP_WIDTH 16 -#define TB_BMP_HEIGHT 16 - -#define TOOLS 0 -#define COLORS 1 -#define HISTORY 2 - -#define MONOCHROMEBITS 1 -#define GREYSCALEBITS 8 -#define PALLETEBITS 8 -#define TRUECOLORBITS 24 - -#define PIXELS 0 -#define CENTIMETERS 1 -#define INCHES 2 - -#ifdef _MSC_VER -#pragma warning(disable : 4100) -#endif - -/* generic definitions and forward declarations */ -struct _MAIN_WND_INFO; -struct _EDIT_WND_INFO; -struct _FLT_WND; - -typedef enum _MDI_EDITOR_TYPE { - metUnknown = 0, - metImageEditor, -} MDI_EDITOR_TYPE, *PMDI_EDITOR_TYPE; - -/* about.c */ -INT_PTR CALLBACK AboutDialogProc(HWND hDlg, - UINT message, - WPARAM wParam, - LPARAM lParam); - -/* imageprop.c */ -typedef struct _IMAGE_PROP -{ - LPTSTR lpImageName; - /* Canvas properties */ - USHORT Type; - USHORT Unit; - LONG Resolution; - /* size of drawing area */ - LONG Width; - LONG Height; -} IMAGE_PROP, *PIMAGE_PROP; - -INT_PTR CALLBACK -ImagePropDialogProc(HWND hDlg, - UINT message, - WPARAM wParam, - LPARAM lParam); - - -/* imagesoft.c */ -extern HINSTANCE hInstance; -extern HANDLE ProcessHeap; - -/* imgedwnd.c */ -typedef enum -{ - tSelect = 0, - tMove, - tLasso, - tZoom, - tMagicWand, - tBrush, - tEraser, - tPencil, - tColorPick, - tStamp, - tFill, - tLine, - tPolyline, - tRectangle, - tRoundRectangle, - tPolygon, - tElipse, -} TOOL; - -typedef struct _OPEN_IMAGE_EDIT_INFO -{ - BOOL CreateNew; - union - { - struct - { - LONG Width; - LONG Height; - } New; - struct - { - LPTSTR lpImagePath; - } Open; - }; - LPTSTR lpImageName; - USHORT Type; - LONG Resolution; -} OPEN_IMAGE_EDIT_INFO, *POPEN_IMAGE_EDIT_INFO; - -typedef struct _EDIT_WND_INFO -{ - MDI_EDITOR_TYPE MdiEditorType; /* Must be first member! */ - - HWND hSelf; - HBITMAP hBitmap; - HDC hDCMem; - struct _MAIN_WND_INFO *MainWnd; - struct _EDIT_WND_INFO *Next; - POINT ScrollPos; - USHORT Zoom; - DWORD Tool; - - POPEN_IMAGE_EDIT_INFO OpenInfo; /* Only valid during initialization */ - - /* Canvas properties */ - USHORT Type; - LONG Resolution; - /* size of drawing area */ - LONG Width; - LONG Height; - -} EDIT_WND_INFO, *PEDIT_WND_INFO; - - -BOOL CreateImageEditWindow(struct _MAIN_WND_INFO *MainWnd, - POPEN_IMAGE_EDIT_INFO OpenInfo); -VOID SetImageEditorEnvironment(PEDIT_WND_INFO Info, - BOOL Setup); -BOOL InitImageEditWindowImpl(VOID); -VOID UninitImageEditWindowImpl(VOID); - - -/* tooldock.c */ -typedef enum -{ - TOP_DOCK = 0, - LEFT_DOCK, - RIGHT_DOCK, - BOTTOM_DOCK, - NO_DOCK -} DOCK_POSITION; - -typedef struct _DOCKBAR -{ - UINT BarId; - LPCTSTR lpName; - UINT DisplayTextId; - DOCK_POSITION Position; -} DOCKBAR, *PDOCKBAR; - -struct _TOOLBAR_DOCKS; - -typedef BOOL (CALLBACK *PDOCKBAR_CREATECLIENT)(struct _TOOLBAR_DOCKS *TbDocks, - const DOCKBAR *Dockbar, - PVOID Context, - HWND hParent, - HWND *hwnd); -typedef BOOL (CALLBACK *PDOCKBAR_DESTROYCLIENT)(struct _TOOLBAR_DOCKS *TbDocks, - const DOCKBAR *Dockbar, - PVOID Context, - HWND hwnd); -typedef BOOL (CALLBACK *PDOCKBAR_INSERTBAND)(struct _TOOLBAR_DOCKS *TbDocks, - const DOCKBAR *Dockbar, - PVOID Context, - UINT *Index, - LPREBARBANDINFO rbi); -typedef VOID (CALLBACK *PDOCKBAR_DOCKBAND)(struct _TOOLBAR_DOCKS *TbDocks, - const DOCKBAR *Dockbar, - PVOID Context, - DOCK_POSITION DockFrom, - DOCK_POSITION DockTo, - LPREBARBANDINFO rbi); -typedef VOID (CALLBACK *PDOCKBAR_CHEVRONPUSHED)(struct _TOOLBAR_DOCKS *TbDocks, - const DOCKBAR *Dockbar, - PVOID Context, - HWND hwndChild, - LPNMREBARCHEVRON lpnm); - -typedef struct _DOCKBAR_ITEM_CALLBACKS -{ - PDOCKBAR_CREATECLIENT CreateClient; - PDOCKBAR_DESTROYCLIENT DestroyClient; - PDOCKBAR_INSERTBAND InsertBand; - PDOCKBAR_DOCKBAND DockBand; - PDOCKBAR_CHEVRONPUSHED ChevronPushed; -} DOCKBAR_ITEM_CALLBACKS, *PDOCKBAR_ITEM_CALLBACKS; - -typedef struct _DOCKBAR_ITEM -{ - struct _DOCKBAR_ITEM *Next; - DOCKBAR DockBar; - PVOID Context; - HWND hWndTool; - HWND hWndClient; - DOCK_POSITION PrevDock; - UINT PrevBandIndex; - const DOCKBAR_ITEM_CALLBACKS *Callbacks; -} DOCKBAR_ITEM, *PDOCKBAR_ITEM; - -typedef VOID (CALLBACK *PDOCKBAR_PARENTRESIZE)(PVOID Context, - WORD cx, - WORD cy); - -#define DOCKS_COUNT 4 -typedef struct _TOOLBAR_DOCKS -{ - HWND hParent; - PVOID Context; - HWND hRebar[DOCKS_COUNT]; - RECT rcRebar[DOCKS_COUNT]; - RECT rcClient; - PDOCKBAR_ITEM Items; - PDOCKBAR_PARENTRESIZE ParentResize; - PDOCKBAR_ITEM Dragging; - UINT DraggingBandId; - TCHAR szTempText[255]; -} TOOLBAR_DOCKS, *PTOOLBAR_DOCKS; - -VOID TbdInitializeDocks(PTOOLBAR_DOCKS TbDocks, - HWND hWndParent, - PVOID Context, - PDOCKBAR_PARENTRESIZE ParentResizeProc); -INT TbdAdjustUpdateClientRect(PTOOLBAR_DOCKS TbDocks, - PRECT rcClient); -HDWP TbdDeferDocks(HDWP hWinPosInfo, - PTOOLBAR_DOCKS TbDocks); -BOOL TbdAddToolbar(PTOOLBAR_DOCKS TbDocks, - const DOCKBAR *Dockbar, - PVOID Context, - const DOCKBAR_ITEM_CALLBACKS *DockbarCallbacks); -BOOL TbdDockBarIdFromClientWindow(PTOOLBAR_DOCKS TbDocks, - HWND hWndClient, - UINT *Id); -BOOL TbdHandleNotifications(PTOOLBAR_DOCKS TbDocks, - LPNMHDR pnmh, - LRESULT *Result); -VOID TbdHandleEnabling(PTOOLBAR_DOCKS TbDocks, - HWND hWnd, - BOOL Enable); -VOID TbdHandleActivation(PTOOLBAR_DOCKS TbDocks, - HWND hWnd, - WPARAM *wParam, - LPARAM *lParam); -VOID TbdShowFloatingToolbars(PTOOLBAR_DOCKS TbDocks, - BOOL Show); -BOOL TbdInitImpl(VOID); -VOID TbdUninitImpl(VOID); - -/* mainwnd.c */ -typedef struct _MENU_HINT -{ - WORD CmdId; - UINT HintId; -} MENU_HINT, *PMENU_HINT; - -typedef struct _MAIN_WND_INFO -{ - HWND hSelf; - HWND hMdiClient; - HWND hStatus; - int nCmdShow; - - struct _FLT_WND *fltTools; - struct _FLT_WND *fltColors; - struct _FLT_WND *fltHistory; - - TOOLBAR_DOCKS ToolDocks; - - /* Editors */ - PEDIT_WND_INFO ImageEditors; - UINT ImagesCreated; - - PVOID ActiveEditor; - - /* status flags */ - BOOL InMenuLoop : 1; -} MAIN_WND_INFO, *PMAIN_WND_INFO; - -BOOL InitMainWindowImpl(VOID); -VOID UninitMainWindowImpl(VOID); -HWND CreateMainWindow(LPCTSTR lpCaption, - int nCmdShow); -BOOL MainWndTranslateMDISysAccel(HWND hwnd, - LPMSG lpMsg); -VOID MainWndSwitchEditorContext(PMAIN_WND_INFO Info, - HWND hDeactivate, - HWND hActivate); -MDI_EDITOR_TYPE MainWndGetCurrentEditor(PMAIN_WND_INFO MainWnd, - PVOID *Info); - -/* misc.c */ -INT AllocAndLoadString(OUT LPTSTR *lpTarget, - IN HINSTANCE hInst, - IN UINT uID); - -DWORD LoadAndFormatString(IN HINSTANCE hInstance, - IN UINT uID, - OUT LPTSTR *lpTarget, - ...); - -BOOL StatusBarLoadAndFormatString(IN HWND hStatusBar, - IN INT PartId, - IN HINSTANCE hInstance, - IN UINT uID, - ...); - -BOOL StatusBarLoadString(IN HWND hStatusBar, - IN INT PartId, - IN HINSTANCE hInstance, - IN UINT uID); - -INT GetTextFromEdit(OUT LPTSTR lpString, - IN HWND hDlg, - IN UINT Res); - -VOID GetError(DWORD err); - -BOOL ToolbarDeleteControlSpace(HWND hWndToolbar, - const TBBUTTON *ptbButton); - -typedef VOID (*ToolbarChangeControlCallback)(HWND hWndToolbar, - HWND hWndControl, - BOOL Vert); -VOID ToolbarUpdateControlSpaces(HWND hWndToolbar, - ToolbarChangeControlCallback ChangeCallback); - -BOOL ToolbarInsertSpaceForControl(HWND hWndToolbar, - HWND hWndControl, - INT Index, - INT iCmd, - BOOL HideVertical); - -HIMAGELIST InitImageList(UINT NumButtons, - UINT StartResource); - -/* opensave.c */ -VOID FileInitialize(HWND hwnd); -BOOL DoOpenFile(HWND hwnd, - LPTSTR lpFileName, - LPTSTR lpName); -BOOL DoSaveFile(HWND hwnd); - -/* floattoolbar.c */ -typedef struct _FLT_WND -{ - HWND hSelf; - LPTSTR lpName; - INT x; - INT y; - INT Width; - INT Height; - BOOL bShow : 1; - BOOL bOpaque; -} FLT_WND, *PFLT_WND; - -BOOL FloatToolbarCreateToolsGui(PMAIN_WND_INFO Info); -BOOL FloatToolbarCreateColorsGui(PMAIN_WND_INFO Info); -BOOL FloatToolbarCreateHistoryGui(PMAIN_WND_INFO Info); -BOOL InitFloatWndClass(VOID); -VOID UninitFloatWndImpl(VOID); -BOOL ShowHideWindow(PFLT_WND FltInfo); - -VOID MakeFlatCombo(HWND hwndCombo); - -#endif /* __IMAGESOFT_PRECOMP_H */ +#ifndef __IMAGESOFT_PRECOMP_H +#define __IMAGESOFT_PRECOMP_H + +//#define WIN32_LEAN_AND_MEAN +#include +#include /* GET_X/Y_LPARAM */ +#include +#include +#include +#include "resource.h" + +/* FIXME - add to headers !!! */ +#ifndef SB_SIMPLEID +#define SB_SIMPLEID 0xFF +#endif +#ifndef RBBS_USECHEVRON +#define RBBS_USECHEVRON 0x200 +#endif +#ifndef RBN_CHEVRONPUSHED +#define RBN_CHEVRONPUSHED (RBN_FIRST - 10) +#endif + +#ifdef _MSC_VER +#pragma warning(disable : 4100) +#endif + +#define MAX_KEY_LENGTH 256 +#define NUM_MAINTB_IMAGES 10 +#define TB_BMP_WIDTH 16 +#define TB_BMP_HEIGHT 16 + +#define TOOLS 0 +#define COLORS 1 +#define HISTORY 2 + +#define MONOCHROMEBITS 1 +#define GREYSCALEBITS 8 +#define PALLETEBITS 8 +#define TRUECOLORBITS 24 + +#define PIXELS 0 +#define CENTIMETERS 1 +#define INCHES 2 + +#ifdef _MSC_VER +#pragma warning(disable : 4100) +#endif + +/* generic definitions and forward declarations */ +struct _MAIN_WND_INFO; +struct _EDIT_WND_INFO; +struct _FLT_WND; + +typedef enum _MDI_EDITOR_TYPE { + metUnknown = 0, + metImageEditor, +} MDI_EDITOR_TYPE, *PMDI_EDITOR_TYPE; + +/* about.c */ +INT_PTR CALLBACK AboutDialogProc(HWND hDlg, + UINT message, + WPARAM wParam, + LPARAM lParam); + +/* imageprop.c */ +typedef struct _IMAGE_PROP +{ + LPTSTR lpImageName; + /* Canvas properties */ + USHORT Type; + USHORT Unit; + LONG Resolution; + /* size of drawing area */ + LONG Width; + LONG Height; +} IMAGE_PROP, *PIMAGE_PROP; + +INT_PTR CALLBACK +ImagePropDialogProc(HWND hDlg, + UINT message, + WPARAM wParam, + LPARAM lParam); + + +/* imagesoft.c */ +extern HINSTANCE hInstance; +extern HANDLE ProcessHeap; + +/* imgedwnd.c */ +typedef enum +{ + tSelect = 0, + tMove, + tLasso, + tZoom, + tMagicWand, + tBrush, + tEraser, + tPencil, + tColorPick, + tStamp, + tFill, + tLine, + tPolyline, + tRectangle, + tRoundRectangle, + tPolygon, + tElipse, +} TOOL; + +typedef struct _OPEN_IMAGE_EDIT_INFO +{ + BOOL CreateNew; + union + { + struct + { + LONG Width; + LONG Height; + } New; + struct + { + LPTSTR lpImagePath; + } Open; + }; + LPTSTR lpImageName; + USHORT Type; + LONG Resolution; +} OPEN_IMAGE_EDIT_INFO, *POPEN_IMAGE_EDIT_INFO; + +typedef struct _EDIT_WND_INFO +{ + MDI_EDITOR_TYPE MdiEditorType; /* Must be first member! */ + + HWND hSelf; + HBITMAP hBitmap; + HDC hDCMem; + struct _MAIN_WND_INFO *MainWnd; + struct _EDIT_WND_INFO *Next; + POINT ScrollPos; + USHORT Zoom; + DWORD Tool; + + POPEN_IMAGE_EDIT_INFO OpenInfo; /* Only valid during initialization */ + + /* Canvas properties */ + USHORT Type; + LONG Resolution; + /* size of drawing area */ + LONG Width; + LONG Height; + +} EDIT_WND_INFO, *PEDIT_WND_INFO; + + +BOOL CreateImageEditWindow(struct _MAIN_WND_INFO *MainWnd, + POPEN_IMAGE_EDIT_INFO OpenInfo); +VOID SetImageEditorEnvironment(PEDIT_WND_INFO Info, + BOOL Setup); +BOOL InitImageEditWindowImpl(VOID); +VOID UninitImageEditWindowImpl(VOID); + + +/* tooldock.c */ +typedef enum +{ + TOP_DOCK = 0, + LEFT_DOCK, + RIGHT_DOCK, + BOTTOM_DOCK, + NO_DOCK +} DOCK_POSITION; + +typedef struct _DOCKBAR +{ + UINT BarId; + LPCTSTR lpName; + UINT DisplayTextId; + DOCK_POSITION Position; +} DOCKBAR, *PDOCKBAR; + +struct _TOOLBAR_DOCKS; + +typedef BOOL (CALLBACK *PDOCKBAR_CREATECLIENT)(struct _TOOLBAR_DOCKS *TbDocks, + const DOCKBAR *Dockbar, + PVOID Context, + HWND hParent, + HWND *hwnd); +typedef BOOL (CALLBACK *PDOCKBAR_DESTROYCLIENT)(struct _TOOLBAR_DOCKS *TbDocks, + const DOCKBAR *Dockbar, + PVOID Context, + HWND hwnd); +typedef BOOL (CALLBACK *PDOCKBAR_INSERTBAND)(struct _TOOLBAR_DOCKS *TbDocks, + const DOCKBAR *Dockbar, + PVOID Context, + UINT *Index, + LPREBARBANDINFO rbi); +typedef VOID (CALLBACK *PDOCKBAR_DOCKBAND)(struct _TOOLBAR_DOCKS *TbDocks, + const DOCKBAR *Dockbar, + PVOID Context, + DOCK_POSITION DockFrom, + DOCK_POSITION DockTo, + LPREBARBANDINFO rbi); +typedef VOID (CALLBACK *PDOCKBAR_CHEVRONPUSHED)(struct _TOOLBAR_DOCKS *TbDocks, + const DOCKBAR *Dockbar, + PVOID Context, + HWND hwndChild, + LPNMREBARCHEVRON lpnm); + +typedef struct _DOCKBAR_ITEM_CALLBACKS +{ + PDOCKBAR_CREATECLIENT CreateClient; + PDOCKBAR_DESTROYCLIENT DestroyClient; + PDOCKBAR_INSERTBAND InsertBand; + PDOCKBAR_DOCKBAND DockBand; + PDOCKBAR_CHEVRONPUSHED ChevronPushed; +} DOCKBAR_ITEM_CALLBACKS, *PDOCKBAR_ITEM_CALLBACKS; + +typedef struct _DOCKBAR_ITEM +{ + struct _DOCKBAR_ITEM *Next; + DOCKBAR DockBar; + PVOID Context; + HWND hWndTool; + HWND hWndClient; + DOCK_POSITION PrevDock; + UINT PrevBandIndex; + const DOCKBAR_ITEM_CALLBACKS *Callbacks; +} DOCKBAR_ITEM, *PDOCKBAR_ITEM; + +typedef VOID (CALLBACK *PDOCKBAR_PARENTRESIZE)(PVOID Context, + WORD cx, + WORD cy); + +#define DOCKS_COUNT 4 +typedef struct _TOOLBAR_DOCKS +{ + HWND hParent; + PVOID Context; + HWND hRebar[DOCKS_COUNT]; + RECT rcRebar[DOCKS_COUNT]; + RECT rcClient; + PDOCKBAR_ITEM Items; + PDOCKBAR_PARENTRESIZE ParentResize; + PDOCKBAR_ITEM Dragging; + UINT DraggingBandId; + TCHAR szTempText[255]; +} TOOLBAR_DOCKS, *PTOOLBAR_DOCKS; + +VOID TbdInitializeDocks(PTOOLBAR_DOCKS TbDocks, + HWND hWndParent, + PVOID Context, + PDOCKBAR_PARENTRESIZE ParentResizeProc); +INT TbdAdjustUpdateClientRect(PTOOLBAR_DOCKS TbDocks, + PRECT rcClient); +HDWP TbdDeferDocks(HDWP hWinPosInfo, + PTOOLBAR_DOCKS TbDocks); +BOOL TbdAddToolbar(PTOOLBAR_DOCKS TbDocks, + const DOCKBAR *Dockbar, + PVOID Context, + const DOCKBAR_ITEM_CALLBACKS *DockbarCallbacks); +BOOL TbdDockBarIdFromClientWindow(PTOOLBAR_DOCKS TbDocks, + HWND hWndClient, + UINT *Id); +BOOL TbdHandleNotifications(PTOOLBAR_DOCKS TbDocks, + LPNMHDR pnmh, + LRESULT *Result); +VOID TbdHandleEnabling(PTOOLBAR_DOCKS TbDocks, + HWND hWnd, + BOOL Enable); +VOID TbdHandleActivation(PTOOLBAR_DOCKS TbDocks, + HWND hWnd, + WPARAM *wParam, + LPARAM *lParam); +VOID TbdShowFloatingToolbars(PTOOLBAR_DOCKS TbDocks, + BOOL Show); +BOOL TbdInitImpl(VOID); +VOID TbdUninitImpl(VOID); + +/* mainwnd.c */ +typedef struct _MENU_HINT +{ + WORD CmdId; + UINT HintId; +} MENU_HINT, *PMENU_HINT; + +typedef struct _MAIN_WND_INFO +{ + HWND hSelf; + HWND hMdiClient; + HWND hStatus; + int nCmdShow; + + struct _FLT_WND *fltTools; + struct _FLT_WND *fltColors; + struct _FLT_WND *fltHistory; + + TOOLBAR_DOCKS ToolDocks; + + /* Editors */ + PEDIT_WND_INFO ImageEditors; + UINT ImagesCreated; + + PVOID ActiveEditor; + + /* status flags */ + BOOL InMenuLoop : 1; +} MAIN_WND_INFO, *PMAIN_WND_INFO; + +BOOL InitMainWindowImpl(VOID); +VOID UninitMainWindowImpl(VOID); +HWND CreateMainWindow(LPCTSTR lpCaption, + int nCmdShow); +BOOL MainWndTranslateMDISysAccel(HWND hwnd, + LPMSG lpMsg); +VOID MainWndSwitchEditorContext(PMAIN_WND_INFO Info, + HWND hDeactivate, + HWND hActivate); +MDI_EDITOR_TYPE MainWndGetCurrentEditor(PMAIN_WND_INFO MainWnd, + PVOID *Info); + +/* misc.c */ +INT AllocAndLoadString(OUT LPTSTR *lpTarget, + IN HINSTANCE hInst, + IN UINT uID); + +DWORD LoadAndFormatString(IN HINSTANCE hInstance, + IN UINT uID, + OUT LPTSTR *lpTarget, + ...); + +BOOL StatusBarLoadAndFormatString(IN HWND hStatusBar, + IN INT PartId, + IN HINSTANCE hInstance, + IN UINT uID, + ...); + +BOOL StatusBarLoadString(IN HWND hStatusBar, + IN INT PartId, + IN HINSTANCE hInstance, + IN UINT uID); + +INT GetTextFromEdit(OUT LPTSTR lpString, + IN HWND hDlg, + IN UINT Res); + +VOID GetError(DWORD err); + +BOOL ToolbarDeleteControlSpace(HWND hWndToolbar, + const TBBUTTON *ptbButton); + +typedef VOID (*ToolbarChangeControlCallback)(HWND hWndToolbar, + HWND hWndControl, + BOOL Vert); +VOID ToolbarUpdateControlSpaces(HWND hWndToolbar, + ToolbarChangeControlCallback ChangeCallback); + +BOOL ToolbarInsertSpaceForControl(HWND hWndToolbar, + HWND hWndControl, + INT Index, + INT iCmd, + BOOL HideVertical); + +HIMAGELIST InitImageList(UINT NumButtons, + UINT StartResource); + +/* opensave.c */ +VOID FileInitialize(HWND hwnd); +BOOL DoOpenFile(HWND hwnd, + LPTSTR lpFileName, + LPTSTR lpName); +BOOL DoSaveFile(HWND hwnd); + +/* floattoolbar.c */ +typedef struct _FLT_WND +{ + HWND hSelf; + LPTSTR lpName; + INT x; + INT y; + INT Width; + INT Height; + BOOL bShow : 1; + BOOL bOpaque; +} FLT_WND, *PFLT_WND; + +BOOL FloatToolbarCreateToolsGui(PMAIN_WND_INFO Info); +BOOL FloatToolbarCreateColorsGui(PMAIN_WND_INFO Info); +BOOL FloatToolbarCreateHistoryGui(PMAIN_WND_INFO Info); +BOOL InitFloatWndClass(VOID); +VOID UninitFloatWndImpl(VOID); +BOOL ShowHideWindow(PFLT_WND FltInfo); + +VOID MakeFlatCombo(HWND hwndCombo); + +#endif /* __IMAGESOFT_PRECOMP_H */ diff --git a/reactos/base/applications/imagesoft/resource.h b/reactos/base/applications/imagesoft/resource.h index c022851dd69..59aa9620046 100644 --- a/reactos/base/applications/imagesoft/resource.h +++ b/reactos/base/applications/imagesoft/resource.h @@ -1,278 +1,278 @@ -#define IDC_STATIC -1 - -/* Main Windows */ -#define IDC_TOOLBAR 10 -#define IDC_STATUSBAR 11 -#define IDC_MAIN_MDI 12 -/* these need to be kept consecutive */ -#define IDS_FLT_TOOLS 20 -#define IDS_FLT_COLORS 21 -#define IDS_FLT_HISTORY 22 - -/* Program icon */ -#define IDI_IMAGESOFTICON 50 - -/* Menus */ -#define IDR_MAINMENU 102 -#define IDR_POPUP 103 - -/* COMMANDS */ -/* main */ -#define ID_NEW 2000 -#define ID_OPEN 2001 -#define ID_CLOSE 2002 -#define ID_CLOSEALL 2003 -#define ID_SAVE 2004 -#define ID_SAVEAS 2005 -#define ID_PRINTPRE 2006 -#define ID_PRINT 2007 -#define ID_PROP 2008 -#define ID_CUT 2009 -#define ID_COPY 2010 -#define ID_PASTE 2011 -#define ID_PASTENEWIMAGE 2012 -#define ID_UNDO 2013 -#define ID_REDO 2014 -#define ID_SELALL 2015 -#define ID_EXIT 2016 -#define ID_EDITCOLOURS 2017 -#define ID_TOOLS 2018 -#define ID_COLOR 2019 -#define ID_HISTORY 2020 -#define ID_STATUSBAR 2021 -#define ID_BLANK 2022 - -#define ID_BACK 2025 -#define ID_FORWARD 2026 -#define ID_DELETE 2027 - -/* text */ -#define ID_BOLD 2030 -#define ID_ITALIC 2031 -#define ID_ULINE 2032 -#define ID_TXTLEFT 2033 -#define ID_TXTCENTER 2034 -#define ID_TXTRIGHT 2035 -#define ID_TXTFONTNAME 2036 -#define ID_TXTFONTSIZE 2037 - -/* tools */ -#define ID_CLONESTAMP 2050 -#define ID_COLORPICKER 2051 -#define ID_ECLIPSE 2052 -#define ID_ECLIPSESEL 2053 -#define ID_ERASER 2054 -#define ID_FREEFORM 2055 -#define ID_LASOO 2056 -#define ID_LINE 2057 -#define ID_MAGICWAND 2058 -#define ID_MOVE 2059 -#define ID_MOVESEL 2060 -#define ID_PAINTBRUSH 2061 -#define ID_PAINTBUCKET 2062 -#define ID_PENCIL 2063 -#define ID_RECOLORING 2064 -#define ID_RECTANGLE 2065 -#define ID_RECTSEL 2066 -#define ID_ROUNDRECT 2067 -#define ID_TEXT 2068 -#define ID_ZOOM 2069 - -#define ID_ABOUT 2100 - -#define ID_REFRESH 3000 -#define ID_HELP 3001 -#define ID_WINDOW_TILE_HORZ 3002 -#define ID_WINDOW_TILE_VERT 3003 -#define ID_WINDOW_CASCADE 3004 -#define ID_WINDOW_NEXT 3005 -#define ID_WINDOW_ARRANGE 3006 - -/* menu hints */ -#define IDS_HINT_BLANK 20000 -#define IDS_HINT_NEW 20001 -#define IDS_HINT_OPEN 20002 -#define IDS_HINT_CLOSE 21006 -#define IDS_HINT_CLOSEALL 21007 -#define IDS_HINT_SAVE 20003 -#define IDS_HINT_SAVEAS 20004 -#define IDS_HINT_PRINT 20005 -#define IDS_HINT_PRINTPRE 20006 -#define IDS_HINT_PROP 20007 -#define IDS_HINT_EXIT 20008 - -#define IDS_HINT_TOOLS 20020 -#define IDS_HINT_COLORS 20021 -#define IDS_HINT_HISTORY 20022 -#define IDS_HINT_STATUS 20023 - -#define IDS_HINT_CASCADE 21009 -#define IDS_HINT_TILE_HORZ 21010 -#define IDS_HINT_TILE_VERT 21011 -#define IDS_HINT_ARRANGE 21012 -#define IDS_HINT_NEXT 21013 - -/* system menu hints */ -#define IDS_HINT_SYS_RESTORE 21001 -#define IDS_HINT_SYS_MOVE 21002 -#define IDS_HINT_SYS_SIZE 21003 -#define IDS_HINT_SYS_MINIMIZE 21004 -#define IDS_HINT_SYS_MAXIMIZE 21005 -#define IDS_HINT_SYS_CLOSE 21006 - - -/* Toolbar button bitmaps. - * These must be numbered consecutively - * See loop in InitImageList (misc.c) - */ -#define IDB_MAINNEWICON 10000 -#define IDB_MAINOPENICON 10001 -#define IDB_MAINSAVEICON 10002 -#define IDB_MAINPRINTICON 10003 -#define IDB_MAINPRINTPREICON 10004 -#define IDB_MAINCUTICON 10005 -#define IDB_MAINCOPYICON 10006 -#define IDB_MAINPASTEICON 10007 -#define IDB_MAINUNDOICON 10008 -#define IDB_MAINREDOICON 10009 - -#define IDB_TEXTBOLD 10020 -#define IDB_TEXTITALIC 10021 -#define IDB_TEXTULINE 10022 -#define IDB_TEXTLEFT 10023 -#define IDB_TEXTCENTER 10024 -#define IDB_TEXTRIGHT 10025 - -#define IDB_TOOLSRECTSEL 10030 -#define IDB_TOOLSMOVESEL 10031 -#define IDB_TOOLSLASOO 10032 -#define IDB_TOOLSMOVE 10033 -#define IDB_TOOLSECLIPSESEL 10034 -#define IDB_TOOLSZOOM 10035 -#define IDB_TOOLSMAGICWAND 10036 -#define IDB_TOOLSTEXT 10037 -#define IDB_TOOLSPAINTBRUSH 10038 -#define IDB_TOOLSERASER 10039 -#define IDB_TOOLSPENCIL 10040 -#define IDB_TOOLSCOLORPICKER 10041 -#define IDB_TOOLSCLONESTAMP 10042 -#define IDB_TOOLSRECOLORING 10043 -#define IDB_TOOLSPAINTBUCKET 10044 -#define IDB_TOOLSLINE 10045 -#define IDB_TOOLSRECTANGLE 10046 -#define IDB_TOOLSROUNDRECT 10047 -#define IDB_TOOLSECLIPSE 10048 -#define IDB_TOOLSFREEFORM 10049 - -#define IDB_HISTBACK 10060 -#define IDB_HISTUNDO 10061 -#define IDB_HISTREDO 10062 -#define IDB_HISTFORWARD 10063 -#define IDB_HISTDELETE 10064 - -#define IDB_COLORSMORE 10080 -#define IDB_COLORSLESS 10081 - -/* TOOLBAR BITMAPS */ - -/* standard */ -#define TBICON_NEW 0 -#define TBICON_OPEN 1 -#define TBICON_SAVE 2 -#define TBICON_PRINT 3 -#define TBICON_PRINTPRE 4 -#define TBICON_CUT 5 -#define TBICON_COPY 6 -#define TBICON_PASTE 7 -#define TBICON_UNDO 8 -#define TBICON_REDO 9 -/* text */ -#define TBICON_BOLD 0 -#define TBICON_ITALIC 1 -#define TBICON_ULINE 2 -#define TBICON_TXTLEFT 3 -#define TBICON_TXTCENTER 4 -#define TBICON_TXTRIGHT 5 -/* tools */ -#define TBICON_RECTSEL 0 -#define TBICON_MOVESEL 1 -#define TBICON_LASOO 2 -#define TBICON_MOVE 3 -#define TBICON_ECLIPSESEL 4 -#define TBICON_ZOOM 5 -#define TBICON_MAGICWAND 6 -#define TBICON_TEXT 7 -#define TBICON_PAINTBRUSH 8 -#define TBICON_ERASER 9 -#define TBICON_PENCIL 10 -#define TBICON_COLORPICKER 11 -#define TBICON_CLONESTAMP 12 -#define TBICON_RECOLORING 13 -#define TBICON_PAINTBUCKET 14 -#define TBICON_LINE 15 -#define TBICON_RECTANGLE 16 -#define TBICON_ROUNDRECT 17 -#define TBICON_ECLIPSE 18 -#define TBICON_FREEFORM 19 -/* history */ -#define TBICON_BACKSM 0 -#define TBICON_UNDOSM 1 -#define TBICON_REDOSM 2 -#define TBICON_FORWARDSM 3 -#define TBICON_DELETESM 4 - - -/* tooltips */ -#define IDS_TOOLTIP_NEW 6000 -#define IDS_TOOLTIP_OPEN 6001 -#define IDS_TOOLTIP_SAVE 6002 -#define IDS_TOOLTIP_PRINTPRE 6003 -#define IDS_TOOLTIP_PRINT 6004 -#define IDS_TOOLTIP_CUT 6005 -#define IDS_TOOLTIP_COPY 6006 -#define IDS_TOOLTIP_PASTE 6007 -#define IDS_TOOLTIP_UNDO 6008 -#define IDS_TOOLTIP_REDO 6009 - -/* cursors */ -#define IDC_PAINTBRUSHCURSOR 20001 -#define IDC_PAINTBRUSHCURSORMOUSEDOWN 20002 - - -/* DIALOGS */ - -/* image property dialog */ -#define IDD_IMAGE_PROP 4000 -#define IDC_IMAGE_NAME_EDIT 4001 -#define IDC_IMAGETYPE 4003 -#define IDC_WIDTH_EDIT 4004 -#define IDC_WIDTH_STAT 4005 -#define IDC_HEIGHT_EDIT 4006 -#define IDC_HEIGHT_STAT 4007 -#define IDC_RES_EDIT 4008 -#define IDC_RES_STAT 4009 -#define IDC_UNIT 4010 -#define IDC_IMAGE_SIZE 4011 -#define IDS_IMAGE_MONOCHROME 4100 -#define IDS_IMAGE_GREYSCALE 4101 -#define IDS_IMAGE_PALETTE 4102 -#define IDS_IMAGE_TRUECOLOR 4103 -#define IDS_UNIT_CM 4104 -#define IDS_UNIT_INCHES 4105 -#define IDS_UNIT_PIXELS 4106 -#define IDS_UNIT_DOTSCM 4107 -#define IDS_UNIT_DPI 4108 -#define IDS_UNIT_MB 4109 -#define IDS_UNIT_KB 4110 - -/* about box info */ -#define IDD_ABOUTBOX 4200 -#define IDC_LICENSE_EDIT 4201 -#define IDS_APPNAME 4202 -#define IDS_VERSION 4203 -#define IDS_LICENSE 4204 -#define IDS_READY 4205 -#define IDS_TOOLBAR_STANDARD 4206 -#define IDS_TOOLBAR_TEST 4207 -#define IDS_TOOLBAR_TEXT 4208 -#define IDS_IMAGE_NAME 4209 +#define IDC_STATIC -1 + +/* Main Windows */ +#define IDC_TOOLBAR 10 +#define IDC_STATUSBAR 11 +#define IDC_MAIN_MDI 12 +/* these need to be kept consecutive */ +#define IDS_FLT_TOOLS 20 +#define IDS_FLT_COLORS 21 +#define IDS_FLT_HISTORY 22 + +/* Program icon */ +#define IDI_IMAGESOFTICON 50 + +/* Menus */ +#define IDR_MAINMENU 102 +#define IDR_POPUP 103 + +/* COMMANDS */ +/* main */ +#define ID_NEW 2000 +#define ID_OPEN 2001 +#define ID_CLOSE 2002 +#define ID_CLOSEALL 2003 +#define ID_SAVE 2004 +#define ID_SAVEAS 2005 +#define ID_PRINTPRE 2006 +#define ID_PRINT 2007 +#define ID_PROP 2008 +#define ID_CUT 2009 +#define ID_COPY 2010 +#define ID_PASTE 2011 +#define ID_PASTENEWIMAGE 2012 +#define ID_UNDO 2013 +#define ID_REDO 2014 +#define ID_SELALL 2015 +#define ID_EXIT 2016 +#define ID_EDITCOLOURS 2017 +#define ID_TOOLS 2018 +#define ID_COLOR 2019 +#define ID_HISTORY 2020 +#define ID_STATUSBAR 2021 +#define ID_BLANK 2022 + +#define ID_BACK 2025 +#define ID_FORWARD 2026 +#define ID_DELETE 2027 + +/* text */ +#define ID_BOLD 2030 +#define ID_ITALIC 2031 +#define ID_ULINE 2032 +#define ID_TXTLEFT 2033 +#define ID_TXTCENTER 2034 +#define ID_TXTRIGHT 2035 +#define ID_TXTFONTNAME 2036 +#define ID_TXTFONTSIZE 2037 + +/* tools */ +#define ID_CLONESTAMP 2050 +#define ID_COLORPICKER 2051 +#define ID_ECLIPSE 2052 +#define ID_ECLIPSESEL 2053 +#define ID_ERASER 2054 +#define ID_FREEFORM 2055 +#define ID_LASOO 2056 +#define ID_LINE 2057 +#define ID_MAGICWAND 2058 +#define ID_MOVE 2059 +#define ID_MOVESEL 2060 +#define ID_PAINTBRUSH 2061 +#define ID_PAINTBUCKET 2062 +#define ID_PENCIL 2063 +#define ID_RECOLORING 2064 +#define ID_RECTANGLE 2065 +#define ID_RECTSEL 2066 +#define ID_ROUNDRECT 2067 +#define ID_TEXT 2068 +#define ID_ZOOM 2069 + +#define ID_ABOUT 2100 + +#define ID_REFRESH 3000 +#define ID_HELP 3001 +#define ID_WINDOW_TILE_HORZ 3002 +#define ID_WINDOW_TILE_VERT 3003 +#define ID_WINDOW_CASCADE 3004 +#define ID_WINDOW_NEXT 3005 +#define ID_WINDOW_ARRANGE 3006 + +/* menu hints */ +#define IDS_HINT_BLANK 20000 +#define IDS_HINT_NEW 20001 +#define IDS_HINT_OPEN 20002 +#define IDS_HINT_CLOSE 21006 +#define IDS_HINT_CLOSEALL 21007 +#define IDS_HINT_SAVE 20003 +#define IDS_HINT_SAVEAS 20004 +#define IDS_HINT_PRINT 20005 +#define IDS_HINT_PRINTPRE 20006 +#define IDS_HINT_PROP 20007 +#define IDS_HINT_EXIT 20008 + +#define IDS_HINT_TOOLS 20020 +#define IDS_HINT_COLORS 20021 +#define IDS_HINT_HISTORY 20022 +#define IDS_HINT_STATUS 20023 + +#define IDS_HINT_CASCADE 21009 +#define IDS_HINT_TILE_HORZ 21010 +#define IDS_HINT_TILE_VERT 21011 +#define IDS_HINT_ARRANGE 21012 +#define IDS_HINT_NEXT 21013 + +/* system menu hints */ +#define IDS_HINT_SYS_RESTORE 21001 +#define IDS_HINT_SYS_MOVE 21002 +#define IDS_HINT_SYS_SIZE 21003 +#define IDS_HINT_SYS_MINIMIZE 21004 +#define IDS_HINT_SYS_MAXIMIZE 21005 +#define IDS_HINT_SYS_CLOSE 21006 + + +/* Toolbar button bitmaps. + * These must be numbered consecutively + * See loop in InitImageList (misc.c) + */ +#define IDB_MAINNEWICON 10000 +#define IDB_MAINOPENICON 10001 +#define IDB_MAINSAVEICON 10002 +#define IDB_MAINPRINTICON 10003 +#define IDB_MAINPRINTPREICON 10004 +#define IDB_MAINCUTICON 10005 +#define IDB_MAINCOPYICON 10006 +#define IDB_MAINPASTEICON 10007 +#define IDB_MAINUNDOICON 10008 +#define IDB_MAINREDOICON 10009 + +#define IDB_TEXTBOLD 10020 +#define IDB_TEXTITALIC 10021 +#define IDB_TEXTULINE 10022 +#define IDB_TEXTLEFT 10023 +#define IDB_TEXTCENTER 10024 +#define IDB_TEXTRIGHT 10025 + +#define IDB_TOOLSRECTSEL 10030 +#define IDB_TOOLSMOVESEL 10031 +#define IDB_TOOLSLASOO 10032 +#define IDB_TOOLSMOVE 10033 +#define IDB_TOOLSECLIPSESEL 10034 +#define IDB_TOOLSZOOM 10035 +#define IDB_TOOLSMAGICWAND 10036 +#define IDB_TOOLSTEXT 10037 +#define IDB_TOOLSPAINTBRUSH 10038 +#define IDB_TOOLSERASER 10039 +#define IDB_TOOLSPENCIL 10040 +#define IDB_TOOLSCOLORPICKER 10041 +#define IDB_TOOLSCLONESTAMP 10042 +#define IDB_TOOLSRECOLORING 10043 +#define IDB_TOOLSPAINTBUCKET 10044 +#define IDB_TOOLSLINE 10045 +#define IDB_TOOLSRECTANGLE 10046 +#define IDB_TOOLSROUNDRECT 10047 +#define IDB_TOOLSECLIPSE 10048 +#define IDB_TOOLSFREEFORM 10049 + +#define IDB_HISTBACK 10060 +#define IDB_HISTUNDO 10061 +#define IDB_HISTREDO 10062 +#define IDB_HISTFORWARD 10063 +#define IDB_HISTDELETE 10064 + +#define IDB_COLORSMORE 10080 +#define IDB_COLORSLESS 10081 + +/* TOOLBAR BITMAPS */ + +/* standard */ +#define TBICON_NEW 0 +#define TBICON_OPEN 1 +#define TBICON_SAVE 2 +#define TBICON_PRINT 3 +#define TBICON_PRINTPRE 4 +#define TBICON_CUT 5 +#define TBICON_COPY 6 +#define TBICON_PASTE 7 +#define TBICON_UNDO 8 +#define TBICON_REDO 9 +/* text */ +#define TBICON_BOLD 0 +#define TBICON_ITALIC 1 +#define TBICON_ULINE 2 +#define TBICON_TXTLEFT 3 +#define TBICON_TXTCENTER 4 +#define TBICON_TXTRIGHT 5 +/* tools */ +#define TBICON_RECTSEL 0 +#define TBICON_MOVESEL 1 +#define TBICON_LASOO 2 +#define TBICON_MOVE 3 +#define TBICON_ECLIPSESEL 4 +#define TBICON_ZOOM 5 +#define TBICON_MAGICWAND 6 +#define TBICON_TEXT 7 +#define TBICON_PAINTBRUSH 8 +#define TBICON_ERASER 9 +#define TBICON_PENCIL 10 +#define TBICON_COLORPICKER 11 +#define TBICON_CLONESTAMP 12 +#define TBICON_RECOLORING 13 +#define TBICON_PAINTBUCKET 14 +#define TBICON_LINE 15 +#define TBICON_RECTANGLE 16 +#define TBICON_ROUNDRECT 17 +#define TBICON_ECLIPSE 18 +#define TBICON_FREEFORM 19 +/* history */ +#define TBICON_BACKSM 0 +#define TBICON_UNDOSM 1 +#define TBICON_REDOSM 2 +#define TBICON_FORWARDSM 3 +#define TBICON_DELETESM 4 + + +/* tooltips */ +#define IDS_TOOLTIP_NEW 6000 +#define IDS_TOOLTIP_OPEN 6001 +#define IDS_TOOLTIP_SAVE 6002 +#define IDS_TOOLTIP_PRINTPRE 6003 +#define IDS_TOOLTIP_PRINT 6004 +#define IDS_TOOLTIP_CUT 6005 +#define IDS_TOOLTIP_COPY 6006 +#define IDS_TOOLTIP_PASTE 6007 +#define IDS_TOOLTIP_UNDO 6008 +#define IDS_TOOLTIP_REDO 6009 + +/* cursors */ +#define IDC_PAINTBRUSHCURSOR 20001 +#define IDC_PAINTBRUSHCURSORMOUSEDOWN 20002 + + +/* DIALOGS */ + +/* image property dialog */ +#define IDD_IMAGE_PROP 4000 +#define IDC_IMAGE_NAME_EDIT 4001 +#define IDC_IMAGETYPE 4003 +#define IDC_WIDTH_EDIT 4004 +#define IDC_WIDTH_STAT 4005 +#define IDC_HEIGHT_EDIT 4006 +#define IDC_HEIGHT_STAT 4007 +#define IDC_RES_EDIT 4008 +#define IDC_RES_STAT 4009 +#define IDC_UNIT 4010 +#define IDC_IMAGE_SIZE 4011 +#define IDS_IMAGE_MONOCHROME 4100 +#define IDS_IMAGE_GREYSCALE 4101 +#define IDS_IMAGE_PALETTE 4102 +#define IDS_IMAGE_TRUECOLOR 4103 +#define IDS_UNIT_CM 4104 +#define IDS_UNIT_INCHES 4105 +#define IDS_UNIT_PIXELS 4106 +#define IDS_UNIT_DOTSCM 4107 +#define IDS_UNIT_DPI 4108 +#define IDS_UNIT_MB 4109 +#define IDS_UNIT_KB 4110 + +/* about box info */ +#define IDD_ABOUTBOX 4200 +#define IDC_LICENSE_EDIT 4201 +#define IDS_APPNAME 4202 +#define IDS_VERSION 4203 +#define IDS_LICENSE 4204 +#define IDS_READY 4205 +#define IDS_TOOLBAR_STANDARD 4206 +#define IDS_TOOLBAR_TEST 4207 +#define IDS_TOOLBAR_TEXT 4208 +#define IDS_IMAGE_NAME 4209 diff --git a/reactos/base/applications/imagesoft/tooldock.c b/reactos/base/applications/imagesoft/tooldock.c index 43798860dd8..3afffe5de97 100644 --- a/reactos/base/applications/imagesoft/tooldock.c +++ b/reactos/base/applications/imagesoft/tooldock.c @@ -1,1140 +1,1140 @@ -#include - -static const TCHAR szToolDockWndClass[] = TEXT("ImageSoftToolDockWndClass"); - -typedef struct _TOOLDOCKWND_INIT -{ - PTOOLBAR_DOCKS TbDocks; - PDOCKBAR_ITEM Item; -} TOOLDOCKWND_INIT, *PTOOLDOCKWND_INIT; - -static UINT -TbdCalculateInsertIndex(PTOOLBAR_DOCKS TbDocks, - DOCK_POSITION Position, - POINT pt) -{ - RECT rcRebar; - UINT Ret = 0; - - GetWindowRect(TbDocks->hRebar[Position], - &rcRebar); - - switch (Position) - { - case TOP_DOCK: - case BOTTOM_DOCK: - if (pt.y > rcRebar.top + ((rcRebar.bottom - rcRebar.top) / 2)) - Ret = (UINT)-1; - break; - - case LEFT_DOCK: - case RIGHT_DOCK: - if (pt.x > rcRebar.left + ((rcRebar.right - rcRebar.left) / 2)) - Ret = (UINT)-1; - break; - - default: - break; - } - - return Ret; -} - -INT -TbdAdjustUpdateClientRect(PTOOLBAR_DOCKS TbDocks, - PRECT rcClient) -{ - INT i, DocksVisible = 0; - - for (i = 0; i < DOCKS_COUNT; i++) - { - if (TbDocks->hRebar[i] != NULL) - { - DocksVisible++; - } - } - - if (DocksVisible != 0) - { - rcClient->top += TbDocks->rcRebar[TOP_DOCK].bottom; - rcClient->left += TbDocks->rcRebar[LEFT_DOCK].right; - rcClient->right -= TbDocks->rcRebar[RIGHT_DOCK].right; - rcClient->bottom -= TbDocks->rcRebar[BOTTOM_DOCK].bottom; - } - - TbDocks->rcClient = *rcClient; - - return DocksVisible; -} - -HDWP -TbdDeferDocks(HDWP hWinPosInfo, - PTOOLBAR_DOCKS TbDocks) -{ - LONG cx, cy; - HDWP hRet = hWinPosInfo; - - cx = TbDocks->rcClient.right - TbDocks->rcClient.left; - cy = TbDocks->rcClient.bottom - TbDocks->rcClient.top; - - /* Top dock */ - if (TbDocks->hRebar[TOP_DOCK] != NULL) - { - hRet = DeferWindowPos(hRet, - TbDocks->hRebar[TOP_DOCK], - NULL, - TbDocks->rcClient.left - TbDocks->rcRebar[LEFT_DOCK].right, - TbDocks->rcClient.top - TbDocks->rcRebar[TOP_DOCK].bottom, - cx + TbDocks->rcRebar[LEFT_DOCK].right + TbDocks->rcRebar[RIGHT_DOCK].right, - TbDocks->rcRebar[TOP_DOCK].bottom, - SWP_NOZORDER); - if (hRet == NULL) - return NULL; - } - - /* Left dock */ - if (TbDocks->hRebar[LEFT_DOCK] != NULL) - { - hRet = DeferWindowPos(hRet, - TbDocks->hRebar[LEFT_DOCK], - NULL, - TbDocks->rcClient.left - TbDocks->rcRebar[LEFT_DOCK].right, - TbDocks->rcClient.top, - TbDocks->rcRebar[LEFT_DOCK].right, - cy, - SWP_NOZORDER); - if (hRet == NULL) - return NULL; - } - - /* Right dock */ - if (TbDocks->hRebar[RIGHT_DOCK] != NULL) - { - hRet = DeferWindowPos(hRet, - TbDocks->hRebar[RIGHT_DOCK], - NULL, - TbDocks->rcClient.right, - TbDocks->rcClient.top, - TbDocks->rcRebar[RIGHT_DOCK].right, - cy, - SWP_NOZORDER); - if (hRet == NULL) - return NULL; - } - - /* Bottom dock */ - if (TbDocks->hRebar[BOTTOM_DOCK] != NULL) - { - hRet = DeferWindowPos(hRet, - TbDocks->hRebar[BOTTOM_DOCK], - NULL, - TbDocks->rcClient.left - TbDocks->rcRebar[LEFT_DOCK].right, - TbDocks->rcClient.bottom, - cx + TbDocks->rcRebar[LEFT_DOCK].right + TbDocks->rcRebar[RIGHT_DOCK].right, - TbDocks->rcRebar[BOTTOM_DOCK].bottom, - SWP_NOZORDER); - if (hRet == NULL) - return NULL; - } - - return hRet; -} - -static PDOCKBAR_ITEM -TbnDockbarItemFromBandId(PTOOLBAR_DOCKS TbDocks, - DOCK_POSITION Position, - UINT uBand) -{ - REBARBANDINFO rbi = {0}; - - rbi.cbSize = sizeof(rbi); - rbi.fMask = RBBIM_LPARAM; - - if (SendMessage(TbDocks->hRebar[Position], - RB_GETBANDINFO, - (WPARAM)uBand, - (LPARAM)&rbi)) - { - return (PDOCKBAR_ITEM)rbi.lParam; - } - - return NULL; -} - -static VOID -TbnRebarChangeSize(PTOOLBAR_DOCKS TbDocks, - DOCK_POSITION Position) -{ - LONG cRebar; - - TbDocks->rcRebar[Position].left = 0; - TbDocks->rcRebar[Position].top = 0; - - cRebar = (LONG)SendMessage(TbDocks->hRebar[Position], - RB_GETBARHEIGHT, - 0, - 0); - - switch (Position) - { - case TOP_DOCK: - case BOTTOM_DOCK: - TbDocks->rcRebar[Position].bottom = cRebar; - break; - - case LEFT_DOCK: - case RIGHT_DOCK: - TbDocks->rcRebar[Position].right = cRebar; - break; - - default: - break; - } - - if (TbDocks->ParentResize != NULL) - { - RECT rcClient = {0}; - - GetClientRect(TbDocks->hParent, - &rcClient); - - TbDocks->ParentResize(TbDocks->Context, - rcClient.right - rcClient.left, - rcClient.bottom - rcClient.top); - } -} - -static VOID -TbnRebarChevronPushed(PTOOLBAR_DOCKS TbDocks, - DOCK_POSITION Position, - LPNMREBARCHEVRON lpnm) -{ - PDOCKBAR_ITEM Item; - - Item = TbnDockbarItemFromBandId(TbDocks, - Position, - lpnm->uBand); - - if (Item != NULL && Item->Callbacks->ChevronPushed) - { - Item->Callbacks->ChevronPushed(TbDocks, - &Item->DockBar, - Item->Context, - Item->hWndClient, - lpnm); - } -} - -static LRESULT -TbnRebarBeginDrag(PTOOLBAR_DOCKS TbDocks, - DOCK_POSITION Position, - LPNMREBAR lpnmrb) -{ - PDOCKBAR_ITEM Item; - - Item = TbnDockbarItemFromBandId(TbDocks, - Position, - lpnmrb->uBand); - - if (Item != NULL) - { - TbDocks->Dragging = Item; - TbDocks->DraggingBandId = lpnmrb->wID; - return FALSE; - } - - return TRUE; -} - -static VOID -TbnRebarEndDrag(PTOOLBAR_DOCKS TbDocks, - DOCK_POSITION Position, - LPNMREBAR lpnmrb) -{ - PDOCKBAR_ITEM Item; - - Item = TbnDockbarItemFromBandId(TbDocks, - Position, - lpnmrb->uBand); - - if (Item != NULL) - { - /* Nothing to do */ - } -} - -BOOL -TbdDockBarIdFromClientWindow(PTOOLBAR_DOCKS TbDocks, - HWND hWndClient, - UINT *Id) -{ - PDOCKBAR_ITEM Item; - BOOL Ret = FALSE; - - Item = TbDocks->Items; - while (Item != NULL) - { - if (Item->hWndClient == hWndClient) - { - *Id = Item->DockBar.BarId; - Ret = TRUE; - break; - } - - Item = Item->Next; - } - - return Ret; -} - -BOOL -TbdHandleNotifications(PTOOLBAR_DOCKS TbDocks, - LPNMHDR pnmh, - LRESULT *Result) -{ - BOOL Handled = FALSE; - - if (pnmh->hwndFrom != NULL) - { - DOCK_POSITION Position; - - for (Position = TOP_DOCK; Position < NO_DOCK; Position++) - { - if (pnmh->hwndFrom == TbDocks->hRebar[Position]) - { - switch (pnmh->code) - { - case RBN_HEIGHTCHANGE: - { - TbnRebarChangeSize(TbDocks, - Position); - break; - } - - case RBN_BEGINDRAG: - { - *Result = TbnRebarBeginDrag(TbDocks, - Position, - (LPNMREBAR)pnmh); - break; - } - - case RBN_ENDDRAG: - { - TbnRebarEndDrag(TbDocks, - Position, - (LPNMREBAR)pnmh); - break; - } - - case RBN_CHEVRONPUSHED: - { - TbnRebarChevronPushed(TbDocks, - Position, - (LPNMREBARCHEVRON)pnmh); - break; - } - } - - Handled = TRUE; - break; - } - } - } - - return Handled; -} - -static BOOL -TbdCreateToolbarWnd(PTOOLBAR_DOCKS TbDocks, - PDOCKBAR_ITEM Item, - DOCK_POSITION PrevPosition, - UINT PrevBandIndex, - LPREBARBANDINFO rbi, - POINT pt, - HWND hRebar, - UINT uBand, - BOOL Drag) -{ - LPCTSTR lpCaption = NULL; - TOOLDOCKWND_INIT Init; - HWND hToolbar; - - Init.TbDocks = TbDocks; - Init.Item = Item; - - if (rbi->fMask & RBBIM_TEXT) - { - lpCaption = rbi->lpText; - } - - Item->Callbacks->DockBand(TbDocks, - &Item->DockBar, - Item->Context, - PrevPosition, - NO_DOCK, - rbi); - - if (rbi->fMask & RBBIM_CHILD) - Item->hWndClient = rbi->hwndChild; - else - Item->hWndClient = NULL; - - - if ((rbi->fMask & (RBBIM_CHILDSIZE | RBBIM_SIZE)) == (RBBIM_CHILDSIZE | RBBIM_SIZE)) - { - RECT rcWnd; - static const DWORD dwStyle = WS_POPUPWINDOW | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_DLGFRAME; - static const DWORD dwExStyle = WS_EX_TOOLWINDOW; - - rcWnd.left = pt.x - GetSystemMetrics(SM_CXFIXEDFRAME) - (GetSystemMetrics(SM_CYSMCAPTION) / 2); - rcWnd.top = pt.y + GetSystemMetrics(SM_CYFIXEDFRAME) + (GetSystemMetrics(SM_CYSMCAPTION) / 2); - rcWnd.right = rcWnd.left + rbi->cx; - rcWnd.bottom = rcWnd.top + rbi->cyMinChild; - - if (AdjustWindowRectEx(&rcWnd, - dwStyle, - FALSE, - dwExStyle)) - { - hToolbar = CreateWindowEx(dwExStyle, - szToolDockWndClass, - lpCaption, - dwStyle, - rcWnd.left, - rcWnd.top, - rcWnd.right - rcWnd.left, - rcWnd.bottom - rcWnd.top, - TbDocks->hParent, - NULL, - hInstance, - &Init); - if (hToolbar != NULL) - { - RECT rcClient; - - if (uBand != (UINT)-1) - { - /* delete the band before showing the client window, - otherwise deleting the band will cause the client - window to be hidden, regardless of whether the band - was hidden before being deleted or not */ - SendMessage(hRebar, - RB_DELETEBAND, - (WPARAM)uBand, - 0); - } - - if (Item->hWndClient != NULL) - { - GetClientRect(hToolbar, - &rcClient); - - SetParent(Item->hWndClient, - hToolbar); - - SetWindowPos(Item->hWndClient, - NULL, - 0, - 0, - rcClient.right, - rcClient.bottom, - SWP_NOZORDER); - - SetWindowPos(Item->hWndClient, - HWND_TOP, - 0, - 0, - 0, - 0, - SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW); - } - - SetWindowPos(hToolbar, - HWND_TOP, - 0, - 0, - 0, - 0, - SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW); - - if (Drag) - { - SetCursor(LoadCursor(NULL, - MAKEINTRESOURCE(IDC_ARROW))); - SendMessage(hToolbar, - WM_NCLBUTTONDOWN, - HTCAPTION, - MAKELPARAM(pt.x, - pt.y)); - } - - return TRUE; - } - } - } - - return FALSE; -} - -static BOOL -TdbInsertToolbar(PTOOLBAR_DOCKS TbDocks, - PDOCKBAR_ITEM Item, - DOCK_POSITION Position) -{ - LPTSTR lpCaption = NULL; - REBARBANDINFO rbi = {0}; - BOOL Ret = FALSE; - - rbi.cbSize = sizeof(rbi); - rbi.fMask = RBBIM_ID | RBBIM_STYLE | RBBIM_LPARAM; - rbi.wID = Item->DockBar.BarId; - rbi.fStyle = RBBS_GRIPPERALWAYS; - rbi.lParam = (LPARAM)Item; - - if (Item->DockBar.DisplayTextId != 0) - { - if (AllocAndLoadString(&lpCaption, - hInstance, - Item->DockBar.DisplayTextId)) - { - rbi.fMask |= RBBIM_TEXT; - rbi.lpText = lpCaption; - } - } - - if (Item->hWndClient != NULL) - { - rbi.fMask |= RBBIM_CHILD; - rbi.hwndChild = Item->hWndClient; - } - - switch (Item->DockBar.Position) - { - case NO_DOCK: - { - POINT pt = {0}; - - /* FIXME - calculate size */ - Ret = TbdCreateToolbarWnd(TbDocks, - Item, - Item->DockBar.Position, - (UINT)-1, - &rbi, - pt, - NULL, - (UINT)-1, - FALSE); - break; - } - - default: - { - UINT Index = -1; - BOOL AddBand = TRUE; - - if (Item->Callbacks->InsertBand != NULL) - { - AddBand = Item->Callbacks->InsertBand(TbDocks, - &Item->DockBar, - Item->Context, - &Index, - &rbi); - } - - if (AddBand) - { - Item->Callbacks->DockBand(TbDocks, - &Item->DockBar, - Item->Context, - NO_DOCK, - Item->DockBar.Position, - &rbi); - - if (rbi.fMask & RBBIM_CHILD) - Item->hWndClient = rbi.hwndChild; - else - Item->hWndClient = NULL; - - Ret = SendMessage(TbDocks->hRebar[Position], - RB_INSERTBAND, - (WPARAM)Index, - (LPARAM)&rbi) != 0; - if (Ret) - { - Item->PrevDock = Position; - Item->PrevBandIndex = (UINT)SendMessage(TbDocks->hRebar[Position], - RB_IDTOINDEX, - (WPARAM)Item->DockBar.BarId, - 0); - } - } - - break; - } - } - - if (lpCaption != NULL) - { - LocalFree((HLOCAL)lpCaption); - } - - return Ret; -} - -BOOL -TbdAddToolbar(PTOOLBAR_DOCKS TbDocks, - const DOCKBAR *Dockbar, - PVOID Context, - const DOCKBAR_ITEM_CALLBACKS *Callbacks) -{ - PDOCKBAR_ITEM Item; - HWND hRebar; - - hRebar = TbDocks->hRebar[Dockbar->Position]; - if (hRebar != NULL) - { - Item = HeapAlloc(ProcessHeap, - 0, - sizeof(DOCKBAR_ITEM)); - if (Item != NULL) - { - /* Initialize the item */ - Item->DockBar = *Dockbar; - Item->Context = Context; - Item->hWndTool = NULL; - Item->PrevDock = Dockbar->Position; - - Item->Callbacks = Callbacks; - - /* Create the client control */ - if (Callbacks->CreateClient != NULL && - !Callbacks->CreateClient(TbDocks, - &Item->DockBar, - Context, - hRebar, - &Item->hWndClient)) - { - HeapFree(ProcessHeap, - 0, - Item); - - return FALSE; - } - - /* Insert the item into the list */ - Item->Next = TbDocks->Items; - TbDocks->Items = Item; - - return TdbInsertToolbar(TbDocks, - Item, - Dockbar->Position); - } - } - - return FALSE; -} - -#define GWLP_TBDOCKS 0 -#define GWLP_DOCKITEM (GWLP_TBDOCKS + sizeof(PTOOLBAR_DOCKS)) -#define TD_EXTRA_BYTES (GWLP_DOCKITEM + sizeof(PDOCKBAR_ITEM)) - -static LRESULT CALLBACK -ToolDockWndProc(HWND hwnd, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) -{ - PTOOLBAR_DOCKS TbDocks; - PDOCKBAR_ITEM Item; - LRESULT Ret = 0; - - /* Get the window context */ - TbDocks = (PTOOLBAR_DOCKS)GetWindowLongPtr(hwnd, - GWLP_TBDOCKS); - Item = (PDOCKBAR_ITEM)GetWindowLongPtr(hwnd, - GWLP_DOCKITEM); - - if ((TbDocks == NULL || Item == NULL) && uMsg != WM_CREATE) - { - goto HandleDefaultMessage; - } - - switch (uMsg) - { - case WM_NCACTIVATE: - { - TbdHandleActivation(TbDocks, - hwnd, - &wParam, - &lParam); - goto HandleDefaultMessage; - } - - case WM_CREATE: - { - TbDocks = ((PTOOLDOCKWND_INIT)(((LPCREATESTRUCT)lParam)->lpCreateParams))->TbDocks; - Item = ((PTOOLDOCKWND_INIT)(((LPCREATESTRUCT)lParam)->lpCreateParams))->Item; - Item->hWndTool = hwnd; - - SetWindowLongPtr(hwnd, - GWLP_TBDOCKS, - (LONG_PTR)TbDocks); - SetWindowLongPtr(hwnd, - GWLP_DOCKITEM, - (LONG_PTR)Item); - - Ret = TRUE; - break; - } - - case WM_DESTROY: - { - Item->hWndTool = NULL; - - SetWindowLongPtr(hwnd, - GWLP_USERDATA, - 0); - SetWindowLongPtr(hwnd, - GWLP_DOCKITEM, - 0); - break; - } - - default: - { -HandleDefaultMessage: - Ret = DefWindowProc(hwnd, - uMsg, - wParam, - lParam); - break; - } - } - - return Ret; -} - -static LRESULT CALLBACK -RebarSubclassProc(HWND hWnd, - UINT uMsg, - WPARAM wParam, - LPARAM lParam, - UINT_PTR uIdSubclass, - DWORD_PTR dwRefData) -{ - LRESULT Ret; - - Ret = DefSubclassProc(hWnd, - uMsg, - wParam, - lParam); - - if (uMsg == WM_MOUSEMOVE && (wParam & MK_LBUTTON)) - { - DOCK_POSITION Position, DragTo = NO_DOCK; - RECT rcClient; - POINT pt; - PTOOLBAR_DOCKS TbDocks = (PTOOLBAR_DOCKS)dwRefData; - SIZE szTearOff; - - szTearOff.cx = GetSystemMetrics(SM_CXCURSOR); - szTearOff.cy = GetSystemMetrics(SM_CYCURSOR); - - /* - * Check if we're dragging and if it's time to remove the band - */ - if (TbDocks->Dragging != NULL && GetCapture() == hWnd) - { - GetClientRect(hWnd, - &rcClient); - InflateRect(&rcClient, - szTearOff.cx, - szTearOff.cy); - - pt.x = GET_X_LPARAM(lParam); - pt.y = GET_Y_LPARAM(lParam); - - if (!PtInRect(&rcClient, - pt)) - { - REBARBANDINFO rbi; - UINT uBand; - RECT rc; - - /* Save all rebar band information, don't query RBBIM_HEADERSIZE because it - seems to cause problems with toolbars*/ - rbi.cbSize = sizeof(rbi); - rbi.fMask = RBBIM_BACKGROUND | RBBIM_CHILD | RBBIM_CHILDSIZE | RBBIM_COLORS | - RBBIM_IDEALSIZE | RBBIM_ID | RBBIM_IMAGE | RBBIM_LPARAM | RBBIM_SIZE | - RBBIM_STYLE | RBBIM_TEXT; - rbi.lpText = TbDocks->szTempText; - rbi.cch = sizeof(TbDocks->szTempText); - - uBand = (UINT)SendMessage(hWnd, - RB_IDTOINDEX, - (WPARAM)TbDocks->DraggingBandId, - 0); - - if (uBand != (UINT)-1 && - SendMessage(hWnd, - RB_GETBANDINFO, - (WPARAM)uBand, - (LPARAM)&rbi)) - { - MapWindowPoints(hWnd, - HWND_DESKTOP, - &pt, - 1); - - /* Check if the user is trying to drag it into another dock */ - for (Position = TOP_DOCK; Position < NO_DOCK; Position++) - { - if (TbDocks->hRebar[Position] != NULL && - TbDocks->hRebar[Position] != hWnd && - GetWindowRect(TbDocks->hRebar[Position], - &rc)) - { - InflateRect(&rc, - szTearOff.cx, - szTearOff.cy); - - if (PtInRect(&rc, - pt)) - { - DragTo = Position; - break; - } - } - } - - /* Get the current dock */ - for (Position = TOP_DOCK; Position < NO_DOCK; Position++) - { - if (TbDocks->hRebar[Position] == hWnd) - { - break; - } - } - - ReleaseCapture(); - - if (SendMessage(hWnd, - RB_SHOWBAND, - (WPARAM)uBand, - FALSE)) - { - /* Change the parent to the new rebar control */ - if (TbDocks->Dragging->hWndClient != NULL) - { - SetWindowPos(TbDocks->Dragging->hWndClient, - NULL, - 0, - 0, - 0, - 0, - SWP_HIDEWINDOW | SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER); - - SetParent(TbDocks->Dragging->hWndClient, - TbDocks->hRebar[DragTo]); - - SetWindowPos(TbDocks->Dragging->hWndClient, - NULL, - 0, - 0, - 0, - 0, - SWP_NOSIZE | SWP_NOZORDER); - } - - if (DragTo == NO_DOCK) - { - if (!TbdCreateToolbarWnd(TbDocks, - TbDocks->Dragging, - Position, - uBand, - &rbi, - pt, - hWnd, - uBand, - TRUE)) - { - goto MoveFailed; - } - } - else - { - BOOL Moved = FALSE; - - /* Remove the band from the current rebar control */ - if (SendMessage(hWnd, - RB_DELETEBAND, - (WPARAM)uBand, - 0)) - { - UINT uIndex; - - /* Calculate where to insert the new bar */ - uIndex = TbdCalculateInsertIndex(TbDocks, - DragTo, - pt); - - SetActiveWindow(TbDocks->hRebar[DragTo]); - - TbDocks->Dragging->Callbacks->DockBand(TbDocks, - &TbDocks->Dragging->DockBar, - TbDocks->Dragging->Context, - Position, - DragTo, - &rbi); - - if (rbi.fMask & RBBIM_CHILD) - TbDocks->Dragging->hWndClient = rbi.hwndChild; - else - TbDocks->Dragging->hWndClient = NULL; - - /* Insert the toolbar into the new rebar */ - rbi.fMask |= RBBIM_STYLE; - rbi.fStyle |= RBBS_HIDDEN; - if (SendMessage(TbDocks->hRebar[DragTo], - RB_INSERTBAND, - (WPARAM)uIndex, - (LPARAM)&rbi)) - { - uBand = (UINT)SendMessage(TbDocks->hRebar[DragTo], - RB_IDTOINDEX, - (WPARAM)TbDocks->DraggingBandId, - 0); - - SendMessage(TbDocks->hRebar[DragTo], - RB_SHOWBAND, - (WPARAM)uBand, - TRUE); - - /* Simulate a mouse click to continue dragging */ - if (uBand != (UINT)-1 && - TbDocks->Dragging->hWndClient != NULL && - GetWindowRect(TbDocks->Dragging->hWndClient, - &rc)) - { - switch (DragTo) - { - case LEFT_DOCK: - case RIGHT_DOCK: - pt.x = rc.left + ((rc.right - rc.left) / 2); - pt.y = rc.top - 1; - break; - - default: - pt.x = rc.left - 1; - pt.y = rc.top + ((rc.bottom - rc.top) / 2); - break; - } - - MapWindowPoints(HWND_DESKTOP, - TbDocks->hRebar[DragTo], - &pt, - 1); - - SetCursor(LoadCursor(NULL, - MAKEINTRESOURCE(IDC_SIZEALL))); - - SendMessage(TbDocks->hRebar[DragTo], - WM_LBUTTONDOWN, - wParam, - MAKELPARAM(pt.x, - pt.y)); - - Moved = TRUE; - } - } - } - - if (!Moved) - { -MoveFailed: - TbDocks->Dragging = NULL; - - SendMessage(hWnd, - RB_SHOWBAND, - (WPARAM)uBand, - TRUE); - } - } - } - } - } - } - } - - return Ret; -} - -VOID -TbdHandleEnabling(PTOOLBAR_DOCKS TbDocks, - HWND hWnd, - BOOL Enable) -{ - PDOCKBAR_ITEM Item; - - Item = TbDocks->Items; - while (Item != NULL) - { - if (Item->hWndTool != NULL && - Item->hWndTool != hWnd) - { - EnableWindow(Item->hWndTool, - Enable); - } - Item = Item->Next; - } -} - -VOID -TbdHandleActivation(PTOOLBAR_DOCKS TbDocks, - HWND hWnd, - WPARAM *wParam, - LPARAM *lParam) -{ - BOOL SynchronizeSiblings = TRUE; - BOOL KeepActive = *(BOOL*)wParam; - HWND hWndActivate = *(HWND*)lParam; - PDOCKBAR_ITEM Item; - - Item = TbDocks->Items; - while (Item != NULL) - { - if (Item->hWndTool != NULL && - Item->hWndTool == hWndActivate) - { - KeepActive = TRUE; - SynchronizeSiblings = FALSE; - break; - } - Item = Item->Next; - } - - if (hWndActivate != (HWND)-1) - { - if (SynchronizeSiblings) - { - Item = TbDocks->Items; - while (Item != NULL) - { - if (Item->hWndTool != NULL && - Item->hWndTool != hWnd && - Item->hWndTool != hWndActivate) - { - SendMessage(Item->hWndTool, - WM_NCACTIVATE, - (WPARAM)KeepActive, - (LPARAM)-1); - } - Item = Item->Next; - } - } - } - else - *lParam = 0; - - *wParam = (WPARAM)KeepActive; -} - -VOID -TbdShowFloatingToolbars(PTOOLBAR_DOCKS TbDocks, - BOOL Show) -{ - PDOCKBAR_ITEM Item; - - Item = TbDocks->Items; - while (Item != NULL) - { - if (Item->hWndTool != NULL) - { - if ((Show && !IsWindowVisible(Item->hWndTool)) || - (!Show && IsWindowVisible(Item->hWndTool))) - { - ShowWindow(Item->hWndTool, - (Show ? SW_SHOW : SW_HIDE)); - } - } - Item = Item->Next; - } -} - -VOID -TbdInitializeDocks(PTOOLBAR_DOCKS TbDocks, - HWND hWndParent, - PVOID Context, - PDOCKBAR_PARENTRESIZE ParentResizeProc) -{ - DWORD rbStyle = WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | - CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY | CCS_NOMOVEX | - RBS_VARHEIGHT | RBS_AUTOSIZE; - - DOCK_POSITION Position; - - TbDocks->hParent = hWndParent; - TbDocks->Context = Context; - TbDocks->ParentResize = ParentResizeProc; - - for (Position = TOP_DOCK; Position < NO_DOCK; Position++) - { - switch (Position) - { - case LEFT_DOCK: - case RIGHT_DOCK: - rbStyle |= CCS_VERT; - break; - default: - rbStyle &= ~CCS_VERT; - break; - } - - TbDocks->hRebar[Position] = CreateWindowEx(WS_EX_TOOLWINDOW, - REBARCLASSNAME, - NULL, - rbStyle, - 0, - 0, - 0, - 0, - TbDocks->hParent, - NULL, - hInstance, - NULL); - - if (TbDocks->hRebar[Position] != NULL) - { - SetWindowSubclass(TbDocks->hRebar[Position], - RebarSubclassProc, - 1, - (DWORD_PTR)TbDocks); - } - } -} - -BOOL -TbdInitImpl(VOID) -{ - WNDCLASSEX wc = {0}; - - wc.cbSize = sizeof(WNDCLASSEX); - wc.style = CS_HREDRAW | CS_VREDRAW; - wc.lpfnWndProc = ToolDockWndProc; - wc.cbWndExtra = TD_EXTRA_BYTES; - wc.hInstance = hInstance; - wc.hCursor = LoadCursor(NULL, - IDC_ARROW); - wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1); - wc.lpszClassName = szToolDockWndClass; - - return RegisterClassEx(&wc) != (ATOM)0; -} - -VOID -TbdUninitImpl(VOID) -{ - UnregisterClass(szToolDockWndClass, - hInstance); -} +#include + +static const TCHAR szToolDockWndClass[] = TEXT("ImageSoftToolDockWndClass"); + +typedef struct _TOOLDOCKWND_INIT +{ + PTOOLBAR_DOCKS TbDocks; + PDOCKBAR_ITEM Item; +} TOOLDOCKWND_INIT, *PTOOLDOCKWND_INIT; + +static UINT +TbdCalculateInsertIndex(PTOOLBAR_DOCKS TbDocks, + DOCK_POSITION Position, + POINT pt) +{ + RECT rcRebar; + UINT Ret = 0; + + GetWindowRect(TbDocks->hRebar[Position], + &rcRebar); + + switch (Position) + { + case TOP_DOCK: + case BOTTOM_DOCK: + if (pt.y > rcRebar.top + ((rcRebar.bottom - rcRebar.top) / 2)) + Ret = (UINT)-1; + break; + + case LEFT_DOCK: + case RIGHT_DOCK: + if (pt.x > rcRebar.left + ((rcRebar.right - rcRebar.left) / 2)) + Ret = (UINT)-1; + break; + + default: + break; + } + + return Ret; +} + +INT +TbdAdjustUpdateClientRect(PTOOLBAR_DOCKS TbDocks, + PRECT rcClient) +{ + INT i, DocksVisible = 0; + + for (i = 0; i < DOCKS_COUNT; i++) + { + if (TbDocks->hRebar[i] != NULL) + { + DocksVisible++; + } + } + + if (DocksVisible != 0) + { + rcClient->top += TbDocks->rcRebar[TOP_DOCK].bottom; + rcClient->left += TbDocks->rcRebar[LEFT_DOCK].right; + rcClient->right -= TbDocks->rcRebar[RIGHT_DOCK].right; + rcClient->bottom -= TbDocks->rcRebar[BOTTOM_DOCK].bottom; + } + + TbDocks->rcClient = *rcClient; + + return DocksVisible; +} + +HDWP +TbdDeferDocks(HDWP hWinPosInfo, + PTOOLBAR_DOCKS TbDocks) +{ + LONG cx, cy; + HDWP hRet = hWinPosInfo; + + cx = TbDocks->rcClient.right - TbDocks->rcClient.left; + cy = TbDocks->rcClient.bottom - TbDocks->rcClient.top; + + /* Top dock */ + if (TbDocks->hRebar[TOP_DOCK] != NULL) + { + hRet = DeferWindowPos(hRet, + TbDocks->hRebar[TOP_DOCK], + NULL, + TbDocks->rcClient.left - TbDocks->rcRebar[LEFT_DOCK].right, + TbDocks->rcClient.top - TbDocks->rcRebar[TOP_DOCK].bottom, + cx + TbDocks->rcRebar[LEFT_DOCK].right + TbDocks->rcRebar[RIGHT_DOCK].right, + TbDocks->rcRebar[TOP_DOCK].bottom, + SWP_NOZORDER); + if (hRet == NULL) + return NULL; + } + + /* Left dock */ + if (TbDocks->hRebar[LEFT_DOCK] != NULL) + { + hRet = DeferWindowPos(hRet, + TbDocks->hRebar[LEFT_DOCK], + NULL, + TbDocks->rcClient.left - TbDocks->rcRebar[LEFT_DOCK].right, + TbDocks->rcClient.top, + TbDocks->rcRebar[LEFT_DOCK].right, + cy, + SWP_NOZORDER); + if (hRet == NULL) + return NULL; + } + + /* Right dock */ + if (TbDocks->hRebar[RIGHT_DOCK] != NULL) + { + hRet = DeferWindowPos(hRet, + TbDocks->hRebar[RIGHT_DOCK], + NULL, + TbDocks->rcClient.right, + TbDocks->rcClient.top, + TbDocks->rcRebar[RIGHT_DOCK].right, + cy, + SWP_NOZORDER); + if (hRet == NULL) + return NULL; + } + + /* Bottom dock */ + if (TbDocks->hRebar[BOTTOM_DOCK] != NULL) + { + hRet = DeferWindowPos(hRet, + TbDocks->hRebar[BOTTOM_DOCK], + NULL, + TbDocks->rcClient.left - TbDocks->rcRebar[LEFT_DOCK].right, + TbDocks->rcClient.bottom, + cx + TbDocks->rcRebar[LEFT_DOCK].right + TbDocks->rcRebar[RIGHT_DOCK].right, + TbDocks->rcRebar[BOTTOM_DOCK].bottom, + SWP_NOZORDER); + if (hRet == NULL) + return NULL; + } + + return hRet; +} + +static PDOCKBAR_ITEM +TbnDockbarItemFromBandId(PTOOLBAR_DOCKS TbDocks, + DOCK_POSITION Position, + UINT uBand) +{ + REBARBANDINFO rbi = {0}; + + rbi.cbSize = sizeof(rbi); + rbi.fMask = RBBIM_LPARAM; + + if (SendMessage(TbDocks->hRebar[Position], + RB_GETBANDINFO, + (WPARAM)uBand, + (LPARAM)&rbi)) + { + return (PDOCKBAR_ITEM)rbi.lParam; + } + + return NULL; +} + +static VOID +TbnRebarChangeSize(PTOOLBAR_DOCKS TbDocks, + DOCK_POSITION Position) +{ + LONG cRebar; + + TbDocks->rcRebar[Position].left = 0; + TbDocks->rcRebar[Position].top = 0; + + cRebar = (LONG)SendMessage(TbDocks->hRebar[Position], + RB_GETBARHEIGHT, + 0, + 0); + + switch (Position) + { + case TOP_DOCK: + case BOTTOM_DOCK: + TbDocks->rcRebar[Position].bottom = cRebar; + break; + + case LEFT_DOCK: + case RIGHT_DOCK: + TbDocks->rcRebar[Position].right = cRebar; + break; + + default: + break; + } + + if (TbDocks->ParentResize != NULL) + { + RECT rcClient = {0}; + + GetClientRect(TbDocks->hParent, + &rcClient); + + TbDocks->ParentResize(TbDocks->Context, + rcClient.right - rcClient.left, + rcClient.bottom - rcClient.top); + } +} + +static VOID +TbnRebarChevronPushed(PTOOLBAR_DOCKS TbDocks, + DOCK_POSITION Position, + LPNMREBARCHEVRON lpnm) +{ + PDOCKBAR_ITEM Item; + + Item = TbnDockbarItemFromBandId(TbDocks, + Position, + lpnm->uBand); + + if (Item != NULL && Item->Callbacks->ChevronPushed) + { + Item->Callbacks->ChevronPushed(TbDocks, + &Item->DockBar, + Item->Context, + Item->hWndClient, + lpnm); + } +} + +static LRESULT +TbnRebarBeginDrag(PTOOLBAR_DOCKS TbDocks, + DOCK_POSITION Position, + LPNMREBAR lpnmrb) +{ + PDOCKBAR_ITEM Item; + + Item = TbnDockbarItemFromBandId(TbDocks, + Position, + lpnmrb->uBand); + + if (Item != NULL) + { + TbDocks->Dragging = Item; + TbDocks->DraggingBandId = lpnmrb->wID; + return FALSE; + } + + return TRUE; +} + +static VOID +TbnRebarEndDrag(PTOOLBAR_DOCKS TbDocks, + DOCK_POSITION Position, + LPNMREBAR lpnmrb) +{ + PDOCKBAR_ITEM Item; + + Item = TbnDockbarItemFromBandId(TbDocks, + Position, + lpnmrb->uBand); + + if (Item != NULL) + { + /* Nothing to do */ + } +} + +BOOL +TbdDockBarIdFromClientWindow(PTOOLBAR_DOCKS TbDocks, + HWND hWndClient, + UINT *Id) +{ + PDOCKBAR_ITEM Item; + BOOL Ret = FALSE; + + Item = TbDocks->Items; + while (Item != NULL) + { + if (Item->hWndClient == hWndClient) + { + *Id = Item->DockBar.BarId; + Ret = TRUE; + break; + } + + Item = Item->Next; + } + + return Ret; +} + +BOOL +TbdHandleNotifications(PTOOLBAR_DOCKS TbDocks, + LPNMHDR pnmh, + LRESULT *Result) +{ + BOOL Handled = FALSE; + + if (pnmh->hwndFrom != NULL) + { + DOCK_POSITION Position; + + for (Position = TOP_DOCK; Position < NO_DOCK; Position++) + { + if (pnmh->hwndFrom == TbDocks->hRebar[Position]) + { + switch (pnmh->code) + { + case RBN_HEIGHTCHANGE: + { + TbnRebarChangeSize(TbDocks, + Position); + break; + } + + case RBN_BEGINDRAG: + { + *Result = TbnRebarBeginDrag(TbDocks, + Position, + (LPNMREBAR)pnmh); + break; + } + + case RBN_ENDDRAG: + { + TbnRebarEndDrag(TbDocks, + Position, + (LPNMREBAR)pnmh); + break; + } + + case RBN_CHEVRONPUSHED: + { + TbnRebarChevronPushed(TbDocks, + Position, + (LPNMREBARCHEVRON)pnmh); + break; + } + } + + Handled = TRUE; + break; + } + } + } + + return Handled; +} + +static BOOL +TbdCreateToolbarWnd(PTOOLBAR_DOCKS TbDocks, + PDOCKBAR_ITEM Item, + DOCK_POSITION PrevPosition, + UINT PrevBandIndex, + LPREBARBANDINFO rbi, + POINT pt, + HWND hRebar, + UINT uBand, + BOOL Drag) +{ + LPCTSTR lpCaption = NULL; + TOOLDOCKWND_INIT Init; + HWND hToolbar; + + Init.TbDocks = TbDocks; + Init.Item = Item; + + if (rbi->fMask & RBBIM_TEXT) + { + lpCaption = rbi->lpText; + } + + Item->Callbacks->DockBand(TbDocks, + &Item->DockBar, + Item->Context, + PrevPosition, + NO_DOCK, + rbi); + + if (rbi->fMask & RBBIM_CHILD) + Item->hWndClient = rbi->hwndChild; + else + Item->hWndClient = NULL; + + + if ((rbi->fMask & (RBBIM_CHILDSIZE | RBBIM_SIZE)) == (RBBIM_CHILDSIZE | RBBIM_SIZE)) + { + RECT rcWnd; + static const DWORD dwStyle = WS_POPUPWINDOW | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_DLGFRAME; + static const DWORD dwExStyle = WS_EX_TOOLWINDOW; + + rcWnd.left = pt.x - GetSystemMetrics(SM_CXFIXEDFRAME) - (GetSystemMetrics(SM_CYSMCAPTION) / 2); + rcWnd.top = pt.y + GetSystemMetrics(SM_CYFIXEDFRAME) + (GetSystemMetrics(SM_CYSMCAPTION) / 2); + rcWnd.right = rcWnd.left + rbi->cx; + rcWnd.bottom = rcWnd.top + rbi->cyMinChild; + + if (AdjustWindowRectEx(&rcWnd, + dwStyle, + FALSE, + dwExStyle)) + { + hToolbar = CreateWindowEx(dwExStyle, + szToolDockWndClass, + lpCaption, + dwStyle, + rcWnd.left, + rcWnd.top, + rcWnd.right - rcWnd.left, + rcWnd.bottom - rcWnd.top, + TbDocks->hParent, + NULL, + hInstance, + &Init); + if (hToolbar != NULL) + { + RECT rcClient; + + if (uBand != (UINT)-1) + { + /* delete the band before showing the client window, + otherwise deleting the band will cause the client + window to be hidden, regardless of whether the band + was hidden before being deleted or not */ + SendMessage(hRebar, + RB_DELETEBAND, + (WPARAM)uBand, + 0); + } + + if (Item->hWndClient != NULL) + { + GetClientRect(hToolbar, + &rcClient); + + SetParent(Item->hWndClient, + hToolbar); + + SetWindowPos(Item->hWndClient, + NULL, + 0, + 0, + rcClient.right, + rcClient.bottom, + SWP_NOZORDER); + + SetWindowPos(Item->hWndClient, + HWND_TOP, + 0, + 0, + 0, + 0, + SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW); + } + + SetWindowPos(hToolbar, + HWND_TOP, + 0, + 0, + 0, + 0, + SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW); + + if (Drag) + { + SetCursor(LoadCursor(NULL, + MAKEINTRESOURCE(IDC_ARROW))); + SendMessage(hToolbar, + WM_NCLBUTTONDOWN, + HTCAPTION, + MAKELPARAM(pt.x, + pt.y)); + } + + return TRUE; + } + } + } + + return FALSE; +} + +static BOOL +TdbInsertToolbar(PTOOLBAR_DOCKS TbDocks, + PDOCKBAR_ITEM Item, + DOCK_POSITION Position) +{ + LPTSTR lpCaption = NULL; + REBARBANDINFO rbi = {0}; + BOOL Ret = FALSE; + + rbi.cbSize = sizeof(rbi); + rbi.fMask = RBBIM_ID | RBBIM_STYLE | RBBIM_LPARAM; + rbi.wID = Item->DockBar.BarId; + rbi.fStyle = RBBS_GRIPPERALWAYS; + rbi.lParam = (LPARAM)Item; + + if (Item->DockBar.DisplayTextId != 0) + { + if (AllocAndLoadString(&lpCaption, + hInstance, + Item->DockBar.DisplayTextId)) + { + rbi.fMask |= RBBIM_TEXT; + rbi.lpText = lpCaption; + } + } + + if (Item->hWndClient != NULL) + { + rbi.fMask |= RBBIM_CHILD; + rbi.hwndChild = Item->hWndClient; + } + + switch (Item->DockBar.Position) + { + case NO_DOCK: + { + POINT pt = {0}; + + /* FIXME - calculate size */ + Ret = TbdCreateToolbarWnd(TbDocks, + Item, + Item->DockBar.Position, + (UINT)-1, + &rbi, + pt, + NULL, + (UINT)-1, + FALSE); + break; + } + + default: + { + UINT Index = -1; + BOOL AddBand = TRUE; + + if (Item->Callbacks->InsertBand != NULL) + { + AddBand = Item->Callbacks->InsertBand(TbDocks, + &Item->DockBar, + Item->Context, + &Index, + &rbi); + } + + if (AddBand) + { + Item->Callbacks->DockBand(TbDocks, + &Item->DockBar, + Item->Context, + NO_DOCK, + Item->DockBar.Position, + &rbi); + + if (rbi.fMask & RBBIM_CHILD) + Item->hWndClient = rbi.hwndChild; + else + Item->hWndClient = NULL; + + Ret = SendMessage(TbDocks->hRebar[Position], + RB_INSERTBAND, + (WPARAM)Index, + (LPARAM)&rbi) != 0; + if (Ret) + { + Item->PrevDock = Position; + Item->PrevBandIndex = (UINT)SendMessage(TbDocks->hRebar[Position], + RB_IDTOINDEX, + (WPARAM)Item->DockBar.BarId, + 0); + } + } + + break; + } + } + + if (lpCaption != NULL) + { + LocalFree((HLOCAL)lpCaption); + } + + return Ret; +} + +BOOL +TbdAddToolbar(PTOOLBAR_DOCKS TbDocks, + const DOCKBAR *Dockbar, + PVOID Context, + const DOCKBAR_ITEM_CALLBACKS *Callbacks) +{ + PDOCKBAR_ITEM Item; + HWND hRebar; + + hRebar = TbDocks->hRebar[Dockbar->Position]; + if (hRebar != NULL) + { + Item = HeapAlloc(ProcessHeap, + 0, + sizeof(DOCKBAR_ITEM)); + if (Item != NULL) + { + /* Initialize the item */ + Item->DockBar = *Dockbar; + Item->Context = Context; + Item->hWndTool = NULL; + Item->PrevDock = Dockbar->Position; + + Item->Callbacks = Callbacks; + + /* Create the client control */ + if (Callbacks->CreateClient != NULL && + !Callbacks->CreateClient(TbDocks, + &Item->DockBar, + Context, + hRebar, + &Item->hWndClient)) + { + HeapFree(ProcessHeap, + 0, + Item); + + return FALSE; + } + + /* Insert the item into the list */ + Item->Next = TbDocks->Items; + TbDocks->Items = Item; + + return TdbInsertToolbar(TbDocks, + Item, + Dockbar->Position); + } + } + + return FALSE; +} + +#define GWLP_TBDOCKS 0 +#define GWLP_DOCKITEM (GWLP_TBDOCKS + sizeof(PTOOLBAR_DOCKS)) +#define TD_EXTRA_BYTES (GWLP_DOCKITEM + sizeof(PDOCKBAR_ITEM)) + +static LRESULT CALLBACK +ToolDockWndProc(HWND hwnd, + UINT uMsg, + WPARAM wParam, + LPARAM lParam) +{ + PTOOLBAR_DOCKS TbDocks; + PDOCKBAR_ITEM Item; + LRESULT Ret = 0; + + /* Get the window context */ + TbDocks = (PTOOLBAR_DOCKS)GetWindowLongPtr(hwnd, + GWLP_TBDOCKS); + Item = (PDOCKBAR_ITEM)GetWindowLongPtr(hwnd, + GWLP_DOCKITEM); + + if ((TbDocks == NULL || Item == NULL) && uMsg != WM_CREATE) + { + goto HandleDefaultMessage; + } + + switch (uMsg) + { + case WM_NCACTIVATE: + { + TbdHandleActivation(TbDocks, + hwnd, + &wParam, + &lParam); + goto HandleDefaultMessage; + } + + case WM_CREATE: + { + TbDocks = ((PTOOLDOCKWND_INIT)(((LPCREATESTRUCT)lParam)->lpCreateParams))->TbDocks; + Item = ((PTOOLDOCKWND_INIT)(((LPCREATESTRUCT)lParam)->lpCreateParams))->Item; + Item->hWndTool = hwnd; + + SetWindowLongPtr(hwnd, + GWLP_TBDOCKS, + (LONG_PTR)TbDocks); + SetWindowLongPtr(hwnd, + GWLP_DOCKITEM, + (LONG_PTR)Item); + + Ret = TRUE; + break; + } + + case WM_DESTROY: + { + Item->hWndTool = NULL; + + SetWindowLongPtr(hwnd, + GWLP_USERDATA, + 0); + SetWindowLongPtr(hwnd, + GWLP_DOCKITEM, + 0); + break; + } + + default: + { +HandleDefaultMessage: + Ret = DefWindowProc(hwnd, + uMsg, + wParam, + lParam); + break; + } + } + + return Ret; +} + +static LRESULT CALLBACK +RebarSubclassProc(HWND hWnd, + UINT uMsg, + WPARAM wParam, + LPARAM lParam, + UINT_PTR uIdSubclass, + DWORD_PTR dwRefData) +{ + LRESULT Ret; + + Ret = DefSubclassProc(hWnd, + uMsg, + wParam, + lParam); + + if (uMsg == WM_MOUSEMOVE && (wParam & MK_LBUTTON)) + { + DOCK_POSITION Position, DragTo = NO_DOCK; + RECT rcClient; + POINT pt; + PTOOLBAR_DOCKS TbDocks = (PTOOLBAR_DOCKS)dwRefData; + SIZE szTearOff; + + szTearOff.cx = GetSystemMetrics(SM_CXCURSOR); + szTearOff.cy = GetSystemMetrics(SM_CYCURSOR); + + /* + * Check if we're dragging and if it's time to remove the band + */ + if (TbDocks->Dragging != NULL && GetCapture() == hWnd) + { + GetClientRect(hWnd, + &rcClient); + InflateRect(&rcClient, + szTearOff.cx, + szTearOff.cy); + + pt.x = GET_X_LPARAM(lParam); + pt.y = GET_Y_LPARAM(lParam); + + if (!PtInRect(&rcClient, + pt)) + { + REBARBANDINFO rbi; + UINT uBand; + RECT rc; + + /* Save all rebar band information, don't query RBBIM_HEADERSIZE because it + seems to cause problems with toolbars*/ + rbi.cbSize = sizeof(rbi); + rbi.fMask = RBBIM_BACKGROUND | RBBIM_CHILD | RBBIM_CHILDSIZE | RBBIM_COLORS | + RBBIM_IDEALSIZE | RBBIM_ID | RBBIM_IMAGE | RBBIM_LPARAM | RBBIM_SIZE | + RBBIM_STYLE | RBBIM_TEXT; + rbi.lpText = TbDocks->szTempText; + rbi.cch = sizeof(TbDocks->szTempText); + + uBand = (UINT)SendMessage(hWnd, + RB_IDTOINDEX, + (WPARAM)TbDocks->DraggingBandId, + 0); + + if (uBand != (UINT)-1 && + SendMessage(hWnd, + RB_GETBANDINFO, + (WPARAM)uBand, + (LPARAM)&rbi)) + { + MapWindowPoints(hWnd, + HWND_DESKTOP, + &pt, + 1); + + /* Check if the user is trying to drag it into another dock */ + for (Position = TOP_DOCK; Position < NO_DOCK; Position++) + { + if (TbDocks->hRebar[Position] != NULL && + TbDocks->hRebar[Position] != hWnd && + GetWindowRect(TbDocks->hRebar[Position], + &rc)) + { + InflateRect(&rc, + szTearOff.cx, + szTearOff.cy); + + if (PtInRect(&rc, + pt)) + { + DragTo = Position; + break; + } + } + } + + /* Get the current dock */ + for (Position = TOP_DOCK; Position < NO_DOCK; Position++) + { + if (TbDocks->hRebar[Position] == hWnd) + { + break; + } + } + + ReleaseCapture(); + + if (SendMessage(hWnd, + RB_SHOWBAND, + (WPARAM)uBand, + FALSE)) + { + /* Change the parent to the new rebar control */ + if (TbDocks->Dragging->hWndClient != NULL) + { + SetWindowPos(TbDocks->Dragging->hWndClient, + NULL, + 0, + 0, + 0, + 0, + SWP_HIDEWINDOW | SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER); + + SetParent(TbDocks->Dragging->hWndClient, + TbDocks->hRebar[DragTo]); + + SetWindowPos(TbDocks->Dragging->hWndClient, + NULL, + 0, + 0, + 0, + 0, + SWP_NOSIZE | SWP_NOZORDER); + } + + if (DragTo == NO_DOCK) + { + if (!TbdCreateToolbarWnd(TbDocks, + TbDocks->Dragging, + Position, + uBand, + &rbi, + pt, + hWnd, + uBand, + TRUE)) + { + goto MoveFailed; + } + } + else + { + BOOL Moved = FALSE; + + /* Remove the band from the current rebar control */ + if (SendMessage(hWnd, + RB_DELETEBAND, + (WPARAM)uBand, + 0)) + { + UINT uIndex; + + /* Calculate where to insert the new bar */ + uIndex = TbdCalculateInsertIndex(TbDocks, + DragTo, + pt); + + SetActiveWindow(TbDocks->hRebar[DragTo]); + + TbDocks->Dragging->Callbacks->DockBand(TbDocks, + &TbDocks->Dragging->DockBar, + TbDocks->Dragging->Context, + Position, + DragTo, + &rbi); + + if (rbi.fMask & RBBIM_CHILD) + TbDocks->Dragging->hWndClient = rbi.hwndChild; + else + TbDocks->Dragging->hWndClient = NULL; + + /* Insert the toolbar into the new rebar */ + rbi.fMask |= RBBIM_STYLE; + rbi.fStyle |= RBBS_HIDDEN; + if (SendMessage(TbDocks->hRebar[DragTo], + RB_INSERTBAND, + (WPARAM)uIndex, + (LPARAM)&rbi)) + { + uBand = (UINT)SendMessage(TbDocks->hRebar[DragTo], + RB_IDTOINDEX, + (WPARAM)TbDocks->DraggingBandId, + 0); + + SendMessage(TbDocks->hRebar[DragTo], + RB_SHOWBAND, + (WPARAM)uBand, + TRUE); + + /* Simulate a mouse click to continue dragging */ + if (uBand != (UINT)-1 && + TbDocks->Dragging->hWndClient != NULL && + GetWindowRect(TbDocks->Dragging->hWndClient, + &rc)) + { + switch (DragTo) + { + case LEFT_DOCK: + case RIGHT_DOCK: + pt.x = rc.left + ((rc.right - rc.left) / 2); + pt.y = rc.top - 1; + break; + + default: + pt.x = rc.left - 1; + pt.y = rc.top + ((rc.bottom - rc.top) / 2); + break; + } + + MapWindowPoints(HWND_DESKTOP, + TbDocks->hRebar[DragTo], + &pt, + 1); + + SetCursor(LoadCursor(NULL, + MAKEINTRESOURCE(IDC_SIZEALL))); + + SendMessage(TbDocks->hRebar[DragTo], + WM_LBUTTONDOWN, + wParam, + MAKELPARAM(pt.x, + pt.y)); + + Moved = TRUE; + } + } + } + + if (!Moved) + { +MoveFailed: + TbDocks->Dragging = NULL; + + SendMessage(hWnd, + RB_SHOWBAND, + (WPARAM)uBand, + TRUE); + } + } + } + } + } + } + } + + return Ret; +} + +VOID +TbdHandleEnabling(PTOOLBAR_DOCKS TbDocks, + HWND hWnd, + BOOL Enable) +{ + PDOCKBAR_ITEM Item; + + Item = TbDocks->Items; + while (Item != NULL) + { + if (Item->hWndTool != NULL && + Item->hWndTool != hWnd) + { + EnableWindow(Item->hWndTool, + Enable); + } + Item = Item->Next; + } +} + +VOID +TbdHandleActivation(PTOOLBAR_DOCKS TbDocks, + HWND hWnd, + WPARAM *wParam, + LPARAM *lParam) +{ + BOOL SynchronizeSiblings = TRUE; + BOOL KeepActive = *(BOOL*)wParam; + HWND hWndActivate = *(HWND*)lParam; + PDOCKBAR_ITEM Item; + + Item = TbDocks->Items; + while (Item != NULL) + { + if (Item->hWndTool != NULL && + Item->hWndTool == hWndActivate) + { + KeepActive = TRUE; + SynchronizeSiblings = FALSE; + break; + } + Item = Item->Next; + } + + if (hWndActivate != (HWND)-1) + { + if (SynchronizeSiblings) + { + Item = TbDocks->Items; + while (Item != NULL) + { + if (Item->hWndTool != NULL && + Item->hWndTool != hWnd && + Item->hWndTool != hWndActivate) + { + SendMessage(Item->hWndTool, + WM_NCACTIVATE, + (WPARAM)KeepActive, + (LPARAM)-1); + } + Item = Item->Next; + } + } + } + else + *lParam = 0; + + *wParam = (WPARAM)KeepActive; +} + +VOID +TbdShowFloatingToolbars(PTOOLBAR_DOCKS TbDocks, + BOOL Show) +{ + PDOCKBAR_ITEM Item; + + Item = TbDocks->Items; + while (Item != NULL) + { + if (Item->hWndTool != NULL) + { + if ((Show && !IsWindowVisible(Item->hWndTool)) || + (!Show && IsWindowVisible(Item->hWndTool))) + { + ShowWindow(Item->hWndTool, + (Show ? SW_SHOW : SW_HIDE)); + } + } + Item = Item->Next; + } +} + +VOID +TbdInitializeDocks(PTOOLBAR_DOCKS TbDocks, + HWND hWndParent, + PVOID Context, + PDOCKBAR_PARENTRESIZE ParentResizeProc) +{ + DWORD rbStyle = WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | + CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY | CCS_NOMOVEX | + RBS_VARHEIGHT | RBS_AUTOSIZE; + + DOCK_POSITION Position; + + TbDocks->hParent = hWndParent; + TbDocks->Context = Context; + TbDocks->ParentResize = ParentResizeProc; + + for (Position = TOP_DOCK; Position < NO_DOCK; Position++) + { + switch (Position) + { + case LEFT_DOCK: + case RIGHT_DOCK: + rbStyle |= CCS_VERT; + break; + default: + rbStyle &= ~CCS_VERT; + break; + } + + TbDocks->hRebar[Position] = CreateWindowEx(WS_EX_TOOLWINDOW, + REBARCLASSNAME, + NULL, + rbStyle, + 0, + 0, + 0, + 0, + TbDocks->hParent, + NULL, + hInstance, + NULL); + + if (TbDocks->hRebar[Position] != NULL) + { + SetWindowSubclass(TbDocks->hRebar[Position], + RebarSubclassProc, + 1, + (DWORD_PTR)TbDocks); + } + } +} + +BOOL +TbdInitImpl(VOID) +{ + WNDCLASSEX wc = {0}; + + wc.cbSize = sizeof(WNDCLASSEX); + wc.style = CS_HREDRAW | CS_VREDRAW; + wc.lpfnWndProc = ToolDockWndProc; + wc.cbWndExtra = TD_EXTRA_BYTES; + wc.hInstance = hInstance; + wc.hCursor = LoadCursor(NULL, + IDC_ARROW); + wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1); + wc.lpszClassName = szToolDockWndClass; + + return RegisterClassEx(&wc) != (ATOM)0; +} + +VOID +TbdUninitImpl(VOID) +{ + UnregisterClass(szToolDockWndClass, + hInstance); +} diff --git a/reactos/base/applications/msconfig/lang/Hu.rc b/reactos/base/applications/msconfig/lang/Hu.rc index a234d29ce6f..3bd401bf504 100644 --- a/reactos/base/applications/msconfig/lang/Hu.rc +++ b/reactos/base/applications/msconfig/lang/Hu.rc @@ -1,98 +1,98 @@ -// Hungarian resources, by Robert Horvath (Talley at cubeclub.hu) - -LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT - -IDD_MSCONFIG_DIALOG DIALOG DISCARDABLE 0, 0, 378, 220 -STYLE DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | - WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU | - WS_THICKFRAME -CAPTION "Rendszerbeбllнtбsok" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Tab1",IDC_TAB,"SysTabControl32",WS_TABSTOP,2,2,374,195 - DEFPUSHBUTTON "OK", IDOK, 211, 201, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "&Sъgу", IDC_BTN_HELP, 2, 201, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "Mйgse", IDCANCEL, 267, 201, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "Alkalmaz", IDC_BTN_APPLY, 323, 201, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP -END - -IDD_STARTUP_PAGE DIALOG DISCARDABLE 0, 0, 362, 175 -STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "List3",IDC_STARTUP_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148 - PUSHBUTTON "Mindet &bekapcsol",IDC_BTN_STARTUP_ACTIVATE,223,155,66,14 - PUSHBUTTON "Mindet &kikapcsol",IDC_BTN_STARTUP_DEACTIVATE,295,155,66,14 -END - -IDD_TOOLS_PAGE DIALOG DISCARDABLE 0, 0, 362, 175 -STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "List2",IDC_TOOLS_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 2, 1, 360, 134 - EDITTEXT IDC_TOOLS_CMDLINE, 1, 139, 360, 12, ES_READONLY - PUSHBUTTON "&Futtat", IDC_BTN_RUN, 311, 155, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP -END - -IDD_SERVICES_PAGE DIALOG DISCARDABLE 0, 0, 362, 175 -STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "List1",IDC_SERVICES_LIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP,2,1,360,148 - PUSHBUTTON "Mindet &bekapcsol",IDC_BTN_SERVICES_ACTIVATE,223,155,66,14 - PUSHBUTTON "Mindet &kikapcsol",IDC_BTN_SERVICES_DEACTIVATE,295,155,66,14 -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_MSCONFIG "Rendszerkonfigurбciьs segйdprogram" - IDS_TAB_GENERAL "Бltalбnos" - IDS_TAB_SYSTEM "SYSTEM.INI" - IDS_TAB_FREELDR "FREELDR.INI" - IDS_TAB_SERVICES "Szolgбltatбsok" - IDS_TAB_STARTUP "Automatikus indнtбs" - IDS_TAB_TOOLS "Segйdprogramok" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_SERVICES_COLUMN_SERVICE "Szolgбlgatбs" - IDS_SERVICES_COLUMN_REQ "Lйnyeges" - IDS_SERVICES_COLUMN_VENDOR "Gyбrtу" - IDS_SERVICES_COLUMN_STATUS "Бllapot" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_TOOLS_COLUMN_NAME "Nйv" - IDS_TOOLS_COLUMN_DESCR "Description" - - IDS_TOOLS_CMD_NAME "Konzol" - IDS_TOOLS_CMD_DESCR "" - IDS_TOOLS_CMD_CMD "cmd.exe" - - IDS_TOOLS_INFO_NAME "Verziу" - IDS_TOOLS_INFO_DESCR "Megjelenнti a verziу-informбciуkat." - IDS_TOOLS_INFO_CMD "winver.exe" - - IDS_TOOLS_REGEDIT_NAME "Rendszerleнrуadatbбzis-szerkesztх" - IDS_TOOLS_REGEDIT_DESCR "Megnyitja a szerkesztх programot." - IDS_TOOLS_REGEDIT_CMD "regedit.exe" - - IDS_TOOLS_SYSDM_NAME "Rendszertulajdonsбgok" - IDS_TOOLS_SYSDM_DESCR "Megjelenнti a szбmнtуgйp informбciуkat." - IDS_TOOLS_SYSDM_CMD "control" - IDS_TOOLS_SYSDM_PARAM "sysdm.cpl" - - IDS_STARTUP_COLUMN_ELEMENT "Element" - IDS_STARTUP_COLUMN_CMD "Parancs" - IDS_STARTUP_COLUMN_PATH "Elйrйsi ъt" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_SERVICES_STATUS_RUNNING "Fut" - IDS_SERVICES_STATUS_STOPPED "Leбllнtva" - IDS_SERVICES_YES "Igen" - IDS_SERVICES_UNKNOWN "Ismeretlen" -END +// Hungarian resources, by Robert Horvath (Talley at cubeclub.hu) + +LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT + +IDD_MSCONFIG_DIALOG DIALOG DISCARDABLE 0, 0, 378, 220 +STYLE DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | + WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU | + WS_THICKFRAME +CAPTION "Rendszerbeбllнtбsok" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "Tab1",IDC_TAB,"SysTabControl32",WS_TABSTOP,2,2,374,195 + DEFPUSHBUTTON "OK", IDOK, 211, 201, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&Sъgу", IDC_BTN_HELP, 2, 201, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "Mйgse", IDCANCEL, 267, 201, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "Alkalmaz", IDC_BTN_APPLY, 323, 201, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP +END + +IDD_STARTUP_PAGE DIALOG DISCARDABLE 0, 0, 362, 175 +STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "List3",IDC_STARTUP_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148 + PUSHBUTTON "Mindet &bekapcsol",IDC_BTN_STARTUP_ACTIVATE,223,155,66,14 + PUSHBUTTON "Mindet &kikapcsol",IDC_BTN_STARTUP_DEACTIVATE,295,155,66,14 +END + +IDD_TOOLS_PAGE DIALOG DISCARDABLE 0, 0, 362, 175 +STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "List2",IDC_TOOLS_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 2, 1, 360, 134 + EDITTEXT IDC_TOOLS_CMDLINE, 1, 139, 360, 12, ES_READONLY + PUSHBUTTON "&Futtat", IDC_BTN_RUN, 311, 155, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP +END + +IDD_SERVICES_PAGE DIALOG DISCARDABLE 0, 0, 362, 175 +STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "List1",IDC_SERVICES_LIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP,2,1,360,148 + PUSHBUTTON "Mindet &bekapcsol",IDC_BTN_SERVICES_ACTIVATE,223,155,66,14 + PUSHBUTTON "Mindet &kikapcsol",IDC_BTN_SERVICES_DEACTIVATE,295,155,66,14 +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_MSCONFIG "Rendszerkonfigurбciьs segйdprogram" + IDS_TAB_GENERAL "Бltalбnos" + IDS_TAB_SYSTEM "SYSTEM.INI" + IDS_TAB_FREELDR "FREELDR.INI" + IDS_TAB_SERVICES "Szolgбltatбsok" + IDS_TAB_STARTUP "Automatikus indнtбs" + IDS_TAB_TOOLS "Segйdprogramok" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_SERVICES_COLUMN_SERVICE "Szolgбlgatбs" + IDS_SERVICES_COLUMN_REQ "Lйnyeges" + IDS_SERVICES_COLUMN_VENDOR "Gyбrtу" + IDS_SERVICES_COLUMN_STATUS "Бllapot" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_TOOLS_COLUMN_NAME "Nйv" + IDS_TOOLS_COLUMN_DESCR "Description" + + IDS_TOOLS_CMD_NAME "Konzol" + IDS_TOOLS_CMD_DESCR "" + IDS_TOOLS_CMD_CMD "cmd.exe" + + IDS_TOOLS_INFO_NAME "Verziу" + IDS_TOOLS_INFO_DESCR "Megjelenнti a verziу-informбciуkat." + IDS_TOOLS_INFO_CMD "winver.exe" + + IDS_TOOLS_REGEDIT_NAME "Rendszerleнrуadatbбzis-szerkesztх" + IDS_TOOLS_REGEDIT_DESCR "Megnyitja a szerkesztх programot." + IDS_TOOLS_REGEDIT_CMD "regedit.exe" + + IDS_TOOLS_SYSDM_NAME "Rendszertulajdonsбgok" + IDS_TOOLS_SYSDM_DESCR "Megjelenнti a szбmнtуgйp informбciуkat." + IDS_TOOLS_SYSDM_CMD "control" + IDS_TOOLS_SYSDM_PARAM "sysdm.cpl" + + IDS_STARTUP_COLUMN_ELEMENT "Element" + IDS_STARTUP_COLUMN_CMD "Parancs" + IDS_STARTUP_COLUMN_PATH "Elйrйsi ъt" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_SERVICES_STATUS_RUNNING "Fut" + IDS_SERVICES_STATUS_STOPPED "Leбllнtva" + IDS_SERVICES_YES "Igen" + IDS_SERVICES_UNKNOWN "Ismeretlen" +END diff --git a/reactos/base/applications/network/ipconfig/En.rc b/reactos/base/applications/network/ipconfig/En.rc index 17eb42e9d5a..abd6b9f88f6 100644 --- a/reactos/base/applications/network/ipconfig/En.rc +++ b/reactos/base/applications/network/ipconfig/En.rc @@ -1,65 +1,65 @@ -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US - -STRINGTABLE DISCARDABLE -BEGIN - IDS_BCAST "Broadcast" - IDS_P2P "Peer To Peer" - IDS_MIXED "Mixed" - IDS_HYBRID "Hybrid" - IDS_UNKNOWN "unknown" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_OTHER "Other Type Of Adapter" - IDS_ETH "Ethernet Adapter" - IDS_TOKEN "Token Ring Adapter" - IDS_FDDI "FDDI Adapter" - IDS_PPP "PPP Adapter" - IDS_LOOP "Loopback Adapter" - IDS_SLIP "SLIP Adapter" -END - -STRINGTABLE DISCARDABLE -BEGIN -/* Please keep the spacing/formatting as per En.rc when translating */ - IDS_USAGE - "\nUSAGE:\n \ - ipconfig [/? | /all | /renew [adapter] | /release [adapter] |\n \ - /flushdns | /displaydns | /registerdns |\n \ - /showclassid adapter |\n \ - /setclassid adapter [classid] ]\n \ - \n \ - where\n \ - adapter Connection name\n \ - (wildcard characters * and ? allowed, see examples)\n \ - \n \ - Options:\n \ - /? Display this help message\n \ - /all Display full configuration information.\n \ - /release Release the IP address for the specified adapter.\n \ - /renew Renew the IP address for the specified adapter.\n \ - /flushdns Purges the DNS Resolver cache.\n \ - /registerdns Refreshes all DHCP leases and re-registers DNS names.\n \ - /displaydns Display the contents of the DNS Resolver Cache.\n \ - /showclassid Displays all the dhcp class IDs allowed for adapter.\n \ - /setclassid Modifies the dhcp class id.\n \ - \n \ - The default is to display only the IP address, subnet mask and\n \ - default gateway for each adapter bound to TCP/IP.\n \ - \n \ - For Release and Renew, if no adapter name is specified, then the IP address\n \ - leases for all adapters bound to TCP/IP will be released or renewed.\n \ - \n \ - For Setclassid, if no ClassId is specified, then the ClassId is removed.\n \ - \n \ - Examples:\n \ - > ipconfig ... Show information.\n \ - > ipconfig /all ... Show detailed information\n \ - > ipconfig /renew ... renew all adapters\n \ - > ipconfig /renew EL* ... renew any connection that has its\n \ - name starting with EL\n \ - > ipconfig /release *Con* ... release all matching connections,\n \ - eg. ""Local Area Connection 1"" or\n \ - ""Local Area Connection 2""\n" -END +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +STRINGTABLE DISCARDABLE +BEGIN + IDS_BCAST "Broadcast" + IDS_P2P "Peer To Peer" + IDS_MIXED "Mixed" + IDS_HYBRID "Hybrid" + IDS_UNKNOWN "unknown" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_OTHER "Other Type Of Adapter" + IDS_ETH "Ethernet Adapter" + IDS_TOKEN "Token Ring Adapter" + IDS_FDDI "FDDI Adapter" + IDS_PPP "PPP Adapter" + IDS_LOOP "Loopback Adapter" + IDS_SLIP "SLIP Adapter" +END + +STRINGTABLE DISCARDABLE +BEGIN +/* Please keep the spacing/formatting as per En.rc when translating */ + IDS_USAGE + "\nUSAGE:\n \ + ipconfig [/? | /all | /renew [adapter] | /release [adapter] |\n \ + /flushdns | /displaydns | /registerdns |\n \ + /showclassid adapter |\n \ + /setclassid adapter [classid] ]\n \ + \n \ + where\n \ + adapter Connection name\n \ + (wildcard characters * and ? allowed, see examples)\n \ + \n \ + Options:\n \ + /? Display this help message\n \ + /all Display full configuration information.\n \ + /release Release the IP address for the specified adapter.\n \ + /renew Renew the IP address for the specified adapter.\n \ + /flushdns Purges the DNS Resolver cache.\n \ + /registerdns Refreshes all DHCP leases and re-registers DNS names.\n \ + /displaydns Display the contents of the DNS Resolver Cache.\n \ + /showclassid Displays all the dhcp class IDs allowed for adapter.\n \ + /setclassid Modifies the dhcp class id.\n \ + \n \ + The default is to display only the IP address, subnet mask and\n \ + default gateway for each adapter bound to TCP/IP.\n \ + \n \ + For Release and Renew, if no adapter name is specified, then the IP address\n \ + leases for all adapters bound to TCP/IP will be released or renewed.\n \ + \n \ + For Setclassid, if no ClassId is specified, then the ClassId is removed.\n \ + \n \ + Examples:\n \ + > ipconfig ... Show information.\n \ + > ipconfig /all ... Show detailed information\n \ + > ipconfig /renew ... renew all adapters\n \ + > ipconfig /renew EL* ... renew any connection that has its\n \ + name starting with EL\n \ + > ipconfig /release *Con* ... release all matching connections,\n \ + eg. ""Local Area Connection 1"" or\n \ + ""Local Area Connection 2""\n" +END diff --git a/reactos/base/applications/network/ipconfig/resource.h b/reactos/base/applications/network/ipconfig/resource.h index fe99c936db7..d6a5c19d763 100644 --- a/reactos/base/applications/network/ipconfig/resource.h +++ b/reactos/base/applications/network/ipconfig/resource.h @@ -1,18 +1,18 @@ - -#define IDS_USAGE 100 - -#define IDS_UNKNOWN 101 - -#define IDS_BCAST 102 -#define IDS_P2P 103 -#define IDS_MIXED 104 -#define IDS_HYBRID 105 - -/* adapter types */ -#define IDS_OTHER 106 -#define IDS_ETH 107 -#define IDS_TOKEN 108 -#define IDS_FDDI 109 -#define IDS_PPP 110 -#define IDS_LOOP 111 -#define IDS_SLIP 112 + +#define IDS_USAGE 100 + +#define IDS_UNKNOWN 101 + +#define IDS_BCAST 102 +#define IDS_P2P 103 +#define IDS_MIXED 104 +#define IDS_HYBRID 105 + +/* adapter types */ +#define IDS_OTHER 106 +#define IDS_ETH 107 +#define IDS_TOKEN 108 +#define IDS_FDDI 109 +#define IDS_PPP 110 +#define IDS_LOOP 111 +#define IDS_SLIP 112 diff --git a/reactos/base/applications/network/net/net.rbuild b/reactos/base/applications/network/net/net.rbuild index 17fd50f8b7c..f4ea050f61a 100644 --- a/reactos/base/applications/network/net/net.rbuild +++ b/reactos/base/applications/network/net/net.rbuild @@ -1,16 +1,16 @@ - - - . - - - 0x600 - 0x501 - kernel32 - ws2_32 - main.c - cmdstart.c - cmdStop.c - help.c - process.c - - + + + . + + + 0x600 + 0x501 + kernel32 + ws2_32 + main.c + cmdstart.c + cmdStop.c + help.c + process.c + + diff --git a/reactos/base/applications/notepad/notepad.h b/reactos/base/applications/notepad/notepad.h index a3e57375a16..0d4a9790150 100644 --- a/reactos/base/applications/notepad/notepad.h +++ b/reactos/base/applications/notepad/notepad.h @@ -1,14 +1,14 @@ -#define UNICODE -#define _UNICODE - -#include -#include -#include -#include -#include -#include -#include - -#include "main.h" -#include "dialog.h" - +#define UNICODE +#define _UNICODE + +#include +#include +#include +#include +#include +#include +#include + +#include "main.h" +#include "dialog.h" + diff --git a/reactos/base/applications/regedit/lang/Hu.rc b/reactos/base/applications/regedit/lang/Hu.rc index 13f536032a7..60baba8a411 100644 --- a/reactos/base/applications/regedit/lang/Hu.rc +++ b/reactos/base/applications/regedit/lang/Hu.rc @@ -1,407 +1,407 @@ -/* - * Regedit resources - * - * Copyright 2002 Robert Dickenson - * Hungarian Translation by Robert Horvath - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT - -ID_ACCEL ACCELERATORS -{ - VK_DELETE, ID_EDIT_DELETE, VIRTKEY, NOINVERT - "^F", ID_EDIT_FIND - VK_F3, ID_EDIT_FINDNEXT, VIRTKEY, NOINVERT - VK_F5, ID_VIEW_REFRESH, VIRTKEY, NOINVERT - VK_F1, ID_HELP_HELPTOPICS, VIRTKEY, NOINVERT -} - -/* - * Menu - */ - -IDC_REGEDIT MENU DISCARDABLE -BEGIN - POPUP "&File" - BEGIN - MENUITEM "&Kilйpйs", ID_REGISTRY_EXIT - END - POPUP "&Sъgу" - BEGIN - MENUITEM "&Nйvjegy ...", ID_HELP_ABOUT - END -END - -IDR_REGEDIT_MENU MENU DISCARDABLE -BEGIN - POPUP "&Registry" - BEGIN - MENUITEM "&Import Registry File...", ID_REGISTRY_IMPORTREGISTRYFILE - - MENUITEM "&Export Registry File...", ID_REGISTRY_EXPORTREGISTRYFILE - - MENUITEM SEPARATOR - MENUITEM "&Connect Network Registry...", - ID_REGISTRY_CONNECTNETWORKREGISTRY - - MENUITEM "&Disconnect Network Registry...", - ID_REGISTRY_DISCONNECTNETWORKREGISTRY - , GRAYED - MENUITEM SEPARATOR - MENUITEM "&Print\tCtrl+P", ID_REGISTRY_PRINT, GRAYED - MENUITEM SEPARATOR - MENUITEM "E&xit", ID_REGISTRY_EXIT - END - POPUP "&Edit" - BEGIN - MENUITEM "&Modify", ID_EDIT_MODIFY - MENUITEM SEPARATOR - POPUP "&New" - BEGIN - MENUITEM "&Key", ID_EDIT_NEW_KEY - MENUITEM SEPARATOR - MENUITEM "&String Value", ID_EDIT_NEW_STRINGVALUE - MENUITEM "&Binary Value", ID_EDIT_NEW_BINARYVALUE - MENUITEM "&DWORD Value", ID_EDIT_NEW_DWORDVALUE - END - MENUITEM SEPARATOR - MENUITEM "&Permissions...", ID_EDIT_PERMISSIONS - MENUITEM SEPARATOR - MENUITEM "&Delete\tDel", ID_EDIT_DELETE - MENUITEM "&Rename", ID_EDIT_RENAME - MENUITEM SEPARATOR - MENUITEM "&Copy Key Name", ID_EDIT_COPYKEYNAME - MENUITEM SEPARATOR - MENUITEM "&Find\tCtrl+F", ID_EDIT_FIND, GRAYED - MENUITEM "Find Ne&xt\tF3", ID_EDIT_FINDNEXT, GRAYED - END - POPUP "&View" - BEGIN - MENUITEM "Status &Bar", ID_VIEW_STATUSBAR - MENUITEM SEPARATOR - MENUITEM "Sp&lit", ID_VIEW_SPLIT - MENUITEM SEPARATOR - MENUITEM "&Refresh\tF5", ID_VIEW_REFRESH - END - POPUP "&Favorites" - BEGIN - MENUITEM "&Add to Favorites", ID_FAVOURITES_ADDTOFAVOURITES - , GRAYED - MENUITEM "&Remove Favorite", ID_FAVOURITES_REMOVEFAVOURITE - , GRAYED - END - POPUP "&Help" - BEGIN - MENUITEM "&Help Topics\tF1", ID_HELP_HELPTOPICS - MENUITEM SEPARATOR - MENUITEM "&About Registry Editor", ID_HELP_ABOUT - END -END - -IDR_POPUP_MENUS MENU DISCARDABLE -BEGIN - POPUP "" - BEGIN - MENUITEM "&Modify", ID_EDIT_MODIFY - MENUITEM "Modify Binary Data", ID_EDIT_MODIFY_BIN - MENUITEM SEPARATOR - MENUITEM "&Delete\tDel", ID_EDIT_DELETE - MENUITEM "&Rename", ID_EDIT_RENAME - END - POPUP "" - BEGIN - POPUP "&New" - BEGIN - MENUITEM "&Key", ID_EDIT_NEW_KEY - MENUITEM SEPARATOR - MENUITEM "&String Value", ID_EDIT_NEW_STRINGVALUE - MENUITEM "&Binary Value", ID_EDIT_NEW_BINARYVALUE - MENUITEM "&DWORD Value", ID_EDIT_NEW_DWORDVALUE - END - END - POPUP "" - BEGIN - MENUITEM "Expand/Collapse", ID_TREE_EXPANDBRANCH - POPUP "&New" - BEGIN - MENUITEM "&Key", ID_EDIT_NEW_KEY - MENUITEM SEPARATOR - MENUITEM "&String Value", ID_EDIT_NEW_STRINGVALUE - MENUITEM "&Binary Value", ID_EDIT_NEW_BINARYVALUE - MENUITEM "&DWORD Value", ID_EDIT_NEW_DWORDVALUE - END - MENUITEM "&Find", ID_EDIT_FIND, GRAYED - MENUITEM "&Delete", ID_TREE_DELETE - MENUITEM "&Rename", ID_TREE_RENAME - MENUITEM SEPARATOR - MENUITEM "&Copy Key Name", ID_EDIT_COPYKEYNAME - END -END - - -/* - * Dialog - */ - -IDD_EDIT_STRING DIALOG 32, 24, 252, 84 -STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | - WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Edit String" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "Value &name:",IDC_STATIC,6,6,134,8 - EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY - LTEXT "&Value data:",IDC_STATIC,6,35,161,8 - EDITTEXT IDC_VALUE_DATA,6,46,240,12,ES_AUTOHSCROLL - DEFPUSHBUTTON "OK",IDOK,142,64,50,14 - PUSHBUTTON "Cancel",IDCANCEL,196,64,50,14 -END - -IDD_EDIT_MULTI_STRING DIALOG 32, 24, 252, 174 -STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | - WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Edit Multi-String" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "Value &name:",IDC_STATIC,6,6,134,8 - EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY - LTEXT "&Value data:",IDC_STATIC,6,35,161,8 - EDITTEXT IDC_VALUE_DATA,6,46,240,102,ES_AUTOHSCROLL | ES_MULTILINE | ES_WANTRETURN | ES_AUTOVSCROLL | WS_VSCROLL - DEFPUSHBUTTON "OK",IDOK,142,154,50,14 - PUSHBUTTON "Cancel",IDCANCEL,196,154,50,14 -END - -IDD_EDIT_BIN_DATA DIALOG 32, 24, 252, 174 -STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | - WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Edit Binary Value" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "Value &name:",IDC_STATIC,6,6,134,8 - EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY - LTEXT "&Value data:",IDC_STATIC,6,35,161,8 - CONTROL "",IDC_VALUE_DATA,"HexEdit32",WS_VSCROLL | WS_BORDER | WS_TABSTOP,6,46,240,102 - DEFPUSHBUTTON "OK",IDOK,142,154,50,14 - PUSHBUTTON "Cancel",IDCANCEL,196,154,50,14 -END - - -IDD_EDIT_DWORD DIALOG 32, 24, 252, 104 -STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | - WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Edit DWORD" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "Value &name:",IDC_STATIC,6,6,134,8 - EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY - LTEXT "&Value data:",IDC_STATIC,6,35,161,8 - EDITTEXT IDC_VALUE_DATA,6,46,116,12,ES_AUTOHSCROLL - GROUPBOX "Base",IDC_STATIC,130,35,116,39 - AUTORADIOBUTTON "&Hexadecimal",IDC_FORMAT_HEX,141,46,60,10,WS_GROUP - AUTORADIOBUTTON "&Decimal",IDC_FORMAT_DEC,141,59,60,10 - DEFPUSHBUTTON "OK",IDOK,142,82,50,14 - PUSHBUTTON "Cancel",IDCANCEL,196,82,50,14 -END - -/* - * String Table - */ - -STRINGTABLE DISCARDABLE -BEGIN - IDS_LIST_COLUMN_NAME "Name" - IDS_LIST_COLUMN_TYPE "Type" - IDS_LIST_COLUMN_DATA "Data" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APP_TITLE "Registry Editor" - IDC_REGEDIT "REGEDIT" - IDC_REGEDIT_FRAME "REGEDIT_FRAME" -END - -STRINGTABLE DISCARDABLE -BEGIN - ID_REGISTRY_MENU "Contains commands for working with the whole registry" - ID_EDIT_MENU "Contains commands for editing values or keys" - ID_VIEW_MENU "Contains commands for customising the registry window" - ID_FAVOURITES_MENU "Contains commands for accessing frequently used keys" - ID_HELP_MENU "Contains commands for displaying help and information about registry editor" - ID_EDIT_NEW_MENU "Contains commands for creating new keys or values" -END - -STRINGTABLE DISCARDABLE -BEGIN - ID_EDIT_MODIFY "Modifies the value's data" - ID_EDIT_NEW_KEY "Adds a new key" - ID_EDIT_NEW_STRINGVALUE "Adds a new string value" - ID_EDIT_NEW_BINARYVALUE "Adds a new binary value" - ID_EDIT_NEW_DWORDVALUE "Adds a new double word value" - ID_REGISTRY_IMPORTREGISTRYFILE "Imports a text file into the registry" - ID_REGISTRY_EXPORTREGISTRYFILE - "Exports all or part of the registry to a text file" - ID_REGISTRY_CONNECTNETWORKREGISTRY - "Connects to a remote computer's registry" - ID_REGISTRY_DISCONNECTNETWORKREGISTRY - "Disconnects from a remote computer's registry" - ID_REGISTRY_PRINT "Prints all or part of the registry" -/* ID_HELP_HELPTOPICS "Opens registry editor help" */ - ID_HELP_ABOUT "Displays program information, version number and copyright" -END - -STRINGTABLE DISCARDABLE -BEGIN - ID_REGISTRY_EXIT "Quits the registry editor" - ID_FAVOURITES_ADDTOFAVOURITES "Adds keys to the favourites list" - ID_FAVOURITES_REMOVEFAVOURITE "Removes keys from the favourites list" - ID_VIEW_STATUSBAR "Shows or hides the status bar" - ID_VIEW_SPLIT "Change position of split between two panes" - ID_VIEW_REFRESH "Refreshes the window" - ID_EDIT_DELETE "Deletes the selection" - ID_EDIT_RENAME "Renames the selection" - ID_EDIT_COPYKEYNAME "Copies the name of the selected key to the clipboard" - ID_EDIT_FIND "Finds a text string in a key, value or data" - ID_EDIT_FINDNEXT "Finds next occurrence of text specified in previous search" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_ERROR "Error" - IDS_WARNING "Warning" - IDS_BAD_VALUE "Can't query value '%s'" - IDS_UNSUPPORTED_TYPE "Can't edit keys of this type (%ld)" - IDS_TOO_BIG_VALUE "Value is too big (%ld)" - IDS_MULTI_SZ_EMPTY_STRING "Data of type REG_MULTI_SZ cannot contain empty strings.\nThe empty strings have been removed from the list." - IDS_QUERY_DELETE_KEY_ONE "Are you sure you want to delete this key?" - IDS_QUERY_DELETE_KEY_MORE "Are you sure you want to delete these keys?" - IDS_QUERY_DELETE_KEY_CONFIRM "Confirm Key Delete" - IDS_QUERY_DELETE_ONE "Are you sure you want to delete this value?" - IDS_QUERY_DELETE_MORE "Are you sure you want to delete these values?" - IDS_QUERY_DELETE_CONFIRM "Confirm Value Delete" - IDS_ERR_DELVAL_CAPTION "Error Deleting Values" - IDS_ERR_DELETEVALUE "Unable to delete all specified values!" - IDS_ERR_RENVAL_CAPTION "Error Renaming Value" - IDS_ERR_RENVAL_TOEMPTY "Cannot rename %s. The specified value name is empty. Try another name and try again." - IDS_NEW_KEY "New Key #%d" - IDS_NEW_VALUE "New Value #%d" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_BINARY_EMPTY "(zero-length binary value)" - IDS_DEFAULT_VALUE_NAME "(Default)" - IDS_VALUE_NOT_SET "(value not set)" - IDS_UNKNOWN_TYPE "Unknown type: (0x%lx)" - IDS_MY_COMPUTER "My Computer" - IDS_IMPORT_REG_FILE "Import Registry File" - IDS_EXPORT_REG_FILE "Export Registry File" - IDS_INVALID_DWORD "(invalid DWORD value)" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_FLT_REGFILES "Registration Files" - IDS_FLT_REGFILES_FLT "*.reg" - IDS_FLT_REGEDIT4 "Win9x/NT4 Registration Files (REGEDIT4)" - IDS_FLT_REGEDIT4_FLT "*.reg" - IDS_FLT_ALLFILES "All Files (*.*)" - IDS_FLT_ALLFILES_FLT "*.*" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_ACCESS_FULLCONTROL "Full Control" - IDS_ACCESS_READ "Read" - IDS_ACCESS_QUERYVALUE "Query Value" - IDS_ACCESS_SETVALUE "Set Value" - IDS_ACCESS_CREATESUBKEY "Create Subkey" - IDS_ACCESS_ENUMERATESUBKEYS "Enumerate Subkeys" - IDS_ACCESS_NOTIFY "Notify" - IDS_ACCESS_CREATELINK "Create Link" - IDS_ACCESS_DELETE "Tцrlйs" - IDS_ACCESS_WRITEDAC "Write DAC" - IDS_ACCESS_WRITEOWNER "Write Owner" - IDS_ACCESS_READCONTROL "Read Control" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_INHERIT_THISKEYONLY "This key only" - IDS_INHERIT_THISKEYANDSUBKEYS "This key and subkeys" - IDS_INHERIT_SUBKEYSONLY "Subkeys only" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_EXPAND "&Expand" - IDS_COLLAPSE "&Collapse" - IDS_GOTO_SUGGESTED_KEY "&Go to '%s'" -END - -/*****************************************************************/ - - -/* - * Dialog - */ - -IDD_EXPORTRANGE DIALOG DISCARDABLE 50, 50, 370, 50 -STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | - WS_BORDER -FONT 8, "MS Sans Serif" -BEGIN - GROUPBOX "Export Range",IDC_STATIC,2,0,366,48 - CONTROL "&Mind",IDC_EXPORT_ALL,"Button",BS_AUTORADIOBUTTON,10,10, 29,11 - CONTROL "S&elected Branch",IDC_EXPORT_BRANCH,"Button",BS_AUTORADIOBUTTON,10,22, 100,11 - EDITTEXT IDC_EXPORT_BRANCH_TEXT,30,34,335,12 -END - -IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Dialog" -FONT 8, "MS Sans Serif" -BEGIN - DEFPUSHBUTTON "OK",IDOK,130,7,50,14 - PUSHBUTTON "Mйgse",IDCANCEL,130,24,50,14 -END - - -/* - * TEXTINCLUDE - */ - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "resource.h\0" -END - - - -/* - * String Table - */ - -/* - *STRINGTABLE DISCARDABLE - *BEGIN - * ID_HELP_HELPTOPICS "Opens Registry Editor Help." - * ID_HELP_ABOUT "Displays program information, version number, and copyright." - *END - */ - -/*****************************************************************/ +/* + * Regedit resources + * + * Copyright 2002 Robert Dickenson + * Hungarian Translation by Robert Horvath + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT + +ID_ACCEL ACCELERATORS +{ + VK_DELETE, ID_EDIT_DELETE, VIRTKEY, NOINVERT + "^F", ID_EDIT_FIND + VK_F3, ID_EDIT_FINDNEXT, VIRTKEY, NOINVERT + VK_F5, ID_VIEW_REFRESH, VIRTKEY, NOINVERT + VK_F1, ID_HELP_HELPTOPICS, VIRTKEY, NOINVERT +} + +/* + * Menu + */ + +IDC_REGEDIT MENU DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&Kilйpйs", ID_REGISTRY_EXIT + END + POPUP "&Sъgу" + BEGIN + MENUITEM "&Nйvjegy ...", ID_HELP_ABOUT + END +END + +IDR_REGEDIT_MENU MENU DISCARDABLE +BEGIN + POPUP "&Registry" + BEGIN + MENUITEM "&Import Registry File...", ID_REGISTRY_IMPORTREGISTRYFILE + + MENUITEM "&Export Registry File...", ID_REGISTRY_EXPORTREGISTRYFILE + + MENUITEM SEPARATOR + MENUITEM "&Connect Network Registry...", + ID_REGISTRY_CONNECTNETWORKREGISTRY + + MENUITEM "&Disconnect Network Registry...", + ID_REGISTRY_DISCONNECTNETWORKREGISTRY + , GRAYED + MENUITEM SEPARATOR + MENUITEM "&Print\tCtrl+P", ID_REGISTRY_PRINT, GRAYED + MENUITEM SEPARATOR + MENUITEM "E&xit", ID_REGISTRY_EXIT + END + POPUP "&Edit" + BEGIN + MENUITEM "&Modify", ID_EDIT_MODIFY + MENUITEM SEPARATOR + POPUP "&New" + BEGIN + MENUITEM "&Key", ID_EDIT_NEW_KEY + MENUITEM SEPARATOR + MENUITEM "&String Value", ID_EDIT_NEW_STRINGVALUE + MENUITEM "&Binary Value", ID_EDIT_NEW_BINARYVALUE + MENUITEM "&DWORD Value", ID_EDIT_NEW_DWORDVALUE + END + MENUITEM SEPARATOR + MENUITEM "&Permissions...", ID_EDIT_PERMISSIONS + MENUITEM SEPARATOR + MENUITEM "&Delete\tDel", ID_EDIT_DELETE + MENUITEM "&Rename", ID_EDIT_RENAME + MENUITEM SEPARATOR + MENUITEM "&Copy Key Name", ID_EDIT_COPYKEYNAME + MENUITEM SEPARATOR + MENUITEM "&Find\tCtrl+F", ID_EDIT_FIND, GRAYED + MENUITEM "Find Ne&xt\tF3", ID_EDIT_FINDNEXT, GRAYED + END + POPUP "&View" + BEGIN + MENUITEM "Status &Bar", ID_VIEW_STATUSBAR + MENUITEM SEPARATOR + MENUITEM "Sp&lit", ID_VIEW_SPLIT + MENUITEM SEPARATOR + MENUITEM "&Refresh\tF5", ID_VIEW_REFRESH + END + POPUP "&Favorites" + BEGIN + MENUITEM "&Add to Favorites", ID_FAVOURITES_ADDTOFAVOURITES + , GRAYED + MENUITEM "&Remove Favorite", ID_FAVOURITES_REMOVEFAVOURITE + , GRAYED + END + POPUP "&Help" + BEGIN + MENUITEM "&Help Topics\tF1", ID_HELP_HELPTOPICS + MENUITEM SEPARATOR + MENUITEM "&About Registry Editor", ID_HELP_ABOUT + END +END + +IDR_POPUP_MENUS MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Modify", ID_EDIT_MODIFY + MENUITEM "Modify Binary Data", ID_EDIT_MODIFY_BIN + MENUITEM SEPARATOR + MENUITEM "&Delete\tDel", ID_EDIT_DELETE + MENUITEM "&Rename", ID_EDIT_RENAME + END + POPUP "" + BEGIN + POPUP "&New" + BEGIN + MENUITEM "&Key", ID_EDIT_NEW_KEY + MENUITEM SEPARATOR + MENUITEM "&String Value", ID_EDIT_NEW_STRINGVALUE + MENUITEM "&Binary Value", ID_EDIT_NEW_BINARYVALUE + MENUITEM "&DWORD Value", ID_EDIT_NEW_DWORDVALUE + END + END + POPUP "" + BEGIN + MENUITEM "Expand/Collapse", ID_TREE_EXPANDBRANCH + POPUP "&New" + BEGIN + MENUITEM "&Key", ID_EDIT_NEW_KEY + MENUITEM SEPARATOR + MENUITEM "&String Value", ID_EDIT_NEW_STRINGVALUE + MENUITEM "&Binary Value", ID_EDIT_NEW_BINARYVALUE + MENUITEM "&DWORD Value", ID_EDIT_NEW_DWORDVALUE + END + MENUITEM "&Find", ID_EDIT_FIND, GRAYED + MENUITEM "&Delete", ID_TREE_DELETE + MENUITEM "&Rename", ID_TREE_RENAME + MENUITEM SEPARATOR + MENUITEM "&Copy Key Name", ID_EDIT_COPYKEYNAME + END +END + + +/* + * Dialog + */ + +IDD_EDIT_STRING DIALOG 32, 24, 252, 84 +STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | + WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Edit String" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Value &name:",IDC_STATIC,6,6,134,8 + EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY + LTEXT "&Value data:",IDC_STATIC,6,35,161,8 + EDITTEXT IDC_VALUE_DATA,6,46,240,12,ES_AUTOHSCROLL + DEFPUSHBUTTON "OK",IDOK,142,64,50,14 + PUSHBUTTON "Cancel",IDCANCEL,196,64,50,14 +END + +IDD_EDIT_MULTI_STRING DIALOG 32, 24, 252, 174 +STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | + WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Edit Multi-String" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Value &name:",IDC_STATIC,6,6,134,8 + EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY + LTEXT "&Value data:",IDC_STATIC,6,35,161,8 + EDITTEXT IDC_VALUE_DATA,6,46,240,102,ES_AUTOHSCROLL | ES_MULTILINE | ES_WANTRETURN | ES_AUTOVSCROLL | WS_VSCROLL + DEFPUSHBUTTON "OK",IDOK,142,154,50,14 + PUSHBUTTON "Cancel",IDCANCEL,196,154,50,14 +END + +IDD_EDIT_BIN_DATA DIALOG 32, 24, 252, 174 +STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | + WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Edit Binary Value" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Value &name:",IDC_STATIC,6,6,134,8 + EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY + LTEXT "&Value data:",IDC_STATIC,6,35,161,8 + CONTROL "",IDC_VALUE_DATA,"HexEdit32",WS_VSCROLL | WS_BORDER | WS_TABSTOP,6,46,240,102 + DEFPUSHBUTTON "OK",IDOK,142,154,50,14 + PUSHBUTTON "Cancel",IDCANCEL,196,154,50,14 +END + + +IDD_EDIT_DWORD DIALOG 32, 24, 252, 104 +STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | + WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Edit DWORD" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Value &name:",IDC_STATIC,6,6,134,8 + EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY + LTEXT "&Value data:",IDC_STATIC,6,35,161,8 + EDITTEXT IDC_VALUE_DATA,6,46,116,12,ES_AUTOHSCROLL + GROUPBOX "Base",IDC_STATIC,130,35,116,39 + AUTORADIOBUTTON "&Hexadecimal",IDC_FORMAT_HEX,141,46,60,10,WS_GROUP + AUTORADIOBUTTON "&Decimal",IDC_FORMAT_DEC,141,59,60,10 + DEFPUSHBUTTON "OK",IDOK,142,82,50,14 + PUSHBUTTON "Cancel",IDCANCEL,196,82,50,14 +END + +/* + * String Table + */ + +STRINGTABLE DISCARDABLE +BEGIN + IDS_LIST_COLUMN_NAME "Name" + IDS_LIST_COLUMN_TYPE "Type" + IDS_LIST_COLUMN_DATA "Data" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_APP_TITLE "Registry Editor" + IDC_REGEDIT "REGEDIT" + IDC_REGEDIT_FRAME "REGEDIT_FRAME" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_REGISTRY_MENU "Contains commands for working with the whole registry" + ID_EDIT_MENU "Contains commands for editing values or keys" + ID_VIEW_MENU "Contains commands for customising the registry window" + ID_FAVOURITES_MENU "Contains commands for accessing frequently used keys" + ID_HELP_MENU "Contains commands for displaying help and information about registry editor" + ID_EDIT_NEW_MENU "Contains commands for creating new keys or values" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_EDIT_MODIFY "Modifies the value's data" + ID_EDIT_NEW_KEY "Adds a new key" + ID_EDIT_NEW_STRINGVALUE "Adds a new string value" + ID_EDIT_NEW_BINARYVALUE "Adds a new binary value" + ID_EDIT_NEW_DWORDVALUE "Adds a new double word value" + ID_REGISTRY_IMPORTREGISTRYFILE "Imports a text file into the registry" + ID_REGISTRY_EXPORTREGISTRYFILE + "Exports all or part of the registry to a text file" + ID_REGISTRY_CONNECTNETWORKREGISTRY + "Connects to a remote computer's registry" + ID_REGISTRY_DISCONNECTNETWORKREGISTRY + "Disconnects from a remote computer's registry" + ID_REGISTRY_PRINT "Prints all or part of the registry" +/* ID_HELP_HELPTOPICS "Opens registry editor help" */ + ID_HELP_ABOUT "Displays program information, version number and copyright" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_REGISTRY_EXIT "Quits the registry editor" + ID_FAVOURITES_ADDTOFAVOURITES "Adds keys to the favourites list" + ID_FAVOURITES_REMOVEFAVOURITE "Removes keys from the favourites list" + ID_VIEW_STATUSBAR "Shows or hides the status bar" + ID_VIEW_SPLIT "Change position of split between two panes" + ID_VIEW_REFRESH "Refreshes the window" + ID_EDIT_DELETE "Deletes the selection" + ID_EDIT_RENAME "Renames the selection" + ID_EDIT_COPYKEYNAME "Copies the name of the selected key to the clipboard" + ID_EDIT_FIND "Finds a text string in a key, value or data" + ID_EDIT_FINDNEXT "Finds next occurrence of text specified in previous search" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_ERROR "Error" + IDS_WARNING "Warning" + IDS_BAD_VALUE "Can't query value '%s'" + IDS_UNSUPPORTED_TYPE "Can't edit keys of this type (%ld)" + IDS_TOO_BIG_VALUE "Value is too big (%ld)" + IDS_MULTI_SZ_EMPTY_STRING "Data of type REG_MULTI_SZ cannot contain empty strings.\nThe empty strings have been removed from the list." + IDS_QUERY_DELETE_KEY_ONE "Are you sure you want to delete this key?" + IDS_QUERY_DELETE_KEY_MORE "Are you sure you want to delete these keys?" + IDS_QUERY_DELETE_KEY_CONFIRM "Confirm Key Delete" + IDS_QUERY_DELETE_ONE "Are you sure you want to delete this value?" + IDS_QUERY_DELETE_MORE "Are you sure you want to delete these values?" + IDS_QUERY_DELETE_CONFIRM "Confirm Value Delete" + IDS_ERR_DELVAL_CAPTION "Error Deleting Values" + IDS_ERR_DELETEVALUE "Unable to delete all specified values!" + IDS_ERR_RENVAL_CAPTION "Error Renaming Value" + IDS_ERR_RENVAL_TOEMPTY "Cannot rename %s. The specified value name is empty. Try another name and try again." + IDS_NEW_KEY "New Key #%d" + IDS_NEW_VALUE "New Value #%d" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_BINARY_EMPTY "(zero-length binary value)" + IDS_DEFAULT_VALUE_NAME "(Default)" + IDS_VALUE_NOT_SET "(value not set)" + IDS_UNKNOWN_TYPE "Unknown type: (0x%lx)" + IDS_MY_COMPUTER "My Computer" + IDS_IMPORT_REG_FILE "Import Registry File" + IDS_EXPORT_REG_FILE "Export Registry File" + IDS_INVALID_DWORD "(invalid DWORD value)" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_FLT_REGFILES "Registration Files" + IDS_FLT_REGFILES_FLT "*.reg" + IDS_FLT_REGEDIT4 "Win9x/NT4 Registration Files (REGEDIT4)" + IDS_FLT_REGEDIT4_FLT "*.reg" + IDS_FLT_ALLFILES "All Files (*.*)" + IDS_FLT_ALLFILES_FLT "*.*" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_ACCESS_FULLCONTROL "Full Control" + IDS_ACCESS_READ "Read" + IDS_ACCESS_QUERYVALUE "Query Value" + IDS_ACCESS_SETVALUE "Set Value" + IDS_ACCESS_CREATESUBKEY "Create Subkey" + IDS_ACCESS_ENUMERATESUBKEYS "Enumerate Subkeys" + IDS_ACCESS_NOTIFY "Notify" + IDS_ACCESS_CREATELINK "Create Link" + IDS_ACCESS_DELETE "Tцrlйs" + IDS_ACCESS_WRITEDAC "Write DAC" + IDS_ACCESS_WRITEOWNER "Write Owner" + IDS_ACCESS_READCONTROL "Read Control" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_INHERIT_THISKEYONLY "This key only" + IDS_INHERIT_THISKEYANDSUBKEYS "This key and subkeys" + IDS_INHERIT_SUBKEYSONLY "Subkeys only" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_EXPAND "&Expand" + IDS_COLLAPSE "&Collapse" + IDS_GOTO_SUGGESTED_KEY "&Go to '%s'" +END + +/*****************************************************************/ + + +/* + * Dialog + */ + +IDD_EXPORTRANGE DIALOG DISCARDABLE 50, 50, 370, 50 +STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | + WS_BORDER +FONT 8, "MS Sans Serif" +BEGIN + GROUPBOX "Export Range",IDC_STATIC,2,0,366,48 + CONTROL "&Mind",IDC_EXPORT_ALL,"Button",BS_AUTORADIOBUTTON,10,10, 29,11 + CONTROL "S&elected Branch",IDC_EXPORT_BRANCH,"Button",BS_AUTORADIOBUTTON,10,22, 100,11 + EDITTEXT IDC_EXPORT_BRANCH_TEXT,30,34,335,12 +END + +IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Dialog" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "OK",IDOK,130,7,50,14 + PUSHBUTTON "Mйgse",IDCANCEL,130,24,50,14 +END + + +/* + * TEXTINCLUDE + */ + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + + + +/* + * String Table + */ + +/* + *STRINGTABLE DISCARDABLE + *BEGIN + * ID_HELP_HELPTOPICS "Opens Registry Editor Help." + * ID_HELP_ABOUT "Displays program information, version number, and copyright." + *END + */ + +/*****************************************************************/ diff --git a/reactos/base/applications/regedit/lang/Pl.rc b/reactos/base/applications/regedit/lang/Pl.rc index 1968edb2a82..0b7a7a61998 100644 --- a/reactos/base/applications/regedit/lang/Pl.rc +++ b/reactos/base/applications/regedit/lang/Pl.rc @@ -1,404 +1,404 @@ -/* - * Regedit resources - * - * Copyright 2005 Sebastian Gasiorek - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -LANGUAGE LANG_POLISH, SUBLANG_DEFAULT - -ID_ACCEL ACCELERATORS -{ - VK_DELETE, ID_EDIT_DELETE, VIRTKEY, NOINVERT - "^F", ID_EDIT_FIND - VK_F3, ID_EDIT_FINDNEXT, VIRTKEY, NOINVERT - VK_F5, ID_VIEW_REFRESH, VIRTKEY, NOINVERT - VK_F1, ID_HELP_HELPTOPICS, VIRTKEY, NOINVERT -} - -/* - * Menu - */ - -IDC_REGEDIT MENU DISCARDABLE -BEGIN - POPUP "&Plik" - BEGIN - MENUITEM "Za&koсcz", ID_REGISTRY_EXIT - END - POPUP "Pomo&c" - BEGIN - MENUITEM "&Informacje ...", ID_HELP_ABOUT - END -END - -IDR_REGEDIT_MENU MENU DISCARDABLE -BEGIN - POPUP "&Rejestr" - BEGIN - MENUITEM "&Importuj plik rejestru...", ID_REGISTRY_IMPORTREGISTRYFILE - - MENUITEM "&Eksportuj plik rejestru...", ID_REGISTRY_EXPORTREGISTRYFILE - - MENUITEM SEPARATOR - MENUITEM "&Podі№cz rejestr sieciowy...", - ID_REGISTRY_CONNECTNETWORKREGISTRY - - MENUITEM "&Odі№cz rejestr sieciowy...", - ID_REGISTRY_DISCONNECTNETWORKREGISTRY - , GRAYED - MENUITEM SEPARATOR - MENUITEM "&Drukuj\tCtrl+P", ID_REGISTRY_PRINT, GRAYED - MENUITEM SEPARATOR - MENUITEM "Za&koсcz", ID_REGISTRY_EXIT - END - POPUP "&Edycja" - BEGIN - MENUITEM "&Modyfikuj", ID_EDIT_MODIFY - MENUITEM SEPARATOR - POPUP "&Nowy" - BEGIN - MENUITEM "&Klucz", ID_EDIT_NEW_KEY - MENUITEM SEPARATOR - MENUITEM "Wartoњж &ci№gu", ID_EDIT_NEW_STRINGVALUE - MENUITEM "Wartoњж &binarna", ID_EDIT_NEW_BINARYVALUE - MENUITEM "Wartoњж &DWORD", ID_EDIT_NEW_DWORDVALUE - END - MENUITEM SEPARATOR - MENUITEM "&Uprawnienia...", ID_EDIT_PERMISSIONS - MENUITEM SEPARATOR - MENUITEM "U&suс\tDel", ID_EDIT_DELETE - MENUITEM "Z&mieс nazwк", ID_EDIT_RENAME - MENUITEM SEPARATOR - MENUITEM "&Kopiuj nazwк klucza", ID_EDIT_COPYKEYNAME - MENUITEM SEPARATOR - MENUITEM "&Znajdџ\tCtrl+F", ID_EDIT_FIND, GRAYED - MENUITEM "Zn&ajdџ nastкpny\tF3", ID_EDIT_FINDNEXT, GRAYED - END - POPUP "&Widok" - BEGIN - MENUITEM "&Pasek stanu", ID_VIEW_STATUSBAR - MENUITEM SEPARATOR - MENUITEM "Po&dziel", ID_VIEW_SPLIT - MENUITEM SEPARATOR - MENUITEM "&Odњwieї\tF5", ID_VIEW_REFRESH - END - POPUP "Ulu&bione" - BEGIN - MENUITEM "&Dodaj do ulubionych", ID_FAVOURITES_ADDTOFAVOURITES - , GRAYED - MENUITEM "&Usuс ulubiony", ID_FAVOURITES_REMOVEFAVOURITE - , GRAYED - END - POPUP "Pomo&c" - BEGIN - MENUITEM "&Tematy pomocy\tF1", ID_HELP_HELPTOPICS - MENUITEM SEPARATOR - MENUITEM "Edytor rejestru - i&nformacje", ID_HELP_ABOUT - END -END - -IDR_POPUP_MENUS MENU DISCARDABLE -BEGIN - POPUP "" - BEGIN - MENUITEM "&Modyfikuj", ID_EDIT_MODIFY - MENUITEM "Modyfikuj dane &binarne", ID_EDIT_MODIFY_BIN - MENUITEM SEPARATOR - MENUITEM "&Usuс\tDel", ID_EDIT_DELETE - MENUITEM "&Zmieс nazwк", ID_EDIT_RENAME - END - POPUP "" - BEGIN - POPUP "&Nowy" - BEGIN - MENUITEM "&Kklucz", ID_EDIT_NEW_KEY - MENUITEM SEPARATOR - MENUITEM "&Wartoњж ci№gu", ID_EDIT_NEW_STRINGVALUE - MENUITEM "Wartoњж &binarna", ID_EDIT_NEW_BINARYVALUE - MENUITEM "Wartoњж &DWORD", ID_EDIT_NEW_DWORDVALUE - END - END - POPUP "" - BEGIN - MENUITEM "Rozwiс/Zwiс", ID_TREE_EXPANDBRANCH - POPUP "&Nowy" - BEGIN - MENUITEM "&Klucz", ID_EDIT_NEW_KEY - MENUITEM SEPARATOR - MENUITEM "&Wartoњж ci№gu", ID_EDIT_NEW_STRINGVALUE - MENUITEM "Wartoњж &binarna", ID_EDIT_NEW_BINARYVALUE - MENUITEM "Wartoњж &DWORD", ID_EDIT_NEW_DWORDVALUE - END - MENUITEM "&Znajdџ", ID_EDIT_FIND, GRAYED - MENUITEM "U&suс", ID_TREE_DELETE - MENUITEM "Z&mieс nazwк", ID_TREE_RENAME - MENUITEM SEPARATOR - MENUITEM "&Kopiuj nazwк klucza", ID_EDIT_COPYKEYNAME - END -END - - -/* - * Dialog - */ - -IDD_EDIT_STRING DIALOG 32, 24, 252, 84 -STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | - WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Edytowanie ci№gu" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "&Nazwa wartoњci:",IDC_STATIC,6,6,134,8 - EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY - LTEXT "&Dane wartoњci:",IDC_STATIC,6,35,161,8 - EDITTEXT IDC_VALUE_DATA,6,46,240,12,ES_AUTOHSCROLL - DEFPUSHBUTTON "OK",IDOK,142,64,50,14 - PUSHBUTTON "Anuluj",IDCANCEL,196,64,50,14 -END - -IDD_EDIT_MULTI_STRING DIALOG 32, 24, 252, 174 -STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | - WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Edytowanie wieloci№gu" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "&Nazwa wartoњci:",IDC_STATIC,6,6,134,8 - EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY - LTEXT "Dane &wartoњci:",IDC_STATIC,6,35,161,8 - EDITTEXT IDC_VALUE_DATA,6,46,240,102,ES_AUTOHSCROLL | ES_MULTILINE | ES_WANTRETURN | ES_AUTOVSCROLL | WS_VSCROLL - DEFPUSHBUTTON "OK",IDOK,142,154,50,14 - PUSHBUTTON "Anuluj",IDCANCEL,196,154,50,14 -END - -IDD_EDIT_BIN_DATA DIALOG 32, 24, 252, 174 -STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | - WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Edytowanie wartoњci binarnej" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "&Nazwa wartoњci:",IDC_STATIC,6,6,134,8 - EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY - LTEXT "&Dane wartoњci:",IDC_STATIC,6,35,161,8 - CONTROL "",IDC_VALUE_DATA,"HexEdit32",WS_VSCROLL | WS_BORDER | WS_TABSTOP,6,46,240,102 - DEFPUSHBUTTON "OK",IDOK,142,154,50,14 - PUSHBUTTON "Anuluj",IDCANCEL,196,154,50,14 -END - - -IDD_EDIT_DWORD DIALOG 32, 24, 252, 104 -STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | - WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Edytowanie wartoњci DWORD" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "&Nazwa wartoњci:",IDC_STATIC,6,6,134,8 - EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY - LTEXT "Dane &wartoњci:",IDC_STATIC,6,35,161,8 - EDITTEXT IDC_VALUE_DATA,6,46,116,12,ES_AUTOHSCROLL - GROUPBOX "System",IDC_STATIC,130,35,116,39 - AUTORADIOBUTTON "&Szesnastkowy",IDC_FORMAT_HEX,141,46,60,10,WS_GROUP - AUTORADIOBUTTON "&Dziesiкtny",IDC_FORMAT_DEC,141,59,60,10 - DEFPUSHBUTTON "OK",IDOK,142,82,50,14 - PUSHBUTTON "Anuluj",IDCANCEL,196,82,50,14 -END - -/* - * String Table - */ - -STRINGTABLE DISCARDABLE -BEGIN - IDS_LIST_COLUMN_NAME "Nazwa" - IDS_LIST_COLUMN_TYPE "Typ" - IDS_LIST_COLUMN_DATA "Dane" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APP_TITLE "Edytor rejestru" - IDC_REGEDIT "REGEDIT" - IDC_REGEDIT_FRAME "REGEDIT_FRAME" -END - -STRINGTABLE DISCARDABLE -BEGIN - ID_REGISTRY_MENU "Zawiera polecenia do pracy z caіym rejestrem" - ID_EDIT_MENU "Zawiera polecenia do edycji wartoњci lub klucz" - ID_VIEW_MENU "Zawiera polecenia do dostosowywania okien rejestru" - ID_FAVOURITES_MENU "Zawiera polecenia dla dostкpu do czкsto uїywanych klawiszy" - ID_HELP_MENU "Zawiera polecenia do wyњwietlania Pomocy oraz informacji o Edytorze rejestru" - ID_EDIT_NEW_MENU "Zawiera polecenia do tworzenia nowych kluczy lub wartoњci" -END - -STRINGTABLE DISCARDABLE -BEGIN - ID_EDIT_MODIFY "Zmienia dane wartoњci" - ID_EDIT_NEW_KEY "Dodaje nowy klucz" - ID_EDIT_NEW_STRINGVALUE "Dodaje now№ wartoњж ci№gu" - ID_EDIT_NEW_BINARYVALUE "Dodaje now№ wartoњж binarn№" - ID_EDIT_NEW_DWORDVALUE "Dodaje now№ wartoњж DWORD" - ID_REGISTRY_IMPORTREGISTRYFILE "Importuje plik do rejestru" - ID_REGISTRY_EXPORTREGISTRYFILE - "Eksportuje caіoњж lub czкњж rejestru do pliku" - ID_REGISTRY_CONNECTNETWORKREGISTRY - "Poі№czenie z rejestrem zdalnego komputera" - ID_REGISTRY_DISCONNECTNETWORKREGISTRY - "Odі№cza od rejestru zdalnego komputera" - ID_REGISTRY_PRINT "Drukuje caіoњж lub czкњж rejestru" -/* ID_HELP_HELPTOPICS "Otwiera Pomoc Edytora rejestru" */ - ID_HELP_ABOUT "Wyњwietla informacje o programie, numerze wersji i prawach autorskich" -END - -STRINGTABLE DISCARDABLE -BEGIN - ID_REGISTRY_EXIT "Konczy dziaіanie Edytora rejestru" - ID_FAVOURITES_ADDTOFAVOURITES "Dodaje klawisze do listy elementуw ulubionych" - ID_FAVOURITES_REMOVEFAVOURITE "Usuwa klawisze z listy elementуw ulubionych" - ID_VIEW_STATUSBAR "Pokazuje lub ukrywa pasek stanu" - ID_VIEW_SPLIT "Zmienia pozycjк podziaіu pomiкdzy dwoma okienkami" - ID_VIEW_REFRESH "Odњwieїa okno" - ID_EDIT_DELETE "Usuwa zaznaczenie" - ID_EDIT_RENAME "Zmienia nazwк zaznaczenia" - ID_EDIT_COPYKEYNAME "Kopiuje nazwк wybranego klucza do Schowka" - ID_EDIT_FIND "Znajduje ci№g tekstowy w kluczu, wartoњci lub danych" - ID_EDIT_FINDNEXT "Znajduje nastкpne wyst№pienie tekstu okreњlonego przy poprzednim szukaniu" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_ERROR "Bі№d" - IDS_WARNING "Ostrzeїenie" - IDS_BAD_VALUE "Nie moїna odczytaж wartoњci '%s'" - IDS_UNSUPPORTED_TYPE "Nie moїna edytowaж kluczy tego typu (%ld)" - IDS_TOO_BIG_VALUE "Wartoњж jest za duїa (%ld)" - IDS_MULTI_SZ_EMPTY_STRING "Dane typu REG_MULTI_SZ nie mog№ zawieraж pustych ci№gуw.\nPusty ci№g zostaі usuniкty z listy." - IDS_QUERY_DELETE_KEY_ONE "Czy na pewno chcesz usun№ж ten klucz?" - IDS_QUERY_DELETE_KEY_MORE "Czy na pewno chcesz usun№ж te klucze?" - IDS_QUERY_DELETE_KEY_CONFIRM "Potwierdzenie usuniкcia klucza" - IDS_QUERY_DELETE_ONE "Czy na pewno chcesz usun№ж tк wartoњж?" - IDS_QUERY_DELETE_MORE "Czy na pewno chcesz usun№ж te wartoњci?" - IDS_QUERY_DELETE_CONFIRM "Potwierdzanie usuniкcia wartoњci" - IDS_ERR_DELVAL_CAPTION "Bі№d przy usuwaniu wartoњci" - IDS_ERR_DELETEVALUE "Nie moїna usun№ж wszystkich podanych wartoњci!" - IDS_ERR_RENVAL_CAPTION "Bі№d przy zmianie wartoњci" - IDS_ERR_RENVAL_TOEMPTY "Nie moїna zmieniж nazwy %s. Okreњlona nazwa klucza jest pusta. Wpisz inn№ nazwк i sprуbuj ponownie." - IDS_NEW_KEY "Nowy klucz #%d" - IDS_NEW_VALUE "Nowa wartoњж #%d" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_BINARY_EMPTY "(wartoњж binarna o dіugoњci zero)" - IDS_DEFAULT_VALUE_NAME "(Domyњlna)" - IDS_VALUE_NOT_SET "(wartoњж nie ustalona)" - IDS_UNKNOWN_TYPE "Nieznany typ: (0x%lx)" - IDS_MY_COMPUTER "Mуj komputer" - IDS_IMPORT_REG_FILE "Importuj plik rejestru" - IDS_EXPORT_REG_FILE "Eksportuj plik rejestru" - IDS_INVALID_DWORD "(niewіaњciwa wartoњж DWORD)" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_FLT_REGFILES "Pliki rejestru" - IDS_FLT_REGFILES_FLT "*.reg" - IDS_FLT_REGEDIT4 "Pliki rejestru Win9x/NT4 (REGEDIT4)" - IDS_FLT_REGEDIT4_FLT "*.reg" - IDS_FLT_ALLFILES "Wszystkie pliki (*.*)" - IDS_FLT_ALLFILES_FLT "*.*" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_ACCESS_FULLCONTROL "Peіna kontrola" - IDS_ACCESS_READ "Odczyt" - IDS_ACCESS_QUERYVALUE "Badanie wartoњci" - IDS_ACCESS_SETVALUE "Ustawianie wartoњci" - IDS_ACCESS_CREATESUBKEY "Tworzenie podklucza" - IDS_ACCESS_ENUMERATESUBKEYS "Wyliczanie podkluczy" - IDS_ACCESS_NOTIFY "Powiadamianie" - IDS_ACCESS_CREATELINK "Tworzenie і№cza" - IDS_ACCESS_DELETE "Usuс" - IDS_ACCESS_WRITEDAC "Zapisywanie DAC" - IDS_ACCESS_WRITEOWNER "Zapisywanie wіaњciciela" - IDS_ACCESS_READCONTROL "Kontrola odczytu" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_INHERIT_THISKEYONLY "Tylko ten klucz" - IDS_INHERIT_THISKEYANDSUBKEYS "Ten klucz i podklucze" - IDS_INHERIT_SUBKEYSONLY "Tylko podklucze" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_EXPAND "&Rozwiс" - IDS_COLLAPSE "&Zwiс" - IDS_GOTO_SUGGESTED_KEY "&Idџ do '%s'" -END - -/*****************************************************************/ - - -/* - * Dialog - */ - -IDD_EXPORTRANGE DIALOG DISCARDABLE 50, 50, 370, 50 -STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | - WS_BORDER -FONT 8, "MS Sans Serif" -BEGIN - GROUPBOX "Zakres eksportu",IDC_STATIC,2,0,366,48 - CONTROL "&Wszystko",IDC_EXPORT_ALL,"Button",BS_AUTORADIOBUTTON,10,10, 29,11 - CONTROL "Wy&brana gaі№џ",IDC_EXPORT_BRANCH,"Button",BS_AUTORADIOBUTTON,10,22, 100,11 - EDITTEXT IDC_EXPORT_BRANCH_TEXT,30,34,335,12 -END - -IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Dialog" -FONT 8, "MS Sans Serif" -BEGIN - DEFPUSHBUTTON "OK",IDOK,130,7,50,14 - PUSHBUTTON "Anuluj",IDCANCEL,130,24,50,14 -END - - -/* - * TEXTINCLUDE - */ - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "resource.h\0" -END - - - -/* - * String Table - */ - -/* - *STRINGTABLE DISCARDABLE - *BEGIN - * ID_HELP_HELPTOPICS "Opens Registry Editor Help." - * ID_HELP_ABOUT "Displays program information, version number, and copyright." - *END - */ +/* + * Regedit resources + * + * Copyright 2005 Sebastian Gasiorek + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +LANGUAGE LANG_POLISH, SUBLANG_DEFAULT + +ID_ACCEL ACCELERATORS +{ + VK_DELETE, ID_EDIT_DELETE, VIRTKEY, NOINVERT + "^F", ID_EDIT_FIND + VK_F3, ID_EDIT_FINDNEXT, VIRTKEY, NOINVERT + VK_F5, ID_VIEW_REFRESH, VIRTKEY, NOINVERT + VK_F1, ID_HELP_HELPTOPICS, VIRTKEY, NOINVERT +} + +/* + * Menu + */ + +IDC_REGEDIT MENU DISCARDABLE +BEGIN + POPUP "&Plik" + BEGIN + MENUITEM "Za&koсcz", ID_REGISTRY_EXIT + END + POPUP "Pomo&c" + BEGIN + MENUITEM "&Informacje ...", ID_HELP_ABOUT + END +END + +IDR_REGEDIT_MENU MENU DISCARDABLE +BEGIN + POPUP "&Rejestr" + BEGIN + MENUITEM "&Importuj plik rejestru...", ID_REGISTRY_IMPORTREGISTRYFILE + + MENUITEM "&Eksportuj plik rejestru...", ID_REGISTRY_EXPORTREGISTRYFILE + + MENUITEM SEPARATOR + MENUITEM "&Podі№cz rejestr sieciowy...", + ID_REGISTRY_CONNECTNETWORKREGISTRY + + MENUITEM "&Odі№cz rejestr sieciowy...", + ID_REGISTRY_DISCONNECTNETWORKREGISTRY + , GRAYED + MENUITEM SEPARATOR + MENUITEM "&Drukuj\tCtrl+P", ID_REGISTRY_PRINT, GRAYED + MENUITEM SEPARATOR + MENUITEM "Za&koсcz", ID_REGISTRY_EXIT + END + POPUP "&Edycja" + BEGIN + MENUITEM "&Modyfikuj", ID_EDIT_MODIFY + MENUITEM SEPARATOR + POPUP "&Nowy" + BEGIN + MENUITEM "&Klucz", ID_EDIT_NEW_KEY + MENUITEM SEPARATOR + MENUITEM "Wartoњж &ci№gu", ID_EDIT_NEW_STRINGVALUE + MENUITEM "Wartoњж &binarna", ID_EDIT_NEW_BINARYVALUE + MENUITEM "Wartoњж &DWORD", ID_EDIT_NEW_DWORDVALUE + END + MENUITEM SEPARATOR + MENUITEM "&Uprawnienia...", ID_EDIT_PERMISSIONS + MENUITEM SEPARATOR + MENUITEM "U&suс\tDel", ID_EDIT_DELETE + MENUITEM "Z&mieс nazwк", ID_EDIT_RENAME + MENUITEM SEPARATOR + MENUITEM "&Kopiuj nazwк klucza", ID_EDIT_COPYKEYNAME + MENUITEM SEPARATOR + MENUITEM "&Znajdџ\tCtrl+F", ID_EDIT_FIND, GRAYED + MENUITEM "Zn&ajdџ nastкpny\tF3", ID_EDIT_FINDNEXT, GRAYED + END + POPUP "&Widok" + BEGIN + MENUITEM "&Pasek stanu", ID_VIEW_STATUSBAR + MENUITEM SEPARATOR + MENUITEM "Po&dziel", ID_VIEW_SPLIT + MENUITEM SEPARATOR + MENUITEM "&Odњwieї\tF5", ID_VIEW_REFRESH + END + POPUP "Ulu&bione" + BEGIN + MENUITEM "&Dodaj do ulubionych", ID_FAVOURITES_ADDTOFAVOURITES + , GRAYED + MENUITEM "&Usuс ulubiony", ID_FAVOURITES_REMOVEFAVOURITE + , GRAYED + END + POPUP "Pomo&c" + BEGIN + MENUITEM "&Tematy pomocy\tF1", ID_HELP_HELPTOPICS + MENUITEM SEPARATOR + MENUITEM "Edytor rejestru - i&nformacje", ID_HELP_ABOUT + END +END + +IDR_POPUP_MENUS MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Modyfikuj", ID_EDIT_MODIFY + MENUITEM "Modyfikuj dane &binarne", ID_EDIT_MODIFY_BIN + MENUITEM SEPARATOR + MENUITEM "&Usuс\tDel", ID_EDIT_DELETE + MENUITEM "&Zmieс nazwк", ID_EDIT_RENAME + END + POPUP "" + BEGIN + POPUP "&Nowy" + BEGIN + MENUITEM "&Kklucz", ID_EDIT_NEW_KEY + MENUITEM SEPARATOR + MENUITEM "&Wartoњж ci№gu", ID_EDIT_NEW_STRINGVALUE + MENUITEM "Wartoњж &binarna", ID_EDIT_NEW_BINARYVALUE + MENUITEM "Wartoњж &DWORD", ID_EDIT_NEW_DWORDVALUE + END + END + POPUP "" + BEGIN + MENUITEM "Rozwiс/Zwiс", ID_TREE_EXPANDBRANCH + POPUP "&Nowy" + BEGIN + MENUITEM "&Klucz", ID_EDIT_NEW_KEY + MENUITEM SEPARATOR + MENUITEM "&Wartoњж ci№gu", ID_EDIT_NEW_STRINGVALUE + MENUITEM "Wartoњж &binarna", ID_EDIT_NEW_BINARYVALUE + MENUITEM "Wartoњж &DWORD", ID_EDIT_NEW_DWORDVALUE + END + MENUITEM "&Znajdџ", ID_EDIT_FIND, GRAYED + MENUITEM "U&suс", ID_TREE_DELETE + MENUITEM "Z&mieс nazwк", ID_TREE_RENAME + MENUITEM SEPARATOR + MENUITEM "&Kopiuj nazwк klucza", ID_EDIT_COPYKEYNAME + END +END + + +/* + * Dialog + */ + +IDD_EDIT_STRING DIALOG 32, 24, 252, 84 +STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | + WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Edytowanie ci№gu" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Nazwa wartoњci:",IDC_STATIC,6,6,134,8 + EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY + LTEXT "&Dane wartoњci:",IDC_STATIC,6,35,161,8 + EDITTEXT IDC_VALUE_DATA,6,46,240,12,ES_AUTOHSCROLL + DEFPUSHBUTTON "OK",IDOK,142,64,50,14 + PUSHBUTTON "Anuluj",IDCANCEL,196,64,50,14 +END + +IDD_EDIT_MULTI_STRING DIALOG 32, 24, 252, 174 +STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | + WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Edytowanie wieloci№gu" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Nazwa wartoњci:",IDC_STATIC,6,6,134,8 + EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY + LTEXT "Dane &wartoњci:",IDC_STATIC,6,35,161,8 + EDITTEXT IDC_VALUE_DATA,6,46,240,102,ES_AUTOHSCROLL | ES_MULTILINE | ES_WANTRETURN | ES_AUTOVSCROLL | WS_VSCROLL + DEFPUSHBUTTON "OK",IDOK,142,154,50,14 + PUSHBUTTON "Anuluj",IDCANCEL,196,154,50,14 +END + +IDD_EDIT_BIN_DATA DIALOG 32, 24, 252, 174 +STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | + WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Edytowanie wartoњci binarnej" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Nazwa wartoњci:",IDC_STATIC,6,6,134,8 + EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY + LTEXT "&Dane wartoњci:",IDC_STATIC,6,35,161,8 + CONTROL "",IDC_VALUE_DATA,"HexEdit32",WS_VSCROLL | WS_BORDER | WS_TABSTOP,6,46,240,102 + DEFPUSHBUTTON "OK",IDOK,142,154,50,14 + PUSHBUTTON "Anuluj",IDCANCEL,196,154,50,14 +END + + +IDD_EDIT_DWORD DIALOG 32, 24, 252, 104 +STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | + WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Edytowanie wartoњci DWORD" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Nazwa wartoњci:",IDC_STATIC,6,6,134,8 + EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY + LTEXT "Dane &wartoњci:",IDC_STATIC,6,35,161,8 + EDITTEXT IDC_VALUE_DATA,6,46,116,12,ES_AUTOHSCROLL + GROUPBOX "System",IDC_STATIC,130,35,116,39 + AUTORADIOBUTTON "&Szesnastkowy",IDC_FORMAT_HEX,141,46,60,10,WS_GROUP + AUTORADIOBUTTON "&Dziesiкtny",IDC_FORMAT_DEC,141,59,60,10 + DEFPUSHBUTTON "OK",IDOK,142,82,50,14 + PUSHBUTTON "Anuluj",IDCANCEL,196,82,50,14 +END + +/* + * String Table + */ + +STRINGTABLE DISCARDABLE +BEGIN + IDS_LIST_COLUMN_NAME "Nazwa" + IDS_LIST_COLUMN_TYPE "Typ" + IDS_LIST_COLUMN_DATA "Dane" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_APP_TITLE "Edytor rejestru" + IDC_REGEDIT "REGEDIT" + IDC_REGEDIT_FRAME "REGEDIT_FRAME" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_REGISTRY_MENU "Zawiera polecenia do pracy z caіym rejestrem" + ID_EDIT_MENU "Zawiera polecenia do edycji wartoњci lub klucz" + ID_VIEW_MENU "Zawiera polecenia do dostosowywania okien rejestru" + ID_FAVOURITES_MENU "Zawiera polecenia dla dostкpu do czкsto uїywanych klawiszy" + ID_HELP_MENU "Zawiera polecenia do wyњwietlania Pomocy oraz informacji o Edytorze rejestru" + ID_EDIT_NEW_MENU "Zawiera polecenia do tworzenia nowych kluczy lub wartoњci" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_EDIT_MODIFY "Zmienia dane wartoњci" + ID_EDIT_NEW_KEY "Dodaje nowy klucz" + ID_EDIT_NEW_STRINGVALUE "Dodaje now№ wartoњж ci№gu" + ID_EDIT_NEW_BINARYVALUE "Dodaje now№ wartoњж binarn№" + ID_EDIT_NEW_DWORDVALUE "Dodaje now№ wartoњж DWORD" + ID_REGISTRY_IMPORTREGISTRYFILE "Importuje plik do rejestru" + ID_REGISTRY_EXPORTREGISTRYFILE + "Eksportuje caіoњж lub czкњж rejestru do pliku" + ID_REGISTRY_CONNECTNETWORKREGISTRY + "Poі№czenie z rejestrem zdalnego komputera" + ID_REGISTRY_DISCONNECTNETWORKREGISTRY + "Odі№cza od rejestru zdalnego komputera" + ID_REGISTRY_PRINT "Drukuje caіoњж lub czкњж rejestru" +/* ID_HELP_HELPTOPICS "Otwiera Pomoc Edytora rejestru" */ + ID_HELP_ABOUT "Wyњwietla informacje o programie, numerze wersji i prawach autorskich" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_REGISTRY_EXIT "Konczy dziaіanie Edytora rejestru" + ID_FAVOURITES_ADDTOFAVOURITES "Dodaje klawisze do listy elementуw ulubionych" + ID_FAVOURITES_REMOVEFAVOURITE "Usuwa klawisze z listy elementуw ulubionych" + ID_VIEW_STATUSBAR "Pokazuje lub ukrywa pasek stanu" + ID_VIEW_SPLIT "Zmienia pozycjк podziaіu pomiкdzy dwoma okienkami" + ID_VIEW_REFRESH "Odњwieїa okno" + ID_EDIT_DELETE "Usuwa zaznaczenie" + ID_EDIT_RENAME "Zmienia nazwк zaznaczenia" + ID_EDIT_COPYKEYNAME "Kopiuje nazwк wybranego klucza do Schowka" + ID_EDIT_FIND "Znajduje ci№g tekstowy w kluczu, wartoњci lub danych" + ID_EDIT_FINDNEXT "Znajduje nastкpne wyst№pienie tekstu okreњlonego przy poprzednim szukaniu" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_ERROR "Bі№d" + IDS_WARNING "Ostrzeїenie" + IDS_BAD_VALUE "Nie moїna odczytaж wartoњci '%s'" + IDS_UNSUPPORTED_TYPE "Nie moїna edytowaж kluczy tego typu (%ld)" + IDS_TOO_BIG_VALUE "Wartoњж jest za duїa (%ld)" + IDS_MULTI_SZ_EMPTY_STRING "Dane typu REG_MULTI_SZ nie mog№ zawieraж pustych ci№gуw.\nPusty ci№g zostaі usuniкty z listy." + IDS_QUERY_DELETE_KEY_ONE "Czy na pewno chcesz usun№ж ten klucz?" + IDS_QUERY_DELETE_KEY_MORE "Czy na pewno chcesz usun№ж te klucze?" + IDS_QUERY_DELETE_KEY_CONFIRM "Potwierdzenie usuniкcia klucza" + IDS_QUERY_DELETE_ONE "Czy na pewno chcesz usun№ж tк wartoњж?" + IDS_QUERY_DELETE_MORE "Czy na pewno chcesz usun№ж te wartoњci?" + IDS_QUERY_DELETE_CONFIRM "Potwierdzanie usuniкcia wartoњci" + IDS_ERR_DELVAL_CAPTION "Bі№d przy usuwaniu wartoњci" + IDS_ERR_DELETEVALUE "Nie moїna usun№ж wszystkich podanych wartoњci!" + IDS_ERR_RENVAL_CAPTION "Bі№d przy zmianie wartoњci" + IDS_ERR_RENVAL_TOEMPTY "Nie moїna zmieniж nazwy %s. Okreњlona nazwa klucza jest pusta. Wpisz inn№ nazwк i sprуbuj ponownie." + IDS_NEW_KEY "Nowy klucz #%d" + IDS_NEW_VALUE "Nowa wartoњж #%d" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_BINARY_EMPTY "(wartoњж binarna o dіugoњci zero)" + IDS_DEFAULT_VALUE_NAME "(Domyњlna)" + IDS_VALUE_NOT_SET "(wartoњж nie ustalona)" + IDS_UNKNOWN_TYPE "Nieznany typ: (0x%lx)" + IDS_MY_COMPUTER "Mуj komputer" + IDS_IMPORT_REG_FILE "Importuj plik rejestru" + IDS_EXPORT_REG_FILE "Eksportuj plik rejestru" + IDS_INVALID_DWORD "(niewіaњciwa wartoњж DWORD)" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_FLT_REGFILES "Pliki rejestru" + IDS_FLT_REGFILES_FLT "*.reg" + IDS_FLT_REGEDIT4 "Pliki rejestru Win9x/NT4 (REGEDIT4)" + IDS_FLT_REGEDIT4_FLT "*.reg" + IDS_FLT_ALLFILES "Wszystkie pliki (*.*)" + IDS_FLT_ALLFILES_FLT "*.*" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_ACCESS_FULLCONTROL "Peіna kontrola" + IDS_ACCESS_READ "Odczyt" + IDS_ACCESS_QUERYVALUE "Badanie wartoњci" + IDS_ACCESS_SETVALUE "Ustawianie wartoњci" + IDS_ACCESS_CREATESUBKEY "Tworzenie podklucza" + IDS_ACCESS_ENUMERATESUBKEYS "Wyliczanie podkluczy" + IDS_ACCESS_NOTIFY "Powiadamianie" + IDS_ACCESS_CREATELINK "Tworzenie і№cza" + IDS_ACCESS_DELETE "Usuс" + IDS_ACCESS_WRITEDAC "Zapisywanie DAC" + IDS_ACCESS_WRITEOWNER "Zapisywanie wіaњciciela" + IDS_ACCESS_READCONTROL "Kontrola odczytu" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_INHERIT_THISKEYONLY "Tylko ten klucz" + IDS_INHERIT_THISKEYANDSUBKEYS "Ten klucz i podklucze" + IDS_INHERIT_SUBKEYSONLY "Tylko podklucze" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_EXPAND "&Rozwiс" + IDS_COLLAPSE "&Zwiс" + IDS_GOTO_SUGGESTED_KEY "&Idџ do '%s'" +END + +/*****************************************************************/ + + +/* + * Dialog + */ + +IDD_EXPORTRANGE DIALOG DISCARDABLE 50, 50, 370, 50 +STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | + WS_BORDER +FONT 8, "MS Sans Serif" +BEGIN + GROUPBOX "Zakres eksportu",IDC_STATIC,2,0,366,48 + CONTROL "&Wszystko",IDC_EXPORT_ALL,"Button",BS_AUTORADIOBUTTON,10,10, 29,11 + CONTROL "Wy&brana gaі№џ",IDC_EXPORT_BRANCH,"Button",BS_AUTORADIOBUTTON,10,22, 100,11 + EDITTEXT IDC_EXPORT_BRANCH_TEXT,30,34,335,12 +END + +IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Dialog" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "OK",IDOK,130,7,50,14 + PUSHBUTTON "Anuluj",IDCANCEL,130,24,50,14 +END + + +/* + * TEXTINCLUDE + */ + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + + + +/* + * String Table + */ + +/* + *STRINGTABLE DISCARDABLE + *BEGIN + * ID_HELP_HELPTOPICS "Opens Registry Editor Help." + * ID_HELP_ABOUT "Displays program information, version number, and copyright." + *END + */ diff --git a/reactos/base/applications/regedit/lang/Sv.rc b/reactos/base/applications/regedit/lang/Sv.rc index 55ac6aeee7b..a9b9d2d540a 100644 --- a/reactos/base/applications/regedit/lang/Sv.rc +++ b/reactos/base/applications/regedit/lang/Sv.rc @@ -1,396 +1,396 @@ -/* - * Regedit (Swedish resources) - * - * Copyright 2005 Andreas Bjerkeholt - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL - -ID_ACCEL ACCELERATORS -{ - VK_DELETE, ID_EDIT_DELETE, VIRTKEY, NOINVERT - "^F", ID_EDIT_FIND - VK_F3, ID_EDIT_FINDNEXT, VIRTKEY, NOINVERT - VK_F5, ID_VIEW_REFRESH, VIRTKEY, NOINVERT - VK_F1, ID_HELP_HELPTOPICS, VIRTKEY, NOINVERT -} - -/* - * Menu - */ - -IDC_REGEDIT MENU DISCARDABLE -BEGIN - POPUP "&Arkiv" - BEGIN - MENUITEM "&Avsluta", ID_REGISTRY_EXIT - END - POPUP "&Hjдlp" - BEGIN - MENUITEM "&Om ...", ID_HELP_ABOUT - END -END - -IDR_REGEDIT_MENU MENU DISCARDABLE -BEGIN - POPUP "R&egistret" - BEGIN - MENUITEM "&Importera registerfil...", ID_REGISTRY_IMPORTREGISTRYFILE - - MENUITEM "&Exportera registerfil...", ID_REGISTRY_EXPORTREGISTRYFILE - - MENUITEM SEPARATOR - MENUITEM "&Anslut Nдtverksregister...", - ID_REGISTRY_CONNECTNETWORKREGISTRY - , GRAYED - MENUITEM "&Koppla ifrеn Nдtverksregister...", - ID_REGISTRY_DISCONNECTNETWORKREGISTRY - , GRAYED - MENUITEM SEPARATOR - MENUITEM "Skriv &ut\tCtrl+P", ID_REGISTRY_PRINT, GRAYED - MENUITEM SEPARATOR - MENUITEM "&Avsluta", ID_REGISTRY_EXIT - END - POPUP "&Redigera" - BEGIN - MENUITEM "&Дndra", ID_EDIT_MODIFY - MENUITEM SEPARATOR - POPUP "&Ny(tt)" - BEGIN - MENUITEM "&Nyckel", ID_EDIT_NEW_KEY - MENUITEM SEPARATOR - MENUITEM "&Strдngvдrde", ID_EDIT_NEW_STRINGVALUE - MENUITEM "&Binдrvдrde", ID_EDIT_NEW_BINARYVALUE - MENUITEM "&DWORD-vдrde", ID_EDIT_NEW_DWORDVALUE - END - MENUITEM SEPARATOR - MENUITEM "B&ehцrigheter...", ID_EDIT_PERMISSIONS - MENUITEM SEPARATOR - MENUITEM "&Ta bort\tDel", ID_EDIT_DELETE - MENUITEM "&Byt namn", ID_EDIT_RENAME - MENUITEM SEPARATOR - MENUITEM "&Kopiera nyckelnamn", ID_EDIT_COPYKEYNAME - MENUITEM SEPARATOR - MENUITEM "&Sцk\tCtrl+F", ID_EDIT_FIND, GRAYED - MENUITEM "Sцk N&дsta\tF3", ID_EDIT_FINDNEXT, GRAYED - END - POPUP "&Visa" - BEGIN - MENUITEM "Statusfдlt", ID_VIEW_STATUSBAR - MENUITEM SEPARATOR - MENUITEM "Dela", ID_VIEW_SPLIT - MENUITEM SEPARATOR - MENUITEM "&Uppdatera\tF5", ID_VIEW_REFRESH - END - POPUP "&Favoriter" - BEGIN - MENUITEM "&Lдgg till i Favoriter", ID_FAVOURITES_ADDTOFAVOURITES - , GRAYED - MENUITEM "&Ta bort frеn Favoriter", ID_FAVOURITES_REMOVEFAVOURITE - , GRAYED - END - POPUP "&Hjдlp" - BEGIN - MENUITEM "&Hjдlpavsnitt\tF1", ID_HELP_HELPTOPICS - MENUITEM SEPARATOR - MENUITEM "&Om Registereditorn", ID_HELP_ABOUT - END -END - -IDR_POPUP_MENUS MENU DISCARDABLE -BEGIN - POPUP "" - BEGIN - MENUITEM "&Дndra", ID_EDIT_MODIFY - MENUITEM "Дndra binдrdata", ID_EDIT_MODIFY_BIN - MENUITEM SEPARATOR - MENUITEM "&Ta bort\tDel", ID_EDIT_DELETE - MENUITEM "&Byt namn", ID_EDIT_RENAME - END - POPUP "" - BEGIN - POPUP "&Ny(tt)" - BEGIN - MENUITEM "&Nyckel", ID_EDIT_NEW_KEY - MENUITEM SEPARATOR - MENUITEM "&Strдngvдrde", ID_EDIT_NEW_STRINGVALUE - MENUITEM "&Binдrvдrde", ID_EDIT_NEW_BINARYVALUE - MENUITEM "&DWORD-vдrde", ID_EDIT_NEW_DWORDVALUE - END - END - POPUP "" - BEGIN - MENUITEM "Visa/dцlj nivе", ID_TREE_EXPANDBRANCH - POPUP "&Ny(tt)" - BEGIN - MENUITEM "&Nyckel", ID_EDIT_NEW_KEY - MENUITEM SEPARATOR - MENUITEM "&Strдngvдrde", ID_EDIT_NEW_STRINGVALUE - MENUITEM "&Binдrvдrde", ID_EDIT_NEW_BINARYVALUE - MENUITEM "&DWORD-vдrde", ID_EDIT_NEW_DWORDVALUE - END - MENUITEM "&Sцk", ID_EDIT_FIND, GRAYED - MENUITEM "&Ta bort", ID_TREE_DELETE - MENUITEM "&Byt namn", ID_TREE_RENAME - MENUITEM SEPARATOR - MENUITEM "&Kopiera nyckelnamn", ID_EDIT_COPYKEYNAME, GRAYED - END -END - - -/* - * Dialog - */ - -IDD_EDIT_STRING DIALOG 32, 24, 252, 84 -STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | - WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Дndra strдng" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "&Vдrde:",IDC_STATIC,6,6,134,8 - EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY - LTEXT "&Data:",IDC_STATIC,6,35,161,8 - EDITTEXT IDC_VALUE_DATA,6,46,240,12,ES_AUTOHSCROLL - DEFPUSHBUTTON "OK",IDOK,142,64,50,14 - PUSHBUTTON "Avbryt",IDCANCEL,196,64,50,14 -END - -IDD_EDIT_MULTI_STRING DIALOG 32, 24, 252, 174 -STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | - WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Дndra multi-strдng" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "&Vдrde:",IDC_STATIC,6,6,134,8 - EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY - LTEXT "&Data:",IDC_STATIC,6,35,161,8 - EDITTEXT IDC_VALUE_DATA,6,46,240,102,ES_AUTOHSCROLL | ES_MULTILINE | ES_WANTRETURN | ES_AUTOVSCROLL | WS_VSCROLL - DEFPUSHBUTTON "OK",IDOK,142,154,50,14 - PUSHBUTTON "Avbryt",IDCANCEL,196,154,50,14 -END - -IDD_EDIT_BIN_DATA DIALOG 32, 24, 252, 174 -STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | - WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Дndra Binдrvдrde" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "&Vдrde:",IDC_STATIC,6,6,134,8 - EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY - LTEXT "&Data:",IDC_STATIC,6,35,161,8 - CONTROL "",IDC_VALUE_DATA,"HexEdit32",WS_VSCROLL | WS_BORDER | WS_TABSTOP,6,46,240,102 - DEFPUSHBUTTON "OK",IDOK,142,154,50,14 - PUSHBUTTON "Avbryt",IDCANCEL,196,154,50,14 -END - - -IDD_EDIT_DWORD DIALOG 32, 24, 252, 104 -STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | - WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Дndra DWORD-vдrde" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "&Vдrde:",IDC_STATIC,6,6,134,8 - EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY - LTEXT "&Data:",IDC_STATIC,6,35,161,8 - EDITTEXT IDC_VALUE_DATA,6,46,116,12,ES_AUTOHSCROLL - GROUPBOX "Bas",IDC_STATIC,130,35,116,39 - AUTORADIOBUTTON "&Hexadecimal",IDC_FORMAT_HEX,141,46,60,10,WS_GROUP - AUTORADIOBUTTON "&Decimal",IDC_FORMAT_DEC,141,59,60,10 - DEFPUSHBUTTON "OK",IDOK,142,82,50,14 - PUSHBUTTON "Avbryt",IDCANCEL,196,82,50,14 -END - -/* - * String Table - */ - -STRINGTABLE DISCARDABLE -BEGIN - IDS_LIST_COLUMN_NAME "Namn" - IDS_LIST_COLUMN_TYPE "Typ" - IDS_LIST_COLUMN_DATA "Data" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APP_TITLE "Registereditorn" - IDC_REGEDIT "REGEDIT" - IDC_REGEDIT_FRAME "REGEDIT_FRAME" -END - -STRINGTABLE DISCARDABLE -BEGIN - ID_REGISTRY_MENU "Innehеller kommandon fцr att arbeta med hela registret" - ID_EDIT_MENU "Innehеller kommandon fцr att дndra vдrden och nycklar" - ID_VIEW_MENU "Innehеller kommandon fцr att anpassa registerfцnstret" - ID_FAVOURITES_MENU "Innehеller kommandon fцr att komma еt nycklar som anvдnds ofta" - ID_HELP_MENU "Innehеller kommandon fцr att visa hjдlpen och information om Registereditorn" - ID_EDIT_NEW_MENU "Innehеller kommandon fцr att skapa nya nycklar eller vдrden" -END - -STRINGTABLE DISCARDABLE -BEGIN - ID_EDIT_MODIFY "Дndrar vдrdets data" - ID_EDIT_NEW_KEY "Lдgger till en ny nyckel" - ID_EDIT_NEW_STRINGVALUE "Lдgger till ett nytt strдngvдrde" - ID_EDIT_NEW_BINARYVALUE "Lдgger till ett nytt binдrt vдrde" - ID_EDIT_NEW_DWORDVALUE "Lдgger till ett nytt dubbelordsvдrde" - ID_REGISTRY_IMPORTREGISTRYFILE "Importerar en textfil till registret" - ID_REGISTRY_EXPORTREGISTRYFILE - "Exporterar hela eller en del av registret till en textfil" - ID_REGISTRY_CONNECTNETWORKREGISTRY - "Ansluter till en annan dators register" - ID_REGISTRY_DISCONNECTNETWORKREGISTRY - "Kopplar ifrеn en annan dators register" - ID_REGISTRY_PRINT "Skriver ut hela eller en del av registret" -/* ID_HELP_HELPTOPICS "Цppnar hjдlpen fцr Registereditorn" */ - ID_HELP_ABOUT "Visar programinformation, versionsnummer, och upphovsrдtt" -END - -STRINGTABLE DISCARDABLE -BEGIN - ID_REGISTRY_EXIT "Avslutar Registereditorn" - ID_FAVOURITES_ADDTOFAVOURITES "Lдgger till nycklar till Favoriter" - ID_FAVOURITES_REMOVEFAVOURITE "Tar bort nycklar frеn Favoriter" - ID_VIEW_STATUSBAR "Visar eller dцljer statusfдltet" - ID_VIEW_SPLIT "Дndra storlek pе delningslisten" - ID_VIEW_REFRESH "Uppdaterar fцnstret" - ID_EDIT_DELETE "Tar bort markeringen" - ID_EDIT_RENAME "Byter namn pе markeringen" - ID_EDIT_COPYKEYNAME "Kopierar namnet pе den valda nyckeln till urklippet" - ID_EDIT_FIND "Hittar en textstrдng i en nyckel, ett vдrde eller data" - ID_EDIT_FINDNEXT "Sцker igen efter nдsta trдff i registret" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_ERROR "Fel" - IDS_WARNING "Varning" - IDS_BAD_VALUE "Kan inte lдsa vдrdet '%s'" - IDS_UNSUPPORTED_TYPE "Kan inte дndra nycklar av typen %ld" - IDS_TOO_BIG_VALUE "Vдrdet дr fцr stort (%ld)" - IDS_MULTI_SZ_EMPTY_STRING "Data av typen REG_MULTI_SZ kan inte innehеlla tomma strдngar.\nDe tomma strдngarna har tagits bort frеn listan." - IDS_QUERY_DELETE_ONE "Дr du sдker pе att du vill ta bort detta vдrde?" - IDS_QUERY_DELETE_MORE "Дr du sдker pе att du vill ta bort dessa vдrden?" - IDS_QUERY_DELETE_CONFIRM "Bekrдfta borttagning av vдrde" - IDS_ERR_DELVAL_CAPTION "Borttagning misslyckades" - IDS_ERR_DELETEVALUE "Det gick inte att ta bort alla specificerade vдrden!" - IDS_ERR_RENVAL_CAPTION "Namnbyte misslyckades" - IDS_ERR_RENVAL_TOEMPTY "Kunde inte byta namn pе %s. Det specificerade vдrdenamnet дr tomt. Ange ett annat namn och fцrsцk igen." -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_BINARY_EMPTY "(Tomt binдrvдrde)" - IDS_DEFAULT_VALUE_NAME "(Standard)" - IDS_VALUE_NOT_SET "(vдrde ej angivet)" - IDS_UNKNOWN_TYPE "Okдnd typ: (0x%lx)" - IDS_MY_COMPUTER "Den hдr datorn" - IDS_IMPORT_REG_FILE "Importera registerfil" - IDS_EXPORT_REG_FILE "Exportera registerfil" - IDS_INVALID_DWORD "(felaktigt DWORD-vдrde)" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_FLT_REGFILES "Registerfiler" - IDS_FLT_REGFILES_FLT "*.reg" - IDS_FLT_REGEDIT4 "Win9x/NT4-Registerfiler (REGEDIT4)" - IDS_FLT_REGEDIT4_FLT "*.reg" - IDS_FLT_ALLFILES "Alla filer (*.*)" - IDS_FLT_ALLFILES_FLT "*.*" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_ACCESS_FULLCONTROL "Fullstдndig behцrighet" - IDS_ACCESS_READ "Lдsa" - IDS_ACCESS_QUERYVALUE "Lдsa vдrde" - IDS_ACCESS_SETVALUE "Ange vдrde" - IDS_ACCESS_CREATESUBKEY "Skapa undernyckel" - IDS_ACCESS_ENUMERATESUBKEYS "Rдkna upp undernycklar" - IDS_ACCESS_NOTIFY "Meddela" - IDS_ACCESS_CREATELINK "Skapa lдnk" - IDS_ACCESS_DELETE "Ta bort" - IDS_ACCESS_WRITEDAC "Skriva DAC" - IDS_ACCESS_WRITEOWNER "Skriva дgare" - IDS_ACCESS_READCONTROL "Lдsa behцrighet" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_INHERIT_THISKEYONLY "Endast denna nyckel" - IDS_INHERIT_THISKEYANDSUBKEYS "Denna nyckel samt undernycklar" - IDS_INHERIT_SUBKEYSONLY "Endast undernycklar" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_EXPAND "&Visa nivе" - IDS_COLLAPSE "&Dцlj nivе" -END - -/*****************************************************************/ - - -/* - * Dialog - */ - -IDD_DIALOG1 DIALOG DISCARDABLE 50, 50, 268, 98 -STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | - WS_BORDER -FONT 8, "MS Sans Serif" -BEGIN -END - -IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Dialog" -FONT 8, "MS Sans Serif" -BEGIN - DEFPUSHBUTTON "OK",IDOK,130,7,50,14 - PUSHBUTTON "Avbryt",IDCANCEL,130,24,50,14 -END - - -/* - * TEXTINCLUDE - */ - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "resource.h\0" -END - - - -/* - * String Table - */ - -/* - *STRINGTABLE DISCARDABLE - *BEGIN - * ID_HELP_HELPTOPICS "Цppnar hjдlpen fцr Registereditorn." - * ID_HELP_ABOUT "Visar programinformation, versionsnummer, och upphovsrдtt." - *END - */ - -/*****************************************************************/ +/* + * Regedit (Swedish resources) + * + * Copyright 2005 Andreas Bjerkeholt + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL + +ID_ACCEL ACCELERATORS +{ + VK_DELETE, ID_EDIT_DELETE, VIRTKEY, NOINVERT + "^F", ID_EDIT_FIND + VK_F3, ID_EDIT_FINDNEXT, VIRTKEY, NOINVERT + VK_F5, ID_VIEW_REFRESH, VIRTKEY, NOINVERT + VK_F1, ID_HELP_HELPTOPICS, VIRTKEY, NOINVERT +} + +/* + * Menu + */ + +IDC_REGEDIT MENU DISCARDABLE +BEGIN + POPUP "&Arkiv" + BEGIN + MENUITEM "&Avsluta", ID_REGISTRY_EXIT + END + POPUP "&Hjдlp" + BEGIN + MENUITEM "&Om ...", ID_HELP_ABOUT + END +END + +IDR_REGEDIT_MENU MENU DISCARDABLE +BEGIN + POPUP "R&egistret" + BEGIN + MENUITEM "&Importera registerfil...", ID_REGISTRY_IMPORTREGISTRYFILE + + MENUITEM "&Exportera registerfil...", ID_REGISTRY_EXPORTREGISTRYFILE + + MENUITEM SEPARATOR + MENUITEM "&Anslut Nдtverksregister...", + ID_REGISTRY_CONNECTNETWORKREGISTRY + , GRAYED + MENUITEM "&Koppla ifrеn Nдtverksregister...", + ID_REGISTRY_DISCONNECTNETWORKREGISTRY + , GRAYED + MENUITEM SEPARATOR + MENUITEM "Skriv &ut\tCtrl+P", ID_REGISTRY_PRINT, GRAYED + MENUITEM SEPARATOR + MENUITEM "&Avsluta", ID_REGISTRY_EXIT + END + POPUP "&Redigera" + BEGIN + MENUITEM "&Дndra", ID_EDIT_MODIFY + MENUITEM SEPARATOR + POPUP "&Ny(tt)" + BEGIN + MENUITEM "&Nyckel", ID_EDIT_NEW_KEY + MENUITEM SEPARATOR + MENUITEM "&Strдngvдrde", ID_EDIT_NEW_STRINGVALUE + MENUITEM "&Binдrvдrde", ID_EDIT_NEW_BINARYVALUE + MENUITEM "&DWORD-vдrde", ID_EDIT_NEW_DWORDVALUE + END + MENUITEM SEPARATOR + MENUITEM "B&ehцrigheter...", ID_EDIT_PERMISSIONS + MENUITEM SEPARATOR + MENUITEM "&Ta bort\tDel", ID_EDIT_DELETE + MENUITEM "&Byt namn", ID_EDIT_RENAME + MENUITEM SEPARATOR + MENUITEM "&Kopiera nyckelnamn", ID_EDIT_COPYKEYNAME + MENUITEM SEPARATOR + MENUITEM "&Sцk\tCtrl+F", ID_EDIT_FIND, GRAYED + MENUITEM "Sцk N&дsta\tF3", ID_EDIT_FINDNEXT, GRAYED + END + POPUP "&Visa" + BEGIN + MENUITEM "Statusfдlt", ID_VIEW_STATUSBAR + MENUITEM SEPARATOR + MENUITEM "Dela", ID_VIEW_SPLIT + MENUITEM SEPARATOR + MENUITEM "&Uppdatera\tF5", ID_VIEW_REFRESH + END + POPUP "&Favoriter" + BEGIN + MENUITEM "&Lдgg till i Favoriter", ID_FAVOURITES_ADDTOFAVOURITES + , GRAYED + MENUITEM "&Ta bort frеn Favoriter", ID_FAVOURITES_REMOVEFAVOURITE + , GRAYED + END + POPUP "&Hjдlp" + BEGIN + MENUITEM "&Hjдlpavsnitt\tF1", ID_HELP_HELPTOPICS + MENUITEM SEPARATOR + MENUITEM "&Om Registereditorn", ID_HELP_ABOUT + END +END + +IDR_POPUP_MENUS MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Дndra", ID_EDIT_MODIFY + MENUITEM "Дndra binдrdata", ID_EDIT_MODIFY_BIN + MENUITEM SEPARATOR + MENUITEM "&Ta bort\tDel", ID_EDIT_DELETE + MENUITEM "&Byt namn", ID_EDIT_RENAME + END + POPUP "" + BEGIN + POPUP "&Ny(tt)" + BEGIN + MENUITEM "&Nyckel", ID_EDIT_NEW_KEY + MENUITEM SEPARATOR + MENUITEM "&Strдngvдrde", ID_EDIT_NEW_STRINGVALUE + MENUITEM "&Binдrvдrde", ID_EDIT_NEW_BINARYVALUE + MENUITEM "&DWORD-vдrde", ID_EDIT_NEW_DWORDVALUE + END + END + POPUP "" + BEGIN + MENUITEM "Visa/dцlj nivе", ID_TREE_EXPANDBRANCH + POPUP "&Ny(tt)" + BEGIN + MENUITEM "&Nyckel", ID_EDIT_NEW_KEY + MENUITEM SEPARATOR + MENUITEM "&Strдngvдrde", ID_EDIT_NEW_STRINGVALUE + MENUITEM "&Binдrvдrde", ID_EDIT_NEW_BINARYVALUE + MENUITEM "&DWORD-vдrde", ID_EDIT_NEW_DWORDVALUE + END + MENUITEM "&Sцk", ID_EDIT_FIND, GRAYED + MENUITEM "&Ta bort", ID_TREE_DELETE + MENUITEM "&Byt namn", ID_TREE_RENAME + MENUITEM SEPARATOR + MENUITEM "&Kopiera nyckelnamn", ID_EDIT_COPYKEYNAME, GRAYED + END +END + + +/* + * Dialog + */ + +IDD_EDIT_STRING DIALOG 32, 24, 252, 84 +STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | + WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Дndra strдng" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Vдrde:",IDC_STATIC,6,6,134,8 + EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY + LTEXT "&Data:",IDC_STATIC,6,35,161,8 + EDITTEXT IDC_VALUE_DATA,6,46,240,12,ES_AUTOHSCROLL + DEFPUSHBUTTON "OK",IDOK,142,64,50,14 + PUSHBUTTON "Avbryt",IDCANCEL,196,64,50,14 +END + +IDD_EDIT_MULTI_STRING DIALOG 32, 24, 252, 174 +STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | + WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Дndra multi-strдng" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Vдrde:",IDC_STATIC,6,6,134,8 + EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY + LTEXT "&Data:",IDC_STATIC,6,35,161,8 + EDITTEXT IDC_VALUE_DATA,6,46,240,102,ES_AUTOHSCROLL | ES_MULTILINE | ES_WANTRETURN | ES_AUTOVSCROLL | WS_VSCROLL + DEFPUSHBUTTON "OK",IDOK,142,154,50,14 + PUSHBUTTON "Avbryt",IDCANCEL,196,154,50,14 +END + +IDD_EDIT_BIN_DATA DIALOG 32, 24, 252, 174 +STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | + WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Дndra Binдrvдrde" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Vдrde:",IDC_STATIC,6,6,134,8 + EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY + LTEXT "&Data:",IDC_STATIC,6,35,161,8 + CONTROL "",IDC_VALUE_DATA,"HexEdit32",WS_VSCROLL | WS_BORDER | WS_TABSTOP,6,46,240,102 + DEFPUSHBUTTON "OK",IDOK,142,154,50,14 + PUSHBUTTON "Avbryt",IDCANCEL,196,154,50,14 +END + + +IDD_EDIT_DWORD DIALOG 32, 24, 252, 104 +STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | + WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Дndra DWORD-vдrde" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Vдrde:",IDC_STATIC,6,6,134,8 + EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY + LTEXT "&Data:",IDC_STATIC,6,35,161,8 + EDITTEXT IDC_VALUE_DATA,6,46,116,12,ES_AUTOHSCROLL + GROUPBOX "Bas",IDC_STATIC,130,35,116,39 + AUTORADIOBUTTON "&Hexadecimal",IDC_FORMAT_HEX,141,46,60,10,WS_GROUP + AUTORADIOBUTTON "&Decimal",IDC_FORMAT_DEC,141,59,60,10 + DEFPUSHBUTTON "OK",IDOK,142,82,50,14 + PUSHBUTTON "Avbryt",IDCANCEL,196,82,50,14 +END + +/* + * String Table + */ + +STRINGTABLE DISCARDABLE +BEGIN + IDS_LIST_COLUMN_NAME "Namn" + IDS_LIST_COLUMN_TYPE "Typ" + IDS_LIST_COLUMN_DATA "Data" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_APP_TITLE "Registereditorn" + IDC_REGEDIT "REGEDIT" + IDC_REGEDIT_FRAME "REGEDIT_FRAME" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_REGISTRY_MENU "Innehеller kommandon fцr att arbeta med hela registret" + ID_EDIT_MENU "Innehеller kommandon fцr att дndra vдrden och nycklar" + ID_VIEW_MENU "Innehеller kommandon fцr att anpassa registerfцnstret" + ID_FAVOURITES_MENU "Innehеller kommandon fцr att komma еt nycklar som anvдnds ofta" + ID_HELP_MENU "Innehеller kommandon fцr att visa hjдlpen och information om Registereditorn" + ID_EDIT_NEW_MENU "Innehеller kommandon fцr att skapa nya nycklar eller vдrden" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_EDIT_MODIFY "Дndrar vдrdets data" + ID_EDIT_NEW_KEY "Lдgger till en ny nyckel" + ID_EDIT_NEW_STRINGVALUE "Lдgger till ett nytt strдngvдrde" + ID_EDIT_NEW_BINARYVALUE "Lдgger till ett nytt binдrt vдrde" + ID_EDIT_NEW_DWORDVALUE "Lдgger till ett nytt dubbelordsvдrde" + ID_REGISTRY_IMPORTREGISTRYFILE "Importerar en textfil till registret" + ID_REGISTRY_EXPORTREGISTRYFILE + "Exporterar hela eller en del av registret till en textfil" + ID_REGISTRY_CONNECTNETWORKREGISTRY + "Ansluter till en annan dators register" + ID_REGISTRY_DISCONNECTNETWORKREGISTRY + "Kopplar ifrеn en annan dators register" + ID_REGISTRY_PRINT "Skriver ut hela eller en del av registret" +/* ID_HELP_HELPTOPICS "Цppnar hjдlpen fцr Registereditorn" */ + ID_HELP_ABOUT "Visar programinformation, versionsnummer, och upphovsrдtt" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_REGISTRY_EXIT "Avslutar Registereditorn" + ID_FAVOURITES_ADDTOFAVOURITES "Lдgger till nycklar till Favoriter" + ID_FAVOURITES_REMOVEFAVOURITE "Tar bort nycklar frеn Favoriter" + ID_VIEW_STATUSBAR "Visar eller dцljer statusfдltet" + ID_VIEW_SPLIT "Дndra storlek pе delningslisten" + ID_VIEW_REFRESH "Uppdaterar fцnstret" + ID_EDIT_DELETE "Tar bort markeringen" + ID_EDIT_RENAME "Byter namn pе markeringen" + ID_EDIT_COPYKEYNAME "Kopierar namnet pе den valda nyckeln till urklippet" + ID_EDIT_FIND "Hittar en textstrдng i en nyckel, ett vдrde eller data" + ID_EDIT_FINDNEXT "Sцker igen efter nдsta trдff i registret" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_ERROR "Fel" + IDS_WARNING "Varning" + IDS_BAD_VALUE "Kan inte lдsa vдrdet '%s'" + IDS_UNSUPPORTED_TYPE "Kan inte дndra nycklar av typen %ld" + IDS_TOO_BIG_VALUE "Vдrdet дr fцr stort (%ld)" + IDS_MULTI_SZ_EMPTY_STRING "Data av typen REG_MULTI_SZ kan inte innehеlla tomma strдngar.\nDe tomma strдngarna har tagits bort frеn listan." + IDS_QUERY_DELETE_ONE "Дr du sдker pе att du vill ta bort detta vдrde?" + IDS_QUERY_DELETE_MORE "Дr du sдker pе att du vill ta bort dessa vдrden?" + IDS_QUERY_DELETE_CONFIRM "Bekrдfta borttagning av vдrde" + IDS_ERR_DELVAL_CAPTION "Borttagning misslyckades" + IDS_ERR_DELETEVALUE "Det gick inte att ta bort alla specificerade vдrden!" + IDS_ERR_RENVAL_CAPTION "Namnbyte misslyckades" + IDS_ERR_RENVAL_TOEMPTY "Kunde inte byta namn pе %s. Det specificerade vдrdenamnet дr tomt. Ange ett annat namn och fцrsцk igen." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_BINARY_EMPTY "(Tomt binдrvдrde)" + IDS_DEFAULT_VALUE_NAME "(Standard)" + IDS_VALUE_NOT_SET "(vдrde ej angivet)" + IDS_UNKNOWN_TYPE "Okдnd typ: (0x%lx)" + IDS_MY_COMPUTER "Den hдr datorn" + IDS_IMPORT_REG_FILE "Importera registerfil" + IDS_EXPORT_REG_FILE "Exportera registerfil" + IDS_INVALID_DWORD "(felaktigt DWORD-vдrde)" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_FLT_REGFILES "Registerfiler" + IDS_FLT_REGFILES_FLT "*.reg" + IDS_FLT_REGEDIT4 "Win9x/NT4-Registerfiler (REGEDIT4)" + IDS_FLT_REGEDIT4_FLT "*.reg" + IDS_FLT_ALLFILES "Alla filer (*.*)" + IDS_FLT_ALLFILES_FLT "*.*" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_ACCESS_FULLCONTROL "Fullstдndig behцrighet" + IDS_ACCESS_READ "Lдsa" + IDS_ACCESS_QUERYVALUE "Lдsa vдrde" + IDS_ACCESS_SETVALUE "Ange vдrde" + IDS_ACCESS_CREATESUBKEY "Skapa undernyckel" + IDS_ACCESS_ENUMERATESUBKEYS "Rдkna upp undernycklar" + IDS_ACCESS_NOTIFY "Meddela" + IDS_ACCESS_CREATELINK "Skapa lдnk" + IDS_ACCESS_DELETE "Ta bort" + IDS_ACCESS_WRITEDAC "Skriva DAC" + IDS_ACCESS_WRITEOWNER "Skriva дgare" + IDS_ACCESS_READCONTROL "Lдsa behцrighet" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_INHERIT_THISKEYONLY "Endast denna nyckel" + IDS_INHERIT_THISKEYANDSUBKEYS "Denna nyckel samt undernycklar" + IDS_INHERIT_SUBKEYSONLY "Endast undernycklar" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_EXPAND "&Visa nivе" + IDS_COLLAPSE "&Dцlj nivе" +END + +/*****************************************************************/ + + +/* + * Dialog + */ + +IDD_DIALOG1 DIALOG DISCARDABLE 50, 50, 268, 98 +STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | + WS_BORDER +FONT 8, "MS Sans Serif" +BEGIN +END + +IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Dialog" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "OK",IDOK,130,7,50,14 + PUSHBUTTON "Avbryt",IDCANCEL,130,24,50,14 +END + + +/* + * TEXTINCLUDE + */ + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + + + +/* + * String Table + */ + +/* + *STRINGTABLE DISCARDABLE + *BEGIN + * ID_HELP_HELPTOPICS "Цppnar hjдlpen fцr Registereditorn." + * ID_HELP_ABOUT "Visar programinformation, versionsnummer, och upphovsrдtt." + *END + */ + +/*****************************************************************/ diff --git a/reactos/base/applications/regedit/regedit.h b/reactos/base/applications/regedit/regedit.h index 763e41d92e2..842ce6ea425 100644 --- a/reactos/base/applications/regedit/regedit.h +++ b/reactos/base/applications/regedit/regedit.h @@ -1,30 +1,30 @@ -#ifndef _REGEDIT_H -#define _REGEDIT_H - -#define WIN32_LEAN_AND_MEAN /* Exclude rarely-used stuff from Windows headers */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "main.h" -#include "regproc.h" -#include "hexedit.h" -#include "security.h" -#endif +#ifndef _REGEDIT_H +#define _REGEDIT_H + +#define WIN32_LEAN_AND_MEAN /* Exclude rarely-used stuff from Windows headers */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "main.h" +#include "regproc.h" +#include "hexedit.h" +#include "security.h" +#endif diff --git a/reactos/base/applications/reporterror/lang/Hu.rc b/reactos/base/applications/reporterror/lang/Hu.rc index 20d76a12e09..10fee97ba72 100644 --- a/reactos/base/applications/reporterror/lang/Hu.rc +++ b/reactos/base/applications/reporterror/lang/Hu.rc @@ -1,58 +1,58 @@ -/* - * Copyright 2005 Robert Horvath - Hungarian translation - talley at cubeclub.hu -*/ - -LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT - -IDD_FIRSTPAGE DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT -STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Hibajelentх" -FONT 8, "MS Shell Dlg", 0, 0, 0x0 -BEGIN - LTEXT "A rendszer egy hibбbуl бllt helyre.", -1, 115, 15, 160, 24 - LTEXT "Szeretnйd йrtesнteni errхl a ReactOS projektet?", -1, 115, 35, 160, 17 -END - -IDD_SUBMIT_REPORT DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT -STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Hibajelentх" -FONT 8, "MS Shell Dlg", 0, 0, 0x0 -BEGIN - LTEXT "Kйrlek нrd le mit csinбltбl amikor a hiba jelentkezett.\n\nKattints a 'Tovбbb' gombra, hogy elkьld a hibaйrtesнtхt a ReactOS projektnek, vagy a 'Mйgse' gombot, ha nem akarsz informбciуkat kьldeni.",-1,10,0,225,40 - LTEXT "Az e-mail cнmed (nem szьksйges):",-1,10,40,120,20 - EDITTEXT IDE_SUBMIT_REPORT_YOUR_EMAIL, 110,40,150,12 - LTEXT "A problйma rцvid megfogalmazбsa (nem szьksйges):",-1,10,55,120,20 - EDITTEXT IDE_SUBMIT_REPORT_PROBLEM_DESCRIPTION,10,65,250,55,ES_WANTRETURN|ES_MULTILINE|ES_LEFT|WS_BORDER|WS_TABSTOP|WS_VSCROLL -END - -IDD_SUBMITTING_REPORT DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT -STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Hibajelentх" -FONT 8, "MS Shell Dlg", 0, 0, 0x0 -BEGIN - LTEXT "{STATUS}",IDC_SUBMISSION_STATUS,25,58,225,8 - CONTROL "", IDC_SUBMITTING_IN_PROGRESS, "msctls_progress32", PBS_MARQUEE | WS_CHILD | WS_VISIBLE | WS_BORDER, 25, 80, 225, 8 -END - -IDD_SUBMITTED_REPORT DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT -STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Hibajelentх" -FONT 8, "MS Shell Dlg", 0, 0, 0x0 -BEGIN - LTEXT "A hibajelentйsed sikeresen ellett kьldve a ReactOS projekt szбmбra. Kцszцnjьk!",-1,25,5,225,20 -END - -STRINGTABLE -BEGIN - IDS_WIZARD_NAME "Hibajelentйs kьldйse a ReactOS projektnek" - IDS_FAILED_TO_CONTACT_SERVER "A rendszer nem felvenni a kapcsolatot a hibabejelentх gйppel.\nKйrlek vizsgбld meg, hogy felvagy-e csatlakozva az internetre." - IDS_FAILED_TO_DELIVER_ERROR_REPORT "A rendszer nem tudta elkьldeni a hibajelentйst." -END - -STRINGTABLE -BEGIN - IDS_CONTACTING_SERVER "A kapcsolat felvйtele a hibabejelentх gйppel..." - IDS_FAILED_TO_INITIALIZE_WINSOCK "Nem sikerьlt a hбlуzatkezelх rendszert elindнtani (windows error code %d)" - IDS_FAILED_TO_LOCATE_SERVER "Nem sikerьlt felvenni a kapcsolatot a hibabejelentх gйppel" -END - +/* + * Copyright 2005 Robert Horvath - Hungarian translation - talley at cubeclub.hu +*/ + +LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT + +IDD_FIRSTPAGE DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Hibajelentх" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + LTEXT "A rendszer egy hibбbуl бllt helyre.", -1, 115, 15, 160, 24 + LTEXT "Szeretnйd йrtesнteni errхl a ReactOS projektet?", -1, 115, 35, 160, 17 +END + +IDD_SUBMIT_REPORT DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Hibajelentх" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + LTEXT "Kйrlek нrd le mit csinбltбl amikor a hiba jelentkezett.\n\nKattints a 'Tovбbb' gombra, hogy elkьld a hibaйrtesнtхt a ReactOS projektnek, vagy a 'Mйgse' gombot, ha nem akarsz informбciуkat kьldeni.",-1,10,0,225,40 + LTEXT "Az e-mail cнmed (nem szьksйges):",-1,10,40,120,20 + EDITTEXT IDE_SUBMIT_REPORT_YOUR_EMAIL, 110,40,150,12 + LTEXT "A problйma rцvid megfogalmazбsa (nem szьksйges):",-1,10,55,120,20 + EDITTEXT IDE_SUBMIT_REPORT_PROBLEM_DESCRIPTION,10,65,250,55,ES_WANTRETURN|ES_MULTILINE|ES_LEFT|WS_BORDER|WS_TABSTOP|WS_VSCROLL +END + +IDD_SUBMITTING_REPORT DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Hibajelentх" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + LTEXT "{STATUS}",IDC_SUBMISSION_STATUS,25,58,225,8 + CONTROL "", IDC_SUBMITTING_IN_PROGRESS, "msctls_progress32", PBS_MARQUEE | WS_CHILD | WS_VISIBLE | WS_BORDER, 25, 80, 225, 8 +END + +IDD_SUBMITTED_REPORT DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Hibajelentх" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + LTEXT "A hibajelentйsed sikeresen ellett kьldve a ReactOS projekt szбmбra. Kцszцnjьk!",-1,25,5,225,20 +END + +STRINGTABLE +BEGIN + IDS_WIZARD_NAME "Hibajelentйs kьldйse a ReactOS projektnek" + IDS_FAILED_TO_CONTACT_SERVER "A rendszer nem felvenni a kapcsolatot a hibabejelentх gйppel.\nKйrlek vizsgбld meg, hogy felvagy-e csatlakozva az internetre." + IDS_FAILED_TO_DELIVER_ERROR_REPORT "A rendszer nem tudta elkьldeni a hibajelentйst." +END + +STRINGTABLE +BEGIN + IDS_CONTACTING_SERVER "A kapcsolat felvйtele a hibabejelentх gйppel..." + IDS_FAILED_TO_INITIALIZE_WINSOCK "Nem sikerьlt a hбlуzatkezelх rendszert elindнtani (windows error code %d)" + IDS_FAILED_TO_LOCATE_SERVER "Nem sikerьlt felvenni a kapcsolatot a hibabejelentх gйppel" +END + diff --git a/reactos/base/applications/reporterror/reporterror.rc b/reactos/base/applications/reporterror/reporterror.rc index 4f17a04be19..09543efe356 100644 --- a/reactos/base/applications/reporterror/reporterror.rc +++ b/reactos/base/applications/reporterror/reporterror.rc @@ -1,17 +1,17 @@ -#include -#include "resource.h" - -#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Error Reporting Assistant\0" -#define REACTOS_STR_INTERNAL_NAME "reporterror\0" -#define REACTOS_STR_ORIGINAL_FILENAME "reporterror.exe\0" -#include - -LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL - -1 24 DISCARDABLE "manifest.xml" - -/* Bitmaps */ -IDB_WATERMARK BITMAP "resources/watermark.bmp" -IDB_HEADER BITMAP "resources/header.bmp" - -#include "rsrc.rc" +#include +#include "resource.h" + +#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Error Reporting Assistant\0" +#define REACTOS_STR_INTERNAL_NAME "reporterror\0" +#define REACTOS_STR_ORIGINAL_FILENAME "reporterror.exe\0" +#include + +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL + +1 24 DISCARDABLE "manifest.xml" + +/* Bitmaps */ +IDB_WATERMARK BITMAP "resources/watermark.bmp" +IDB_HEADER BITMAP "resources/header.bmp" + +#include "rsrc.rc" diff --git a/reactos/base/applications/sc/print.c b/reactos/base/applications/sc/print.c index ead5533508b..359fb2003f8 100644 --- a/reactos/base/applications/sc/print.c +++ b/reactos/base/applications/sc/print.c @@ -1,105 +1,105 @@ -/* - * PROJECT: ReactOS Services - * LICENSE: GPL - See COPYING in the top level directory - * FILE: base/system/sc/print.c - * PURPOSE: print service info - * COPYRIGHT: Copyright 2005 - 2006 Ged Murphy - * - */ - -#include "sc.h" - - -VOID -PrintService(LPCTSTR lpServiceName, - LPSERVICE_STATUS_PROCESS pStatus, - BOOL bExtended) -{ - _tprintf(_T("SERVICE_NAME: %s\n"), lpServiceName); - - _tprintf(_T("\tTYPE : %x "), - (unsigned int)pStatus->dwServiceType); - switch (pStatus->dwServiceType) - { - case SERVICE_KERNEL_DRIVER: - _tprintf(_T("KERNEL_DRIVER\n")); - break; - - case SERVICE_FILE_SYSTEM_DRIVER: - _tprintf(_T("FILE_SYSTEM_DRIVER\n")); - break; - - case SERVICE_WIN32_OWN_PROCESS: - _tprintf(_T("WIN32_OWN_PROCESS\n")); - break; - - case SERVICE_WIN32_SHARE_PROCESS: - _tprintf(_T("WIN32_SHARE_PROCESS\n")); - break; - - case SERVICE_WIN32_OWN_PROCESS + SERVICE_INTERACTIVE_PROCESS: - _tprintf(_T("WIN32_OWN_PROCESS (interactive)\n")); - break; - - case SERVICE_WIN32_SHARE_PROCESS + SERVICE_INTERACTIVE_PROCESS: - _tprintf(_T("WIN32_SHARE_PROCESS (interactive)\n")); - break; - - default : _tprintf(_T("\n")); break; - } - - _tprintf(_T("\tSTATE : %x "), - (unsigned int)pStatus->dwCurrentState); - - switch (pStatus->dwCurrentState) - { - case 1 : _tprintf(_T("STOPPED\n")); break; - case 2 : _tprintf(_T("START_PENDING\n")); break; - case 3 : _tprintf(_T("STOP_PENDING\n")); break; - case 4 : _tprintf(_T("RUNNING\n")); break; - case 5 : _tprintf(_T("CONTINUE_PENDING\n")); break; - case 6 : _tprintf(_T("PAUSE_PENDING\n")); break; - case 7 : _tprintf(_T("PAUSED\n")); break; - default : _tprintf(_T("\n")); break; - } - - _tprintf(_T("\t\t\t\t(")); - - if (pStatus->dwControlsAccepted & SERVICE_ACCEPT_STOP) - _tprintf(_T("STOPPABLE,")); - else - _tprintf(_T("NOT_STOPPABLE,")); - - if (pStatus->dwControlsAccepted & SERVICE_ACCEPT_PAUSE_CONTINUE) - _tprintf(_T("PAUSABLE,")); - else - _tprintf(_T("NOT_PAUSABLE,")); - - if (pStatus->dwControlsAccepted & SERVICE_ACCEPT_SHUTDOWN) - _tprintf(_T("ACCEPTS_SHUTDOWN")); - else - _tprintf(_T("IGNORES_SHUTDOWN")); - - _tprintf(_T(")\n")); - - _tprintf(_T("\tWIN32_EXIT_CODE : %d (0x%x)\n"), - (unsigned int)pStatus->dwWin32ExitCode, - (unsigned int)pStatus->dwWin32ExitCode); - _tprintf(_T("\tSERVICE_EXIT_CODE : %d (0x%x)\n"), - (unsigned int)pStatus->dwServiceSpecificExitCode, - (unsigned int)pStatus->dwServiceSpecificExitCode); - _tprintf(_T("\tCHECKPOINT : 0x%x\n"), - (unsigned int)pStatus->dwCheckPoint); - _tprintf(_T("\tWAIT_HINT : 0x%x\n"), - (unsigned int)pStatus->dwWaitHint); - - if (bExtended) - { - _tprintf(_T("\tPID : %lu\n"), - pStatus->dwProcessId); - _tprintf(_T("\tFLAGS : %lu\n"), - pStatus->dwServiceFlags); - } - - _tprintf(_T("\n")); -} +/* + * PROJECT: ReactOS Services + * LICENSE: GPL - See COPYING in the top level directory + * FILE: base/system/sc/print.c + * PURPOSE: print service info + * COPYRIGHT: Copyright 2005 - 2006 Ged Murphy + * + */ + +#include "sc.h" + + +VOID +PrintService(LPCTSTR lpServiceName, + LPSERVICE_STATUS_PROCESS pStatus, + BOOL bExtended) +{ + _tprintf(_T("SERVICE_NAME: %s\n"), lpServiceName); + + _tprintf(_T("\tTYPE : %x "), + (unsigned int)pStatus->dwServiceType); + switch (pStatus->dwServiceType) + { + case SERVICE_KERNEL_DRIVER: + _tprintf(_T("KERNEL_DRIVER\n")); + break; + + case SERVICE_FILE_SYSTEM_DRIVER: + _tprintf(_T("FILE_SYSTEM_DRIVER\n")); + break; + + case SERVICE_WIN32_OWN_PROCESS: + _tprintf(_T("WIN32_OWN_PROCESS\n")); + break; + + case SERVICE_WIN32_SHARE_PROCESS: + _tprintf(_T("WIN32_SHARE_PROCESS\n")); + break; + + case SERVICE_WIN32_OWN_PROCESS + SERVICE_INTERACTIVE_PROCESS: + _tprintf(_T("WIN32_OWN_PROCESS (interactive)\n")); + break; + + case SERVICE_WIN32_SHARE_PROCESS + SERVICE_INTERACTIVE_PROCESS: + _tprintf(_T("WIN32_SHARE_PROCESS (interactive)\n")); + break; + + default : _tprintf(_T("\n")); break; + } + + _tprintf(_T("\tSTATE : %x "), + (unsigned int)pStatus->dwCurrentState); + + switch (pStatus->dwCurrentState) + { + case 1 : _tprintf(_T("STOPPED\n")); break; + case 2 : _tprintf(_T("START_PENDING\n")); break; + case 3 : _tprintf(_T("STOP_PENDING\n")); break; + case 4 : _tprintf(_T("RUNNING\n")); break; + case 5 : _tprintf(_T("CONTINUE_PENDING\n")); break; + case 6 : _tprintf(_T("PAUSE_PENDING\n")); break; + case 7 : _tprintf(_T("PAUSED\n")); break; + default : _tprintf(_T("\n")); break; + } + + _tprintf(_T("\t\t\t\t(")); + + if (pStatus->dwControlsAccepted & SERVICE_ACCEPT_STOP) + _tprintf(_T("STOPPABLE,")); + else + _tprintf(_T("NOT_STOPPABLE,")); + + if (pStatus->dwControlsAccepted & SERVICE_ACCEPT_PAUSE_CONTINUE) + _tprintf(_T("PAUSABLE,")); + else + _tprintf(_T("NOT_PAUSABLE,")); + + if (pStatus->dwControlsAccepted & SERVICE_ACCEPT_SHUTDOWN) + _tprintf(_T("ACCEPTS_SHUTDOWN")); + else + _tprintf(_T("IGNORES_SHUTDOWN")); + + _tprintf(_T(")\n")); + + _tprintf(_T("\tWIN32_EXIT_CODE : %d (0x%x)\n"), + (unsigned int)pStatus->dwWin32ExitCode, + (unsigned int)pStatus->dwWin32ExitCode); + _tprintf(_T("\tSERVICE_EXIT_CODE : %d (0x%x)\n"), + (unsigned int)pStatus->dwServiceSpecificExitCode, + (unsigned int)pStatus->dwServiceSpecificExitCode); + _tprintf(_T("\tCHECKPOINT : 0x%x\n"), + (unsigned int)pStatus->dwCheckPoint); + _tprintf(_T("\tWAIT_HINT : 0x%x\n"), + (unsigned int)pStatus->dwWaitHint); + + if (bExtended) + { + _tprintf(_T("\tPID : %lu\n"), + pStatus->dwProcessId); + _tprintf(_T("\tFLAGS : %lu\n"), + pStatus->dwServiceFlags); + } + + _tprintf(_T("\n")); +} diff --git a/reactos/base/applications/sc/sc.rc b/reactos/base/applications/sc/sc.rc index a0ac6b827dc..0c535bc34de 100644 --- a/reactos/base/applications/sc/sc.rc +++ b/reactos/base/applications/sc/sc.rc @@ -1,10 +1,10 @@ -#include -#include -#include "resource.h" - -#define REACTOS_STR_FILE_DESCRIPTION "Services control application\0" -#define REACTOS_STR_INTERNAL_NAME "sc\0" -#define REACTOS_STR_ORIGINAL_FILENAME "sc.exe\0" -#include - -//#include "En.rc" +#include +#include +#include "resource.h" + +#define REACTOS_STR_FILE_DESCRIPTION "Services control application\0" +#define REACTOS_STR_INTERNAL_NAME "sc\0" +#define REACTOS_STR_ORIGINAL_FILENAME "sc.exe\0" +#include + +//#include "En.rc" diff --git a/reactos/base/applications/screensavers/matrix/Permission.txt b/reactos/base/applications/screensavers/matrix/Permission.txt index 791f759cb8c..0a081c95b3e 100644 --- a/reactos/base/applications/screensavers/matrix/Permission.txt +++ b/reactos/base/applications/screensavers/matrix/Permission.txt @@ -1,17 +1,17 @@ -Matrrix2 screensaver for ReactOS - -/***************************************** - -Freeware -Copyright J Brown 2003 - -Updates at http://www.catch22.net - -******************************************/ - -The author has given permission to use these sources -under Public Domain. Do what thou will but please give -credit where credit is due. - - --Magnus Olsen (aka GreatLord) / Aleasky (aka Fireball) +Matrrix2 screensaver for ReactOS + +/***************************************** + +Freeware +Copyright J Brown 2003 + +Updates at http://www.catch22.net + +******************************************/ + +The author has given permission to use these sources +under Public Domain. Do what thou will but please give +credit where credit is due. + + +-Magnus Olsen (aka GreatLord) / Aleasky (aka Fireball) diff --git a/reactos/base/applications/screensavers/matrix/ReadMe.txt b/reactos/base/applications/screensavers/matrix/ReadMe.txt index 32607f4a60c..7b18e780062 100644 --- a/reactos/base/applications/screensavers/matrix/ReadMe.txt +++ b/reactos/base/applications/screensavers/matrix/ReadMe.txt @@ -1,32 +1,32 @@ -Matrix ScreenSaver 2.0 -www.catch22.ork.uk - -Freeware written by J Brown 2003 ------------------------------------- - -The Matrix ScreenSaver is a small, fast and elegant Windows -version of the green "Matrix" cypher-code seen in the films. - -With this version you can even add messages which are -decoded displayed in realtime. - -Features ------------------------------------- - -+ Small and FAST (50Kb!) -+ All 32bit versions of Windows (Win95,98,ME,NT,2000,XP,NET) -+ Multimonitor support (new in version 2) -+ Custom matrix messages -+ Highly configurable -+ Full sourcecode available! - -Installation and use ------------------------------------- -Simply copy "matrix.scr" to your windows directory, -or right-click this file in explorer and click "Install". - -Other than that, it's just a standard Windows screensaver so it -works just like any other screensaver - - - +Matrix ScreenSaver 2.0 +www.catch22.ork.uk + +Freeware written by J Brown 2003 +------------------------------------ + +The Matrix ScreenSaver is a small, fast and elegant Windows +version of the green "Matrix" cypher-code seen in the films. + +With this version you can even add messages which are +decoded displayed in realtime. + +Features +------------------------------------ + ++ Small and FAST (50Kb!) ++ All 32bit versions of Windows (Win95,98,ME,NT,2000,XP,NET) ++ Multimonitor support (new in version 2) ++ Custom matrix messages ++ Highly configurable ++ Full sourcecode available! + +Installation and use +------------------------------------ +Simply copy "matrix.scr" to your windows directory, +or right-click this file in explorer and click "Install". + +Other than that, it's just a standard Windows screensaver so it +works just like any other screensaver + + + diff --git a/reactos/base/applications/screensavers/matrix/config.c b/reactos/base/applications/screensavers/matrix/config.c index 806170ecc7a..8c5fb6bebc6 100644 --- a/reactos/base/applications/screensavers/matrix/config.c +++ b/reactos/base/applications/screensavers/matrix/config.c @@ -1,312 +1,312 @@ -// -// config.c -// -// Screensaver Configuration dialog -// -#include -#include -#include -#include "resource.h" -#include "globals.h" -#include "message.h" -#include "matrix.h" - -// needed for slider-controls -//#pragma comment(lib, "comctl32.lib") - -// -// Called once for every font - add to list -// -int CALLBACK EnumFontProc(ENUMLOGFONT *lpelfe, NEWTEXTMETRIC *lpntme, int FontType, LPARAM lParam) -{ - SendMessage((HWND)lParam, CB_ADDSTRING, 0, (LPARAM)lpelfe->elfLogFont.lfFaceName); - return 1; -} - -// -// Add every fontname into specified combobox -// -void AddFonts(HWND hwndCombo) -{ - HDC hdc; - LOGFONT lf; - - lf.lfCharSet = ANSI_CHARSET; - lf.lfPitchAndFamily = 0; - lf.lfFaceName[0] = _T('\0'); - - hdc = GetDC(0); - EnumFontFamiliesEx(hdc, &lf, (FONTENUMPROC)EnumFontProc, (LONG)hwndCombo, 0); - ReleaseDC(0, hdc); -} - -// -// Redraw preview control with current font/fontsize -// -void UpdatePreview(HWND hwnd) -{ - g_nFontSize = SendDlgItemMessage(hwnd, IDC_SLIDER4, TBM_GETPOS,0, 0); - SetMessageFont(hwnd, g_szFontName, g_nFontSize, g_fFontBold); - InvalidateRect(GetDlgItem(hwnd, IDC_PREVIEW), 0, 0); -} - -// -// Dialogbox procedure for Configuration window -// -BOOL CALLBACK ConfigDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) -{ - static TCHAR buf[256]; - HWND hwndCombo, hwndCtrl; - int index, items, val; - RECT rect; - static int prevwidth, prevheight; - - switch(uMsg) - { - case WM_INITDIALOG: - - prevwidth = GetSystemMetrics(SM_CXSCREEN) / GLYPH_WIDTH; - prevheight = GetSystemMetrics(SM_CYSCREEN) / GLYPH_HEIGHT + 1; - - //Add any saved messages to the combo box - for(index = 0; index < g_nNumMessages; index++) - { - if(lstrlen(g_szMessages[index]) > 0) - SendDlgItemMessage(hwnd, IDC_COMBO1, CB_ADDSTRING, 0, (LPARAM)g_szMessages[index]); - } - - //select the first message, and preview it - SendDlgItemMessage(hwnd, IDC_COMBO1, CB_SETCURSEL, 0, 0); - - SendDlgItemMessage(hwnd, IDC_SLIDER1, TBM_SETRANGE, 0, MAKELONG(SPEED_MIN, SPEED_MAX)); - SendDlgItemMessage(hwnd, IDC_SLIDER2, TBM_SETRANGE, 0, MAKELONG(DENSITY_MIN, DENSITY_MAX)); - SendDlgItemMessage(hwnd, IDC_SLIDER3, TBM_SETRANGE, 0, MAKELONG(MSGSPEED_MIN, MSGSPEED_MAX)); - SendDlgItemMessage(hwnd, IDC_SLIDER4, TBM_SETRANGE, 0, MAKELONG(FONT_MIN, FONT_MAX)); - - //SendDlgItemMessage(hwnd, IDC_SLIDER1, TBM_SETTICFREQ, 5, 0); - SendDlgItemMessage(hwnd, IDC_SLIDER2, TBM_SETTICFREQ, 5, 0); - SendDlgItemMessage(hwnd, IDC_SLIDER3, TBM_SETTICFREQ, 50, 0); - SendDlgItemMessage(hwnd, IDC_SLIDER4, TBM_SETTICFREQ, 2, 0); - - SendDlgItemMessage(hwnd, IDC_SLIDER1, TBM_SETPOS, TRUE, g_nMatrixSpeed); - SendDlgItemMessage(hwnd, IDC_SLIDER2, TBM_SETPOS, TRUE, g_nDensity); - SendDlgItemMessage(hwnd, IDC_SLIDER3, TBM_SETPOS, TRUE, g_nMessageSpeed); - SendDlgItemMessage(hwnd, IDC_SLIDER4, TBM_SETPOS, TRUE, g_nFontSize); - - CheckDlgButton(hwnd, IDC_RANDOM, g_fRandomizeMessages); - CheckDlgButton(hwnd, IDC_BOLD, g_fFontBold); - - AddFonts(GetDlgItem(hwnd, IDC_COMBO2)); - index = SendDlgItemMessage(hwnd, IDC_COMBO2, CB_FINDSTRING, 0, (LPARAM)g_szFontName); - SendDlgItemMessage(hwnd, IDC_COMBO2, CB_SETCURSEL, index, 0); - UpdatePreview(hwnd); - return 0; - - case WM_DESTROY: - //DeInitMessage(); - return 0; - - case WM_CTLCOLORSTATIC: - - if(GetDlgCtrlID((HWND)lParam) == IDC_ABOUT) - { - SetTextColor((HDC)wParam, RGB(0,80,0)); - SetBkColor((HDC)wParam, GetSysColor(COLOR_3DFACE)); - return (BOOL)GetSysColorBrush(COLOR_3DFACE); - } - else if(GetDlgCtrlID((HWND)lParam) == IDC_PREVIEW) - { - HDC hdc = (HDC)wParam; - RECT clip; - - GetDlgItemText(hwnd, IDC_COMBO1, buf, 256); - - GetClientRect((HWND)lParam, &rect); - - if(prevwidth < rect.right) - { - rect.left = (rect.right-prevwidth) / 2; - rect.right = rect.left + prevwidth; - } - else - { - rect.left = 0; - rect.right = prevwidth; - } - - if(prevheight < rect.bottom) - { - rect.top = (rect.bottom-prevheight) / 2; - rect.bottom = rect.top + prevheight; - } - else - { - rect.top = 0; - rect.bottom = prevheight; - } - - SetTextColor(hdc, RGB(128,255,128)); - SetBkColor(hdc, 0); - - //SetRect(&rect, 0, 0, PrevMessage->width, MAXMSG_HEIGHT); - CopyRect(&clip, &rect); - FillRect(hdc, &rect, GetStockObject(BLACK_BRUSH)); - - SelectObject(hdc, g_hFont); - - InflateRect(&clip, 2, 2); - - FrameRect(hdc, &clip, GetSysColorBrush(COLOR_3DSHADOW)); - IntersectClipRect(hdc, rect.left, rect.top, rect.right, rect.bottom); - - // figure out where the bounding rectangle should be - DrawText(hdc, buf, -1, &rect, DT_CENTER|DT_VCENTER|DT_WORDBREAK|DT_CALCRECT); - OffsetRect(&rect, (prevwidth-(rect.right-rect.left))/2, (prevheight-(rect.bottom-rect.top))/2); - - // now draw it! - DrawText(hdc, buf, -1, &rect, DT_CENTER|DT_VCENTER|DT_WORDBREAK); - - - return (BOOL)GetStockObject(NULL_BRUSH); - } - else - { - break; - } - - case WM_HSCROLL: - - if((HWND)lParam == GetDlgItem(hwnd, IDC_SLIDER4)) - { - // one of the sliders changed..update - UpdatePreview(hwnd); - } - - return 0; - - case WM_COMMAND: - - switch(HIWORD(wParam)) - { - case CBN_EDITCHANGE: - case CBN_SELCHANGE: - - //fall through to Preview: - index = SendDlgItemMessage(hwnd, IDC_COMBO2, CB_GETCURSEL, 0, 0); - SendDlgItemMessage(hwnd, IDC_COMBO2, CB_GETLBTEXT, index, (LPARAM)g_szFontName); - //SetMessageFont(hwnd, g_szFontName, g_nFontSize, TRUE); - - UpdatePreview(hwnd); - return 0; - } - - switch(LOWORD(wParam)) - { - case IDC_RANDOM: - g_fRandomizeMessages = IsDlgButtonChecked(hwnd, IDC_RANDOM); - break; - - case IDC_BOLD: - g_fFontBold = IsDlgButtonChecked(hwnd, IDC_BOLD); - UpdatePreview(hwnd); - break; - - case IDOK: - - hwndCtrl = GetDlgItem(hwnd, IDC_COMBO1); - - items = min(MAX_MESSAGES, SendMessage(hwndCtrl, CB_GETCOUNT, 0, 0)); - - for(index = 0; index < items; index++) - { - SendMessage(hwndCtrl, CB_GETLBTEXT, index, (LPARAM)g_szMessages[index]); - } - - g_nNumMessages = items; - - //matrix speed - val = SendDlgItemMessage(hwnd, IDC_SLIDER1, TBM_GETPOS, 0, 0); - if(val >= SPEED_MIN && val <= SPEED_MAX) - g_nMatrixSpeed = val; - - //density - val = SendDlgItemMessage(hwnd, IDC_SLIDER2, TBM_GETPOS, 0, 0); - if(val >= DENSITY_MIN && val <= DENSITY_MAX) - g_nDensity = val; - - //message speed - val = SendDlgItemMessage(hwnd, IDC_SLIDER3, TBM_GETPOS, 0, 0); - if(val >= MSGSPEED_MIN && val <= MSGSPEED_MAX) - g_nMessageSpeed = val; - - //font size - val = SendDlgItemMessage(hwnd, IDC_SLIDER4, TBM_GETPOS, 0, 0); - if(val >= FONT_MIN && val <= FONT_MAX) - g_nFontSize = val; - - SaveSettings(); - EndDialog(hwnd, 0); - return 0; - - case IDCANCEL: - EndDialog(hwnd, 0); - return TRUE; - - case IDC_ADD: - - hwndCombo = GetDlgItem(hwnd, IDC_COMBO1); - - if(GetWindowText(hwndCombo, buf, 256)) - { - SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM)buf); - } - - UpdatePreview(hwnd); - - return 0; - - case IDC_REMOVE: - hwndCombo = GetDlgItem(hwnd, IDC_COMBO1); - GetWindowText(hwndCombo, buf, 256); - - index = SendMessage(hwndCombo, CB_GETCURSEL, 0, 0); - SendMessage(hwndCombo, CB_DELETESTRING, index, 0); - - SendMessage(hwndCombo, CB_SETCURSEL, 0, 0); - UpdatePreview(hwnd); - return 0; - } - return 0; - - case WM_CLOSE: - EndDialog(hwnd, 0); - return 0; - } - return 0; -} - -// -// Display the configuration dialog -// -int Configure(HWND hwndParent) -{ - INITCOMMONCONTROLSEX icc; - - icc.dwICC = ICC_UPDOWN_CLASS | ICC_BAR_CLASSES; - icc.dwSize = sizeof(icc); - - InitCommonControlsEx(&icc); - -#ifdef _DEBUG - if(hwndParent == NULL) - hwndParent = 0; -#else - if(hwndParent == NULL) - hwndParent = GetForegroundWindow(); -#endif - - DialogBox(GetModuleHandle(0), MAKEINTRESOURCE(IDD_CONFIG), hwndParent, ConfigDlgProc); - - return 0; -} - +// +// config.c +// +// Screensaver Configuration dialog +// +#include +#include +#include +#include "resource.h" +#include "globals.h" +#include "message.h" +#include "matrix.h" + +// needed for slider-controls +//#pragma comment(lib, "comctl32.lib") + +// +// Called once for every font - add to list +// +int CALLBACK EnumFontProc(ENUMLOGFONT *lpelfe, NEWTEXTMETRIC *lpntme, int FontType, LPARAM lParam) +{ + SendMessage((HWND)lParam, CB_ADDSTRING, 0, (LPARAM)lpelfe->elfLogFont.lfFaceName); + return 1; +} + +// +// Add every fontname into specified combobox +// +void AddFonts(HWND hwndCombo) +{ + HDC hdc; + LOGFONT lf; + + lf.lfCharSet = ANSI_CHARSET; + lf.lfPitchAndFamily = 0; + lf.lfFaceName[0] = _T('\0'); + + hdc = GetDC(0); + EnumFontFamiliesEx(hdc, &lf, (FONTENUMPROC)EnumFontProc, (LONG)hwndCombo, 0); + ReleaseDC(0, hdc); +} + +// +// Redraw preview control with current font/fontsize +// +void UpdatePreview(HWND hwnd) +{ + g_nFontSize = SendDlgItemMessage(hwnd, IDC_SLIDER4, TBM_GETPOS,0, 0); + SetMessageFont(hwnd, g_szFontName, g_nFontSize, g_fFontBold); + InvalidateRect(GetDlgItem(hwnd, IDC_PREVIEW), 0, 0); +} + +// +// Dialogbox procedure for Configuration window +// +BOOL CALLBACK ConfigDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + static TCHAR buf[256]; + HWND hwndCombo, hwndCtrl; + int index, items, val; + RECT rect; + static int prevwidth, prevheight; + + switch(uMsg) + { + case WM_INITDIALOG: + + prevwidth = GetSystemMetrics(SM_CXSCREEN) / GLYPH_WIDTH; + prevheight = GetSystemMetrics(SM_CYSCREEN) / GLYPH_HEIGHT + 1; + + //Add any saved messages to the combo box + for(index = 0; index < g_nNumMessages; index++) + { + if(lstrlen(g_szMessages[index]) > 0) + SendDlgItemMessage(hwnd, IDC_COMBO1, CB_ADDSTRING, 0, (LPARAM)g_szMessages[index]); + } + + //select the first message, and preview it + SendDlgItemMessage(hwnd, IDC_COMBO1, CB_SETCURSEL, 0, 0); + + SendDlgItemMessage(hwnd, IDC_SLIDER1, TBM_SETRANGE, 0, MAKELONG(SPEED_MIN, SPEED_MAX)); + SendDlgItemMessage(hwnd, IDC_SLIDER2, TBM_SETRANGE, 0, MAKELONG(DENSITY_MIN, DENSITY_MAX)); + SendDlgItemMessage(hwnd, IDC_SLIDER3, TBM_SETRANGE, 0, MAKELONG(MSGSPEED_MIN, MSGSPEED_MAX)); + SendDlgItemMessage(hwnd, IDC_SLIDER4, TBM_SETRANGE, 0, MAKELONG(FONT_MIN, FONT_MAX)); + + //SendDlgItemMessage(hwnd, IDC_SLIDER1, TBM_SETTICFREQ, 5, 0); + SendDlgItemMessage(hwnd, IDC_SLIDER2, TBM_SETTICFREQ, 5, 0); + SendDlgItemMessage(hwnd, IDC_SLIDER3, TBM_SETTICFREQ, 50, 0); + SendDlgItemMessage(hwnd, IDC_SLIDER4, TBM_SETTICFREQ, 2, 0); + + SendDlgItemMessage(hwnd, IDC_SLIDER1, TBM_SETPOS, TRUE, g_nMatrixSpeed); + SendDlgItemMessage(hwnd, IDC_SLIDER2, TBM_SETPOS, TRUE, g_nDensity); + SendDlgItemMessage(hwnd, IDC_SLIDER3, TBM_SETPOS, TRUE, g_nMessageSpeed); + SendDlgItemMessage(hwnd, IDC_SLIDER4, TBM_SETPOS, TRUE, g_nFontSize); + + CheckDlgButton(hwnd, IDC_RANDOM, g_fRandomizeMessages); + CheckDlgButton(hwnd, IDC_BOLD, g_fFontBold); + + AddFonts(GetDlgItem(hwnd, IDC_COMBO2)); + index = SendDlgItemMessage(hwnd, IDC_COMBO2, CB_FINDSTRING, 0, (LPARAM)g_szFontName); + SendDlgItemMessage(hwnd, IDC_COMBO2, CB_SETCURSEL, index, 0); + UpdatePreview(hwnd); + return 0; + + case WM_DESTROY: + //DeInitMessage(); + return 0; + + case WM_CTLCOLORSTATIC: + + if(GetDlgCtrlID((HWND)lParam) == IDC_ABOUT) + { + SetTextColor((HDC)wParam, RGB(0,80,0)); + SetBkColor((HDC)wParam, GetSysColor(COLOR_3DFACE)); + return (BOOL)GetSysColorBrush(COLOR_3DFACE); + } + else if(GetDlgCtrlID((HWND)lParam) == IDC_PREVIEW) + { + HDC hdc = (HDC)wParam; + RECT clip; + + GetDlgItemText(hwnd, IDC_COMBO1, buf, 256); + + GetClientRect((HWND)lParam, &rect); + + if(prevwidth < rect.right) + { + rect.left = (rect.right-prevwidth) / 2; + rect.right = rect.left + prevwidth; + } + else + { + rect.left = 0; + rect.right = prevwidth; + } + + if(prevheight < rect.bottom) + { + rect.top = (rect.bottom-prevheight) / 2; + rect.bottom = rect.top + prevheight; + } + else + { + rect.top = 0; + rect.bottom = prevheight; + } + + SetTextColor(hdc, RGB(128,255,128)); + SetBkColor(hdc, 0); + + //SetRect(&rect, 0, 0, PrevMessage->width, MAXMSG_HEIGHT); + CopyRect(&clip, &rect); + FillRect(hdc, &rect, GetStockObject(BLACK_BRUSH)); + + SelectObject(hdc, g_hFont); + + InflateRect(&clip, 2, 2); + + FrameRect(hdc, &clip, GetSysColorBrush(COLOR_3DSHADOW)); + IntersectClipRect(hdc, rect.left, rect.top, rect.right, rect.bottom); + + // figure out where the bounding rectangle should be + DrawText(hdc, buf, -1, &rect, DT_CENTER|DT_VCENTER|DT_WORDBREAK|DT_CALCRECT); + OffsetRect(&rect, (prevwidth-(rect.right-rect.left))/2, (prevheight-(rect.bottom-rect.top))/2); + + // now draw it! + DrawText(hdc, buf, -1, &rect, DT_CENTER|DT_VCENTER|DT_WORDBREAK); + + + return (BOOL)GetStockObject(NULL_BRUSH); + } + else + { + break; + } + + case WM_HSCROLL: + + if((HWND)lParam == GetDlgItem(hwnd, IDC_SLIDER4)) + { + // one of the sliders changed..update + UpdatePreview(hwnd); + } + + return 0; + + case WM_COMMAND: + + switch(HIWORD(wParam)) + { + case CBN_EDITCHANGE: + case CBN_SELCHANGE: + + //fall through to Preview: + index = SendDlgItemMessage(hwnd, IDC_COMBO2, CB_GETCURSEL, 0, 0); + SendDlgItemMessage(hwnd, IDC_COMBO2, CB_GETLBTEXT, index, (LPARAM)g_szFontName); + //SetMessageFont(hwnd, g_szFontName, g_nFontSize, TRUE); + + UpdatePreview(hwnd); + return 0; + } + + switch(LOWORD(wParam)) + { + case IDC_RANDOM: + g_fRandomizeMessages = IsDlgButtonChecked(hwnd, IDC_RANDOM); + break; + + case IDC_BOLD: + g_fFontBold = IsDlgButtonChecked(hwnd, IDC_BOLD); + UpdatePreview(hwnd); + break; + + case IDOK: + + hwndCtrl = GetDlgItem(hwnd, IDC_COMBO1); + + items = min(MAX_MESSAGES, SendMessage(hwndCtrl, CB_GETCOUNT, 0, 0)); + + for(index = 0; index < items; index++) + { + SendMessage(hwndCtrl, CB_GETLBTEXT, index, (LPARAM)g_szMessages[index]); + } + + g_nNumMessages = items; + + //matrix speed + val = SendDlgItemMessage(hwnd, IDC_SLIDER1, TBM_GETPOS, 0, 0); + if(val >= SPEED_MIN && val <= SPEED_MAX) + g_nMatrixSpeed = val; + + //density + val = SendDlgItemMessage(hwnd, IDC_SLIDER2, TBM_GETPOS, 0, 0); + if(val >= DENSITY_MIN && val <= DENSITY_MAX) + g_nDensity = val; + + //message speed + val = SendDlgItemMessage(hwnd, IDC_SLIDER3, TBM_GETPOS, 0, 0); + if(val >= MSGSPEED_MIN && val <= MSGSPEED_MAX) + g_nMessageSpeed = val; + + //font size + val = SendDlgItemMessage(hwnd, IDC_SLIDER4, TBM_GETPOS, 0, 0); + if(val >= FONT_MIN && val <= FONT_MAX) + g_nFontSize = val; + + SaveSettings(); + EndDialog(hwnd, 0); + return 0; + + case IDCANCEL: + EndDialog(hwnd, 0); + return TRUE; + + case IDC_ADD: + + hwndCombo = GetDlgItem(hwnd, IDC_COMBO1); + + if(GetWindowText(hwndCombo, buf, 256)) + { + SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM)buf); + } + + UpdatePreview(hwnd); + + return 0; + + case IDC_REMOVE: + hwndCombo = GetDlgItem(hwnd, IDC_COMBO1); + GetWindowText(hwndCombo, buf, 256); + + index = SendMessage(hwndCombo, CB_GETCURSEL, 0, 0); + SendMessage(hwndCombo, CB_DELETESTRING, index, 0); + + SendMessage(hwndCombo, CB_SETCURSEL, 0, 0); + UpdatePreview(hwnd); + return 0; + } + return 0; + + case WM_CLOSE: + EndDialog(hwnd, 0); + return 0; + } + return 0; +} + +// +// Display the configuration dialog +// +int Configure(HWND hwndParent) +{ + INITCOMMONCONTROLSEX icc; + + icc.dwICC = ICC_UPDOWN_CLASS | ICC_BAR_CLASSES; + icc.dwSize = sizeof(icc); + + InitCommonControlsEx(&icc); + +#ifdef _DEBUG + if(hwndParent == NULL) + hwndParent = 0; +#else + if(hwndParent == NULL) + hwndParent = GetForegroundWindow(); +#endif + + DialogBox(GetModuleHandle(0), MAKEINTRESOURCE(IDD_CONFIG), hwndParent, ConfigDlgProc); + + return 0; +} + diff --git a/reactos/base/applications/screensavers/matrix/globals.h b/reactos/base/applications/screensavers/matrix/globals.h index 4e5522428ad..23dd6c00e1f 100644 --- a/reactos/base/applications/screensavers/matrix/globals.h +++ b/reactos/base/applications/screensavers/matrix/globals.h @@ -1,63 +1,63 @@ -#ifndef GLOBALS_INCLUDED -#define GLOBALS_INCLUDED - -#ifdef __cplusplus -extern "C" { -#endif - -#define APPNAME _T("MATRIX ScreenSaver 2.0") - -#define DENSITY 24 -#define DENSITY_MAX 50 -#define DENSITY_MIN 5 - -// constants inferred from matrix.bmp -#define MAX_INTENSITY 5 // number of intensity levels -#define NUM_GLYPHS 26 // number of "glyphs" in each level -#define GLYPH_WIDTH 14 // width of each glyph (pixels) -#define GLYPH_HEIGHT 14 // height of each glyph (pixels) - -#define SPEED_MAX 10 -#define SPEED_MIN 1 - -#define MAXMSG_WIDTH 0x100 -#define MAXMSG_HEIGHT 0x100 -#define MAXMSG_LENGTH 64 - -#define MSGSPEED_MAX 500 -#define MSGSPEED_MIN 50 - -#define MAX_MESSAGES 16 - -#define FONT_MIN 8 -#define FONT_MAX 30 - -extern TCHAR g_szMessages[MAX_MESSAGES][MAXMSG_LENGTH]; -extern int g_nFontSize; -extern TCHAR g_szFontName[]; -extern BOOL g_fFontBold; -extern int g_nNumMessages; -extern int g_nCurrentMessage; -extern int g_nMessageSpeed; -extern int g_nMatrixSpeed; -extern int g_nDensity; -extern BOOL g_fRandomizeMessages; -extern HFONT g_hFont; -extern BOOL g_fScreenSaving; - -void LoadSettings(); -void SaveSettings(); - -BOOL ChangePassword(HWND hwnd); -BOOL VerifyPassword(HWND hwnd); - -BOOL Configure(HWND hwndParent); -BOOL ScreenSaver(HWND hwndParent); - -int crc_rand(); - -#ifdef __cplusplus -} -#endif - -#endif +#ifndef GLOBALS_INCLUDED +#define GLOBALS_INCLUDED + +#ifdef __cplusplus +extern "C" { +#endif + +#define APPNAME _T("MATRIX ScreenSaver 2.0") + +#define DENSITY 24 +#define DENSITY_MAX 50 +#define DENSITY_MIN 5 + +// constants inferred from matrix.bmp +#define MAX_INTENSITY 5 // number of intensity levels +#define NUM_GLYPHS 26 // number of "glyphs" in each level +#define GLYPH_WIDTH 14 // width of each glyph (pixels) +#define GLYPH_HEIGHT 14 // height of each glyph (pixels) + +#define SPEED_MAX 10 +#define SPEED_MIN 1 + +#define MAXMSG_WIDTH 0x100 +#define MAXMSG_HEIGHT 0x100 +#define MAXMSG_LENGTH 64 + +#define MSGSPEED_MAX 500 +#define MSGSPEED_MIN 50 + +#define MAX_MESSAGES 16 + +#define FONT_MIN 8 +#define FONT_MAX 30 + +extern TCHAR g_szMessages[MAX_MESSAGES][MAXMSG_LENGTH]; +extern int g_nFontSize; +extern TCHAR g_szFontName[]; +extern BOOL g_fFontBold; +extern int g_nNumMessages; +extern int g_nCurrentMessage; +extern int g_nMessageSpeed; +extern int g_nMatrixSpeed; +extern int g_nDensity; +extern BOOL g_fRandomizeMessages; +extern HFONT g_hFont; +extern BOOL g_fScreenSaving; + +void LoadSettings(); +void SaveSettings(); + +BOOL ChangePassword(HWND hwnd); +BOOL VerifyPassword(HWND hwnd); + +BOOL Configure(HWND hwndParent); +BOOL ScreenSaver(HWND hwndParent); + +int crc_rand(); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/reactos/base/applications/screensavers/matrix/matrix.c b/reactos/base/applications/screensavers/matrix/matrix.c index dd439eb3393..00b37d12e26 100644 --- a/reactos/base/applications/screensavers/matrix/matrix.c +++ b/reactos/base/applications/screensavers/matrix/matrix.c @@ -1,446 +1,446 @@ -// -// matrix.c -// -// Matrix-window implementation -// -#include -#include -#include -#include "globals.h" -#include "message.h" -#include "matrix.h" -#include "resource.h" - -void DoMatrixMessage(HDC hdc, MATRIX *matrix); - -// pseudo-random number generator, based on 16bit CRC algorithm -static WORD _crc_reg = 0; -int crc_rand() -{ - const WORD mask = 0xb400; - - if(_crc_reg & 1) - _crc_reg = (_crc_reg >> 1) ^ mask; - else - _crc_reg = (_crc_reg >> 1); - - return _crc_reg; -} - -int GlyphIntensity(GLYPH glyph) -{ - return (int)((glyph & 0x7f00) >> 8); -} - -GLYPH DarkenGlyph(GLYPH glyph) -{ - int intensity = GlyphIntensity(glyph); - - if(intensity > 0) - return GLYPH_REDRAW | ((intensity - 1) << 8) | (glyph & 0x00FF); - else - return glyph; -} - -GLYPH RandomGlyph(int intensity) -{ - return GLYPH_REDRAW | (intensity << 8) | (crc_rand() % NUM_GLYPHS); -} - -void RedrawBlip(GLYPH *glypharr, int blippos) -{ - glypharr[blippos+0] |= GLYPH_REDRAW; - glypharr[blippos+1] |= GLYPH_REDRAW; - glypharr[blippos+8] |= GLYPH_REDRAW; - glypharr[blippos+9] |= GLYPH_REDRAW; -} - -void ScrollMatrixColumn(MATRIX_COLUMN *col) -{ - int y; - GLYPH lastglyph = 0; - GLYPH thisglyph; - - // wait until we are allowed to scroll - if(col->started == FALSE) - { - if(--col->countdown <= 0) - col->started = TRUE; - - return; - } - - // "seed" the glyph-run - lastglyph = col->state ? (GLYPH)0 : (GLYPH)(MAX_INTENSITY << 8); - - // - // loop over the entire length of the column, looking for changes - // in intensity/darkness. This change signifies the start/end - // of a run of glyphs. - // - for(y = 0; y < col->length; y++) - { - thisglyph = col->glyph[y]; - - // bottom-most part of "run". Insert a new character (glyph) - // at the end to lengthen the run down the screen..gives the - // impression that the run is "falling" down the screen - if(GlyphIntensity(thisglyph) < GlyphIntensity(lastglyph) && - GlyphIntensity(thisglyph) == 0) - { - col->glyph[y] = RandomGlyph(MAX_INTENSITY - 1); - y++; - } - // top-most part of "run". Delete a character off the top by - // darkening the glyph until it eventually disappears (turns black). - // this gives the effect that the run as dropped downwards - else if(GlyphIntensity(thisglyph) > GlyphIntensity(lastglyph)) - { - col->glyph[y] = DarkenGlyph(thisglyph); - - // if we've just darkened the last bit, skip on so - // the whole run doesn't go dark - if(GlyphIntensity(thisglyph) == MAX_INTENSITY - 1) - y++; - } - - lastglyph = col->glyph[y]; - } - - // change state from blanks <-> runs when the current run as expired - if(--col->runlen <= 0) - { - if(col->state ^= 1) - col->runlen = crc_rand() % (3 * DENSITY/2) + DENSITY_MIN; - else - col->runlen = crc_rand() % (DENSITY_MAX+1-DENSITY) + (DENSITY_MIN*2); - } - - // - // make a "blip" run down this column at double-speed - // - - // mark current blip as redraw so it gets "erased" - if(col->blippos >= 0 && col->blippos < col->length) - RedrawBlip(col->glyph, col->blippos); - - // advance down screen at double-speed - col->blippos += 2; - - // if the blip gets to the end of a run, start it again (for a random - // length so that the blips never get synched together) - if(col->blippos >= col->bliplen) - { - col->bliplen = col->length + crc_rand() % 50; - col->blippos = 0; - } - - // now redraw blip at new position - if(col->blippos >= 0 && col->blippos < col->length) - RedrawBlip(col->glyph, col->blippos); - -} - -// -// randomly change a small collection glyphs in a column -// -void RandomMatrixColumn(MATRIX_COLUMN *col) -{ - int i, y; - - for(i = 1, y = 0; i < 16; i++) - { - // find a run - while(GlyphIntensity(col->glyph[y]) < MAX_INTENSITY-1 && y < col->length) - y++; - - if(y >= col->length) - break; - - col->glyph[y] = (col->glyph[y] & 0xff00) | (crc_rand() % NUM_GLYPHS); - col->glyph[y] |= GLYPH_REDRAW; - - y += crc_rand() % 10; - } -} - -void DrawGlyph(MATRIX *matrix, HDC hdc, int xpos, int ypos, GLYPH glyph) -{ - int intensity = GlyphIntensity(glyph); - int glyphidx = glyph & 0xff; - - BitBlt(hdc, xpos, ypos, GLYPH_WIDTH, GLYPH_HEIGHT, matrix->hdcBitmap, - glyphidx * GLYPH_WIDTH, intensity * GLYPH_HEIGHT, SRCCOPY); -} - -void RedrawMatrixColumn(MATRIX_COLUMN *col, MATRIX *matrix, HDC hdc, int xpos) -{ - int y; - - // loop down the length of the column redrawing only what needs doing - for(y = 0; y < col->length; y++) - { - GLYPH glyph = col->glyph[y]; - - // does this glyph (character) need to be redrawn? - if(glyph & GLYPH_REDRAW) - { - if((y == col->blippos+0 || y == col->blippos+1 || - y == col->blippos+8 || y == col->blippos+9) && - GlyphIntensity(glyph) >= MAX_INTENSITY-1) - glyph |= MAX_INTENSITY << 8; - - DrawGlyph(matrix, hdc, xpos, y * GLYPH_HEIGHT, glyph); - - // clear redraw state - col->glyph[y] &= ~GLYPH_REDRAW; - } - } -} - -void DecodeMatrix(HWND hwnd, MATRIX *matrix) -{ - int x; - HDC hdc = GetDC(hwnd); - - for(x = 0; x < matrix->numcols; x++) - { - RandomMatrixColumn(&matrix->column[x]); - ScrollMatrixColumn(&matrix->column[x]); - RedrawMatrixColumn(&matrix->column[x], matrix, hdc, x * GLYPH_WIDTH); - } - - if(matrix->message) - DoMatrixMessage(hdc, matrix); - - ReleaseDC(hwnd, hdc); -} - -// -// Allocate matrix structures -// -MATRIX *CreateMatrix(HWND hwnd, int width, int height) -{ - MATRIX *matrix; - HDC hdc; - int x, y; - - int rows = height / GLYPH_HEIGHT + 1; - int cols = width / GLYPH_WIDTH + 1; - - // allocate matrix! - if((matrix = malloc(sizeof(MATRIX) + sizeof(MATRIX_COLUMN) * cols)) == 0) - return 0; - - matrix->numcols = cols; - matrix->numrows = rows; - matrix->width = width; - matrix->height = height; - - for(x = 0; x < cols; x++) - { - matrix->column[x].length = rows; - matrix->column[x].started = FALSE; - matrix->column[x].countdown = crc_rand() % 100; - matrix->column[x].state = crc_rand() % 2; - matrix->column[x].runlen = crc_rand() % 20 + 3; - - matrix->column[x].glyph = malloc(sizeof(GLYPH) * (rows+16)); - - for(y = 0; y < rows; y++) - matrix->column[x].glyph[y] = 0;//; - } - - // Load bitmap!! - hdc = GetDC(NULL); - matrix->hbmBitmap = LoadBitmap(GetModuleHandle(0), MAKEINTRESOURCE(IDB_BITMAP1)); - matrix->hdcBitmap = CreateCompatibleDC(hdc); - SelectObject(matrix->hdcBitmap, matrix->hbmBitmap); - ReleaseDC(NULL, hdc); - - // Create a message for this window...only if we are - // screen-saving (not if in preview mode) - if(GetParent(hwnd) == 0) - matrix->message = InitMatrixMessage(hwnd, matrix->numcols, matrix->numrows); - else - matrix->message = 0; - - return matrix; -} - -// -// Free up matrix structures -// -void DestroyMatrix(MATRIX *matrix) -{ - int x; - - // free the matrix columns - for(x = 0; x < matrix->numcols; x++) - free(matrix->column[x].glyph); - - DeleteDC(matrix->hdcBitmap); - DeleteObject(matrix->hbmBitmap); - - // now delete the matrix! - free(matrix); -} - -MATRIX *GetMatrix(HWND hwnd) -{ - return (MATRIX *)GetWindowLong(hwnd, 0); -} - -void SetMatrix(HWND hwnd, MATRIX *matrix) -{ - SetWindowLong(hwnd, 0, (LONG)matrix); -} - -// -// Window procedure for one matrix (1 per screen) -// -LRESULT WINAPI MatrixWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - static POINT ptLast; - static POINT ptCursor; - static BOOL fFirstTime = TRUE; - - MATRIX *matrix = GetMatrix(hwnd); - - switch(msg) - { - // window creation - case WM_NCCREATE: - - // create the matrix based on how big this window is - matrix = CreateMatrix(hwnd, ((CREATESTRUCT *)lParam)->cx, ((CREATESTRUCT *)lParam)->cy); - - // failed to allocate? stop window creation! - if(matrix == 0) - return FALSE; - - SetMatrix(hwnd, matrix); - - // start off an animation timer - SetTimer(hwnd, 0xdeadbeef, ((SPEED_MAX - g_nMatrixSpeed) + SPEED_MIN) * 10, 0); - - return TRUE; - - // window being destroyed, cleanup - case WM_NCDESTROY: - DestroyMatrix(matrix); - PostQuitMessage(0); - return 0; - - // animation timer has gone off, redraw the matrix! - case WM_TIMER: - DecodeMatrix(hwnd, matrix); - return 0; - - // break out of screen-saver if any keyboard activity - case WM_KEYDOWN: - case WM_SYSKEYDOWN: - PostMessage(hwnd, WM_CLOSE, 0, 0); - return 0; - - // break out of screen-saver if any mouse activity - case WM_LBUTTONDOWN: - case WM_LBUTTONUP: - case WM_RBUTTONDOWN: - case WM_RBUTTONUP: - case WM_MBUTTONDOWN: - case WM_MBUTTONUP: - case WM_MOUSEMOVE: - - // If we've got a parent then we must be a preview - if(GetParent(hwnd) != 0) - return 0; - - if(fFirstTime) - { - GetCursorPos(&ptLast); - fFirstTime = FALSE; - } - - GetCursorPos(&ptCursor); - - // if the mouse has moved more than 3 pixels then exit - if(abs(ptCursor.x - ptLast.x) >= 3 || abs(ptCursor.y - ptLast.y) >= 3) - PostMessage(hwnd, WM_CLOSE, 0, 0); - - ptLast = ptCursor; - - return 0; - - // someone wants to close us...see if it's ok - case WM_CLOSE: - - if(VerifyPassword(hwnd)) - { - KillTimer(hwnd, 0xdeadbeef); - DestroyWindow(hwnd); - } - - return 0; - } - - return DefWindowProc(hwnd, msg, wParam, lParam); -} - -HWND CreateScreenSaveWnd(HWND hwndParent, RECT *rect) -{ - DWORD dwStyle = hwndParent ? WS_CHILD : WS_POPUP; - -#ifdef _DEBUG - DWORD dwStyleEx = 0; -#else - DWORD dwStyleEx = WS_EX_TOPMOST; -#endif - - if(hwndParent) - GetClientRect(hwndParent, rect); - - return CreateWindowEx( dwStyleEx, - APPNAME, - 0, - WS_VISIBLE | dwStyle, - rect->left, - rect->top, - rect->right - rect->left, - rect->bottom - rect->top, - hwndParent, - 0, - GetModuleHandle(0), - 0 - ); -} - -// -// Initialize class for matrix window -// -void InitScreenSaveClass(BOOL fPreview) -{ - WNDCLASSEX wcx; - - wcx.cbSize = sizeof(WNDCLASSEX); - wcx.style = 0; - wcx.lpfnWndProc = MatrixWndProc; - wcx.cbClsExtra = 0; - wcx.cbWndExtra = sizeof(MATRIX *); - wcx.hInstance = GetModuleHandle(0); - wcx.hIcon = 0; - wcx.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); - wcx.lpszMenuName = 0; - wcx.lpszClassName = APPNAME; - wcx.hIconSm = 0; - - if(fPreview) - wcx.hCursor = LoadCursor(0, IDC_ARROW); - else - wcx.hCursor = LoadCursor(wcx.hInstance, MAKEINTRESOURCE(IDC_BLANKCURSOR)); - - // initialize the crc register used for "random" number generation - _crc_reg = (WORD)GetTickCount(); - - RegisterClassEx(&wcx); -} +// +// matrix.c +// +// Matrix-window implementation +// +#include +#include +#include +#include "globals.h" +#include "message.h" +#include "matrix.h" +#include "resource.h" + +void DoMatrixMessage(HDC hdc, MATRIX *matrix); + +// pseudo-random number generator, based on 16bit CRC algorithm +static WORD _crc_reg = 0; +int crc_rand() +{ + const WORD mask = 0xb400; + + if(_crc_reg & 1) + _crc_reg = (_crc_reg >> 1) ^ mask; + else + _crc_reg = (_crc_reg >> 1); + + return _crc_reg; +} + +int GlyphIntensity(GLYPH glyph) +{ + return (int)((glyph & 0x7f00) >> 8); +} + +GLYPH DarkenGlyph(GLYPH glyph) +{ + int intensity = GlyphIntensity(glyph); + + if(intensity > 0) + return GLYPH_REDRAW | ((intensity - 1) << 8) | (glyph & 0x00FF); + else + return glyph; +} + +GLYPH RandomGlyph(int intensity) +{ + return GLYPH_REDRAW | (intensity << 8) | (crc_rand() % NUM_GLYPHS); +} + +void RedrawBlip(GLYPH *glypharr, int blippos) +{ + glypharr[blippos+0] |= GLYPH_REDRAW; + glypharr[blippos+1] |= GLYPH_REDRAW; + glypharr[blippos+8] |= GLYPH_REDRAW; + glypharr[blippos+9] |= GLYPH_REDRAW; +} + +void ScrollMatrixColumn(MATRIX_COLUMN *col) +{ + int y; + GLYPH lastglyph = 0; + GLYPH thisglyph; + + // wait until we are allowed to scroll + if(col->started == FALSE) + { + if(--col->countdown <= 0) + col->started = TRUE; + + return; + } + + // "seed" the glyph-run + lastglyph = col->state ? (GLYPH)0 : (GLYPH)(MAX_INTENSITY << 8); + + // + // loop over the entire length of the column, looking for changes + // in intensity/darkness. This change signifies the start/end + // of a run of glyphs. + // + for(y = 0; y < col->length; y++) + { + thisglyph = col->glyph[y]; + + // bottom-most part of "run". Insert a new character (glyph) + // at the end to lengthen the run down the screen..gives the + // impression that the run is "falling" down the screen + if(GlyphIntensity(thisglyph) < GlyphIntensity(lastglyph) && + GlyphIntensity(thisglyph) == 0) + { + col->glyph[y] = RandomGlyph(MAX_INTENSITY - 1); + y++; + } + // top-most part of "run". Delete a character off the top by + // darkening the glyph until it eventually disappears (turns black). + // this gives the effect that the run as dropped downwards + else if(GlyphIntensity(thisglyph) > GlyphIntensity(lastglyph)) + { + col->glyph[y] = DarkenGlyph(thisglyph); + + // if we've just darkened the last bit, skip on so + // the whole run doesn't go dark + if(GlyphIntensity(thisglyph) == MAX_INTENSITY - 1) + y++; + } + + lastglyph = col->glyph[y]; + } + + // change state from blanks <-> runs when the current run as expired + if(--col->runlen <= 0) + { + if(col->state ^= 1) + col->runlen = crc_rand() % (3 * DENSITY/2) + DENSITY_MIN; + else + col->runlen = crc_rand() % (DENSITY_MAX+1-DENSITY) + (DENSITY_MIN*2); + } + + // + // make a "blip" run down this column at double-speed + // + + // mark current blip as redraw so it gets "erased" + if(col->blippos >= 0 && col->blippos < col->length) + RedrawBlip(col->glyph, col->blippos); + + // advance down screen at double-speed + col->blippos += 2; + + // if the blip gets to the end of a run, start it again (for a random + // length so that the blips never get synched together) + if(col->blippos >= col->bliplen) + { + col->bliplen = col->length + crc_rand() % 50; + col->blippos = 0; + } + + // now redraw blip at new position + if(col->blippos >= 0 && col->blippos < col->length) + RedrawBlip(col->glyph, col->blippos); + +} + +// +// randomly change a small collection glyphs in a column +// +void RandomMatrixColumn(MATRIX_COLUMN *col) +{ + int i, y; + + for(i = 1, y = 0; i < 16; i++) + { + // find a run + while(GlyphIntensity(col->glyph[y]) < MAX_INTENSITY-1 && y < col->length) + y++; + + if(y >= col->length) + break; + + col->glyph[y] = (col->glyph[y] & 0xff00) | (crc_rand() % NUM_GLYPHS); + col->glyph[y] |= GLYPH_REDRAW; + + y += crc_rand() % 10; + } +} + +void DrawGlyph(MATRIX *matrix, HDC hdc, int xpos, int ypos, GLYPH glyph) +{ + int intensity = GlyphIntensity(glyph); + int glyphidx = glyph & 0xff; + + BitBlt(hdc, xpos, ypos, GLYPH_WIDTH, GLYPH_HEIGHT, matrix->hdcBitmap, + glyphidx * GLYPH_WIDTH, intensity * GLYPH_HEIGHT, SRCCOPY); +} + +void RedrawMatrixColumn(MATRIX_COLUMN *col, MATRIX *matrix, HDC hdc, int xpos) +{ + int y; + + // loop down the length of the column redrawing only what needs doing + for(y = 0; y < col->length; y++) + { + GLYPH glyph = col->glyph[y]; + + // does this glyph (character) need to be redrawn? + if(glyph & GLYPH_REDRAW) + { + if((y == col->blippos+0 || y == col->blippos+1 || + y == col->blippos+8 || y == col->blippos+9) && + GlyphIntensity(glyph) >= MAX_INTENSITY-1) + glyph |= MAX_INTENSITY << 8; + + DrawGlyph(matrix, hdc, xpos, y * GLYPH_HEIGHT, glyph); + + // clear redraw state + col->glyph[y] &= ~GLYPH_REDRAW; + } + } +} + +void DecodeMatrix(HWND hwnd, MATRIX *matrix) +{ + int x; + HDC hdc = GetDC(hwnd); + + for(x = 0; x < matrix->numcols; x++) + { + RandomMatrixColumn(&matrix->column[x]); + ScrollMatrixColumn(&matrix->column[x]); + RedrawMatrixColumn(&matrix->column[x], matrix, hdc, x * GLYPH_WIDTH); + } + + if(matrix->message) + DoMatrixMessage(hdc, matrix); + + ReleaseDC(hwnd, hdc); +} + +// +// Allocate matrix structures +// +MATRIX *CreateMatrix(HWND hwnd, int width, int height) +{ + MATRIX *matrix; + HDC hdc; + int x, y; + + int rows = height / GLYPH_HEIGHT + 1; + int cols = width / GLYPH_WIDTH + 1; + + // allocate matrix! + if((matrix = malloc(sizeof(MATRIX) + sizeof(MATRIX_COLUMN) * cols)) == 0) + return 0; + + matrix->numcols = cols; + matrix->numrows = rows; + matrix->width = width; + matrix->height = height; + + for(x = 0; x < cols; x++) + { + matrix->column[x].length = rows; + matrix->column[x].started = FALSE; + matrix->column[x].countdown = crc_rand() % 100; + matrix->column[x].state = crc_rand() % 2; + matrix->column[x].runlen = crc_rand() % 20 + 3; + + matrix->column[x].glyph = malloc(sizeof(GLYPH) * (rows+16)); + + for(y = 0; y < rows; y++) + matrix->column[x].glyph[y] = 0;//; + } + + // Load bitmap!! + hdc = GetDC(NULL); + matrix->hbmBitmap = LoadBitmap(GetModuleHandle(0), MAKEINTRESOURCE(IDB_BITMAP1)); + matrix->hdcBitmap = CreateCompatibleDC(hdc); + SelectObject(matrix->hdcBitmap, matrix->hbmBitmap); + ReleaseDC(NULL, hdc); + + // Create a message for this window...only if we are + // screen-saving (not if in preview mode) + if(GetParent(hwnd) == 0) + matrix->message = InitMatrixMessage(hwnd, matrix->numcols, matrix->numrows); + else + matrix->message = 0; + + return matrix; +} + +// +// Free up matrix structures +// +void DestroyMatrix(MATRIX *matrix) +{ + int x; + + // free the matrix columns + for(x = 0; x < matrix->numcols; x++) + free(matrix->column[x].glyph); + + DeleteDC(matrix->hdcBitmap); + DeleteObject(matrix->hbmBitmap); + + // now delete the matrix! + free(matrix); +} + +MATRIX *GetMatrix(HWND hwnd) +{ + return (MATRIX *)GetWindowLong(hwnd, 0); +} + +void SetMatrix(HWND hwnd, MATRIX *matrix) +{ + SetWindowLong(hwnd, 0, (LONG)matrix); +} + +// +// Window procedure for one matrix (1 per screen) +// +LRESULT WINAPI MatrixWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) +{ + static POINT ptLast; + static POINT ptCursor; + static BOOL fFirstTime = TRUE; + + MATRIX *matrix = GetMatrix(hwnd); + + switch(msg) + { + // window creation + case WM_NCCREATE: + + // create the matrix based on how big this window is + matrix = CreateMatrix(hwnd, ((CREATESTRUCT *)lParam)->cx, ((CREATESTRUCT *)lParam)->cy); + + // failed to allocate? stop window creation! + if(matrix == 0) + return FALSE; + + SetMatrix(hwnd, matrix); + + // start off an animation timer + SetTimer(hwnd, 0xdeadbeef, ((SPEED_MAX - g_nMatrixSpeed) + SPEED_MIN) * 10, 0); + + return TRUE; + + // window being destroyed, cleanup + case WM_NCDESTROY: + DestroyMatrix(matrix); + PostQuitMessage(0); + return 0; + + // animation timer has gone off, redraw the matrix! + case WM_TIMER: + DecodeMatrix(hwnd, matrix); + return 0; + + // break out of screen-saver if any keyboard activity + case WM_KEYDOWN: + case WM_SYSKEYDOWN: + PostMessage(hwnd, WM_CLOSE, 0, 0); + return 0; + + // break out of screen-saver if any mouse activity + case WM_LBUTTONDOWN: + case WM_LBUTTONUP: + case WM_RBUTTONDOWN: + case WM_RBUTTONUP: + case WM_MBUTTONDOWN: + case WM_MBUTTONUP: + case WM_MOUSEMOVE: + + // If we've got a parent then we must be a preview + if(GetParent(hwnd) != 0) + return 0; + + if(fFirstTime) + { + GetCursorPos(&ptLast); + fFirstTime = FALSE; + } + + GetCursorPos(&ptCursor); + + // if the mouse has moved more than 3 pixels then exit + if(abs(ptCursor.x - ptLast.x) >= 3 || abs(ptCursor.y - ptLast.y) >= 3) + PostMessage(hwnd, WM_CLOSE, 0, 0); + + ptLast = ptCursor; + + return 0; + + // someone wants to close us...see if it's ok + case WM_CLOSE: + + if(VerifyPassword(hwnd)) + { + KillTimer(hwnd, 0xdeadbeef); + DestroyWindow(hwnd); + } + + return 0; + } + + return DefWindowProc(hwnd, msg, wParam, lParam); +} + +HWND CreateScreenSaveWnd(HWND hwndParent, RECT *rect) +{ + DWORD dwStyle = hwndParent ? WS_CHILD : WS_POPUP; + +#ifdef _DEBUG + DWORD dwStyleEx = 0; +#else + DWORD dwStyleEx = WS_EX_TOPMOST; +#endif + + if(hwndParent) + GetClientRect(hwndParent, rect); + + return CreateWindowEx( dwStyleEx, + APPNAME, + 0, + WS_VISIBLE | dwStyle, + rect->left, + rect->top, + rect->right - rect->left, + rect->bottom - rect->top, + hwndParent, + 0, + GetModuleHandle(0), + 0 + ); +} + +// +// Initialize class for matrix window +// +void InitScreenSaveClass(BOOL fPreview) +{ + WNDCLASSEX wcx; + + wcx.cbSize = sizeof(WNDCLASSEX); + wcx.style = 0; + wcx.lpfnWndProc = MatrixWndProc; + wcx.cbClsExtra = 0; + wcx.cbWndExtra = sizeof(MATRIX *); + wcx.hInstance = GetModuleHandle(0); + wcx.hIcon = 0; + wcx.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); + wcx.lpszMenuName = 0; + wcx.lpszClassName = APPNAME; + wcx.hIconSm = 0; + + if(fPreview) + wcx.hCursor = LoadCursor(0, IDC_ARROW); + else + wcx.hCursor = LoadCursor(wcx.hInstance, MAKEINTRESOURCE(IDC_BLANKCURSOR)); + + // initialize the crc register used for "random" number generation + _crc_reg = (WORD)GetTickCount(); + + RegisterClassEx(&wcx); +} diff --git a/reactos/base/applications/screensavers/matrix/matrix.dsp b/reactos/base/applications/screensavers/matrix/matrix.dsp index 78af313cd31..1456f7fab08 100644 --- a/reactos/base/applications/screensavers/matrix/matrix.dsp +++ b/reactos/base/applications/screensavers/matrix/matrix.dsp @@ -1,158 +1,158 @@ -# Microsoft Developer Studio Project File - Name="matrix" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Application" 0x0101 - -CFG=matrix - 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 "matrix.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 "matrix.mak" CFG="matrix - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "matrix - Win32 Release" (based on "Win32 (x86) Application") -!MESSAGE "matrix - 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)" == "matrix - 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- /Zi /O2 /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 0x809 /d "NDEBUG" -# ADD RSC /l 0x809 /d "NDEBUG" -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 libctiny.lib 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 /map /debug /machine:I386 - -!ELSEIF "$(CFG)" == "matrix - 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 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 /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x809 /d "_DEBUG" -# ADD RSC /l 0x809 /d "_DEBUG" -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 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept - -!ENDIF - -# Begin Target - -# Name "matrix - Win32 Release" -# Name "matrix - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\config.c -# End Source File -# Begin Source File - -SOURCE=.\matrix.c -# End Source File -# Begin Source File - -SOURCE=.\matrix.rc -# End Source File -# Begin Source File - -SOURCE=.\message.c -# End Source File -# Begin Source File - -SOURCE=.\password.c -# End Source File -# Begin Source File - -SOURCE=.\screensave.c -# End Source File -# Begin Source File - -SOURCE=.\settings.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=.\globals.h -# End Source File -# Begin Source File - -SOURCE=.\matrix.h -# End Source File -# Begin Source File - -SOURCE=.\message.h -# End Source File -# 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=.\cursor1.cur -# End Source File -# Begin Source File - -SOURCE=.\icon1.ico -# End Source File -# Begin Source File - -SOURCE=.\matrix.bmp -# End Source File -# Begin Source File - -SOURCE=.\matrix2.bmp -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="matrix" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=matrix - 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 "matrix.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 "matrix.mak" CFG="matrix - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "matrix - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "matrix - 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)" == "matrix - 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- /Zi /O2 /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 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +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 libctiny.lib 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 /map /debug /machine:I386 + +!ELSEIF "$(CFG)" == "matrix - 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 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 /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +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 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "matrix - Win32 Release" +# Name "matrix - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\config.c +# End Source File +# Begin Source File + +SOURCE=.\matrix.c +# End Source File +# Begin Source File + +SOURCE=.\matrix.rc +# End Source File +# Begin Source File + +SOURCE=.\message.c +# End Source File +# Begin Source File + +SOURCE=.\password.c +# End Source File +# Begin Source File + +SOURCE=.\screensave.c +# End Source File +# Begin Source File + +SOURCE=.\settings.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\globals.h +# End Source File +# Begin Source File + +SOURCE=.\matrix.h +# End Source File +# Begin Source File + +SOURCE=.\message.h +# End Source File +# 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=.\cursor1.cur +# End Source File +# Begin Source File + +SOURCE=.\icon1.ico +# End Source File +# Begin Source File + +SOURCE=.\matrix.bmp +# End Source File +# Begin Source File + +SOURCE=.\matrix2.bmp +# End Source File +# End Group +# End Target +# End Project diff --git a/reactos/base/applications/screensavers/matrix/matrix.h b/reactos/base/applications/screensavers/matrix/matrix.h index 0b7e96e47af..0bf8d24e2f4 100644 --- a/reactos/base/applications/screensavers/matrix/matrix.h +++ b/reactos/base/applications/screensavers/matrix/matrix.h @@ -1,70 +1,70 @@ -#ifndef MATRIX_INCLUDED -#define MATRIX_INCLUDED - -#ifdef __cplusplus -extern "C" { -#endif - -// -// Top BYTE of each glyph is used as flags -// (redraw state, intensity etc) -// -// Bottom BYTE of each glyph is the character value -// -// Bit: 15 14 13-8 | 7-0 -// -// [Redraw][Blank][Intensity] [Glyph] -// -typedef unsigned short GLYPH; - -#define GLYPH_REDRAW 0x8000 -#define GLYPH_BLANK 0x4000 - -// -// The "matrix" is basically an array of these -// column structures, positioned side-by-side -// -typedef struct -{ - BOOL state; - int countdown; - - BOOL started; - int runlen; - - int blippos; - int bliplen; - - int length; - GLYPH *glyph; - -} MATRIX_COLUMN; - -typedef struct -{ - int width; - int height; - int numcols; - int numrows; - - // bitmap containing glyphs. - HDC hdcBitmap; - HBITMAP hbmBitmap; - - MATRIX_MESSAGE *message; - - MATRIX_COLUMN column[1]; - -} MATRIX; - -GLYPH RandomGlyph(int intensity); -void DrawGlyph(MATRIX *matrix, HDC hdc, int xpos, int ypos, GLYPH glyph); - -HWND CreateScreenSaveWnd(HWND hwndParent, RECT *rect); -void InitScreenSaveClass(); - -#ifdef __cplusplus -} -#endif - -#endif +#ifndef MATRIX_INCLUDED +#define MATRIX_INCLUDED + +#ifdef __cplusplus +extern "C" { +#endif + +// +// Top BYTE of each glyph is used as flags +// (redraw state, intensity etc) +// +// Bottom BYTE of each glyph is the character value +// +// Bit: 15 14 13-8 | 7-0 +// +// [Redraw][Blank][Intensity] [Glyph] +// +typedef unsigned short GLYPH; + +#define GLYPH_REDRAW 0x8000 +#define GLYPH_BLANK 0x4000 + +// +// The "matrix" is basically an array of these +// column structures, positioned side-by-side +// +typedef struct +{ + BOOL state; + int countdown; + + BOOL started; + int runlen; + + int blippos; + int bliplen; + + int length; + GLYPH *glyph; + +} MATRIX_COLUMN; + +typedef struct +{ + int width; + int height; + int numcols; + int numrows; + + // bitmap containing glyphs. + HDC hdcBitmap; + HBITMAP hbmBitmap; + + MATRIX_MESSAGE *message; + + MATRIX_COLUMN column[1]; + +} MATRIX; + +GLYPH RandomGlyph(int intensity); +void DrawGlyph(MATRIX *matrix, HDC hdc, int xpos, int ypos, GLYPH glyph); + +HWND CreateScreenSaveWnd(HWND hwndParent, RECT *rect); +void InitScreenSaveClass(); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/reactos/base/applications/screensavers/matrix/matrix.rbuild b/reactos/base/applications/screensavers/matrix/matrix.rbuild index f9b2cc717eb..32bcd7aa4b6 100644 --- a/reactos/base/applications/screensavers/matrix/matrix.rbuild +++ b/reactos/base/applications/screensavers/matrix/matrix.rbuild @@ -1,33 +1,33 @@ - - - - . - - - 0x0501 - 0x0501 - - - - - kernel32 - user32 - gdi32 - winspool - comctl32 - comdlg32 - advapi32 - shell32 - uuid - - config.c - matrix.c - message.c - password.c - screensave.c - settings.c - matrix.rc - - - - + + + + . + + + 0x0501 + 0x0501 + + + + + kernel32 + user32 + gdi32 + winspool + comctl32 + comdlg32 + advapi32 + shell32 + uuid + + config.c + matrix.c + message.c + password.c + screensave.c + settings.c + matrix.rc + + + + diff --git a/reactos/base/applications/screensavers/matrix/matrix.rc b/reactos/base/applications/screensavers/matrix/matrix.rc index 5b0da2af947..d9d8726e4ae 100644 --- a/reactos/base/applications/screensavers/matrix/matrix.rc +++ b/reactos/base/applications/screensavers/matrix/matrix.rc @@ -1,167 +1,167 @@ -//Microsoft Developer Studio generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "afxres.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.K.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_CONFIG DIALOG DISCARDABLE 0, 0, 340, 183 -STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Matrix ScreenSaver Configuration" -FONT 8, "MS Shell Dlg" -BEGIN - GROUPBOX "Decode &Speed",IDC_STATIC,7,7,128,36 - LTEXT "Slower",IDC_STATIC,13,24,22,8 - CONTROL "Slider1",IDC_SLIDER1,"msctls_trackbar32",TBS_AUTOTICKS | - TBS_BOTH | WS_TABSTOP,38,17,62,22 - LTEXT "Faster",IDC_STATIC,104,24,20,8 - GROUPBOX "Cypher &Density",IDC_STATIC,7,50,128,36 - LTEXT "Less",IDC_STATIC,13,67,19,8 - CONTROL "Slider1",IDC_SLIDER2,"msctls_trackbar32",TBS_AUTOTICKS | - TBS_BOTH | WS_TABSTOP,38,60,62,22 - LTEXT "More",IDC_STATIC,104,67,23,8 - GROUPBOX "&Message Display Speed",IDC_MSGSPEEDGRP,7,93,127,36 - LTEXT "Slower",IDC_STATIC,13,110,22,8 - CONTROL "Slider3",IDC_SLIDER3,"msctls_trackbar32",TBS_AUTOTICKS | - TBS_BOTH | WS_TABSTOP,38,103,62,22 - LTEXT "Faster",IDC_STATIC,104,110,22,8 - GROUPBOX "&Font Size",IDC_STATIC,7,137,127,36 - LTEXT "Smaller",IDC_STATIC,13,153,24,8 - CONTROL "Slider3",IDC_SLIDER4,"msctls_trackbar32",TBS_AUTOTICKS | - TBS_BOTH | WS_TABSTOP,38,146,62,22 - LTEXT "Bigger",IDC_STATIC,104,153,25,8 - GROUPBOX "Coded Messages",IDC_STATIC,145,7,188,142 - COMBOBOX IDC_COMBO1,153,22,172,62,CBS_DROPDOWN | WS_VSCROLL | - WS_TABSTOP - CONTROL "",IDC_PREVIEW,"Static",SS_LEFTNOWORDWRAP | - SS_CENTERIMAGE | WS_GROUP,154,39,116,72 - PUSHBUTTON "&Add",IDC_ADD,280,41,44,18 - PUSHBUTTON "&Remove",IDC_REMOVE,280,66,44,18 - CONTROL "Randomize Messages",IDC_RANDOM,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,151,134,85,10 - DEFPUSHBUTTON "OK",IDOK,222,162,50,14 - PUSHBUTTON "Cancel",IDCANCEL,283,162,50,14 - COMBOBOX IDC_COMBO2,195,116,130,71,CBS_DROPDOWNLIST | CBS_SORT | - WS_VSCROLL | WS_TABSTOP - LTEXT "&Font Name:",IDC_STATIC,151,118,38,8 - CONTROL "&Bold Font",IDC_BOLD,"Button",BS_AUTOCHECKBOX | - BS_MULTILINE | WS_TABSTOP,247,134,46,10 - CTEXT "Matrix ScreenSaver www.catch22.org.uk",IDC_ABOUT,140, - 158,75,18 -END - - -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO DISCARDABLE -BEGIN - IDD_CONFIG, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 333 - TOPMARGIN, 7 - BOTTOMMARGIN, 176 - END -END -#endif // APSTUDIO_INVOKED - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE DISCARDABLE -BEGIN - "#include ""afxres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE DISCARDABLE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Bitmap -// - -IDB_BITMAP1 BITMAP DISCARDABLE "matrix.bmp" - -///////////////////////////////////////////////////////////////////////////// -// -// Cursor -// - -IDC_BLANKCURSOR CURSOR DISCARDABLE "cursor1.cur" - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_ICON1 ICON DISCARDABLE "icon1.ico" - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE DISCARDABLE -BEGIN - IDS_DESCRIPTION "Matrix ScreenSaver" -END - -#endif // English (U.K.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.K.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_CONFIG DIALOG DISCARDABLE 0, 0, 340, 183 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Matrix ScreenSaver Configuration" +FONT 8, "MS Shell Dlg" +BEGIN + GROUPBOX "Decode &Speed",IDC_STATIC,7,7,128,36 + LTEXT "Slower",IDC_STATIC,13,24,22,8 + CONTROL "Slider1",IDC_SLIDER1,"msctls_trackbar32",TBS_AUTOTICKS | + TBS_BOTH | WS_TABSTOP,38,17,62,22 + LTEXT "Faster",IDC_STATIC,104,24,20,8 + GROUPBOX "Cypher &Density",IDC_STATIC,7,50,128,36 + LTEXT "Less",IDC_STATIC,13,67,19,8 + CONTROL "Slider1",IDC_SLIDER2,"msctls_trackbar32",TBS_AUTOTICKS | + TBS_BOTH | WS_TABSTOP,38,60,62,22 + LTEXT "More",IDC_STATIC,104,67,23,8 + GROUPBOX "&Message Display Speed",IDC_MSGSPEEDGRP,7,93,127,36 + LTEXT "Slower",IDC_STATIC,13,110,22,8 + CONTROL "Slider3",IDC_SLIDER3,"msctls_trackbar32",TBS_AUTOTICKS | + TBS_BOTH | WS_TABSTOP,38,103,62,22 + LTEXT "Faster",IDC_STATIC,104,110,22,8 + GROUPBOX "&Font Size",IDC_STATIC,7,137,127,36 + LTEXT "Smaller",IDC_STATIC,13,153,24,8 + CONTROL "Slider3",IDC_SLIDER4,"msctls_trackbar32",TBS_AUTOTICKS | + TBS_BOTH | WS_TABSTOP,38,146,62,22 + LTEXT "Bigger",IDC_STATIC,104,153,25,8 + GROUPBOX "Coded Messages",IDC_STATIC,145,7,188,142 + COMBOBOX IDC_COMBO1,153,22,172,62,CBS_DROPDOWN | WS_VSCROLL | + WS_TABSTOP + CONTROL "",IDC_PREVIEW,"Static",SS_LEFTNOWORDWRAP | + SS_CENTERIMAGE | WS_GROUP,154,39,116,72 + PUSHBUTTON "&Add",IDC_ADD,280,41,44,18 + PUSHBUTTON "&Remove",IDC_REMOVE,280,66,44,18 + CONTROL "Randomize Messages",IDC_RANDOM,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,151,134,85,10 + DEFPUSHBUTTON "OK",IDOK,222,162,50,14 + PUSHBUTTON "Cancel",IDCANCEL,283,162,50,14 + COMBOBOX IDC_COMBO2,195,116,130,71,CBS_DROPDOWNLIST | CBS_SORT | + WS_VSCROLL | WS_TABSTOP + LTEXT "&Font Name:",IDC_STATIC,151,118,38,8 + CONTROL "&Bold Font",IDC_BOLD,"Button",BS_AUTOCHECKBOX | + BS_MULTILINE | WS_TABSTOP,247,134,46,10 + CTEXT "Matrix ScreenSaver www.catch22.org.uk",IDC_ABOUT,140, + 158,75,18 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_CONFIG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 333 + TOPMARGIN, 7 + BOTTOMMARGIN, 176 + END +END +#endif // APSTUDIO_INVOKED + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDB_BITMAP1 BITMAP DISCARDABLE "matrix.bmp" + +///////////////////////////////////////////////////////////////////////////// +// +// Cursor +// + +IDC_BLANKCURSOR CURSOR DISCARDABLE "cursor1.cur" + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_ICON1 ICON DISCARDABLE "icon1.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_DESCRIPTION "Matrix ScreenSaver" +END + +#endif // English (U.K.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/reactos/base/applications/screensavers/matrix/message.c b/reactos/base/applications/screensavers/matrix/message.c index d5e17c07df9..d1c91693d49 100644 --- a/reactos/base/applications/screensavers/matrix/message.c +++ b/reactos/base/applications/screensavers/matrix/message.c @@ -1,250 +1,250 @@ -// -// message.c -// -// Dissolve in/out messages into the "matrix" -// -// -// -#include -#include "globals.h" -#include "message.h" -#include "matrix.h" - -// -// this isn't really a random-number generator. It's based on -// a 16bit CRC algorithm. With the right mask (0xb400) it is possible -// to call this function 65536 times and get a unique result every time -// with *NO* repeats. The results look random but they're not - if we -// call this function another 65536 times we get exactly the same results -// in the same order. This is necessary for fading in messages because -// we need to be guaranteed that all cells...it's completely uniform in -// operation but looks random enough to be very effective -// -WORD crc_msgrand(WORD reg) -{ - const WORD mask = 0xb400; - - if(reg & 1) - reg = (reg >> 1) ^ mask; - else - reg = (reg >> 1); - - return reg; -} - -// -// Set a new message based on font and text -// -void SetMatrixMessage(MATRIX_MESSAGE *msg, HFONT hFont, TCHAR *text) -{ - HDC hdc; - RECT rect; - int x, y; - - HDC hdcMessage; - HBITMAP hbmMessage; - - HANDLE hOldFont, hOldBmp; - - // - // Create a monochrome off-screen buffer - // - hdc = GetDC(NULL); - - hdcMessage = CreateCompatibleDC(hdc); - hbmMessage = CreateBitmap(MAXMSG_WIDTH, MAXMSG_HEIGHT, 1, 1, 0); - hOldBmp = SelectObject(hdcMessage, hbmMessage); - - ReleaseDC(NULL, hdc); - - // - // Draw text into bitmap - // - SetRect(&rect, 0, 0, msg->width, MAXMSG_HEIGHT); - FillRect(hdcMessage, &rect, GetStockObject(WHITE_BRUSH)); - - hOldFont = SelectObject(hdcMessage, g_hFont); - DrawText(hdcMessage, text, -1, &rect, DT_CENTER|DT_VCENTER|DT_WORDBREAK|DT_CALCRECT); - - OffsetRect(&rect, (msg->width-(rect.right-rect.left))/2, (msg->height-(rect.bottom-rect.top))/2); - DrawText(hdcMessage, text, -1, &rect, DT_CENTER|DT_VCENTER|DT_WORDBREAK); - - // - // Convert bitmap into an array of cells for easy drawing - // - for(y = 0; y < msg->height; y++) - { - for(x = 0; x < msg->width; x++) - { - msg->message[x][y] = GetPixel(hdcMessage, x, y) ? 0 : 1; - } - } - - // - // Cleanup - // - SelectObject(hdcMessage, hOldFont); - SelectObject(hdcMessage, hOldBmp); - - DeleteDC(hdcMessage); - DeleteObject(hbmMessage); -} - -// -// Draw any part of the message that is visible. Make the -// message "shimmer" by using a random glyph each time -// -void DrawMatrixMessage(MATRIX *matrix, MATRIX_MESSAGE *msg, HDC hdc) -{ - int x, y; - - for(x = 0; x < msg->width; x++) - for(y = 0; y < msg->height; y++) - if((msg->message[x][y] & 0x8000) && - (msg->message[x][y] & 0x00FF)) - { - DrawGlyph(matrix, hdc, x * GLYPH_WIDTH, y * GLYPH_HEIGHT, RandomGlyph(MAX_INTENSITY)); - } -} - -// -// Reveal specified amount of message -// -void RevealMatrixMessage(MATRIX_MESSAGE *msg, int amount) -{ - while(amount--) - { - int pos; - - msg->random_reg1 = crc_msgrand(msg->random_reg1); - pos = msg->random_reg1 & 0xffff; - - msg->message[pos / 256][pos % 256] |= GLYPH_REDRAW; - } -} - -// -// Reset (hide) the message -// -void ClearMatrixMessage(MATRIX_MESSAGE *msg) -{ - int x, y; - - for(x = 0; x < msg->width; x++) - for(y = 0; y < msg->height; y++) - msg->message[x][y] = 0; -} - -// -// convert from 50-500 (fast-slow) to slow(50) - fast(500) -// -int MessageSpeed() -{ - return (MSGSPEED_MAX-MSGSPEED_MIN) - (g_nMessageSpeed-MSGSPEED_MIN) + MSGSPEED_MIN; -} - -// -// Called once for each iteration of the matrix -// -void DoMatrixMessage(HDC hdc, MATRIX *matrix) -{ - MATRIX_MESSAGE *msg = matrix->message; - - int RealSpeed = MessageSpeed(); - - if(g_nNumMessages > 0) - { - // nothing to do yet.. - if(msg->counter++ < 0) - return; - - // has counter reached limit..clear the message - if(msg->counter++ == RealSpeed / 2 + (RealSpeed/4)) - ClearMatrixMessage(msg); - - // reset counter + display a new message - if(msg->counter >= RealSpeed) - { - // mark all message-cells as being "invisible" so the - // message gets cleared by the matrix decoding naturally - - if(g_fRandomizeMessages) - msg->msgindex = crc_rand() % g_nNumMessages; - else - msg->msgindex = (msg->msgindex + 1) % g_nNumMessages; - - // make a new message..initially invisible - SetMatrixMessage(msg, 0, g_szMessages[msg->msgindex]); - - msg->counter = -(int)(crc_rand() % MSGSPEED_MAX); - } - // reveal the next part of the message - else if(msg->counter < RealSpeed / 2) - { - int w = (g_nMessageSpeed - MSGSPEED_MIN); - w = (1 << 16) + ((w<<16) / MSGSPEED_MAX); - w = (w * 3 * g_nMessageSpeed) >> 16; - - RevealMatrixMessage(msg, w + 100); - } - - // - // draw whatever part of the message is visible at this time - // - DrawMatrixMessage(matrix, msg, hdc); - } -} - -// -// Set current font used for messages -// -void SetMessageFont(HWND hwnd, TCHAR *szFontName, int nPointSize, BOOL fBold) -{ - int lfHeight; - HDC hdc; - HFONT hFont; - - hdc = GetDC(hwnd); - - lfHeight = -MulDiv(nPointSize, GetDeviceCaps(hdc, LOGPIXELSY), 72); - - ReleaseDC(hwnd, hdc); - - hFont = CreateFont(lfHeight, 0, 0, 0, fBold ? FW_BOLD: FW_NORMAL, 0, 0, 0, - ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, - ANTIALIASED_QUALITY, DEFAULT_PITCH, szFontName); - - if(hFont != 0) - { - if(g_hFont != 0) - DeleteObject(g_hFont); - - g_hFont = hFont; - } -} - -// -// Create a message! -// -MATRIX_MESSAGE *InitMatrixMessage(HWND hwnd, int width, int height) -{ - MATRIX_MESSAGE *msg; - - if((msg = malloc(sizeof(MATRIX_MESSAGE))) == 0) - return 0; - - ClearMatrixMessage(msg); - - msg->msgindex = 0; - msg->width = min(width, MAXMSG_WIDTH); - msg->height = min(height, MAXMSG_HEIGHT); - msg->counter = -(int)(crc_rand() % MSGSPEED_MIN + MSGSPEED_MIN); - - msg->random_reg1 = (WORD)GetTickCount(); - - SetMessageFont(hwnd, g_szFontName, g_nFontSize, g_fFontBold); - - SetMatrixMessage(msg, 0, g_szMessages[0]); - - return msg; -} +// +// message.c +// +// Dissolve in/out messages into the "matrix" +// +// +// +#include +#include "globals.h" +#include "message.h" +#include "matrix.h" + +// +// this isn't really a random-number generator. It's based on +// a 16bit CRC algorithm. With the right mask (0xb400) it is possible +// to call this function 65536 times and get a unique result every time +// with *NO* repeats. The results look random but they're not - if we +// call this function another 65536 times we get exactly the same results +// in the same order. This is necessary for fading in messages because +// we need to be guaranteed that all cells...it's completely uniform in +// operation but looks random enough to be very effective +// +WORD crc_msgrand(WORD reg) +{ + const WORD mask = 0xb400; + + if(reg & 1) + reg = (reg >> 1) ^ mask; + else + reg = (reg >> 1); + + return reg; +} + +// +// Set a new message based on font and text +// +void SetMatrixMessage(MATRIX_MESSAGE *msg, HFONT hFont, TCHAR *text) +{ + HDC hdc; + RECT rect; + int x, y; + + HDC hdcMessage; + HBITMAP hbmMessage; + + HANDLE hOldFont, hOldBmp; + + // + // Create a monochrome off-screen buffer + // + hdc = GetDC(NULL); + + hdcMessage = CreateCompatibleDC(hdc); + hbmMessage = CreateBitmap(MAXMSG_WIDTH, MAXMSG_HEIGHT, 1, 1, 0); + hOldBmp = SelectObject(hdcMessage, hbmMessage); + + ReleaseDC(NULL, hdc); + + // + // Draw text into bitmap + // + SetRect(&rect, 0, 0, msg->width, MAXMSG_HEIGHT); + FillRect(hdcMessage, &rect, GetStockObject(WHITE_BRUSH)); + + hOldFont = SelectObject(hdcMessage, g_hFont); + DrawText(hdcMessage, text, -1, &rect, DT_CENTER|DT_VCENTER|DT_WORDBREAK|DT_CALCRECT); + + OffsetRect(&rect, (msg->width-(rect.right-rect.left))/2, (msg->height-(rect.bottom-rect.top))/2); + DrawText(hdcMessage, text, -1, &rect, DT_CENTER|DT_VCENTER|DT_WORDBREAK); + + // + // Convert bitmap into an array of cells for easy drawing + // + for(y = 0; y < msg->height; y++) + { + for(x = 0; x < msg->width; x++) + { + msg->message[x][y] = GetPixel(hdcMessage, x, y) ? 0 : 1; + } + } + + // + // Cleanup + // + SelectObject(hdcMessage, hOldFont); + SelectObject(hdcMessage, hOldBmp); + + DeleteDC(hdcMessage); + DeleteObject(hbmMessage); +} + +// +// Draw any part of the message that is visible. Make the +// message "shimmer" by using a random glyph each time +// +void DrawMatrixMessage(MATRIX *matrix, MATRIX_MESSAGE *msg, HDC hdc) +{ + int x, y; + + for(x = 0; x < msg->width; x++) + for(y = 0; y < msg->height; y++) + if((msg->message[x][y] & 0x8000) && + (msg->message[x][y] & 0x00FF)) + { + DrawGlyph(matrix, hdc, x * GLYPH_WIDTH, y * GLYPH_HEIGHT, RandomGlyph(MAX_INTENSITY)); + } +} + +// +// Reveal specified amount of message +// +void RevealMatrixMessage(MATRIX_MESSAGE *msg, int amount) +{ + while(amount--) + { + int pos; + + msg->random_reg1 = crc_msgrand(msg->random_reg1); + pos = msg->random_reg1 & 0xffff; + + msg->message[pos / 256][pos % 256] |= GLYPH_REDRAW; + } +} + +// +// Reset (hide) the message +// +void ClearMatrixMessage(MATRIX_MESSAGE *msg) +{ + int x, y; + + for(x = 0; x < msg->width; x++) + for(y = 0; y < msg->height; y++) + msg->message[x][y] = 0; +} + +// +// convert from 50-500 (fast-slow) to slow(50) - fast(500) +// +int MessageSpeed() +{ + return (MSGSPEED_MAX-MSGSPEED_MIN) - (g_nMessageSpeed-MSGSPEED_MIN) + MSGSPEED_MIN; +} + +// +// Called once for each iteration of the matrix +// +void DoMatrixMessage(HDC hdc, MATRIX *matrix) +{ + MATRIX_MESSAGE *msg = matrix->message; + + int RealSpeed = MessageSpeed(); + + if(g_nNumMessages > 0) + { + // nothing to do yet.. + if(msg->counter++ < 0) + return; + + // has counter reached limit..clear the message + if(msg->counter++ == RealSpeed / 2 + (RealSpeed/4)) + ClearMatrixMessage(msg); + + // reset counter + display a new message + if(msg->counter >= RealSpeed) + { + // mark all message-cells as being "invisible" so the + // message gets cleared by the matrix decoding naturally + + if(g_fRandomizeMessages) + msg->msgindex = crc_rand() % g_nNumMessages; + else + msg->msgindex = (msg->msgindex + 1) % g_nNumMessages; + + // make a new message..initially invisible + SetMatrixMessage(msg, 0, g_szMessages[msg->msgindex]); + + msg->counter = -(int)(crc_rand() % MSGSPEED_MAX); + } + // reveal the next part of the message + else if(msg->counter < RealSpeed / 2) + { + int w = (g_nMessageSpeed - MSGSPEED_MIN); + w = (1 << 16) + ((w<<16) / MSGSPEED_MAX); + w = (w * 3 * g_nMessageSpeed) >> 16; + + RevealMatrixMessage(msg, w + 100); + } + + // + // draw whatever part of the message is visible at this time + // + DrawMatrixMessage(matrix, msg, hdc); + } +} + +// +// Set current font used for messages +// +void SetMessageFont(HWND hwnd, TCHAR *szFontName, int nPointSize, BOOL fBold) +{ + int lfHeight; + HDC hdc; + HFONT hFont; + + hdc = GetDC(hwnd); + + lfHeight = -MulDiv(nPointSize, GetDeviceCaps(hdc, LOGPIXELSY), 72); + + ReleaseDC(hwnd, hdc); + + hFont = CreateFont(lfHeight, 0, 0, 0, fBold ? FW_BOLD: FW_NORMAL, 0, 0, 0, + ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, + ANTIALIASED_QUALITY, DEFAULT_PITCH, szFontName); + + if(hFont != 0) + { + if(g_hFont != 0) + DeleteObject(g_hFont); + + g_hFont = hFont; + } +} + +// +// Create a message! +// +MATRIX_MESSAGE *InitMatrixMessage(HWND hwnd, int width, int height) +{ + MATRIX_MESSAGE *msg; + + if((msg = malloc(sizeof(MATRIX_MESSAGE))) == 0) + return 0; + + ClearMatrixMessage(msg); + + msg->msgindex = 0; + msg->width = min(width, MAXMSG_WIDTH); + msg->height = min(height, MAXMSG_HEIGHT); + msg->counter = -(int)(crc_rand() % MSGSPEED_MIN + MSGSPEED_MIN); + + msg->random_reg1 = (WORD)GetTickCount(); + + SetMessageFont(hwnd, g_szFontName, g_nFontSize, g_fFontBold); + + SetMatrixMessage(msg, 0, g_szMessages[0]); + + return msg; +} diff --git a/reactos/base/applications/screensavers/matrix/message.h b/reactos/base/applications/screensavers/matrix/message.h index 7a751a8f2bc..19a9886b3eb 100644 --- a/reactos/base/applications/screensavers/matrix/message.h +++ b/reactos/base/applications/screensavers/matrix/message.h @@ -1,32 +1,32 @@ -#ifndef MESSAGE_INCLUDED -#define MESSAGE_INCLUDED - -#ifdef __cplusplus -extern "C" { -#endif - -// -// counter starts off negative (rand() < 0)..when it gets -// to zero the message starts to display -// -typedef struct -{ - WORD message[MAXMSG_WIDTH][MAXMSG_HEIGHT]; - - int msgindex; - - int counter; - WORD random_reg1; - - int width, height; - -} MATRIX_MESSAGE; - -void SetMessageFont(HWND hwnd, TCHAR *szFontName, int nPointSize, BOOL fBold); -MATRIX_MESSAGE *InitMatrixMessage(HWND hwnd, int width, int height); - -#ifdef __cplusplus -} -#endif - -#endif +#ifndef MESSAGE_INCLUDED +#define MESSAGE_INCLUDED + +#ifdef __cplusplus +extern "C" { +#endif + +// +// counter starts off negative (rand() < 0)..when it gets +// to zero the message starts to display +// +typedef struct +{ + WORD message[MAXMSG_WIDTH][MAXMSG_HEIGHT]; + + int msgindex; + + int counter; + WORD random_reg1; + + int width, height; + +} MATRIX_MESSAGE; + +void SetMessageFont(HWND hwnd, TCHAR *szFontName, int nPointSize, BOOL fBold); +MATRIX_MESSAGE *InitMatrixMessage(HWND hwnd, int width, int height); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/reactos/base/applications/screensavers/matrix/password.c b/reactos/base/applications/screensavers/matrix/password.c index 6fc5e2bf803..60808ebb5dc 100644 --- a/reactos/base/applications/screensavers/matrix/password.c +++ b/reactos/base/applications/screensavers/matrix/password.c @@ -1,69 +1,69 @@ -// -// password.c -// -// Password support for Win9x -// -#include -#include - -typedef BOOL (WINAPI *VERIFYSCREENSAVEPWD)(HWND hwnd); -typedef VOID (WINAPI *PWDCHANGEPASSWORD)(LPCTSTR lpcRegkeyname, HWND hwnd,UINT uiReserved1,UINT uiReserved2); - -BOOL VerifyPassword(HWND hwnd) -{ - // Under NT, we return TRUE immediately. This lets the saver quit, - // and the system manages passwords. Under '95, we call VerifyScreenSavePwd. - // This checks the appropriate registry key and, if necessary, - // pops up a verify dialog - - HINSTANCE hpwdcpl; - VERIFYSCREENSAVEPWD VerifyScreenSavePwd; - BOOL fResult; - - if(GetVersion() < 0x80000000) - return TRUE; - - hpwdcpl = LoadLibrary(_T("PASSWORD.CPL")); - - if(hpwdcpl == NULL) - { - return FALSE; - } - - - VerifyScreenSavePwd = (VERIFYSCREENSAVEPWD)GetProcAddress(hpwdcpl, "VerifyScreenSavePwd"); - - if(VerifyScreenSavePwd == NULL) - { - FreeLibrary(hpwdcpl); - return FALSE; - } - - fResult = VerifyScreenSavePwd(hwnd); - FreeLibrary(hpwdcpl); - - return fResult; -} - -BOOL ChangePassword(HWND hwnd) -{ - // This only ever gets called under '95, when started with the /a option. - HINSTANCE hmpr = LoadLibrary(_T("MPR.DLL")); - PWDCHANGEPASSWORD PwdChangePassword; - - if(hmpr == NULL) - return FALSE; - - PwdChangePassword = (PWDCHANGEPASSWORD)GetProcAddress(hmpr, "PwdChangePasswordA"); - - if(PwdChangePassword == NULL) - { - FreeLibrary(hmpr); - return FALSE; - } - - PwdChangePassword(_T("SCRSAVE"), hwnd, 0, 0); - FreeLibrary(hmpr); - - return TRUE; -} +// +// password.c +// +// Password support for Win9x +// +#include +#include + +typedef BOOL (WINAPI *VERIFYSCREENSAVEPWD)(HWND hwnd); +typedef VOID (WINAPI *PWDCHANGEPASSWORD)(LPCTSTR lpcRegkeyname, HWND hwnd,UINT uiReserved1,UINT uiReserved2); + +BOOL VerifyPassword(HWND hwnd) +{ + // Under NT, we return TRUE immediately. This lets the saver quit, + // and the system manages passwords. Under '95, we call VerifyScreenSavePwd. + // This checks the appropriate registry key and, if necessary, + // pops up a verify dialog + + HINSTANCE hpwdcpl; + VERIFYSCREENSAVEPWD VerifyScreenSavePwd; + BOOL fResult; + + if(GetVersion() < 0x80000000) + return TRUE; + + hpwdcpl = LoadLibrary(_T("PASSWORD.CPL")); + + if(hpwdcpl == NULL) + { + return FALSE; + } + + + VerifyScreenSavePwd = (VERIFYSCREENSAVEPWD)GetProcAddress(hpwdcpl, "VerifyScreenSavePwd"); + + if(VerifyScreenSavePwd == NULL) + { + FreeLibrary(hpwdcpl); + return FALSE; + } + + fResult = VerifyScreenSavePwd(hwnd); + FreeLibrary(hpwdcpl); + + return fResult; +} + +BOOL ChangePassword(HWND hwnd) +{ + // This only ever gets called under '95, when started with the /a option. + HINSTANCE hmpr = LoadLibrary(_T("MPR.DLL")); + PWDCHANGEPASSWORD PwdChangePassword; + + if(hmpr == NULL) + return FALSE; + + PwdChangePassword = (PWDCHANGEPASSWORD)GetProcAddress(hmpr, "PwdChangePasswordA"); + + if(PwdChangePassword == NULL) + { + FreeLibrary(hmpr); + return FALSE; + } + + PwdChangePassword(_T("SCRSAVE"), hwnd, 0, 0); + FreeLibrary(hmpr); + + return TRUE; +} diff --git a/reactos/base/applications/screensavers/matrix/resource.h b/reactos/base/applications/screensavers/matrix/resource.h index 612de0917fd..163574a2ca7 100644 --- a/reactos/base/applications/screensavers/matrix/resource.h +++ b/reactos/base/applications/screensavers/matrix/resource.h @@ -1,35 +1,35 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Developer Studio generated include file. -// Used by matrix.rc -// -#define IDS_DESCRIPTION 1 -#define IDD_CONFIG 101 -#define IDB_BITMAP1 104 -#define IDC_BLANKCURSOR 105 -#define IDI_ICON1 106 -#define IDC_COMBO1 1003 -#define IDC_REMOVE 1004 -#define IDC_ADD 1005 -#define IDC_PREVIEW 1008 -#define IDC_PREV 1009 -#define IDC_ENABLEPREV 1013 -#define IDC_RANDOM 1014 -#define IDC_SLIDER1 1015 -#define IDC_SLIDER2 1016 -#define IDC_SLIDER3 1017 -#define IDC_SLIDER4 1018 -#define IDC_BOLD 1019 -#define IDC_COMBO2 1020 -#define IDC_MSGSPEEDGRP 1021 -#define IDC_ABOUT 1022 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 109 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1023 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by matrix.rc +// +#define IDS_DESCRIPTION 1 +#define IDD_CONFIG 101 +#define IDB_BITMAP1 104 +#define IDC_BLANKCURSOR 105 +#define IDI_ICON1 106 +#define IDC_COMBO1 1003 +#define IDC_REMOVE 1004 +#define IDC_ADD 1005 +#define IDC_PREVIEW 1008 +#define IDC_PREV 1009 +#define IDC_ENABLEPREV 1013 +#define IDC_RANDOM 1014 +#define IDC_SLIDER1 1015 +#define IDC_SLIDER2 1016 +#define IDC_SLIDER3 1017 +#define IDC_SLIDER4 1018 +#define IDC_BOLD 1019 +#define IDC_COMBO2 1020 +#define IDC_MSGSPEEDGRP 1021 +#define IDC_ABOUT 1022 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 109 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1023 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/reactos/base/applications/screensavers/matrix/screensave.c b/reactos/base/applications/screensavers/matrix/screensave.c index 4f7bbe478d5..4f0e3aed625 100644 --- a/reactos/base/applications/screensavers/matrix/screensave.c +++ b/reactos/base/applications/screensavers/matrix/screensave.c @@ -1,162 +1,162 @@ -// -// screensave.c -// -// Entrypoint for a win32 screensaver -// -// NOTES: Screen savers don't like being UPX'd (compressed). Don't -// know why, it just is. C-runtime has been stripped with -// "libctiny.lib". -// -// v1.0 1/12/2003 J Brown -// -#include -#include -#include -#include "globals.h" -#include "message.h" -#include "matrix.h" -#include "resource.h" - -//#pragma comment(lib, "libctiny.lib") -//#pragma comment(linker, "/OPT:NOWIN98") - -// -// Added: Multimonitor support!! -// -HMONITOR (WINAPI * pfnEnumDisplayMonitors)(HDC, LPCRECT, MONITORENUMPROC, LPARAM); -BOOL (WINAPI * pfnGetMonitorInfo)(HMONITOR, LPMONITORINFO); - -// -// Callback function for EnumDisplayMonitors API. Use this function -// to kickstart a screen-saver window for each monitor in the system -// -BOOL CALLBACK MonitorEnumProc(HMONITOR hMonitor, HDC hdcMonitor, RECT *rcMonitor, LPARAM Param) -{ - HWND hwnd; - - // Create a screensaver on this monitor! - hwnd = CreateScreenSaveWnd((HWND)Param, rcMonitor); - - // For some reason windows always places this window at 0,0... - // position it ourselves - SetWindowPos(hwnd, 0, rcMonitor->left, rcMonitor->top, 0, 0, - SWP_NOZORDER|SWP_NOACTIVATE|SWP_NOSIZE|SWP_SHOWWINDOW); - - return TRUE; -} - -// -// Start screen saver! -// -BOOL ScreenSaver(HWND hwndParent) -{ - HMODULE hUser32; - UINT nPreviousState; - MSG msg; - - InitScreenSaveClass(hwndParent); - - SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, TRUE, &nPreviousState, 0); - - // Dynamically locate API call from USER32 - not present in all versions - hUser32 = GetModuleHandle(_T("USER32.DLL")); - pfnEnumDisplayMonitors = (PVOID)GetProcAddress(hUser32, "EnumDisplayMonitors"); - - // If we're running Win2k+ then the API is available...so call it! - if(pfnEnumDisplayMonitors && hwndParent == 0) - { - pfnEnumDisplayMonitors(NULL, NULL, MonitorEnumProc, 0); - } - // Otherwise simulate by calling enum-proc manually - else - { - RECT rect; - - rect.left = 0; - rect.right = GetSystemMetrics(SM_CXSCREEN); - rect.top = 0; - rect.bottom = GetSystemMetrics(SM_CYSCREEN); - - MonitorEnumProc(NULL, NULL, &rect, (LPARAM)hwndParent); - } - - // run message loop to handle all screen-saver windows - while(GetMessage(&msg, NULL,0,0)) - { - TranslateMessage(&msg); - DispatchMessage(&msg); - } - - SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, FALSE, &nPreviousState, 0); - - return TRUE; -} - -// -// Look for any options Windows has passed to us: -// -// -a (set password) -// -s (screensave) -// -p (preview) -// -c (configure) -// -BOOL ParseCommandLine(LPSTR szCmdLine, int *chOption, HWND *hwndParent) -{ - int ch = *szCmdLine++; - - if(ch == '-' || ch == '/') - ch = *szCmdLine++; - - if(ch >= 'A' && ch <= 'Z') - ch += 'a' - 'A'; //convert to lower case - - *chOption = ch; - ch = *szCmdLine++; - - if(ch == ':') - ch = *szCmdLine++; - - while(ch == ' ' || ch == '\t') - ch = *szCmdLine++; - - if(isdigit(ch)) - { - unsigned int i = atoi(szCmdLine - 1); - *hwndParent = (HWND)i; - } - else - *hwndParent = NULL; - - return TRUE; -} - -// -// Entrypoint for screen-saver: it's just a normal win32 app! -// -int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmdLine, int iCmdShow) -{ - HWND hwndParent; - int chOption; - - // Make sure that only 1 instance runs at a time - - // Win98 seems to want us to restart every 5 seconds!! - if(FindWindowEx(NULL, NULL, APPNAME, APPNAME)) - { - return 0; - } - - LoadSettings(); - - ParseCommandLine(lpCmdLine, &chOption, &hwndParent); - - switch(chOption) - { - case 's': return ScreenSaver(NULL); // screen save - case 'p': return ScreenSaver(hwndParent); // preview in small window - case 'a': return ChangePassword(hwndParent); // ask for password - case 'c': return Configure(hwndParent); // configuration dialog - default: return Configure(hwndParent); // configuration dialog - } - - return 0; -} +// +// screensave.c +// +// Entrypoint for a win32 screensaver +// +// NOTES: Screen savers don't like being UPX'd (compressed). Don't +// know why, it just is. C-runtime has been stripped with +// "libctiny.lib". +// +// v1.0 1/12/2003 J Brown +// +#include +#include +#include +#include "globals.h" +#include "message.h" +#include "matrix.h" +#include "resource.h" + +//#pragma comment(lib, "libctiny.lib") +//#pragma comment(linker, "/OPT:NOWIN98") + +// +// Added: Multimonitor support!! +// +HMONITOR (WINAPI * pfnEnumDisplayMonitors)(HDC, LPCRECT, MONITORENUMPROC, LPARAM); +BOOL (WINAPI * pfnGetMonitorInfo)(HMONITOR, LPMONITORINFO); + +// +// Callback function for EnumDisplayMonitors API. Use this function +// to kickstart a screen-saver window for each monitor in the system +// +BOOL CALLBACK MonitorEnumProc(HMONITOR hMonitor, HDC hdcMonitor, RECT *rcMonitor, LPARAM Param) +{ + HWND hwnd; + + // Create a screensaver on this monitor! + hwnd = CreateScreenSaveWnd((HWND)Param, rcMonitor); + + // For some reason windows always places this window at 0,0... + // position it ourselves + SetWindowPos(hwnd, 0, rcMonitor->left, rcMonitor->top, 0, 0, + SWP_NOZORDER|SWP_NOACTIVATE|SWP_NOSIZE|SWP_SHOWWINDOW); + + return TRUE; +} + +// +// Start screen saver! +// +BOOL ScreenSaver(HWND hwndParent) +{ + HMODULE hUser32; + UINT nPreviousState; + MSG msg; + + InitScreenSaveClass(hwndParent); + + SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, TRUE, &nPreviousState, 0); + + // Dynamically locate API call from USER32 - not present in all versions + hUser32 = GetModuleHandle(_T("USER32.DLL")); + pfnEnumDisplayMonitors = (PVOID)GetProcAddress(hUser32, "EnumDisplayMonitors"); + + // If we're running Win2k+ then the API is available...so call it! + if(pfnEnumDisplayMonitors && hwndParent == 0) + { + pfnEnumDisplayMonitors(NULL, NULL, MonitorEnumProc, 0); + } + // Otherwise simulate by calling enum-proc manually + else + { + RECT rect; + + rect.left = 0; + rect.right = GetSystemMetrics(SM_CXSCREEN); + rect.top = 0; + rect.bottom = GetSystemMetrics(SM_CYSCREEN); + + MonitorEnumProc(NULL, NULL, &rect, (LPARAM)hwndParent); + } + + // run message loop to handle all screen-saver windows + while(GetMessage(&msg, NULL,0,0)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + + SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, FALSE, &nPreviousState, 0); + + return TRUE; +} + +// +// Look for any options Windows has passed to us: +// +// -a (set password) +// -s (screensave) +// -p (preview) +// -c (configure) +// +BOOL ParseCommandLine(LPSTR szCmdLine, int *chOption, HWND *hwndParent) +{ + int ch = *szCmdLine++; + + if(ch == '-' || ch == '/') + ch = *szCmdLine++; + + if(ch >= 'A' && ch <= 'Z') + ch += 'a' - 'A'; //convert to lower case + + *chOption = ch; + ch = *szCmdLine++; + + if(ch == ':') + ch = *szCmdLine++; + + while(ch == ' ' || ch == '\t') + ch = *szCmdLine++; + + if(isdigit(ch)) + { + unsigned int i = atoi(szCmdLine - 1); + *hwndParent = (HWND)i; + } + else + *hwndParent = NULL; + + return TRUE; +} + +// +// Entrypoint for screen-saver: it's just a normal win32 app! +// +int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmdLine, int iCmdShow) +{ + HWND hwndParent; + int chOption; + + // Make sure that only 1 instance runs at a time - + // Win98 seems to want us to restart every 5 seconds!! + if(FindWindowEx(NULL, NULL, APPNAME, APPNAME)) + { + return 0; + } + + LoadSettings(); + + ParseCommandLine(lpCmdLine, &chOption, &hwndParent); + + switch(chOption) + { + case 's': return ScreenSaver(NULL); // screen save + case 'p': return ScreenSaver(hwndParent); // preview in small window + case 'a': return ChangePassword(hwndParent); // ask for password + case 'c': return Configure(hwndParent); // configuration dialog + default: return Configure(hwndParent); // configuration dialog + } + + return 0; +} diff --git a/reactos/base/applications/screensavers/matrix/settings.c b/reactos/base/applications/screensavers/matrix/settings.c index 571a6805e44..87282ed64bb 100644 --- a/reactos/base/applications/screensavers/matrix/settings.c +++ b/reactos/base/applications/screensavers/matrix/settings.c @@ -1,165 +1,165 @@ -// -// settings.c -// -// Load/Save settings from registry -// -#include -#include -#include "globals.h" -#include "message.h" -#include "matrix.h" - -TCHAR g_szMessages[MAX_MESSAGES][MAXMSG_LENGTH]; -int g_nNumMessages = 0; -int g_nMessageSpeed = 5; -TCHAR g_szFontName[512] = _T("Arial"); - -int g_nMatrixSpeed = 150; -int g_nDensity = 32; -int g_nFontSize = 12; -BOOL g_fRandomizeMessages = FALSE; -BOOL g_fFontBold = TRUE; -BOOL g_fScreenSaving = FALSE; - -HFONT g_hFont; - -void LoadSettings() -{ - HKEY hkey; - LONG value; - ULONG len; - TCHAR *hugechar = malloc(4096); - TCHAR *hptr = hugechar; - - if(hugechar == 0) - return; - - hugechar[0] = _T('\0'); - - RegCreateKeyEx(HKEY_CURRENT_USER, _T("Software\\Catch22\\Matrix Screen Saver"), 0, - _T(""), 0, KEY_READ, NULL, &hkey, NULL); - - len = sizeof value; - if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("MessageSpeed"), 0, 0, (BYTE *)&value, &len)) - { - if(value >= MSGSPEED_MIN && value <= MSGSPEED_MAX) - g_nMessageSpeed = value; - } - - if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("MatrixSpeed"), 0, 0, (BYTE *)&value, &len)) - { - if(value >= SPEED_MIN && value <= SPEED_MAX) - g_nMatrixSpeed = value; - } - - if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("Density"), 0, 0, (BYTE *)&value, &len)) - { - if(value >= DENSITY_MIN && value <= DENSITY_MAX) - g_nDensity = value; - } - - if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("FontSize"), 0, 0, (BYTE *)&value, &len)) - { - if(value >= FONT_MIN && value <= FONT_MAX) - g_nFontSize = value; - } - - if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("FontBold"), 0, 0, (BYTE *)&value, &len)) - g_fFontBold = (value == 0 ? FALSE : TRUE); - - if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("Randomize"), 0, 0, (BYTE *)&value, &len)) - g_fRandomizeMessages = (value == 0 ? FALSE : TRUE); - - len = 4096; - if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("FontName"), 0, 0, (BYTE *)hugechar, &len)) - { - if(len > 0) - lstrcpy(g_szFontName, hugechar); - else - lstrcpy(g_szFontName, _T("Arial")); - - } - - len = 4096; - - if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("Messages"), 0, 0 , (BYTE *)hugechar, &len)) - { - while(len > 0 && *hptr && isascii(*hptr)) - { - if(lstrlen(hptr) > 0) - { - lstrcpyn(g_szMessages[g_nNumMessages], hptr, MAXMSG_LENGTH); - ++g_nNumMessages; - hptr += lstrlen(hptr) + 1; - } - } - } - else - { - /* built-in coded message for first run */ - lstrcpyn(g_szMessages[0], _T("ReactOS"), MAXMSG_LENGTH); - ++g_nNumMessages; - } - - RegCloseKey(hkey); - free(hugechar); -} - -void SaveSettings() -{ - HKEY hkey; - TCHAR *hugechar = malloc(4096); - TCHAR *msgptr = hugechar; - int totallen = 0; - int i,len; - LONG value; - - if(hugechar == 0) - return; - - hugechar[0] = _T('\0'); - msgptr = hugechar; - - RegCreateKeyEx(HKEY_CURRENT_USER, _T("Software\\Catch22\\Matrix Screen Saver"), 0, - _T(""), 0, KEY_WRITE, NULL, &hkey, NULL); - - value = g_nMessageSpeed; - RegSetValueEx(hkey, _T("MessageSpeed"), 0, REG_DWORD, (BYTE *)&value, sizeof value); - - value = g_nMatrixSpeed; - RegSetValueEx(hkey, _T("MatrixSpeed"), 0, REG_DWORD, (BYTE *)&value, sizeof value); - - value = g_nDensity; - RegSetValueEx(hkey, _T("Density"), 0, REG_DWORD, (BYTE *)&value, sizeof value); - - value = g_nFontSize; - RegSetValueEx(hkey, _T("FontSize"), 0, REG_DWORD, (BYTE *)&value, sizeof value); - - value = g_fRandomizeMessages; - RegSetValueEx(hkey, _T("Randomize"), 0, REG_DWORD, (BYTE *)&value, sizeof value); - - value = g_fFontBold; - RegSetValueEx(hkey, _T("FontBold"), 0, REG_DWORD, (BYTE *)&value, sizeof value); - - RegSetValueEx(hkey, _T("FontName"), 0, REG_SZ, (BYTE *)g_szFontName, lstrlen(g_szFontName)); - - for(i = 0; i < g_nNumMessages; i++) - { - len = lstrlen(g_szMessages[i]); - - if(len > 0 && totallen+len < 4096) - { - lstrcpyn(msgptr, g_szMessages[i], 4096-totallen); - totallen += len + 1; - msgptr += len + 1; - } - } - - *msgptr = _T('\0'); - totallen++; - - RegSetValueEx(hkey, _T("Messages"), 0, REG_MULTI_SZ, (BYTE *)hugechar, totallen); - RegCloseKey(hkey); - - free(hugechar); -} +// +// settings.c +// +// Load/Save settings from registry +// +#include +#include +#include "globals.h" +#include "message.h" +#include "matrix.h" + +TCHAR g_szMessages[MAX_MESSAGES][MAXMSG_LENGTH]; +int g_nNumMessages = 0; +int g_nMessageSpeed = 5; +TCHAR g_szFontName[512] = _T("Arial"); + +int g_nMatrixSpeed = 150; +int g_nDensity = 32; +int g_nFontSize = 12; +BOOL g_fRandomizeMessages = FALSE; +BOOL g_fFontBold = TRUE; +BOOL g_fScreenSaving = FALSE; + +HFONT g_hFont; + +void LoadSettings() +{ + HKEY hkey; + LONG value; + ULONG len; + TCHAR *hugechar = malloc(4096); + TCHAR *hptr = hugechar; + + if(hugechar == 0) + return; + + hugechar[0] = _T('\0'); + + RegCreateKeyEx(HKEY_CURRENT_USER, _T("Software\\Catch22\\Matrix Screen Saver"), 0, + _T(""), 0, KEY_READ, NULL, &hkey, NULL); + + len = sizeof value; + if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("MessageSpeed"), 0, 0, (BYTE *)&value, &len)) + { + if(value >= MSGSPEED_MIN && value <= MSGSPEED_MAX) + g_nMessageSpeed = value; + } + + if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("MatrixSpeed"), 0, 0, (BYTE *)&value, &len)) + { + if(value >= SPEED_MIN && value <= SPEED_MAX) + g_nMatrixSpeed = value; + } + + if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("Density"), 0, 0, (BYTE *)&value, &len)) + { + if(value >= DENSITY_MIN && value <= DENSITY_MAX) + g_nDensity = value; + } + + if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("FontSize"), 0, 0, (BYTE *)&value, &len)) + { + if(value >= FONT_MIN && value <= FONT_MAX) + g_nFontSize = value; + } + + if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("FontBold"), 0, 0, (BYTE *)&value, &len)) + g_fFontBold = (value == 0 ? FALSE : TRUE); + + if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("Randomize"), 0, 0, (BYTE *)&value, &len)) + g_fRandomizeMessages = (value == 0 ? FALSE : TRUE); + + len = 4096; + if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("FontName"), 0, 0, (BYTE *)hugechar, &len)) + { + if(len > 0) + lstrcpy(g_szFontName, hugechar); + else + lstrcpy(g_szFontName, _T("Arial")); + + } + + len = 4096; + + if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("Messages"), 0, 0 , (BYTE *)hugechar, &len)) + { + while(len > 0 && *hptr && isascii(*hptr)) + { + if(lstrlen(hptr) > 0) + { + lstrcpyn(g_szMessages[g_nNumMessages], hptr, MAXMSG_LENGTH); + ++g_nNumMessages; + hptr += lstrlen(hptr) + 1; + } + } + } + else + { + /* built-in coded message for first run */ + lstrcpyn(g_szMessages[0], _T("ReactOS"), MAXMSG_LENGTH); + ++g_nNumMessages; + } + + RegCloseKey(hkey); + free(hugechar); +} + +void SaveSettings() +{ + HKEY hkey; + TCHAR *hugechar = malloc(4096); + TCHAR *msgptr = hugechar; + int totallen = 0; + int i,len; + LONG value; + + if(hugechar == 0) + return; + + hugechar[0] = _T('\0'); + msgptr = hugechar; + + RegCreateKeyEx(HKEY_CURRENT_USER, _T("Software\\Catch22\\Matrix Screen Saver"), 0, + _T(""), 0, KEY_WRITE, NULL, &hkey, NULL); + + value = g_nMessageSpeed; + RegSetValueEx(hkey, _T("MessageSpeed"), 0, REG_DWORD, (BYTE *)&value, sizeof value); + + value = g_nMatrixSpeed; + RegSetValueEx(hkey, _T("MatrixSpeed"), 0, REG_DWORD, (BYTE *)&value, sizeof value); + + value = g_nDensity; + RegSetValueEx(hkey, _T("Density"), 0, REG_DWORD, (BYTE *)&value, sizeof value); + + value = g_nFontSize; + RegSetValueEx(hkey, _T("FontSize"), 0, REG_DWORD, (BYTE *)&value, sizeof value); + + value = g_fRandomizeMessages; + RegSetValueEx(hkey, _T("Randomize"), 0, REG_DWORD, (BYTE *)&value, sizeof value); + + value = g_fFontBold; + RegSetValueEx(hkey, _T("FontBold"), 0, REG_DWORD, (BYTE *)&value, sizeof value); + + RegSetValueEx(hkey, _T("FontName"), 0, REG_SZ, (BYTE *)g_szFontName, lstrlen(g_szFontName)); + + for(i = 0; i < g_nNumMessages; i++) + { + len = lstrlen(g_szMessages[i]); + + if(len > 0 && totallen+len < 4096) + { + lstrcpyn(msgptr, g_szMessages[i], 4096-totallen); + totallen += len + 1; + msgptr += len + 1; + } + } + + *msgptr = _T('\0'); + totallen++; + + RegSetValueEx(hkey, _T("Messages"), 0, REG_MULTI_SZ, (BYTE *)hugechar, totallen); + RegCloseKey(hkey); + + free(hugechar); +} diff --git a/reactos/base/applications/screensavers/screensavers.rbuild b/reactos/base/applications/screensavers/screensavers.rbuild index ee21bc62fa8..31cddfe0781 100644 --- a/reactos/base/applications/screensavers/screensavers.rbuild +++ b/reactos/base/applications/screensavers/screensavers.rbuild @@ -1,10 +1,10 @@ - - - - - - - - - + + + + + + + + + \ No newline at end of file diff --git a/reactos/base/applications/screenshot/screenshot.c b/reactos/base/applications/screenshot/screenshot.c index d6057d716b8..ed83b3d6c95 100644 --- a/reactos/base/applications/screenshot/screenshot.c +++ b/reactos/base/applications/screenshot/screenshot.c @@ -1,404 +1,404 @@ -#include "screenshot.h" - -/* - * Save a screenshot to file until the clipboard - * is ready to accept images. - */ - - -static VOID -GetError(VOID) -{ - LPVOID lpMsgBuf; - - FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | - FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, - GetLastError(), - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPTSTR) &lpMsgBuf, - 0, - NULL ); - - MessageBox(NULL, - lpMsgBuf, - _T("Error!"), - MB_OK | MB_ICONERROR); - - LocalFree(lpMsgBuf); -} - - -static BOOL -DoWriteFile(PSCREENSHOT pScrSht, - LPTSTR pstrFileName) -{ - BITMAPFILEHEADER bmfh; - BOOL bSuccess; - DWORD dwBytesWritten; - HANDLE hFile; - //INT PalEntries; - - hFile = CreateFile(pstrFileName, - GENERIC_WRITE, - 0, - NULL, - CREATE_ALWAYS, - FILE_ATTRIBUTE_NORMAL, - NULL); - - if (hFile == INVALID_HANDLE_VALUE) - return FALSE; - - /* write the BITMAPFILEHEADER to file */ - bmfh.bfType = *(WORD *)"BM"; // 0x4D 0x42 - bmfh.bfReserved1 = 0; - bmfh.bfReserved2 = 0; - bSuccess = WriteFile(hFile, - &bmfh, - sizeof(bmfh), - &dwBytesWritten, - NULL); - if ((!bSuccess) || (dwBytesWritten < sizeof(bmfh))) - goto fail; - - /* write the BITMAPINFOHEADER to file */ - bSuccess = WriteFile(hFile, - &pScrSht->lpbi->bmiHeader, - sizeof(BITMAPINFOHEADER), - &dwBytesWritten, - NULL); - if ((!bSuccess) || (dwBytesWritten < sizeof(BITMAPINFOHEADER))) - goto fail; - - /* calculate the size of the pallete * / - if (pScrSht->lpbi->bmiHeader.biCompression == BI_BITFIELDS) - PalEntries = 3; - else - { - if (pScrSht->lpbi->bmiHeader.biBitCount <= 8) - PalEntries = (INT)(1 << pScrSht->lpbi->bmiHeader.biBitCount); - else - PalEntries = 0; - } - if (pScrSht->lpbi->bmiHeader.biClrUsed) - PalEntries = pScrSht->lpbi->bmiHeader.biClrUsed; - - / * write pallete to file * / - if (PalEntries != 0) - { - bSuccess = WriteFile(hFile, - &pScrSht->lpbi->bmiColors, - PalEntries * sizeof(RGBQUAD), - &dwBytesWritten, - NULL); - if ((!bSuccess) || (dwBytesWritten < PalEntries * sizeof(RGBQUAD))) - goto fail; - } -*/ - /* save the current file position at the bginning of the bitmap bits */ - bmfh.bfOffBits = SetFilePointer(hFile, 0, 0, FILE_CURRENT); - - /* write the bitmap bits to file */ - bSuccess = WriteFile(hFile, - pScrSht->lpvBits, - pScrSht->lpbi->bmiHeader.biSizeImage, - &dwBytesWritten, - NULL); - if ((!bSuccess) || (dwBytesWritten < pScrSht->lpbi->bmiHeader.biSizeImage)) - goto fail; - - /* save the current file position at the final file size */ - bmfh.bfSize = SetFilePointer(hFile, 0, 0, FILE_CURRENT); - - /* rewrite the updated file headers */ - SetFilePointer(hFile, 0, 0, FILE_BEGIN); - bSuccess = WriteFile(hFile, - &bmfh, - sizeof(bmfh), - &dwBytesWritten, - NULL); - if ((!bSuccess) || (dwBytesWritten < sizeof(bmfh))) - goto fail; - - return TRUE; - -fail: - GetError(); - if (hFile) CloseHandle(hFile); - DeleteFile(pstrFileName); - return FALSE; - -} - - -static BOOL -DoSaveFile(HWND hwnd, LPTSTR szFileName) -{ - OPENFILENAME ofn; - - static TCHAR Filter[] = _T("24 bit Bitmap (*.bmp,*.dib)\0*.bmp\0"); - - ZeroMemory(&ofn, sizeof(ofn)); - ofn.lStructSize = sizeof(OPENFILENAME); - ofn.hwndOwner = hwnd; - ofn.nMaxFile = MAX_PATH; - ofn.nMaxFileTitle = MAX_PATH; - ofn.lpstrDefExt = _T("bmp"); - ofn.lpstrFilter = Filter; - ofn.lpstrFile = szFileName; - ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT; - - if (GetSaveFileName(&ofn)) - return TRUE; - - if (CommDlgExtendedError() != CDERR_GENERALCODES) - MessageBox(NULL, _T("Save to file failed"), NULL, 0); - - return FALSE; -} - - -static BOOL -CaptureScreen(PSCREENSHOT pScrSht) -{ - HDC ScreenDC; - RECT rect; - - /* get window resolution */ - //pScrSht->Width = GetSystemMetrics(SM_CXSCREEN); - //pScrSht->Height = GetSystemMetrics(SM_CYSCREEN); - - GetWindowRect(pScrSht->hSelf, &rect); - pScrSht->Width = rect.right - rect.left; - pScrSht->Height = rect.bottom - rect.top; - - /* get a DC for the screen */ - if (!(ScreenDC = GetDC(pScrSht->hSelf))) - return FALSE; - - /* get a bitmap handle for the screen - * needed to convert to a DIB */ - pScrSht->hBitmap = CreateCompatibleBitmap(ScreenDC, - pScrSht->Width, - pScrSht->Height); - if (pScrSht->hBitmap == NULL) - { - GetError(); - ReleaseDC(pScrSht->hSelf, ScreenDC); - return FALSE; - } - - /* get a DC compatable with the screen DC */ - if (!(pScrSht->hDC = CreateCompatibleDC(ScreenDC))) - { - GetError(); - ReleaseDC(pScrSht->hSelf, ScreenDC); - return FALSE; - } - - /* select the bitmap into the DC */ - SelectObject(pScrSht->hDC, - pScrSht->hBitmap); - - /* copy the screen DC to the bitmap */ - BitBlt(pScrSht->hDC, - 0, - 0, - pScrSht->Width, - pScrSht->Height, - ScreenDC, - 0, - 0, - SRCCOPY); - - /* we're finished with the screen DC */ - ReleaseDC(pScrSht->hSelf, ScreenDC); - - return TRUE; -} - - -static BOOL -ConvertDDBtoDIB(PSCREENSHOT pScrSht) -{ - INT Ret; - BITMAP bitmap; - WORD cClrBits; - - -/* - / * can't call GetDIBits with hBitmap selected * / - //SelectObject(hDC, hOldBitmap); - - / * let GetDIBits fill the lpbi structure by passing NULL pointer * / - Ret = GetDIBits(hDC, - hBitmap, - 0, - Height, - NULL, - lpbi, - DIB_RGB_COLORS); - if (Ret == 0) - { - GetError(); - ReleaseDC(hwnd, hDC); - HeapFree(GetProcessHeap(), 0, lpbi); - return -1; - } -*/ - -//////////////////////////////////////////////////// - - if (!GetObjectW(pScrSht->hBitmap, - sizeof(BITMAP), - (LPTSTR)&bitmap)) - { - GetError(); - return FALSE; - } - - cClrBits = (WORD)(bitmap.bmPlanes * bitmap.bmBitsPixel); - if (cClrBits == 1) - cClrBits = 1; - else if (cClrBits <= 4) - cClrBits = 4; - else if (cClrBits <= 8) - cClrBits = 8; - else if (cClrBits <= 16) - cClrBits = 16; - else if (cClrBits <= 24) - cClrBits = 24; - else cClrBits = 32; - - if (cClrBits != 24) - pScrSht->lpbi = (PBITMAPINFO) HeapAlloc(GetProcessHeap(), - 0, - sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * (1 << cClrBits)); - else - pScrSht->lpbi = (PBITMAPINFO) HeapAlloc(GetProcessHeap(), - 0, - sizeof(BITMAPINFOHEADER)); - - if (!pScrSht->lpbi) - { - GetError(); - return FALSE; - } - - pScrSht->lpbi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); - pScrSht->lpbi->bmiHeader.biWidth = bitmap.bmWidth; - pScrSht->lpbi->bmiHeader.biHeight = bitmap.bmHeight; - pScrSht->lpbi->bmiHeader.biPlanes = bitmap.bmPlanes; - pScrSht->lpbi->bmiHeader.biBitCount = bitmap.bmBitsPixel; - - if (cClrBits < 24) - pScrSht->lpbi->bmiHeader.biClrUsed = (1 << cClrBits); - - pScrSht->lpbi->bmiHeader.biCompression = BI_RGB; - pScrSht->lpbi->bmiHeader.biSizeImage = ((pScrSht->lpbi->bmiHeader.biWidth * cClrBits +31) & ~31) /8 - * pScrSht->lpbi->bmiHeader.biHeight; - - pScrSht->lpbi->bmiHeader.biClrImportant = 0; - -////////////////////////////////////////////////////// - - /* reserve memory to hold the screen bitmap */ - pScrSht->lpvBits = HeapAlloc(GetProcessHeap(), - 0, - pScrSht->lpbi->bmiHeader.biSizeImage); - if (pScrSht->lpvBits == NULL) - { - GetError(); - return FALSE; - } - - /* convert the DDB to a DIB */ - Ret = GetDIBits(pScrSht->hDC, - pScrSht->hBitmap, - 0, - pScrSht->Height, - pScrSht->lpvBits, - pScrSht->lpbi, - DIB_RGB_COLORS); - if (Ret == 0) - { - GetError(); - return FALSE; - } - - return TRUE; - -} - - -// INT WINAPI GetScreenshot(BOOL bFullScreen) -int WINAPI WinMain(HINSTANCE hInstance, - HINSTANCE hPrevInstance, - PSTR szCmdLine, - int iCmdShow) -{ - PSCREENSHOT pScrSht; - TCHAR szFileName[MAX_PATH] = _T(""); - - BOOL bFullScreen = TRUE; - - pScrSht = HeapAlloc(GetProcessHeap(), - 0, - sizeof(SCREENSHOT)); - if (pScrSht == NULL) - return -1; - - if (bFullScreen) - { - pScrSht->hSelf = GetDesktopWindow(); - } - else - { - pScrSht->hSelf = GetForegroundWindow(); - } - - if (pScrSht->hSelf == NULL) - { - HeapFree(GetProcessHeap(), - 0, - pScrSht); - - return -1; - } - - if (CaptureScreen(pScrSht)) - { - /* convert the DDB image to DIB */ - if(ConvertDDBtoDIB(pScrSht)) - { - /* Get filename from user */ - if(DoSaveFile(pScrSht->hSelf, szFileName)) - { - /* build the headers and write to file */ - DoWriteFile(pScrSht, szFileName); - } - } - } - - /* cleanup */ - if (pScrSht->hSelf != NULL) - ReleaseDC(pScrSht->hSelf, pScrSht->hDC); - if (pScrSht->hBitmap != NULL) - DeleteObject(pScrSht->hBitmap); - if (pScrSht->lpbi != NULL) - HeapFree(GetProcessHeap(), - 0, - pScrSht->lpbi); - if (pScrSht->lpvBits != NULL) - HeapFree(GetProcessHeap(), - 0, - pScrSht->lpvBits); - if (pScrSht != NULL) - HeapFree(GetProcessHeap(), - 0, - pScrSht); - - return 0; -} +#include "screenshot.h" + +/* + * Save a screenshot to file until the clipboard + * is ready to accept images. + */ + + +static VOID +GetError(VOID) +{ + LPVOID lpMsgBuf; + + FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | + FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, + GetLastError(), + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPTSTR) &lpMsgBuf, + 0, + NULL ); + + MessageBox(NULL, + lpMsgBuf, + _T("Error!"), + MB_OK | MB_ICONERROR); + + LocalFree(lpMsgBuf); +} + + +static BOOL +DoWriteFile(PSCREENSHOT pScrSht, + LPTSTR pstrFileName) +{ + BITMAPFILEHEADER bmfh; + BOOL bSuccess; + DWORD dwBytesWritten; + HANDLE hFile; + //INT PalEntries; + + hFile = CreateFile(pstrFileName, + GENERIC_WRITE, + 0, + NULL, + CREATE_ALWAYS, + FILE_ATTRIBUTE_NORMAL, + NULL); + + if (hFile == INVALID_HANDLE_VALUE) + return FALSE; + + /* write the BITMAPFILEHEADER to file */ + bmfh.bfType = *(WORD *)"BM"; // 0x4D 0x42 + bmfh.bfReserved1 = 0; + bmfh.bfReserved2 = 0; + bSuccess = WriteFile(hFile, + &bmfh, + sizeof(bmfh), + &dwBytesWritten, + NULL); + if ((!bSuccess) || (dwBytesWritten < sizeof(bmfh))) + goto fail; + + /* write the BITMAPINFOHEADER to file */ + bSuccess = WriteFile(hFile, + &pScrSht->lpbi->bmiHeader, + sizeof(BITMAPINFOHEADER), + &dwBytesWritten, + NULL); + if ((!bSuccess) || (dwBytesWritten < sizeof(BITMAPINFOHEADER))) + goto fail; + + /* calculate the size of the pallete * / + if (pScrSht->lpbi->bmiHeader.biCompression == BI_BITFIELDS) + PalEntries = 3; + else + { + if (pScrSht->lpbi->bmiHeader.biBitCount <= 8) + PalEntries = (INT)(1 << pScrSht->lpbi->bmiHeader.biBitCount); + else + PalEntries = 0; + } + if (pScrSht->lpbi->bmiHeader.biClrUsed) + PalEntries = pScrSht->lpbi->bmiHeader.biClrUsed; + + / * write pallete to file * / + if (PalEntries != 0) + { + bSuccess = WriteFile(hFile, + &pScrSht->lpbi->bmiColors, + PalEntries * sizeof(RGBQUAD), + &dwBytesWritten, + NULL); + if ((!bSuccess) || (dwBytesWritten < PalEntries * sizeof(RGBQUAD))) + goto fail; + } +*/ + /* save the current file position at the bginning of the bitmap bits */ + bmfh.bfOffBits = SetFilePointer(hFile, 0, 0, FILE_CURRENT); + + /* write the bitmap bits to file */ + bSuccess = WriteFile(hFile, + pScrSht->lpvBits, + pScrSht->lpbi->bmiHeader.biSizeImage, + &dwBytesWritten, + NULL); + if ((!bSuccess) || (dwBytesWritten < pScrSht->lpbi->bmiHeader.biSizeImage)) + goto fail; + + /* save the current file position at the final file size */ + bmfh.bfSize = SetFilePointer(hFile, 0, 0, FILE_CURRENT); + + /* rewrite the updated file headers */ + SetFilePointer(hFile, 0, 0, FILE_BEGIN); + bSuccess = WriteFile(hFile, + &bmfh, + sizeof(bmfh), + &dwBytesWritten, + NULL); + if ((!bSuccess) || (dwBytesWritten < sizeof(bmfh))) + goto fail; + + return TRUE; + +fail: + GetError(); + if (hFile) CloseHandle(hFile); + DeleteFile(pstrFileName); + return FALSE; + +} + + +static BOOL +DoSaveFile(HWND hwnd, LPTSTR szFileName) +{ + OPENFILENAME ofn; + + static TCHAR Filter[] = _T("24 bit Bitmap (*.bmp,*.dib)\0*.bmp\0"); + + ZeroMemory(&ofn, sizeof(ofn)); + ofn.lStructSize = sizeof(OPENFILENAME); + ofn.hwndOwner = hwnd; + ofn.nMaxFile = MAX_PATH; + ofn.nMaxFileTitle = MAX_PATH; + ofn.lpstrDefExt = _T("bmp"); + ofn.lpstrFilter = Filter; + ofn.lpstrFile = szFileName; + ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT; + + if (GetSaveFileName(&ofn)) + return TRUE; + + if (CommDlgExtendedError() != CDERR_GENERALCODES) + MessageBox(NULL, _T("Save to file failed"), NULL, 0); + + return FALSE; +} + + +static BOOL +CaptureScreen(PSCREENSHOT pScrSht) +{ + HDC ScreenDC; + RECT rect; + + /* get window resolution */ + //pScrSht->Width = GetSystemMetrics(SM_CXSCREEN); + //pScrSht->Height = GetSystemMetrics(SM_CYSCREEN); + + GetWindowRect(pScrSht->hSelf, &rect); + pScrSht->Width = rect.right - rect.left; + pScrSht->Height = rect.bottom - rect.top; + + /* get a DC for the screen */ + if (!(ScreenDC = GetDC(pScrSht->hSelf))) + return FALSE; + + /* get a bitmap handle for the screen + * needed to convert to a DIB */ + pScrSht->hBitmap = CreateCompatibleBitmap(ScreenDC, + pScrSht->Width, + pScrSht->Height); + if (pScrSht->hBitmap == NULL) + { + GetError(); + ReleaseDC(pScrSht->hSelf, ScreenDC); + return FALSE; + } + + /* get a DC compatable with the screen DC */ + if (!(pScrSht->hDC = CreateCompatibleDC(ScreenDC))) + { + GetError(); + ReleaseDC(pScrSht->hSelf, ScreenDC); + return FALSE; + } + + /* select the bitmap into the DC */ + SelectObject(pScrSht->hDC, + pScrSht->hBitmap); + + /* copy the screen DC to the bitmap */ + BitBlt(pScrSht->hDC, + 0, + 0, + pScrSht->Width, + pScrSht->Height, + ScreenDC, + 0, + 0, + SRCCOPY); + + /* we're finished with the screen DC */ + ReleaseDC(pScrSht->hSelf, ScreenDC); + + return TRUE; +} + + +static BOOL +ConvertDDBtoDIB(PSCREENSHOT pScrSht) +{ + INT Ret; + BITMAP bitmap; + WORD cClrBits; + + +/* + / * can't call GetDIBits with hBitmap selected * / + //SelectObject(hDC, hOldBitmap); + + / * let GetDIBits fill the lpbi structure by passing NULL pointer * / + Ret = GetDIBits(hDC, + hBitmap, + 0, + Height, + NULL, + lpbi, + DIB_RGB_COLORS); + if (Ret == 0) + { + GetError(); + ReleaseDC(hwnd, hDC); + HeapFree(GetProcessHeap(), 0, lpbi); + return -1; + } +*/ + +//////////////////////////////////////////////////// + + if (!GetObjectW(pScrSht->hBitmap, + sizeof(BITMAP), + (LPTSTR)&bitmap)) + { + GetError(); + return FALSE; + } + + cClrBits = (WORD)(bitmap.bmPlanes * bitmap.bmBitsPixel); + if (cClrBits == 1) + cClrBits = 1; + else if (cClrBits <= 4) + cClrBits = 4; + else if (cClrBits <= 8) + cClrBits = 8; + else if (cClrBits <= 16) + cClrBits = 16; + else if (cClrBits <= 24) + cClrBits = 24; + else cClrBits = 32; + + if (cClrBits != 24) + pScrSht->lpbi = (PBITMAPINFO) HeapAlloc(GetProcessHeap(), + 0, + sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * (1 << cClrBits)); + else + pScrSht->lpbi = (PBITMAPINFO) HeapAlloc(GetProcessHeap(), + 0, + sizeof(BITMAPINFOHEADER)); + + if (!pScrSht->lpbi) + { + GetError(); + return FALSE; + } + + pScrSht->lpbi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); + pScrSht->lpbi->bmiHeader.biWidth = bitmap.bmWidth; + pScrSht->lpbi->bmiHeader.biHeight = bitmap.bmHeight; + pScrSht->lpbi->bmiHeader.biPlanes = bitmap.bmPlanes; + pScrSht->lpbi->bmiHeader.biBitCount = bitmap.bmBitsPixel; + + if (cClrBits < 24) + pScrSht->lpbi->bmiHeader.biClrUsed = (1 << cClrBits); + + pScrSht->lpbi->bmiHeader.biCompression = BI_RGB; + pScrSht->lpbi->bmiHeader.biSizeImage = ((pScrSht->lpbi->bmiHeader.biWidth * cClrBits +31) & ~31) /8 + * pScrSht->lpbi->bmiHeader.biHeight; + + pScrSht->lpbi->bmiHeader.biClrImportant = 0; + +////////////////////////////////////////////////////// + + /* reserve memory to hold the screen bitmap */ + pScrSht->lpvBits = HeapAlloc(GetProcessHeap(), + 0, + pScrSht->lpbi->bmiHeader.biSizeImage); + if (pScrSht->lpvBits == NULL) + { + GetError(); + return FALSE; + } + + /* convert the DDB to a DIB */ + Ret = GetDIBits(pScrSht->hDC, + pScrSht->hBitmap, + 0, + pScrSht->Height, + pScrSht->lpvBits, + pScrSht->lpbi, + DIB_RGB_COLORS); + if (Ret == 0) + { + GetError(); + return FALSE; + } + + return TRUE; + +} + + +// INT WINAPI GetScreenshot(BOOL bFullScreen) +int WINAPI WinMain(HINSTANCE hInstance, + HINSTANCE hPrevInstance, + PSTR szCmdLine, + int iCmdShow) +{ + PSCREENSHOT pScrSht; + TCHAR szFileName[MAX_PATH] = _T(""); + + BOOL bFullScreen = TRUE; + + pScrSht = HeapAlloc(GetProcessHeap(), + 0, + sizeof(SCREENSHOT)); + if (pScrSht == NULL) + return -1; + + if (bFullScreen) + { + pScrSht->hSelf = GetDesktopWindow(); + } + else + { + pScrSht->hSelf = GetForegroundWindow(); + } + + if (pScrSht->hSelf == NULL) + { + HeapFree(GetProcessHeap(), + 0, + pScrSht); + + return -1; + } + + if (CaptureScreen(pScrSht)) + { + /* convert the DDB image to DIB */ + if(ConvertDDBtoDIB(pScrSht)) + { + /* Get filename from user */ + if(DoSaveFile(pScrSht->hSelf, szFileName)) + { + /* build the headers and write to file */ + DoWriteFile(pScrSht, szFileName); + } + } + } + + /* cleanup */ + if (pScrSht->hSelf != NULL) + ReleaseDC(pScrSht->hSelf, pScrSht->hDC); + if (pScrSht->hBitmap != NULL) + DeleteObject(pScrSht->hBitmap); + if (pScrSht->lpbi != NULL) + HeapFree(GetProcessHeap(), + 0, + pScrSht->lpbi); + if (pScrSht->lpvBits != NULL) + HeapFree(GetProcessHeap(), + 0, + pScrSht->lpvBits); + if (pScrSht != NULL) + HeapFree(GetProcessHeap(), + 0, + pScrSht); + + return 0; +} diff --git a/reactos/base/applications/screenshot/screenshot.h b/reactos/base/applications/screenshot/screenshot.h index d44c9528afa..096987e9edc 100644 --- a/reactos/base/applications/screenshot/screenshot.h +++ b/reactos/base/applications/screenshot/screenshot.h @@ -1,15 +1,15 @@ -#include -#include - -typedef struct _SCREENSHOT -{ - HWND hSelf; - HDC hDC; - HBITMAP hBitmap; - LPBITMAPINFO lpbi; - LPVOID lpvBits; - INT Width; - INT Height; -} SCREENSHOT, *PSCREENSHOT; - -//INT WINAPI GetScreenshot(VOID); +#include +#include + +typedef struct _SCREENSHOT +{ + HWND hSelf; + HDC hDC; + HBITMAP hBitmap; + LPBITMAPINFO lpbi; + LPVOID lpvBits; + INT Width; + INT Height; +} SCREENSHOT, *PSCREENSHOT; + +//INT WINAPI GetScreenshot(VOID); diff --git a/reactos/base/applications/screenshot/screenshot.rbuild b/reactos/base/applications/screenshot/screenshot.rbuild index 53719c7e276..1d2ed1f6d23 100644 --- a/reactos/base/applications/screenshot/screenshot.rbuild +++ b/reactos/base/applications/screenshot/screenshot.rbuild @@ -1,14 +1,14 @@ - - . - - - - 0x501 - 0x0501 - kernel32 - user32 - gdi32 - comdlg32 - screenshot.c - screenshot.rc - + + . + + + + 0x501 + 0x0501 + kernel32 + user32 + gdi32 + comdlg32 + screenshot.c + screenshot.rc + diff --git a/reactos/base/applications/screenshot/screenshot.rc b/reactos/base/applications/screenshot/screenshot.rc index 474a3daf6cb..8a73d5c613e 100644 --- a/reactos/base/applications/screenshot/screenshot.rc +++ b/reactos/base/applications/screenshot/screenshot.rc @@ -1,10 +1,10 @@ -#include - -#define REACTOS_STR_FILE_DESCRIPTION "desktop screenshot app\0" -#define REACTOS_STR_INTERNAL_NAME "screenshot\0" -#define REACTOS_STR_ORIGINAL_FILENAME "screenshot.exe\0" -#include - -#define IDI_ICON 1 - -IDI_ICON ICON "snap.ico" +#include + +#define REACTOS_STR_FILE_DESCRIPTION "desktop screenshot app\0" +#define REACTOS_STR_INTERNAL_NAME "screenshot\0" +#define REACTOS_STR_ORIGINAL_FILENAME "screenshot.exe\0" +#include + +#define IDI_ICON 1 + +IDI_ICON ICON "snap.ico" diff --git a/reactos/base/applications/servman/De.rc b/reactos/base/applications/servman/De.rc index ac15d3a796c..693a76fbb6a 100644 --- a/reactos/base/applications/servman/De.rc +++ b/reactos/base/applications/servman/De.rc @@ -1,121 +1,121 @@ -LANGUAGE LANG_GERMAN, SUBLANG_GERMAN - -IDR_MAINMENU MENU -BEGIN - POPUP "&Datei" - BEGIN - MENUITEM "B&eenden",ID_FILE_EXIT - END - POPUP "Action" - BEGIN - MENUITEM "Start",ID_START - MENUITEM "Stopp",ID_STOP - MENUITEM "Pause",ID_PAUSE - MENUITEM "Fortsetzen",ID_RESUME - MENUITEM "Neustart",ID_RESTART - MENUITEM SEPARATOR - MENUITEM "Aktualisieren",ID_REFRESH - MENUITEM SEPARATOR - MENUITEM "Eigenschaften",ID_PROP - END - POPUP "Ansicht" - BEGIN - MENUITEM "Anpassen",ID_VIEW_CUSTOMIZE - END - POPUP "Hilfe" - BEGIN - MENUITEM "Info",ID_HELP_ABOUT - END -END - -IDD_ABOUTBOX DIALOG DISCARDABLE 22,16,190,182 -STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU -CAPTION "Ьber den Service Manager" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Service Manager v0.1\nCopyright (C) 2006\nby Ged Murphy (gedmurphy@gmail.com)", - IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,48,7,130,26 - DEFPUSHBUTTON "SchlieЯen",IDOK,140,162,44,15,WS_GROUP - ICON IDI_SM_ICON,IDC_STATIC,12,7,30,20 - EDITTEXT IDC_LICENSE_EDIT,8,44,174,107,ES_MULTILINE | - ES_READONLY | WS_VSCROLL -END - - -IDD_DLG_GENERAL DIALOGEX 6,6,253,225 -CAPTION "Allgemein" -FONT 8, "MS Shell Dlg",0,0 -STYLE 0x10CF0000 -BEGIN - CONTROL "Dienstname:",IDC_STATIC,"Static",0x50000000,4,11,53,11 - CONTROL "Anzeigename:",IDC_STATIC,"Static",0x50000000,4,29,53,11 - CONTROL "Beschreibung",IDC_STATIC,"Static",0x50000000,4,51,53,11 - CONTROL "",IDC_SERV_NAME,"Static",0x50000000,70,11,176,11 - CONTROL "",IDC_DISP_NAME,"Static",0x50001000,70,29,176,12 - CONTROL "",IDC_DESCRIPTION,"Static",0x50201000,70,46,176,22 - CONTROL "Pfad zum ausfьhrbarem Programm:",IDC_STATIC,"Static",0x50000000,6,73,150,9 - CONTROL "",IDC_STATIC,"Static",0x50001000,6,86,238,12 - CONTROL "Starttyp:",IDC_STATIC,"Static",0x50000000,6,108,53,11 - CONTROL "",IDC_START_TYPE,"ComboBox",0x50010003,70,107,176,11 - CONTROL "Status des Dienstes:",IDC_STATIC,"Static",0x50000000,4,138,100,11 - CONTROL "",IDC_SERV_STATUS,"Static",0x50000000,70,138,176,11 - CONTROL "Start",IDC_START,"Button",0x50010000,6,155,54,15 - CONTROL "Stopp",IDC_STOP,"Button",0x50010000,68,155,54,15 - CONTROL "Pause",IDC_PAUSE,"Button",0x50010000,130,155,54,15 - CONTROL "Fortsetzen",IDC_RESUME,"Button",0x50010000,192,155,54,15 - CONTROL "Sie kцnnen die Startparameter festlegen, die verwendet werden, wenn Sie den Dienst von hier aus starten.",IDC_STATIC,"Static",0x50000000,6,177,240,15 - CONTROL "Startparameter",IDC_STATIC,"Static",0x50000000,6,199,53,11 - CONTROL "",IDC_START_PARAM,"Static",0x50001000,70,199,176,11 -END - -IDB_BUTTONS BITMAP "buttons.bmp" - -STRINGTABLE DISCARDABLE -BEGIN - IDS_FIRSTCOLUMN "Name" - IDS_SECONDCOLUMN "Beschreibung" - IDS_THIRDCOLUMN "Status" - IDS_FOURTHCOLUMN "Starttyp" - IDS_FITHCOLUMN "Anmelden als" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_SERVICES_STATUS_RUNNING "Gestartet" - IDS_SERVICES_STATUS_STOPPED "Gestoppt" - IDS_SERVICES_YES "Ja" - IDS_SERVICES_UNKNOWN "Unbekannt" - IDS_SERVICES_AUTO "Automatisch" - IDS_SERVICES_MAN "Manuell" - IDS_SERVICES_DIS "Deaktiviert" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_SERVICES_NUM_SERVICES "Dienste: %d" - IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA." - /*"This program is free software; you can redistribute it " - "and/or modify it under the terms of the GNU Lesser General " - "Public License as published by the Free Software Foundation; " - "either version 2.1 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., 59 Temple Place - Suite " - "330, Boston, MA 02111-1307, USA." */ - -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_TOOLTIP_PROP "Eigenschaften" - IDS_TOOLTIP_REFRESH "Aktualisieren" - IDS_TOOLTIP_EXPORT "Liste exportieren" - IDS_TOOLTIP_START "Dienst starten" - IDS_TOOLTIP_STOP "Dienst beenden" - IDS_TOOLTIP_PAUSE "Diest pausieren" - IDS_TOOLTIP_RESTART "Diest neustarten" -END +LANGUAGE LANG_GERMAN, SUBLANG_GERMAN + +IDR_MAINMENU MENU +BEGIN + POPUP "&Datei" + BEGIN + MENUITEM "B&eenden",ID_FILE_EXIT + END + POPUP "Action" + BEGIN + MENUITEM "Start",ID_START + MENUITEM "Stopp",ID_STOP + MENUITEM "Pause",ID_PAUSE + MENUITEM "Fortsetzen",ID_RESUME + MENUITEM "Neustart",ID_RESTART + MENUITEM SEPARATOR + MENUITEM "Aktualisieren",ID_REFRESH + MENUITEM SEPARATOR + MENUITEM "Eigenschaften",ID_PROP + END + POPUP "Ansicht" + BEGIN + MENUITEM "Anpassen",ID_VIEW_CUSTOMIZE + END + POPUP "Hilfe" + BEGIN + MENUITEM "Info",ID_HELP_ABOUT + END +END + +IDD_ABOUTBOX DIALOG DISCARDABLE 22,16,190,182 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +CAPTION "Ьber den Service Manager" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "Service Manager v0.1\nCopyright (C) 2006\nby Ged Murphy (gedmurphy@gmail.com)", + IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,48,7,130,26 + DEFPUSHBUTTON "SchlieЯen",IDOK,140,162,44,15,WS_GROUP + ICON IDI_SM_ICON,IDC_STATIC,12,7,30,20 + EDITTEXT IDC_LICENSE_EDIT,8,44,174,107,ES_MULTILINE | + ES_READONLY | WS_VSCROLL +END + + +IDD_DLG_GENERAL DIALOGEX 6,6,253,225 +CAPTION "Allgemein" +FONT 8, "MS Shell Dlg",0,0 +STYLE 0x10CF0000 +BEGIN + CONTROL "Dienstname:",IDC_STATIC,"Static",0x50000000,4,11,53,11 + CONTROL "Anzeigename:",IDC_STATIC,"Static",0x50000000,4,29,53,11 + CONTROL "Beschreibung",IDC_STATIC,"Static",0x50000000,4,51,53,11 + CONTROL "",IDC_SERV_NAME,"Static",0x50000000,70,11,176,11 + CONTROL "",IDC_DISP_NAME,"Static",0x50001000,70,29,176,12 + CONTROL "",IDC_DESCRIPTION,"Static",0x50201000,70,46,176,22 + CONTROL "Pfad zum ausfьhrbarem Programm:",IDC_STATIC,"Static",0x50000000,6,73,150,9 + CONTROL "",IDC_STATIC,"Static",0x50001000,6,86,238,12 + CONTROL "Starttyp:",IDC_STATIC,"Static",0x50000000,6,108,53,11 + CONTROL "",IDC_START_TYPE,"ComboBox",0x50010003,70,107,176,11 + CONTROL "Status des Dienstes:",IDC_STATIC,"Static",0x50000000,4,138,100,11 + CONTROL "",IDC_SERV_STATUS,"Static",0x50000000,70,138,176,11 + CONTROL "Start",IDC_START,"Button",0x50010000,6,155,54,15 + CONTROL "Stopp",IDC_STOP,"Button",0x50010000,68,155,54,15 + CONTROL "Pause",IDC_PAUSE,"Button",0x50010000,130,155,54,15 + CONTROL "Fortsetzen",IDC_RESUME,"Button",0x50010000,192,155,54,15 + CONTROL "Sie kцnnen die Startparameter festlegen, die verwendet werden, wenn Sie den Dienst von hier aus starten.",IDC_STATIC,"Static",0x50000000,6,177,240,15 + CONTROL "Startparameter",IDC_STATIC,"Static",0x50000000,6,199,53,11 + CONTROL "",IDC_START_PARAM,"Static",0x50001000,70,199,176,11 +END + +IDB_BUTTONS BITMAP "buttons.bmp" + +STRINGTABLE DISCARDABLE +BEGIN + IDS_FIRSTCOLUMN "Name" + IDS_SECONDCOLUMN "Beschreibung" + IDS_THIRDCOLUMN "Status" + IDS_FOURTHCOLUMN "Starttyp" + IDS_FITHCOLUMN "Anmelden als" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_SERVICES_STATUS_RUNNING "Gestartet" + IDS_SERVICES_STATUS_STOPPED "Gestoppt" + IDS_SERVICES_YES "Ja" + IDS_SERVICES_UNKNOWN "Unbekannt" + IDS_SERVICES_AUTO "Automatisch" + IDS_SERVICES_MAN "Manuell" + IDS_SERVICES_DIS "Deaktiviert" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_SERVICES_NUM_SERVICES "Dienste: %d" + IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA." + /*"This program is free software; you can redistribute it " + "and/or modify it under the terms of the GNU Lesser General " + "Public License as published by the Free Software Foundation; " + "either version 2.1 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., 59 Temple Place - Suite " + "330, Boston, MA 02111-1307, USA." */ + +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_TOOLTIP_PROP "Eigenschaften" + IDS_TOOLTIP_REFRESH "Aktualisieren" + IDS_TOOLTIP_EXPORT "Liste exportieren" + IDS_TOOLTIP_START "Dienst starten" + IDS_TOOLTIP_STOP "Dienst beenden" + IDS_TOOLTIP_PAUSE "Diest pausieren" + IDS_TOOLTIP_RESTART "Diest neustarten" +END diff --git a/reactos/base/applications/servman/En.rc b/reactos/base/applications/servman/En.rc index fc6b6d1f1c8..8d846619678 100644 --- a/reactos/base/applications/servman/En.rc +++ b/reactos/base/applications/servman/En.rc @@ -1,280 +1,280 @@ -IDR_MAINMENU MENU -BEGIN - POPUP "&File" - BEGIN - MENUITEM "Export...", ID_EXPORT - MENUITEM SEPARATOR - MENUITEM "E&xit", ID_EXIT - END - POPUP "Action" - BEGIN - MENUITEM "Connect to...", ID_CONNECT, GRAYED - MENUITEM SEPARATOR - MENUITEM "Start", ID_START, GRAYED - MENUITEM "Stop", ID_STOP, GRAYED - MENUITEM "Pause", ID_PAUSE, GRAYED - MENUITEM "Resume", ID_RESUME, GRAYED - MENUITEM "Restart", ID_RESTART, GRAYED - MENUITEM SEPARATOR - MENUITEM "Refresh", ID_REFRESH - MENUITEM SEPARATOR - MENUITEM "Edit...", ID_EDIT, GRAYED - MENUITEM "Create...", ID_CREATE - MENUITEM "Delete...", ID_DELETE, GRAYED - MENUITEM SEPARATOR - MENUITEM "Properties...", ID_PROP, GRAYED - END - POPUP "View" - BEGIN - MENUITEM "Large Icons", ID_VIEW_LARGE - MENUITEM "Small Icons", ID_VIEW_SMALL - MENUITEM "List", ID_VIEW_LIST - MENUITEM "Details", ID_VIEW_DETAILS - MENUITEM SEPARATOR - MENUITEM "Customize...",ID_VIEW_CUST, GRAYED - END - POPUP "Help" - BEGIN - MENUITEM "Help", ID_HELP - MENUITEM "About", ID_ABOUT - END -END - -IDR_POPUP MENU -BEGIN - POPUP "popup" - BEGIN - MENUITEM "Start", ID_START, GRAYED - MENUITEM "Stop", ID_STOP, GRAYED - MENUITEM "Pause", ID_PAUSE, GRAYED - MENUITEM "Resume", ID_RESUME, GRAYED - MENUITEM "Restart", ID_RESTART, GRAYED - MENUITEM SEPARATOR - MENUITEM "Refresh", ID_REFRESH - MENUITEM SEPARATOR - MENUITEM "Edit...", ID_EDIT, GRAYED - MENUITEM "Delete...", ID_DELETE, GRAYED - MENUITEM SEPARATOR - MENUITEM "Properties...", ID_PROP, GRAYED - MENUITEM SEPARATOR - MENUITEM "Help...", ID_HELP - END -END - -IDD_ABOUTBOX DIALOGEX 22,16,190,182 -CAPTION "About Service Manager" -FONT 8, "MS Shell Dlg",0,0 -STYLE WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Service Manager v0.5.1\nCopyright (C) 2005-2006\nby Ged Murphy (gedmurphy@gmail.com)", IDC_STATIC, 48, 7, 130, 26 - PUSHBUTTON "Close", IDOK, 75, 162, 44, 15 - ICON IDI_SM_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 - -IDD_DLG_GENERAL DIALOGEX 6,6,253,225 -CAPTION "General" -FONT 8, "MS Shell Dlg",0,0 -STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP -BEGIN - LTEXT "", IDC_SERV_NAME, 70,11,176,11, WS_CHILD | WS_VISIBLE - EDITTEXT IDC_DISP_NAME, 70, 29, 176, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_READONLY - EDITTEXT IDC_DESCRIPTION, 70, 46, 176, 24, WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_MULTILINE | ES_READONLY - EDITTEXT IDC_EXEPATH, 6, 86, 240, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_READONLY - COMBOBOX IDC_START_TYPE, 70, 107, 176, 40, WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST - PUSHBUTTON "Start", IDC_START, 6, 155, 54, 15, WS_DISABLED - PUSHBUTTON "Stop", IDC_STOP, 68, 155, 54, 15, WS_DISABLED - PUSHBUTTON "Pause", IDC_PAUSE , 130, 155, 54, 15, WS_DISABLED - PUSHBUTTON "Resume", IDC_RESUME, 192, 155, 54, 15, WS_DISABLED - LTEXT "Service name:", IDC_STATIC, 4, 11, 53, 11 - LTEXT "Display name:", IDC_STATIC, 4, 29, 53, 11 - LTEXT "Description:", IDC_STATIC, 4, 51, 53, 11 - LTEXT "Path to executable:", IDC_STATIC, 6, 73, 82, 9 - LTEXT "Startup type:", IDC_STATIC, 6, 108, 53, 11 - LTEXT "Service status:", IDC_STATIC, 4, 138, 53, 11 - LTEXT "", IDC_SERV_STATUS, 70, 138, 176, 11, WS_CHILD | WS_VISIBLE - LTEXT "You can specify the start parameters that apply when you start the service from here.",IDC_STATIC, 6,177,240,15 - LTEXT "Start parameters:", IDC_STATIC, 6, 200, 58, 11 - EDITTEXT IDC_START_PARAM, 68, 199, 178, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP -END - -IDD_DLG_DEPEND DIALOGEX 6,6,253,225 -CAPTION "Dependencies" -FONT 8, "MS Shell Dlg",0,0 -STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP -BEGIN - CONTROL "", IDC_DEPEND_TREE1, "SysTreeView32" ,0x50010007, 8, 70, 236, 68, 0x00000200 - CONTROL "", IDC_DEPEND_TREE2, "SysTreeView32", 0x50010007, 8, 151, 234, 67, 0x00000200 - LTEXT "Some services depend on other services, system drivers and load order groups. If a system component is stopped or it is not running properly, dependant services can be affected.", IDC_STATIC,8, 7, 238, 26 - LTEXT "This service depends on the following components", IDC_STATIC, 8, 57, 236, 9 - LTEXT "", IDC_DEPEND_SERVICE, 8, 38, 236, 13 -END - -IDD_DLG_CREATE DIALOGEX 6,6,225,209 -CAPTION "Create a service" -FONT 8, "MS Shell Dlg",0,0 -STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP -BEGIN - EDITTEXT IDC_CREATE_SERVNAME, 72, 12, 150, 11, WS_CHILD | WS_VISIBLE | WS_EX_CLIENTEDGE - EDITTEXT IDC_CREATE_DISPNAME, 72, 31, 150, 11, WS_CHILD | WS_VISIBLE - EDITTEXT IDC_CREATE_PATH, 8, 62, 214, 13, WS_CHILD | WS_VISIBLE - EDITTEXT IDC_CREATE_DESC, 10, 97, 210, 48, WS_CHILD | WS_VISIBLE - EDITTEXT IDC_CREATE_OPTIONS, 10, 162, 210, 13, WS_CHILD | WS_VISIBLE - LTEXT "*Service Name :", IDC_STATIC, 12, 12, 54, 9 - LTEXT "*Display Name :", IDC_STATIC, 12, 33, 54, 9 - LTEXT "*Path to executable :", IDC_STATIC, 10, 51, 68, 9 - LTEXT "Description :", IDC_STATIC, 12, 86, 44, 9 - PUSHBUTTON "OK", IDOK, 126, 192, 44, 13 - PUSHBUTTON "Cancel", IDCANCEL, 176, 192, 46, 13 - LTEXT "Additional options (click help for details)", IDC_STATIC, 10, 151, 134, 9 - PUSHBUTTON "Help", ID_CREATE_HELP, 6, 192, 44, 13 -END - -IDD_DLG_DELETE DIALOGEX 6,6,185,148 -CAPTION "Delete a service" -FONT 8, "MS Shell Dlg",0,0 -STYLE WS_BORDER | WS_DLGFRAME | DS_MODALFRAME -BEGIN - ICON IDI_WARNING, IDC_STATIC, 10, 8, 24, 22 - LTEXT "Are you sure you want to delete the following service? This cannot be undone once removed!", IDC_STATIC, 50, 6, 125, 25 - LTEXT "Service Name:",IDC_STATIC, 6, 40, 80, 9 - LTEXT "", IDC_DEL_NAME, 15, 53, 160, 15 - EDITTEXT IDC_DEL_DESC, 6, 73, 174, 48, WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_EX_STATICEDGE | ES_MULTILINE | ES_READONLY - PUSHBUTTON "Yes", IDOK, 26, 129, 54, 13 - PUSHBUTTON "No", IDCANCEL, 102, 129, 54, 13 -END - -IDD_DLG_HELP_OPTIONS DIALOGEX 6,6,200,150 -CAPTION "Options" -FONT 8, "MS Shell Dlg",0,0 -STYLE 0x10CF0000 -BEGIN - LTEXT "", IDC_CREATE_HELP, 6, 5, 200, 150 - PUSHBUTTON "Ok", IDOK, 75, 130, 44, 13 -END - -IDD_DLG_PROGRESS DIALOGEX 6,6,255,89 -CAPTION "Service Control" -FONT 8, "MS Shell Dlg",0,0 -STYLE WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -EXSTYLE WS_EX_TOOLWINDOW -BEGIN - CONTROL "", IDC_SERVCON_PROGRESS, "msctls_progress32", 0x50000000, 8, 46, 238, 13 - LTEXT "", IDC_SERVCON_INFO, 8, 5, 236, 11 - LTEXT "", IDC_SERVCON_NAME, 8, 25, 66, 11 - PUSHBUTTON "&Close", IDOK, 100, 70, 54, 13 -END - - - -STRINGTABLE DISCARDABLE -BEGIN - IDS_FIRSTCOLUMN "Name" - IDS_SECONDCOLUMN "Description" - IDS_THIRDCOLUMN "Status" - IDS_FOURTHCOLUMN "Startup Type" - IDS_FITHCOLUMN "Log On As" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_SERVICES_STARTED "Started" - IDS_SERVICES_STOPPED "Stopped" - IDS_SERVICES_AUTO "Automatic" - IDS_SERVICES_MAN "Manual" - IDS_SERVICES_DIS "Disabled" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_NUM_SERVICES "Num Services: %d" - 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_EXPORT "Export list" - IDS_TOOLTIP_CREATE "Create a new service" - IDS_TOOLTIP_DELETE "Deletes an existing service" - IDS_TOOLTIP_START "Start service" - IDS_TOOLTIP_STOP "Stop service" - IDS_TOOLTIP_PAUSE "Pause service" - IDS_TOOLTIP_RESTART "Restart service" - IDS_TOOLTIP_HELP "Help" - IDS_TOOLTIP_EXIT "Exit" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_PROGRESS_INFO_START "ReactOS is attempting to start the following service" - IDS_PROGRESS_INFO_STOP "ReactOS is attempting to stop the following service" - IDS_CREATE_SUCCESS "Service Created Succesfully" - IDS_CREATE_REQ "Fields marked with an\nasterix are mandatory" - IDS_DELETE_STOP "You must manually stop the service before deleting!" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_HELP_OPTIONS "CREATE OPTIONS:\r\nNOTE: The option name includes the equal sign.\r\n type= \r\n (default = own)\r\n start= \r\n (default = demand) \r\n error= \r\n (default = normal)\r\n group= \r\n tag= \r\n depend= \r\n obj= \r\n (default = LocalSystem)\r\n password= \r\n" -END -#define IDS_HINT_BLANK 20000 -#define IDS_HINT_EXPORT 20001 -#define IDS_HINT_EXIT 20002 - -#define IDS_HINT_CONNECT 20011 -#define IDS_HINT_START 20012 -#define IDS_HINT_STOP 21013 -#define IDS_HINT_PAUSE 21014 -#define IDS_HINT_RESUME 20015 -#define IDS_HINT_RESTART 20016 -#define IDS_HINT_REFRESH 20017 -#define IDS_HINT_EDIT 20018 -#define IDS_HINT_CREATE 20019 -#define IDS_HINT_DELETE 20020 -#define IDS_HINT_PROP 20021 - -#define IDS_HINT_LARGE 20030 -#define IDS_HINT_SMALL 20031 -#define IDS_HINT_LIST 20032 -#define IDS_HINT_DETAILS 20033 -#define IDS_HINT_CUST 20034 - -#define IDS_HINT_HELP 20040 -#define IDS_HINT_ABOUT 20041 -/* Hints */ -STRINGTABLE DISCARDABLE -BEGIN - IDS_HINT_BLANK " " - IDS_HINT_EXPORT " Exports the current list to a file." - IDS_HINT_EXIT " Exits the program." - - IDS_HINT_CONNECT " Manage a different computer." - IDS_HINT_START " Start the selected service." - IDS_HINT_STOP " Stop the selected service." - IDS_HINT_PAUSE " Pause the selected service." - IDS_HINT_RESUME " Resume the selected service." - IDS_HINT_RESTART " Stop and start the selected service." - IDS_HINT_REFRESH " Refresh the service list." - IDS_HINT_EDIT " Edit the properties of the selected service." - IDS_HINT_CREATE " Create a new service." - IDS_HINT_DELETE " Delete the selected service." - IDS_HINT_PROP " Open property sheet for the current selection." - - IDS_HINT_LARGE " Display items by using large icons." - IDS_HINT_SMALL " Display items by using small icons." - IDS_HINT_LIST " Display item in a list." - IDS_HINT_DETAILS " Display information about each item in a window." - IDS_HINT_CUST " Customizes the view." - - IDS_HINT_HELP " Display help window." - IDS_HINT_ABOUT " About ReactOS Service 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 +IDR_MAINMENU MENU +BEGIN + POPUP "&File" + BEGIN + MENUITEM "Export...", ID_EXPORT + MENUITEM SEPARATOR + MENUITEM "E&xit", ID_EXIT + END + POPUP "Action" + BEGIN + MENUITEM "Connect to...", ID_CONNECT, GRAYED + MENUITEM SEPARATOR + MENUITEM "Start", ID_START, GRAYED + MENUITEM "Stop", ID_STOP, GRAYED + MENUITEM "Pause", ID_PAUSE, GRAYED + MENUITEM "Resume", ID_RESUME, GRAYED + MENUITEM "Restart", ID_RESTART, GRAYED + MENUITEM SEPARATOR + MENUITEM "Refresh", ID_REFRESH + MENUITEM SEPARATOR + MENUITEM "Edit...", ID_EDIT, GRAYED + MENUITEM "Create...", ID_CREATE + MENUITEM "Delete...", ID_DELETE, GRAYED + MENUITEM SEPARATOR + MENUITEM "Properties...", ID_PROP, GRAYED + END + POPUP "View" + BEGIN + MENUITEM "Large Icons", ID_VIEW_LARGE + MENUITEM "Small Icons", ID_VIEW_SMALL + MENUITEM "List", ID_VIEW_LIST + MENUITEM "Details", ID_VIEW_DETAILS + MENUITEM SEPARATOR + MENUITEM "Customize...",ID_VIEW_CUST, GRAYED + END + POPUP "Help" + BEGIN + MENUITEM "Help", ID_HELP + MENUITEM "About", ID_ABOUT + END +END + +IDR_POPUP MENU +BEGIN + POPUP "popup" + BEGIN + MENUITEM "Start", ID_START, GRAYED + MENUITEM "Stop", ID_STOP, GRAYED + MENUITEM "Pause", ID_PAUSE, GRAYED + MENUITEM "Resume", ID_RESUME, GRAYED + MENUITEM "Restart", ID_RESTART, GRAYED + MENUITEM SEPARATOR + MENUITEM "Refresh", ID_REFRESH + MENUITEM SEPARATOR + MENUITEM "Edit...", ID_EDIT, GRAYED + MENUITEM "Delete...", ID_DELETE, GRAYED + MENUITEM SEPARATOR + MENUITEM "Properties...", ID_PROP, GRAYED + MENUITEM SEPARATOR + MENUITEM "Help...", ID_HELP + END +END + +IDD_ABOUTBOX DIALOGEX 22,16,190,182 +CAPTION "About Service Manager" +FONT 8, "MS Shell Dlg",0,0 +STYLE WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME +BEGIN + LTEXT "Service Manager v0.5.1\nCopyright (C) 2005-2006\nby Ged Murphy (gedmurphy@gmail.com)", IDC_STATIC, 48, 7, 130, 26 + PUSHBUTTON "Close", IDOK, 75, 162, 44, 15 + ICON IDI_SM_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 + +IDD_DLG_GENERAL DIALOGEX 6,6,253,225 +CAPTION "General" +FONT 8, "MS Shell Dlg",0,0 +STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP +BEGIN + LTEXT "", IDC_SERV_NAME, 70,11,176,11, WS_CHILD | WS_VISIBLE + EDITTEXT IDC_DISP_NAME, 70, 29, 176, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_READONLY + EDITTEXT IDC_DESCRIPTION, 70, 46, 176, 24, WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_MULTILINE | ES_READONLY + EDITTEXT IDC_EXEPATH, 6, 86, 240, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_READONLY + COMBOBOX IDC_START_TYPE, 70, 107, 176, 40, WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST + PUSHBUTTON "Start", IDC_START, 6, 155, 54, 15, WS_DISABLED + PUSHBUTTON "Stop", IDC_STOP, 68, 155, 54, 15, WS_DISABLED + PUSHBUTTON "Pause", IDC_PAUSE , 130, 155, 54, 15, WS_DISABLED + PUSHBUTTON "Resume", IDC_RESUME, 192, 155, 54, 15, WS_DISABLED + LTEXT "Service name:", IDC_STATIC, 4, 11, 53, 11 + LTEXT "Display name:", IDC_STATIC, 4, 29, 53, 11 + LTEXT "Description:", IDC_STATIC, 4, 51, 53, 11 + LTEXT "Path to executable:", IDC_STATIC, 6, 73, 82, 9 + LTEXT "Startup type:", IDC_STATIC, 6, 108, 53, 11 + LTEXT "Service status:", IDC_STATIC, 4, 138, 53, 11 + LTEXT "", IDC_SERV_STATUS, 70, 138, 176, 11, WS_CHILD | WS_VISIBLE + LTEXT "You can specify the start parameters that apply when you start the service from here.",IDC_STATIC, 6,177,240,15 + LTEXT "Start parameters:", IDC_STATIC, 6, 200, 58, 11 + EDITTEXT IDC_START_PARAM, 68, 199, 178, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP +END + +IDD_DLG_DEPEND DIALOGEX 6,6,253,225 +CAPTION "Dependencies" +FONT 8, "MS Shell Dlg",0,0 +STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP +BEGIN + CONTROL "", IDC_DEPEND_TREE1, "SysTreeView32" ,0x50010007, 8, 70, 236, 68, 0x00000200 + CONTROL "", IDC_DEPEND_TREE2, "SysTreeView32", 0x50010007, 8, 151, 234, 67, 0x00000200 + LTEXT "Some services depend on other services, system drivers and load order groups. If a system component is stopped or it is not running properly, dependant services can be affected.", IDC_STATIC,8, 7, 238, 26 + LTEXT "This service depends on the following components", IDC_STATIC, 8, 57, 236, 9 + LTEXT "", IDC_DEPEND_SERVICE, 8, 38, 236, 13 +END + +IDD_DLG_CREATE DIALOGEX 6,6,225,209 +CAPTION "Create a service" +FONT 8, "MS Shell Dlg",0,0 +STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP +BEGIN + EDITTEXT IDC_CREATE_SERVNAME, 72, 12, 150, 11, WS_CHILD | WS_VISIBLE | WS_EX_CLIENTEDGE + EDITTEXT IDC_CREATE_DISPNAME, 72, 31, 150, 11, WS_CHILD | WS_VISIBLE + EDITTEXT IDC_CREATE_PATH, 8, 62, 214, 13, WS_CHILD | WS_VISIBLE + EDITTEXT IDC_CREATE_DESC, 10, 97, 210, 48, WS_CHILD | WS_VISIBLE + EDITTEXT IDC_CREATE_OPTIONS, 10, 162, 210, 13, WS_CHILD | WS_VISIBLE + LTEXT "*Service Name :", IDC_STATIC, 12, 12, 54, 9 + LTEXT "*Display Name :", IDC_STATIC, 12, 33, 54, 9 + LTEXT "*Path to executable :", IDC_STATIC, 10, 51, 68, 9 + LTEXT "Description :", IDC_STATIC, 12, 86, 44, 9 + PUSHBUTTON "OK", IDOK, 126, 192, 44, 13 + PUSHBUTTON "Cancel", IDCANCEL, 176, 192, 46, 13 + LTEXT "Additional options (click help for details)", IDC_STATIC, 10, 151, 134, 9 + PUSHBUTTON "Help", ID_CREATE_HELP, 6, 192, 44, 13 +END + +IDD_DLG_DELETE DIALOGEX 6,6,185,148 +CAPTION "Delete a service" +FONT 8, "MS Shell Dlg",0,0 +STYLE WS_BORDER | WS_DLGFRAME | DS_MODALFRAME +BEGIN + ICON IDI_WARNING, IDC_STATIC, 10, 8, 24, 22 + LTEXT "Are you sure you want to delete the following service? This cannot be undone once removed!", IDC_STATIC, 50, 6, 125, 25 + LTEXT "Service Name:",IDC_STATIC, 6, 40, 80, 9 + LTEXT "", IDC_DEL_NAME, 15, 53, 160, 15 + EDITTEXT IDC_DEL_DESC, 6, 73, 174, 48, WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_EX_STATICEDGE | ES_MULTILINE | ES_READONLY + PUSHBUTTON "Yes", IDOK, 26, 129, 54, 13 + PUSHBUTTON "No", IDCANCEL, 102, 129, 54, 13 +END + +IDD_DLG_HELP_OPTIONS DIALOGEX 6,6,200,150 +CAPTION "Options" +FONT 8, "MS Shell Dlg",0,0 +STYLE 0x10CF0000 +BEGIN + LTEXT "", IDC_CREATE_HELP, 6, 5, 200, 150 + PUSHBUTTON "Ok", IDOK, 75, 130, 44, 13 +END + +IDD_DLG_PROGRESS DIALOGEX 6,6,255,89 +CAPTION "Service Control" +FONT 8, "MS Shell Dlg",0,0 +STYLE WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME +EXSTYLE WS_EX_TOOLWINDOW +BEGIN + CONTROL "", IDC_SERVCON_PROGRESS, "msctls_progress32", 0x50000000, 8, 46, 238, 13 + LTEXT "", IDC_SERVCON_INFO, 8, 5, 236, 11 + LTEXT "", IDC_SERVCON_NAME, 8, 25, 66, 11 + PUSHBUTTON "&Close", IDOK, 100, 70, 54, 13 +END + + + +STRINGTABLE DISCARDABLE +BEGIN + IDS_FIRSTCOLUMN "Name" + IDS_SECONDCOLUMN "Description" + IDS_THIRDCOLUMN "Status" + IDS_FOURTHCOLUMN "Startup Type" + IDS_FITHCOLUMN "Log On As" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_SERVICES_STARTED "Started" + IDS_SERVICES_STOPPED "Stopped" + IDS_SERVICES_AUTO "Automatic" + IDS_SERVICES_MAN "Manual" + IDS_SERVICES_DIS "Disabled" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_NUM_SERVICES "Num Services: %d" + 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_EXPORT "Export list" + IDS_TOOLTIP_CREATE "Create a new service" + IDS_TOOLTIP_DELETE "Deletes an existing service" + IDS_TOOLTIP_START "Start service" + IDS_TOOLTIP_STOP "Stop service" + IDS_TOOLTIP_PAUSE "Pause service" + IDS_TOOLTIP_RESTART "Restart service" + IDS_TOOLTIP_HELP "Help" + IDS_TOOLTIP_EXIT "Exit" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_PROGRESS_INFO_START "ReactOS is attempting to start the following service" + IDS_PROGRESS_INFO_STOP "ReactOS is attempting to stop the following service" + IDS_CREATE_SUCCESS "Service Created Succesfully" + IDS_CREATE_REQ "Fields marked with an\nasterix are mandatory" + IDS_DELETE_STOP "You must manually stop the service before deleting!" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_HELP_OPTIONS "CREATE OPTIONS:\r\nNOTE: The option name includes the equal sign.\r\n type= \r\n (default = own)\r\n start= \r\n (default = demand) \r\n error= \r\n (default = normal)\r\n group= \r\n tag= \r\n depend= \r\n obj= \r\n (default = LocalSystem)\r\n password= \r\n" +END +#define IDS_HINT_BLANK 20000 +#define IDS_HINT_EXPORT 20001 +#define IDS_HINT_EXIT 20002 + +#define IDS_HINT_CONNECT 20011 +#define IDS_HINT_START 20012 +#define IDS_HINT_STOP 21013 +#define IDS_HINT_PAUSE 21014 +#define IDS_HINT_RESUME 20015 +#define IDS_HINT_RESTART 20016 +#define IDS_HINT_REFRESH 20017 +#define IDS_HINT_EDIT 20018 +#define IDS_HINT_CREATE 20019 +#define IDS_HINT_DELETE 20020 +#define IDS_HINT_PROP 20021 + +#define IDS_HINT_LARGE 20030 +#define IDS_HINT_SMALL 20031 +#define IDS_HINT_LIST 20032 +#define IDS_HINT_DETAILS 20033 +#define IDS_HINT_CUST 20034 + +#define IDS_HINT_HELP 20040 +#define IDS_HINT_ABOUT 20041 +/* Hints */ +STRINGTABLE DISCARDABLE +BEGIN + IDS_HINT_BLANK " " + IDS_HINT_EXPORT " Exports the current list to a file." + IDS_HINT_EXIT " Exits the program." + + IDS_HINT_CONNECT " Manage a different computer." + IDS_HINT_START " Start the selected service." + IDS_HINT_STOP " Stop the selected service." + IDS_HINT_PAUSE " Pause the selected service." + IDS_HINT_RESUME " Resume the selected service." + IDS_HINT_RESTART " Stop and start the selected service." + IDS_HINT_REFRESH " Refresh the service list." + IDS_HINT_EDIT " Edit the properties of the selected service." + IDS_HINT_CREATE " Create a new service." + IDS_HINT_DELETE " Delete the selected service." + IDS_HINT_PROP " Open property sheet for the current selection." + + IDS_HINT_LARGE " Display items by using large icons." + IDS_HINT_SMALL " Display items by using small icons." + IDS_HINT_LIST " Display item in a list." + IDS_HINT_DETAILS " Display information about each item in a window." + IDS_HINT_CUST " Customizes the view." + + IDS_HINT_HELP " Display help window." + IDS_HINT_ABOUT " About ReactOS Service 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 diff --git a/reactos/base/applications/servman/about.c b/reactos/base/applications/servman/about.c index c71cd853121..3dc51b8a8a7 100644 --- a/reactos/base/applications/servman/about.c +++ b/reactos/base/applications/servman/about.c @@ -1,62 +1,62 @@ -/* - * PROJECT: ReactOS Services - * LICENSE: GPL - See COPYING in the top level directory - * FILE: base/system/servman/about.c - * PURPOSE: About dialog box message handler - * COPYRIGHT: Copyright 2005 - 2006 Ged Murphy - * - */ - -#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 = LoadImage(hInstance, - MAKEINTRESOURCE(IDI_SM_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; -} +/* + * PROJECT: ReactOS Services + * LICENSE: GPL - See COPYING in the top level directory + * FILE: base/system/servman/about.c + * PURPOSE: About dialog box message handler + * COPYRIGHT: Copyright 2005 - 2006 Ged Murphy + * + */ + +#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 = LoadImage(hInstance, + MAKEINTRESOURCE(IDI_SM_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; +} diff --git a/reactos/base/applications/servman/control.c b/reactos/base/applications/servman/control.c index e61d69ab9f5..af5c6c2539f 100644 --- a/reactos/base/applications/servman/control.c +++ b/reactos/base/applications/servman/control.c @@ -1,157 +1,157 @@ -/* - * PROJECT: ReactOS Services - * LICENSE: GPL - See COPYING in the top level directory - * FILE: base/system/servman/control - * PURPOSE: Stops, pauses and resumes a service - * COPYRIGHT: Copyright 2005 - 2006 Ged Murphy - * - */ - -#include "precomp.h" - -BOOL -Control(PMAIN_WND_INFO Info, - DWORD Control) -{ - HWND hProgBar; - SC_HANDLE hSCManager; - SC_HANDLE hSc; - SERVICE_STATUS_PROCESS ServiceStatus; - SERVICE_STATUS Status; - LVITEM item; - DWORD BytesNeeded = 0; - DWORD dwStartTickCount, dwOldCheckPoint; - - item.mask = LVIF_PARAM; - item.iItem = Info->SelectedItem; - SendMessage(Info->hListView, - LVM_GETITEM, - 0, - (LPARAM)&item); - - /* set the progress bar range and step */ - hProgBar = GetDlgItem(Info->hProgDlg, - IDC_SERVCON_PROGRESS); - SendMessage(hProgBar, - PBM_SETRANGE, - 0, - MAKELPARAM(0, PROGRESSRANGE)); - - SendMessage(hProgBar, - PBM_SETSTEP, - (WPARAM)1, - 0); - - /* open handle to the SCM */ - hSCManager = OpenSCManager(NULL, - NULL, - SC_MANAGER_ALL_ACCESS); - if (hSCManager == NULL) - { - GetError(); - return FALSE; - } - - /* open handle to the service */ - hSc = OpenService(hSCManager, - Info->CurrentService->lpServiceName, - SC_MANAGER_ALL_ACCESS); - if (hSc == NULL) - { - GetError(); - return FALSE; - } - - /* process requested action */ - if (! ControlService(hSc, - Control, - &Status)) - { - GetError(); - CloseServiceHandle(hSc); - return FALSE; - } - - /* query the state of the service */ - if (! QueryServiceStatusEx(hSc, - SC_STATUS_PROCESS_INFO, - (LPBYTE)&ServiceStatus, - sizeof(SERVICE_STATUS_PROCESS), - &BytesNeeded)) - { - GetError(); - return FALSE; - } - - /* Save the tick count and initial checkpoint. */ - dwStartTickCount = GetTickCount(); - dwOldCheckPoint = ServiceStatus.dwCheckPoint; - - /* loop whilst service is not running */ - /* FIXME: needs more control adding. 'Loop' is temparary */ - while (ServiceStatus.dwCurrentState != Control) - { - DWORD dwWaitTime; - - dwWaitTime = ServiceStatus.dwWaitHint / 10; - - if (dwWaitTime < 500) - dwWaitTime = 500; - else if (dwWaitTime > 5000) - dwWaitTime = 5000; - - /* increment the progress bar */ - SendMessage(hProgBar, - PBM_STEPIT, - 0, - 0); - - /* wait before checking status */ - Sleep(dwWaitTime); - - /* check status again */ - if (! QueryServiceStatusEx(hSc, - SC_STATUS_PROCESS_INFO, - (LPBYTE)&ServiceStatus, - sizeof(SERVICE_STATUS_PROCESS), - &BytesNeeded)) - { - GetError(); - return FALSE; - } - - if (ServiceStatus.dwCheckPoint > dwOldCheckPoint) - { - /* The service is making progress. increment the progress bar */ - SendMessage(hProgBar, - PBM_STEPIT, - 0, - 0); - dwStartTickCount = GetTickCount(); - dwOldCheckPoint = ServiceStatus.dwCheckPoint; - } - else - { - if(GetTickCount() - dwStartTickCount > ServiceStatus.dwWaitHint) - { - /* No progress made within the wait hint */ - break; - } - } - } - - CloseServiceHandle(hSc); - - if (ServiceStatus.dwCurrentState == Control) - { - SendMessage(hProgBar, - PBM_DELTAPOS, - PROGRESSRANGE, - 0); - Sleep(1000); - return TRUE; - } - else - return FALSE; - -} +/* + * PROJECT: ReactOS Services + * LICENSE: GPL - See COPYING in the top level directory + * FILE: base/system/servman/control + * PURPOSE: Stops, pauses and resumes a service + * COPYRIGHT: Copyright 2005 - 2006 Ged Murphy + * + */ + +#include "precomp.h" + +BOOL +Control(PMAIN_WND_INFO Info, + DWORD Control) +{ + HWND hProgBar; + SC_HANDLE hSCManager; + SC_HANDLE hSc; + SERVICE_STATUS_PROCESS ServiceStatus; + SERVICE_STATUS Status; + LVITEM item; + DWORD BytesNeeded = 0; + DWORD dwStartTickCount, dwOldCheckPoint; + + item.mask = LVIF_PARAM; + item.iItem = Info->SelectedItem; + SendMessage(Info->hListView, + LVM_GETITEM, + 0, + (LPARAM)&item); + + /* set the progress bar range and step */ + hProgBar = GetDlgItem(Info->hProgDlg, + IDC_SERVCON_PROGRESS); + SendMessage(hProgBar, + PBM_SETRANGE, + 0, + MAKELPARAM(0, PROGRESSRANGE)); + + SendMessage(hProgBar, + PBM_SETSTEP, + (WPARAM)1, + 0); + + /* open handle to the SCM */ + hSCManager = OpenSCManager(NULL, + NULL, + SC_MANAGER_ALL_ACCESS); + if (hSCManager == NULL) + { + GetError(); + return FALSE; + } + + /* open handle to the service */ + hSc = OpenService(hSCManager, + Info->CurrentService->lpServiceName, + SC_MANAGER_ALL_ACCESS); + if (hSc == NULL) + { + GetError(); + return FALSE; + } + + /* process requested action */ + if (! ControlService(hSc, + Control, + &Status)) + { + GetError(); + CloseServiceHandle(hSc); + return FALSE; + } + + /* query the state of the service */ + if (! QueryServiceStatusEx(hSc, + SC_STATUS_PROCESS_INFO, + (LPBYTE)&ServiceStatus, + sizeof(SERVICE_STATUS_PROCESS), + &BytesNeeded)) + { + GetError(); + return FALSE; + } + + /* Save the tick count and initial checkpoint. */ + dwStartTickCount = GetTickCount(); + dwOldCheckPoint = ServiceStatus.dwCheckPoint; + + /* loop whilst service is not running */ + /* FIXME: needs more control adding. 'Loop' is temparary */ + while (ServiceStatus.dwCurrentState != Control) + { + DWORD dwWaitTime; + + dwWaitTime = ServiceStatus.dwWaitHint / 10; + + if (dwWaitTime < 500) + dwWaitTime = 500; + else if (dwWaitTime > 5000) + dwWaitTime = 5000; + + /* increment the progress bar */ + SendMessage(hProgBar, + PBM_STEPIT, + 0, + 0); + + /* wait before checking status */ + Sleep(dwWaitTime); + + /* check status again */ + if (! QueryServiceStatusEx(hSc, + SC_STATUS_PROCESS_INFO, + (LPBYTE)&ServiceStatus, + sizeof(SERVICE_STATUS_PROCESS), + &BytesNeeded)) + { + GetError(); + return FALSE; + } + + if (ServiceStatus.dwCheckPoint > dwOldCheckPoint) + { + /* The service is making progress. increment the progress bar */ + SendMessage(hProgBar, + PBM_STEPIT, + 0, + 0); + dwStartTickCount = GetTickCount(); + dwOldCheckPoint = ServiceStatus.dwCheckPoint; + } + else + { + if(GetTickCount() - dwStartTickCount > ServiceStatus.dwWaitHint) + { + /* No progress made within the wait hint */ + break; + } + } + } + + CloseServiceHandle(hSc); + + if (ServiceStatus.dwCurrentState == Control) + { + SendMessage(hProgBar, + PBM_DELTAPOS, + PROGRESSRANGE, + 0); + Sleep(1000); + return TRUE; + } + else + return FALSE; + +} diff --git a/reactos/base/applications/servman/create.c b/reactos/base/applications/servman/create.c index ec9d2c57bdc..8bb43b76bb8 100644 --- a/reactos/base/applications/servman/create.c +++ b/reactos/base/applications/servman/create.c @@ -1,401 +1,401 @@ -/* - * PROJECT: ReactOS Services - * LICENSE: GPL - See COPYING in the top level directory - * FILE: base/system/servman/create.c - * PURPOSE: Create a new service - * COPYRIGHT: Copyright 2006 Ged Murphy - * - */ - -#include "precomp.h" - -typedef struct _CREATE_DATA -{ - HWND hSelf; - LPTSTR ServiceName; - LPTSTR DisplayName; - LPTSTR BinPath; - LPTSTR Description; - LPTSTR Options; - -} CREATE_DATA, *PCREATE_DATA; - -static BOOL bHelpOpen = FALSE; - -static BOOL -DoCreate(PCREATE_DATA Data) -{ - SC_HANDLE hSCManager; - SC_HANDLE hSc; - TCHAR Buf[32]; - - /* open handle to the SCM */ - hSCManager = OpenSCManager(NULL, - NULL, - SC_MANAGER_ALL_ACCESS); - if (hSCManager == NULL) - { - GetError(); - return FALSE; - } - - hSc = CreateService(hSCManager, - Data->ServiceName, - Data->DisplayName, - SERVICE_ALL_ACCESS, - SERVICE_WIN32_OWN_PROCESS, - SERVICE_DEMAND_START, - SERVICE_ERROR_NORMAL, - Data->BinPath, - NULL, - NULL, - NULL, - NULL, - NULL); - - if (hSc == NULL) - { - GetError(); - CloseServiceHandle(hSCManager); - return FALSE; - } - - /* Set the service description in the registry - * CreateService does not do this for us */ - SetDescription(Data->ServiceName, - Data->Description); - - /* report success to user */ - LoadString(hInstance, - IDS_CREATE_SUCCESS, - Buf, - sizeof(Buf) / sizeof(TCHAR)); - DisplayString(Buf); - - CloseServiceHandle(hSCManager); - CloseServiceHandle(hSc); - - return TRUE; -} - - -static BOOL -GetDataFromDialog(PCREATE_DATA Data) -{ - HWND hwnd; - TCHAR Buf[64]; - INT iLen = 0; - - /* get service name */ - hwnd = GetDlgItem(Data->hSelf, - IDC_CREATE_SERVNAME); - iLen = GetWindowTextLength(hwnd); - if (iLen != 0) - { - Data->ServiceName = HeapAlloc(ProcessHeap, - 0, - (iLen+1) * sizeof(TCHAR)); - if (Data->ServiceName != NULL) - { - GetWindowText(hwnd, - Data->ServiceName, - iLen+1); - } - else - return FALSE; - } - else - { - LoadString(hInstance, - IDS_CREATE_REQ, - Buf, - sizeof(Buf)); - DisplayString(Buf); - SetFocus(hwnd); - return FALSE; - } - - /* get display name */ - iLen = 0; - hwnd = GetDlgItem(Data->hSelf, - IDC_CREATE_DISPNAME); - iLen = GetWindowTextLength(hwnd); - if (iLen != 0) - { - Data->DisplayName = HeapAlloc(ProcessHeap, - 0, - (iLen+1) * sizeof(TCHAR)); - if (Data->DisplayName != NULL) - { - GetWindowText(hwnd, - Data->DisplayName, - iLen+1); - } - else - return FALSE; - } - else - { - LoadString(hInstance, - IDS_CREATE_REQ, - Buf, - sizeof(Buf)); - DisplayString(Buf); - SetFocus(hwnd); - return FALSE; - } - - /* get binary path */ - iLen = 0; - hwnd = GetDlgItem(Data->hSelf, - IDC_CREATE_PATH); - iLen = GetWindowTextLength(hwnd); - if (iLen != 0) - { - Data->BinPath = HeapAlloc(ProcessHeap, - 0, - (iLen+1) * sizeof(TCHAR)); - if (Data->BinPath != NULL) - { - GetWindowText(hwnd, - Data->BinPath, - iLen+1); - } - else - return FALSE; - } - else - { - LoadString(hInstance, - IDS_CREATE_REQ, - Buf, - sizeof(Buf)); - DisplayString(Buf); - SetFocus(hwnd); - return FALSE; - } - - /* get description */ - iLen = 0; - hwnd = GetDlgItem(Data->hSelf, - IDC_CREATE_DESC); - iLen = GetWindowTextLength(hwnd); - if (iLen != 0) - { - Data->Description = HeapAlloc(ProcessHeap, - 0, - (iLen+1) * sizeof(TCHAR)); - if (Data->Description != NULL) - { - GetWindowText(hwnd, - Data->Description, - iLen+1); - } - else - return FALSE; - } - - - /* get options */ - iLen = 0; - hwnd = GetDlgItem(Data->hSelf, - IDC_CREATE_PATH); - iLen = GetWindowTextLength(hwnd); - if (iLen != 0) - { - Data->Options = HeapAlloc(ProcessHeap, - 0, - (iLen+1) * sizeof(TCHAR)); - if (Data->Options != NULL) - { - GetWindowText(hwnd, - Data->Options, - iLen+1); - } - else - return FALSE; - } - - return TRUE; -} - -static VOID -FreeMemory(PCREATE_DATA Data) -{ - if (Data->ServiceName != NULL) - HeapFree(ProcessHeap, - 0, - Data->ServiceName); - if (Data->DisplayName != NULL) - HeapFree(ProcessHeap, - 0, - Data->DisplayName); - if (Data->BinPath != NULL) - HeapFree(ProcessHeap, - 0, - Data->BinPath); - if (Data->Description != NULL) - HeapFree(ProcessHeap, - 0, - Data->Description); - if (Data->Options != NULL) - HeapFree(ProcessHeap, - 0, - Data->Options); - - HeapFree(ProcessHeap, - 0, - Data); -} - - -BOOL CALLBACK -CreateHelpDialogProc(HWND hDlg, - UINT message, - WPARAM wParam, - LPARAM lParam) -{ - HWND hHelp; - HICON hIcon = NULL; - TCHAR Buf[1000]; - - switch (message) - { - case WM_INITDIALOG: - { - hIcon = LoadImage(hInstance, - MAKEINTRESOURCE(IDI_SM_ICON), - IMAGE_ICON, - 16, - 16, - 0); - - SendMessage(hDlg, - WM_SETICON, - ICON_SMALL, - (LPARAM)hIcon); - - hHelp = GetDlgItem(hDlg, - IDC_CREATE_HELP); - - LoadString(hInstance, - IDS_HELP_OPTIONS, - Buf, - sizeof(Buf) / sizeof(TCHAR)); - - SetWindowText(hHelp, - Buf); - - return TRUE; - } - - case WM_COMMAND: - { - if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL)) - { - bHelpOpen = FALSE; - DestroyIcon(hIcon); - DestroyWindow(hDlg); - return TRUE; - } - break; - } - } - - return FALSE; -} - - -BOOL CALLBACK -CreateDialogProc(HWND hDlg, - UINT message, - WPARAM wParam, - LPARAM lParam) -{ - HICON hIcon = NULL; - - switch (message) - { - case WM_INITDIALOG: - { - hIcon = LoadImage(hInstance, - MAKEINTRESOURCE(IDI_SM_ICON), - IMAGE_ICON, - 16, - 16, - 0); - - SendMessage(hDlg, - WM_SETICON, - ICON_SMALL, - (LPARAM)hIcon); - return TRUE; - } - - case WM_COMMAND: - { - switch (LOWORD(wParam)) - { - case IDOK: - { - PCREATE_DATA Data; - - Data = HeapAlloc(ProcessHeap, - HEAP_ZERO_MEMORY, - sizeof(CREATE_DATA)); - if (Data != NULL) - { - Data->hSelf = hDlg; - - if (GetDataFromDialog(Data)) - { - DoCreate(Data); - } - else - { - /* Something went wrong, leave the dialog - * open so they can try again */ - FreeMemory(Data); - break; - } - - FreeMemory(Data); - } - - DestroyIcon(hIcon); - EndDialog(hDlg, - LOWORD(wParam)); - return TRUE; - } - - case IDCANCEL: - { - DestroyIcon(hIcon); - EndDialog(hDlg, - LOWORD(wParam)); - return TRUE; - } - - case ID_CREATE_HELP: - { - HWND hHelp; - - if (! bHelpOpen) - { - hHelp = CreateDialog(hInstance, - MAKEINTRESOURCE(IDD_DLG_HELP_OPTIONS), - hDlg, - (DLGPROC)CreateHelpDialogProc); - if(hHelp != NULL) - { - bHelpOpen = TRUE; - } - } - } - break; - } - } - } - - return FALSE; -} +/* + * PROJECT: ReactOS Services + * LICENSE: GPL - See COPYING in the top level directory + * FILE: base/system/servman/create.c + * PURPOSE: Create a new service + * COPYRIGHT: Copyright 2006 Ged Murphy + * + */ + +#include "precomp.h" + +typedef struct _CREATE_DATA +{ + HWND hSelf; + LPTSTR ServiceName; + LPTSTR DisplayName; + LPTSTR BinPath; + LPTSTR Description; + LPTSTR Options; + +} CREATE_DATA, *PCREATE_DATA; + +static BOOL bHelpOpen = FALSE; + +static BOOL +DoCreate(PCREATE_DATA Data) +{ + SC_HANDLE hSCManager; + SC_HANDLE hSc; + TCHAR Buf[32]; + + /* open handle to the SCM */ + hSCManager = OpenSCManager(NULL, + NULL, + SC_MANAGER_ALL_ACCESS); + if (hSCManager == NULL) + { + GetError(); + return FALSE; + } + + hSc = CreateService(hSCManager, + Data->ServiceName, + Data->DisplayName, + SERVICE_ALL_ACCESS, + SERVICE_WIN32_OWN_PROCESS, + SERVICE_DEMAND_START, + SERVICE_ERROR_NORMAL, + Data->BinPath, + NULL, + NULL, + NULL, + NULL, + NULL); + + if (hSc == NULL) + { + GetError(); + CloseServiceHandle(hSCManager); + return FALSE; + } + + /* Set the service description in the registry + * CreateService does not do this for us */ + SetDescription(Data->ServiceName, + Data->Description); + + /* report success to user */ + LoadString(hInstance, + IDS_CREATE_SUCCESS, + Buf, + sizeof(Buf) / sizeof(TCHAR)); + DisplayString(Buf); + + CloseServiceHandle(hSCManager); + CloseServiceHandle(hSc); + + return TRUE; +} + + +static BOOL +GetDataFromDialog(PCREATE_DATA Data) +{ + HWND hwnd; + TCHAR Buf[64]; + INT iLen = 0; + + /* get service name */ + hwnd = GetDlgItem(Data->hSelf, + IDC_CREATE_SERVNAME); + iLen = GetWindowTextLength(hwnd); + if (iLen != 0) + { + Data->ServiceName = HeapAlloc(ProcessHeap, + 0, + (iLen+1) * sizeof(TCHAR)); + if (Data->ServiceName != NULL) + { + GetWindowText(hwnd, + Data->ServiceName, + iLen+1); + } + else + return FALSE; + } + else + { + LoadString(hInstance, + IDS_CREATE_REQ, + Buf, + sizeof(Buf)); + DisplayString(Buf); + SetFocus(hwnd); + return FALSE; + } + + /* get display name */ + iLen = 0; + hwnd = GetDlgItem(Data->hSelf, + IDC_CREATE_DISPNAME); + iLen = GetWindowTextLength(hwnd); + if (iLen != 0) + { + Data->DisplayName = HeapAlloc(ProcessHeap, + 0, + (iLen+1) * sizeof(TCHAR)); + if (Data->DisplayName != NULL) + { + GetWindowText(hwnd, + Data->DisplayName, + iLen+1); + } + else + return FALSE; + } + else + { + LoadString(hInstance, + IDS_CREATE_REQ, + Buf, + sizeof(Buf)); + DisplayString(Buf); + SetFocus(hwnd); + return FALSE; + } + + /* get binary path */ + iLen = 0; + hwnd = GetDlgItem(Data->hSelf, + IDC_CREATE_PATH); + iLen = GetWindowTextLength(hwnd); + if (iLen != 0) + { + Data->BinPath = HeapAlloc(ProcessHeap, + 0, + (iLen+1) * sizeof(TCHAR)); + if (Data->BinPath != NULL) + { + GetWindowText(hwnd, + Data->BinPath, + iLen+1); + } + else + return FALSE; + } + else + { + LoadString(hInstance, + IDS_CREATE_REQ, + Buf, + sizeof(Buf)); + DisplayString(Buf); + SetFocus(hwnd); + return FALSE; + } + + /* get description */ + iLen = 0; + hwnd = GetDlgItem(Data->hSelf, + IDC_CREATE_DESC); + iLen = GetWindowTextLength(hwnd); + if (iLen != 0) + { + Data->Description = HeapAlloc(ProcessHeap, + 0, + (iLen+1) * sizeof(TCHAR)); + if (Data->Description != NULL) + { + GetWindowText(hwnd, + Data->Description, + iLen+1); + } + else + return FALSE; + } + + + /* get options */ + iLen = 0; + hwnd = GetDlgItem(Data->hSelf, + IDC_CREATE_PATH); + iLen = GetWindowTextLength(hwnd); + if (iLen != 0) + { + Data->Options = HeapAlloc(ProcessHeap, + 0, + (iLen+1) * sizeof(TCHAR)); + if (Data->Options != NULL) + { + GetWindowText(hwnd, + Data->Options, + iLen+1); + } + else + return FALSE; + } + + return TRUE; +} + +static VOID +FreeMemory(PCREATE_DATA Data) +{ + if (Data->ServiceName != NULL) + HeapFree(ProcessHeap, + 0, + Data->ServiceName); + if (Data->DisplayName != NULL) + HeapFree(ProcessHeap, + 0, + Data->DisplayName); + if (Data->BinPath != NULL) + HeapFree(ProcessHeap, + 0, + Data->BinPath); + if (Data->Description != NULL) + HeapFree(ProcessHeap, + 0, + Data->Description); + if (Data->Options != NULL) + HeapFree(ProcessHeap, + 0, + Data->Options); + + HeapFree(ProcessHeap, + 0, + Data); +} + + +BOOL CALLBACK +CreateHelpDialogProc(HWND hDlg, + UINT message, + WPARAM wParam, + LPARAM lParam) +{ + HWND hHelp; + HICON hIcon = NULL; + TCHAR Buf[1000]; + + switch (message) + { + case WM_INITDIALOG: + { + hIcon = LoadImage(hInstance, + MAKEINTRESOURCE(IDI_SM_ICON), + IMAGE_ICON, + 16, + 16, + 0); + + SendMessage(hDlg, + WM_SETICON, + ICON_SMALL, + (LPARAM)hIcon); + + hHelp = GetDlgItem(hDlg, + IDC_CREATE_HELP); + + LoadString(hInstance, + IDS_HELP_OPTIONS, + Buf, + sizeof(Buf) / sizeof(TCHAR)); + + SetWindowText(hHelp, + Buf); + + return TRUE; + } + + case WM_COMMAND: + { + if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL)) + { + bHelpOpen = FALSE; + DestroyIcon(hIcon); + DestroyWindow(hDlg); + return TRUE; + } + break; + } + } + + return FALSE; +} + + +BOOL CALLBACK +CreateDialogProc(HWND hDlg, + UINT message, + WPARAM wParam, + LPARAM lParam) +{ + HICON hIcon = NULL; + + switch (message) + { + case WM_INITDIALOG: + { + hIcon = LoadImage(hInstance, + MAKEINTRESOURCE(IDI_SM_ICON), + IMAGE_ICON, + 16, + 16, + 0); + + SendMessage(hDlg, + WM_SETICON, + ICON_SMALL, + (LPARAM)hIcon); + return TRUE; + } + + case WM_COMMAND: + { + switch (LOWORD(wParam)) + { + case IDOK: + { + PCREATE_DATA Data; + + Data = HeapAlloc(ProcessHeap, + HEAP_ZERO_MEMORY, + sizeof(CREATE_DATA)); + if (Data != NULL) + { + Data->hSelf = hDlg; + + if (GetDataFromDialog(Data)) + { + DoCreate(Data); + } + else + { + /* Something went wrong, leave the dialog + * open so they can try again */ + FreeMemory(Data); + break; + } + + FreeMemory(Data); + } + + DestroyIcon(hIcon); + EndDialog(hDlg, + LOWORD(wParam)); + return TRUE; + } + + case IDCANCEL: + { + DestroyIcon(hIcon); + EndDialog(hDlg, + LOWORD(wParam)); + return TRUE; + } + + case ID_CREATE_HELP: + { + HWND hHelp; + + if (! bHelpOpen) + { + hHelp = CreateDialog(hInstance, + MAKEINTRESOURCE(IDD_DLG_HELP_OPTIONS), + hDlg, + (DLGPROC)CreateHelpDialogProc); + if(hHelp != NULL) + { + bHelpOpen = TRUE; + } + } + } + break; + } + } + } + + return FALSE; +} diff --git a/reactos/base/applications/servman/delete.c b/reactos/base/applications/servman/delete.c index 10adc338e00..c2fe5a7e1cb 100644 --- a/reactos/base/applications/servman/delete.c +++ b/reactos/base/applications/servman/delete.c @@ -1,142 +1,142 @@ -/* - * PROJECT: ReactOS Services - * LICENSE: GPL - See COPYING in the top level directory - * FILE: base/system/servman/delete.c - * PURPOSE: Delete an existing service - * COPYRIGHT: Copyright 2006 Ged Murphy - * - */ - -#include "precomp.h" - -static BOOL -DoDeleteService(PMAIN_WND_INFO Info, - HWND hDlg) -{ - SC_HANDLE hSCManager; - SC_HANDLE hSc; - - /* open handle to the SCM */ - hSCManager = OpenSCManager(NULL, - NULL, - SC_MANAGER_ALL_ACCESS); - if (hSCManager == NULL) - { - GetError(); - return FALSE; - } - - /* get a handle to the service requested for deleting */ - hSc = OpenService(hSCManager, - Info->CurrentService->lpServiceName, - DELETE); - if (hSc == NULL) - { - GetError(); - CloseServiceHandle(hSCManager); - return FALSE; - } - - /* delete the service opened */ - if (! DeleteService(hSc)) - { - GetError(); - CloseServiceHandle(hSCManager); - CloseServiceHandle(hSc); - return FALSE; - } - - - CloseServiceHandle(hSCManager); - CloseServiceHandle(hSc); - - return TRUE; -} - - -BOOL CALLBACK -DeleteDialogProc(HWND hDlg, - UINT message, - WPARAM wParam, - LPARAM lParam) -{ - PMAIN_WND_INFO Info = NULL; - HICON hIcon = NULL; - TCHAR Buf[1000]; - LVITEM item; - - switch (message) - { - case WM_INITDIALOG: - { - Info = (PMAIN_WND_INFO)lParam; - - hIcon = LoadImage(hInstance, - MAKEINTRESOURCE(IDI_SM_ICON), - IMAGE_ICON, - 16, - 16, - 0); - - SendMessage(hDlg, - WM_SETICON, - ICON_SMALL, - (LPARAM)hIcon); - - SendDlgItemMessage(hDlg, - IDC_DEL_NAME, - WM_SETTEXT, - 0, - (LPARAM)Info->CurrentService->lpDisplayName); - - - item.mask = LVIF_TEXT; - item.iItem = Info->SelectedItem; - item.iSubItem = 1; - item.pszText = Buf; - item.cchTextMax = sizeof(Buf); - SendMessage(Info->hListView, - LVM_GETITEM, - 0, - (LPARAM)&item); - - SendDlgItemMessage(hDlg, - IDC_DEL_DESC, - WM_SETTEXT, - 0, - (LPARAM)Buf); - - SetFocus(GetDlgItem(hDlg, IDCANCEL)); - - return TRUE; - } - - case WM_COMMAND: - { - switch (LOWORD(wParam)) - { - case IDOK: - { - if (DoDeleteService(Info, hDlg)) - (void)ListView_DeleteItem(Info->hListView, - Info->SelectedItem); - - DestroyIcon(hIcon); - EndDialog(hDlg, - LOWORD(wParam)); - return TRUE; - } - - case IDCANCEL: - { - DestroyIcon(hIcon); - EndDialog(hDlg, - LOWORD(wParam)); - return TRUE; - } - } - } - } - - return FALSE; -} +/* + * PROJECT: ReactOS Services + * LICENSE: GPL - See COPYING in the top level directory + * FILE: base/system/servman/delete.c + * PURPOSE: Delete an existing service + * COPYRIGHT: Copyright 2006 Ged Murphy + * + */ + +#include "precomp.h" + +static BOOL +DoDeleteService(PMAIN_WND_INFO Info, + HWND hDlg) +{ + SC_HANDLE hSCManager; + SC_HANDLE hSc; + + /* open handle to the SCM */ + hSCManager = OpenSCManager(NULL, + NULL, + SC_MANAGER_ALL_ACCESS); + if (hSCManager == NULL) + { + GetError(); + return FALSE; + } + + /* get a handle to the service requested for deleting */ + hSc = OpenService(hSCManager, + Info->CurrentService->lpServiceName, + DELETE); + if (hSc == NULL) + { + GetError(); + CloseServiceHandle(hSCManager); + return FALSE; + } + + /* delete the service opened */ + if (! DeleteService(hSc)) + { + GetError(); + CloseServiceHandle(hSCManager); + CloseServiceHandle(hSc); + return FALSE; + } + + + CloseServiceHandle(hSCManager); + CloseServiceHandle(hSc); + + return TRUE; +} + + +BOOL CALLBACK +DeleteDialogProc(HWND hDlg, + UINT message, + WPARAM wParam, + LPARAM lParam) +{ + PMAIN_WND_INFO Info = NULL; + HICON hIcon = NULL; + TCHAR Buf[1000]; + LVITEM item; + + switch (message) + { + case WM_INITDIALOG: + { + Info = (PMAIN_WND_INFO)lParam; + + hIcon = LoadImage(hInstance, + MAKEINTRESOURCE(IDI_SM_ICON), + IMAGE_ICON, + 16, + 16, + 0); + + SendMessage(hDlg, + WM_SETICON, + ICON_SMALL, + (LPARAM)hIcon); + + SendDlgItemMessage(hDlg, + IDC_DEL_NAME, + WM_SETTEXT, + 0, + (LPARAM)Info->CurrentService->lpDisplayName); + + + item.mask = LVIF_TEXT; + item.iItem = Info->SelectedItem; + item.iSubItem = 1; + item.pszText = Buf; + item.cchTextMax = sizeof(Buf); + SendMessage(Info->hListView, + LVM_GETITEM, + 0, + (LPARAM)&item); + + SendDlgItemMessage(hDlg, + IDC_DEL_DESC, + WM_SETTEXT, + 0, + (LPARAM)Buf); + + SetFocus(GetDlgItem(hDlg, IDCANCEL)); + + return TRUE; + } + + case WM_COMMAND: + { + switch (LOWORD(wParam)) + { + case IDOK: + { + if (DoDeleteService(Info, hDlg)) + (void)ListView_DeleteItem(Info->hListView, + Info->SelectedItem); + + DestroyIcon(hIcon); + EndDialog(hDlg, + LOWORD(wParam)); + return TRUE; + } + + case IDCANCEL: + { + DestroyIcon(hIcon); + EndDialog(hDlg, + LOWORD(wParam)); + return TRUE; + } + } + } + } + + return FALSE; +} diff --git a/reactos/base/applications/servman/export.c b/reactos/base/applications/servman/export.c index 9f6e990c1c2..81889a5d4bf 100644 --- a/reactos/base/applications/servman/export.c +++ b/reactos/base/applications/servman/export.c @@ -1,125 +1,125 @@ -/* - * PROJECT: ReactOS Services - * LICENSE: GPL - See COPYING in the top level directory - * FILE: base/system/servman/export.c - * PURPOSE: Save services to a file - * COPYRIGHT: Copyright 2006 Ged Murphy - * - */ - -#include "precomp.h" - -static DWORD -GetTextFromListView(PMAIN_WND_INFO Info, - TCHAR Text[500], - INT row, - INT col) -{ - LVITEM item; - DWORD NumChars; - - ZeroMemory(&item, sizeof(item)); - item.mask = LVIF_TEXT; - item.iSubItem = col; - item.pszText = Text; - item.cchTextMax = 500; - NumChars = (INT)SendMessage(Info->hListView, - LVM_GETITEMTEXT, - row, - (LPARAM)&item); - - return NumChars; -} - - -static BOOL -SaveServicesToFile(PMAIN_WND_INFO Info, - LPCTSTR pszFileName) -{ - HANDLE hFile; - BOOL bSuccess = FALSE; - - hFile = CreateFile(pszFileName, - GENERIC_WRITE, - 0, - NULL, - CREATE_ALWAYS, - FILE_ATTRIBUTE_NORMAL, - NULL); - - if(hFile != INVALID_HANDLE_VALUE) - { - TCHAR LVText[500]; - TCHAR newl = _T('\n'); - TCHAR tab = _T('\t'); - DWORD dwTextLength, dwWritten; - INT NumListedServ = 0; - INT i, k; - - NumListedServ = ListView_GetItemCount(Info->hListView); - - for (i=0; i < NumListedServ; i++) - { - for (k=0; k<5; k++) - { - dwTextLength = GetTextFromListView(Info, - LVText, - i, - k); - if (LVText != NULL) - { - WriteFile(hFile, - LVText, - sizeof(TCHAR) * dwTextLength, - &dwWritten, - NULL); - - WriteFile(hFile, - &tab, - sizeof(TCHAR), - &dwWritten, - NULL); - } - } - WriteFile(hFile, - &newl, - sizeof(TCHAR), - &dwWritten, - NULL); - } - - CloseHandle(hFile); - bSuccess = TRUE; - } - - return bSuccess; -} - - -VOID ExportFile(PMAIN_WND_INFO Info) -{ - OPENFILENAME ofn; - TCHAR szFileName[MAX_PATH] = _T(""); - - ZeroMemory(&ofn, sizeof(ofn)); - - ofn.lStructSize = sizeof(OPENFILENAME); - ofn.hwndOwner = Info->hMainWnd; - ofn.lpstrFilter = _T("Text (Tab Delimited)(*.txt)\0*.txt\0Text (Comma Delimited)(*.csv)\0*.csv\0"); - ofn.lpstrFile = szFileName; - ofn.nMaxFile = MAX_PATH; - ofn.lpstrDefExt = _T("txt"); - ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT; - - if(GetSaveFileName(&ofn)) - { - if (SaveServicesToFile(Info, szFileName)) - return; - } - - if (CommDlgExtendedError() != CDERR_GENERALCODES) - MessageBox(NULL, _T("Export to file failed"), NULL, 0); -} - - - +/* + * PROJECT: ReactOS Services + * LICENSE: GPL - See COPYING in the top level directory + * FILE: base/system/servman/export.c + * PURPOSE: Save services to a file + * COPYRIGHT: Copyright 2006 Ged Murphy + * + */ + +#include "precomp.h" + +static DWORD +GetTextFromListView(PMAIN_WND_INFO Info, + TCHAR Text[500], + INT row, + INT col) +{ + LVITEM item; + DWORD NumChars; + + ZeroMemory(&item, sizeof(item)); + item.mask = LVIF_TEXT; + item.iSubItem = col; + item.pszText = Text; + item.cchTextMax = 500; + NumChars = (INT)SendMessage(Info->hListView, + LVM_GETITEMTEXT, + row, + (LPARAM)&item); + + return NumChars; +} + + +static BOOL +SaveServicesToFile(PMAIN_WND_INFO Info, + LPCTSTR pszFileName) +{ + HANDLE hFile; + BOOL bSuccess = FALSE; + + hFile = CreateFile(pszFileName, + GENERIC_WRITE, + 0, + NULL, + CREATE_ALWAYS, + FILE_ATTRIBUTE_NORMAL, + NULL); + + if(hFile != INVALID_HANDLE_VALUE) + { + TCHAR LVText[500]; + TCHAR newl = _T('\n'); + TCHAR tab = _T('\t'); + DWORD dwTextLength, dwWritten; + INT NumListedServ = 0; + INT i, k; + + NumListedServ = ListView_GetItemCount(Info->hListView); + + for (i=0; i < NumListedServ; i++) + { + for (k=0; k<5; k++) + { + dwTextLength = GetTextFromListView(Info, + LVText, + i, + k); + if (LVText != NULL) + { + WriteFile(hFile, + LVText, + sizeof(TCHAR) * dwTextLength, + &dwWritten, + NULL); + + WriteFile(hFile, + &tab, + sizeof(TCHAR), + &dwWritten, + NULL); + } + } + WriteFile(hFile, + &newl, + sizeof(TCHAR), + &dwWritten, + NULL); + } + + CloseHandle(hFile); + bSuccess = TRUE; + } + + return bSuccess; +} + + +VOID ExportFile(PMAIN_WND_INFO Info) +{ + OPENFILENAME ofn; + TCHAR szFileName[MAX_PATH] = _T(""); + + ZeroMemory(&ofn, sizeof(ofn)); + + ofn.lStructSize = sizeof(OPENFILENAME); + ofn.hwndOwner = Info->hMainWnd; + ofn.lpstrFilter = _T("Text (Tab Delimited)(*.txt)\0*.txt\0Text (Comma Delimited)(*.csv)\0*.csv\0"); + ofn.lpstrFile = szFileName; + ofn.nMaxFile = MAX_PATH; + ofn.lpstrDefExt = _T("txt"); + ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT; + + if(GetSaveFileName(&ofn)) + { + if (SaveServicesToFile(Info, szFileName)) + return; + } + + if (CommDlgExtendedError() != CDERR_GENERALCODES) + MessageBox(NULL, _T("Export to file failed"), NULL, 0); +} + + + diff --git a/reactos/base/applications/servman/mainwnd.c b/reactos/base/applications/servman/mainwnd.c index 28c972b6bb8..9ed5a9ad0e5 100644 --- a/reactos/base/applications/servman/mainwnd.c +++ b/reactos/base/applications/servman/mainwnd.c @@ -1,1067 +1,1067 @@ -/* - * PROJECT: ReactOS Services - * LICENSE: GPL - See COPYING in the top level directory - * FILE: base/system/servman/mainwnd.c - * PURPOSE: Main window message handler - * COPYRIGHT: Copyright 2005 - 2006 Ged Murphy - * - */ - -#include "precomp.h" - -static const TCHAR szMainWndClass[] = TEXT("ServManWndClass"); - -BOOL bSortAscending = TRUE; - - -/* Toolbar buttons */ -TBBUTTON Buttons [NUM_BUTTONS] = -{ /* iBitmap, idCommand, fsState, fsStyle, bReserved[2], dwData, iString */ - {TBICON_PROP, ID_PROP, TBSTATE_INDETERMINATE, BTNS_BUTTON, {0}, 0, 0}, /* properties */ - {TBICON_REFRESH, ID_REFRESH, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0}, /* refresh */ - {TBICON_EXPORT, ID_EXPORT, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0}, /* export */ - - /* Note: First item for a seperator is its width in pixels */ - {15, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, /* separator */ - - {TBICON_CREATE, ID_CREATE, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* create */ - {TBICON_DELETE, ID_DELETE, TBSTATE_INDETERMINATE, BTNS_BUTTON, {0}, 0, 0 }, /* delete */ - - {15, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, /* separator */ - - {TBICON_START, ID_START, TBSTATE_INDETERMINATE, BTNS_BUTTON, {0}, 0, 0 }, /* start */ - {TBICON_STOP, ID_STOP, TBSTATE_INDETERMINATE, BTNS_BUTTON, {0}, 0, 0 }, /* stop */ - {TBICON_PAUSE, ID_PAUSE, TBSTATE_INDETERMINATE, BTNS_BUTTON, {0}, 0, 0 }, /* pause */ - {TBICON_RESTART, ID_RESTART, TBSTATE_INDETERMINATE, BTNS_BUTTON, {0}, 0, 0 }, /* restart */ - - {15, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, /* separator */ - - {TBICON_HELP, ID_HELP, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* help */ - {TBICON_EXIT, ID_EXIT, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* exit */ - -}; - - -/* menu hints */ -static const MENU_HINT MainMenuHintTable[] = { - /* File Menu */ - {ID_EXPORT, IDS_HINT_EXPORT}, - {ID_EXIT, IDS_HINT_EXIT}, - - /* Action Menu */ - {ID_CONNECT, IDS_HINT_CONNECT}, - {ID_START, IDS_HINT_START}, - {ID_STOP, IDS_HINT_STOP}, - {ID_PAUSE, IDS_HINT_PAUSE}, - {ID_RESUME, IDS_HINT_RESUME}, - {ID_RESTART, IDS_HINT_RESTART}, - {ID_REFRESH, IDS_HINT_REFRESH}, - {ID_EDIT, IDS_HINT_EDIT}, - {ID_CREATE, IDS_HINT_CREATE}, - {ID_DELETE, IDS_HINT_DELETE}, - {ID_PROP, IDS_HINT_PROP}, - - /* View menu */ - {ID_VIEW_LARGE, IDS_HINT_LARGE}, - {ID_VIEW_SMALL, IDS_HINT_SMALL}, - {ID_VIEW_LIST, IDS_HINT_LIST}, - {ID_VIEW_DETAILS, IDS_HINT_DETAILS}, - {ID_VIEW_CUST, IDS_HINT_CUST}, - - /* Help Menu */ - {ID_HELP, IDS_HINT_HELP}, - {ID_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 VOID -SetListViewStyle(HWND hListView, - DWORD View) -{ - DWORD Style = GetWindowLong(hListView, GWL_STYLE); - - if ((Style & LVS_TYPEMASK) != View) - { - SetWindowLong(hListView, - GWL_STYLE, - (Style & ~LVS_TYPEMASK) | View); - } -} - - -VOID SetMenuAndButtonStates(PMAIN_WND_INFO Info) -{ - HMENU hMainMenu; - DWORD Flags, State; - - /* get handle to menu */ - hMainMenu = GetMenu(Info->hMainWnd); - - /* set all to greyed */ - EnableMenuItem(hMainMenu, ID_START, MF_GRAYED); - EnableMenuItem(hMainMenu, ID_STOP, MF_GRAYED); - EnableMenuItem(hMainMenu, ID_PAUSE, MF_GRAYED); - EnableMenuItem(hMainMenu, ID_RESUME, MF_GRAYED); - EnableMenuItem(hMainMenu, ID_RESTART, MF_GRAYED); - - EnableMenuItem(Info->hShortcutMenu, ID_START, MF_GRAYED); - EnableMenuItem(Info->hShortcutMenu, ID_STOP, MF_GRAYED); - EnableMenuItem(Info->hShortcutMenu, ID_PAUSE, MF_GRAYED); - EnableMenuItem(Info->hShortcutMenu, ID_RESUME, MF_GRAYED); - EnableMenuItem(Info->hShortcutMenu, ID_RESTART, MF_GRAYED); - - SendMessage(Info->hTool, TB_SETSTATE, ID_START, - (LPARAM)MAKELONG(TBSTATE_INDETERMINATE, 0)); - SendMessage(Info->hTool, TB_SETSTATE, ID_STOP, - (LPARAM)MAKELONG(TBSTATE_INDETERMINATE, 0)); - SendMessage(Info->hTool, TB_SETSTATE, ID_PAUSE, - (LPARAM)MAKELONG(TBSTATE_INDETERMINATE, 0)); - SendMessage(Info->hTool, TB_SETSTATE, ID_RESTART, - (LPARAM)MAKELONG(TBSTATE_INDETERMINATE, 0)); - - if (Info->SelectedItem != NO_ITEM_SELECTED) - { - /* allow user to delete service */ - SendMessage(Info->hTool, TB_SETSTATE, ID_DELETE, - (LPARAM)MAKELONG(TBSTATE_ENABLED, 0)); - EnableMenuItem(hMainMenu, ID_DELETE, MF_ENABLED); - EnableMenuItem(Info->hShortcutMenu, ID_DELETE, MF_ENABLED); - - Flags = Info->CurrentService->ServiceStatusProcess.dwControlsAccepted; - State = Info->CurrentService->ServiceStatusProcess.dwCurrentState; - - if (State == SERVICE_STOPPED) - { - EnableMenuItem(hMainMenu, ID_START, MF_ENABLED); - EnableMenuItem(Info->hShortcutMenu, ID_START, MF_ENABLED); - SendMessage(Info->hTool, TB_SETSTATE, ID_START, - (LPARAM)MAKELONG(TBSTATE_ENABLED, 0)); - } - - if ( (Flags & SERVICE_ACCEPT_STOP) && (State == SERVICE_RUNNING) ) - { - EnableMenuItem(hMainMenu, ID_STOP, MF_ENABLED); - EnableMenuItem(Info->hShortcutMenu, ID_STOP, MF_ENABLED); - SendMessage(Info->hTool, TB_SETSTATE, ID_STOP, - (LPARAM)MAKELONG(TBSTATE_ENABLED, 0)); - } - - if ( (Flags & SERVICE_ACCEPT_PAUSE_CONTINUE) && (State == SERVICE_RUNNING) ) - { - EnableMenuItem(hMainMenu, ID_PAUSE, MF_ENABLED); - EnableMenuItem(Info->hShortcutMenu, ID_PAUSE, MF_ENABLED); - SendMessage(Info->hTool, TB_SETSTATE, ID_PAUSE, - (LPARAM)MAKELONG(TBSTATE_ENABLED, 0)); - } - - if ( (Flags & SERVICE_ACCEPT_STOP) && (State == SERVICE_RUNNING) ) - { - EnableMenuItem(hMainMenu, ID_RESTART, MF_ENABLED); - EnableMenuItem(Info->hShortcutMenu, ID_RESTART, MF_ENABLED); - SendMessage(Info->hTool, TB_SETSTATE, ID_RESTART, - (LPARAM)MAKELONG(TBSTATE_ENABLED, 0)); - } - } - else - { - /* disable tools which rely on a selected service */ - EnableMenuItem(hMainMenu, ID_PROP, MF_GRAYED); - EnableMenuItem(hMainMenu, ID_DELETE, MF_GRAYED); - EnableMenuItem(Info->hShortcutMenu, ID_PROP, MF_GRAYED); - EnableMenuItem(Info->hShortcutMenu, ID_DELETE, MF_GRAYED); - SendMessage(Info->hTool, TB_SETSTATE, ID_PROP, - (LPARAM)MAKELONG(TBSTATE_INDETERMINATE, 0)); - SendMessage(Info->hTool, TB_SETSTATE, ID_DELETE, - (LPARAM)MAKELONG(TBSTATE_INDETERMINATE, 0)); - } - -} - - -static INT CALLBACK -CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort) -{ - ENUM_SERVICE_STATUS_PROCESS *Param1; - ENUM_SERVICE_STATUS_PROCESS *Param2; -// INT iSubItem = (LPARAM)lParamSort; - - if (bSortAscending) { - Param1 = (ENUM_SERVICE_STATUS_PROCESS *)lParam1; - Param2 = (ENUM_SERVICE_STATUS_PROCESS *)lParam2; - } - else - { - Param1 = (ENUM_SERVICE_STATUS_PROCESS *)lParam2; - Param2 = (ENUM_SERVICE_STATUS_PROCESS *)lParam1; - } - return _tcsicmp(Param1->lpDisplayName, Param2->lpDisplayName); -} - - -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, - 0, - 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 -CreateListView(PMAIN_WND_INFO Info) -{ - LVCOLUMN lvc = { 0 }; - TCHAR szTemp[256]; - - Info->hListView = CreateWindowEx(0, - WC_LISTVIEW, - NULL, - WS_CHILD | WS_VISIBLE | LVS_REPORT | WS_BORDER | - LBS_NOTIFY | LVS_SORTASCENDING | LBS_NOREDRAW, - 0, 0, 0, 0, - Info->hMainWnd, - (HMENU) IDC_SERVLIST, - hInstance, - NULL); - if (Info->hListView == NULL) - { - MessageBox(Info->hMainWnd, - _T("Could not create List View."), - _T("Error"), - MB_OK | MB_ICONERROR); - return FALSE; - } - - (void)ListView_SetExtendedListViewStyle(Info->hListView, - LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP);/*LVS_EX_GRIDLINES |*/ - - lvc.mask = LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH | LVCF_FMT; - lvc.fmt = LVCFMT_LEFT; - - /* Add columns to the list-view */ - - /* name */ - lvc.iSubItem = 0; - lvc.cx = 150; - LoadString(hInstance, - IDS_FIRSTCOLUMN, - szTemp, - sizeof(szTemp) / sizeof(TCHAR)); - lvc.pszText = szTemp; - (void)ListView_InsertColumn(Info->hListView, - 0, - &lvc); - - /* description */ - lvc.iSubItem = 1; - lvc.cx = 240; - LoadString(hInstance, - IDS_SECONDCOLUMN, - szTemp, - sizeof(szTemp) / sizeof(TCHAR)); - lvc.pszText = szTemp; - (void)ListView_InsertColumn(Info->hListView, - 1, - &lvc); - - /* status */ - lvc.iSubItem = 2; - lvc.cx = 55; - LoadString(hInstance, - IDS_THIRDCOLUMN, - szTemp, - sizeof(szTemp) / sizeof(TCHAR)); - lvc.pszText = szTemp; - (void)ListView_InsertColumn(Info->hListView, - 2, - &lvc); - - /* startup type */ - lvc.iSubItem = 3; - lvc.cx = 80; - LoadString(hInstance, - IDS_FOURTHCOLUMN, - szTemp, - sizeof(szTemp) / sizeof(TCHAR)); - lvc.pszText = szTemp; - (void)ListView_InsertColumn(Info->hListView, - 3, - &lvc); - - /* logon as */ - lvc.iSubItem = 4; - lvc.cx = 100; - LoadString(hInstance, - IDS_FITHCOLUMN, - szTemp, - sizeof(szTemp) / sizeof(TCHAR)); - lvc.pszText = szTemp; - (void)ListView_InsertColumn(Info->hListView, - 4, - &lvc); - - 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 VOID -ListViewSelectionChanged(PMAIN_WND_INFO Info, - LPNMLISTVIEW pnmv) -{ - - HMENU hMainMenu; - - /* get handle to menu */ - hMainMenu = GetMenu(Info->hMainWnd); - - /* activate properties menu item, if not already */ - if (GetMenuState(hMainMenu, - ID_PROP, - MF_BYCOMMAND) != MF_ENABLED) - { - EnableMenuItem(hMainMenu, - ID_PROP, - MF_ENABLED); - } - - /* activate delete menu item, if not already */ - if (GetMenuState(hMainMenu, - ID_DELETE, - MF_BYCOMMAND) != MF_ENABLED) - { - EnableMenuItem(hMainMenu, - ID_DELETE, - MF_ENABLED); - EnableMenuItem(Info->hShortcutMenu, - ID_DELETE, - MF_ENABLED); - } - - - /* set selected service */ - Info->SelectedItem = pnmv->iItem; - - /* get pointer to selected service */ - Info->CurrentService = GetSelectedService(Info); - - /* alter options for the service */ - SetMenuAndButtonStates(Info); - - /* set current selected service in the status bar */ - SendMessage(Info->hStatus, - SB_SETTEXT, - 1, - (LPARAM)Info->CurrentService->lpDisplayName); - - /* show the properties button */ - SendMessage(Info->hTool, - TB_SETSTATE, - ID_PROP, - (LPARAM)MAKELONG(TBSTATE_ENABLED, 0)); - - -} - - -static VOID -InitMainWnd(PMAIN_WND_INFO Info) -{ - if (!CreateToolbar(Info)) - DisplayString(_T("error creating toolbar")); - - if (!CreateListView(Info)) - { - DisplayString(_T("error creating list view")); - return; - } - - if (!CreateStatusBar(Info)) - DisplayString(_T("error creating status bar")); - - /* Create Popup Menu */ - Info->hShortcutMenu = LoadMenu(hInstance, - MAKEINTRESOURCE(IDR_POPUP)); - Info->hShortcutMenu = GetSubMenu(Info->hShortcutMenu, - 0); -} - - -static VOID -MainWndCommand(PMAIN_WND_INFO Info, - WORD CmdId, - HWND hControl) -{ - UNREFERENCED_PARAMETER(hControl); - - switch (CmdId) - { - case ID_PROP: - { - if (Info->SelectedItem != NO_ITEM_SELECTED) - { - PPROP_DLG_INFO PropSheet; - - PropSheet = HeapAlloc(ProcessHeap, - HEAP_ZERO_MEMORY, - sizeof(PROP_DLG_INFO)); - if (PropSheet != NULL) - { - Info->PropSheet = PropSheet; - OpenPropSheet(Info); - } - - HeapFree(ProcessHeap, - 0, - PropSheet); - - Info->PropSheet = NULL; - } - } - break; - - case ID_REFRESH: - { - RefreshServiceList(Info); - Info->SelectedItem = NO_ITEM_SELECTED; - - /* disable menus and buttons */ - SetMenuAndButtonStates(Info); - - /* clear the service in the status bar */ - SendMessage(Info->hStatus, - SB_SETTEXT, - 1, - _T('\0')); - } - break; - - case ID_EXPORT: - { - ExportFile(Info); - SetFocus(Info->hListView); - } - break; - - case ID_CREATE: - { - DialogBoxParam(hInstance, - MAKEINTRESOURCE(IDD_DLG_CREATE), - Info->hMainWnd, - (DLGPROC)CreateDialogProc, - (LPARAM)Info); - - SetFocus(Info->hListView); - } - break; - - case ID_DELETE: - { - if (Info->CurrentService->ServiceStatusProcess.dwCurrentState != SERVICE_RUNNING) - { - DialogBoxParam(hInstance, - MAKEINTRESOURCE(IDD_DLG_DELETE), - Info->hMainWnd, - (DLGPROC)DeleteDialogProc, - (LPARAM)Info); - } - else - { - TCHAR Buf[60]; - LoadString(hInstance, - IDS_DELETE_STOP, - Buf, - sizeof(Buf) / sizeof(TCHAR)); - DisplayString(Buf); - } - - SetFocus(Info->hListView); - - } - break; - - case ID_START: - { - DoStart(Info); - } - break; - - case ID_STOP: - { - DoStop(Info); - } - break; - - case ID_PAUSE: - { - Control(Info, - SERVICE_CONTROL_PAUSE); - } - break; - - case ID_RESUME: - { - Control(Info, - SERVICE_CONTROL_CONTINUE ); - } - break; - - case ID_RESTART: - { - /* FIXME: remove this hack */ - SendMessage(Info->hMainWnd, - WM_COMMAND, - 0, - ID_STOP); - SendMessage(Info->hMainWnd, - WM_COMMAND, - 0, - ID_START); - } - break; - - case ID_HELP: - MessageBox(NULL, - _T("Help is not yet implemented\n"), - _T("Note!"), - MB_OK | MB_ICONINFORMATION); - SetFocus(Info->hListView); - break; - - case ID_EXIT: - PostMessage(Info->hMainWnd, - WM_CLOSE, - 0, - 0); - break; - - case ID_VIEW_LARGE: - SetListViewStyle(Info->hListView, - LVS_ICON); - break; - - case ID_VIEW_SMALL: - SetListViewStyle(Info->hListView, - LVS_SMALLICON); - break; - - case ID_VIEW_LIST: - SetListViewStyle(Info->hListView, - LVS_LIST); - break; - - case ID_VIEW_DETAILS: - SetListViewStyle(Info->hListView, - LVS_REPORT); - break; - - case ID_VIEW_CUST: - break; - - case ID_ABOUT: - DialogBox(hInstance, - MAKEINTRESOURCE(IDD_ABOUTBOX), - Info->hMainWnd, - (DLGPROC)AboutDialogProc); - SetFocus(Info->hListView); - 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->hListView, - 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; - Info->SelectedItem = NO_ITEM_SELECTED; - - SetWindowLongPtr(hwnd, - GWLP_USERDATA, - (LONG_PTR)Info); - - InitMainWnd(Info); - - /* Show the window */ - ShowWindow(hwnd, - Info->nCmdShow); - - RefreshServiceList(Info); - } - break; - - case WM_SIZE: - { - MainWndResize(Info, - LOWORD(lParam), - HIWORD(lParam)); - } - break; - - case WM_NOTIFY: - { - LPNMHDR pnmhdr = (LPNMHDR)lParam; - - switch (pnmhdr->code) - { - case NM_DBLCLK: - { - POINT pt; - RECT rect; - - GetCursorPos(&pt); - GetWindowRect(Info->hListView, &rect); - - if (PtInRect(&rect, pt)) - { - SendMessage(hwnd, - WM_COMMAND, - //ID_PROP, - MAKEWPARAM((WORD)ID_PROP, (WORD)0), - 0); - } - - //OpenPropSheet(Info); - } - break; - - case LVN_COLUMNCLICK: - { - LPNMLISTVIEW pnmv = (LPNMLISTVIEW) lParam; - - (void)ListView_SortItems(Info->hListView, - CompareFunc, - pnmv->iSubItem); - bSortAscending = !bSortAscending; - } - break; - - case LVN_ITEMCHANGED: - { - LPNMLISTVIEW pnmv = (LPNMLISTVIEW) lParam; - - ListViewSelectionChanged(Info, pnmv); - - } - break; - - case TTN_GETDISPINFO: - { - LPTOOLTIPTEXT lpttt; - UINT idButton; - - lpttt = (LPTOOLTIPTEXT)lParam; - - /* Specify the resource identifier of the descriptive - * text for the given button. */ - idButton = (UINT)lpttt->hdr.idFrom; - switch (idButton) - { - case ID_PROP: - lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_PROP); - break; - - case ID_REFRESH: - lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_REFRESH); - break; - - case ID_EXPORT: - lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_EXPORT); - break; - - case ID_CREATE: - lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_CREATE); - break; - - case ID_DELETE: - lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_DELETE); - break; - - case ID_START: - lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_START); - break; - - case ID_STOP: - lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_STOP); - break; - - case ID_PAUSE: - lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_PAUSE); - break; - - case ID_RESTART: - lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_RESTART); - break; - - case ID_HELP: - lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_HELP); - break; - - case ID_EXIT: - lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_EXIT); - break; - - } - } - break; - } - } - break; - - case WM_CONTEXTMENU: - { - POINT pt; - RECT lvRect; - - INT xPos = GET_X_LPARAM(lParam); - INT yPos = GET_Y_LPARAM(lParam); - - GetCursorPos(&pt); - - /* display popup when cursor is in the list view */ - GetWindowRect(Info->hListView, &lvRect); - if (PtInRect(&lvRect, pt)) - { - TrackPopupMenuEx(Info->hShortcutMenu, - TPM_RIGHTBUTTON, - xPos, - yPos, - Info->hMainWnd, - NULL); - } - } - 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: - { - /* Free service array */ - HeapFree(ProcessHeap, - 0, - Info->pServiceStatus); - - DestroyMenu(Info->hShortcutMenu); - DestroyWindow(hwnd); - } - break; - - case WM_DESTROY: - { - //DestroyMainWnd(Info); - - 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 = 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, - 650, - 450, - NULL, - NULL, - hInstance, - Info); - if (hMainWnd == NULL) - { - int ret; - ret = GetLastError(); - 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_SM_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_SM_ICON), - IMAGE_ICON, - 16, - 16, - LR_SHARED); - - return RegisterClassEx(&wc) != (ATOM)0; -} - - -VOID -UninitMainWindowImpl(VOID) -{ - UnregisterClass(szMainWndClass, - hInstance); -} - +/* + * PROJECT: ReactOS Services + * LICENSE: GPL - See COPYING in the top level directory + * FILE: base/system/servman/mainwnd.c + * PURPOSE: Main window message handler + * COPYRIGHT: Copyright 2005 - 2006 Ged Murphy + * + */ + +#include "precomp.h" + +static const TCHAR szMainWndClass[] = TEXT("ServManWndClass"); + +BOOL bSortAscending = TRUE; + + +/* Toolbar buttons */ +TBBUTTON Buttons [NUM_BUTTONS] = +{ /* iBitmap, idCommand, fsState, fsStyle, bReserved[2], dwData, iString */ + {TBICON_PROP, ID_PROP, TBSTATE_INDETERMINATE, BTNS_BUTTON, {0}, 0, 0}, /* properties */ + {TBICON_REFRESH, ID_REFRESH, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0}, /* refresh */ + {TBICON_EXPORT, ID_EXPORT, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0}, /* export */ + + /* Note: First item for a seperator is its width in pixels */ + {15, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, /* separator */ + + {TBICON_CREATE, ID_CREATE, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* create */ + {TBICON_DELETE, ID_DELETE, TBSTATE_INDETERMINATE, BTNS_BUTTON, {0}, 0, 0 }, /* delete */ + + {15, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, /* separator */ + + {TBICON_START, ID_START, TBSTATE_INDETERMINATE, BTNS_BUTTON, {0}, 0, 0 }, /* start */ + {TBICON_STOP, ID_STOP, TBSTATE_INDETERMINATE, BTNS_BUTTON, {0}, 0, 0 }, /* stop */ + {TBICON_PAUSE, ID_PAUSE, TBSTATE_INDETERMINATE, BTNS_BUTTON, {0}, 0, 0 }, /* pause */ + {TBICON_RESTART, ID_RESTART, TBSTATE_INDETERMINATE, BTNS_BUTTON, {0}, 0, 0 }, /* restart */ + + {15, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, /* separator */ + + {TBICON_HELP, ID_HELP, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* help */ + {TBICON_EXIT, ID_EXIT, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 }, /* exit */ + +}; + + +/* menu hints */ +static const MENU_HINT MainMenuHintTable[] = { + /* File Menu */ + {ID_EXPORT, IDS_HINT_EXPORT}, + {ID_EXIT, IDS_HINT_EXIT}, + + /* Action Menu */ + {ID_CONNECT, IDS_HINT_CONNECT}, + {ID_START, IDS_HINT_START}, + {ID_STOP, IDS_HINT_STOP}, + {ID_PAUSE, IDS_HINT_PAUSE}, + {ID_RESUME, IDS_HINT_RESUME}, + {ID_RESTART, IDS_HINT_RESTART}, + {ID_REFRESH, IDS_HINT_REFRESH}, + {ID_EDIT, IDS_HINT_EDIT}, + {ID_CREATE, IDS_HINT_CREATE}, + {ID_DELETE, IDS_HINT_DELETE}, + {ID_PROP, IDS_HINT_PROP}, + + /* View menu */ + {ID_VIEW_LARGE, IDS_HINT_LARGE}, + {ID_VIEW_SMALL, IDS_HINT_SMALL}, + {ID_VIEW_LIST, IDS_HINT_LIST}, + {ID_VIEW_DETAILS, IDS_HINT_DETAILS}, + {ID_VIEW_CUST, IDS_HINT_CUST}, + + /* Help Menu */ + {ID_HELP, IDS_HINT_HELP}, + {ID_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 VOID +SetListViewStyle(HWND hListView, + DWORD View) +{ + DWORD Style = GetWindowLong(hListView, GWL_STYLE); + + if ((Style & LVS_TYPEMASK) != View) + { + SetWindowLong(hListView, + GWL_STYLE, + (Style & ~LVS_TYPEMASK) | View); + } +} + + +VOID SetMenuAndButtonStates(PMAIN_WND_INFO Info) +{ + HMENU hMainMenu; + DWORD Flags, State; + + /* get handle to menu */ + hMainMenu = GetMenu(Info->hMainWnd); + + /* set all to greyed */ + EnableMenuItem(hMainMenu, ID_START, MF_GRAYED); + EnableMenuItem(hMainMenu, ID_STOP, MF_GRAYED); + EnableMenuItem(hMainMenu, ID_PAUSE, MF_GRAYED); + EnableMenuItem(hMainMenu, ID_RESUME, MF_GRAYED); + EnableMenuItem(hMainMenu, ID_RESTART, MF_GRAYED); + + EnableMenuItem(Info->hShortcutMenu, ID_START, MF_GRAYED); + EnableMenuItem(Info->hShortcutMenu, ID_STOP, MF_GRAYED); + EnableMenuItem(Info->hShortcutMenu, ID_PAUSE, MF_GRAYED); + EnableMenuItem(Info->hShortcutMenu, ID_RESUME, MF_GRAYED); + EnableMenuItem(Info->hShortcutMenu, ID_RESTART, MF_GRAYED); + + SendMessage(Info->hTool, TB_SETSTATE, ID_START, + (LPARAM)MAKELONG(TBSTATE_INDETERMINATE, 0)); + SendMessage(Info->hTool, TB_SETSTATE, ID_STOP, + (LPARAM)MAKELONG(TBSTATE_INDETERMINATE, 0)); + SendMessage(Info->hTool, TB_SETSTATE, ID_PAUSE, + (LPARAM)MAKELONG(TBSTATE_INDETERMINATE, 0)); + SendMessage(Info->hTool, TB_SETSTATE, ID_RESTART, + (LPARAM)MAKELONG(TBSTATE_INDETERMINATE, 0)); + + if (Info->SelectedItem != NO_ITEM_SELECTED) + { + /* allow user to delete service */ + SendMessage(Info->hTool, TB_SETSTATE, ID_DELETE, + (LPARAM)MAKELONG(TBSTATE_ENABLED, 0)); + EnableMenuItem(hMainMenu, ID_DELETE, MF_ENABLED); + EnableMenuItem(Info->hShortcutMenu, ID_DELETE, MF_ENABLED); + + Flags = Info->CurrentService->ServiceStatusProcess.dwControlsAccepted; + State = Info->CurrentService->ServiceStatusProcess.dwCurrentState; + + if (State == SERVICE_STOPPED) + { + EnableMenuItem(hMainMenu, ID_START, MF_ENABLED); + EnableMenuItem(Info->hShortcutMenu, ID_START, MF_ENABLED); + SendMessage(Info->hTool, TB_SETSTATE, ID_START, + (LPARAM)MAKELONG(TBSTATE_ENABLED, 0)); + } + + if ( (Flags & SERVICE_ACCEPT_STOP) && (State == SERVICE_RUNNING) ) + { + EnableMenuItem(hMainMenu, ID_STOP, MF_ENABLED); + EnableMenuItem(Info->hShortcutMenu, ID_STOP, MF_ENABLED); + SendMessage(Info->hTool, TB_SETSTATE, ID_STOP, + (LPARAM)MAKELONG(TBSTATE_ENABLED, 0)); + } + + if ( (Flags & SERVICE_ACCEPT_PAUSE_CONTINUE) && (State == SERVICE_RUNNING) ) + { + EnableMenuItem(hMainMenu, ID_PAUSE, MF_ENABLED); + EnableMenuItem(Info->hShortcutMenu, ID_PAUSE, MF_ENABLED); + SendMessage(Info->hTool, TB_SETSTATE, ID_PAUSE, + (LPARAM)MAKELONG(TBSTATE_ENABLED, 0)); + } + + if ( (Flags & SERVICE_ACCEPT_STOP) && (State == SERVICE_RUNNING) ) + { + EnableMenuItem(hMainMenu, ID_RESTART, MF_ENABLED); + EnableMenuItem(Info->hShortcutMenu, ID_RESTART, MF_ENABLED); + SendMessage(Info->hTool, TB_SETSTATE, ID_RESTART, + (LPARAM)MAKELONG(TBSTATE_ENABLED, 0)); + } + } + else + { + /* disable tools which rely on a selected service */ + EnableMenuItem(hMainMenu, ID_PROP, MF_GRAYED); + EnableMenuItem(hMainMenu, ID_DELETE, MF_GRAYED); + EnableMenuItem(Info->hShortcutMenu, ID_PROP, MF_GRAYED); + EnableMenuItem(Info->hShortcutMenu, ID_DELETE, MF_GRAYED); + SendMessage(Info->hTool, TB_SETSTATE, ID_PROP, + (LPARAM)MAKELONG(TBSTATE_INDETERMINATE, 0)); + SendMessage(Info->hTool, TB_SETSTATE, ID_DELETE, + (LPARAM)MAKELONG(TBSTATE_INDETERMINATE, 0)); + } + +} + + +static INT CALLBACK +CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort) +{ + ENUM_SERVICE_STATUS_PROCESS *Param1; + ENUM_SERVICE_STATUS_PROCESS *Param2; +// INT iSubItem = (LPARAM)lParamSort; + + if (bSortAscending) { + Param1 = (ENUM_SERVICE_STATUS_PROCESS *)lParam1; + Param2 = (ENUM_SERVICE_STATUS_PROCESS *)lParam2; + } + else + { + Param1 = (ENUM_SERVICE_STATUS_PROCESS *)lParam2; + Param2 = (ENUM_SERVICE_STATUS_PROCESS *)lParam1; + } + return _tcsicmp(Param1->lpDisplayName, Param2->lpDisplayName); +} + + +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, + 0, + 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 +CreateListView(PMAIN_WND_INFO Info) +{ + LVCOLUMN lvc = { 0 }; + TCHAR szTemp[256]; + + Info->hListView = CreateWindowEx(0, + WC_LISTVIEW, + NULL, + WS_CHILD | WS_VISIBLE | LVS_REPORT | WS_BORDER | + LBS_NOTIFY | LVS_SORTASCENDING | LBS_NOREDRAW, + 0, 0, 0, 0, + Info->hMainWnd, + (HMENU) IDC_SERVLIST, + hInstance, + NULL); + if (Info->hListView == NULL) + { + MessageBox(Info->hMainWnd, + _T("Could not create List View."), + _T("Error"), + MB_OK | MB_ICONERROR); + return FALSE; + } + + (void)ListView_SetExtendedListViewStyle(Info->hListView, + LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP);/*LVS_EX_GRIDLINES |*/ + + lvc.mask = LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH | LVCF_FMT; + lvc.fmt = LVCFMT_LEFT; + + /* Add columns to the list-view */ + + /* name */ + lvc.iSubItem = 0; + lvc.cx = 150; + LoadString(hInstance, + IDS_FIRSTCOLUMN, + szTemp, + sizeof(szTemp) / sizeof(TCHAR)); + lvc.pszText = szTemp; + (void)ListView_InsertColumn(Info->hListView, + 0, + &lvc); + + /* description */ + lvc.iSubItem = 1; + lvc.cx = 240; + LoadString(hInstance, + IDS_SECONDCOLUMN, + szTemp, + sizeof(szTemp) / sizeof(TCHAR)); + lvc.pszText = szTemp; + (void)ListView_InsertColumn(Info->hListView, + 1, + &lvc); + + /* status */ + lvc.iSubItem = 2; + lvc.cx = 55; + LoadString(hInstance, + IDS_THIRDCOLUMN, + szTemp, + sizeof(szTemp) / sizeof(TCHAR)); + lvc.pszText = szTemp; + (void)ListView_InsertColumn(Info->hListView, + 2, + &lvc); + + /* startup type */ + lvc.iSubItem = 3; + lvc.cx = 80; + LoadString(hInstance, + IDS_FOURTHCOLUMN, + szTemp, + sizeof(szTemp) / sizeof(TCHAR)); + lvc.pszText = szTemp; + (void)ListView_InsertColumn(Info->hListView, + 3, + &lvc); + + /* logon as */ + lvc.iSubItem = 4; + lvc.cx = 100; + LoadString(hInstance, + IDS_FITHCOLUMN, + szTemp, + sizeof(szTemp) / sizeof(TCHAR)); + lvc.pszText = szTemp; + (void)ListView_InsertColumn(Info->hListView, + 4, + &lvc); + + 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 VOID +ListViewSelectionChanged(PMAIN_WND_INFO Info, + LPNMLISTVIEW pnmv) +{ + + HMENU hMainMenu; + + /* get handle to menu */ + hMainMenu = GetMenu(Info->hMainWnd); + + /* activate properties menu item, if not already */ + if (GetMenuState(hMainMenu, + ID_PROP, + MF_BYCOMMAND) != MF_ENABLED) + { + EnableMenuItem(hMainMenu, + ID_PROP, + MF_ENABLED); + } + + /* activate delete menu item, if not already */ + if (GetMenuState(hMainMenu, + ID_DELETE, + MF_BYCOMMAND) != MF_ENABLED) + { + EnableMenuItem(hMainMenu, + ID_DELETE, + MF_ENABLED); + EnableMenuItem(Info->hShortcutMenu, + ID_DELETE, + MF_ENABLED); + } + + + /* set selected service */ + Info->SelectedItem = pnmv->iItem; + + /* get pointer to selected service */ + Info->CurrentService = GetSelectedService(Info); + + /* alter options for the service */ + SetMenuAndButtonStates(Info); + + /* set current selected service in the status bar */ + SendMessage(Info->hStatus, + SB_SETTEXT, + 1, + (LPARAM)Info->CurrentService->lpDisplayName); + + /* show the properties button */ + SendMessage(Info->hTool, + TB_SETSTATE, + ID_PROP, + (LPARAM)MAKELONG(TBSTATE_ENABLED, 0)); + + +} + + +static VOID +InitMainWnd(PMAIN_WND_INFO Info) +{ + if (!CreateToolbar(Info)) + DisplayString(_T("error creating toolbar")); + + if (!CreateListView(Info)) + { + DisplayString(_T("error creating list view")); + return; + } + + if (!CreateStatusBar(Info)) + DisplayString(_T("error creating status bar")); + + /* Create Popup Menu */ + Info->hShortcutMenu = LoadMenu(hInstance, + MAKEINTRESOURCE(IDR_POPUP)); + Info->hShortcutMenu = GetSubMenu(Info->hShortcutMenu, + 0); +} + + +static VOID +MainWndCommand(PMAIN_WND_INFO Info, + WORD CmdId, + HWND hControl) +{ + UNREFERENCED_PARAMETER(hControl); + + switch (CmdId) + { + case ID_PROP: + { + if (Info->SelectedItem != NO_ITEM_SELECTED) + { + PPROP_DLG_INFO PropSheet; + + PropSheet = HeapAlloc(ProcessHeap, + HEAP_ZERO_MEMORY, + sizeof(PROP_DLG_INFO)); + if (PropSheet != NULL) + { + Info->PropSheet = PropSheet; + OpenPropSheet(Info); + } + + HeapFree(ProcessHeap, + 0, + PropSheet); + + Info->PropSheet = NULL; + } + } + break; + + case ID_REFRESH: + { + RefreshServiceList(Info); + Info->SelectedItem = NO_ITEM_SELECTED; + + /* disable menus and buttons */ + SetMenuAndButtonStates(Info); + + /* clear the service in the status bar */ + SendMessage(Info->hStatus, + SB_SETTEXT, + 1, + _T('\0')); + } + break; + + case ID_EXPORT: + { + ExportFile(Info); + SetFocus(Info->hListView); + } + break; + + case ID_CREATE: + { + DialogBoxParam(hInstance, + MAKEINTRESOURCE(IDD_DLG_CREATE), + Info->hMainWnd, + (DLGPROC)CreateDialogProc, + (LPARAM)Info); + + SetFocus(Info->hListView); + } + break; + + case ID_DELETE: + { + if (Info->CurrentService->ServiceStatusProcess.dwCurrentState != SERVICE_RUNNING) + { + DialogBoxParam(hInstance, + MAKEINTRESOURCE(IDD_DLG_DELETE), + Info->hMainWnd, + (DLGPROC)DeleteDialogProc, + (LPARAM)Info); + } + else + { + TCHAR Buf[60]; + LoadString(hInstance, + IDS_DELETE_STOP, + Buf, + sizeof(Buf) / sizeof(TCHAR)); + DisplayString(Buf); + } + + SetFocus(Info->hListView); + + } + break; + + case ID_START: + { + DoStart(Info); + } + break; + + case ID_STOP: + { + DoStop(Info); + } + break; + + case ID_PAUSE: + { + Control(Info, + SERVICE_CONTROL_PAUSE); + } + break; + + case ID_RESUME: + { + Control(Info, + SERVICE_CONTROL_CONTINUE ); + } + break; + + case ID_RESTART: + { + /* FIXME: remove this hack */ + SendMessage(Info->hMainWnd, + WM_COMMAND, + 0, + ID_STOP); + SendMessage(Info->hMainWnd, + WM_COMMAND, + 0, + ID_START); + } + break; + + case ID_HELP: + MessageBox(NULL, + _T("Help is not yet implemented\n"), + _T("Note!"), + MB_OK | MB_ICONINFORMATION); + SetFocus(Info->hListView); + break; + + case ID_EXIT: + PostMessage(Info->hMainWnd, + WM_CLOSE, + 0, + 0); + break; + + case ID_VIEW_LARGE: + SetListViewStyle(Info->hListView, + LVS_ICON); + break; + + case ID_VIEW_SMALL: + SetListViewStyle(Info->hListView, + LVS_SMALLICON); + break; + + case ID_VIEW_LIST: + SetListViewStyle(Info->hListView, + LVS_LIST); + break; + + case ID_VIEW_DETAILS: + SetListViewStyle(Info->hListView, + LVS_REPORT); + break; + + case ID_VIEW_CUST: + break; + + case ID_ABOUT: + DialogBox(hInstance, + MAKEINTRESOURCE(IDD_ABOUTBOX), + Info->hMainWnd, + (DLGPROC)AboutDialogProc); + SetFocus(Info->hListView); + 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->hListView, + 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; + Info->SelectedItem = NO_ITEM_SELECTED; + + SetWindowLongPtr(hwnd, + GWLP_USERDATA, + (LONG_PTR)Info); + + InitMainWnd(Info); + + /* Show the window */ + ShowWindow(hwnd, + Info->nCmdShow); + + RefreshServiceList(Info); + } + break; + + case WM_SIZE: + { + MainWndResize(Info, + LOWORD(lParam), + HIWORD(lParam)); + } + break; + + case WM_NOTIFY: + { + LPNMHDR pnmhdr = (LPNMHDR)lParam; + + switch (pnmhdr->code) + { + case NM_DBLCLK: + { + POINT pt; + RECT rect; + + GetCursorPos(&pt); + GetWindowRect(Info->hListView, &rect); + + if (PtInRect(&rect, pt)) + { + SendMessage(hwnd, + WM_COMMAND, + //ID_PROP, + MAKEWPARAM((WORD)ID_PROP, (WORD)0), + 0); + } + + //OpenPropSheet(Info); + } + break; + + case LVN_COLUMNCLICK: + { + LPNMLISTVIEW pnmv = (LPNMLISTVIEW) lParam; + + (void)ListView_SortItems(Info->hListView, + CompareFunc, + pnmv->iSubItem); + bSortAscending = !bSortAscending; + } + break; + + case LVN_ITEMCHANGED: + { + LPNMLISTVIEW pnmv = (LPNMLISTVIEW) lParam; + + ListViewSelectionChanged(Info, pnmv); + + } + break; + + case TTN_GETDISPINFO: + { + LPTOOLTIPTEXT lpttt; + UINT idButton; + + lpttt = (LPTOOLTIPTEXT)lParam; + + /* Specify the resource identifier of the descriptive + * text for the given button. */ + idButton = (UINT)lpttt->hdr.idFrom; + switch (idButton) + { + case ID_PROP: + lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_PROP); + break; + + case ID_REFRESH: + lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_REFRESH); + break; + + case ID_EXPORT: + lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_EXPORT); + break; + + case ID_CREATE: + lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_CREATE); + break; + + case ID_DELETE: + lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_DELETE); + break; + + case ID_START: + lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_START); + break; + + case ID_STOP: + lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_STOP); + break; + + case ID_PAUSE: + lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_PAUSE); + break; + + case ID_RESTART: + lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_RESTART); + break; + + case ID_HELP: + lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_HELP); + break; + + case ID_EXIT: + lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_EXIT); + break; + + } + } + break; + } + } + break; + + case WM_CONTEXTMENU: + { + POINT pt; + RECT lvRect; + + INT xPos = GET_X_LPARAM(lParam); + INT yPos = GET_Y_LPARAM(lParam); + + GetCursorPos(&pt); + + /* display popup when cursor is in the list view */ + GetWindowRect(Info->hListView, &lvRect); + if (PtInRect(&lvRect, pt)) + { + TrackPopupMenuEx(Info->hShortcutMenu, + TPM_RIGHTBUTTON, + xPos, + yPos, + Info->hMainWnd, + NULL); + } + } + 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: + { + /* Free service array */ + HeapFree(ProcessHeap, + 0, + Info->pServiceStatus); + + DestroyMenu(Info->hShortcutMenu); + DestroyWindow(hwnd); + } + break; + + case WM_DESTROY: + { + //DestroyMainWnd(Info); + + 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 = 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, + 650, + 450, + NULL, + NULL, + hInstance, + Info); + if (hMainWnd == NULL) + { + int ret; + ret = GetLastError(); + 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_SM_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_SM_ICON), + IMAGE_ICON, + 16, + 16, + LR_SHARED); + + return RegisterClassEx(&wc) != (ATOM)0; +} + + +VOID +UninitMainWindowImpl(VOID) +{ + UnregisterClass(szMainWndClass, + hInstance); +} + diff --git a/reactos/base/applications/servman/misc.c b/reactos/base/applications/servman/misc.c index f665ed08b1a..0f64719e331 100644 --- a/reactos/base/applications/servman/misc.c +++ b/reactos/base/applications/servman/misc.c @@ -1,259 +1,259 @@ -/* - * PROJECT: ReactOS Services - * LICENSE: GPL - See COPYING in the top level directory - * FILE: base/system/servman/misc.c - * PURPOSE: miscallanous functions - * COPYRIGHT: Copyright 2006 Ged Murphy - * - */ - -#include "precomp.h" - -static INT -LengthOfStrResource(IN HINSTANCE hInst, - IN UINT uID) -{ - HRSRC hrSrc; - HGLOBAL hRes; - LPWSTR lpName, lpStr; - - if (hInst == NULL) - { - return -1; - } - - /* There are always blocks of 16 strings */ - lpName = (LPWSTR)MAKEINTRESOURCE((uID >> 4) + 1); - - /* Find the string table block */ - if ((hrSrc = FindResourceW(hInst, lpName, (LPWSTR)RT_STRING)) && - (hRes = LoadResource(hInst, hrSrc)) && - (lpStr = LockResource(hRes))) - { - UINT x; - - /* Find the string we're looking for */ - uID &= 0xF; /* position in the block, same as % 16 */ - for (x = 0; x < uID; x++) - { - lpStr += (*lpStr) + 1; - } - - /* Found the string */ - return (int)(*lpStr); - } - return -1; -} - -INT -AllocAndLoadString(OUT LPTSTR *lpTarget, - IN HINSTANCE hInst, - IN UINT uID) -{ - INT ln; - - ln = LengthOfStrResource(hInst, - uID); - if (ln++ > 0) - { - (*lpTarget) = (LPTSTR)LocalAlloc(LMEM_FIXED, - ln * sizeof(TCHAR)); - if ((*lpTarget) != NULL) - { - INT Ret; - if (!(Ret = LoadString(hInst, uID, *lpTarget, ln))) - { - LocalFree((HLOCAL)(*lpTarget)); - } - return Ret; - } - } - return 0; -} - -DWORD -LoadAndFormatString(IN HINSTANCE hInstance, - IN UINT uID, - OUT LPTSTR *lpTarget, - ...) -{ - DWORD Ret = 0; - LPTSTR lpFormat; - va_list lArgs; - - if (AllocAndLoadString(&lpFormat, - hInstance, - uID) > 0) - { - va_start(lArgs, lpTarget); - /* let's use FormatMessage to format it because it has the ability to allocate - memory automatically */ - Ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING, - lpFormat, - 0, - 0, - (LPTSTR)lpTarget, - 0, - &lArgs); - va_end(lArgs); - - LocalFree((HLOCAL)lpFormat); - } - - return Ret; -} - -BOOL -StatusBarLoadAndFormatString(IN HWND hStatusBar, - IN INT PartId, - IN HINSTANCE hInstance, - IN UINT uID, - ...) -{ - BOOL Ret = FALSE; - LPTSTR lpFormat, lpStr; - va_list lArgs; - - if (AllocAndLoadString(&lpFormat, - hInstance, - uID) > 0) - { - va_start(lArgs, uID); - /* let's use FormatMessage to format it because it has the ability to allocate - memory automatically */ - Ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING, - lpFormat, - 0, - 0, - (LPTSTR)&lpStr, - 0, - &lArgs); - va_end(lArgs); - - if (lpStr != NULL) - { - Ret = (BOOL)SendMessage(hStatusBar, - SB_SETTEXT, - (WPARAM)PartId, - (LPARAM)lpStr); - LocalFree((HLOCAL)lpStr); - } - - LocalFree((HLOCAL)lpFormat); - } - - return Ret; -} - -BOOL -StatusBarLoadString(IN HWND hStatusBar, - IN INT PartId, - IN HINSTANCE hInstance, - IN UINT uID) -{ - BOOL Ret = FALSE; - LPTSTR lpStr; - - if (AllocAndLoadString(&lpStr, - hInstance, - uID) > 0) - { - Ret = (BOOL)SendMessage(hStatusBar, - SB_SETTEXT, - (WPARAM)PartId, - (LPARAM)lpStr); - LocalFree((HLOCAL)lpStr); - } - - return Ret; -} - - -INT -GetTextFromEdit(OUT LPTSTR lpString, - IN HWND hDlg, - IN UINT Res) -{ - INT len = GetWindowTextLength(GetDlgItem(hDlg, Res)); - if(len > 0) - { - GetDlgItemText(hDlg, - Res, - lpString, - len + 1); - } - else - lpString = NULL; - - return len; -} - - -VOID GetError(VOID) -{ - LPVOID lpMsgBuf; - - FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | - FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, - GetLastError(), - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPTSTR) &lpMsgBuf, - 0, - NULL ); - - MessageBox(NULL, lpMsgBuf, _T("Error!"), MB_OK | MB_ICONERROR); - - LocalFree(lpMsgBuf); -} - -VOID DisplayString(PTCHAR Msg) -{ - MessageBox(NULL, Msg, _T("Note!"), MB_ICONEXCLAMATION|MB_OK); -} - - - -HIMAGELIST -InitImageList(UINT StartResource, - UINT EndResource, - UINT Width, - UINT Height) -{ - HBITMAP hBitmap; - HIMAGELIST hImageList; - INT i, Ret; - - /* Create the toolbar icon image list */ - hImageList = ImageList_Create(Width, - Height, - ILC_MASK | ILC_COLOR24, - EndResource - StartResource, - 0); - if (hImageList == NULL) - return NULL; - - /* Add all icons to the image list */ - for (i = StartResource; i <= EndResource; i++) - { - hBitmap = LoadImage(hInstance, - MAKEINTRESOURCE(i), - IMAGE_BITMAP, - Width, - Height, - LR_LOADTRANSPARENT); - if (hBitmap == NULL) - return NULL; - - Ret = ImageList_AddMasked(hImageList, - hBitmap, - RGB(255, 0, 128)); - if (Ret == -1) - return NULL; - - DeleteObject(hBitmap); - } - - return hImageList; -} +/* + * PROJECT: ReactOS Services + * LICENSE: GPL - See COPYING in the top level directory + * FILE: base/system/servman/misc.c + * PURPOSE: miscallanous functions + * COPYRIGHT: Copyright 2006 Ged Murphy + * + */ + +#include "precomp.h" + +static INT +LengthOfStrResource(IN HINSTANCE hInst, + IN UINT uID) +{ + HRSRC hrSrc; + HGLOBAL hRes; + LPWSTR lpName, lpStr; + + if (hInst == NULL) + { + return -1; + } + + /* There are always blocks of 16 strings */ + lpName = (LPWSTR)MAKEINTRESOURCE((uID >> 4) + 1); + + /* Find the string table block */ + if ((hrSrc = FindResourceW(hInst, lpName, (LPWSTR)RT_STRING)) && + (hRes = LoadResource(hInst, hrSrc)) && + (lpStr = LockResource(hRes))) + { + UINT x; + + /* Find the string we're looking for */ + uID &= 0xF; /* position in the block, same as % 16 */ + for (x = 0; x < uID; x++) + { + lpStr += (*lpStr) + 1; + } + + /* Found the string */ + return (int)(*lpStr); + } + return -1; +} + +INT +AllocAndLoadString(OUT LPTSTR *lpTarget, + IN HINSTANCE hInst, + IN UINT uID) +{ + INT ln; + + ln = LengthOfStrResource(hInst, + uID); + if (ln++ > 0) + { + (*lpTarget) = (LPTSTR)LocalAlloc(LMEM_FIXED, + ln * sizeof(TCHAR)); + if ((*lpTarget) != NULL) + { + INT Ret; + if (!(Ret = LoadString(hInst, uID, *lpTarget, ln))) + { + LocalFree((HLOCAL)(*lpTarget)); + } + return Ret; + } + } + return 0; +} + +DWORD +LoadAndFormatString(IN HINSTANCE hInstance, + IN UINT uID, + OUT LPTSTR *lpTarget, + ...) +{ + DWORD Ret = 0; + LPTSTR lpFormat; + va_list lArgs; + + if (AllocAndLoadString(&lpFormat, + hInstance, + uID) > 0) + { + va_start(lArgs, lpTarget); + /* let's use FormatMessage to format it because it has the ability to allocate + memory automatically */ + Ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING, + lpFormat, + 0, + 0, + (LPTSTR)lpTarget, + 0, + &lArgs); + va_end(lArgs); + + LocalFree((HLOCAL)lpFormat); + } + + return Ret; +} + +BOOL +StatusBarLoadAndFormatString(IN HWND hStatusBar, + IN INT PartId, + IN HINSTANCE hInstance, + IN UINT uID, + ...) +{ + BOOL Ret = FALSE; + LPTSTR lpFormat, lpStr; + va_list lArgs; + + if (AllocAndLoadString(&lpFormat, + hInstance, + uID) > 0) + { + va_start(lArgs, uID); + /* let's use FormatMessage to format it because it has the ability to allocate + memory automatically */ + Ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING, + lpFormat, + 0, + 0, + (LPTSTR)&lpStr, + 0, + &lArgs); + va_end(lArgs); + + if (lpStr != NULL) + { + Ret = (BOOL)SendMessage(hStatusBar, + SB_SETTEXT, + (WPARAM)PartId, + (LPARAM)lpStr); + LocalFree((HLOCAL)lpStr); + } + + LocalFree((HLOCAL)lpFormat); + } + + return Ret; +} + +BOOL +StatusBarLoadString(IN HWND hStatusBar, + IN INT PartId, + IN HINSTANCE hInstance, + IN UINT uID) +{ + BOOL Ret = FALSE; + LPTSTR lpStr; + + if (AllocAndLoadString(&lpStr, + hInstance, + uID) > 0) + { + Ret = (BOOL)SendMessage(hStatusBar, + SB_SETTEXT, + (WPARAM)PartId, + (LPARAM)lpStr); + LocalFree((HLOCAL)lpStr); + } + + return Ret; +} + + +INT +GetTextFromEdit(OUT LPTSTR lpString, + IN HWND hDlg, + IN UINT Res) +{ + INT len = GetWindowTextLength(GetDlgItem(hDlg, Res)); + if(len > 0) + { + GetDlgItemText(hDlg, + Res, + lpString, + len + 1); + } + else + lpString = NULL; + + return len; +} + + +VOID GetError(VOID) +{ + LPVOID lpMsgBuf; + + FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | + FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, + GetLastError(), + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPTSTR) &lpMsgBuf, + 0, + NULL ); + + MessageBox(NULL, lpMsgBuf, _T("Error!"), MB_OK | MB_ICONERROR); + + LocalFree(lpMsgBuf); +} + +VOID DisplayString(PTCHAR Msg) +{ + MessageBox(NULL, Msg, _T("Note!"), MB_ICONEXCLAMATION|MB_OK); +} + + + +HIMAGELIST +InitImageList(UINT StartResource, + UINT EndResource, + UINT Width, + UINT Height) +{ + HBITMAP hBitmap; + HIMAGELIST hImageList; + INT i, Ret; + + /* Create the toolbar icon image list */ + hImageList = ImageList_Create(Width, + Height, + ILC_MASK | ILC_COLOR24, + EndResource - StartResource, + 0); + if (hImageList == NULL) + return NULL; + + /* Add all icons to the image list */ + for (i = StartResource; i <= EndResource; i++) + { + hBitmap = LoadImage(hInstance, + MAKEINTRESOURCE(i), + IMAGE_BITMAP, + Width, + Height, + LR_LOADTRANSPARENT); + if (hBitmap == NULL) + return NULL; + + Ret = ImageList_AddMasked(hImageList, + hBitmap, + RGB(255, 0, 128)); + if (Ret == -1) + return NULL; + + DeleteObject(hBitmap); + } + + return hImageList; +} diff --git a/reactos/base/applications/servman/precomp.h b/reactos/base/applications/servman/precomp.h index 32927b718b4..098cd5c9981 100644 --- a/reactos/base/applications/servman/precomp.h +++ b/reactos/base/applications/servman/precomp.h @@ -1,146 +1,146 @@ -#ifndef __SERVMAN_PRECOMP_H -#define __SERVMAN_PRECOMP_H - -//#define WIN32_LEAN_AND_MEAN -#include -#include /* GET_X/Y_LPARAM */ -#include -#include -#include -#include "resource.h" - -#ifdef _MSC_VER -#pragma warning(disable : 4100) -#endif - -#ifndef SB_SIMPLEID -#define SB_SIMPLEID 0xFF -#endif - -#define NO_ITEM_SELECTED -1 -#define MAX_KEY_LENGTH 256 -#define NUM_BUTTONS 14 -#define PROGRESSRANGE 8 - - -typedef struct _PROP_DLG_INFO -{ - HWND hwndGenDlg; - HWND hwndDepDlg; - LPTSTR lpServiceName; - LPTSTR lpDisplayName; - LPTSTR lpDescription; - LPTSTR lpPathToExe; - TCHAR szStartupType; - TCHAR szServiceStatus[25]; - LPTSTR lpStartParams; - -} PROP_DLG_INFO, *PPROP_DLG_INFO; - -typedef struct _MAIN_WND_INFO -{ - HWND hMainWnd; - HWND hListView; - HWND hStatus; - HWND hTool; - HWND hProgDlg; - HMENU hShortcutMenu; - int nCmdShow; - - /* Stores the complete services array */ - ENUM_SERVICE_STATUS_PROCESS *pServiceStatus; - - /* Stores the current selected service */ - ENUM_SERVICE_STATUS_PROCESS *CurrentService; - - /* selection number in the list view */ - INT SelectedItem; - - struct _PROP_DLG_INFO *PropSheet; - - /* status flags */ - BOOL InMenuLoop : 1; - -} MAIN_WND_INFO, *PMAIN_WND_INFO; - - -BOOL CALLBACK AboutDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); -BOOL CALLBACK CreateDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); -BOOL CALLBACK DeleteDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); -BOOL CALLBACK ProgressDialogProc(HWND hDlg, UINT Message, WPARAM wParam, LPARAM lParam); - - -/* servman.c */ -extern HINSTANCE hInstance; -extern HANDLE ProcessHeap; - -/* mainwnd.c */ -typedef struct _MENU_HINT -{ - WORD CmdId; - UINT HintId; -} MENU_HINT, *PMENU_HINT; - -BOOL InitMainWindowImpl(VOID); -VOID UninitMainWindowImpl(VOID); -HWND CreateMainWindow(LPCTSTR lpCaption, int nCmdShow); - -/* start */ -BOOL DoStart(PMAIN_WND_INFO Info); - -/* stop */ -BOOL DoStop(PMAIN_WND_INFO Info); - -/* control */ -BOOL Control(PMAIN_WND_INFO Info, DWORD Control); - -/* query.c */ -ENUM_SERVICE_STATUS_PROCESS* GetSelectedService(PMAIN_WND_INFO Info); -BOOL SetDescription(LPTSTR, LPTSTR); -BOOL GetDescription(LPTSTR, LPTSTR *); -BOOL GetExecutablePath(PMAIN_WND_INFO Info, LPTSTR *); -BOOL RefreshServiceList(PMAIN_WND_INFO Info); -DWORD GetServiceList(PMAIN_WND_INFO Info); - -/* propsheet.c */ -LONG APIENTRY OpenPropSheet(PMAIN_WND_INFO Info); - -/* export.c */ -VOID ExportFile(PMAIN_WND_INFO Info); - -/* misc.c */ -INT AllocAndLoadString(OUT LPTSTR *lpTarget, - IN HINSTANCE hInst, - IN UINT uID); - -DWORD LoadAndFormatString(IN HINSTANCE hInstance, - IN UINT uID, - OUT LPTSTR *lpTarget, - ...); - -BOOL StatusBarLoadAndFormatString(IN HWND hStatusBar, - IN INT PartId, - IN HINSTANCE hInstance, - IN UINT uID, - ...); - -BOOL StatusBarLoadString(IN HWND hStatusBar, - IN INT PartId, - IN HINSTANCE hInstance, - IN UINT uID); - -INT GetTextFromEdit(OUT LPTSTR lpString, - IN HWND hDlg, - IN UINT Res); - -VOID GetError(VOID); - -VOID DisplayString(PTCHAR); - -HIMAGELIST InitImageList(UINT NumButtons, - UINT StartResource, - UINT Width, - UINT Height); - - -#endif /* __SERVMAN_PRECOMP_H */ +#ifndef __SERVMAN_PRECOMP_H +#define __SERVMAN_PRECOMP_H + +//#define WIN32_LEAN_AND_MEAN +#include +#include /* GET_X/Y_LPARAM */ +#include +#include +#include +#include "resource.h" + +#ifdef _MSC_VER +#pragma warning(disable : 4100) +#endif + +#ifndef SB_SIMPLEID +#define SB_SIMPLEID 0xFF +#endif + +#define NO_ITEM_SELECTED -1 +#define MAX_KEY_LENGTH 256 +#define NUM_BUTTONS 14 +#define PROGRESSRANGE 8 + + +typedef struct _PROP_DLG_INFO +{ + HWND hwndGenDlg; + HWND hwndDepDlg; + LPTSTR lpServiceName; + LPTSTR lpDisplayName; + LPTSTR lpDescription; + LPTSTR lpPathToExe; + TCHAR szStartupType; + TCHAR szServiceStatus[25]; + LPTSTR lpStartParams; + +} PROP_DLG_INFO, *PPROP_DLG_INFO; + +typedef struct _MAIN_WND_INFO +{ + HWND hMainWnd; + HWND hListView; + HWND hStatus; + HWND hTool; + HWND hProgDlg; + HMENU hShortcutMenu; + int nCmdShow; + + /* Stores the complete services array */ + ENUM_SERVICE_STATUS_PROCESS *pServiceStatus; + + /* Stores the current selected service */ + ENUM_SERVICE_STATUS_PROCESS *CurrentService; + + /* selection number in the list view */ + INT SelectedItem; + + struct _PROP_DLG_INFO *PropSheet; + + /* status flags */ + BOOL InMenuLoop : 1; + +} MAIN_WND_INFO, *PMAIN_WND_INFO; + + +BOOL CALLBACK AboutDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); +BOOL CALLBACK CreateDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); +BOOL CALLBACK DeleteDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); +BOOL CALLBACK ProgressDialogProc(HWND hDlg, UINT Message, WPARAM wParam, LPARAM lParam); + + +/* servman.c */ +extern HINSTANCE hInstance; +extern HANDLE ProcessHeap; + +/* mainwnd.c */ +typedef struct _MENU_HINT +{ + WORD CmdId; + UINT HintId; +} MENU_HINT, *PMENU_HINT; + +BOOL InitMainWindowImpl(VOID); +VOID UninitMainWindowImpl(VOID); +HWND CreateMainWindow(LPCTSTR lpCaption, int nCmdShow); + +/* start */ +BOOL DoStart(PMAIN_WND_INFO Info); + +/* stop */ +BOOL DoStop(PMAIN_WND_INFO Info); + +/* control */ +BOOL Control(PMAIN_WND_INFO Info, DWORD Control); + +/* query.c */ +ENUM_SERVICE_STATUS_PROCESS* GetSelectedService(PMAIN_WND_INFO Info); +BOOL SetDescription(LPTSTR, LPTSTR); +BOOL GetDescription(LPTSTR, LPTSTR *); +BOOL GetExecutablePath(PMAIN_WND_INFO Info, LPTSTR *); +BOOL RefreshServiceList(PMAIN_WND_INFO Info); +DWORD GetServiceList(PMAIN_WND_INFO Info); + +/* propsheet.c */ +LONG APIENTRY OpenPropSheet(PMAIN_WND_INFO Info); + +/* export.c */ +VOID ExportFile(PMAIN_WND_INFO Info); + +/* misc.c */ +INT AllocAndLoadString(OUT LPTSTR *lpTarget, + IN HINSTANCE hInst, + IN UINT uID); + +DWORD LoadAndFormatString(IN HINSTANCE hInstance, + IN UINT uID, + OUT LPTSTR *lpTarget, + ...); + +BOOL StatusBarLoadAndFormatString(IN HWND hStatusBar, + IN INT PartId, + IN HINSTANCE hInstance, + IN UINT uID, + ...); + +BOOL StatusBarLoadString(IN HWND hStatusBar, + IN INT PartId, + IN HINSTANCE hInstance, + IN UINT uID); + +INT GetTextFromEdit(OUT LPTSTR lpString, + IN HWND hDlg, + IN UINT Res); + +VOID GetError(VOID); + +VOID DisplayString(PTCHAR); + +HIMAGELIST InitImageList(UINT NumButtons, + UINT StartResource, + UINT Width, + UINT Height); + + +#endif /* __SERVMAN_PRECOMP_H */ diff --git a/reactos/base/applications/servman/progress.c b/reactos/base/applications/servman/progress.c index b0dc42dfbc3..d2b64e43950 100644 --- a/reactos/base/applications/servman/progress.c +++ b/reactos/base/applications/servman/progress.c @@ -1,41 +1,41 @@ -/* - * PROJECT: ReactOS Services - * LICENSE: GPL - See COPYING in the top level directory - * FILE: base/system/servman/progress.c - * PURPOSE: Progress dialog box message handler - * COPYRIGHT: Copyright 2006 Ged Murphy - * - */ - -#include "precomp.h" - -BOOL CALLBACK ProgressDialogProc(HWND hDlg, UINT Message, WPARAM wParam, LPARAM lParam) -{ - switch(Message) - { - case WM_INITDIALOG: - - break; - - case WM_COMMAND: - switch(LOWORD(wParam)) - { - case IDOK: - DestroyWindow(hDlg); - break; - - } - break; - - case WM_DESTROY: - DestroyWindow(hDlg); - break; - - default: - return FALSE; - } - - return TRUE; - -} - +/* + * PROJECT: ReactOS Services + * LICENSE: GPL - See COPYING in the top level directory + * FILE: base/system/servman/progress.c + * PURPOSE: Progress dialog box message handler + * COPYRIGHT: Copyright 2006 Ged Murphy + * + */ + +#include "precomp.h" + +BOOL CALLBACK ProgressDialogProc(HWND hDlg, UINT Message, WPARAM wParam, LPARAM lParam) +{ + switch(Message) + { + case WM_INITDIALOG: + + break; + + case WM_COMMAND: + switch(LOWORD(wParam)) + { + case IDOK: + DestroyWindow(hDlg); + break; + + } + break; + + case WM_DESTROY: + DestroyWindow(hDlg); + break; + + default: + return FALSE; + } + + return TRUE; + +} + diff --git a/reactos/base/applications/servman/propsheet.c b/reactos/base/applications/servman/propsheet.c index 305b262242e..fa293eb3a76 100644 --- a/reactos/base/applications/servman/propsheet.c +++ b/reactos/base/applications/servman/propsheet.c @@ -1,410 +1,410 @@ -/* - * PROJECT: ReactOS Services - * LICENSE: GPL - See COPYING in the top level directory - * FILE: base/system/servman/propsheet.c - * PURPOSE: Property dialog box message handler - * COPYRIGHT: Copyright 2005 - 2006 Ged Murphy - * - */ - -#include "precomp.h" - -static VOID -SetButtonStates(PMAIN_WND_INFO Info) -{ - HWND hButton; - DWORD Flags, State; - - Flags = Info->CurrentService->ServiceStatusProcess.dwControlsAccepted; - State = Info->CurrentService->ServiceStatusProcess.dwCurrentState; - - if (State == SERVICE_STOPPED) - { - hButton = GetDlgItem(Info->PropSheet->hwndGenDlg, IDC_START); - EnableWindow (hButton, TRUE); - } - - if ( (Flags & SERVICE_ACCEPT_STOP) && (State == SERVICE_RUNNING) ) - { - hButton = GetDlgItem(Info->PropSheet->hwndGenDlg, IDC_STOP); - EnableWindow (hButton, TRUE); - } - - if ( (Flags & SERVICE_ACCEPT_PAUSE_CONTINUE) && (State == SERVICE_RUNNING) ) - { - hButton = GetDlgItem(Info->PropSheet->hwndGenDlg, IDC_PAUSE); - EnableWindow (hButton, TRUE); - } - - if ( (Flags & SERVICE_ACCEPT_STOP) && (State == SERVICE_RUNNING) ) - { - hButton = GetDlgItem(Info->PropSheet->hwndGenDlg, IDC_PAUSE); - EnableWindow (hButton, TRUE); - } -} - -/* - * Fills the 'startup type' combo box with possible - * values and sets it to value of the selected item - */ -static VOID -SetStartupType(PMAIN_WND_INFO Info) -{ - HWND hList; - HKEY hKey; - TCHAR buf[25]; - DWORD dwValueSize = 0; - DWORD StartUp = 0; - LPCTSTR Path = _T("System\\CurrentControlSet\\Services\\%s"); - TCHAR KeyBuf[300]; - - /* open the registry key for the service */ - _sntprintf(KeyBuf, - sizeof(KeyBuf) / sizeof(TCHAR), - Path, - Info->CurrentService->lpServiceName); - - RegOpenKeyEx(HKEY_LOCAL_MACHINE, - KeyBuf, - 0, - KEY_READ, - &hKey); - - hList = GetDlgItem(Info->PropSheet->hwndGenDlg, IDC_START_TYPE); - - LoadString(hInstance, IDS_SERVICES_AUTO, buf, sizeof(buf) / sizeof(TCHAR)); - SendMessage(hList, CB_ADDSTRING, 0, (LPARAM)buf); - LoadString(hInstance, IDS_SERVICES_MAN, buf, sizeof(buf) / sizeof(TCHAR)); - SendMessage(hList, CB_ADDSTRING, 0, (LPARAM)buf); - LoadString(hInstance, IDS_SERVICES_DIS, buf, sizeof(buf) / sizeof(TCHAR)); - SendMessage(hList, CB_ADDSTRING, 0, (LPARAM)buf); - - dwValueSize = sizeof(DWORD); - if (RegQueryValueEx(hKey, - _T("Start"), - NULL, - NULL, - (LPBYTE)&StartUp, - &dwValueSize)) - { - RegCloseKey(hKey); - return; - } - - if (StartUp == 0x02) - SendMessage(hList, CB_SETCURSEL, 0, 0); - else if (StartUp == 0x03) - SendMessage(hList, CB_SETCURSEL, 1, 0); - else if (StartUp == 0x04) - SendMessage(hList, CB_SETCURSEL, 2, 0); - -} - - -/* - * Populates the General Properties dialog with - * the relevant service information - */ -static VOID -GetDlgInfo(PMAIN_WND_INFO Info) -{ - /* set the service name */ - Info->PropSheet->lpServiceName = Info->CurrentService->lpServiceName; - SendDlgItemMessage(Info->PropSheet->hwndGenDlg, - IDC_SERV_NAME, - WM_SETTEXT, - 0, - (LPARAM)Info->PropSheet->lpServiceName); - - /* set the display name */ - Info->PropSheet->lpDisplayName = Info->CurrentService->lpDisplayName; - SendDlgItemMessage(Info->PropSheet->hwndGenDlg, - IDC_DISP_NAME, - WM_SETTEXT, - 0, - (LPARAM)Info->PropSheet->lpDisplayName); - - /* set the description */ - if (GetDescription(Info->CurrentService->lpServiceName, &Info->PropSheet->lpDescription)) - SendDlgItemMessage(Info->PropSheet->hwndGenDlg, - IDC_DESCRIPTION, - WM_SETTEXT, - 0, - (LPARAM)Info->PropSheet->lpDescription); - - /* set the executable path */ - if (GetExecutablePath(Info, &Info->PropSheet->lpPathToExe)) - SendDlgItemMessage(Info->PropSheet->hwndGenDlg, - IDC_EXEPATH, - WM_SETTEXT, - 0, - (LPARAM)Info->PropSheet->lpPathToExe); - - /* set startup type */ - SetStartupType(Info); - - /* set service status */ - if (Info->CurrentService->ServiceStatusProcess.dwCurrentState == SERVICE_RUNNING) - { - LoadString(hInstance, - IDS_SERVICES_STARTED, - Info->PropSheet->szServiceStatus, - sizeof(Info->PropSheet->szServiceStatus) / sizeof(TCHAR)); - - SendDlgItemMessage(Info->PropSheet->hwndGenDlg, - IDC_SERV_STATUS, - WM_SETTEXT, - 0, - (LPARAM)Info->PropSheet->szServiceStatus); - } - else - { - LoadString(hInstance, - IDS_SERVICES_STOPPED, - Info->PropSheet->szServiceStatus, - sizeof(Info->PropSheet->szServiceStatus) / sizeof(TCHAR)); - - SendDlgItemMessage(Info->PropSheet->hwndGenDlg, - IDC_SERV_STATUS, - WM_SETTEXT, - 0, - (LPARAM)Info->PropSheet->szServiceStatus); - } - -} - - - -/* - * General Property dialog callback. - * Controls messages to the General dialog - */ -static INT_PTR CALLBACK -GeneralPageProc(HWND hwndDlg, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) -{ - PMAIN_WND_INFO Info; - - /* Get the window context */ - Info = (PMAIN_WND_INFO)GetWindowLongPtr(hwndDlg, - GWLP_USERDATA); - - if (Info == NULL && uMsg != WM_INITDIALOG) - { - return FALSE; - } - - switch (uMsg) - { - case WM_INITDIALOG: - { - Info = (PMAIN_WND_INFO)(((LPPROPSHEETPAGE)lParam)->lParam); - if (Info != NULL) - { - Info->PropSheet->hwndGenDlg = hwndDlg; - - SetWindowLongPtr(hwndDlg, - GWLP_USERDATA, - (LONG_PTR)Info); - GetDlgInfo(Info); - SetButtonStates(Info); - } - } - break; - - case WM_COMMAND: - switch(LOWORD(wParam)) - { - case IDC_START_TYPE: - /* Enable the 'Apply' button */ - //PropSheet_Changed(GetParent(hwndDlg), hwndDlg); - break; - - case IDC_START: - SendMessage(Info->hMainWnd, WM_COMMAND, ID_START, 0); - break; - - case IDC_STOP: - SendMessage(Info->hMainWnd, WM_COMMAND, ID_STOP, 0); - break; - - case IDC_PAUSE: - SendMessage(Info->hMainWnd, WM_COMMAND, ID_PAUSE, 0); - break; - - case IDC_RESUME: - SendMessage(Info->hMainWnd, WM_COMMAND, ID_RESUME, 0); - break; - - case IDC_START_PARAM: - /* Enable the 'Apply' button */ - //PropSheet_Changed(GetParent(hwndDlg), hwndDlg); - break; - - } - break; - - case WM_DESTROY: - break; - - case WM_NOTIFY: - { - LPNMHDR lpnm = (LPNMHDR)lParam; - - switch (lpnm->code) - { - case MCN_SELECT: - /* Enable the 'Apply' button */ - PropSheet_Changed(GetParent(hwndDlg), hwndDlg); - break; - } - } - break; - } - - return FALSE; -} - - - -/* - * Dependancies Property dialog callback. - * Controls messages to the Dependancies dialog - */ -static INT_PTR CALLBACK -DependanciesPageProc(HWND hwndDlg, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) -{ - PMAIN_WND_INFO Info; - - /* Get the window context */ - Info = (PMAIN_WND_INFO)GetWindowLongPtr(hwndDlg, - GWLP_USERDATA); - - if (Info == NULL && uMsg != WM_INITDIALOG) - { - return FALSE; - } - - switch (uMsg) - { - case WM_INITDIALOG: - { - Info = (PMAIN_WND_INFO)(((LPPROPSHEETPAGE)lParam)->lParam); - if (Info != NULL) - { - Info->PropSheet->hwndDepDlg = hwndDlg; - - SetWindowLongPtr(hwndDlg, - GWLP_USERDATA, - (LONG_PTR)Info); - } - } - break; - - case WM_COMMAND: - switch(LOWORD(wParam)) - { - - } - break; - - case WM_DESTROY: - break; - - case WM_NOTIFY: - { - LPNMHDR lpnm = (LPNMHDR)lParam; - - switch (lpnm->code) - { - - } - - } - break; - } - - return FALSE; -} - - -static INT CALLBACK -AddEditButton(HWND hwnd, UINT message, LPARAM lParam) -{ - HWND hEditButton; - - switch (message) - { - case PSCB_PRECREATE: - /*hEditButton = CreateWindowEx(0, - WC_BUTTON, - NULL, - WS_CHILD | WS_VISIBLE, - 20, 300, 30, 15, - hwnd, - NULL, - hInstance, - NULL); - if (hEditButton == NULL) - GetError(0);*/ - - hEditButton = GetDlgItem(hwnd, PSBTN_OK); - DestroyWindow(hEditButton); - //SetWindowText(hEditButton, _T("test")); - - return TRUE; - } - return TRUE; -} - - - - -static VOID -InitPropSheetPage(PROPSHEETPAGE *psp, - PMAIN_WND_INFO Info, - WORD idDlg, - DLGPROC DlgProc) -{ - ZeroMemory(psp, sizeof(PROPSHEETPAGE)); - psp->dwSize = sizeof(PROPSHEETPAGE); - psp->dwFlags = PSP_DEFAULT; - psp->hInstance = hInstance; - psp->pszTemplate = MAKEINTRESOURCE(idDlg); - psp->pfnDlgProc = DlgProc; - psp->lParam = (LPARAM)Info; -} - - -LONG APIENTRY -OpenPropSheet(PMAIN_WND_INFO Info) -{ - PROPSHEETHEADER psh; - PROPSHEETPAGE psp[2]; - - ZeroMemory(&psh, sizeof(PROPSHEETHEADER)); - psh.dwSize = sizeof(PROPSHEETHEADER); - psh.dwFlags = PSH_PROPSHEETPAGE | PSH_PROPTITLE | PSH_USECALLBACK; - psh.hwndParent = Info->hMainWnd; - psh.hInstance = hInstance; - psh.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_SM_ICON)); - psh.pszCaption = Info->CurrentService->lpDisplayName; - psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE); - psh.nStartPage = 0; - psh.pfnCallback = AddEditButton; - psh.ppsp = psp; - - - InitPropSheetPage(&psp[0], Info, IDD_DLG_GENERAL, GeneralPageProc); - //InitPropSheetPage(&psp[1], Info, IDD_DLG_GENERAL, LogonPageProc); - //InitPropSheetPage(&psp[2], Info, IDD_DLG_GENERAL, RecoveryPageProc); - InitPropSheetPage(&psp[1], Info, IDD_DLG_DEPEND, DependanciesPageProc); - - return (LONG)(PropertySheet(&psh) != -1); -} - +/* + * PROJECT: ReactOS Services + * LICENSE: GPL - See COPYING in the top level directory + * FILE: base/system/servman/propsheet.c + * PURPOSE: Property dialog box message handler + * COPYRIGHT: Copyright 2005 - 2006 Ged Murphy + * + */ + +#include "precomp.h" + +static VOID +SetButtonStates(PMAIN_WND_INFO Info) +{ + HWND hButton; + DWORD Flags, State; + + Flags = Info->CurrentService->ServiceStatusProcess.dwControlsAccepted; + State = Info->CurrentService->ServiceStatusProcess.dwCurrentState; + + if (State == SERVICE_STOPPED) + { + hButton = GetDlgItem(Info->PropSheet->hwndGenDlg, IDC_START); + EnableWindow (hButton, TRUE); + } + + if ( (Flags & SERVICE_ACCEPT_STOP) && (State == SERVICE_RUNNING) ) + { + hButton = GetDlgItem(Info->PropSheet->hwndGenDlg, IDC_STOP); + EnableWindow (hButton, TRUE); + } + + if ( (Flags & SERVICE_ACCEPT_PAUSE_CONTINUE) && (State == SERVICE_RUNNING) ) + { + hButton = GetDlgItem(Info->PropSheet->hwndGenDlg, IDC_PAUSE); + EnableWindow (hButton, TRUE); + } + + if ( (Flags & SERVICE_ACCEPT_STOP) && (State == SERVICE_RUNNING) ) + { + hButton = GetDlgItem(Info->PropSheet->hwndGenDlg, IDC_PAUSE); + EnableWindow (hButton, TRUE); + } +} + +/* + * Fills the 'startup type' combo box with possible + * values and sets it to value of the selected item + */ +static VOID +SetStartupType(PMAIN_WND_INFO Info) +{ + HWND hList; + HKEY hKey; + TCHAR buf[25]; + DWORD dwValueSize = 0; + DWORD StartUp = 0; + LPCTSTR Path = _T("System\\CurrentControlSet\\Services\\%s"); + TCHAR KeyBuf[300]; + + /* open the registry key for the service */ + _sntprintf(KeyBuf, + sizeof(KeyBuf) / sizeof(TCHAR), + Path, + Info->CurrentService->lpServiceName); + + RegOpenKeyEx(HKEY_LOCAL_MACHINE, + KeyBuf, + 0, + KEY_READ, + &hKey); + + hList = GetDlgItem(Info->PropSheet->hwndGenDlg, IDC_START_TYPE); + + LoadString(hInstance, IDS_SERVICES_AUTO, buf, sizeof(buf) / sizeof(TCHAR)); + SendMessage(hList, CB_ADDSTRING, 0, (LPARAM)buf); + LoadString(hInstance, IDS_SERVICES_MAN, buf, sizeof(buf) / sizeof(TCHAR)); + SendMessage(hList, CB_ADDSTRING, 0, (LPARAM)buf); + LoadString(hInstance, IDS_SERVICES_DIS, buf, sizeof(buf) / sizeof(TCHAR)); + SendMessage(hList, CB_ADDSTRING, 0, (LPARAM)buf); + + dwValueSize = sizeof(DWORD); + if (RegQueryValueEx(hKey, + _T("Start"), + NULL, + NULL, + (LPBYTE)&StartUp, + &dwValueSize)) + { + RegCloseKey(hKey); + return; + } + + if (StartUp == 0x02) + SendMessage(hList, CB_SETCURSEL, 0, 0); + else if (StartUp == 0x03) + SendMessage(hList, CB_SETCURSEL, 1, 0); + else if (StartUp == 0x04) + SendMessage(hList, CB_SETCURSEL, 2, 0); + +} + + +/* + * Populates the General Properties dialog with + * the relevant service information + */ +static VOID +GetDlgInfo(PMAIN_WND_INFO Info) +{ + /* set the service name */ + Info->PropSheet->lpServiceName = Info->CurrentService->lpServiceName; + SendDlgItemMessage(Info->PropSheet->hwndGenDlg, + IDC_SERV_NAME, + WM_SETTEXT, + 0, + (LPARAM)Info->PropSheet->lpServiceName); + + /* set the display name */ + Info->PropSheet->lpDisplayName = Info->CurrentService->lpDisplayName; + SendDlgItemMessage(Info->PropSheet->hwndGenDlg, + IDC_DISP_NAME, + WM_SETTEXT, + 0, + (LPARAM)Info->PropSheet->lpDisplayName); + + /* set the description */ + if (GetDescription(Info->CurrentService->lpServiceName, &Info->PropSheet->lpDescription)) + SendDlgItemMessage(Info->PropSheet->hwndGenDlg, + IDC_DESCRIPTION, + WM_SETTEXT, + 0, + (LPARAM)Info->PropSheet->lpDescription); + + /* set the executable path */ + if (GetExecutablePath(Info, &Info->PropSheet->lpPathToExe)) + SendDlgItemMessage(Info->PropSheet->hwndGenDlg, + IDC_EXEPATH, + WM_SETTEXT, + 0, + (LPARAM)Info->PropSheet->lpPathToExe); + + /* set startup type */ + SetStartupType(Info); + + /* set service status */ + if (Info->CurrentService->ServiceStatusProcess.dwCurrentState == SERVICE_RUNNING) + { + LoadString(hInstance, + IDS_SERVICES_STARTED, + Info->PropSheet->szServiceStatus, + sizeof(Info->PropSheet->szServiceStatus) / sizeof(TCHAR)); + + SendDlgItemMessage(Info->PropSheet->hwndGenDlg, + IDC_SERV_STATUS, + WM_SETTEXT, + 0, + (LPARAM)Info->PropSheet->szServiceStatus); + } + else + { + LoadString(hInstance, + IDS_SERVICES_STOPPED, + Info->PropSheet->szServiceStatus, + sizeof(Info->PropSheet->szServiceStatus) / sizeof(TCHAR)); + + SendDlgItemMessage(Info->PropSheet->hwndGenDlg, + IDC_SERV_STATUS, + WM_SETTEXT, + 0, + (LPARAM)Info->PropSheet->szServiceStatus); + } + +} + + + +/* + * General Property dialog callback. + * Controls messages to the General dialog + */ +static INT_PTR CALLBACK +GeneralPageProc(HWND hwndDlg, + UINT uMsg, + WPARAM wParam, + LPARAM lParam) +{ + PMAIN_WND_INFO Info; + + /* Get the window context */ + Info = (PMAIN_WND_INFO)GetWindowLongPtr(hwndDlg, + GWLP_USERDATA); + + if (Info == NULL && uMsg != WM_INITDIALOG) + { + return FALSE; + } + + switch (uMsg) + { + case WM_INITDIALOG: + { + Info = (PMAIN_WND_INFO)(((LPPROPSHEETPAGE)lParam)->lParam); + if (Info != NULL) + { + Info->PropSheet->hwndGenDlg = hwndDlg; + + SetWindowLongPtr(hwndDlg, + GWLP_USERDATA, + (LONG_PTR)Info); + GetDlgInfo(Info); + SetButtonStates(Info); + } + } + break; + + case WM_COMMAND: + switch(LOWORD(wParam)) + { + case IDC_START_TYPE: + /* Enable the 'Apply' button */ + //PropSheet_Changed(GetParent(hwndDlg), hwndDlg); + break; + + case IDC_START: + SendMessage(Info->hMainWnd, WM_COMMAND, ID_START, 0); + break; + + case IDC_STOP: + SendMessage(Info->hMainWnd, WM_COMMAND, ID_STOP, 0); + break; + + case IDC_PAUSE: + SendMessage(Info->hMainWnd, WM_COMMAND, ID_PAUSE, 0); + break; + + case IDC_RESUME: + SendMessage(Info->hMainWnd, WM_COMMAND, ID_RESUME, 0); + break; + + case IDC_START_PARAM: + /* Enable the 'Apply' button */ + //PropSheet_Changed(GetParent(hwndDlg), hwndDlg); + break; + + } + break; + + case WM_DESTROY: + break; + + case WM_NOTIFY: + { + LPNMHDR lpnm = (LPNMHDR)lParam; + + switch (lpnm->code) + { + case MCN_SELECT: + /* Enable the 'Apply' button */ + PropSheet_Changed(GetParent(hwndDlg), hwndDlg); + break; + } + } + break; + } + + return FALSE; +} + + + +/* + * Dependancies Property dialog callback. + * Controls messages to the Dependancies dialog + */ +static INT_PTR CALLBACK +DependanciesPageProc(HWND hwndDlg, + UINT uMsg, + WPARAM wParam, + LPARAM lParam) +{ + PMAIN_WND_INFO Info; + + /* Get the window context */ + Info = (PMAIN_WND_INFO)GetWindowLongPtr(hwndDlg, + GWLP_USERDATA); + + if (Info == NULL && uMsg != WM_INITDIALOG) + { + return FALSE; + } + + switch (uMsg) + { + case WM_INITDIALOG: + { + Info = (PMAIN_WND_INFO)(((LPPROPSHEETPAGE)lParam)->lParam); + if (Info != NULL) + { + Info->PropSheet->hwndDepDlg = hwndDlg; + + SetWindowLongPtr(hwndDlg, + GWLP_USERDATA, + (LONG_PTR)Info); + } + } + break; + + case WM_COMMAND: + switch(LOWORD(wParam)) + { + + } + break; + + case WM_DESTROY: + break; + + case WM_NOTIFY: + { + LPNMHDR lpnm = (LPNMHDR)lParam; + + switch (lpnm->code) + { + + } + + } + break; + } + + return FALSE; +} + + +static INT CALLBACK +AddEditButton(HWND hwnd, UINT message, LPARAM lParam) +{ + HWND hEditButton; + + switch (message) + { + case PSCB_PRECREATE: + /*hEditButton = CreateWindowEx(0, + WC_BUTTON, + NULL, + WS_CHILD | WS_VISIBLE, + 20, 300, 30, 15, + hwnd, + NULL, + hInstance, + NULL); + if (hEditButton == NULL) + GetError(0);*/ + + hEditButton = GetDlgItem(hwnd, PSBTN_OK); + DestroyWindow(hEditButton); + //SetWindowText(hEditButton, _T("test")); + + return TRUE; + } + return TRUE; +} + + + + +static VOID +InitPropSheetPage(PROPSHEETPAGE *psp, + PMAIN_WND_INFO Info, + WORD idDlg, + DLGPROC DlgProc) +{ + ZeroMemory(psp, sizeof(PROPSHEETPAGE)); + psp->dwSize = sizeof(PROPSHEETPAGE); + psp->dwFlags = PSP_DEFAULT; + psp->hInstance = hInstance; + psp->pszTemplate = MAKEINTRESOURCE(idDlg); + psp->pfnDlgProc = DlgProc; + psp->lParam = (LPARAM)Info; +} + + +LONG APIENTRY +OpenPropSheet(PMAIN_WND_INFO Info) +{ + PROPSHEETHEADER psh; + PROPSHEETPAGE psp[2]; + + ZeroMemory(&psh, sizeof(PROPSHEETHEADER)); + psh.dwSize = sizeof(PROPSHEETHEADER); + psh.dwFlags = PSH_PROPSHEETPAGE | PSH_PROPTITLE | PSH_USECALLBACK; + psh.hwndParent = Info->hMainWnd; + psh.hInstance = hInstance; + psh.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_SM_ICON)); + psh.pszCaption = Info->CurrentService->lpDisplayName; + psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE); + psh.nStartPage = 0; + psh.pfnCallback = AddEditButton; + psh.ppsp = psp; + + + InitPropSheetPage(&psp[0], Info, IDD_DLG_GENERAL, GeneralPageProc); + //InitPropSheetPage(&psp[1], Info, IDD_DLG_GENERAL, LogonPageProc); + //InitPropSheetPage(&psp[2], Info, IDD_DLG_GENERAL, RecoveryPageProc); + InitPropSheetPage(&psp[1], Info, IDD_DLG_DEPEND, DependanciesPageProc); + + return (LONG)(PropertySheet(&psh) != -1); +} + diff --git a/reactos/base/applications/servman/query.c b/reactos/base/applications/servman/query.c index b8bedf614ea..8196dada2cf 100644 --- a/reactos/base/applications/servman/query.c +++ b/reactos/base/applications/servman/query.c @@ -1,548 +1,548 @@ -/* - * PROJECT: ReactOS Services - * LICENSE: GPL - See COPYING in the top level directory - * FILE: base/system/servman/query.c - * PURPOSE: Query service information - * COPYRIGHT: Copyright 2005 - 2006 Ged Murphy - * - */ - -#include "precomp.h" - - -ENUM_SERVICE_STATUS_PROCESS* -GetSelectedService(PMAIN_WND_INFO Info) -{ - LVITEM lvItem; - - lvItem.mask = LVIF_PARAM; - lvItem.iItem = Info->SelectedItem; - SendMessage(Info->hListView, - LVM_GETITEM, - 0, - (LPARAM)&lvItem); - - /* return pointer to selected service */ - return (ENUM_SERVICE_STATUS_PROCESS *)lvItem.lParam; -} - - -/* Sets the service description in the registry */ -BOOL SetDescription(LPTSTR ServiceName, LPTSTR Description) -{ - HKEY hKey; - LPCTSTR Path = _T("System\\CurrentControlSet\\Services\\%s"); - TCHAR buf[300]; - TCHAR szBuf[MAX_PATH]; - LONG val; - - - /* open the registry key for the service */ - _sntprintf(buf, sizeof(buf) / sizeof(TCHAR), Path, ServiceName); - RegOpenKeyEx(HKEY_LOCAL_MACHINE, - buf, - 0, - KEY_WRITE, - &hKey); - - - if ((val = RegSetValueEx(hKey, - _T("Description"), - 0, - REG_SZ, - (LPBYTE)Description, - (DWORD)lstrlen(szBuf)+1)) != ERROR_SUCCESS) - { - //GetError(val); - return FALSE; - } - - - RegCloseKey(hKey); - return TRUE; -} - - - -/* Retrives the service description from the registry */ -BOOL GetDescription(LPTSTR lpServiceName, LPTSTR *retDescription) -{ - HKEY hKey; - LPTSTR Description = NULL; - DWORD dwValueSize = 0; - LONG ret; - LPCTSTR Path = _T("System\\CurrentControlSet\\Services\\%s"); - TCHAR buf[300]; - - /* open the registry key for the service */ - _sntprintf(buf, sizeof(buf) / sizeof(TCHAR), Path, lpServiceName); - RegOpenKeyEx(HKEY_LOCAL_MACHINE, - buf, - 0, - KEY_READ, - &hKey); - - ret = RegQueryValueEx(hKey, - _T("Description"), - NULL, - NULL, - NULL, - &dwValueSize); - if (ret != ERROR_SUCCESS && ret != ERROR_FILE_NOT_FOUND && ret != ERROR_INVALID_HANDLE) - { - RegCloseKey(hKey); - return FALSE; - } - - if (ret != ERROR_FILE_NOT_FOUND) - { - Description = HeapAlloc(ProcessHeap, - HEAP_ZERO_MEMORY, - dwValueSize); - if (Description == NULL) - { - RegCloseKey(hKey); - return FALSE; - } - - if(RegQueryValueEx(hKey, - _T("Description"), - NULL, - NULL, - (LPBYTE)Description, - &dwValueSize)) - { - HeapFree(ProcessHeap, - 0, - Description); - RegCloseKey(hKey); - return FALSE; - } - } - - /* copy pointer over */ - *retDescription = Description; - - return TRUE; -} - - -/* get vendor of service binary */ -BOOL -GetExecutablePath(PMAIN_WND_INFO Info, - LPTSTR *ExePath) -{ - SC_HANDLE hSCManager = NULL; - SC_HANDLE hSc = NULL; - LPQUERY_SERVICE_CONFIG pServiceConfig = NULL; - DWORD BytesNeeded = 0; - - /* open handle to the SCM */ - hSCManager = OpenSCManager(NULL, - NULL, - SC_MANAGER_ENUMERATE_SERVICE); - if (hSCManager == NULL) - { - GetError(); - return FALSE; - } - - /* get a handle to the service requested for starting */ - hSc = OpenService(hSCManager, - Info->CurrentService->lpServiceName, - SERVICE_QUERY_CONFIG); - if (hSc == NULL) - { - GetError(); - goto cleanup; - } - - - if (!QueryServiceConfig(hSc, - pServiceConfig, - 0, - &BytesNeeded)) - { - if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) - { - pServiceConfig = (LPQUERY_SERVICE_CONFIG) - HeapAlloc(ProcessHeap, - 0, - BytesNeeded); - if (pServiceConfig == NULL) - goto cleanup; - - if (!QueryServiceConfig(hSc, - pServiceConfig, - BytesNeeded, - &BytesNeeded)) - { - HeapFree(ProcessHeap, - 0, - pServiceConfig); - goto cleanup; - } - } - else /* exit on failure */ - { - goto cleanup; - } - } - - *ExePath = pServiceConfig->lpBinaryPathName; - - CloseServiceHandle(hSCManager); - CloseServiceHandle(hSc); - - return TRUE; - -cleanup: - if (hSCManager != NULL) - CloseServiceHandle(hSCManager); - if (hSc != NULL) - CloseServiceHandle(hSc); - return FALSE; -} - - -static VOID -InitListViewImage(PMAIN_WND_INFO Info) -{ - HICON hSmIconItem, hLgIconItem; /* icon for list-view items */ - HIMAGELIST hSmall, hLarge; /* image list for other views */ - - - /* Create the icon image lists */ - hSmall = ImageList_Create(GetSystemMetrics(SM_CXSMICON), - GetSystemMetrics(SM_CYSMICON), - ILC_MASK | ILC_COLOR32, - 1, - 1); - - hLarge = ImageList_Create(GetSystemMetrics(SM_CXICON), - GetSystemMetrics(SM_CYICON), - ILC_MASK | ILC_COLOR32, - 1, - 1); - - /* Add an icon to each image list */ - hSmIconItem = LoadImage(hInstance, - MAKEINTRESOURCE(IDI_SM_ICON), - IMAGE_ICON, - 16, - 16, - 0); - - ImageList_AddIcon(hSmall, - hSmIconItem); - - hLgIconItem = LoadImage(hInstance, - MAKEINTRESOURCE(IDI_SM_ICON), - IMAGE_ICON, - 32, - 32, - 0); - - ImageList_AddIcon(hLarge, - hLgIconItem); - - /* assign the image to the list view */ - (void)ListView_SetImageList(Info->hListView, - hSmall, - LVSIL_SMALL); - (void)ListView_SetImageList(Info->hListView, - hLarge, - LVSIL_NORMAL); - -} - - - -BOOL -RefreshServiceList(PMAIN_WND_INFO Info) -{ - LVITEM lvItem; - TCHAR szNumServices[32]; - TCHAR szStatus[64]; - DWORD NumServices = 0; - DWORD Index; - LPCTSTR Path = _T("System\\CurrentControlSet\\Services\\%s"); - - (void)ListView_DeleteAllItems(Info->hListView); - - InitListViewImage(Info); - - NumServices = GetServiceList(Info); - - if (NumServices) - { - TCHAR buf[300]; /* buffer to hold key path */ - INT NumListedServ = 0; /* how many services were listed */ - - for (Index = 0; Index < NumServices; Index++) - { - HKEY hKey = NULL; - LPTSTR Description = NULL; - LPTSTR LogOnAs = NULL; - DWORD StartUp = 0; - DWORD dwValueSize; - - /* open the registry key for the service */ - _sntprintf(buf, - 300, - Path, - Info->pServiceStatus[Index].lpServiceName); - - RegOpenKeyEx(HKEY_LOCAL_MACHINE, - buf, - 0, - KEY_READ, - &hKey); - - - /* set the display name */ - ZeroMemory(&lvItem, sizeof(LVITEM)); - lvItem.mask = LVIF_TEXT | LVIF_PARAM; - lvItem.pszText = Info->pServiceStatus[Index].lpDisplayName; - - /* Set a pointer for each service so we can query it later. - * Not all services are added to the list, so we can't query - * the item number as they become out of sync with the array */ - lvItem.lParam = (LPARAM)&Info->pServiceStatus[Index]; - - lvItem.iItem = ListView_GetItemCount(Info->hListView); - lvItem.iItem = ListView_InsertItem(Info->hListView, &lvItem); - - - - /* set the description */ - if (GetDescription(Info->pServiceStatus[Index].lpServiceName, &Description)) - { - lvItem.pszText = Description; - lvItem.iSubItem = 1; - SendMessage(Info->hListView, - LVM_SETITEMTEXT, - lvItem.iItem, - (LPARAM)&lvItem); - - HeapFree(ProcessHeap, - 0, - Description); - } - - - /* set the status */ - if (Info->pServiceStatus[Index].ServiceStatusProcess.dwCurrentState == SERVICE_RUNNING) - { - LoadString(hInstance, - IDS_SERVICES_STARTED, - szStatus, - sizeof(szStatus) / sizeof(TCHAR)); - lvItem.pszText = szStatus; - lvItem.iSubItem = 2; - SendMessage(Info->hListView, - LVM_SETITEMTEXT, - lvItem.iItem, - (LPARAM)&lvItem); - } - - - - /* set the startup type */ - dwValueSize = sizeof(DWORD); - if (RegQueryValueEx(hKey, - _T("Start"), - NULL, - NULL, - (LPBYTE)&StartUp, - &dwValueSize)) - { - RegCloseKey(hKey); - continue; - } - - if (StartUp == 0x02) - { - LoadString(hInstance, - IDS_SERVICES_AUTO, - szStatus, - sizeof(szStatus) / sizeof(TCHAR)); - lvItem.pszText = szStatus; - lvItem.iSubItem = 3; - SendMessage(Info->hListView, - LVM_SETITEMTEXT, - lvItem.iItem, - (LPARAM)&lvItem); - } - else if (StartUp == 0x03) - { - LoadString(hInstance, - IDS_SERVICES_MAN, - szStatus, - sizeof(szStatus) / sizeof(TCHAR)); - lvItem.pszText = szStatus; - lvItem.iSubItem = 3; - SendMessage(Info->hListView, - LVM_SETITEMTEXT, - lvItem.iItem, - (LPARAM)&lvItem); - } - else if (StartUp == 0x04) - { - LoadString(hInstance, - IDS_SERVICES_DIS, - szStatus, - sizeof(szStatus) / sizeof(TCHAR)); - lvItem.pszText = szStatus; - lvItem.iSubItem = 3; - SendMessage(Info->hListView, - LVM_SETITEMTEXT, - lvItem.iItem, - (LPARAM)&lvItem); - } - - - - /* set Log On As */ - dwValueSize = 0; - if (RegQueryValueEx(hKey, - _T("ObjectName"), - NULL, - NULL, - NULL, - &dwValueSize)) - { - RegCloseKey(hKey); - continue; - } - - LogOnAs = HeapAlloc(ProcessHeap, - HEAP_ZERO_MEMORY, - dwValueSize); - if (LogOnAs == NULL) - { - RegCloseKey(hKey); - return FALSE; - } - if(RegQueryValueEx(hKey, - _T("ObjectName"), - NULL, - NULL, - (LPBYTE)LogOnAs, - &dwValueSize)) - { - HeapFree(ProcessHeap, - 0, - LogOnAs); - RegCloseKey(hKey); - continue; - } - - lvItem.pszText = LogOnAs; - lvItem.iSubItem = 4; - SendMessage(Info->hListView, - LVM_SETITEMTEXT, - lvItem.iItem, - (LPARAM)&lvItem); - - HeapFree(ProcessHeap, - 0, - LogOnAs); - - RegCloseKey(hKey); - - } - - NumListedServ = ListView_GetItemCount(Info->hListView); - - /* set the number of listed services in the status bar */ - LoadString(hInstance, - IDS_NUM_SERVICES, - szNumServices, - sizeof(szNumServices) / sizeof(TCHAR)); - - _sntprintf(buf, - 300, - szNumServices, - NumListedServ); - - SendMessage(Info->hStatus, - SB_SETTEXT, - 0, - (LPARAM)buf); - } - - /* turn redraw flag on. It's turned off initially via the LBS_NOREDRAW flag */ - SendMessage (Info->hListView, - WM_SETREDRAW, - TRUE, - 0) ; - - return TRUE; -} - - - - -DWORD -GetServiceList(PMAIN_WND_INFO Info) -{ - SC_HANDLE ScHandle; - - DWORD BytesNeeded = 0; - DWORD ResumeHandle = 0; - DWORD NumServices = 0; - - ScHandle = OpenSCManager(NULL, NULL, SC_MANAGER_ENUMERATE_SERVICE); - if (ScHandle != INVALID_HANDLE_VALUE) - { - if (EnumServicesStatusEx(ScHandle, - SC_ENUM_PROCESS_INFO, - SERVICE_WIN32, - SERVICE_STATE_ALL, - (LPBYTE)Info->pServiceStatus, - 0, &BytesNeeded, - &NumServices, - &ResumeHandle, - 0) == 0) - { - /* Call function again if required size was returned */ - if (GetLastError() == ERROR_MORE_DATA) - { - /* reserve memory for service info array */ - Info->pServiceStatus = (ENUM_SERVICE_STATUS_PROCESS *) - HeapAlloc(ProcessHeap, - 0, - BytesNeeded); - if (Info->pServiceStatus == NULL) - return FALSE; - - /* fill array with service info */ - if (EnumServicesStatusEx(ScHandle, - SC_ENUM_PROCESS_INFO, - SERVICE_WIN32, - SERVICE_STATE_ALL, - (LPBYTE)Info->pServiceStatus, - BytesNeeded, - &BytesNeeded, - &NumServices, - &ResumeHandle, - 0) == 0) - { - HeapFree(ProcessHeap, - 0, - Info->pServiceStatus); - return FALSE; - } - } - else /* exit on failure */ - { - return FALSE; - } - } - } - - CloseServiceHandle(ScHandle); - - return NumServices; -} +/* + * PROJECT: ReactOS Services + * LICENSE: GPL - See COPYING in the top level directory + * FILE: base/system/servman/query.c + * PURPOSE: Query service information + * COPYRIGHT: Copyright 2005 - 2006 Ged Murphy + * + */ + +#include "precomp.h" + + +ENUM_SERVICE_STATUS_PROCESS* +GetSelectedService(PMAIN_WND_INFO Info) +{ + LVITEM lvItem; + + lvItem.mask = LVIF_PARAM; + lvItem.iItem = Info->SelectedItem; + SendMessage(Info->hListView, + LVM_GETITEM, + 0, + (LPARAM)&lvItem); + + /* return pointer to selected service */ + return (ENUM_SERVICE_STATUS_PROCESS *)lvItem.lParam; +} + + +/* Sets the service description in the registry */ +BOOL SetDescription(LPTSTR ServiceName, LPTSTR Description) +{ + HKEY hKey; + LPCTSTR Path = _T("System\\CurrentControlSet\\Services\\%s"); + TCHAR buf[300]; + TCHAR szBuf[MAX_PATH]; + LONG val; + + + /* open the registry key for the service */ + _sntprintf(buf, sizeof(buf) / sizeof(TCHAR), Path, ServiceName); + RegOpenKeyEx(HKEY_LOCAL_MACHINE, + buf, + 0, + KEY_WRITE, + &hKey); + + + if ((val = RegSetValueEx(hKey, + _T("Description"), + 0, + REG_SZ, + (LPBYTE)Description, + (DWORD)lstrlen(szBuf)+1)) != ERROR_SUCCESS) + { + //GetError(val); + return FALSE; + } + + + RegCloseKey(hKey); + return TRUE; +} + + + +/* Retrives the service description from the registry */ +BOOL GetDescription(LPTSTR lpServiceName, LPTSTR *retDescription) +{ + HKEY hKey; + LPTSTR Description = NULL; + DWORD dwValueSize = 0; + LONG ret; + LPCTSTR Path = _T("System\\CurrentControlSet\\Services\\%s"); + TCHAR buf[300]; + + /* open the registry key for the service */ + _sntprintf(buf, sizeof(buf) / sizeof(TCHAR), Path, lpServiceName); + RegOpenKeyEx(HKEY_LOCAL_MACHINE, + buf, + 0, + KEY_READ, + &hKey); + + ret = RegQueryValueEx(hKey, + _T("Description"), + NULL, + NULL, + NULL, + &dwValueSize); + if (ret != ERROR_SUCCESS && ret != ERROR_FILE_NOT_FOUND && ret != ERROR_INVALID_HANDLE) + { + RegCloseKey(hKey); + return FALSE; + } + + if (ret != ERROR_FILE_NOT_FOUND) + { + Description = HeapAlloc(ProcessHeap, + HEAP_ZERO_MEMORY, + dwValueSize); + if (Description == NULL) + { + RegCloseKey(hKey); + return FALSE; + } + + if(RegQueryValueEx(hKey, + _T("Description"), + NULL, + NULL, + (LPBYTE)Description, + &dwValueSize)) + { + HeapFree(ProcessHeap, + 0, + Description); + RegCloseKey(hKey); + return FALSE; + } + } + + /* copy pointer over */ + *retDescription = Description; + + return TRUE; +} + + +/* get vendor of service binary */ +BOOL +GetExecutablePath(PMAIN_WND_INFO Info, + LPTSTR *ExePath) +{ + SC_HANDLE hSCManager = NULL; + SC_HANDLE hSc = NULL; + LPQUERY_SERVICE_CONFIG pServiceConfig = NULL; + DWORD BytesNeeded = 0; + + /* open handle to the SCM */ + hSCManager = OpenSCManager(NULL, + NULL, + SC_MANAGER_ENUMERATE_SERVICE); + if (hSCManager == NULL) + { + GetError(); + return FALSE; + } + + /* get a handle to the service requested for starting */ + hSc = OpenService(hSCManager, + Info->CurrentService->lpServiceName, + SERVICE_QUERY_CONFIG); + if (hSc == NULL) + { + GetError(); + goto cleanup; + } + + + if (!QueryServiceConfig(hSc, + pServiceConfig, + 0, + &BytesNeeded)) + { + if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) + { + pServiceConfig = (LPQUERY_SERVICE_CONFIG) + HeapAlloc(ProcessHeap, + 0, + BytesNeeded); + if (pServiceConfig == NULL) + goto cleanup; + + if (!QueryServiceConfig(hSc, + pServiceConfig, + BytesNeeded, + &BytesNeeded)) + { + HeapFree(ProcessHeap, + 0, + pServiceConfig); + goto cleanup; + } + } + else /* exit on failure */ + { + goto cleanup; + } + } + + *ExePath = pServiceConfig->lpBinaryPathName; + + CloseServiceHandle(hSCManager); + CloseServiceHandle(hSc); + + return TRUE; + +cleanup: + if (hSCManager != NULL) + CloseServiceHandle(hSCManager); + if (hSc != NULL) + CloseServiceHandle(hSc); + return FALSE; +} + + +static VOID +InitListViewImage(PMAIN_WND_INFO Info) +{ + HICON hSmIconItem, hLgIconItem; /* icon for list-view items */ + HIMAGELIST hSmall, hLarge; /* image list for other views */ + + + /* Create the icon image lists */ + hSmall = ImageList_Create(GetSystemMetrics(SM_CXSMICON), + GetSystemMetrics(SM_CYSMICON), + ILC_MASK | ILC_COLOR32, + 1, + 1); + + hLarge = ImageList_Create(GetSystemMetrics(SM_CXICON), + GetSystemMetrics(SM_CYICON), + ILC_MASK | ILC_COLOR32, + 1, + 1); + + /* Add an icon to each image list */ + hSmIconItem = LoadImage(hInstance, + MAKEINTRESOURCE(IDI_SM_ICON), + IMAGE_ICON, + 16, + 16, + 0); + + ImageList_AddIcon(hSmall, + hSmIconItem); + + hLgIconItem = LoadImage(hInstance, + MAKEINTRESOURCE(IDI_SM_ICON), + IMAGE_ICON, + 32, + 32, + 0); + + ImageList_AddIcon(hLarge, + hLgIconItem); + + /* assign the image to the list view */ + (void)ListView_SetImageList(Info->hListView, + hSmall, + LVSIL_SMALL); + (void)ListView_SetImageList(Info->hListView, + hLarge, + LVSIL_NORMAL); + +} + + + +BOOL +RefreshServiceList(PMAIN_WND_INFO Info) +{ + LVITEM lvItem; + TCHAR szNumServices[32]; + TCHAR szStatus[64]; + DWORD NumServices = 0; + DWORD Index; + LPCTSTR Path = _T("System\\CurrentControlSet\\Services\\%s"); + + (void)ListView_DeleteAllItems(Info->hListView); + + InitListViewImage(Info); + + NumServices = GetServiceList(Info); + + if (NumServices) + { + TCHAR buf[300]; /* buffer to hold key path */ + INT NumListedServ = 0; /* how many services were listed */ + + for (Index = 0; Index < NumServices; Index++) + { + HKEY hKey = NULL; + LPTSTR Description = NULL; + LPTSTR LogOnAs = NULL; + DWORD StartUp = 0; + DWORD dwValueSize; + + /* open the registry key for the service */ + _sntprintf(buf, + 300, + Path, + Info->pServiceStatus[Index].lpServiceName); + + RegOpenKeyEx(HKEY_LOCAL_MACHINE, + buf, + 0, + KEY_READ, + &hKey); + + + /* set the display name */ + ZeroMemory(&lvItem, sizeof(LVITEM)); + lvItem.mask = LVIF_TEXT | LVIF_PARAM; + lvItem.pszText = Info->pServiceStatus[Index].lpDisplayName; + + /* Set a pointer for each service so we can query it later. + * Not all services are added to the list, so we can't query + * the item number as they become out of sync with the array */ + lvItem.lParam = (LPARAM)&Info->pServiceStatus[Index]; + + lvItem.iItem = ListView_GetItemCount(Info->hListView); + lvItem.iItem = ListView_InsertItem(Info->hListView, &lvItem); + + + + /* set the description */ + if (GetDescription(Info->pServiceStatus[Index].lpServiceName, &Description)) + { + lvItem.pszText = Description; + lvItem.iSubItem = 1; + SendMessage(Info->hListView, + LVM_SETITEMTEXT, + lvItem.iItem, + (LPARAM)&lvItem); + + HeapFree(ProcessHeap, + 0, + Description); + } + + + /* set the status */ + if (Info->pServiceStatus[Index].ServiceStatusProcess.dwCurrentState == SERVICE_RUNNING) + { + LoadString(hInstance, + IDS_SERVICES_STARTED, + szStatus, + sizeof(szStatus) / sizeof(TCHAR)); + lvItem.pszText = szStatus; + lvItem.iSubItem = 2; + SendMessage(Info->hListView, + LVM_SETITEMTEXT, + lvItem.iItem, + (LPARAM)&lvItem); + } + + + + /* set the startup type */ + dwValueSize = sizeof(DWORD); + if (RegQueryValueEx(hKey, + _T("Start"), + NULL, + NULL, + (LPBYTE)&StartUp, + &dwValueSize)) + { + RegCloseKey(hKey); + continue; + } + + if (StartUp == 0x02) + { + LoadString(hInstance, + IDS_SERVICES_AUTO, + szStatus, + sizeof(szStatus) / sizeof(TCHAR)); + lvItem.pszText = szStatus; + lvItem.iSubItem = 3; + SendMessage(Info->hListView, + LVM_SETITEMTEXT, + lvItem.iItem, + (LPARAM)&lvItem); + } + else if (StartUp == 0x03) + { + LoadString(hInstance, + IDS_SERVICES_MAN, + szStatus, + sizeof(szStatus) / sizeof(TCHAR)); + lvItem.pszText = szStatus; + lvItem.iSubItem = 3; + SendMessage(Info->hListView, + LVM_SETITEMTEXT, + lvItem.iItem, + (LPARAM)&lvItem); + } + else if (StartUp == 0x04) + { + LoadString(hInstance, + IDS_SERVICES_DIS, + szStatus, + sizeof(szStatus) / sizeof(TCHAR)); + lvItem.pszText = szStatus; + lvItem.iSubItem = 3; + SendMessage(Info->hListView, + LVM_SETITEMTEXT, + lvItem.iItem, + (LPARAM)&lvItem); + } + + + + /* set Log On As */ + dwValueSize = 0; + if (RegQueryValueEx(hKey, + _T("ObjectName"), + NULL, + NULL, + NULL, + &dwValueSize)) + { + RegCloseKey(hKey); + continue; + } + + LogOnAs = HeapAlloc(ProcessHeap, + HEAP_ZERO_MEMORY, + dwValueSize); + if (LogOnAs == NULL) + { + RegCloseKey(hKey); + return FALSE; + } + if(RegQueryValueEx(hKey, + _T("ObjectName"), + NULL, + NULL, + (LPBYTE)LogOnAs, + &dwValueSize)) + { + HeapFree(ProcessHeap, + 0, + LogOnAs); + RegCloseKey(hKey); + continue; + } + + lvItem.pszText = LogOnAs; + lvItem.iSubItem = 4; + SendMessage(Info->hListView, + LVM_SETITEMTEXT, + lvItem.iItem, + (LPARAM)&lvItem); + + HeapFree(ProcessHeap, + 0, + LogOnAs); + + RegCloseKey(hKey); + + } + + NumListedServ = ListView_GetItemCount(Info->hListView); + + /* set the number of listed services in the status bar */ + LoadString(hInstance, + IDS_NUM_SERVICES, + szNumServices, + sizeof(szNumServices) / sizeof(TCHAR)); + + _sntprintf(buf, + 300, + szNumServices, + NumListedServ); + + SendMessage(Info->hStatus, + SB_SETTEXT, + 0, + (LPARAM)buf); + } + + /* turn redraw flag on. It's turned off initially via the LBS_NOREDRAW flag */ + SendMessage (Info->hListView, + WM_SETREDRAW, + TRUE, + 0) ; + + return TRUE; +} + + + + +DWORD +GetServiceList(PMAIN_WND_INFO Info) +{ + SC_HANDLE ScHandle; + + DWORD BytesNeeded = 0; + DWORD ResumeHandle = 0; + DWORD NumServices = 0; + + ScHandle = OpenSCManager(NULL, NULL, SC_MANAGER_ENUMERATE_SERVICE); + if (ScHandle != INVALID_HANDLE_VALUE) + { + if (EnumServicesStatusEx(ScHandle, + SC_ENUM_PROCESS_INFO, + SERVICE_WIN32, + SERVICE_STATE_ALL, + (LPBYTE)Info->pServiceStatus, + 0, &BytesNeeded, + &NumServices, + &ResumeHandle, + 0) == 0) + { + /* Call function again if required size was returned */ + if (GetLastError() == ERROR_MORE_DATA) + { + /* reserve memory for service info array */ + Info->pServiceStatus = (ENUM_SERVICE_STATUS_PROCESS *) + HeapAlloc(ProcessHeap, + 0, + BytesNeeded); + if (Info->pServiceStatus == NULL) + return FALSE; + + /* fill array with service info */ + if (EnumServicesStatusEx(ScHandle, + SC_ENUM_PROCESS_INFO, + SERVICE_WIN32, + SERVICE_STATE_ALL, + (LPBYTE)Info->pServiceStatus, + BytesNeeded, + &BytesNeeded, + &NumServices, + &ResumeHandle, + 0) == 0) + { + HeapFree(ProcessHeap, + 0, + Info->pServiceStatus); + return FALSE; + } + } + else /* exit on failure */ + { + return FALSE; + } + } + } + + CloseServiceHandle(ScHandle); + + return NumServices; +} diff --git a/reactos/base/applications/servman/resource.h b/reactos/base/applications/servman/resource.h index 51b955c2271..6e7a88e1f81 100644 --- a/reactos/base/applications/servman/resource.h +++ b/reactos/base/applications/servman/resource.h @@ -1,180 +1,180 @@ -#define IDC_STATIC -1 - -/* about box info */ -#define IDD_ABOUTBOX 200 -#define IDC_LICENSE_EDIT 201 -#define IDS_APPNAME 202 -#define IDS_LICENSE 203 - -#define IDC_SERVLIST 1000 -#define IDC_STATUSBAR 1001 -#define IDC_EDIT_BUTTON 1002 - -#define ID_PROP 2000 -#define ID_REFRESH 2001 -#define ID_EXPORT 2002 -#define ID_START 2003 -#define ID_STOP 2004 -#define ID_PAUSE 2005 -#define ID_RESUME 2006 -#define ID_RESTART 2007 -#define ID_EDIT 2008 -#define ID_CREATE 2009 -#define ID_DELETE 2010 -#define ID_HELP 2011 -#define ID_EXIT 2012 -#define ID_CONNECT 2013 - -#define IDR_MAINMENU 102 -#define IDR_POPUP 103 -#define ID_VIEW_CUST 4021 -#define ID_VIEW_LARGE 4022 -#define ID_VIEW_SMALL 4023 -#define ID_VIEW_LIST 4024 -#define ID_VIEW_DETAILS 4025 -#define ID_ABOUT 4031 - -/* List view columns */ -#define IDS_FIRSTCOLUMN 1 -#define IDS_SECONDCOLUMN 2 -#define IDS_THIRDCOLUMN 3 -#define IDS_FOURTHCOLUMN 4 -#define IDS_FITHCOLUMN 5 - -/* tooltips */ -#define IDS_TOOLTIP_PROP 6000 -#define IDS_TOOLTIP_REFRESH 6001 -#define IDS_TOOLTIP_EXPORT 6002 -#define IDS_TOOLTIP_CREATE 6003 -#define IDS_TOOLTIP_DELETE 6004 -#define IDS_TOOLTIP_START 6005 -#define IDS_TOOLTIP_STOP 6006 -#define IDS_TOOLTIP_PAUSE 6007 -#define IDS_TOOLTIP_RESTART 6008 -#define IDS_TOOLTIP_HELP 6009 -#define IDS_TOOLTIP_EXIT 6010 - -#define IDS_SERVICES_STARTED 5000 -#define IDS_SERVICES_STOPPED 5001 -#define IDS_SERVICES_AUTO 5004 -#define IDS_SERVICES_MAN 5005 -#define IDS_SERVICES_DIS 5006 -#define IDS_NUM_SERVICES 5010 - -#define IDI_SM_ICON 50 -#define IDB_BUTTONS 51 - -#define IDB_PROP 10000 -#define IDB_REFRESH 10001 -#define IDB_EXPORT 10002 -#define IDB_CREATE 10003 -#define IDB_DELETE 10004 -#define IDB_START 10005 -#define IDB_STOP 10006 -#define IDB_PAUSE 10007 -#define IDB_RESTART 10008 -#define IDB_HELP 10009 -#define IDB_EXIT 10010 - -/* toolbar buttons */ -#define TBICON_PROP 0 -#define TBICON_REFRESH 1 -#define TBICON_EXPORT 2 -#define TBICON_CREATE 3 -#define TBICON_DELETE 4 -#define TBICON_START 5 -#define TBICON_STOP 6 -#define TBICON_PAUSE 7 -#define TBICON_RESTART 8 -#define TBICON_HELP 9 -#define TBICON_EXIT 10 - - -/* menu hints */ -#define IDS_HINT_BLANK 20000 -#define IDS_HINT_EXPORT 20001 -#define IDS_HINT_EXIT 20002 - -#define IDS_HINT_CONNECT 20011 -#define IDS_HINT_START 20012 -#define IDS_HINT_STOP 21013 -#define IDS_HINT_PAUSE 21014 -#define IDS_HINT_RESUME 20015 -#define IDS_HINT_RESTART 20016 -#define IDS_HINT_REFRESH 20017 -#define IDS_HINT_EDIT 20018 -#define IDS_HINT_CREATE 20019 -#define IDS_HINT_DELETE 20020 -#define IDS_HINT_PROP 20021 - -#define IDS_HINT_LARGE 20030 -#define IDS_HINT_SMALL 20031 -#define IDS_HINT_LIST 20032 -#define IDS_HINT_DETAILS 20033 -#define IDS_HINT_CUST 20034 - -#define IDS_HINT_HELP 20040 -#define IDS_HINT_ABOUT 20041 - -/* system menu hints */ -#define IDS_HINT_SYS_RESTORE 21001 -#define IDS_HINT_SYS_MOVE 21002 -#define IDS_HINT_SYS_SIZE 21003 -#define IDS_HINT_SYS_MINIMIZE 21004 -#define IDS_HINT_SYS_MAXIMIZE 21005 -#define IDS_HINT_SYS_CLOSE 21006 - - -/* properties dialog */ -#define IDD_DLG_GENERAL 10001 -#define IDC_SERV_NAME 10041 -#define IDC_DISP_NAME 10051 -#define IDC_DESCRIPTION 10061 -#define IDC_EXEPATH 10062 -#define IDC_START_TYPE 10101 -#define IDC_SERV_STATUS 10121 -#define IDC_START 10131 -#define IDC_STOP 10141 -#define IDC_PAUSE 10151 -#define IDC_RESUME 10161 -#define IDC_START_PARAM 10191 - -/* dependancies dialog */ -#define IDD_DLG_DEPEND 20001 -#define IDC_DEPEND_TREE1 20002 -#define IDC_DEPEND_TREE2 20003 -#define IDC_DEPEND_SERVICE 20004 - - -/* create service dialog */ -#define IDD_DLG_CREATE 8000 -#define IDC_CREATE_SERVNAME 8001 -#define IDC_CREATE_DISPNAME 8002 -#define IDC_CREATE_PATH 8003 -#define IDC_CREATE_DESC 8004 -#define IDC_CREATE_OPTIONS 8005 -#define ID_CREATE_HELP 8006 -#define IDD_DLG_HELP_OPTIONS 8020 -#define IDC_CREATE_HELP 8021 -#define IDS_HELP_OPTIONS 8022 -#define IDS_CREATE_SUCCESS 8023 -#define IDS_CREATE_REQ 8024 - - -/* delete service dialog */ -#define IDD_DLG_DELETE 9000 -#define IDC_DEL_GROUP 9001 -#define IDC_DEL_NAME 9002 -#define IDC_DEL_DESC 9003 -#define IDS_DELETE_STOP 9010 - - -/* progress bar */ -#define IDD_DLG_PROGRESS 7000 -#define IDC_SERVCON_PROGRESS 7001 -#define IDC_SERVCON_INFO 7002 -#define IDC_SERVCON_NAME 7003 -#define IDS_PROGRESS_INFO_START 7004 -#define IDS_PROGRESS_INFO_STOP 7005 - - +#define IDC_STATIC -1 + +/* about box info */ +#define IDD_ABOUTBOX 200 +#define IDC_LICENSE_EDIT 201 +#define IDS_APPNAME 202 +#define IDS_LICENSE 203 + +#define IDC_SERVLIST 1000 +#define IDC_STATUSBAR 1001 +#define IDC_EDIT_BUTTON 1002 + +#define ID_PROP 2000 +#define ID_REFRESH 2001 +#define ID_EXPORT 2002 +#define ID_START 2003 +#define ID_STOP 2004 +#define ID_PAUSE 2005 +#define ID_RESUME 2006 +#define ID_RESTART 2007 +#define ID_EDIT 2008 +#define ID_CREATE 2009 +#define ID_DELETE 2010 +#define ID_HELP 2011 +#define ID_EXIT 2012 +#define ID_CONNECT 2013 + +#define IDR_MAINMENU 102 +#define IDR_POPUP 103 +#define ID_VIEW_CUST 4021 +#define ID_VIEW_LARGE 4022 +#define ID_VIEW_SMALL 4023 +#define ID_VIEW_LIST 4024 +#define ID_VIEW_DETAILS 4025 +#define ID_ABOUT 4031 + +/* List view columns */ +#define IDS_FIRSTCOLUMN 1 +#define IDS_SECONDCOLUMN 2 +#define IDS_THIRDCOLUMN 3 +#define IDS_FOURTHCOLUMN 4 +#define IDS_FITHCOLUMN 5 + +/* tooltips */ +#define IDS_TOOLTIP_PROP 6000 +#define IDS_TOOLTIP_REFRESH 6001 +#define IDS_TOOLTIP_EXPORT 6002 +#define IDS_TOOLTIP_CREATE 6003 +#define IDS_TOOLTIP_DELETE 6004 +#define IDS_TOOLTIP_START 6005 +#define IDS_TOOLTIP_STOP 6006 +#define IDS_TOOLTIP_PAUSE 6007 +#define IDS_TOOLTIP_RESTART 6008 +#define IDS_TOOLTIP_HELP 6009 +#define IDS_TOOLTIP_EXIT 6010 + +#define IDS_SERVICES_STARTED 5000 +#define IDS_SERVICES_STOPPED 5001 +#define IDS_SERVICES_AUTO 5004 +#define IDS_SERVICES_MAN 5005 +#define IDS_SERVICES_DIS 5006 +#define IDS_NUM_SERVICES 5010 + +#define IDI_SM_ICON 50 +#define IDB_BUTTONS 51 + +#define IDB_PROP 10000 +#define IDB_REFRESH 10001 +#define IDB_EXPORT 10002 +#define IDB_CREATE 10003 +#define IDB_DELETE 10004 +#define IDB_START 10005 +#define IDB_STOP 10006 +#define IDB_PAUSE 10007 +#define IDB_RESTART 10008 +#define IDB_HELP 10009 +#define IDB_EXIT 10010 + +/* toolbar buttons */ +#define TBICON_PROP 0 +#define TBICON_REFRESH 1 +#define TBICON_EXPORT 2 +#define TBICON_CREATE 3 +#define TBICON_DELETE 4 +#define TBICON_START 5 +#define TBICON_STOP 6 +#define TBICON_PAUSE 7 +#define TBICON_RESTART 8 +#define TBICON_HELP 9 +#define TBICON_EXIT 10 + + +/* menu hints */ +#define IDS_HINT_BLANK 20000 +#define IDS_HINT_EXPORT 20001 +#define IDS_HINT_EXIT 20002 + +#define IDS_HINT_CONNECT 20011 +#define IDS_HINT_START 20012 +#define IDS_HINT_STOP 21013 +#define IDS_HINT_PAUSE 21014 +#define IDS_HINT_RESUME 20015 +#define IDS_HINT_RESTART 20016 +#define IDS_HINT_REFRESH 20017 +#define IDS_HINT_EDIT 20018 +#define IDS_HINT_CREATE 20019 +#define IDS_HINT_DELETE 20020 +#define IDS_HINT_PROP 20021 + +#define IDS_HINT_LARGE 20030 +#define IDS_HINT_SMALL 20031 +#define IDS_HINT_LIST 20032 +#define IDS_HINT_DETAILS 20033 +#define IDS_HINT_CUST 20034 + +#define IDS_HINT_HELP 20040 +#define IDS_HINT_ABOUT 20041 + +/* system menu hints */ +#define IDS_HINT_SYS_RESTORE 21001 +#define IDS_HINT_SYS_MOVE 21002 +#define IDS_HINT_SYS_SIZE 21003 +#define IDS_HINT_SYS_MINIMIZE 21004 +#define IDS_HINT_SYS_MAXIMIZE 21005 +#define IDS_HINT_SYS_CLOSE 21006 + + +/* properties dialog */ +#define IDD_DLG_GENERAL 10001 +#define IDC_SERV_NAME 10041 +#define IDC_DISP_NAME 10051 +#define IDC_DESCRIPTION 10061 +#define IDC_EXEPATH 10062 +#define IDC_START_TYPE 10101 +#define IDC_SERV_STATUS 10121 +#define IDC_START 10131 +#define IDC_STOP 10141 +#define IDC_PAUSE 10151 +#define IDC_RESUME 10161 +#define IDC_START_PARAM 10191 + +/* dependancies dialog */ +#define IDD_DLG_DEPEND 20001 +#define IDC_DEPEND_TREE1 20002 +#define IDC_DEPEND_TREE2 20003 +#define IDC_DEPEND_SERVICE 20004 + + +/* create service dialog */ +#define IDD_DLG_CREATE 8000 +#define IDC_CREATE_SERVNAME 8001 +#define IDC_CREATE_DISPNAME 8002 +#define IDC_CREATE_PATH 8003 +#define IDC_CREATE_DESC 8004 +#define IDC_CREATE_OPTIONS 8005 +#define ID_CREATE_HELP 8006 +#define IDD_DLG_HELP_OPTIONS 8020 +#define IDC_CREATE_HELP 8021 +#define IDS_HELP_OPTIONS 8022 +#define IDS_CREATE_SUCCESS 8023 +#define IDS_CREATE_REQ 8024 + + +/* delete service dialog */ +#define IDD_DLG_DELETE 9000 +#define IDC_DEL_GROUP 9001 +#define IDC_DEL_NAME 9002 +#define IDC_DEL_DESC 9003 +#define IDS_DELETE_STOP 9010 + + +/* progress bar */ +#define IDD_DLG_PROGRESS 7000 +#define IDC_SERVCON_PROGRESS 7001 +#define IDC_SERVCON_INFO 7002 +#define IDC_SERVCON_NAME 7003 +#define IDS_PROGRESS_INFO_START 7004 +#define IDS_PROGRESS_INFO_STOP 7005 + + diff --git a/reactos/base/applications/servman/servman.c b/reactos/base/applications/servman/servman.c index ef39317615f..ef8458f12ed 100644 --- a/reactos/base/applications/servman/servman.c +++ b/reactos/base/applications/servman/servman.c @@ -1,69 +1,69 @@ -/* - * PROJECT: ReactOS Services - * LICENSE: GPL - See COPYING in the top level directory - * FILE: base/system/servman/servman.c - * PURPOSE: Program HQ - * COPYRIGHT: Copyright 2005 - 2006 Ged Murphy - * - */ - -#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 ) ) - { - //if(! IsDialogMessage(hProgDlg, &Msg) ) - //{ - TranslateMessage(&Msg); - DispatchMessage(&Msg); - //} - } - - Ret = 0; - } - - UninitMainWindowImpl(); - } - - LocalFree((HLOCAL)lpAppName); - - return Ret; -} - - - +/* + * PROJECT: ReactOS Services + * LICENSE: GPL - See COPYING in the top level directory + * FILE: base/system/servman/servman.c + * PURPOSE: Program HQ + * COPYRIGHT: Copyright 2005 - 2006 Ged Murphy + * + */ + +#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 ) ) + { + //if(! IsDialogMessage(hProgDlg, &Msg) ) + //{ + TranslateMessage(&Msg); + DispatchMessage(&Msg); + //} + } + + Ret = 0; + } + + UninitMainWindowImpl(); + } + + LocalFree((HLOCAL)lpAppName); + + return Ret; +} + + + diff --git a/reactos/base/applications/servman/servman.rc b/reactos/base/applications/servman/servman.rc index 10d95fc627e..db42b532f1a 100644 --- a/reactos/base/applications/servman/servman.rc +++ b/reactos/base/applications/servman/servman.rc @@ -1,36 +1,36 @@ -#include -#include -#include "resource.h" - - -#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Service Manager\0" -#define REACTOS_STR_INTERNAL_NAME "services\0" -#define REACTOS_STR_ORIGINAL_FILENAME "services.exe\0" -//#include - -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US - -//1 24 DISCARDABLE "manifest.xml" - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APPNAME "ReactOS Service Manager" -END - -IDI_SM_ICON ICON "res/system.ico" - -/* main toolbar icons */ -IDB_PROP BITMAP DISCARDABLE "res/properties.bmp" -IDB_REFRESH BITMAP DISCARDABLE "res/refresh.bmp" -IDB_EXPORT BITMAP DISCARDABLE "res/export.bmp" -IDB_CREATE BITMAP DISCARDABLE "res/create.bmp" -IDB_DELETE BITMAP DISCARDABLE "res/delete.bmp" -IDB_START BITMAP DISCARDABLE "res/start.bmp" -IDB_STOP BITMAP DISCARDABLE "res/stop.bmp" -IDB_PAUSE BITMAP DISCARDABLE "res/pause.bmp" -IDB_RESTART BITMAP DISCARDABLE "res/restart.bmp" -IDB_HELP BITMAP DISCARDABLE "res/help.bmp" -IDB_EXIT BITMAP DISCARDABLE "res/exit.bmp" - - -#include "En.rc" +#include +#include +#include "resource.h" + + +#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Service Manager\0" +#define REACTOS_STR_INTERNAL_NAME "services\0" +#define REACTOS_STR_ORIGINAL_FILENAME "services.exe\0" +//#include + +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +//1 24 DISCARDABLE "manifest.xml" + +STRINGTABLE DISCARDABLE +BEGIN + IDS_APPNAME "ReactOS Service Manager" +END + +IDI_SM_ICON ICON "res/system.ico" + +/* main toolbar icons */ +IDB_PROP BITMAP DISCARDABLE "res/properties.bmp" +IDB_REFRESH BITMAP DISCARDABLE "res/refresh.bmp" +IDB_EXPORT BITMAP DISCARDABLE "res/export.bmp" +IDB_CREATE BITMAP DISCARDABLE "res/create.bmp" +IDB_DELETE BITMAP DISCARDABLE "res/delete.bmp" +IDB_START BITMAP DISCARDABLE "res/start.bmp" +IDB_STOP BITMAP DISCARDABLE "res/stop.bmp" +IDB_PAUSE BITMAP DISCARDABLE "res/pause.bmp" +IDB_RESTART BITMAP DISCARDABLE "res/restart.bmp" +IDB_HELP BITMAP DISCARDABLE "res/help.bmp" +IDB_EXIT BITMAP DISCARDABLE "res/exit.bmp" + + +#include "En.rc" diff --git a/reactos/base/applications/servman/start.c b/reactos/base/applications/servman/start.c index b6102bb5f35..34bb1dd1cdd 100644 --- a/reactos/base/applications/servman/start.c +++ b/reactos/base/applications/servman/start.c @@ -1,225 +1,225 @@ -/* - * PROJECT: ReactOS Services - * LICENSE: GPL - See COPYING in the top level directory - * FILE: base/system/servman/start.c - * PURPOSE: Start a service - * COPYRIGHT: Copyright 2005 - 2006 Ged Murphy - * - */ - -#include "precomp.h" - -static BOOL -DoStartService(PMAIN_WND_INFO Info) -{ - HWND hProgBar; - SC_HANDLE hSCManager; - SC_HANDLE hSc; - SERVICE_STATUS_PROCESS ServiceStatus; - DWORD BytesNeeded = 0; - INT ArgCount = 0; - DWORD dwStartTickCount, dwOldCheckPoint; - - - /* set the progress bar range and step */ - hProgBar = GetDlgItem(Info->hProgDlg, - IDC_SERVCON_PROGRESS); - - SendMessage(hProgBar, - PBM_SETRANGE, - 0, - MAKELPARAM(0, PROGRESSRANGE)); - - SendMessage(hProgBar, - PBM_SETSTEP, - (WPARAM)1, - 0); - - /* open handle to the SCM */ - hSCManager = OpenSCManager(NULL, - NULL, - SC_MANAGER_ALL_ACCESS); - if (hSCManager == NULL) - { - GetError(); - return FALSE; - } - - /* get a handle to the service requested for starting */ - hSc = OpenService(hSCManager, - Info->CurrentService->lpServiceName, - SERVICE_ALL_ACCESS); - if (hSc == NULL) - { - GetError(); - return FALSE; - } - - /* start the service opened */ - if (! StartService(hSc, - ArgCount, - NULL)) - { - GetError(); - return FALSE; - } - - /* query the state of the service */ - if (! QueryServiceStatusEx(hSc, - SC_STATUS_PROCESS_INFO, - (LPBYTE)&ServiceStatus, - sizeof(SERVICE_STATUS_PROCESS), - &BytesNeeded)) - { - GetError(); - return FALSE; - } - - /* Save the tick count and initial checkpoint. */ - dwStartTickCount = GetTickCount(); - dwOldCheckPoint = ServiceStatus.dwCheckPoint; - - /* loop whilst service is not running */ - /* FIXME: needs more control adding. 'Loop' is temparary */ - while (ServiceStatus.dwCurrentState != SERVICE_RUNNING) - { - DWORD dwWaitTime; - - dwWaitTime = ServiceStatus.dwWaitHint / 10; - - if( dwWaitTime < 500 ) - dwWaitTime = 500; - else if ( dwWaitTime > 5000 ) - dwWaitTime = 5000; - - /* increment the progress bar */ - SendMessage(hProgBar, PBM_STEPIT, 0, 0); - - /* wait before checking status */ - Sleep(ServiceStatus.dwWaitHint / 8); - - /* check status again */ - if (! QueryServiceStatusEx(hSc, - SC_STATUS_PROCESS_INFO, - (LPBYTE)&ServiceStatus, - sizeof(SERVICE_STATUS_PROCESS), - &BytesNeeded)) - { - GetError(); - return FALSE; - } - - if (ServiceStatus.dwCheckPoint > dwOldCheckPoint) - { - /* The service is making progress. increment the progress bar */ - SendMessage(hProgBar, PBM_STEPIT, 0, 0); - dwStartTickCount = GetTickCount(); - dwOldCheckPoint = ServiceStatus.dwCheckPoint; - } - else - { - if(GetTickCount() - dwStartTickCount > ServiceStatus.dwWaitHint) - { - /* No progress made within the wait hint */ - break; - } - } - } - - CloseServiceHandle(hSc); - - if (ServiceStatus.dwCurrentState == SERVICE_RUNNING) - { - SendMessage(hProgBar, - PBM_DELTAPOS, - PROGRESSRANGE, - 0); - Sleep(1000); - return TRUE; - } - else - return FALSE; - -} - - - - -BOOL -DoStart(PMAIN_WND_INFO Info) -{ - HWND hProgDlg; - TCHAR ProgDlgBuf[100]; - - /* open the progress dialog */ - hProgDlg = CreateDialog(hInstance, - MAKEINTRESOURCE(IDD_DLG_PROGRESS), - Info->hMainWnd, - (DLGPROC)ProgressDialogProc); - if (hProgDlg != NULL) - { - ShowWindow(hProgDlg, - SW_SHOW); - - /* write the info to the progress dialog */ - LoadString(hInstance, - IDS_PROGRESS_INFO_START, - ProgDlgBuf, - sizeof(ProgDlgBuf) / sizeof(TCHAR)); - - SendDlgItemMessage(hProgDlg, - IDC_SERVCON_INFO, - WM_SETTEXT, - 0, - (LPARAM)ProgDlgBuf); - - /* write the service name to the progress dialog */ - SendDlgItemMessage(hProgDlg, - IDC_SERVCON_NAME, - WM_SETTEXT, - 0, - (LPARAM)Info->CurrentService->lpServiceName); - } - - /* start the service */ - if ( DoStartService(Info) ) - { - LVITEM item; - TCHAR szStatus[64]; - TCHAR buf[25]; - - LoadString(hInstance, - IDS_SERVICES_STARTED, - szStatus, - sizeof(szStatus) / sizeof(TCHAR)); - item.pszText = szStatus; - item.iItem = Info->SelectedItem; - item.iSubItem = 2; - SendMessage(Info->hListView, - LVM_SETITEMTEXT, - item.iItem, - (LPARAM) &item); - - /* change dialog status */ - if (Info->PropSheet != NULL) - { - LoadString(hInstance, - IDS_SERVICES_STARTED, - buf, - sizeof(buf) / sizeof(TCHAR)); - - SendDlgItemMessageW(Info->PropSheet->hwndGenDlg, - IDC_SERV_STATUS, - WM_SETTEXT, - 0, - (LPARAM)buf); - } - } - - SendMessage(hProgDlg, - WM_DESTROY, - 0, - 0); - - return TRUE; -} +/* + * PROJECT: ReactOS Services + * LICENSE: GPL - See COPYING in the top level directory + * FILE: base/system/servman/start.c + * PURPOSE: Start a service + * COPYRIGHT: Copyright 2005 - 2006 Ged Murphy + * + */ + +#include "precomp.h" + +static BOOL +DoStartService(PMAIN_WND_INFO Info) +{ + HWND hProgBar; + SC_HANDLE hSCManager; + SC_HANDLE hSc; + SERVICE_STATUS_PROCESS ServiceStatus; + DWORD BytesNeeded = 0; + INT ArgCount = 0; + DWORD dwStartTickCount, dwOldCheckPoint; + + + /* set the progress bar range and step */ + hProgBar = GetDlgItem(Info->hProgDlg, + IDC_SERVCON_PROGRESS); + + SendMessage(hProgBar, + PBM_SETRANGE, + 0, + MAKELPARAM(0, PROGRESSRANGE)); + + SendMessage(hProgBar, + PBM_SETSTEP, + (WPARAM)1, + 0); + + /* open handle to the SCM */ + hSCManager = OpenSCManager(NULL, + NULL, + SC_MANAGER_ALL_ACCESS); + if (hSCManager == NULL) + { + GetError(); + return FALSE; + } + + /* get a handle to the service requested for starting */ + hSc = OpenService(hSCManager, + Info->CurrentService->lpServiceName, + SERVICE_ALL_ACCESS); + if (hSc == NULL) + { + GetError(); + return FALSE; + } + + /* start the service opened */ + if (! StartService(hSc, + ArgCount, + NULL)) + { + GetError(); + return FALSE; + } + + /* query the state of the service */ + if (! QueryServiceStatusEx(hSc, + SC_STATUS_PROCESS_INFO, + (LPBYTE)&ServiceStatus, + sizeof(SERVICE_STATUS_PROCESS), + &BytesNeeded)) + { + GetError(); + return FALSE; + } + + /* Save the tick count and initial checkpoint. */ + dwStartTickCount = GetTickCount(); + dwOldCheckPoint = ServiceStatus.dwCheckPoint; + + /* loop whilst service is not running */ + /* FIXME: needs more control adding. 'Loop' is temparary */ + while (ServiceStatus.dwCurrentState != SERVICE_RUNNING) + { + DWORD dwWaitTime; + + dwWaitTime = ServiceStatus.dwWaitHint / 10; + + if( dwWaitTime < 500 ) + dwWaitTime = 500; + else if ( dwWaitTime > 5000 ) + dwWaitTime = 5000; + + /* increment the progress bar */ + SendMessage(hProgBar, PBM_STEPIT, 0, 0); + + /* wait before checking status */ + Sleep(ServiceStatus.dwWaitHint / 8); + + /* check status again */ + if (! QueryServiceStatusEx(hSc, + SC_STATUS_PROCESS_INFO, + (LPBYTE)&ServiceStatus, + sizeof(SERVICE_STATUS_PROCESS), + &BytesNeeded)) + { + GetError(); + return FALSE; + } + + if (ServiceStatus.dwCheckPoint > dwOldCheckPoint) + { + /* The service is making progress. increment the progress bar */ + SendMessage(hProgBar, PBM_STEPIT, 0, 0); + dwStartTickCount = GetTickCount(); + dwOldCheckPoint = ServiceStatus.dwCheckPoint; + } + else + { + if(GetTickCount() - dwStartTickCount > ServiceStatus.dwWaitHint) + { + /* No progress made within the wait hint */ + break; + } + } + } + + CloseServiceHandle(hSc); + + if (ServiceStatus.dwCurrentState == SERVICE_RUNNING) + { + SendMessage(hProgBar, + PBM_DELTAPOS, + PROGRESSRANGE, + 0); + Sleep(1000); + return TRUE; + } + else + return FALSE; + +} + + + + +BOOL +DoStart(PMAIN_WND_INFO Info) +{ + HWND hProgDlg; + TCHAR ProgDlgBuf[100]; + + /* open the progress dialog */ + hProgDlg = CreateDialog(hInstance, + MAKEINTRESOURCE(IDD_DLG_PROGRESS), + Info->hMainWnd, + (DLGPROC)ProgressDialogProc); + if (hProgDlg != NULL) + { + ShowWindow(hProgDlg, + SW_SHOW); + + /* write the info to the progress dialog */ + LoadString(hInstance, + IDS_PROGRESS_INFO_START, + ProgDlgBuf, + sizeof(ProgDlgBuf) / sizeof(TCHAR)); + + SendDlgItemMessage(hProgDlg, + IDC_SERVCON_INFO, + WM_SETTEXT, + 0, + (LPARAM)ProgDlgBuf); + + /* write the service name to the progress dialog */ + SendDlgItemMessage(hProgDlg, + IDC_SERVCON_NAME, + WM_SETTEXT, + 0, + (LPARAM)Info->CurrentService->lpServiceName); + } + + /* start the service */ + if ( DoStartService(Info) ) + { + LVITEM item; + TCHAR szStatus[64]; + TCHAR buf[25]; + + LoadString(hInstance, + IDS_SERVICES_STARTED, + szStatus, + sizeof(szStatus) / sizeof(TCHAR)); + item.pszText = szStatus; + item.iItem = Info->SelectedItem; + item.iSubItem = 2; + SendMessage(Info->hListView, + LVM_SETITEMTEXT, + item.iItem, + (LPARAM) &item); + + /* change dialog status */ + if (Info->PropSheet != NULL) + { + LoadString(hInstance, + IDS_SERVICES_STARTED, + buf, + sizeof(buf) / sizeof(TCHAR)); + + SendDlgItemMessageW(Info->PropSheet->hwndGenDlg, + IDC_SERV_STATUS, + WM_SETTEXT, + 0, + (LPARAM)buf); + } + } + + SendMessage(hProgDlg, + WM_DESTROY, + 0, + 0); + + return TRUE; +} diff --git a/reactos/base/applications/servman/stop.c b/reactos/base/applications/servman/stop.c index 8bb8a83a6ae..34a49c82f0f 100644 --- a/reactos/base/applications/servman/stop.c +++ b/reactos/base/applications/servman/stop.c @@ -1,78 +1,78 @@ -/* - * PROJECT: ReactOS Services - * LICENSE: GPL - See COPYING in the top level directory - * FILE: base/system/servman/stop.c - * PURPOSE: Stops a service - * COPYRIGHT: Copyright 2005 - 2006 Ged Murphy - * - */ - -#include "precomp.h" - -BOOL DoStop(PMAIN_WND_INFO Info) -{ - HWND hProgDlg; - TCHAR ProgDlgBuf[100]; - - /* open the progress dialog */ - hProgDlg = CreateDialog(hInstance, - MAKEINTRESOURCE(IDD_DLG_PROGRESS), - Info->hMainWnd, - (DLGPROC)ProgressDialogProc); - if (hProgDlg != NULL) - { - ShowWindow(hProgDlg, - SW_SHOW); - - /* write the info to the progress dialog */ - LoadString(hInstance, - IDS_PROGRESS_INFO_STOP, - ProgDlgBuf, - sizeof(ProgDlgBuf) / sizeof(TCHAR)); - - SendDlgItemMessage(hProgDlg, - IDC_SERVCON_INFO, - WM_SETTEXT, - 0, - (LPARAM)ProgDlgBuf); - - /* write the service name to the progress dialog */ - SendDlgItemMessage(hProgDlg, - IDC_SERVCON_NAME, - WM_SETTEXT, - 0, - (LPARAM)Info->CurrentService->lpServiceName); - } - - if ( Control(Info, SERVICE_CONTROL_STOP) ) - { - LVITEM item; - TCHAR buf[25]; - - item.pszText = _T('\0'); - item.iItem = Info->SelectedItem; - item.iSubItem = 2; - SendMessage(Info->hListView, - LVM_SETITEMTEXT, - item.iItem, - (LPARAM) &item); - - /* change dialog status */ - if (Info->PropSheet != NULL) - { - LoadString(hInstance, - IDS_SERVICES_STOPPED, - buf, - sizeof(buf) / sizeof(TCHAR)); - - SendDlgItemMessageW(Info->PropSheet->hwndGenDlg, - IDC_SERV_STATUS, WM_SETTEXT, - 0, - (LPARAM)buf); - } - } - - SendMessage(hProgDlg, WM_DESTROY, 0, 0); - - return TRUE; -} +/* + * PROJECT: ReactOS Services + * LICENSE: GPL - See COPYING in the top level directory + * FILE: base/system/servman/stop.c + * PURPOSE: Stops a service + * COPYRIGHT: Copyright 2005 - 2006 Ged Murphy + * + */ + +#include "precomp.h" + +BOOL DoStop(PMAIN_WND_INFO Info) +{ + HWND hProgDlg; + TCHAR ProgDlgBuf[100]; + + /* open the progress dialog */ + hProgDlg = CreateDialog(hInstance, + MAKEINTRESOURCE(IDD_DLG_PROGRESS), + Info->hMainWnd, + (DLGPROC)ProgressDialogProc); + if (hProgDlg != NULL) + { + ShowWindow(hProgDlg, + SW_SHOW); + + /* write the info to the progress dialog */ + LoadString(hInstance, + IDS_PROGRESS_INFO_STOP, + ProgDlgBuf, + sizeof(ProgDlgBuf) / sizeof(TCHAR)); + + SendDlgItemMessage(hProgDlg, + IDC_SERVCON_INFO, + WM_SETTEXT, + 0, + (LPARAM)ProgDlgBuf); + + /* write the service name to the progress dialog */ + SendDlgItemMessage(hProgDlg, + IDC_SERVCON_NAME, + WM_SETTEXT, + 0, + (LPARAM)Info->CurrentService->lpServiceName); + } + + if ( Control(Info, SERVICE_CONTROL_STOP) ) + { + LVITEM item; + TCHAR buf[25]; + + item.pszText = _T('\0'); + item.iItem = Info->SelectedItem; + item.iSubItem = 2; + SendMessage(Info->hListView, + LVM_SETITEMTEXT, + item.iItem, + (LPARAM) &item); + + /* change dialog status */ + if (Info->PropSheet != NULL) + { + LoadString(hInstance, + IDS_SERVICES_STOPPED, + buf, + sizeof(buf) / sizeof(TCHAR)); + + SendDlgItemMessageW(Info->PropSheet->hwndGenDlg, + IDC_SERV_STATUS, WM_SETTEXT, + 0, + (LPARAM)buf); + } + } + + SendMessage(hProgDlg, WM_DESTROY, 0, 0); + + return TRUE; +} diff --git a/reactos/base/applications/sm/win32err.c b/reactos/base/applications/sm/win32err.c index 83dd10ad9ab..ff3d8227f25 100644 --- a/reactos/base/applications/sm/win32err.c +++ b/reactos/base/applications/sm/win32err.c @@ -1,70 +1,70 @@ -/* $Id: win32err.c 16861 2005-07-29 13:46:03Z ea $ - * - * win32err.c - * - * Copyright (c) 1998 Mark Russinovich - * Systems Internals - * http://www.sysinternals.com/ - * - * -------------------------------------------------------------------- - * - * This software is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This software 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this software; see the file COPYING.LIB. If - * not, write to the Free Software Foundation, Inc., 675 Mass Ave, - * Cambridge, MA 02139, USA. - * - * -------------------------------------------------------------------- - * - * Print a Win32 error. - * - * 1999 February (Emanuele Aliberti) - * Taken from chkdskx.c and formatx.c by Mark Russinovich - * to be used in all sysutils. - */ -#include -#include - -//---------------------------------------------------------------------- -// -// PrintWin32Error -// -// Takes the win32 error code and prints the text version. -// -//---------------------------------------------------------------------- -void -PrintWin32Error( - PWCHAR Message, - DWORD ErrorCode - ) -{ - PVOID lpMsgBuf; - - FormatMessageW( - (FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM), - NULL, - ErrorCode, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPWSTR)& lpMsgBuf, - 0, - NULL - ); - wprintf( - L"%s: %s\n", - Message, - lpMsgBuf - ); - LocalFree( lpMsgBuf ); -} - - -/* EOF */ +/* $Id: win32err.c 16861 2005-07-29 13:46:03Z ea $ + * + * win32err.c + * + * Copyright (c) 1998 Mark Russinovich + * Systems Internals + * http://www.sysinternals.com/ + * + * -------------------------------------------------------------------- + * + * This software is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This software 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this software; see the file COPYING.LIB. If + * not, write to the Free Software Foundation, Inc., 675 Mass Ave, + * Cambridge, MA 02139, USA. + * + * -------------------------------------------------------------------- + * + * Print a Win32 error. + * + * 1999 February (Emanuele Aliberti) + * Taken from chkdskx.c and formatx.c by Mark Russinovich + * to be used in all sysutils. + */ +#include +#include + +//---------------------------------------------------------------------- +// +// PrintWin32Error +// +// Takes the win32 error code and prints the text version. +// +//---------------------------------------------------------------------- +void +PrintWin32Error( + PWCHAR Message, + DWORD ErrorCode + ) +{ + PVOID lpMsgBuf; + + FormatMessageW( + (FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM), + NULL, + ErrorCode, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPWSTR)& lpMsgBuf, + 0, + NULL + ); + wprintf( + L"%s: %s\n", + Message, + lpMsgBuf + ); + LocalFree( lpMsgBuf ); +} + + +/* EOF */ diff --git a/reactos/base/applications/sndvol32/Hu.rc b/reactos/base/applications/sndvol32/Hu.rc index 4534af4084e..c32f8661792 100644 --- a/reactos/base/applications/sndvol32/Hu.rc +++ b/reactos/base/applications/sndvol32/Hu.rc @@ -1,45 +1,45 @@ -/* - * Copyright 2005 Robert Horvath - Hungarian translation - talley at cubeclub.hu -*/ - -LANGUAGE LANG_HUNGARIAN, SUBLANG_NEUTRAL - -IDM_MAINMENU MENU DISCARDABLE -BEGIN - POPUP "&Beбllнtбsok" - BEGIN - MENUITEM "&Tulajdonsбgok", IDC_PROPERTIES - MENUITEM "&Rйszletes beбllнtбsok", IDC_ADVANCED_CONTROLS - MENUITEM SEPARATOR - MENUITEM "&Kilйpйs", IDC_EXIT - END - POPUP "&Sъgу" - BEGIN - MENUITEM "Sъgу &tйmбk", IDC_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "&Nйvjegy ...", IDC_ABOUT - END -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_SNDVOL32 "Hangerх szabбlyozу" - IDS_NOMIXERDEVICES "Nincsenek elйrhetх keverх eszkцzцk. A program kilйp." -END - -IDD_PREFERENCES DIALOGEX 0, 0, 224, 250 -STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Tulajdonsбgok" -FONT 8, "MS Shell Dlg", 0, 0, 0x0 -BEGIN - LTEXT "&Keverх eszkцz:", -1, 7,8,48,9 - COMBOBOX IDC_MIXERDEVICE, 55,8,162,80, CBS_DROPDOWNLIST | WS_TABSTOP - GROUPBOX "Hangerх szabбlyozбs:", -1, 7,25,211,77 - PUSHBUTTON "&Lejбtszбs", IDC_PLAYBACK, 13,43,47,8, BS_AUTORADIOBUTTON - PUSHBUTTON "&Felvйtel", IDC_RECORDING, 13,61,47,8, BS_AUTORADIOBUTTON - PUSHBUTTON "&Egyйb:", IDC_OTHER, 13,80,42,8, BS_AUTORADIOBUTTON | WS_DISABLED - COMBOBOX IDC_LINE, 55,80,155,50, CBS_DROPDOWNLIST | WS_TABSTOP | WS_DISABLED - - PUSHBUTTON "OK", IDOK, 114,226,50,14 - PUSHBUTTON "Mйgse", IDCANCEL, 168,226,50,14 -END +/* + * Copyright 2005 Robert Horvath - Hungarian translation - talley at cubeclub.hu +*/ + +LANGUAGE LANG_HUNGARIAN, SUBLANG_NEUTRAL + +IDM_MAINMENU MENU DISCARDABLE +BEGIN + POPUP "&Beбllнtбsok" + BEGIN + MENUITEM "&Tulajdonsбgok", IDC_PROPERTIES + MENUITEM "&Rйszletes beбllнtбsok", IDC_ADVANCED_CONTROLS + MENUITEM SEPARATOR + MENUITEM "&Kilйpйs", IDC_EXIT + END + POPUP "&Sъgу" + BEGIN + MENUITEM "Sъgу &tйmбk", IDC_HELP_TOPICS + MENUITEM SEPARATOR + MENUITEM "&Nйvjegy ...", IDC_ABOUT + END +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_SNDVOL32 "Hangerх szabбlyozу" + IDS_NOMIXERDEVICES "Nincsenek elйrhetх keverх eszkцzцk. A program kilйp." +END + +IDD_PREFERENCES DIALOGEX 0, 0, 224, 250 +STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Tulajdonsбgok" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + LTEXT "&Keverх eszkцz:", -1, 7,8,48,9 + COMBOBOX IDC_MIXERDEVICE, 55,8,162,80, CBS_DROPDOWNLIST | WS_TABSTOP + GROUPBOX "Hangerх szabбlyozбs:", -1, 7,25,211,77 + PUSHBUTTON "&Lejбtszбs", IDC_PLAYBACK, 13,43,47,8, BS_AUTORADIOBUTTON + PUSHBUTTON "&Felvйtel", IDC_RECORDING, 13,61,47,8, BS_AUTORADIOBUTTON + PUSHBUTTON "&Egyйb:", IDC_OTHER, 13,80,42,8, BS_AUTORADIOBUTTON | WS_DISABLED + COMBOBOX IDC_LINE, 55,80,155,50, CBS_DROPDOWNLIST | WS_TABSTOP | WS_DISABLED + + PUSHBUTTON "OK", IDOK, 114,226,50,14 + PUSHBUTTON "Mйgse", IDCANCEL, 168,226,50,14 +END diff --git a/reactos/base/applications/sndvol32/Nl.rc b/reactos/base/applications/sndvol32/Nl.rc index 0b714343f20..0c7d8fa341e 100644 --- a/reactos/base/applications/sndvol32/Nl.rc +++ b/reactos/base/applications/sndvol32/Nl.rc @@ -1,43 +1,43 @@ -LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL - -IDM_MAINMENU MENU DISCARDABLE -BEGIN - POPUP "O&pties" - BEGIN - MENUITEM "Eigenscha&ppen", IDC_PROPERTIES - MENUITEM "&Geavanceerde volumeregelingen", IDC_ADVANCED_CONTROLS - MENUITEM SEPARATOR - MENUITEM "&Afsluiten", IDC_EXIT - END - POPUP "&Help" - BEGIN - MENUITEM "Help-&onderwerpen", IDC_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "&Info", IDC_ABOUT - END -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_SNDVOL32 "Volume Control" - IDS_NOMIXERDEVICES "Er zijn geen actieve mixerapparaten beschikbaar! Deze toepassing wordt nu afgesloten." -END - -IDD_PREFERENCES DIALOGEX 0, 0, 224, 250 -STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Eigenschappen" -FONT 8, "MS Shell Dlg", 0, 0, 0x0 -BEGIN - LTEXT "&Mixerapparaat:", -1, 7,8,48,9 - COMBOBOX IDC_MIXERDEVICE, 55,8,162,80, CBS_DROPDOWNLIST | WS_TABSTOP - GROUPBOX "Volume aanpassen voor", -1, 7,25,211,77 - PUSHBUTTON "&Afspelen", IDC_PLAYBACK, 13,43,47,8, BS_AUTORADIOBUTTON - PUSHBUTTON "&Opnemen", IDC_RECORDING, 13,61,47,8, BS_AUTORADIOBUTTON - PUSHBUTTON "O&verig:", IDC_OTHER, 13,80,42,8, BS_AUTORADIOBUTTON | WS_DISABLED - COMBOBOX IDC_LINE, 55,80,155,50, CBS_DROPDOWNLIST | WS_TABSTOP | WS_DISABLED - LTEXT "De volgende volumeregelingen weergeven:", IDC_LABELCONTROLS, 7, 109, 162, 8 - CONTROL "", IDC_CONTROLS, "SysListView32", LVS_REPORT | LVS_NOCOLUMNHEADER | WS_TABSTOP | WS_BORDER, 7, 122, 211, 96 - - PUSHBUTTON "OK", IDOK, 114,226,50,14 - PUSHBUTTON "Annuleren", IDCANCEL, 168,226,50,14 -END +LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL + +IDM_MAINMENU MENU DISCARDABLE +BEGIN + POPUP "O&pties" + BEGIN + MENUITEM "Eigenscha&ppen", IDC_PROPERTIES + MENUITEM "&Geavanceerde volumeregelingen", IDC_ADVANCED_CONTROLS + MENUITEM SEPARATOR + MENUITEM "&Afsluiten", IDC_EXIT + END + POPUP "&Help" + BEGIN + MENUITEM "Help-&onderwerpen", IDC_HELP_TOPICS + MENUITEM SEPARATOR + MENUITEM "&Info", IDC_ABOUT + END +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_SNDVOL32 "Volume Control" + IDS_NOMIXERDEVICES "Er zijn geen actieve mixerapparaten beschikbaar! Deze toepassing wordt nu afgesloten." +END + +IDD_PREFERENCES DIALOGEX 0, 0, 224, 250 +STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Eigenschappen" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + LTEXT "&Mixerapparaat:", -1, 7,8,48,9 + COMBOBOX IDC_MIXERDEVICE, 55,8,162,80, CBS_DROPDOWNLIST | WS_TABSTOP + GROUPBOX "Volume aanpassen voor", -1, 7,25,211,77 + PUSHBUTTON "&Afspelen", IDC_PLAYBACK, 13,43,47,8, BS_AUTORADIOBUTTON + PUSHBUTTON "&Opnemen", IDC_RECORDING, 13,61,47,8, BS_AUTORADIOBUTTON + PUSHBUTTON "O&verig:", IDC_OTHER, 13,80,42,8, BS_AUTORADIOBUTTON | WS_DISABLED + COMBOBOX IDC_LINE, 55,80,155,50, CBS_DROPDOWNLIST | WS_TABSTOP | WS_DISABLED + LTEXT "De volgende volumeregelingen weergeven:", IDC_LABELCONTROLS, 7, 109, 162, 8 + CONTROL "", IDC_CONTROLS, "SysListView32", LVS_REPORT | LVS_NOCOLUMNHEADER | WS_TABSTOP | WS_BORDER, 7, 122, 211, 96 + + PUSHBUTTON "OK", IDOK, 114,226,50,14 + PUSHBUTTON "Annuleren", IDCANCEL, 168,226,50,14 +END diff --git a/reactos/base/applications/taskmgr/Hu.rc b/reactos/base/applications/taskmgr/Hu.rc index 7a500a18e4f..e58bba29912 100644 --- a/reactos/base/applications/taskmgr/Hu.rc +++ b/reactos/base/applications/taskmgr/Hu.rc @@ -1,686 +1,686 @@ -///////////////////////////////////////////////////////////////////////////// -// Hungaruan (HU) resources -// Resource by Robert Horvath - talley at cubeclub.hu - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_HUNGARIAN, SUBLANG_NEUTRAL -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Menu -// - -IDR_TASKMANAGER MENU DISCARDABLE -BEGIN - POPUP "&Бllomбny" - BEGIN - MENUITEM "Ъj folyamat (F&uttatбs...)", ID_FILE_NEW - MENUITEM SEPARATOR - MENUITEM "&Kilйpйs", ID_FILE_EXIT - END - POPUP "&Beбllнtбsok" - BEGIN - MENUITEM "&Mindig lбthatу", ID_OPTIONS_ALWAYSONTOP - , CHECKED - MENUITEM "&Indнtбskor kis mйret", ID_OPTIONS_MINIMIZEONUSE - , CHECKED - MENUITEM "&Elrejtйs kis mйretnйl", ID_OPTIONS_HIDEWHENMINIMIZED - , CHECKED - MENUITEM "&16bites feladatok megjelenнtйse", ID_OPTIONS_SHOW16BITTASKS - , CHECKED - END - POPUP "&Nйzet" - BEGIN - MENUITEM "&Frissнtйs most", ID_VIEW_REFRESH - POPUP "&Frissнtйs sebessйge" - BEGIN - MENUITEM "&Gyakran", ID_VIEW_UPDATESPEED_HIGH - MENUITEM "&Normбl", ID_VIEW_UPDATESPEED_NORMAL - , CHECKED - MENUITEM "&Ritkбn", ID_VIEW_UPDATESPEED_LOW - MENUITEM "&Felfьggesztve", ID_VIEW_UPDATESPEED_PAUSED - - END - MENUITEM SEPARATOR - MENUITEM "&Nagy ikonok", ID_VIEW_LARGE - MENUITEM "&Kis ikonok", ID_VIEW_SMALL - MENUITEM "Rйs&zletek", ID_VIEW_DETAILS, CHECKED - MENUITEM "&Oszlopok kivбlasztбsa...", ID_VIEW_SELECTCOLUMNS - POPUP "&CPU hasznбlat" - BEGIN - MENUITEM "Minden CPU &egy grafikonon", ID_VIEW_CPUHISTORY_ONEGRAPHALL - - MENUITEM "Kьlцn grafikon &minden CPU-hoz", ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU - , CHECKED - END - MENUITEM "&Kernel idх megjelenнtйse", ID_VIEW_SHOWKERNELTIMES - END - POPUP "&Ablak" - BEGIN - MENUITEM "&Vнzszintes rendezйs", ID_WINDOWS_TILEHORIZONTALLY - MENUITEM "&Fьggхleges rendezйs", ID_WINDOWS_TILEVERTICALLY - MENUITEM "&Elrejtйs", ID_WINDOWS_MINIMIZE - MENUITEM "&Teljes mйret", ID_WINDOWS_MAXIMIZE - MENUITEM "&Lйpcsхzetes rendezйs", ID_WINDOWS_CASCADE - MENUITEM "&Elхtйrbe helyezйs", ID_WINDOWS_BRINGTOFRONT - END - POPUP "&Sъgу" - BEGIN - MENUITEM "&Tйmakцrцk", ID_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "&Nйvjegy", ID_HELP_ABOUT - END -END - -IDR_WINDOWSMENU MENU DISCARDABLE -BEGIN - MENUITEM "&Vнzszintes rendezйs", ID_WINDOWS_TILEHORIZONTALLY - MENUITEM "&Fьggхleges rendezйs", ID_WINDOWS_TILEVERTICALLY - MENUITEM "&Elrejtйs", ID_WINDOWS_MINIMIZE - MENUITEM "&Nagy mйret", ID_WINDOWS_MAXIMIZE - MENUITEM "&Lйpcsхzetes rendezйs", ID_WINDOWS_CASCADE - MENUITEM "&Elхtйrbe helyezйs", ID_WINDOWS_BRINGTOFRONT -END - -IDR_APPLICATION_PAGE_CONTEXT1 MENU DISCARDABLE -BEGIN - POPUP "DUMMY" - BEGIN - MENUITEM "&Ъj feladat (Futtatбs...)", ID_FILE_NEW - MENUITEM SEPARATOR - MENUITEM "&Nagy ikonok", ID_VIEW_LARGE - MENUITEM "&Kis ikonok", ID_VIEW_SMALL - MENUITEM "&Rйszletek", ID_VIEW_DETAILS, CHECKED - END -END - -IDR_APPLICATION_PAGE_CONTEXT2 MENU DISCARDABLE -BEGIN - POPUP "DUMMY" - BEGIN - MENUITEM "&Vбltбs", ID_APPLICATION_PAGE_SWITCHTO - MENUITEM "&Elхtйrbe helyezйs", ID_WINDOWS_BRINGTOFRONT - MENUITEM SEPARATOR - MENUITEM "&Vнzszintes rendezйs", ID_WINDOWS_TILEHORIZONTALLY - MENUITEM "&Fьggхleges rendezйs", ID_WINDOWS_TILEVERTICALLY - MENUITEM "&Elrejtйs", ID_WINDOWS_MINIMIZE - MENUITEM "&Nagy mйret", ID_WINDOWS_MAXIMIZE - MENUITEM "&Lйpcsхzetes rendezйs", ID_WINDOWS_CASCADE - MENUITEM SEPARATOR - MENUITEM "&Feladat befejezйse", ID_APPLICATION_PAGE_ENDTASK - MENUITEM "&Ugrбs a folyamatra", ID_APPLICATION_PAGE_GOTOPROCESS - - END -END - -IDR_TRAY_POPUP MENU DISCARDABLE -BEGIN - POPUP "DUMMY" - BEGIN - MENUITEM "&Vissza бllнt", ID_RESTORE - MENUITEM "&Bezбrбs", ID_FILE_EXIT - MENUITEM SEPARATOR - MENUITEM "&Mindig lбthatу", ID_OPTIONS_ALWAYSONTOP - END -END - -IDR_PROCESS_PAGE_CONTEXT MENU DISCARDABLE -BEGIN - POPUP "DUMMY" - BEGIN - MENUITEM "&Folyamat befejezйse", ID_PROCESS_PAGE_ENDPROCESS - MENUITEM "Folyamat &struktъra leбllнtбsa", ID_PROCESS_PAGE_ENDPROCESSTREE - - MENUITEM "&Hibakeresйs", ID_PROCESS_PAGE_DEBUG - MENUITEM SEPARATOR - POPUP "&Prioritбs beбllнtбsa" - BEGIN - MENUITEM "&Valуsidejы", ID_PROCESS_PAGE_SETPRIORITY_REALTIME - - MENUITEM "&Magas", ID_PROCESS_PAGE_SETPRIORITY_HIGH - - MENUITEM "Ma&gasabb", ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL - - MENUITEM "&Normбl", ID_PROCESS_PAGE_SETPRIORITY_NORMAL - - MENUITEM "&Alacsonyabb", ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL - - MENUITEM "A&lacsony", ID_PROCESS_PAGE_SETPRIORITY_LOW - - END - MENUITEM "&Processzorok hasznбlata...", ID_PROCESS_PAGE_SETAFFINITY - MENUITEM "Hibakeresх &csatornбk...", ID_PROCESS_PAGE_DEBUGCHANNELS - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_ABOUTBOX DIALOG DISCARDABLE 22, 17, 259, 210 -STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU -CAPTION "ReactOS Feladatkezelх" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Feladatkezelх /Task Manager/ v1.0\nCopyright (C) 1999 - 2001\nby Brian Palmer (brianp@reactos.org)", - IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,53,28, - 122,26 - DEFPUSHBUTTON "OK",IDOK,183,189,44,14,WS_GROUP - ICON IDI_TASKMANAGER,IDC_STATIC,19,30,20,20 - EDITTEXT IDC_LICENSE_EDIT,53,63,174,107,ES_MULTILINE | - ES_READONLY | WS_VSCROLL -END - -IDD_TASKMGR_DIALOG DIALOG DISCARDABLE 0, 0, 264, 246 -STYLE DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | - WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU | - WS_THICKFRAME -CAPTION "Feladatkezelх" -MENU IDR_TASKMANAGER -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Tab1",IDC_TAB,"SysTabControl32",WS_TABSTOP,3,3,257,228 -END - -IDD_APPLICATION_PAGE DIALOG DISCARDABLE 0, 0, 247, 210 -STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "List2",IDC_APPLIST,"SysListView32",LVS_REPORT | - LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,7,7,233,177 - PUSHBUTTON "Ъj &folyamat...",IDC_NEWTASK,187,189,53,14 - PUSHBUTTON "&Vбltбs",IDC_SWITCHTO,131,189,53,14,WS_DISABLED - PUSHBUTTON "Fela&dat befejezйse",IDC_ENDTASK,75,189,53,14,WS_DISABLED -END - -IDD_PROCESS_PAGE DIALOG DISCARDABLE 0, 0, 247, 210 -STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "List2",IDC_PROCESSLIST,"SysListView32",LVS_REPORT | - LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_OWNERDATA | - WS_BORDER | WS_TABSTOP,7,7,233,177 - PUSHBUTTON "&Folyamat befejezйse",IDC_ENDPROCESS,171,189,69,14 - CONTROL "Minden felhasznбlу folya&matait jelenнtse meg",IDC_SHOWALLPROCESSES, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,191,111,10 -END - -//IDD_PERFORMANCE_PAGE DIALOGEX 0, 0, 247, 210 -IDD_PERFORMANCE_PAGE DIALOGEX DISCARDABLE 0, 0, 247, 210 -STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN -FONT 8, "MS Shell Dlg" -BEGIN - GROUPBOX "CPU hasznбlat",IDC_CPU_USAGE_FRAME,5,5,60,54,WS_TABSTOP, WS_EX_TRANSPARENT - GROUPBOX "Memуria hasznбlat",IDC_MEM_USAGE_FRAME,5,63,60,54,BS_LEFTTEXT, WS_EX_TRANSPARENT - GROUPBOX "Totals",IDC_TOTALS_FRAME,5,122,111,39,0,WS_EX_TRANSPARENT - GROUPBOX "Commit Charge (K)",IDC_COMMIT_CHARGE_FRAME,5,166,111,39,0,WS_EX_TRANSPARENT - GROUPBOX "Fizikai memуria (K)",IDC_PHYSICAL_MEMORY_FRAME,131,122,111,39,0,WS_EX_TRANSPARENT - GROUPBOX "Kernel memуria (K)",IDC_KERNEL_MEMORY_FRAME,131,166,111,39,0,WS_EX_TRANSPARENT - LTEXT "",IDS_TOTALS_HANDLE_COUNT,12,131,27,8 - LTEXT "Szбlak szбma",IDS_TOTALS_THREAD_COUNT,12,140,27,8 - LTEXT "Folyamatok",IDS_TOTALS_PROCESS_COUNT,12,149,34,8 - EDITTEXT IDC_TOTALS_HANDLE_COUNT,65,131,45,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_TOTALS_THREAD_COUNT,65,140,45,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_TOTALS_PROCESS_COUNT,65,149,45,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - LTEXT "Цsszesen",IDS_COMMIT_CHARGE_TOTAL,12,175,27,8 - LTEXT "Limit",IDS_COMMIT_CHARGE_LIMIT,12,184,15,8 - LTEXT "Legnagyobb",IDS_COMMIT_CHARGE_PEAK,12,193,34,8 - EDITTEXT IDC_COMMIT_CHARGE_TOTAL,65,174,45,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_COMMIT_CHARGE_LIMIT,65,184,45,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_COMMIT_CHARGE_PEAK,65,193,45,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - LTEXT "Цsszesen",IDS_PHYSICAL_MEMORY_TOTAL,137,131,27,8 - LTEXT "Elйrhetх",IDS_PHYSICAL_MEMORY_AVAILABLE,137,140,30,8 - LTEXT "Rendszer gyorsнtуtбr",IDS_PHYSICAL_MEMORY_SYSTEM_CACHE,137,149,46,8 - EDITTEXT IDC_PHYSICAL_MEMORY_TOTAL,185,131,48,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_PHYSICAL_MEMORY_AVAILABLE,185,140,48,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_PHYSICAL_MEMORY_SYSTEM_CACHE,185,149,48,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - LTEXT "Цsszesen",IDS_KERNEL_MEMORY_TOTAL,137,174,27,8 - LTEXT "Lapozубllomбnyban",IDS_KERNEL_MEMORY_PAGED,137,184,21,8 - LTEXT "Nem lapozhatу",IDS_KERNEL_MEMORY_NONPAGED,137,193,34,8 - EDITTEXT IDC_KERNEL_MEMORY_TOTAL,185,174,48,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_KERNEL_MEMORY_PAGED,185,184,48,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_KERNEL_MEMORY_NONPAGED,185,193,48,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - GROUPBOX "CPU hasznбlat",IDC_CPU_USAGE_HISTORY_FRAME,74,5,168,54,0,WS_EX_TRANSPARENT - GROUPBOX "Memуria hasznбlat",IDC_MEMORY_USAGE_HISTORY_FRAME,74,63,168,54,0,WS_EX_TRANSPARENT - PUSHBUTTON "CPU hasznбlat megjelenнtйse",IDC_CPU_USAGE_GRAPH,12,17,47,37,0, - WS_EX_CLIENTEDGE - PUSHBUTTON "Memуria hasznбlat megjelenнtйse",IDC_MEM_USAGE_GRAPH,12,75,47,37,0, - WS_EX_CLIENTEDGE - PUSHBUTTON "CPU hasznбlata",IDC_CPU_USAGE_HISTORY_GRAPH,81,17, - 153,37,0,WS_EX_CLIENTEDGE - PUSHBUTTON "Memуria hasznбlata",IDC_MEM_USAGE_HISTORY_GRAPH,81,75, - 153,37,0,WS_EX_CLIENTEDGE -END - -IDD_DEBUG_CHANNELS_DIALOG DIALOG DISCARDABLE 0, 0, 247, 210 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Hibakeresх csatornбk" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "List2",IDC_DEBUG_CHANNELS_LIST,"SysListView32",LVS_REPORT | - LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP | - LVS_SORTASCENDING,7,7,233,177 - PUSHBUTTON "Bezбrбs",IDOK,171,189,69,14 -END - -IDD_AFFINITY_DIALOG DIALOG DISCARDABLE 0, 0, 231, 154 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Processor Affinity" -FONT 8, "MS Shell Dlg" -BEGIN - DEFPUSHBUTTON "OK",IDOK,120,133,50,14 - PUSHBUTTON "Mйgse",IDCANCEL,174,133,50,14 - LTEXT "The Processor Affinity setting controls which CPUs the process will be allowed to execute on.", - IDC_STATIC,5,5,220,16 - CONTROL "CPU 0",IDC_CPU0,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, - 11,28,37,10 - CONTROL "CPU 1",IDC_CPU1,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,11,41,37,10 - CONTROL "CPU 2",IDC_CPU2,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,11,54,37,10 - CONTROL "CPU 3",IDC_CPU3,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,11,67,37,10 - CONTROL "CPU 4",IDC_CPU4,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,11,80,37,10 - CONTROL "CPU 5",IDC_CPU5,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,11,93,37,10 - CONTROL "CPU 6",IDC_CPU6,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,11,106,37,10 - CONTROL "CPU 7",IDC_CPU7,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,11,119,37,10 - CONTROL "CPU 8",IDC_CPU8,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,61,28,37,10 - CONTROL "CPU 9",IDC_CPU9,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,61,41,37,10 - CONTROL "CPU 10",IDC_CPU10,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,61,54,41,10 - CONTROL "CPU 11",IDC_CPU11,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,61,67,41,10 - CONTROL "CPU 12",IDC_CPU12,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,61,80,41,10 - CONTROL "CPU 13",IDC_CPU13,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,61,93,41,10 - CONTROL "CPU 14",IDC_CPU14,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,61,106,41,10 - CONTROL "CPU 15",IDC_CPU15,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,61,119,41,10 - CONTROL "CPU 16",IDC_CPU16,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,28,41,10 - CONTROL "CPU 17",IDC_CPU17,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,41,41,10 - CONTROL "CPU 18",IDC_CPU18,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,54,41,10 - CONTROL "CPU 19",IDC_CPU19,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,67,41,10 - CONTROL "CPU 20",IDC_CPU20,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,80,41,10 - CONTROL "CPU 21",IDC_CPU21,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,93,41,10 - CONTROL "CPU 22",IDC_CPU22,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,106,41,10 - CONTROL "CPU 23",IDC_CPU23,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,119,41,10 - CONTROL "CPU 24",IDC_CPU24,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,28,41,10 - CONTROL "CPU 25",IDC_CPU25,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,41,41,10 - CONTROL "CPU 26",IDC_CPU26,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,54,41,10 - CONTROL "CPU 27",IDC_CPU27,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,67,41,10 - CONTROL "CPU 28",IDC_CPU28,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,80,41,10 - CONTROL "CPU 29",IDC_CPU29,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,93,41,10 - CONTROL "CPU 30",IDC_CPU30,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,106,41,10 - CONTROL "CPU 31",IDC_CPU31,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,119,41,10 -END - -IDD_COLUMNS_DIALOG DIALOG DISCARDABLE 0, 0, 195, 199 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Oszlopok kivбlasztбsa" -FONT 8, "MS Shell Dlg" -BEGIN - DEFPUSHBUTTON "OK",IDOK,84,178,50,14 - PUSHBUTTON "Mйgse",IDCANCEL,138,178,50,14 - LTEXT "Vбlaszd ki azokat az oszlopokat amelyeket szeretnйl lбtni a feladatkezelхben.", - IDC_STATIC,7,7,181,17 - CONTROL "&Image Name",IDC_IMAGENAME,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,7,28,56,10 - CONTROL "&PID (Folyamat azonosнtу)",IDC_PID,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,39,88,10 - CONTROL "&CPU hasznбlat",IDC_CPUUSAGE,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,50,53,10 - CONTROL "CPU idх",IDC_CPUTIME,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,61,48,10 - CONTROL "&Memуria hasznбlat",IDC_MEMORYUSAGE,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,72,63,10 - CONTROL "Memуria hasznбlat &vбltozбsa",IDC_MEMORYUSAGEDELTA,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,83,82,10 - CONTROL "Pea&k Memory Usage",IDC_PEAKMEMORYUSAGE,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,94,82,10 - CONTROL "Page &Faults",IDC_PAGEFAULTS,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,105,53,10 - CONTROL "&USER Objects",IDC_USEROBJECTS,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,116,62,10 - CONTROL "I/O Olvasбsok",IDC_IOREADS,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,127,49,10 - CONTROL "I/O Olvasott bбjtok",IDC_IOREADBYTES,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,138,65,10 - CONTROL "&Munkamenet azonosнtу",IDC_SESSIONID,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,149,50,10 - CONTROL "&Felhasznбlу",IDC_USERNAME,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,160,51,10 - CONTROL "Page F&aults Delta",IDC_PAGEFAULTSDELTA,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,107,28,72,10 - CONTROL "&Virtuбlis memуria mйrete",IDC_VIRTUALMEMORYSIZE,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,107,39,77,10 - CONTROL "Pa&ged Pool",IDC_PAGEDPOOL,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,107,50,53,10 - CONTROL "N&on-paged Pool",IDC_NONPAGEDPOOL,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,107,61,67,10 - CONTROL "&Prioritбs",IDC_BASEPRIORITY,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,107,72,55,10 - CONTROL "&Handle Count",IDC_HANDLECOUNT,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,107,83,59,10 - CONTROL "&Szбlak szбma",IDC_THREADCOUNT,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,107,94,59,10 - CONTROL "GDI Objektumok",IDC_GDIOBJECTS,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,107,105,55,10 - CONTROL "I/O Нrбsok",IDC_IOWRITES,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,107,116,49,10 - CONTROL "I/O Нrott bбjtok",IDC_IOWRITEBYTES,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,107,127,65,10 - CONTROL "Egyйb I/O mыveletek",IDC_IOOTHER,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,107,138,46,10 - CONTROL "Egyйb I/O mыveletek bбjtjai",IDC_IOOTHERBYTES,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,107,149,65,10 -END - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -2 TEXTINCLUDE DISCARDABLE -BEGIN - "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" - "#include ""windows.h""\r\n" - "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" - "#include ""resource.h""\r\n" - "\0" -END - -3 TEXTINCLUDE DISCARDABLE -BEGIN - "\r\n" - "\0" -END - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "resource.h\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO DISCARDABLE -BEGIN - IDD_ABOUTBOX, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 252 - TOPMARGIN, 7 - BOTTOMMARGIN, 203 - END - - IDD_TASKMGR_DIALOG, DIALOG - BEGIN - LEFTMARGIN, 3 - RIGHTMARGIN, 260 - TOPMARGIN, 3 - BOTTOMMARGIN, 231 - END - - IDD_APPLICATION_PAGE, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 240 - TOPMARGIN, 7 - BOTTOMMARGIN, 203 - END - - IDD_PROCESS_PAGE, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 240 - TOPMARGIN, 7 - BOTTOMMARGIN, 203 - END - - IDD_PERFORMANCE_PAGE, DIALOG - BEGIN - LEFTMARGIN, 5 - RIGHTMARGIN, 242 - VERTGUIDE, 12 - VERTGUIDE, 65 - VERTGUIDE, 110 - TOPMARGIN, 5 - BOTTOMMARGIN, 205 - END - - IDD_AFFINITY_DIALOG, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 224 - VERTGUIDE, 11 - VERTGUIDE, 61 - VERTGUIDE, 116 - VERTGUIDE, 175 - TOPMARGIN, 7 - BOTTOMMARGIN, 147 - HORZGUIDE, 28 - HORZGUIDE, 38 - HORZGUIDE, 51 - HORZGUIDE, 64 - HORZGUIDE, 77 - HORZGUIDE, 90 - HORZGUIDE, 103 - HORZGUIDE, 116 - HORZGUIDE, 129 - END - - IDD_COLUMNS_DIALOG, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 188 - VERTGUIDE, 107 - TOPMARGIN, 7 - BOTTOMMARGIN, 192 - HORZGUIDE, 28 - END -END -#endif // APSTUDIO_INVOKED - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APP_TITLE "Feladatkezelх" - IDC_TASKMGR "Feladatkezelх" - IDS_IDLE_PROCESS "Ьres jбrat" -END - -STRINGTABLE DISCARDABLE -BEGIN - ID_FILE_NEW "Program indнtбsa" - ID_OPTIONS_ALWAYSONTOP "A feladatkezelх minden ablak felett lesz addig amнg nem lesz kicsinyнtve" - ID_OPTIONS_MINIMIZEONUSE - "A feladatkezelх elrejtхdik ha egy vбltбst csinбlsz" - ID_OPTIONS_HIDEWHENMINIMIZED "Feladatkezelх elrejtйse elrejtйskor" - ID_VIEW_REFRESH "Azonnali frissнtйs" - ID_VIEW_LARGE "Feladatok megjelenнtйse nagy ikonkйnt" - ID_VIEW_SMALL "Feladatok megjelenнtйse kis ikonkйnt" - ID_VIEW_DETAILS "Informбciуk megjelenнtйse minden feladatrуl" - ID_VIEW_UPDATESPEED_HIGH "Mбsodpercenkйnt kйtszer frissнt" - ID_VIEW_UPDATESPEED_NORMAL "Kйt mбsodpercenkйnt frissнt" - ID_VIEW_UPDATESPEED_LOW "Nйgy mбsodpercenkйnt frissнt" -END - -STRINGTABLE DISCARDABLE -BEGIN - ID_VIEW_UPDATESPEED_PAUSED "Nincs automatikus frissнtйs" - ID_WINDOWS_TILEHORIZONTALLY - "Vнzszintben rendezi az ablakokat" - ID_WINDOWS_TILEVERTICALLY "Fьggхlegesen rendezi az ablakokat" - ID_WINDOWS_MINIMIZE "Elrejti az ablakokat" - ID_WINDOWS_MAXIMIZE "Legagyobbra mйretezi az ablakokat" - ID_WINDOWS_CASCADE "Lйpcsхzetes rendezйs" - ID_WINDOWS_BRINGTOFRONT "Elхtйrbe helyezi az ablakot, de nem teszi aktнvvб azt" - ID_HELP_TOPICS "Megjelenнti a feladatkezelх sъgу tйmбit" - ID_HELP_ABOUT "Megjelenнti a program informбciуit, verziуjбt йs jogvйdelmi informбciуit" - ID_FILE_EXIT "Kilйp a feladatkezelхbхl" - ID_OPTIONS_SHOW16BITTASKS - "Minden 16-bites feladatot a hozzбtartozу ntvdm.exe alб sorol" - ID_VIEW_SELECTCOLUMNS "Vбlaszd ki mely oszlopokat kivбnod lбtni" - ID_VIEW_SHOWKERNELTIMES "Megjelenнti a Kernel idхt a teljesнtmйny grafikonon" - ID_VIEW_CPUHISTORY_ONEGRAPHALL - "Kцzцs CPU tцrtйnet minden processzornak" - ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU "Minden processzor sajбt grafikonnal" - ID_APPLICATION_PAGE_SWITCHTO - "Elхtйrbe hozza йs aktнvvб teszi a kivбlasztott alkalmazбst" -END - -STRINGTABLE DISCARDABLE -BEGIN - ID_ENDTASK "Bezбrja a kivбlasztott alkalmazбst" - ID_GOTOPROCESS "Elхtйrbe hozza йs aktнvvб teszi a kivбlasztott alkalmazбst" - ID_RESTORE "Vissza бllнtja a feladatkezelхt rejtett бllapotбbуl" - ID_PROCESS_PAGE_ENDPROCESS "Bezбrja a folyamatot" - ID_PROCESS_PAGE_ENDPROCESSTREE "Bezбrja a folyamatot йs az бltala lйtrehozott цsszes tцbbi folyamatot is" - ID_PROCESS_PAGE_DEBUG "Hibakeresхt csatol a kivбlasztott folyamathoz" - ID_PROCESS_PAGE_SETAFFINITY - "Ennek segнtsйgйvel бllнthatу be, hogy a folyamatok mely processzorokon futhatnak" - ID_PROCESS_PAGE_SETPRIORITY_REALTIME - "Valуsidejы prioritбsra kapcsolja a folyamatot" - ID_PROCESS_PAGE_SETPRIORITY_HIGH "Magas prioritбsra kapcsolja a folyamatot" - ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL - "Magasabb prioritбsra kapcsolja a folyamatot" - ID_PROCESS_PAGE_SETPRIORITY_NORMAL - "Normбl prioritбsra kapcsolja a folyamatot" - ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL - "Alacsonyabb prioritбsra kapcsolja a folyamatot" - ID_PROCESS_PAGE_SETPRIORITY_LOW "Alacsony prioritбsra kapcsolja a folyamatot" - IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA." -END - - -STRINGTABLE DISCARDABLE -BEGIN - IDS_TAB_APPS "Programok" - IDS_TAB_PROCESSES "Folyamatok" - IDS_TAB_PERFORMANCE "Performance" - IDS_TAB_TASK "Feladatok" - IDS_TAB_STATUS "Бllapot" - IDS_TAB_IMAGENAME "Program nйv" - IDS_TAB_PID "PID" - IDS_TAB_USERNAME "Felhasznбlу" - IDS_TAB_SESSIONID "Munkamenet azonosнtу" - IDS_TAB_CPU "CPU" - IDS_TAB_CPUTIME "CPU idх" - IDS_TAB_MEMUSAGE "Memуria hasznбlat" - IDS_TAB_PEAKMEMUSAGE "Legnagyobb memуria hasznбlat" - IDS_TAB_MEMDELTA "Memуria vбltozбs" - IDS_TAB_PAGEFAULT "Page Faults" - IDS_TAB_PFDELTA "Lapozубllomбny vбltozбsok" - IDS_TAB_VMSIZE "VM Mйret" - IDS_TAB_PAGEDPOOL "Paged Pool" - IDS_TAB_NPPOOL "NP Pool" - IDS_TAB_BASEPRI "Prioritбs" - IDS_TAB_HANDLES "Handles" - IDS_TAB_THREADS "Szбlak" - IDS_TAB_USERPBJECTS "USER Objektumok" - IDS_TAB_GDIOBJECTS "GDI Objektumok" - IDS_TAB_IOREADS "I/O Olvasбsok" - IDS_TAB_IOWRITES "I/O Нrбsok" - IDS_TAB_IOOTHER "Egyйb I/O" - IDS_TAB_IOREADBYTES "I/O Olvasott bбjtok" - IDS_TAB_IOWRITESBYTES "I/O Нrott bбjtok" - IDS_TAB_IOOTHERBYTES "Egyйb I/O bбjtok" - IDS_MENU_SELECTCOLUMNS "&Oszlopok kivбlasztбsa..." - IDS_MENU_16BITTASK "&16bites feladatok megjelenнtйse" - IDS_MENU_WINDOWS "&Ablak" - IDS_MENU_LARGEICONS "&Nagy ikonok" - IDS_MENU_SMALLICONS "&Kis ikonok" - IDS_MENU_DETAILS "&Rйszletek" - IDS_MENU_ONEGRAPHALLCPUS "Minden CPU &egy grafikonon" - IDS_MENU_ONEGRAPHPERCPU "Kьlцn grafikon &minden CPU-hoz" - IDS_MENU_CPUHISTORY "&CPU hasznбlat" - IDS_MENU_SHOWKERNELTIMES "&Kernel idхk mutatбsa" - IDS_CREATENEWTASK "Ъj feladat" - IDS_CREATENEWTASK_DESC "Нrd be a program, mappa vagy dokumentum nevйt, vagy egy Internet cнmet, йs a feladatkezelх megnyitja neked." - IDS_MSG_ACCESSPROCESSAFF "Nem lehetsйges az affinitбs beбllнtбsa." - IDS_MSG_PROCESSONEPRO "A folyamatnak legalбbb egy processzoron futnia kell." - IDS_MSG_INVALIDOPTION "Invalid Option" - IDS_MSG_UNABLEDEBUGPROCESS "Nem lehetsйges a folyamat hibakeresйse" - IDS_MSG_WARNINGDEBUG "FIGYELEM: A folyamat hibakeresйse adatvesztйst okozhat.\nBiztosan csatlakoztatni szeretnйd a hibakeresхt?" - IDS_MSG_TASKMGRWARNING "Feladatkezelх figyelmeztetйse" - IDS_MSG_WARNINGTERMINATING "FIGYELEM: A folyamat befejezйse kellemetlen\nvбltozбsokat hozhat, adatvesztйst йs rendszer instabilitбst okozhat. A folyamat\n nem fog lehetхsйget kapni, hogy elmentse az adatokat.\nBiztosan beakarod fejezni?" - IDS_MSG_UNABLETERMINATEPRO "Nem lehetsйges a folyamat befejezйse" - IDS_MSG_UNABLECHANGEPRIORITY "Nem lehetsйges a prioritбs megvбltoztatбsa" - IDS_MSG_WARNINGCHANGEPRIORITY "FIGYELEM: A prioritбs megvбltoztatбsa\nkellemetlensйgeket, akбr rendszer instabilitбst is okozhat.\nBiztosan megakarod vбltoztatni a prioritбst?" - IDS_MSG_TRAYICONCPUUSAGE "CPU hasznбlat: %d%%" - IDS_STATUS_MEMUSAGE "Mem hasznбlat: %dK / %dK" - IDS_STATUS_CPUUSAGE "CPU hasznбlat: %3d%%" - IDS_STATUS_PROCESSES "Folyamatok: %d" - IDS_Not_Responding "Nem vбlaszol" - IDS_Running "Fut" -END - - -#endif // Hungaruan (HU) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - +///////////////////////////////////////////////////////////////////////////// +// Hungaruan (HU) resources +// Resource by Robert Horvath - talley at cubeclub.hu + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_HUNGARIAN, SUBLANG_NEUTRAL +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_TASKMANAGER MENU DISCARDABLE +BEGIN + POPUP "&Бllomбny" + BEGIN + MENUITEM "Ъj folyamat (F&uttatбs...)", ID_FILE_NEW + MENUITEM SEPARATOR + MENUITEM "&Kilйpйs", ID_FILE_EXIT + END + POPUP "&Beбllнtбsok" + BEGIN + MENUITEM "&Mindig lбthatу", ID_OPTIONS_ALWAYSONTOP + , CHECKED + MENUITEM "&Indнtбskor kis mйret", ID_OPTIONS_MINIMIZEONUSE + , CHECKED + MENUITEM "&Elrejtйs kis mйretnйl", ID_OPTIONS_HIDEWHENMINIMIZED + , CHECKED + MENUITEM "&16bites feladatok megjelenнtйse", ID_OPTIONS_SHOW16BITTASKS + , CHECKED + END + POPUP "&Nйzet" + BEGIN + MENUITEM "&Frissнtйs most", ID_VIEW_REFRESH + POPUP "&Frissнtйs sebessйge" + BEGIN + MENUITEM "&Gyakran", ID_VIEW_UPDATESPEED_HIGH + MENUITEM "&Normбl", ID_VIEW_UPDATESPEED_NORMAL + , CHECKED + MENUITEM "&Ritkбn", ID_VIEW_UPDATESPEED_LOW + MENUITEM "&Felfьggesztve", ID_VIEW_UPDATESPEED_PAUSED + + END + MENUITEM SEPARATOR + MENUITEM "&Nagy ikonok", ID_VIEW_LARGE + MENUITEM "&Kis ikonok", ID_VIEW_SMALL + MENUITEM "Rйs&zletek", ID_VIEW_DETAILS, CHECKED + MENUITEM "&Oszlopok kivбlasztбsa...", ID_VIEW_SELECTCOLUMNS + POPUP "&CPU hasznбlat" + BEGIN + MENUITEM "Minden CPU &egy grafikonon", ID_VIEW_CPUHISTORY_ONEGRAPHALL + + MENUITEM "Kьlцn grafikon &minden CPU-hoz", ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU + , CHECKED + END + MENUITEM "&Kernel idх megjelenнtйse", ID_VIEW_SHOWKERNELTIMES + END + POPUP "&Ablak" + BEGIN + MENUITEM "&Vнzszintes rendezйs", ID_WINDOWS_TILEHORIZONTALLY + MENUITEM "&Fьggхleges rendezйs", ID_WINDOWS_TILEVERTICALLY + MENUITEM "&Elrejtйs", ID_WINDOWS_MINIMIZE + MENUITEM "&Teljes mйret", ID_WINDOWS_MAXIMIZE + MENUITEM "&Lйpcsхzetes rendezйs", ID_WINDOWS_CASCADE + MENUITEM "&Elхtйrbe helyezйs", ID_WINDOWS_BRINGTOFRONT + END + POPUP "&Sъgу" + BEGIN + MENUITEM "&Tйmakцrцk", ID_HELP_TOPICS + MENUITEM SEPARATOR + MENUITEM "&Nйvjegy", ID_HELP_ABOUT + END +END + +IDR_WINDOWSMENU MENU DISCARDABLE +BEGIN + MENUITEM "&Vнzszintes rendezйs", ID_WINDOWS_TILEHORIZONTALLY + MENUITEM "&Fьggхleges rendezйs", ID_WINDOWS_TILEVERTICALLY + MENUITEM "&Elrejtйs", ID_WINDOWS_MINIMIZE + MENUITEM "&Nagy mйret", ID_WINDOWS_MAXIMIZE + MENUITEM "&Lйpcsхzetes rendezйs", ID_WINDOWS_CASCADE + MENUITEM "&Elхtйrbe helyezйs", ID_WINDOWS_BRINGTOFRONT +END + +IDR_APPLICATION_PAGE_CONTEXT1 MENU DISCARDABLE +BEGIN + POPUP "DUMMY" + BEGIN + MENUITEM "&Ъj feladat (Futtatбs...)", ID_FILE_NEW + MENUITEM SEPARATOR + MENUITEM "&Nagy ikonok", ID_VIEW_LARGE + MENUITEM "&Kis ikonok", ID_VIEW_SMALL + MENUITEM "&Rйszletek", ID_VIEW_DETAILS, CHECKED + END +END + +IDR_APPLICATION_PAGE_CONTEXT2 MENU DISCARDABLE +BEGIN + POPUP "DUMMY" + BEGIN + MENUITEM "&Vбltбs", ID_APPLICATION_PAGE_SWITCHTO + MENUITEM "&Elхtйrbe helyezйs", ID_WINDOWS_BRINGTOFRONT + MENUITEM SEPARATOR + MENUITEM "&Vнzszintes rendezйs", ID_WINDOWS_TILEHORIZONTALLY + MENUITEM "&Fьggхleges rendezйs", ID_WINDOWS_TILEVERTICALLY + MENUITEM "&Elrejtйs", ID_WINDOWS_MINIMIZE + MENUITEM "&Nagy mйret", ID_WINDOWS_MAXIMIZE + MENUITEM "&Lйpcsхzetes rendezйs", ID_WINDOWS_CASCADE + MENUITEM SEPARATOR + MENUITEM "&Feladat befejezйse", ID_APPLICATION_PAGE_ENDTASK + MENUITEM "&Ugrбs a folyamatra", ID_APPLICATION_PAGE_GOTOPROCESS + + END +END + +IDR_TRAY_POPUP MENU DISCARDABLE +BEGIN + POPUP "DUMMY" + BEGIN + MENUITEM "&Vissza бllнt", ID_RESTORE + MENUITEM "&Bezбrбs", ID_FILE_EXIT + MENUITEM SEPARATOR + MENUITEM "&Mindig lбthatу", ID_OPTIONS_ALWAYSONTOP + END +END + +IDR_PROCESS_PAGE_CONTEXT MENU DISCARDABLE +BEGIN + POPUP "DUMMY" + BEGIN + MENUITEM "&Folyamat befejezйse", ID_PROCESS_PAGE_ENDPROCESS + MENUITEM "Folyamat &struktъra leбllнtбsa", ID_PROCESS_PAGE_ENDPROCESSTREE + + MENUITEM "&Hibakeresйs", ID_PROCESS_PAGE_DEBUG + MENUITEM SEPARATOR + POPUP "&Prioritбs beбllнtбsa" + BEGIN + MENUITEM "&Valуsidejы", ID_PROCESS_PAGE_SETPRIORITY_REALTIME + + MENUITEM "&Magas", ID_PROCESS_PAGE_SETPRIORITY_HIGH + + MENUITEM "Ma&gasabb", ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL + + MENUITEM "&Normбl", ID_PROCESS_PAGE_SETPRIORITY_NORMAL + + MENUITEM "&Alacsonyabb", ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL + + MENUITEM "A&lacsony", ID_PROCESS_PAGE_SETPRIORITY_LOW + + END + MENUITEM "&Processzorok hasznбlata...", ID_PROCESS_PAGE_SETAFFINITY + MENUITEM "Hibakeresх &csatornбk...", ID_PROCESS_PAGE_DEBUGCHANNELS + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_ABOUTBOX DIALOG DISCARDABLE 22, 17, 259, 210 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Feladatkezelх" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "Feladatkezelх /Task Manager/ v1.0\nCopyright (C) 1999 - 2001\nby Brian Palmer (brianp@reactos.org)", + IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,53,28, + 122,26 + DEFPUSHBUTTON "OK",IDOK,183,189,44,14,WS_GROUP + ICON IDI_TASKMANAGER,IDC_STATIC,19,30,20,20 + EDITTEXT IDC_LICENSE_EDIT,53,63,174,107,ES_MULTILINE | + ES_READONLY | WS_VSCROLL +END + +IDD_TASKMGR_DIALOG DIALOG DISCARDABLE 0, 0, 264, 246 +STYLE DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | + WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU | + WS_THICKFRAME +CAPTION "Feladatkezelх" +MENU IDR_TASKMANAGER +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "Tab1",IDC_TAB,"SysTabControl32",WS_TABSTOP,3,3,257,228 +END + +IDD_APPLICATION_PAGE DIALOG DISCARDABLE 0, 0, 247, 210 +STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "List2",IDC_APPLIST,"SysListView32",LVS_REPORT | + LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,7,7,233,177 + PUSHBUTTON "Ъj &folyamat...",IDC_NEWTASK,187,189,53,14 + PUSHBUTTON "&Vбltбs",IDC_SWITCHTO,131,189,53,14,WS_DISABLED + PUSHBUTTON "Fela&dat befejezйse",IDC_ENDTASK,75,189,53,14,WS_DISABLED +END + +IDD_PROCESS_PAGE DIALOG DISCARDABLE 0, 0, 247, 210 +STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "List2",IDC_PROCESSLIST,"SysListView32",LVS_REPORT | + LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_OWNERDATA | + WS_BORDER | WS_TABSTOP,7,7,233,177 + PUSHBUTTON "&Folyamat befejezйse",IDC_ENDPROCESS,171,189,69,14 + CONTROL "Minden felhasznбlу folya&matait jelenнtse meg",IDC_SHOWALLPROCESSES, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,191,111,10 +END + +//IDD_PERFORMANCE_PAGE DIALOGEX 0, 0, 247, 210 +IDD_PERFORMANCE_PAGE DIALOGEX DISCARDABLE 0, 0, 247, 210 +STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN +FONT 8, "MS Shell Dlg" +BEGIN + GROUPBOX "CPU hasznбlat",IDC_CPU_USAGE_FRAME,5,5,60,54,WS_TABSTOP, WS_EX_TRANSPARENT + GROUPBOX "Memуria hasznбlat",IDC_MEM_USAGE_FRAME,5,63,60,54,BS_LEFTTEXT, WS_EX_TRANSPARENT + GROUPBOX "Totals",IDC_TOTALS_FRAME,5,122,111,39,0,WS_EX_TRANSPARENT + GROUPBOX "Commit Charge (K)",IDC_COMMIT_CHARGE_FRAME,5,166,111,39,0,WS_EX_TRANSPARENT + GROUPBOX "Fizikai memуria (K)",IDC_PHYSICAL_MEMORY_FRAME,131,122,111,39,0,WS_EX_TRANSPARENT + GROUPBOX "Kernel memуria (K)",IDC_KERNEL_MEMORY_FRAME,131,166,111,39,0,WS_EX_TRANSPARENT + LTEXT "",IDS_TOTALS_HANDLE_COUNT,12,131,27,8 + LTEXT "Szбlak szбma",IDS_TOTALS_THREAD_COUNT,12,140,27,8 + LTEXT "Folyamatok",IDS_TOTALS_PROCESS_COUNT,12,149,34,8 + EDITTEXT IDC_TOTALS_HANDLE_COUNT,65,131,45,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_TOTALS_THREAD_COUNT,65,140,45,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_TOTALS_PROCESS_COUNT,65,149,45,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + LTEXT "Цsszesen",IDS_COMMIT_CHARGE_TOTAL,12,175,27,8 + LTEXT "Limit",IDS_COMMIT_CHARGE_LIMIT,12,184,15,8 + LTEXT "Legnagyobb",IDS_COMMIT_CHARGE_PEAK,12,193,34,8 + EDITTEXT IDC_COMMIT_CHARGE_TOTAL,65,174,45,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_COMMIT_CHARGE_LIMIT,65,184,45,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_COMMIT_CHARGE_PEAK,65,193,45,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + LTEXT "Цsszesen",IDS_PHYSICAL_MEMORY_TOTAL,137,131,27,8 + LTEXT "Elйrhetх",IDS_PHYSICAL_MEMORY_AVAILABLE,137,140,30,8 + LTEXT "Rendszer gyorsнtуtбr",IDS_PHYSICAL_MEMORY_SYSTEM_CACHE,137,149,46,8 + EDITTEXT IDC_PHYSICAL_MEMORY_TOTAL,185,131,48,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_PHYSICAL_MEMORY_AVAILABLE,185,140,48,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_PHYSICAL_MEMORY_SYSTEM_CACHE,185,149,48,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + LTEXT "Цsszesen",IDS_KERNEL_MEMORY_TOTAL,137,174,27,8 + LTEXT "Lapozубllomбnyban",IDS_KERNEL_MEMORY_PAGED,137,184,21,8 + LTEXT "Nem lapozhatу",IDS_KERNEL_MEMORY_NONPAGED,137,193,34,8 + EDITTEXT IDC_KERNEL_MEMORY_TOTAL,185,174,48,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_KERNEL_MEMORY_PAGED,185,184,48,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_KERNEL_MEMORY_NONPAGED,185,193,48,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + GROUPBOX "CPU hasznбlat",IDC_CPU_USAGE_HISTORY_FRAME,74,5,168,54,0,WS_EX_TRANSPARENT + GROUPBOX "Memуria hasznбlat",IDC_MEMORY_USAGE_HISTORY_FRAME,74,63,168,54,0,WS_EX_TRANSPARENT + PUSHBUTTON "CPU hasznбlat megjelenнtйse",IDC_CPU_USAGE_GRAPH,12,17,47,37,0, + WS_EX_CLIENTEDGE + PUSHBUTTON "Memуria hasznбlat megjelenнtйse",IDC_MEM_USAGE_GRAPH,12,75,47,37,0, + WS_EX_CLIENTEDGE + PUSHBUTTON "CPU hasznбlata",IDC_CPU_USAGE_HISTORY_GRAPH,81,17, + 153,37,0,WS_EX_CLIENTEDGE + PUSHBUTTON "Memуria hasznбlata",IDC_MEM_USAGE_HISTORY_GRAPH,81,75, + 153,37,0,WS_EX_CLIENTEDGE +END + +IDD_DEBUG_CHANNELS_DIALOG DIALOG DISCARDABLE 0, 0, 247, 210 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Hibakeresх csatornбk" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "List2",IDC_DEBUG_CHANNELS_LIST,"SysListView32",LVS_REPORT | + LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP | + LVS_SORTASCENDING,7,7,233,177 + PUSHBUTTON "Bezбrбs",IDOK,171,189,69,14 +END + +IDD_AFFINITY_DIALOG DIALOG DISCARDABLE 0, 0, 231, 154 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Processor Affinity" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "OK",IDOK,120,133,50,14 + PUSHBUTTON "Mйgse",IDCANCEL,174,133,50,14 + LTEXT "The Processor Affinity setting controls which CPUs the process will be allowed to execute on.", + IDC_STATIC,5,5,220,16 + CONTROL "CPU 0",IDC_CPU0,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, + 11,28,37,10 + CONTROL "CPU 1",IDC_CPU1,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,11,41,37,10 + CONTROL "CPU 2",IDC_CPU2,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,11,54,37,10 + CONTROL "CPU 3",IDC_CPU3,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,11,67,37,10 + CONTROL "CPU 4",IDC_CPU4,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,11,80,37,10 + CONTROL "CPU 5",IDC_CPU5,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,11,93,37,10 + CONTROL "CPU 6",IDC_CPU6,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,11,106,37,10 + CONTROL "CPU 7",IDC_CPU7,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,11,119,37,10 + CONTROL "CPU 8",IDC_CPU8,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,61,28,37,10 + CONTROL "CPU 9",IDC_CPU9,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,61,41,37,10 + CONTROL "CPU 10",IDC_CPU10,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,61,54,41,10 + CONTROL "CPU 11",IDC_CPU11,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,61,67,41,10 + CONTROL "CPU 12",IDC_CPU12,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,61,80,41,10 + CONTROL "CPU 13",IDC_CPU13,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,61,93,41,10 + CONTROL "CPU 14",IDC_CPU14,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,61,106,41,10 + CONTROL "CPU 15",IDC_CPU15,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,61,119,41,10 + CONTROL "CPU 16",IDC_CPU16,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,28,41,10 + CONTROL "CPU 17",IDC_CPU17,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,41,41,10 + CONTROL "CPU 18",IDC_CPU18,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,54,41,10 + CONTROL "CPU 19",IDC_CPU19,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,67,41,10 + CONTROL "CPU 20",IDC_CPU20,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,80,41,10 + CONTROL "CPU 21",IDC_CPU21,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,93,41,10 + CONTROL "CPU 22",IDC_CPU22,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,106,41,10 + CONTROL "CPU 23",IDC_CPU23,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,119,41,10 + CONTROL "CPU 24",IDC_CPU24,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,28,41,10 + CONTROL "CPU 25",IDC_CPU25,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,41,41,10 + CONTROL "CPU 26",IDC_CPU26,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,54,41,10 + CONTROL "CPU 27",IDC_CPU27,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,67,41,10 + CONTROL "CPU 28",IDC_CPU28,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,80,41,10 + CONTROL "CPU 29",IDC_CPU29,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,93,41,10 + CONTROL "CPU 30",IDC_CPU30,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,106,41,10 + CONTROL "CPU 31",IDC_CPU31,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,119,41,10 +END + +IDD_COLUMNS_DIALOG DIALOG DISCARDABLE 0, 0, 195, 199 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Oszlopok kivбlasztбsa" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "OK",IDOK,84,178,50,14 + PUSHBUTTON "Mйgse",IDCANCEL,138,178,50,14 + LTEXT "Vбlaszd ki azokat az oszlopokat amelyeket szeretnйl lбtni a feladatkezelхben.", + IDC_STATIC,7,7,181,17 + CONTROL "&Image Name",IDC_IMAGENAME,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,7,28,56,10 + CONTROL "&PID (Folyamat azonosнtу)",IDC_PID,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,39,88,10 + CONTROL "&CPU hasznбlat",IDC_CPUUSAGE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,50,53,10 + CONTROL "CPU idх",IDC_CPUTIME,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,61,48,10 + CONTROL "&Memуria hasznбlat",IDC_MEMORYUSAGE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,72,63,10 + CONTROL "Memуria hasznбlat &vбltozбsa",IDC_MEMORYUSAGEDELTA,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,83,82,10 + CONTROL "Pea&k Memory Usage",IDC_PEAKMEMORYUSAGE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,94,82,10 + CONTROL "Page &Faults",IDC_PAGEFAULTS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,105,53,10 + CONTROL "&USER Objects",IDC_USEROBJECTS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,116,62,10 + CONTROL "I/O Olvasбsok",IDC_IOREADS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,127,49,10 + CONTROL "I/O Olvasott bбjtok",IDC_IOREADBYTES,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,138,65,10 + CONTROL "&Munkamenet azonosнtу",IDC_SESSIONID,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,149,50,10 + CONTROL "&Felhasznбlу",IDC_USERNAME,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,160,51,10 + CONTROL "Page F&aults Delta",IDC_PAGEFAULTSDELTA,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,107,28,72,10 + CONTROL "&Virtuбlis memуria mйrete",IDC_VIRTUALMEMORYSIZE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,107,39,77,10 + CONTROL "Pa&ged Pool",IDC_PAGEDPOOL,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,107,50,53,10 + CONTROL "N&on-paged Pool",IDC_NONPAGEDPOOL,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,107,61,67,10 + CONTROL "&Prioritбs",IDC_BASEPRIORITY,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,107,72,55,10 + CONTROL "&Handle Count",IDC_HANDLECOUNT,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,107,83,59,10 + CONTROL "&Szбlak szбma",IDC_THREADCOUNT,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,107,94,59,10 + CONTROL "GDI Objektumok",IDC_GDIOBJECTS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,107,105,55,10 + CONTROL "I/O Нrбsok",IDC_IOWRITES,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,107,116,49,10 + CONTROL "I/O Нrott bбjtok",IDC_IOWRITEBYTES,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,107,127,65,10 + CONTROL "Egyйb I/O mыveletek",IDC_IOOTHER,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,107,138,46,10 + CONTROL "Egyйb I/O mыveletek bбjtjai",IDC_IOOTHERBYTES,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,107,149,65,10 +END + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" + "#include ""windows.h""\r\n" + "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" + "#include ""resource.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "\r\n" + "\0" +END + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_ABOUTBOX, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 252 + TOPMARGIN, 7 + BOTTOMMARGIN, 203 + END + + IDD_TASKMGR_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 3 + RIGHTMARGIN, 260 + TOPMARGIN, 3 + BOTTOMMARGIN, 231 + END + + IDD_APPLICATION_PAGE, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 240 + TOPMARGIN, 7 + BOTTOMMARGIN, 203 + END + + IDD_PROCESS_PAGE, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 240 + TOPMARGIN, 7 + BOTTOMMARGIN, 203 + END + + IDD_PERFORMANCE_PAGE, DIALOG + BEGIN + LEFTMARGIN, 5 + RIGHTMARGIN, 242 + VERTGUIDE, 12 + VERTGUIDE, 65 + VERTGUIDE, 110 + TOPMARGIN, 5 + BOTTOMMARGIN, 205 + END + + IDD_AFFINITY_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 224 + VERTGUIDE, 11 + VERTGUIDE, 61 + VERTGUIDE, 116 + VERTGUIDE, 175 + TOPMARGIN, 7 + BOTTOMMARGIN, 147 + HORZGUIDE, 28 + HORZGUIDE, 38 + HORZGUIDE, 51 + HORZGUIDE, 64 + HORZGUIDE, 77 + HORZGUIDE, 90 + HORZGUIDE, 103 + HORZGUIDE, 116 + HORZGUIDE, 129 + END + + IDD_COLUMNS_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 188 + VERTGUIDE, 107 + TOPMARGIN, 7 + BOTTOMMARGIN, 192 + HORZGUIDE, 28 + END +END +#endif // APSTUDIO_INVOKED + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_APP_TITLE "Feladatkezelх" + IDC_TASKMGR "Feladatkezelх" + IDS_IDLE_PROCESS "Ьres jбrat" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_NEW "Program indнtбsa" + ID_OPTIONS_ALWAYSONTOP "A feladatkezelх minden ablak felett lesz addig amнg nem lesz kicsinyнtve" + ID_OPTIONS_MINIMIZEONUSE + "A feladatkezelх elrejtхdik ha egy vбltбst csinбlsz" + ID_OPTIONS_HIDEWHENMINIMIZED "Feladatkezelх elrejtйse elrejtйskor" + ID_VIEW_REFRESH "Azonnali frissнtйs" + ID_VIEW_LARGE "Feladatok megjelenнtйse nagy ikonkйnt" + ID_VIEW_SMALL "Feladatok megjelenнtйse kis ikonkйnt" + ID_VIEW_DETAILS "Informбciуk megjelenнtйse minden feladatrуl" + ID_VIEW_UPDATESPEED_HIGH "Mбsodpercenkйnt kйtszer frissнt" + ID_VIEW_UPDATESPEED_NORMAL "Kйt mбsodpercenkйnt frissнt" + ID_VIEW_UPDATESPEED_LOW "Nйgy mбsodpercenkйnt frissнt" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_VIEW_UPDATESPEED_PAUSED "Nincs automatikus frissнtйs" + ID_WINDOWS_TILEHORIZONTALLY + "Vнzszintben rendezi az ablakokat" + ID_WINDOWS_TILEVERTICALLY "Fьggхlegesen rendezi az ablakokat" + ID_WINDOWS_MINIMIZE "Elrejti az ablakokat" + ID_WINDOWS_MAXIMIZE "Legagyobbra mйretezi az ablakokat" + ID_WINDOWS_CASCADE "Lйpcsхzetes rendezйs" + ID_WINDOWS_BRINGTOFRONT "Elхtйrbe helyezi az ablakot, de nem teszi aktнvvб azt" + ID_HELP_TOPICS "Megjelenнti a feladatkezelх sъgу tйmбit" + ID_HELP_ABOUT "Megjelenнti a program informбciуit, verziуjбt йs jogvйdelmi informбciуit" + ID_FILE_EXIT "Kilйp a feladatkezelхbхl" + ID_OPTIONS_SHOW16BITTASKS + "Minden 16-bites feladatot a hozzбtartozу ntvdm.exe alб sorol" + ID_VIEW_SELECTCOLUMNS "Vбlaszd ki mely oszlopokat kivбnod lбtni" + ID_VIEW_SHOWKERNELTIMES "Megjelenнti a Kernel idхt a teljesнtmйny grafikonon" + ID_VIEW_CPUHISTORY_ONEGRAPHALL + "Kцzцs CPU tцrtйnet minden processzornak" + ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU "Minden processzor sajбt grafikonnal" + ID_APPLICATION_PAGE_SWITCHTO + "Elхtйrbe hozza йs aktнvvб teszi a kivбlasztott alkalmazбst" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_ENDTASK "Bezбrja a kivбlasztott alkalmazбst" + ID_GOTOPROCESS "Elхtйrbe hozza йs aktнvvб teszi a kivбlasztott alkalmazбst" + ID_RESTORE "Vissza бllнtja a feladatkezelхt rejtett бllapotбbуl" + ID_PROCESS_PAGE_ENDPROCESS "Bezбrja a folyamatot" + ID_PROCESS_PAGE_ENDPROCESSTREE "Bezбrja a folyamatot йs az бltala lйtrehozott цsszes tцbbi folyamatot is" + ID_PROCESS_PAGE_DEBUG "Hibakeresхt csatol a kivбlasztott folyamathoz" + ID_PROCESS_PAGE_SETAFFINITY + "Ennek segнtsйgйvel бllнthatу be, hogy a folyamatok mely processzorokon futhatnak" + ID_PROCESS_PAGE_SETPRIORITY_REALTIME + "Valуsidejы prioritбsra kapcsolja a folyamatot" + ID_PROCESS_PAGE_SETPRIORITY_HIGH "Magas prioritбsra kapcsolja a folyamatot" + ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL + "Magasabb prioritбsra kapcsolja a folyamatot" + ID_PROCESS_PAGE_SETPRIORITY_NORMAL + "Normбl prioritбsra kapcsolja a folyamatot" + ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL + "Alacsonyabb prioritбsra kapcsolja a folyamatot" + ID_PROCESS_PAGE_SETPRIORITY_LOW "Alacsony prioritбsra kapcsolja a folyamatot" + IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA." +END + + +STRINGTABLE DISCARDABLE +BEGIN + IDS_TAB_APPS "Programok" + IDS_TAB_PROCESSES "Folyamatok" + IDS_TAB_PERFORMANCE "Performance" + IDS_TAB_TASK "Feladatok" + IDS_TAB_STATUS "Бllapot" + IDS_TAB_IMAGENAME "Program nйv" + IDS_TAB_PID "PID" + IDS_TAB_USERNAME "Felhasznбlу" + IDS_TAB_SESSIONID "Munkamenet azonosнtу" + IDS_TAB_CPU "CPU" + IDS_TAB_CPUTIME "CPU idх" + IDS_TAB_MEMUSAGE "Memуria hasznбlat" + IDS_TAB_PEAKMEMUSAGE "Legnagyobb memуria hasznбlat" + IDS_TAB_MEMDELTA "Memуria vбltozбs" + IDS_TAB_PAGEFAULT "Page Faults" + IDS_TAB_PFDELTA "Lapozубllomбny vбltozбsok" + IDS_TAB_VMSIZE "VM Mйret" + IDS_TAB_PAGEDPOOL "Paged Pool" + IDS_TAB_NPPOOL "NP Pool" + IDS_TAB_BASEPRI "Prioritбs" + IDS_TAB_HANDLES "Handles" + IDS_TAB_THREADS "Szбlak" + IDS_TAB_USERPBJECTS "USER Objektumok" + IDS_TAB_GDIOBJECTS "GDI Objektumok" + IDS_TAB_IOREADS "I/O Olvasбsok" + IDS_TAB_IOWRITES "I/O Нrбsok" + IDS_TAB_IOOTHER "Egyйb I/O" + IDS_TAB_IOREADBYTES "I/O Olvasott bбjtok" + IDS_TAB_IOWRITESBYTES "I/O Нrott bбjtok" + IDS_TAB_IOOTHERBYTES "Egyйb I/O bбjtok" + IDS_MENU_SELECTCOLUMNS "&Oszlopok kivбlasztбsa..." + IDS_MENU_16BITTASK "&16bites feladatok megjelenнtйse" + IDS_MENU_WINDOWS "&Ablak" + IDS_MENU_LARGEICONS "&Nagy ikonok" + IDS_MENU_SMALLICONS "&Kis ikonok" + IDS_MENU_DETAILS "&Rйszletek" + IDS_MENU_ONEGRAPHALLCPUS "Minden CPU &egy grafikonon" + IDS_MENU_ONEGRAPHPERCPU "Kьlцn grafikon &minden CPU-hoz" + IDS_MENU_CPUHISTORY "&CPU hasznбlat" + IDS_MENU_SHOWKERNELTIMES "&Kernel idхk mutatбsa" + IDS_CREATENEWTASK "Ъj feladat" + IDS_CREATENEWTASK_DESC "Нrd be a program, mappa vagy dokumentum nevйt, vagy egy Internet cнmet, йs a feladatkezelх megnyitja neked." + IDS_MSG_ACCESSPROCESSAFF "Nem lehetsйges az affinitбs beбllнtбsa." + IDS_MSG_PROCESSONEPRO "A folyamatnak legalбbb egy processzoron futnia kell." + IDS_MSG_INVALIDOPTION "Invalid Option" + IDS_MSG_UNABLEDEBUGPROCESS "Nem lehetsйges a folyamat hibakeresйse" + IDS_MSG_WARNINGDEBUG "FIGYELEM: A folyamat hibakeresйse adatvesztйst okozhat.\nBiztosan csatlakoztatni szeretnйd a hibakeresхt?" + IDS_MSG_TASKMGRWARNING "Feladatkezelх figyelmeztetйse" + IDS_MSG_WARNINGTERMINATING "FIGYELEM: A folyamat befejezйse kellemetlen\nvбltozбsokat hozhat, adatvesztйst йs rendszer instabilitбst okozhat. A folyamat\n nem fog lehetхsйget kapni, hogy elmentse az adatokat.\nBiztosan beakarod fejezni?" + IDS_MSG_UNABLETERMINATEPRO "Nem lehetsйges a folyamat befejezйse" + IDS_MSG_UNABLECHANGEPRIORITY "Nem lehetsйges a prioritбs megvбltoztatбsa" + IDS_MSG_WARNINGCHANGEPRIORITY "FIGYELEM: A prioritбs megvбltoztatбsa\nkellemetlensйgeket, akбr rendszer instabilitбst is okozhat.\nBiztosan megakarod vбltoztatni a prioritбst?" + IDS_MSG_TRAYICONCPUUSAGE "CPU hasznбlat: %d%%" + IDS_STATUS_MEMUSAGE "Mem hasznбlat: %dK / %dK" + IDS_STATUS_CPUUSAGE "CPU hasznбlat: %3d%%" + IDS_STATUS_PROCESSES "Folyamatok: %d" + IDS_Not_Responding "Nem vбlaszol" + IDS_Running "Fut" +END + + +#endif // Hungaruan (HU) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/reactos/base/applications/taskmgr/Nl.rc b/reactos/base/applications/taskmgr/Nl.rc index 737da8c2b49..a7a945b7fb6 100644 --- a/reactos/base/applications/taskmgr/Nl.rc +++ b/reactos/base/applications/taskmgr/Nl.rc @@ -1,672 +1,672 @@ -///////////////////////////////////////////////////////////////////////////// -// Dutch resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Menu -// - -IDR_TASKMANAGER MENU DISCARDABLE -BEGIN - POPUP "&Bestand" - BEGIN - MENUITEM "&Nieuwe taak (Uitvoeren...)", ID_FILE_NEW - MENUITEM SEPARATOR - MENUITEM "&Taakbeheer afsluiten", ID_FILE_EXIT - END - POPUP "&Opties" - BEGIN - MENUITEM "&Altijd op voorgrond", ID_OPTIONS_ALWAYSONTOP - , CHECKED - MENUITEM "Minimaliseren &bij gebruik", ID_OPTIONS_MINIMIZEONUSE - , CHECKED - MENUITEM "&Verbergen indien geminimaliseerd", ID_OPTIONS_HIDEWHENMINIMIZED - , CHECKED - MENUITEM "16-&bits taken weergeven", ID_OPTIONS_SHOW16BITTASKS - , CHECKED - END - POPUP "&Beeld" - BEGIN - MENUITEM "&Nu vernieuwen", ID_VIEW_REFRESH - POPUP "Bijwerk&snelheid" - BEGIN - MENUITEM "&Hoog", ID_VIEW_UPDATESPEED_HIGH - MENUITEM "&Standaard", ID_VIEW_UPDATESPEED_NORMAL - , CHECKED - MENUITEM "&Laag", ID_VIEW_UPDATESPEED_LOW - MENUITEM "&Onderbroken", ID_VIEW_UPDATESPEED_PAUSED - - END - MENUITEM SEPARATOR - MENUITEM "&Grote pictogrammen", ID_VIEW_LARGE - MENUITEM "&Kleine pictogrammen", ID_VIEW_SMALL - MENUITEM "&Details", ID_VIEW_DETAILS, CHECKED - MENUITEM "&Kolommen selecteren...", ID_VIEW_SELECTCOLUMNS - POPUP "&Geschiedenis van CPU" - BEGIN - MENUITEM "&Eйn grafiek, alle CPU's", ID_VIEW_CPUHISTORY_ONEGRAPHALL - - MENUITEM "Eйn grafiek &per CPU", ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU - , CHECKED - END - MENUITEM "&Kerneltijden weergeven", ID_VIEW_SHOWKERNELTIMES - END - POPUP "&Vensters" - BEGIN - MENUITEM "&Onder elkaar", ID_WINDOWS_TILEHORIZONTALLY - MENUITEM "N&aast elkaar", ID_WINDOWS_TILEVERTICALLY - MENUITEM "Mi&nimaliseren", ID_WINDOWS_MINIMIZE - MENUITEM "&Maximaliseren", ID_WINDOWS_MAXIMIZE - MENUITEM "&Trapsgewijs", ID_WINDOWS_CASCADE - MENUITEM "Naar &voorgrond", ID_WINDOWS_BRINGTOFRONT - END - POPUP "&Help" - BEGIN - MENUITEM "&Help-onderwerpen", ID_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "&Info", ID_HELP_ABOUT - END -END - -IDR_WINDOWSMENU MENU DISCARDABLE -BEGIN - MENUITEM "&Onder elkaar", ID_WINDOWS_TILEHORIZONTALLY - MENUITEM "N&aast elkaar", ID_WINDOWS_TILEVERTICALLY - MENUITEM "Mi&nimaliseren", ID_WINDOWS_MINIMIZE - MENUITEM "&Maximaliseren", ID_WINDOWS_MAXIMIZE - MENUITEM "&Trapsgewijs", ID_WINDOWS_CASCADE - MENUITEM "Naar &voorgrond", ID_WINDOWS_BRINGTOFRONT -END - -IDR_APPLICATION_PAGE_CONTEXT1 MENU DISCARDABLE -BEGIN - POPUP "DUMMY" - BEGIN - MENUITEM "&Nieuwe taak (Uitvoeren...)", ID_FILE_NEW - MENUITEM SEPARATOR - MENUITEM "&Grote pictogrammen", ID_VIEW_LARGE - MENUITEM "&Kleine pictogrammen", ID_VIEW_SMALL - MENUITEM "&Details", ID_VIEW_DETAILS, CHECKED - END -END - -IDR_APPLICATION_PAGE_CONTEXT2 MENU DISCARDABLE -BEGIN - POPUP "DUMMY" - BEGIN - MENUITEM "&Activeren", ID_APPLICATION_PAGE_SWITCHTO - MENUITEM "Naar &voorgrond", ID_WINDOWS_BRINGTOFRONT - MENUITEM SEPARATOR - MENUITEM "&Onder elkaar", ID_WINDOWS_TILEHORIZONTALLY - MENUITEM "N&aast elkaar", ID_WINDOWS_TILEVERTICALLY - MENUITEM "Mi&nimaliseren", ID_WINDOWS_MINIMIZE - MENUITEM "&Maximaliseren", ID_WINDOWS_MAXIMIZE - MENUITEM "&Trapsgewijs", ID_WINDOWS_CASCADE - MENUITEM SEPARATOR - MENUITEM "Taa&k beлindigen", ID_APPLICATION_PAGE_ENDTASK - MENUITEM "&Ga naar proces", ID_APPLICATION_PAGE_GOTOPROCESS - - END -END - -IDR_TRAY_POPUP MENU DISCARDABLE -BEGIN - POPUP "DUMMY" - BEGIN - MENUITEM "&Vorig formaat", ID_RESTORE - MENUITEM "&Sluiten", ID_FILE_EXIT - MENUITEM SEPARATOR - MENUITEM "&Altijd op voorgrond", ID_OPTIONS_ALWAYSONTOP - END -END - -IDR_PROCESS_PAGE_CONTEXT MENU DISCARDABLE -BEGIN - POPUP "DUMMY" - BEGIN - MENUITEM "&Proces beлindigen", ID_PROCESS_PAGE_ENDPROCESS - MENUITEM "Process&tructuur beлindigen", ID_PROCESS_PAGE_ENDPROCESSTREE - - MENUITEM "&Fouten opsporen", ID_PROCESS_PAGE_DEBUG - MENUITEM SEPARATOR - POPUP "P&rioriteit instellen" - BEGIN - MENUITEM "&Realtime", ID_PROCESS_PAGE_SETPRIORITY_REALTIME - - MENUITEM "&Hoog", ID_PROCESS_PAGE_SETPRIORITY_HIGH - - MENUITEM "Hoger &dan normaal", ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL - - MENUITEM "&Normaal", ID_PROCESS_PAGE_SETPRIORITY_NORMAL - - MENUITEM "L&ager dan normaal", ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL - - MENUITEM "&Laag", ID_PROCESS_PAGE_SETPRIORITY_LOW - - END - MENUITEM "&Affiniteit instellen...", ID_PROCESS_PAGE_SETAFFINITY - MENUITEM "Bewerk debug kanalen...", ID_PROCESS_PAGE_DEBUGCHANNELS - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_ABOUTBOX DIALOG DISCARDABLE 22, 17, 259, 210 -STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU -CAPTION "Over Taak Beheer" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Taak Beheer v1.0\nCopyright (C) 1999 - 2001\nby Brian Palmer (brianp@reactos.org)", - IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,53,28, - 122,26 - DEFPUSHBUTTON "OK",IDOK,183,189,44,14,WS_GROUP - ICON IDI_TASKMANAGER,IDC_STATIC,19,30,20,20 - EDITTEXT IDC_LICENSE_EDIT,53,63,174,107,ES_MULTILINE | - ES_READONLY | WS_VSCROLL -END - -IDD_TASKMGR_DIALOG DIALOG DISCARDABLE 0, 0, 264, 246 -STYLE DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | - WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU | - WS_THICKFRAME -CAPTION "Taak Beheer" -MENU IDR_TASKMANAGER -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Tab1",IDC_TAB,"SysTabControl32",WS_TABSTOP,3,3,257,228 -END - -IDD_APPLICATION_PAGE DIALOG DISCARDABLE 0, 0, 247, 210 -STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "List2",IDC_APPLIST,"SysListView32",LVS_REPORT | - LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,7,7,233,177 - PUSHBUTTON "&Nieuwe Taak...",IDC_NEWTASK,187,189,53,14 - PUSHBUTTON "&Activeren",IDC_SWITCHTO,131,189,53,14,WS_DISABLED - PUSHBUTTON "Taa&k beлindigen",IDC_ENDTASK,75,189,53,14,WS_DISABLED -END - -IDD_PROCESS_PAGE DIALOG DISCARDABLE 0, 0, 247, 210 -STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "List2",IDC_PROCESSLIST,"SysListView32",LVS_REPORT | - LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_OWNERDATA | - WS_BORDER | WS_TABSTOP,7,7,233,177 - PUSHBUTTON "&Proces beлindigen",IDC_ENDPROCESS,171,189,69,14 - CONTROL "Processen van &alle gebruikers weergeven",IDC_SHOWALLPROCESSES, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,191,111,10 -END - -//IDD_PERFORMANCE_PAGE DIALOGEX 0, 0, 247, 210 -IDD_PERFORMANCE_PAGE DIALOGEX DISCARDABLE 0, 0, 247, 210 -STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN -FONT 8, "MS Shell Dlg" -BEGIN - GROUPBOX "Weergave van CPU-gebruik",IDC_CPU_USAGE_FRAME,5,5,60,54,WS_TABSTOP, WS_EX_TRANSPARENT - GROUPBOX "Weergave van geheugengebruik",IDC_MEM_USAGE_FRAME,5,63,60,54,BS_LEFTTEXT, WS_EX_TRANSPARENT - GROUPBOX "Totalen",IDC_TOTALS_FRAME,5,122,111,39,0,WS_EX_TRANSPARENT - GROUPBOX "Geheugengebruik (kB)",IDC_COMMIT_CHARGE_FRAME,5,166,111,39,0,WS_EX_TRANSPARENT - GROUPBOX "Fysiek geheugen (kB)",IDC_PHYSICAL_MEMORY_FRAME,131,122,111,39,0,WS_EX_TRANSPARENT - GROUPBOX "Kernelgeheugen (kB)",IDC_KERNEL_MEMORY_FRAME,131,166,111,39,0,WS_EX_TRANSPARENT - LTEXT "Ingangen",IDS_TOTALS_HANDLE_COUNT,12,131,27,8 - LTEXT "Threads",IDS_TOTALS_THREAD_COUNT,12,140,27,8 - LTEXT "Processen",IDS_TOTALS_PROCESS_COUNT,12,149,34,8 - EDITTEXT IDC_TOTALS_HANDLE_COUNT,65,131,45,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_TOTALS_THREAD_COUNT,65,140,45,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_TOTALS_PROCESS_COUNT,65,149,45,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - LTEXT "Totaal",IDS_COMMIT_CHARGE_TOTAL,12,175,27,8 - LTEXT "Limiet",IDS_COMMIT_CHARGE_LIMIT,12,184,15,8 - LTEXT "Piek",IDS_COMMIT_CHARGE_PEAK,12,193,34,8 - EDITTEXT IDC_COMMIT_CHARGE_TOTAL,65,174,45,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_COMMIT_CHARGE_LIMIT,65,184,45,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_COMMIT_CHARGE_PEAK,65,193,45,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - LTEXT "Totaal",IDS_PHYSICAL_MEMORY_TOTAL,137,131,27,8 - LTEXT "Beschikbaar",IDS_PHYSICAL_MEMORY_AVAILABLE,137,140,30,8 - LTEXT "Systeemcache",IDS_PHYSICAL_MEMORY_SYSTEM_CACHE,137,149,46,8 - EDITTEXT IDC_PHYSICAL_MEMORY_TOTAL,185,131,48,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_PHYSICAL_MEMORY_AVAILABLE,185,140,48,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_PHYSICAL_MEMORY_SYSTEM_CACHE,185,149,48,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - LTEXT "Totaal",IDS_KERNEL_MEMORY_TOTAL,137,174,27,8 - LTEXT "In wisselbestand",IDS_KERNEL_MEMORY_PAGED,137,184,21,8 - LTEXT "Niet in wisselbestand",IDS_KERNEL_MEMORY_NONPAGED,137,193,34,8 - EDITTEXT IDC_KERNEL_MEMORY_TOTAL,185,174,48,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_KERNEL_MEMORY_PAGED,185,184,48,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_KERNEL_MEMORY_NONPAGED,185,193,48,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - GROUPBOX "Geschiedenis van CPU gebruik",IDC_CPU_USAGE_HISTORY_FRAME,74,5,168,54,0,WS_EX_TRANSPARENT - GROUPBOX "Geschiedenis van geheugen gebruik",IDC_MEMORY_USAGE_HISTORY_FRAME,74,63,168,54,0,WS_EX_TRANSPARENT - PUSHBUTTON "Weergave van CPU-gebruik",IDC_CPU_USAGE_GRAPH,12,17,47,37,0, - WS_EX_CLIENTEDGE - PUSHBUTTON "Weergave van geheugengebruik",IDC_MEM_USAGE_GRAPH,12,75,47,37,0, - WS_EX_CLIENTEDGE - PUSHBUTTON "Geschiedenis van CPU gebruik",IDC_CPU_USAGE_HISTORY_GRAPH,81,17, - 153,37,0,WS_EX_CLIENTEDGE - PUSHBUTTON "Geschiedenis van geheugen gebruik",IDC_MEM_USAGE_HISTORY_GRAPH,81,75, - 153,37,0,WS_EX_CLIENTEDGE -END - -IDD_DEBUG_CHANNELS_DIALOG DIALOG DISCARDABLE 0, 0, 247, 210 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Debug kanalen" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "List2",IDC_DEBUG_CHANNELS_LIST,"SysListView32",LVS_REPORT | - LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP | - LVS_SORTASCENDING,7,7,233,177 - PUSHBUTTON "Sluit",IDOK,171,189,69,14 -END - -IDD_AFFINITY_DIALOG DIALOG DISCARDABLE 0, 0, 231, 154 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Processoraffiniteit" -FONT 8, "MS Shell Dlg" -BEGIN - DEFPUSHBUTTON "OK",IDOK,120,133,50,14 - PUSHBUTTON "Annuleren",IDCANCEL,174,133,50,14 - LTEXT "De instellingen voor processoraffiniteit bepalen welke processors voor het uitvoeren van programma's kunnen worden gebruikt.", - IDC_STATIC,5,5,220,16 - CONTROL "CPU 0",IDC_CPU0,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, - 11,28,37,10 - CONTROL "CPU 1",IDC_CPU1,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,11,41,37,10 - CONTROL "CPU 2",IDC_CPU2,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,11,54,37,10 - CONTROL "CPU 3",IDC_CPU3,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,11,67,37,10 - CONTROL "CPU 4",IDC_CPU4,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,11,80,37,10 - CONTROL "CPU 5",IDC_CPU5,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,11,93,37,10 - CONTROL "CPU 6",IDC_CPU6,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,11,106,37,10 - CONTROL "CPU 7",IDC_CPU7,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,11,119,37,10 - CONTROL "CPU 8",IDC_CPU8,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,61,28,37,10 - CONTROL "CPU 9",IDC_CPU9,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,61,41,37,10 - CONTROL "CPU 10",IDC_CPU10,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,61,54,41,10 - CONTROL "CPU 11",IDC_CPU11,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,61,67,41,10 - CONTROL "CPU 12",IDC_CPU12,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,61,80,41,10 - CONTROL "CPU 13",IDC_CPU13,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,61,93,41,10 - CONTROL "CPU 14",IDC_CPU14,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,61,106,41,10 - CONTROL "CPU 15",IDC_CPU15,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,61,119,41,10 - CONTROL "CPU 16",IDC_CPU16,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,28,41,10 - CONTROL "CPU 17",IDC_CPU17,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,41,41,10 - CONTROL "CPU 18",IDC_CPU18,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,54,41,10 - CONTROL "CPU 19",IDC_CPU19,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,67,41,10 - CONTROL "CPU 20",IDC_CPU20,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,80,41,10 - CONTROL "CPU 21",IDC_CPU21,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,93,41,10 - CONTROL "CPU 22",IDC_CPU22,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,106,41,10 - CONTROL "CPU 23",IDC_CPU23,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,119,41,10 - CONTROL "CPU 24",IDC_CPU24,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,28,41,10 - CONTROL "CPU 25",IDC_CPU25,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,41,41,10 - CONTROL "CPU 26",IDC_CPU26,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,54,41,10 - CONTROL "CPU 27",IDC_CPU27,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,67,41,10 - CONTROL "CPU 28",IDC_CPU28,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,80,41,10 - CONTROL "CPU 29",IDC_CPU29,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,93,41,10 - CONTROL "CPU 30",IDC_CPU30,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,106,41,10 - CONTROL "CPU 31",IDC_CPU31,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,119,41,10 -END - -IDD_COLUMNS_DIALOG DIALOG DISCARDABLE 0, 0, 195, 199 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Kolommen selecteren" -FONT 8, "MS Shell Dlg" -BEGIN - DEFPUSHBUTTON "OK",IDOK,84,178,50,14 - PUSHBUTTON "Annuleren",IDCANCEL,138,178,50,14 - LTEXT "Selecteer de kolommen die op het tabblad Processen van Taakbeheer moeten worden weergegeven.", - IDC_STATIC,7,7,181,17 - CONTROL "Pr&ocesnaam",IDC_IMAGENAME,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,7,28,56,10 - CONTROL "&PID (proces-id)",IDC_PID,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,39,88,10 - CONTROL "&CPU-gebruik",IDC_CPUUSAGE,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,50,53,10 - CONTROL "CPU-&tijd",IDC_CPUTIME,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,61,48,10 - CONTROL "&Geheugengebruik",IDC_MEMORYUSAGE,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,72,63,10 - CONTROL "Ve&rschil in geheugengebruik",IDC_MEMORYUSAGEDELTA,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,83,82,10 - CONTROL "Pie&kgeheugengebruik",IDC_PEAKMEMORYUSAGE,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,94,82,10 - CONTROL "&Wisselbestandsfouten",IDC_PAGEFAULTS,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,105,53,10 - CONTROL "&USER-objecten",IDC_USEROBJECTS,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,116,62,10 - CONTROL "I/O: leesbewerkingen",IDC_IOREADS,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,127,49,10 - CONTROL "I/O: gelezen bytes",IDC_IOREADBYTES,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,138,65,10 - CONTROL "S&essie-id",IDC_SESSIONID,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,149,50,10 - CONTROL "Gebruikers&naam",IDC_USERNAME,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,160,51,10 - CONTROL "Verschil in &aantal wisselfouten",IDC_PAGEFAULTSDELTA,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,107,28,72,10 - CONTROL "Grootte van &virtueel geheugen",IDC_VIRTUALMEMORYSIZE,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,107,39,77,10 - CONTROL "Wissel&bare pool",IDC_PAGEDPOOL,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,107,50,53,10 - CONTROL "Niet-wisse&lbare pool",IDC_NONPAGEDPOOL,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,107,61,67,10 - CONTROL "Ba&sisprioriteit",IDC_BASEPRIORITY,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,107,72,55,10 - CONTROL "Aantal &ingangen",IDC_HANDLECOUNT,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,107,83,59,10 - CONTROL "Aantal t&hreads",IDC_THREADCOUNT,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,107,94,59,10 - CONTROL "G&DI-objecten",IDC_GDIOBJECTS,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,107,105,55,10 - CONTROL "I/O: schrijfbewerkingen",IDC_IOWRITES,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,107,116,49,10 - CONTROL "I/O: geschreven bytes",IDC_IOWRITEBYTES,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,107,127,65,10 - CONTROL "I/O: overig",IDC_IOOTHER,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,107,138,46,10 - CONTROL "I/O: overige bytes",IDC_IOOTHERBYTES,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,107,149,65,10 -END - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -2 TEXTINCLUDE DISCARDABLE -BEGIN - "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" - "#include ""windows.h""\r\n" - "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" - "#include ""resource.h""\r\n" - "\0" -END - -3 TEXTINCLUDE DISCARDABLE -BEGIN - "\r\n" - "\0" -END - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "resource.h\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO DISCARDABLE -BEGIN - IDD_ABOUTBOX, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 252 - TOPMARGIN, 7 - BOTTOMMARGIN, 203 - END - - IDD_TASKMGR_DIALOG, DIALOG - BEGIN - LEFTMARGIN, 3 - RIGHTMARGIN, 260 - TOPMARGIN, 3 - BOTTOMMARGIN, 231 - END - - IDD_APPLICATION_PAGE, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 240 - TOPMARGIN, 7 - BOTTOMMARGIN, 203 - END - - IDD_PROCESS_PAGE, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 240 - TOPMARGIN, 7 - BOTTOMMARGIN, 203 - END - - IDD_PERFORMANCE_PAGE, DIALOG - BEGIN - LEFTMARGIN, 5 - RIGHTMARGIN, 242 - VERTGUIDE, 12 - VERTGUIDE, 65 - VERTGUIDE, 110 - TOPMARGIN, 5 - BOTTOMMARGIN, 205 - END - - IDD_AFFINITY_DIALOG, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 224 - VERTGUIDE, 11 - VERTGUIDE, 61 - VERTGUIDE, 116 - VERTGUIDE, 175 - TOPMARGIN, 7 - BOTTOMMARGIN, 147 - HORZGUIDE, 28 - HORZGUIDE, 38 - HORZGUIDE, 51 - HORZGUIDE, 64 - HORZGUIDE, 77 - HORZGUIDE, 90 - HORZGUIDE, 103 - HORZGUIDE, 116 - HORZGUIDE, 129 - END - - IDD_COLUMNS_DIALOG, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 188 - VERTGUIDE, 107 - TOPMARGIN, 7 - BOTTOMMARGIN, 192 - HORZGUIDE, 28 - END -END -#endif // APSTUDIO_INVOKED - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APP_TITLE "Taak Beheer" - IDC_TASKMGR "Taak Beheer" - IDS_IDLE_PROCESS "Niet-actieve systeemprocessen" -END - -STRINGTABLE DISCARDABLE -BEGIN - ID_FILE_NEW "Een nieuw programma uitvoeren" - ID_OPTIONS_ALWAYSONTOP "Taakbeheer blijft op de voorgrond, behalve als het wordt geminimaliseerd" - ID_OPTIONS_MINIMIZEONUSE "Taakbeheer wordt geminimaliseerd als een taak wordt geactiveerd" - ID_OPTIONS_HIDEWHENMINIMIZED "Taakbeheer verbergen als dit geminimaliseerd is" - ID_VIEW_REFRESH "Gegevens nu vernieuwen, ongeacht de instelling van Bijwerksnelheid" - ID_VIEW_LARGE "De taken met grote pictogrammen weergeven" - ID_VIEW_SMALL "De taken met kleine pictogrammen weergeven" - ID_VIEW_DETAILS "Gegevens van elke taak weergeven" - ID_VIEW_UPDATESPEED_HIGH "Het beeldscherm twee keer per seconde bijwerken" - ID_VIEW_UPDATESPEED_NORMAL "Het beeldscherm elke twee seconden bijwerken" - ID_VIEW_UPDATESPEED_LOW "Het beeldscherm elke vier seconden bijwerken" -END - -STRINGTABLE DISCARDABLE -BEGIN - ID_VIEW_UPDATESPEED_PAUSED "Beeldscherm wordt niet automatisch bijgewerkt" - ID_WINDOWS_TILEHORIZONTALLY "Vensters onder elkaar schikken" - ID_WINDOWS_TILEVERTICALLY "Vensters naast elkaar schikken" - ID_WINDOWS_MINIMIZE "Vensters minimaliseren" - ID_WINDOWS_MAXIMIZE "Vensters maximaliseren" - ID_WINDOWS_CASCADE "Vensters diagonaal over het bureaublad schikken" - ID_WINDOWS_BRINGTOFRONT "Venster naar de voorgrond brengen, maar niet actief maken" - ID_HELP_TOPICS "Help-onderwerpen over Taakbeheer weergeven" - ID_HELP_ABOUT "Programma-informatie, versienummer en copyrightgegevens weergeven" - ID_FILE_EXIT "Taakbeheer afsluiten" - ID_OPTIONS_SHOW16BITTASKS "16-bits taken weergeven van de bijbehorende ntvdm.exe" - ID_VIEW_SELECTCOLUMNS "De kolommen selecteren die moeten worden weergegeven op de pagina Proces" - ID_VIEW_SHOWKERNELTIMES "De kerneltijden in de prestatiegrafiek weergeven" - ID_VIEW_CPUHISTORY_ONEGRAPHALL "Eйn grafiek geeft het totale CPU-gebruik weer" - ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU "Elke CPU heeft zijn eigen grafiek" - ID_APPLICATION_PAGE_SWITCHTO "Venster naar de voorgrond brengen en actief maken" -END - -STRINGTABLE DISCARDABLE -BEGIN - ID_ENDTASK "Sluit de geselecteerde taken" - ID_GOTOPROCESS "Activeert het proces van de geselecteerde taak" - ID_RESTORE "Taakbeheer herstellen als dit verborgen is" - ID_PROCESS_PAGE_ENDPROCESS "Dit proces wordt van het systeem verwijderd" - ID_PROCESS_PAGE_ENDPROCESSTREE "Dit proces en alle afhankelijkheden ervan van het systeem verwijderen" - ID_PROCESS_PAGE_DEBUG "De debugger wordt voor dit proces gebruikt" - ID_PROCESS_PAGE_SETAFFINITY "Instellen op welke processors het proces uitgevoerd kan worden" - ID_PROCESS_PAGE_SETPRIORITY_REALTIME "Het proces wordt ingesteld met de prioriteitsklasse REALTIME" - ID_PROCESS_PAGE_SETPRIORITY_HIGH "Het proces wordt ingesteld met de prioriteitsklasse HOOG" - ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL "Proces instellen op prioriteitsklasse HOGER DAN NORMAAL" - ID_PROCESS_PAGE_SETPRIORITY_NORMAL "Het proces wordt ingesteld met de prioriteitsklasse NORMAAL" - ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL "Proces instellen op prioriteitsklasse LAGER DAN NORMAAL" - ID_PROCESS_PAGE_SETPRIORITY_LOW "Het proces wordt ingesteld met de prioriteitsklasse LAAG" - IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA." -END - - -STRINGTABLE DISCARDABLE -BEGIN - IDS_TAB_APPS "Toepassingen" - IDS_TAB_PROCESSES "Procesnaam" - IDS_TAB_PERFORMANCE "Prestaties" - IDS_TAB_TASK "Taak" - IDS_TAB_STATUS "Status" - IDS_TAB_IMAGENAME "Proces Naam" - IDS_TAB_PID "PID" - IDS_TAB_USERNAME "Gebruikersnaam" - IDS_TAB_SESSIONID "Sessie-ID" - IDS_TAB_CPU "CPU" - IDS_TAB_CPUTIME "CPU-tijd" - IDS_TAB_MEMUSAGE "Geheugengebruik" - IDS_TAB_PEAKMEMUSAGE "Piekgeheugengebruik" - IDS_TAB_MEMDELTA "Geheugenverschil" - IDS_TAB_PAGEFAULT "Wisselbestandsfouten" - IDS_TAB_PFDELTA "PF-verschil" - IDS_TAB_VMSIZE "VM-grootte" - IDS_TAB_PAGEDPOOL "Wisselbare pool" - IDS_TAB_NPPOOL "Niet-wisselbare pool" - IDS_TAB_BASEPRI "Basisprioriteit" - IDS_TAB_HANDLES "Ingangen" - IDS_TAB_THREADS "Threads" - IDS_TAB_USERPBJECTS "USER-objecten" - IDS_TAB_GDIOBJECTS "GDI-objecten" - IDS_TAB_IOREADS "I/O: leesbewerkingen" - IDS_TAB_IOWRITES "I/O: schrijfbewerkingen" - IDS_TAB_IOOTHER "I/O: overig" - IDS_TAB_IOREADBYTES "I/O: gelezen bytes" - IDS_TAB_IOWRITESBYTES "I/O: geschreven bytes" - IDS_TAB_IOOTHERBYTES "I/O: overige bytes" - IDS_MENU_SELECTCOLUMNS "&Kolommen selecteren..." - IDS_MENU_16BITTASK "16-&bits taken weergeven" - IDS_MENU_WINDOWS "&Vensters" - IDS_MENU_LARGEICONS "&Grote pictogrammen" - IDS_MENU_SMALLICONS "&Kleine pictogrammen" - IDS_MENU_DETAILS "&Details" - IDS_MENU_ONEGRAPHALLCPUS "&Eйn grafiek, alle CPU's" - IDS_MENU_ONEGRAPHPERCPU "Eйn grafiek &per CPU" - IDS_MENU_CPUHISTORY "&Geschiedenis van de CPU" - IDS_MENU_SHOWKERNELTIMES "&Kerneltijden weergeven" - IDS_CREATENEWTASK "Nieuwe taak maken" - IDS_CREATENEWTASK_DESC "Geef de naam van een programma, map of document op, of geef een Internet-adres op. Wat u opgeeft, wordt vervolgens in Windows geopend." - IDS_MSG_ACCESSPROCESSAFF "Kan procesaffiniteit niet opvragen of instellen" - IDS_MSG_PROCESSONEPRO "Het proces moet affiniteit hebben met ten minste ййn processor." - IDS_MSG_INVALIDOPTION "Ongeldige optie" - IDS_MSG_UNABLEDEBUGPROCESS "Kan de debugger niet gebruiken" - IDS_MSG_WARNINGDEBUG "Waarschuwing: het opsporen van fouten in dit proces kan verlies van gegevens als resultaat hebben.\nWeet u zeker dat u de debugger wilt gebruiken?" - IDS_MSG_TASKMGRWARNING "Waarschuwing van Taakbeheer" - IDS_MSG_WARNINGTERMINATING "Waarschuwing: het beлindigen van een proces kan tot\nonverwachte resultaten leiden, zoals verlies van gegevens\nof een instabiel systeem, omdat de status of de gegevens\nniet meer kunnen worden opgeslagen. Weet u zeker dat\nu het proces wilt beлindigen?" - IDS_MSG_UNABLETERMINATEPRO "Kan het proces niet beлindigen" - IDS_MSG_UNABLECHANGEPRIORITY "Kan de prioriteit niet wijzigen" - IDS_MSG_WARNINGCHANGEPRIORITY "Waarschuwing: het wijzigen van de prioriteitsklasse van dit proces\nkan ongewenste resultaten hebben, zoals een instabiel systeem. Weet u\nzeker dat u de prioriteitsklasse wilt wijzigen?" - IDS_MSG_TRAYICONCPUUSAGE "CPU-gebruik: %d%%" - IDS_STATUS_MEMUSAGE "Geheugengebruik: %dK / %dK" - IDS_STATUS_CPUUSAGE "CPU-gebruik: %3d%%" - IDS_STATUS_PROCESSES "Processen: %d" - IDS_Not_Responding "Reageert niet" - IDS_Running "Geactiveerd" -END - - -#endif -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// Dutch resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_TASKMANAGER MENU DISCARDABLE +BEGIN + POPUP "&Bestand" + BEGIN + MENUITEM "&Nieuwe taak (Uitvoeren...)", ID_FILE_NEW + MENUITEM SEPARATOR + MENUITEM "&Taakbeheer afsluiten", ID_FILE_EXIT + END + POPUP "&Opties" + BEGIN + MENUITEM "&Altijd op voorgrond", ID_OPTIONS_ALWAYSONTOP + , CHECKED + MENUITEM "Minimaliseren &bij gebruik", ID_OPTIONS_MINIMIZEONUSE + , CHECKED + MENUITEM "&Verbergen indien geminimaliseerd", ID_OPTIONS_HIDEWHENMINIMIZED + , CHECKED + MENUITEM "16-&bits taken weergeven", ID_OPTIONS_SHOW16BITTASKS + , CHECKED + END + POPUP "&Beeld" + BEGIN + MENUITEM "&Nu vernieuwen", ID_VIEW_REFRESH + POPUP "Bijwerk&snelheid" + BEGIN + MENUITEM "&Hoog", ID_VIEW_UPDATESPEED_HIGH + MENUITEM "&Standaard", ID_VIEW_UPDATESPEED_NORMAL + , CHECKED + MENUITEM "&Laag", ID_VIEW_UPDATESPEED_LOW + MENUITEM "&Onderbroken", ID_VIEW_UPDATESPEED_PAUSED + + END + MENUITEM SEPARATOR + MENUITEM "&Grote pictogrammen", ID_VIEW_LARGE + MENUITEM "&Kleine pictogrammen", ID_VIEW_SMALL + MENUITEM "&Details", ID_VIEW_DETAILS, CHECKED + MENUITEM "&Kolommen selecteren...", ID_VIEW_SELECTCOLUMNS + POPUP "&Geschiedenis van CPU" + BEGIN + MENUITEM "&Eйn grafiek, alle CPU's", ID_VIEW_CPUHISTORY_ONEGRAPHALL + + MENUITEM "Eйn grafiek &per CPU", ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU + , CHECKED + END + MENUITEM "&Kerneltijden weergeven", ID_VIEW_SHOWKERNELTIMES + END + POPUP "&Vensters" + BEGIN + MENUITEM "&Onder elkaar", ID_WINDOWS_TILEHORIZONTALLY + MENUITEM "N&aast elkaar", ID_WINDOWS_TILEVERTICALLY + MENUITEM "Mi&nimaliseren", ID_WINDOWS_MINIMIZE + MENUITEM "&Maximaliseren", ID_WINDOWS_MAXIMIZE + MENUITEM "&Trapsgewijs", ID_WINDOWS_CASCADE + MENUITEM "Naar &voorgrond", ID_WINDOWS_BRINGTOFRONT + END + POPUP "&Help" + BEGIN + MENUITEM "&Help-onderwerpen", ID_HELP_TOPICS + MENUITEM SEPARATOR + MENUITEM "&Info", ID_HELP_ABOUT + END +END + +IDR_WINDOWSMENU MENU DISCARDABLE +BEGIN + MENUITEM "&Onder elkaar", ID_WINDOWS_TILEHORIZONTALLY + MENUITEM "N&aast elkaar", ID_WINDOWS_TILEVERTICALLY + MENUITEM "Mi&nimaliseren", ID_WINDOWS_MINIMIZE + MENUITEM "&Maximaliseren", ID_WINDOWS_MAXIMIZE + MENUITEM "&Trapsgewijs", ID_WINDOWS_CASCADE + MENUITEM "Naar &voorgrond", ID_WINDOWS_BRINGTOFRONT +END + +IDR_APPLICATION_PAGE_CONTEXT1 MENU DISCARDABLE +BEGIN + POPUP "DUMMY" + BEGIN + MENUITEM "&Nieuwe taak (Uitvoeren...)", ID_FILE_NEW + MENUITEM SEPARATOR + MENUITEM "&Grote pictogrammen", ID_VIEW_LARGE + MENUITEM "&Kleine pictogrammen", ID_VIEW_SMALL + MENUITEM "&Details", ID_VIEW_DETAILS, CHECKED + END +END + +IDR_APPLICATION_PAGE_CONTEXT2 MENU DISCARDABLE +BEGIN + POPUP "DUMMY" + BEGIN + MENUITEM "&Activeren", ID_APPLICATION_PAGE_SWITCHTO + MENUITEM "Naar &voorgrond", ID_WINDOWS_BRINGTOFRONT + MENUITEM SEPARATOR + MENUITEM "&Onder elkaar", ID_WINDOWS_TILEHORIZONTALLY + MENUITEM "N&aast elkaar", ID_WINDOWS_TILEVERTICALLY + MENUITEM "Mi&nimaliseren", ID_WINDOWS_MINIMIZE + MENUITEM "&Maximaliseren", ID_WINDOWS_MAXIMIZE + MENUITEM "&Trapsgewijs", ID_WINDOWS_CASCADE + MENUITEM SEPARATOR + MENUITEM "Taa&k beлindigen", ID_APPLICATION_PAGE_ENDTASK + MENUITEM "&Ga naar proces", ID_APPLICATION_PAGE_GOTOPROCESS + + END +END + +IDR_TRAY_POPUP MENU DISCARDABLE +BEGIN + POPUP "DUMMY" + BEGIN + MENUITEM "&Vorig formaat", ID_RESTORE + MENUITEM "&Sluiten", ID_FILE_EXIT + MENUITEM SEPARATOR + MENUITEM "&Altijd op voorgrond", ID_OPTIONS_ALWAYSONTOP + END +END + +IDR_PROCESS_PAGE_CONTEXT MENU DISCARDABLE +BEGIN + POPUP "DUMMY" + BEGIN + MENUITEM "&Proces beлindigen", ID_PROCESS_PAGE_ENDPROCESS + MENUITEM "Process&tructuur beлindigen", ID_PROCESS_PAGE_ENDPROCESSTREE + + MENUITEM "&Fouten opsporen", ID_PROCESS_PAGE_DEBUG + MENUITEM SEPARATOR + POPUP "P&rioriteit instellen" + BEGIN + MENUITEM "&Realtime", ID_PROCESS_PAGE_SETPRIORITY_REALTIME + + MENUITEM "&Hoog", ID_PROCESS_PAGE_SETPRIORITY_HIGH + + MENUITEM "Hoger &dan normaal", ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL + + MENUITEM "&Normaal", ID_PROCESS_PAGE_SETPRIORITY_NORMAL + + MENUITEM "L&ager dan normaal", ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL + + MENUITEM "&Laag", ID_PROCESS_PAGE_SETPRIORITY_LOW + + END + MENUITEM "&Affiniteit instellen...", ID_PROCESS_PAGE_SETAFFINITY + MENUITEM "Bewerk debug kanalen...", ID_PROCESS_PAGE_DEBUGCHANNELS + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_ABOUTBOX DIALOG DISCARDABLE 22, 17, 259, 210 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +CAPTION "Over Taak Beheer" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "Taak Beheer v1.0\nCopyright (C) 1999 - 2001\nby Brian Palmer (brianp@reactos.org)", + IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,53,28, + 122,26 + DEFPUSHBUTTON "OK",IDOK,183,189,44,14,WS_GROUP + ICON IDI_TASKMANAGER,IDC_STATIC,19,30,20,20 + EDITTEXT IDC_LICENSE_EDIT,53,63,174,107,ES_MULTILINE | + ES_READONLY | WS_VSCROLL +END + +IDD_TASKMGR_DIALOG DIALOG DISCARDABLE 0, 0, 264, 246 +STYLE DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | + WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU | + WS_THICKFRAME +CAPTION "Taak Beheer" +MENU IDR_TASKMANAGER +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "Tab1",IDC_TAB,"SysTabControl32",WS_TABSTOP,3,3,257,228 +END + +IDD_APPLICATION_PAGE DIALOG DISCARDABLE 0, 0, 247, 210 +STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "List2",IDC_APPLIST,"SysListView32",LVS_REPORT | + LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,7,7,233,177 + PUSHBUTTON "&Nieuwe Taak...",IDC_NEWTASK,187,189,53,14 + PUSHBUTTON "&Activeren",IDC_SWITCHTO,131,189,53,14,WS_DISABLED + PUSHBUTTON "Taa&k beлindigen",IDC_ENDTASK,75,189,53,14,WS_DISABLED +END + +IDD_PROCESS_PAGE DIALOG DISCARDABLE 0, 0, 247, 210 +STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "List2",IDC_PROCESSLIST,"SysListView32",LVS_REPORT | + LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_OWNERDATA | + WS_BORDER | WS_TABSTOP,7,7,233,177 + PUSHBUTTON "&Proces beлindigen",IDC_ENDPROCESS,171,189,69,14 + CONTROL "Processen van &alle gebruikers weergeven",IDC_SHOWALLPROCESSES, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,191,111,10 +END + +//IDD_PERFORMANCE_PAGE DIALOGEX 0, 0, 247, 210 +IDD_PERFORMANCE_PAGE DIALOGEX DISCARDABLE 0, 0, 247, 210 +STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN +FONT 8, "MS Shell Dlg" +BEGIN + GROUPBOX "Weergave van CPU-gebruik",IDC_CPU_USAGE_FRAME,5,5,60,54,WS_TABSTOP, WS_EX_TRANSPARENT + GROUPBOX "Weergave van geheugengebruik",IDC_MEM_USAGE_FRAME,5,63,60,54,BS_LEFTTEXT, WS_EX_TRANSPARENT + GROUPBOX "Totalen",IDC_TOTALS_FRAME,5,122,111,39,0,WS_EX_TRANSPARENT + GROUPBOX "Geheugengebruik (kB)",IDC_COMMIT_CHARGE_FRAME,5,166,111,39,0,WS_EX_TRANSPARENT + GROUPBOX "Fysiek geheugen (kB)",IDC_PHYSICAL_MEMORY_FRAME,131,122,111,39,0,WS_EX_TRANSPARENT + GROUPBOX "Kernelgeheugen (kB)",IDC_KERNEL_MEMORY_FRAME,131,166,111,39,0,WS_EX_TRANSPARENT + LTEXT "Ingangen",IDS_TOTALS_HANDLE_COUNT,12,131,27,8 + LTEXT "Threads",IDS_TOTALS_THREAD_COUNT,12,140,27,8 + LTEXT "Processen",IDS_TOTALS_PROCESS_COUNT,12,149,34,8 + EDITTEXT IDC_TOTALS_HANDLE_COUNT,65,131,45,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_TOTALS_THREAD_COUNT,65,140,45,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_TOTALS_PROCESS_COUNT,65,149,45,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + LTEXT "Totaal",IDS_COMMIT_CHARGE_TOTAL,12,175,27,8 + LTEXT "Limiet",IDS_COMMIT_CHARGE_LIMIT,12,184,15,8 + LTEXT "Piek",IDS_COMMIT_CHARGE_PEAK,12,193,34,8 + EDITTEXT IDC_COMMIT_CHARGE_TOTAL,65,174,45,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_COMMIT_CHARGE_LIMIT,65,184,45,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_COMMIT_CHARGE_PEAK,65,193,45,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + LTEXT "Totaal",IDS_PHYSICAL_MEMORY_TOTAL,137,131,27,8 + LTEXT "Beschikbaar",IDS_PHYSICAL_MEMORY_AVAILABLE,137,140,30,8 + LTEXT "Systeemcache",IDS_PHYSICAL_MEMORY_SYSTEM_CACHE,137,149,46,8 + EDITTEXT IDC_PHYSICAL_MEMORY_TOTAL,185,131,48,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_PHYSICAL_MEMORY_AVAILABLE,185,140,48,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_PHYSICAL_MEMORY_SYSTEM_CACHE,185,149,48,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + LTEXT "Totaal",IDS_KERNEL_MEMORY_TOTAL,137,174,27,8 + LTEXT "In wisselbestand",IDS_KERNEL_MEMORY_PAGED,137,184,21,8 + LTEXT "Niet in wisselbestand",IDS_KERNEL_MEMORY_NONPAGED,137,193,34,8 + EDITTEXT IDC_KERNEL_MEMORY_TOTAL,185,174,48,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_KERNEL_MEMORY_PAGED,185,184,48,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_KERNEL_MEMORY_NONPAGED,185,193,48,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + GROUPBOX "Geschiedenis van CPU gebruik",IDC_CPU_USAGE_HISTORY_FRAME,74,5,168,54,0,WS_EX_TRANSPARENT + GROUPBOX "Geschiedenis van geheugen gebruik",IDC_MEMORY_USAGE_HISTORY_FRAME,74,63,168,54,0,WS_EX_TRANSPARENT + PUSHBUTTON "Weergave van CPU-gebruik",IDC_CPU_USAGE_GRAPH,12,17,47,37,0, + WS_EX_CLIENTEDGE + PUSHBUTTON "Weergave van geheugengebruik",IDC_MEM_USAGE_GRAPH,12,75,47,37,0, + WS_EX_CLIENTEDGE + PUSHBUTTON "Geschiedenis van CPU gebruik",IDC_CPU_USAGE_HISTORY_GRAPH,81,17, + 153,37,0,WS_EX_CLIENTEDGE + PUSHBUTTON "Geschiedenis van geheugen gebruik",IDC_MEM_USAGE_HISTORY_GRAPH,81,75, + 153,37,0,WS_EX_CLIENTEDGE +END + +IDD_DEBUG_CHANNELS_DIALOG DIALOG DISCARDABLE 0, 0, 247, 210 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Debug kanalen" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "List2",IDC_DEBUG_CHANNELS_LIST,"SysListView32",LVS_REPORT | + LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP | + LVS_SORTASCENDING,7,7,233,177 + PUSHBUTTON "Sluit",IDOK,171,189,69,14 +END + +IDD_AFFINITY_DIALOG DIALOG DISCARDABLE 0, 0, 231, 154 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Processoraffiniteit" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "OK",IDOK,120,133,50,14 + PUSHBUTTON "Annuleren",IDCANCEL,174,133,50,14 + LTEXT "De instellingen voor processoraffiniteit bepalen welke processors voor het uitvoeren van programma's kunnen worden gebruikt.", + IDC_STATIC,5,5,220,16 + CONTROL "CPU 0",IDC_CPU0,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, + 11,28,37,10 + CONTROL "CPU 1",IDC_CPU1,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,11,41,37,10 + CONTROL "CPU 2",IDC_CPU2,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,11,54,37,10 + CONTROL "CPU 3",IDC_CPU3,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,11,67,37,10 + CONTROL "CPU 4",IDC_CPU4,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,11,80,37,10 + CONTROL "CPU 5",IDC_CPU5,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,11,93,37,10 + CONTROL "CPU 6",IDC_CPU6,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,11,106,37,10 + CONTROL "CPU 7",IDC_CPU7,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,11,119,37,10 + CONTROL "CPU 8",IDC_CPU8,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,61,28,37,10 + CONTROL "CPU 9",IDC_CPU9,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,61,41,37,10 + CONTROL "CPU 10",IDC_CPU10,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,61,54,41,10 + CONTROL "CPU 11",IDC_CPU11,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,61,67,41,10 + CONTROL "CPU 12",IDC_CPU12,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,61,80,41,10 + CONTROL "CPU 13",IDC_CPU13,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,61,93,41,10 + CONTROL "CPU 14",IDC_CPU14,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,61,106,41,10 + CONTROL "CPU 15",IDC_CPU15,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,61,119,41,10 + CONTROL "CPU 16",IDC_CPU16,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,28,41,10 + CONTROL "CPU 17",IDC_CPU17,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,41,41,10 + CONTROL "CPU 18",IDC_CPU18,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,54,41,10 + CONTROL "CPU 19",IDC_CPU19,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,67,41,10 + CONTROL "CPU 20",IDC_CPU20,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,80,41,10 + CONTROL "CPU 21",IDC_CPU21,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,93,41,10 + CONTROL "CPU 22",IDC_CPU22,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,106,41,10 + CONTROL "CPU 23",IDC_CPU23,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,119,41,10 + CONTROL "CPU 24",IDC_CPU24,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,28,41,10 + CONTROL "CPU 25",IDC_CPU25,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,41,41,10 + CONTROL "CPU 26",IDC_CPU26,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,54,41,10 + CONTROL "CPU 27",IDC_CPU27,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,67,41,10 + CONTROL "CPU 28",IDC_CPU28,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,80,41,10 + CONTROL "CPU 29",IDC_CPU29,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,93,41,10 + CONTROL "CPU 30",IDC_CPU30,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,106,41,10 + CONTROL "CPU 31",IDC_CPU31,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,119,41,10 +END + +IDD_COLUMNS_DIALOG DIALOG DISCARDABLE 0, 0, 195, 199 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Kolommen selecteren" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "OK",IDOK,84,178,50,14 + PUSHBUTTON "Annuleren",IDCANCEL,138,178,50,14 + LTEXT "Selecteer de kolommen die op het tabblad Processen van Taakbeheer moeten worden weergegeven.", + IDC_STATIC,7,7,181,17 + CONTROL "Pr&ocesnaam",IDC_IMAGENAME,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,7,28,56,10 + CONTROL "&PID (proces-id)",IDC_PID,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,39,88,10 + CONTROL "&CPU-gebruik",IDC_CPUUSAGE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,50,53,10 + CONTROL "CPU-&tijd",IDC_CPUTIME,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,61,48,10 + CONTROL "&Geheugengebruik",IDC_MEMORYUSAGE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,72,63,10 + CONTROL "Ve&rschil in geheugengebruik",IDC_MEMORYUSAGEDELTA,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,83,82,10 + CONTROL "Pie&kgeheugengebruik",IDC_PEAKMEMORYUSAGE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,94,82,10 + CONTROL "&Wisselbestandsfouten",IDC_PAGEFAULTS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,105,53,10 + CONTROL "&USER-objecten",IDC_USEROBJECTS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,116,62,10 + CONTROL "I/O: leesbewerkingen",IDC_IOREADS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,127,49,10 + CONTROL "I/O: gelezen bytes",IDC_IOREADBYTES,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,138,65,10 + CONTROL "S&essie-id",IDC_SESSIONID,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,149,50,10 + CONTROL "Gebruikers&naam",IDC_USERNAME,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,160,51,10 + CONTROL "Verschil in &aantal wisselfouten",IDC_PAGEFAULTSDELTA,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,107,28,72,10 + CONTROL "Grootte van &virtueel geheugen",IDC_VIRTUALMEMORYSIZE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,107,39,77,10 + CONTROL "Wissel&bare pool",IDC_PAGEDPOOL,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,107,50,53,10 + CONTROL "Niet-wisse&lbare pool",IDC_NONPAGEDPOOL,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,107,61,67,10 + CONTROL "Ba&sisprioriteit",IDC_BASEPRIORITY,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,107,72,55,10 + CONTROL "Aantal &ingangen",IDC_HANDLECOUNT,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,107,83,59,10 + CONTROL "Aantal t&hreads",IDC_THREADCOUNT,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,107,94,59,10 + CONTROL "G&DI-objecten",IDC_GDIOBJECTS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,107,105,55,10 + CONTROL "I/O: schrijfbewerkingen",IDC_IOWRITES,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,107,116,49,10 + CONTROL "I/O: geschreven bytes",IDC_IOWRITEBYTES,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,107,127,65,10 + CONTROL "I/O: overig",IDC_IOOTHER,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,107,138,46,10 + CONTROL "I/O: overige bytes",IDC_IOOTHERBYTES,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,107,149,65,10 +END + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" + "#include ""windows.h""\r\n" + "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" + "#include ""resource.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "\r\n" + "\0" +END + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_ABOUTBOX, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 252 + TOPMARGIN, 7 + BOTTOMMARGIN, 203 + END + + IDD_TASKMGR_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 3 + RIGHTMARGIN, 260 + TOPMARGIN, 3 + BOTTOMMARGIN, 231 + END + + IDD_APPLICATION_PAGE, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 240 + TOPMARGIN, 7 + BOTTOMMARGIN, 203 + END + + IDD_PROCESS_PAGE, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 240 + TOPMARGIN, 7 + BOTTOMMARGIN, 203 + END + + IDD_PERFORMANCE_PAGE, DIALOG + BEGIN + LEFTMARGIN, 5 + RIGHTMARGIN, 242 + VERTGUIDE, 12 + VERTGUIDE, 65 + VERTGUIDE, 110 + TOPMARGIN, 5 + BOTTOMMARGIN, 205 + END + + IDD_AFFINITY_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 224 + VERTGUIDE, 11 + VERTGUIDE, 61 + VERTGUIDE, 116 + VERTGUIDE, 175 + TOPMARGIN, 7 + BOTTOMMARGIN, 147 + HORZGUIDE, 28 + HORZGUIDE, 38 + HORZGUIDE, 51 + HORZGUIDE, 64 + HORZGUIDE, 77 + HORZGUIDE, 90 + HORZGUIDE, 103 + HORZGUIDE, 116 + HORZGUIDE, 129 + END + + IDD_COLUMNS_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 188 + VERTGUIDE, 107 + TOPMARGIN, 7 + BOTTOMMARGIN, 192 + HORZGUIDE, 28 + END +END +#endif // APSTUDIO_INVOKED + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_APP_TITLE "Taak Beheer" + IDC_TASKMGR "Taak Beheer" + IDS_IDLE_PROCESS "Niet-actieve systeemprocessen" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_NEW "Een nieuw programma uitvoeren" + ID_OPTIONS_ALWAYSONTOP "Taakbeheer blijft op de voorgrond, behalve als het wordt geminimaliseerd" + ID_OPTIONS_MINIMIZEONUSE "Taakbeheer wordt geminimaliseerd als een taak wordt geactiveerd" + ID_OPTIONS_HIDEWHENMINIMIZED "Taakbeheer verbergen als dit geminimaliseerd is" + ID_VIEW_REFRESH "Gegevens nu vernieuwen, ongeacht de instelling van Bijwerksnelheid" + ID_VIEW_LARGE "De taken met grote pictogrammen weergeven" + ID_VIEW_SMALL "De taken met kleine pictogrammen weergeven" + ID_VIEW_DETAILS "Gegevens van elke taak weergeven" + ID_VIEW_UPDATESPEED_HIGH "Het beeldscherm twee keer per seconde bijwerken" + ID_VIEW_UPDATESPEED_NORMAL "Het beeldscherm elke twee seconden bijwerken" + ID_VIEW_UPDATESPEED_LOW "Het beeldscherm elke vier seconden bijwerken" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_VIEW_UPDATESPEED_PAUSED "Beeldscherm wordt niet automatisch bijgewerkt" + ID_WINDOWS_TILEHORIZONTALLY "Vensters onder elkaar schikken" + ID_WINDOWS_TILEVERTICALLY "Vensters naast elkaar schikken" + ID_WINDOWS_MINIMIZE "Vensters minimaliseren" + ID_WINDOWS_MAXIMIZE "Vensters maximaliseren" + ID_WINDOWS_CASCADE "Vensters diagonaal over het bureaublad schikken" + ID_WINDOWS_BRINGTOFRONT "Venster naar de voorgrond brengen, maar niet actief maken" + ID_HELP_TOPICS "Help-onderwerpen over Taakbeheer weergeven" + ID_HELP_ABOUT "Programma-informatie, versienummer en copyrightgegevens weergeven" + ID_FILE_EXIT "Taakbeheer afsluiten" + ID_OPTIONS_SHOW16BITTASKS "16-bits taken weergeven van de bijbehorende ntvdm.exe" + ID_VIEW_SELECTCOLUMNS "De kolommen selecteren die moeten worden weergegeven op de pagina Proces" + ID_VIEW_SHOWKERNELTIMES "De kerneltijden in de prestatiegrafiek weergeven" + ID_VIEW_CPUHISTORY_ONEGRAPHALL "Eйn grafiek geeft het totale CPU-gebruik weer" + ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU "Elke CPU heeft zijn eigen grafiek" + ID_APPLICATION_PAGE_SWITCHTO "Venster naar de voorgrond brengen en actief maken" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_ENDTASK "Sluit de geselecteerde taken" + ID_GOTOPROCESS "Activeert het proces van de geselecteerde taak" + ID_RESTORE "Taakbeheer herstellen als dit verborgen is" + ID_PROCESS_PAGE_ENDPROCESS "Dit proces wordt van het systeem verwijderd" + ID_PROCESS_PAGE_ENDPROCESSTREE "Dit proces en alle afhankelijkheden ervan van het systeem verwijderen" + ID_PROCESS_PAGE_DEBUG "De debugger wordt voor dit proces gebruikt" + ID_PROCESS_PAGE_SETAFFINITY "Instellen op welke processors het proces uitgevoerd kan worden" + ID_PROCESS_PAGE_SETPRIORITY_REALTIME "Het proces wordt ingesteld met de prioriteitsklasse REALTIME" + ID_PROCESS_PAGE_SETPRIORITY_HIGH "Het proces wordt ingesteld met de prioriteitsklasse HOOG" + ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL "Proces instellen op prioriteitsklasse HOGER DAN NORMAAL" + ID_PROCESS_PAGE_SETPRIORITY_NORMAL "Het proces wordt ingesteld met de prioriteitsklasse NORMAAL" + ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL "Proces instellen op prioriteitsklasse LAGER DAN NORMAAL" + ID_PROCESS_PAGE_SETPRIORITY_LOW "Het proces wordt ingesteld met de prioriteitsklasse LAAG" + IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA." +END + + +STRINGTABLE DISCARDABLE +BEGIN + IDS_TAB_APPS "Toepassingen" + IDS_TAB_PROCESSES "Procesnaam" + IDS_TAB_PERFORMANCE "Prestaties" + IDS_TAB_TASK "Taak" + IDS_TAB_STATUS "Status" + IDS_TAB_IMAGENAME "Proces Naam" + IDS_TAB_PID "PID" + IDS_TAB_USERNAME "Gebruikersnaam" + IDS_TAB_SESSIONID "Sessie-ID" + IDS_TAB_CPU "CPU" + IDS_TAB_CPUTIME "CPU-tijd" + IDS_TAB_MEMUSAGE "Geheugengebruik" + IDS_TAB_PEAKMEMUSAGE "Piekgeheugengebruik" + IDS_TAB_MEMDELTA "Geheugenverschil" + IDS_TAB_PAGEFAULT "Wisselbestandsfouten" + IDS_TAB_PFDELTA "PF-verschil" + IDS_TAB_VMSIZE "VM-grootte" + IDS_TAB_PAGEDPOOL "Wisselbare pool" + IDS_TAB_NPPOOL "Niet-wisselbare pool" + IDS_TAB_BASEPRI "Basisprioriteit" + IDS_TAB_HANDLES "Ingangen" + IDS_TAB_THREADS "Threads" + IDS_TAB_USERPBJECTS "USER-objecten" + IDS_TAB_GDIOBJECTS "GDI-objecten" + IDS_TAB_IOREADS "I/O: leesbewerkingen" + IDS_TAB_IOWRITES "I/O: schrijfbewerkingen" + IDS_TAB_IOOTHER "I/O: overig" + IDS_TAB_IOREADBYTES "I/O: gelezen bytes" + IDS_TAB_IOWRITESBYTES "I/O: geschreven bytes" + IDS_TAB_IOOTHERBYTES "I/O: overige bytes" + IDS_MENU_SELECTCOLUMNS "&Kolommen selecteren..." + IDS_MENU_16BITTASK "16-&bits taken weergeven" + IDS_MENU_WINDOWS "&Vensters" + IDS_MENU_LARGEICONS "&Grote pictogrammen" + IDS_MENU_SMALLICONS "&Kleine pictogrammen" + IDS_MENU_DETAILS "&Details" + IDS_MENU_ONEGRAPHALLCPUS "&Eйn grafiek, alle CPU's" + IDS_MENU_ONEGRAPHPERCPU "Eйn grafiek &per CPU" + IDS_MENU_CPUHISTORY "&Geschiedenis van de CPU" + IDS_MENU_SHOWKERNELTIMES "&Kerneltijden weergeven" + IDS_CREATENEWTASK "Nieuwe taak maken" + IDS_CREATENEWTASK_DESC "Geef de naam van een programma, map of document op, of geef een Internet-adres op. Wat u opgeeft, wordt vervolgens in Windows geopend." + IDS_MSG_ACCESSPROCESSAFF "Kan procesaffiniteit niet opvragen of instellen" + IDS_MSG_PROCESSONEPRO "Het proces moet affiniteit hebben met ten minste ййn processor." + IDS_MSG_INVALIDOPTION "Ongeldige optie" + IDS_MSG_UNABLEDEBUGPROCESS "Kan de debugger niet gebruiken" + IDS_MSG_WARNINGDEBUG "Waarschuwing: het opsporen van fouten in dit proces kan verlies van gegevens als resultaat hebben.\nWeet u zeker dat u de debugger wilt gebruiken?" + IDS_MSG_TASKMGRWARNING "Waarschuwing van Taakbeheer" + IDS_MSG_WARNINGTERMINATING "Waarschuwing: het beлindigen van een proces kan tot\nonverwachte resultaten leiden, zoals verlies van gegevens\nof een instabiel systeem, omdat de status of de gegevens\nniet meer kunnen worden opgeslagen. Weet u zeker dat\nu het proces wilt beлindigen?" + IDS_MSG_UNABLETERMINATEPRO "Kan het proces niet beлindigen" + IDS_MSG_UNABLECHANGEPRIORITY "Kan de prioriteit niet wijzigen" + IDS_MSG_WARNINGCHANGEPRIORITY "Waarschuwing: het wijzigen van de prioriteitsklasse van dit proces\nkan ongewenste resultaten hebben, zoals een instabiel systeem. Weet u\nzeker dat u de prioriteitsklasse wilt wijzigen?" + IDS_MSG_TRAYICONCPUUSAGE "CPU-gebruik: %d%%" + IDS_STATUS_MEMUSAGE "Geheugengebruik: %dK / %dK" + IDS_STATUS_CPUUSAGE "CPU-gebruik: %3d%%" + IDS_STATUS_PROCESSES "Processen: %d" + IDS_Not_Responding "Reageert niet" + IDS_Running "Geactiveerd" +END + + +#endif +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED diff --git a/reactos/base/applications/taskmgr/Sv.rc b/reactos/base/applications/taskmgr/Sv.rc index 14d1357f1e0..bbae2e8f3d1 100644 --- a/reactos/base/applications/taskmgr/Sv.rc +++ b/reactos/base/applications/taskmgr/Sv.rc @@ -1,690 +1,690 @@ -///////////////////////////////////////////////////////////////////////////// -// Swedish (SE) resources -/* - * Copyright 2005 David Nordenberg - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_SWE) -#ifdef _WIN32 -LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL -#pragma code_page(850) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Menu -// - -IDR_TASKMANAGER MENU DISCARDABLE -BEGIN - POPUP "&Arkiv" - BEGIN - MENUITEM "&Ny Aktivitet (Kцr...)", ID_FILE_NEW - MENUITEM SEPARATOR - MENUITEM "&Avsluta Aktivitetshanteraren", ID_FILE_EXIT - END - POPUP "&Alternativ" - BEGIN - MENUITEM "&Alltid цverst", ID_OPTIONS_ALWAYSONTOP - , CHECKED - MENUITEM "&Minimera vid anvдndning", ID_OPTIONS_MINIMIZEONUSE - , CHECKED - MENUITEM "&Gцm minimerad", ID_OPTIONS_HIDEWHENMINIMIZED - , CHECKED - MENUITEM "&Visa 16-bitarsaktiviteter", ID_OPTIONS_SHOW16BITTASKS - , CHECKED - END - POPUP "&Visa" - BEGIN - MENUITEM "&Uppdatera", ID_VIEW_REFRESH - POPUP "U&ppdateringshastighet" - BEGIN - MENUITEM "&Hцg", ID_VIEW_UPDATESPEED_HIGH - MENUITEM "&Normal", ID_VIEW_UPDATESPEED_NORMAL - , CHECKED - MENUITEM "&Lеg", ID_VIEW_UPDATESPEED_LOW - MENUITEM "&Fryst", ID_VIEW_UPDATESPEED_PAUSED - - END - MENUITEM SEPARATOR - MENUITEM "&Stora ikoner", ID_VIEW_LARGE - MENUITEM "S&mе ikoner", ID_VIEW_SMALL - MENUITEM "&Detaljer", ID_VIEW_DETAILS, CHECKED - MENUITEM "&Vдlj kolumner...", ID_VIEW_SELECTCOLUMNS - POPUP "&CPU Historik" - BEGIN - MENUITEM "En visare fцr &alla processorer", ID_VIEW_CPUHISTORY_ONEGRAPHALL - - MENUITEM "&En visare per processor", ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU - , CHECKED - END - MENUITEM "&Visa kernel-tider", ID_VIEW_SHOWKERNELTIMES - END - POPUP "&Fцnster" - BEGIN - MENUITEM "Ordna &horizontellt", ID_WINDOWS_TILEHORIZONTALLY - MENUITEM "Ordna &vertikalt", ID_WINDOWS_TILEVERTICALLY - MENUITEM "&Minimera", ID_WINDOWS_MINIMIZE - MENUITEM "Ma&ximera", ID_WINDOWS_MAXIMIZE - MENUITEM "&Цverlappande", ID_WINDOWS_CASCADE - MENUITEM "&Fцr till fцrgrunden", ID_WINDOWS_BRINGTOFRONT - END - POPUP "&Hjдlp" - BEGIN - MENUITEM "Aktivitetshanteraren &hjдlpavsnitt", ID_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "&Om Aktivitetshanteraren", ID_HELP_ABOUT - END -END - -IDR_WINDOWSMENU MENU DISCARDABLE -BEGIN - MENUITEM "Ordna &horizontellt", ID_WINDOWS_TILEHORIZONTALLY - MENUITEM "Ordna &vertikalt", ID_WINDOWS_TILEVERTICALLY - MENUITEM "&Minimera", ID_WINDOWS_MINIMIZE - MENUITEM "Ma&ximera", ID_WINDOWS_MAXIMIZE - MENUITEM "&Цverlappande", ID_WINDOWS_CASCADE - MENUITEM "&Fцr till fцrgrunden", ID_WINDOWS_BRINGTOFRONT -END - -IDR_APPLICATION_PAGE_CONTEXT1 MENU DISCARDABLE -BEGIN - POPUP "DUMMY" - BEGIN - MENUITEM "&Ny aktivitet (Kцr...)", ID_FILE_NEW - MENUITEM SEPARATOR - MENUITEM "&Stora ikoner", ID_VIEW_LARGE - MENUITEM "S&mе ikoner", ID_VIEW_SMALL - MENUITEM "&Detaljer", ID_VIEW_DETAILS, CHECKED - END -END - -IDR_APPLICATION_PAGE_CONTEXT2 MENU DISCARDABLE -BEGIN - POPUP "DUMMY" - BEGIN - MENUITEM "&Vдxla till", ID_APPLICATION_PAGE_SWITCHTO - MENUITEM "&Fцr till fцrgrunden", ID_WINDOWS_BRINGTOFRONT - MENUITEM SEPARATOR - MENUITEM "Ordna &horizontellt", ID_WINDOWS_TILEHORIZONTALLY - MENUITEM "Ordna &vertikalt", ID_WINDOWS_TILEVERTICALLY - MENUITEM "&Minimera", ID_WINDOWS_MINIMIZE - MENUITEM "Ma&ximera", ID_WINDOWS_MAXIMIZE - MENUITEM "&Цverlappande", ID_WINDOWS_CASCADE - MENUITEM SEPARATOR - MENUITEM "&Avsluta aktiviteten", ID_APPLICATION_PAGE_ENDTASK - MENUITEM "&Gе till process", ID_APPLICATION_PAGE_GOTOPROCESS - - END -END - -IDR_TRAY_POPUP MENU DISCARDABLE -BEGIN - POPUP "DUMMY" - BEGIN - MENUITEM "&Еterstдll", ID_RESTORE - MENUITEM "&Stдng", ID_FILE_EXIT - MENUITEM SEPARATOR - MENUITEM "&Alltid цverst", ID_OPTIONS_ALWAYSONTOP - END -END - -IDR_PROCESS_PAGE_CONTEXT MENU DISCARDABLE -BEGIN - POPUP "DUMMY" - BEGIN - MENUITEM "&Avsluta process", ID_PROCESS_PAGE_ENDPROCESS - MENUITEM "Avsluta process&trдd", ID_PROCESS_PAGE_ENDPROCESSTREE - - MENUITEM "&Felsцk", ID_PROCESS_PAGE_DEBUG - MENUITEM SEPARATOR - POPUP "Дndra &prioritet" - BEGIN - MENUITEM "&Realtid", ID_PROCESS_PAGE_SETPRIORITY_REALTIME - - MENUITEM "&Hцg", ID_PROCESS_PAGE_SETPRIORITY_HIGH - - MENUITEM "&Цver normal", ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL - - MENUITEM "&Normal", ID_PROCESS_PAGE_SETPRIORITY_NORMAL - - MENUITEM "&Under normal", ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL - - MENUITEM "&Lеg", ID_PROCESS_PAGE_SETPRIORITY_LOW - - END - MENUITEM "Vдlj &kдlla (FIXME)...", ID_PROCESS_PAGE_SETAFFINITY - MENUITEM "Дndra felsцkningskanaler...", ID_PROCESS_PAGE_DEBUGCHANNELS - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_ABOUTBOX DIALOG DISCARDABLE 22, 17, 259, 210 -STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU -CAPTION "Om Aktivitetshanteraren" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Aktivitetshanteraren v1.0\nCopyright (C) 1999 - 2001\nby Brian Palmer (brianp@reactos.org)", - IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,53,28, - 122,26 - DEFPUSHBUTTON "OK",IDOK,183,189,44,14,WS_GROUP - ICON IDI_TASKMANAGER,IDC_STATIC,19,30,20,20 - EDITTEXT IDC_LICENSE_EDIT,53,63,174,107,ES_MULTILINE | - ES_READONLY | WS_VSCROLL -END - -IDD_TASKMGR_DIALOG DIALOG DISCARDABLE 0, 0, 264, 246 -STYLE DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | - WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU | - WS_THICKFRAME -CAPTION "Aktivitetshanteraren" -MENU IDR_TASKMANAGER -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "Tab1",IDC_TAB,"SysTabControl32",WS_TABSTOP,3,3,257,228 -END - -IDD_APPLICATION_PAGE DIALOG DISCARDABLE 0, 0, 247, 210 -STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "List2",IDC_APPLIST,"SysListView32",LVS_REPORT | - LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,7,7,233,177 - PUSHBUTTON "&Ny aktivitet...",IDC_NEWTASK,175,189,65,14 - PUSHBUTTON "&Vдxla till",IDC_SWITCHTO,120,189,53,14,WS_DISABLED - PUSHBUTTON "&Avsluta aktiviteten",IDC_ENDTASK,34,189,83,14,WS_DISABLED -END - -IDD_PROCESS_PAGE DIALOG DISCARDABLE 0, 0, 247, 210 -STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "List2",IDC_PROCESSLIST,"SysListView32",LVS_REPORT | - LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_OWNERDATA | - WS_BORDER | WS_TABSTOP,7,7,233,177 - PUSHBUTTON "&Avsluta process",IDC_ENDPROCESS,171,189,69,14 - CONTROL "&Visa processer frеn alla anvдndare",IDC_SHOWALLPROCESSES, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,191,156,10 -END - -//IDD_PERFORMANCE_PAGE DIALOGEX 0, 0, 247, 210 -IDD_PERFORMANCE_PAGE DIALOGEX DISCARDABLE 0, 0, 247, 210 -STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN -FONT 8, "MS Shell Dlg" -BEGIN - GROUPBOX "Processoranv.",IDC_CPU_USAGE_FRAME,5,5,60,54,WS_TABSTOP, WS_EX_TRANSPARENT - GROUPBOX "Minnesanv.",IDC_MEM_USAGE_FRAME,5,63,60,54,BS_LEFTTEXT, WS_EX_TRANSPARENT - GROUPBOX "Totalt",IDC_TOTALS_FRAME,5,122,111,39,0,WS_EX_TRANSPARENT - GROUPBOX "Upptaget minne (K)",IDC_COMMIT_CHARGE_FRAME,5,166,111,39,0,WS_EX_TRANSPARENT - GROUPBOX "Fysiskt minne (K)",IDC_PHYSICAL_MEMORY_FRAME,131,122,111,39,0,WS_EX_TRANSPARENT - GROUPBOX "Kernel minne (K)",IDC_KERNEL_MEMORY_FRAME,131,166,111,39,0,WS_EX_TRANSPARENT - LTEXT "Referenser",IDS_TOTALS_HANDLE_COUNT,12,131,41,8 - LTEXT "Trеdar",IDS_TOTALS_THREAD_COUNT,12,140,27,8 - LTEXT "Processer",IDS_TOTALS_PROCESS_COUNT,12,149,36,8 - EDITTEXT IDC_TOTALS_HANDLE_COUNT,65,131,45,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_TOTALS_THREAD_COUNT,65,140,45,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_TOTALS_PROCESS_COUNT,65,149,45,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - LTEXT "Totalt",IDS_COMMIT_CHARGE_TOTAL,12,175,27,8 - LTEXT "Grдns",IDS_COMMIT_CHARGE_LIMIT,12,184,21,8 - LTEXT "Topp",IDS_COMMIT_CHARGE_PEAK,12,193,34,8 - EDITTEXT IDC_COMMIT_CHARGE_TOTAL,65,174,45,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_COMMIT_CHARGE_LIMIT,65,184,45,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_COMMIT_CHARGE_PEAK,65,193,45,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - LTEXT "Totalt",IDS_PHYSICAL_MEMORY_TOTAL,137,131,27,8 - LTEXT "Tillgдngligt",IDS_PHYSICAL_MEMORY_AVAILABLE,137,140,46,8 - LTEXT "Systemcache",IDS_PHYSICAL_MEMORY_SYSTEM_CACHE,137,149,46,8 - EDITTEXT IDC_PHYSICAL_MEMORY_TOTAL,185,131,48,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_PHYSICAL_MEMORY_AVAILABLE,185,140,48,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_PHYSICAL_MEMORY_SYSTEM_CACHE,185,149,48,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - LTEXT "Totalt",IDS_KERNEL_MEMORY_TOTAL,137,175,27,8 - LTEXT "Fysiskt / virtuellt",IDS_KERNEL_MEMORY_PAGED,137,184,56,8 - LTEXT "Fysiskt",IDS_KERNEL_MEMORY_NONPAGED,137,193,44,8 - EDITTEXT IDC_KERNEL_MEMORY_TOTAL,185,174,48,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_KERNEL_MEMORY_PAGED,190,184,43,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_KERNEL_MEMORY_NONPAGED,185,193,48,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - GROUPBOX "Processorhistorik",IDC_CPU_USAGE_HISTORY_FRAME,74,5,168,54,0,WS_EX_TRANSPARENT - GROUPBOX "Minneshistorik",IDC_MEMORY_USAGE_HISTORY_FRAME,74,63,168,54,0,WS_EX_TRANSPARENT - PUSHBUTTON "Processoranvдndning",IDC_CPU_USAGE_GRAPH,12,17,47,37,0, - WS_EX_CLIENTEDGE - PUSHBUTTON "Minnesanvдndning",IDC_MEM_USAGE_GRAPH,12,75,47,37,0, - WS_EX_CLIENTEDGE - PUSHBUTTON "Processorhistorik",IDC_CPU_USAGE_HISTORY_GRAPH,81,17, - 153,37,0,WS_EX_CLIENTEDGE - PUSHBUTTON "Minneshistorik",IDC_MEM_USAGE_HISTORY_GRAPH,81,75, - 153,37,0,WS_EX_CLIENTEDGE -END - -IDD_DEBUG_CHANNELS_DIALOG DIALOG DISCARDABLE 0, 0, 247, 210 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Felsцkningskanaler" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "List2",IDC_DEBUG_CHANNELS_LIST,"SysListView32",LVS_REPORT | - LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP | - LVS_SORTASCENDING,7,7,233,177 - PUSHBUTTON "Stдng",IDOK,171,189,69,14 -END - -IDD_AFFINITY_DIALOG DIALOG DISCARDABLE 0, 0, 231, 154 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Processorsamhцrighet" -FONT 8, "MS Shell Dlg" -BEGIN - DEFPUSHBUTTON "OK",IDOK,120,133,50,14 - PUSHBUTTON "Avbryt",IDCANCEL,174,133,50,14 - LTEXT "Processorsamhцrighets-instдllningen bestдmmer vilka processorer processen tillеts exekvera pе", - IDC_STATIC,5,5,220,16 - CONTROL "Processor 0",IDC_CPU0,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, - 6,28,55,10 - CONTROL "Processor 1",IDC_CPU1,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,6,41,55,10 - CONTROL "Processor 2",IDC_CPU2,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,6,54,55,10 - CONTROL "Processor 3",IDC_CPU3,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,6,67,55,10 - CONTROL "Processor 4",IDC_CPU4,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,6,80,55,10 - CONTROL "Processor 5",IDC_CPU5,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,6,93,55,10 - CONTROL "Processor 6",IDC_CPU6,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,6,106,55,10 - CONTROL "Processor 7",IDC_CPU7,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,6,119,55,10 - CONTROL "Processor 8",IDC_CPU8,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,61,28,55,10 - CONTROL "Processor 9",IDC_CPU9,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,61,41,55,10 - CONTROL "Processor 10",IDC_CPU10,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,61,54,55,10 - CONTROL "Processor 11",IDC_CPU11,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,61,67,55,10 - CONTROL "Processor 12",IDC_CPU12,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,61,80,55,10 - CONTROL "Processor 13",IDC_CPU13,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,61,93,55,10 - CONTROL "Processor 14",IDC_CPU14,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,61,106,55,10 - CONTROL "Processor 15",IDC_CPU15,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,61,119,55,10 - CONTROL "Processor 16",IDC_CPU16,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,28,55,10 - CONTROL "Processor 17",IDC_CPU17,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,41,55,10 - CONTROL "Processor 18",IDC_CPU18,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,54,55,10 - CONTROL "Processor 19",IDC_CPU19,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,67,55,10 - CONTROL "Processor 20",IDC_CPU20,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,80,55,10 - CONTROL "Processor 21",IDC_CPU21,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,93,55,10 - CONTROL "Processor 22",IDC_CPU22,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,106,55,10 - CONTROL "Processor 23",IDC_CPU23,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,119,55,10 - CONTROL "Processor 24",IDC_CPU24,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,28,55,10 - CONTROL "Processor 25",IDC_CPU25,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,41,55,10 - CONTROL "Processor 26",IDC_CPU26,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,54,55,10 - CONTROL "Processor 27",IDC_CPU27,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,67,55,10 - CONTROL "Processor 28",IDC_CPU28,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,80,55,10 - CONTROL "Processor 29",IDC_CPU29,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,93,55,10 - CONTROL "Processor 30",IDC_CPU30,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,106,55,10 - CONTROL "Processor 31",IDC_CPU31,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,119,55,10 -END - -IDD_COLUMNS_DIALOG DIALOG DISCARDABLE 0, 0, 275, 199 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Vдlj kolumner" -FONT 8, "MS Shell Dlg" -BEGIN - DEFPUSHBUTTON "OK",IDOK,84,178,50,14 - PUSHBUTTON "Avbryt",IDCANCEL,138,178,50,14 - LTEXT "Vдlj de kolumner som skall synas pе process-sidan i Aktivitetshanteraren.", - IDC_STATIC,7,7,181,17 - CONTROL "&Processnamn",IDC_IMAGENAME,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,7,28,60,10 - CONTROL "P&ID (Processidentifierare)",IDC_PID,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,39,119,10 - CONTROL "Processoranvдndnin&g",IDC_CPUUSAGE,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,50,89,10 - CONTROL "Pro&cessortid",IDC_CPUTIME,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,61,62,10 - CONTROL "&Minnesanvдndning",IDC_MEMORYUSAGE,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,72,77,10 - CONTROL "Minnesanvдndnings&fцrдndring",IDC_MEMORYUSAGEDELTA,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,83,121,10 - CONTROL "T&oppvдrde minnesanvдndning",IDC_PEAKMEMORYUSAGE,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,94,121,10 - CONTROL "&Sidfel",IDC_PAGEFAULTS,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,105,56,10 - CONTROL "&USER Objekt",IDC_USEROBJECTS,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,116,64,10 - CONTROL "Antal I/O-l&дsningar",IDC_IOREADS,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,127,88,10 - CONTROL "I/O, anta&l tecken lдsta",IDC_IOREADBYTES,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,138,119,10 - CONTROL "Sessions-I&D",IDC_SESSIONID,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,149,58,10 - CONTROL "Anvдndar&namn",IDC_USERNAME,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,160,62,10 - CONTROL "Sidfelsf&цrдndring",IDC_PAGEFAULTSDELTA,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,133,28,82,10 - CONTROL "Storl&ek i virtuella minnet",IDC_VIRTUALMEMORYSIZE,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,133,39,116,10 - CONTROL "Vдxlings&bar pool",IDC_PAGEDPOOL,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,133,50,76,10 - CONTROL "Ic&ke vдxlingsbar pool",IDC_NONPAGEDPOOL,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,133,61,96,10 - CONTROL "&Basprioritet",IDC_BASEPRIORITY,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,133,72,60,10 - CONTROL "Antal referenser (&handles)",IDC_HANDLECOUNT,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,133,83,117,10 - CONTROL "Antal tr&еdar",IDC_THREADCOUNT,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,133,94,60,10 - CONTROL "GDI-ob&jekt",IDC_GDIOBJECTS,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,133,105,52,10 - CONTROL "An&tal I/O-Skrivningar",IDC_IOWRITES,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,133,116,97,10 - CONTROL "I/O, &antal tecken skrivna",IDC_IOWRITEBYTES,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,133,127,113,10 - CONTROL "And&ra I/O еtgдrder",IDC_IOOTHER,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,133,138,89,10 - CONTROL "Antal tecken, andra I/O еtgдrder",IDC_IOOTHERBYTES,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,133,149,141,10 -END - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -2 TEXTINCLUDE DISCARDABLE -BEGIN - "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" - "#include ""windows.h""\r\n" - "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" - "#include ""resource.h""\r\n" - "\0" -END - -3 TEXTINCLUDE DISCARDABLE -BEGIN - "\r\n" - "\0" -END - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "resource.h\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO DISCARDABLE -BEGIN - IDD_ABOUTBOX, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 252 - TOPMARGIN, 7 - BOTTOMMARGIN, 203 - END - - IDD_TASKMGR_DIALOG, DIALOG - BEGIN - LEFTMARGIN, 3 - RIGHTMARGIN, 260 - TOPMARGIN, 3 - BOTTOMMARGIN, 231 - END - - IDD_APPLICATION_PAGE, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 240 - TOPMARGIN, 7 - BOTTOMMARGIN, 203 - END - - IDD_PROCESS_PAGE, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 240 - TOPMARGIN, 7 - BOTTOMMARGIN, 203 - END - - IDD_PERFORMANCE_PAGE, DIALOG - BEGIN - LEFTMARGIN, 5 - RIGHTMARGIN, 242 - VERTGUIDE, 12 - VERTGUIDE, 65 - VERTGUIDE, 110 - TOPMARGIN, 5 - BOTTOMMARGIN, 205 - END - - IDD_AFFINITY_DIALOG, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 224 - VERTGUIDE, 11 - VERTGUIDE, 61 - VERTGUIDE, 116 - VERTGUIDE, 175 - TOPMARGIN, 7 - BOTTOMMARGIN, 147 - HORZGUIDE, 28 - HORZGUIDE, 38 - HORZGUIDE, 51 - HORZGUIDE, 64 - HORZGUIDE, 77 - HORZGUIDE, 90 - HORZGUIDE, 103 - HORZGUIDE, 116 - HORZGUIDE, 129 - END - - IDD_COLUMNS_DIALOG, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 188 - VERTGUIDE, 107 - TOPMARGIN, 7 - BOTTOMMARGIN, 192 - HORZGUIDE, 28 - END -END -#endif // APSTUDIO_INVOKED - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APP_TITLE "Aktivitetshanteraren" - IDC_TASKMGR "Aktivitetshanteraren" - IDS_IDLE_PROCESS "Systemets lediga resurser" -END - -STRINGTABLE DISCARDABLE -BEGIN - ID_FILE_NEW "Kцr ett nytt program" - ID_OPTIONS_ALWAYSONTOP "Aktivitetshanteraren fцrblir i fцrgrunden om den inte minimeras" - ID_OPTIONS_MINIMIZEONUSE - "Aktivitetshanteraren minimeras nдr en Vдxla till operation utfцrs" - ID_OPTIONS_HIDEWHENMINIMIZED "Gцm Aktivitetshanteraren nдr den minimeras" - ID_VIEW_REFRESH "Tvinga Aktivitetshanteraren att uppdatera nu, oavsдtt vald uppdateringshastighet" - ID_VIEW_LARGE "Visa aktiviteter med stora ikoner" - ID_VIEW_SMALL "Visa aktiviteter med smе ikoner" - ID_VIEW_DETAILS "Visa information om varje aktivitet" - ID_VIEW_UPDATESPEED_HIGH "Uppdaterar vдrden tvе gеnger per sekund" - ID_VIEW_UPDATESPEED_NORMAL "Uppdaterar vдrden varannan sekund" - ID_VIEW_UPDATESPEED_LOW "Uppdaterar vдrden var 4:e sekund" -END - -STRINGTABLE DISCARDABLE -BEGIN - ID_VIEW_UPDATESPEED_PAUSED "Uppdaterar inte automatiskt" - ID_WINDOWS_TILEHORIZONTALLY - "Ordna fцnstren horizontellt pе skrivbordet" - ID_WINDOWS_TILEVERTICALLY "Ordna fцnstren vertikalt pе skrivbordet" - ID_WINDOWS_MINIMIZE "Minimerar fцnstret" - ID_WINDOWS_MAXIMIZE "Maximerar fцnstret" - ID_WINDOWS_CASCADE "Ordna fцnstren diagonalt цverlappande pе skrivbordet" - ID_WINDOWS_BRINGTOFRONT "Fцr fцnstret till fцrgrunden men vдxla inte till det" - ID_HELP_TOPICS "Visa Aktivitetshanterarens hjдlpavsnitt" - ID_HELP_ABOUT "Visa programinformation, versionsnummer, och upphovsrдtt" - ID_FILE_EXIT "Avsluta Aktivitetshanteraren" - ID_OPTIONS_SHOW16BITTASKS - "Visa 16-bitarsprocesser under tillhцrande ntvdm.exe" - ID_VIEW_SELECTCOLUMNS "Vдlj de kolumner som ska synas pе process-sidan" - ID_VIEW_SHOWKERNELTIMES "Visar kernel-tider i prestandagrafer" - ID_VIEW_CPUHISTORY_ONEGRAPHALL - "En enda historik-graf visar totala processoranvдndningen" - ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU "Varje processor har sin egen historik-graf" - ID_APPLICATION_PAGE_SWITCHTO - "Fцr aktiviteten till fцrgrunden och vдxla till den" -END - -STRINGTABLE DISCARDABLE -BEGIN - ID_ENDTASK "Ber de valda aktiviteterna att avslutas" - ID_GOTOPROCESS "Дndrar fokus till den valda aktivitetens process" - ID_RESTORE "Еterstдller Aktivitetshanteraren frеn sitt gцmda tillstеnd" - ID_PROCESS_PAGE_ENDPROCESS "Tar bort processen frеn systemet" - ID_PROCESS_PAGE_ENDPROCESSTREE - "Tar bort den hдr processen och underprocesser frеn systemet" - ID_PROCESS_PAGE_DEBUG "Kopplar felsцkaren till den hдr processen" - ID_PROCESS_PAGE_SETAFFINITY - "Kontrollerar vilka processorer processen tillеts att kцras pе" - ID_PROCESS_PAGE_SETPRIORITY_REALTIME - "Дndrar processens prioritet till realtidslдge" - ID_PROCESS_PAGE_SETPRIORITY_HIGH "Дndrar processens prioritet till hцg" - ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL - "Дndrar processens prioritet till цver normal" - ID_PROCESS_PAGE_SETPRIORITY_NORMAL - "Дndrar processens prioritet till normal" - ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL - "Дndrar processens prioritet till under normal" - ID_PROCESS_PAGE_SETPRIORITY_LOW "Дndrar processens prioritet till lеg" - IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA." -END - - -STRINGTABLE DISCARDABLE -BEGIN - IDS_TAB_APPS "Program" - IDS_TAB_PROCESSES "Processer" - IDS_TAB_PERFORMANCE "Prestanda" - IDS_TAB_TASK "Aktivitet" - IDS_TAB_STATUS "Status" - IDS_TAB_IMAGENAME "Processnamn" - IDS_TAB_PID "PID" - IDS_TAB_USERNAME "Anvдndarnamn" - IDS_TAB_SESSIONID "Sessions-ID" - IDS_TAB_CPU "Processor" - IDS_TAB_CPUTIME "Processortid" - IDS_TAB_MEMUSAGE "Minnesanvдndning" - IDS_TAB_PEAKMEMUSAGE "Toppvдrde minne" - IDS_TAB_MEMDELTA "Minnesvдrdesfцrдndring" - IDS_TAB_PAGEFAULT "Sidfel" - IDS_TAB_PFDELTA "Sidfelsfцrдndring" - IDS_TAB_VMSIZE "VM Storlek" - IDS_TAB_PAGEDPOOL "Vдxlingsbar pool" - IDS_TAB_NPPOOL "Ovдxlingsbar pool" - IDS_TAB_BASEPRI "Basprioritet" - IDS_TAB_HANDLES "Referenser" - IDS_TAB_THREADS "Trеdar" - IDS_TAB_USERPBJECTS "USER Objekt" - IDS_TAB_GDIOBJECTS "GDI Objekt" - IDS_TAB_IOREADS "I/O-lдsningar" - IDS_TAB_IOWRITES "I/O-skrivningar" - IDS_TAB_IOOTHER "I/O-цvriga" - IDS_TAB_IOREADBYTES "Antal tecken lдsta, andra I/O-еtgдrder" - IDS_TAB_IOWRITESBYTES "Antal tecken skrivna, andra I/O-еtgдrder" - IDS_TAB_IOOTHERBYTES "I/O, antal tecken" - IDS_MENU_SELECTCOLUMNS "&Vдlj kolumner..." - IDS_MENU_16BITTASK "&Visa 16-bitsprocesser" - IDS_MENU_WINDOWS "&Fцnster" - IDS_MENU_LARGEICONS "&Stora ikoner" - IDS_MENU_SMALLICONS "S&mе ikoner" - IDS_MENU_DETAILS "&Detaljer" - IDS_MENU_ONEGRAPHALLCPUS "En visare fцr &alla processorer" - IDS_MENU_ONEGRAPHPERCPU "&En visare per processor" - IDS_MENU_CPUHISTORY "&Processorhistorik" - IDS_MENU_SHOWKERNELTIMES "&Visa kerneltider" - IDS_CREATENEWTASK "Ny aktivitet" - IDS_CREATENEWTASK_DESC "Skriv namnet pе ett program, en mapp, en web-adress eller ett dokument fцr att цppna det." - IDS_MSG_ACCESSPROCESSAFF "Kunde inte komma еt eller дndra processorsamhцrigheten" - IDS_MSG_PROCESSONEPRO "Processen mеste ha samhцrighet med minst en processor." - IDS_MSG_INVALIDOPTION "Ogiltigt val" - IDS_MSG_UNABLEDEBUGPROCESS "Kunde inte felsцka processen" - IDS_MSG_WARNINGDEBUG "VARNING: Felsцkning av den hдr processen kan resultera i fцrlorad data.\nДr du sдker pе att du vill ansluta felsцkaren?" - IDS_MSG_TASKMGRWARNING "Aktivitetshanteraren varning" - IDS_MSG_WARNINGTERMINATING "VARNING: Ett avslutande av en process kan orsaka\noцnskade effekter och pеverka systemets stabilitet. Processen\nkommer inte att ges chans att spara sitt arbete innan\nden avslutas. Дr du sдker pе att du vill avsluta processen?" - IDS_MSG_UNABLETERMINATEPRO "Kunde inte avsluta processen" - IDS_MSG_UNABLECHANGEPRIORITY "Kunde inte дndra prioritet" - IDS_MSG_WARNINGCHANGEPRIORITY "VARNING: Дndring av prioritetsklassen hos den hдr processen kan\norsaka oцnskade effekter och pеverka systemets stabilitet. Дr du\nsдker pе att du vill дndra prioritetsklassen?" - IDS_MSG_TRAYICONCPUUSAGE "Processoranvдndning: %d%%" - IDS_STATUS_MEMUSAGE "Minnesanv: %dK / %dK" - IDS_STATUS_CPUUSAGE "Processoranv: %3d%%" - IDS_STATUS_PROCESSES "Processer: %d" - IDS_Not_Responding "Svarar inte" - IDS_Running "Igеng" -END - - -#endif // Swedish (SE) resources -///////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////// +// Swedish (SE) resources +/* + * Copyright 2005 David Nordenberg + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_SWE) +#ifdef _WIN32 +LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL +#pragma code_page(850) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_TASKMANAGER MENU DISCARDABLE +BEGIN + POPUP "&Arkiv" + BEGIN + MENUITEM "&Ny Aktivitet (Kцr...)", ID_FILE_NEW + MENUITEM SEPARATOR + MENUITEM "&Avsluta Aktivitetshanteraren", ID_FILE_EXIT + END + POPUP "&Alternativ" + BEGIN + MENUITEM "&Alltid цverst", ID_OPTIONS_ALWAYSONTOP + , CHECKED + MENUITEM "&Minimera vid anvдndning", ID_OPTIONS_MINIMIZEONUSE + , CHECKED + MENUITEM "&Gцm minimerad", ID_OPTIONS_HIDEWHENMINIMIZED + , CHECKED + MENUITEM "&Visa 16-bitarsaktiviteter", ID_OPTIONS_SHOW16BITTASKS + , CHECKED + END + POPUP "&Visa" + BEGIN + MENUITEM "&Uppdatera", ID_VIEW_REFRESH + POPUP "U&ppdateringshastighet" + BEGIN + MENUITEM "&Hцg", ID_VIEW_UPDATESPEED_HIGH + MENUITEM "&Normal", ID_VIEW_UPDATESPEED_NORMAL + , CHECKED + MENUITEM "&Lеg", ID_VIEW_UPDATESPEED_LOW + MENUITEM "&Fryst", ID_VIEW_UPDATESPEED_PAUSED + + END + MENUITEM SEPARATOR + MENUITEM "&Stora ikoner", ID_VIEW_LARGE + MENUITEM "S&mе ikoner", ID_VIEW_SMALL + MENUITEM "&Detaljer", ID_VIEW_DETAILS, CHECKED + MENUITEM "&Vдlj kolumner...", ID_VIEW_SELECTCOLUMNS + POPUP "&CPU Historik" + BEGIN + MENUITEM "En visare fцr &alla processorer", ID_VIEW_CPUHISTORY_ONEGRAPHALL + + MENUITEM "&En visare per processor", ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU + , CHECKED + END + MENUITEM "&Visa kernel-tider", ID_VIEW_SHOWKERNELTIMES + END + POPUP "&Fцnster" + BEGIN + MENUITEM "Ordna &horizontellt", ID_WINDOWS_TILEHORIZONTALLY + MENUITEM "Ordna &vertikalt", ID_WINDOWS_TILEVERTICALLY + MENUITEM "&Minimera", ID_WINDOWS_MINIMIZE + MENUITEM "Ma&ximera", ID_WINDOWS_MAXIMIZE + MENUITEM "&Цverlappande", ID_WINDOWS_CASCADE + MENUITEM "&Fцr till fцrgrunden", ID_WINDOWS_BRINGTOFRONT + END + POPUP "&Hjдlp" + BEGIN + MENUITEM "Aktivitetshanteraren &hjдlpavsnitt", ID_HELP_TOPICS + MENUITEM SEPARATOR + MENUITEM "&Om Aktivitetshanteraren", ID_HELP_ABOUT + END +END + +IDR_WINDOWSMENU MENU DISCARDABLE +BEGIN + MENUITEM "Ordna &horizontellt", ID_WINDOWS_TILEHORIZONTALLY + MENUITEM "Ordna &vertikalt", ID_WINDOWS_TILEVERTICALLY + MENUITEM "&Minimera", ID_WINDOWS_MINIMIZE + MENUITEM "Ma&ximera", ID_WINDOWS_MAXIMIZE + MENUITEM "&Цverlappande", ID_WINDOWS_CASCADE + MENUITEM "&Fцr till fцrgrunden", ID_WINDOWS_BRINGTOFRONT +END + +IDR_APPLICATION_PAGE_CONTEXT1 MENU DISCARDABLE +BEGIN + POPUP "DUMMY" + BEGIN + MENUITEM "&Ny aktivitet (Kцr...)", ID_FILE_NEW + MENUITEM SEPARATOR + MENUITEM "&Stora ikoner", ID_VIEW_LARGE + MENUITEM "S&mе ikoner", ID_VIEW_SMALL + MENUITEM "&Detaljer", ID_VIEW_DETAILS, CHECKED + END +END + +IDR_APPLICATION_PAGE_CONTEXT2 MENU DISCARDABLE +BEGIN + POPUP "DUMMY" + BEGIN + MENUITEM "&Vдxla till", ID_APPLICATION_PAGE_SWITCHTO + MENUITEM "&Fцr till fцrgrunden", ID_WINDOWS_BRINGTOFRONT + MENUITEM SEPARATOR + MENUITEM "Ordna &horizontellt", ID_WINDOWS_TILEHORIZONTALLY + MENUITEM "Ordna &vertikalt", ID_WINDOWS_TILEVERTICALLY + MENUITEM "&Minimera", ID_WINDOWS_MINIMIZE + MENUITEM "Ma&ximera", ID_WINDOWS_MAXIMIZE + MENUITEM "&Цverlappande", ID_WINDOWS_CASCADE + MENUITEM SEPARATOR + MENUITEM "&Avsluta aktiviteten", ID_APPLICATION_PAGE_ENDTASK + MENUITEM "&Gе till process", ID_APPLICATION_PAGE_GOTOPROCESS + + END +END + +IDR_TRAY_POPUP MENU DISCARDABLE +BEGIN + POPUP "DUMMY" + BEGIN + MENUITEM "&Еterstдll", ID_RESTORE + MENUITEM "&Stдng", ID_FILE_EXIT + MENUITEM SEPARATOR + MENUITEM "&Alltid цverst", ID_OPTIONS_ALWAYSONTOP + END +END + +IDR_PROCESS_PAGE_CONTEXT MENU DISCARDABLE +BEGIN + POPUP "DUMMY" + BEGIN + MENUITEM "&Avsluta process", ID_PROCESS_PAGE_ENDPROCESS + MENUITEM "Avsluta process&trдd", ID_PROCESS_PAGE_ENDPROCESSTREE + + MENUITEM "&Felsцk", ID_PROCESS_PAGE_DEBUG + MENUITEM SEPARATOR + POPUP "Дndra &prioritet" + BEGIN + MENUITEM "&Realtid", ID_PROCESS_PAGE_SETPRIORITY_REALTIME + + MENUITEM "&Hцg", ID_PROCESS_PAGE_SETPRIORITY_HIGH + + MENUITEM "&Цver normal", ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL + + MENUITEM "&Normal", ID_PROCESS_PAGE_SETPRIORITY_NORMAL + + MENUITEM "&Under normal", ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL + + MENUITEM "&Lеg", ID_PROCESS_PAGE_SETPRIORITY_LOW + + END + MENUITEM "Vдlj &kдlla (FIXME)...", ID_PROCESS_PAGE_SETAFFINITY + MENUITEM "Дndra felsцkningskanaler...", ID_PROCESS_PAGE_DEBUGCHANNELS + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_ABOUTBOX DIALOG DISCARDABLE 22, 17, 259, 210 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +CAPTION "Om Aktivitetshanteraren" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "Aktivitetshanteraren v1.0\nCopyright (C) 1999 - 2001\nby Brian Palmer (brianp@reactos.org)", + IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,53,28, + 122,26 + DEFPUSHBUTTON "OK",IDOK,183,189,44,14,WS_GROUP + ICON IDI_TASKMANAGER,IDC_STATIC,19,30,20,20 + EDITTEXT IDC_LICENSE_EDIT,53,63,174,107,ES_MULTILINE | + ES_READONLY | WS_VSCROLL +END + +IDD_TASKMGR_DIALOG DIALOG DISCARDABLE 0, 0, 264, 246 +STYLE DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | + WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU | + WS_THICKFRAME +CAPTION "Aktivitetshanteraren" +MENU IDR_TASKMANAGER +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "Tab1",IDC_TAB,"SysTabControl32",WS_TABSTOP,3,3,257,228 +END + +IDD_APPLICATION_PAGE DIALOG DISCARDABLE 0, 0, 247, 210 +STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "List2",IDC_APPLIST,"SysListView32",LVS_REPORT | + LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,7,7,233,177 + PUSHBUTTON "&Ny aktivitet...",IDC_NEWTASK,175,189,65,14 + PUSHBUTTON "&Vдxla till",IDC_SWITCHTO,120,189,53,14,WS_DISABLED + PUSHBUTTON "&Avsluta aktiviteten",IDC_ENDTASK,34,189,83,14,WS_DISABLED +END + +IDD_PROCESS_PAGE DIALOG DISCARDABLE 0, 0, 247, 210 +STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "List2",IDC_PROCESSLIST,"SysListView32",LVS_REPORT | + LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_OWNERDATA | + WS_BORDER | WS_TABSTOP,7,7,233,177 + PUSHBUTTON "&Avsluta process",IDC_ENDPROCESS,171,189,69,14 + CONTROL "&Visa processer frеn alla anvдndare",IDC_SHOWALLPROCESSES, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,191,156,10 +END + +//IDD_PERFORMANCE_PAGE DIALOGEX 0, 0, 247, 210 +IDD_PERFORMANCE_PAGE DIALOGEX DISCARDABLE 0, 0, 247, 210 +STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN +FONT 8, "MS Shell Dlg" +BEGIN + GROUPBOX "Processoranv.",IDC_CPU_USAGE_FRAME,5,5,60,54,WS_TABSTOP, WS_EX_TRANSPARENT + GROUPBOX "Minnesanv.",IDC_MEM_USAGE_FRAME,5,63,60,54,BS_LEFTTEXT, WS_EX_TRANSPARENT + GROUPBOX "Totalt",IDC_TOTALS_FRAME,5,122,111,39,0,WS_EX_TRANSPARENT + GROUPBOX "Upptaget minne (K)",IDC_COMMIT_CHARGE_FRAME,5,166,111,39,0,WS_EX_TRANSPARENT + GROUPBOX "Fysiskt minne (K)",IDC_PHYSICAL_MEMORY_FRAME,131,122,111,39,0,WS_EX_TRANSPARENT + GROUPBOX "Kernel minne (K)",IDC_KERNEL_MEMORY_FRAME,131,166,111,39,0,WS_EX_TRANSPARENT + LTEXT "Referenser",IDS_TOTALS_HANDLE_COUNT,12,131,41,8 + LTEXT "Trеdar",IDS_TOTALS_THREAD_COUNT,12,140,27,8 + LTEXT "Processer",IDS_TOTALS_PROCESS_COUNT,12,149,36,8 + EDITTEXT IDC_TOTALS_HANDLE_COUNT,65,131,45,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_TOTALS_THREAD_COUNT,65,140,45,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_TOTALS_PROCESS_COUNT,65,149,45,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + LTEXT "Totalt",IDS_COMMIT_CHARGE_TOTAL,12,175,27,8 + LTEXT "Grдns",IDS_COMMIT_CHARGE_LIMIT,12,184,21,8 + LTEXT "Topp",IDS_COMMIT_CHARGE_PEAK,12,193,34,8 + EDITTEXT IDC_COMMIT_CHARGE_TOTAL,65,174,45,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_COMMIT_CHARGE_LIMIT,65,184,45,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_COMMIT_CHARGE_PEAK,65,193,45,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + LTEXT "Totalt",IDS_PHYSICAL_MEMORY_TOTAL,137,131,27,8 + LTEXT "Tillgдngligt",IDS_PHYSICAL_MEMORY_AVAILABLE,137,140,46,8 + LTEXT "Systemcache",IDS_PHYSICAL_MEMORY_SYSTEM_CACHE,137,149,46,8 + EDITTEXT IDC_PHYSICAL_MEMORY_TOTAL,185,131,48,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_PHYSICAL_MEMORY_AVAILABLE,185,140,48,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_PHYSICAL_MEMORY_SYSTEM_CACHE,185,149,48,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + LTEXT "Totalt",IDS_KERNEL_MEMORY_TOTAL,137,175,27,8 + LTEXT "Fysiskt / virtuellt",IDS_KERNEL_MEMORY_PAGED,137,184,56,8 + LTEXT "Fysiskt",IDS_KERNEL_MEMORY_NONPAGED,137,193,44,8 + EDITTEXT IDC_KERNEL_MEMORY_TOTAL,185,174,48,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_KERNEL_MEMORY_PAGED,190,184,43,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_KERNEL_MEMORY_NONPAGED,185,193,48,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + GROUPBOX "Processorhistorik",IDC_CPU_USAGE_HISTORY_FRAME,74,5,168,54,0,WS_EX_TRANSPARENT + GROUPBOX "Minneshistorik",IDC_MEMORY_USAGE_HISTORY_FRAME,74,63,168,54,0,WS_EX_TRANSPARENT + PUSHBUTTON "Processoranvдndning",IDC_CPU_USAGE_GRAPH,12,17,47,37,0, + WS_EX_CLIENTEDGE + PUSHBUTTON "Minnesanvдndning",IDC_MEM_USAGE_GRAPH,12,75,47,37,0, + WS_EX_CLIENTEDGE + PUSHBUTTON "Processorhistorik",IDC_CPU_USAGE_HISTORY_GRAPH,81,17, + 153,37,0,WS_EX_CLIENTEDGE + PUSHBUTTON "Minneshistorik",IDC_MEM_USAGE_HISTORY_GRAPH,81,75, + 153,37,0,WS_EX_CLIENTEDGE +END + +IDD_DEBUG_CHANNELS_DIALOG DIALOG DISCARDABLE 0, 0, 247, 210 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Felsцkningskanaler" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "List2",IDC_DEBUG_CHANNELS_LIST,"SysListView32",LVS_REPORT | + LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP | + LVS_SORTASCENDING,7,7,233,177 + PUSHBUTTON "Stдng",IDOK,171,189,69,14 +END + +IDD_AFFINITY_DIALOG DIALOG DISCARDABLE 0, 0, 231, 154 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Processorsamhцrighet" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "OK",IDOK,120,133,50,14 + PUSHBUTTON "Avbryt",IDCANCEL,174,133,50,14 + LTEXT "Processorsamhцrighets-instдllningen bestдmmer vilka processorer processen tillеts exekvera pе", + IDC_STATIC,5,5,220,16 + CONTROL "Processor 0",IDC_CPU0,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, + 6,28,55,10 + CONTROL "Processor 1",IDC_CPU1,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,6,41,55,10 + CONTROL "Processor 2",IDC_CPU2,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,6,54,55,10 + CONTROL "Processor 3",IDC_CPU3,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,6,67,55,10 + CONTROL "Processor 4",IDC_CPU4,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,6,80,55,10 + CONTROL "Processor 5",IDC_CPU5,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,6,93,55,10 + CONTROL "Processor 6",IDC_CPU6,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,6,106,55,10 + CONTROL "Processor 7",IDC_CPU7,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,6,119,55,10 + CONTROL "Processor 8",IDC_CPU8,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,61,28,55,10 + CONTROL "Processor 9",IDC_CPU9,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,61,41,55,10 + CONTROL "Processor 10",IDC_CPU10,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,61,54,55,10 + CONTROL "Processor 11",IDC_CPU11,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,61,67,55,10 + CONTROL "Processor 12",IDC_CPU12,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,61,80,55,10 + CONTROL "Processor 13",IDC_CPU13,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,61,93,55,10 + CONTROL "Processor 14",IDC_CPU14,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,61,106,55,10 + CONTROL "Processor 15",IDC_CPU15,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,61,119,55,10 + CONTROL "Processor 16",IDC_CPU16,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,28,55,10 + CONTROL "Processor 17",IDC_CPU17,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,41,55,10 + CONTROL "Processor 18",IDC_CPU18,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,54,55,10 + CONTROL "Processor 19",IDC_CPU19,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,67,55,10 + CONTROL "Processor 20",IDC_CPU20,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,80,55,10 + CONTROL "Processor 21",IDC_CPU21,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,93,55,10 + CONTROL "Processor 22",IDC_CPU22,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,106,55,10 + CONTROL "Processor 23",IDC_CPU23,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,119,55,10 + CONTROL "Processor 24",IDC_CPU24,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,28,55,10 + CONTROL "Processor 25",IDC_CPU25,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,41,55,10 + CONTROL "Processor 26",IDC_CPU26,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,54,55,10 + CONTROL "Processor 27",IDC_CPU27,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,67,55,10 + CONTROL "Processor 28",IDC_CPU28,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,80,55,10 + CONTROL "Processor 29",IDC_CPU29,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,93,55,10 + CONTROL "Processor 30",IDC_CPU30,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,106,55,10 + CONTROL "Processor 31",IDC_CPU31,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,119,55,10 +END + +IDD_COLUMNS_DIALOG DIALOG DISCARDABLE 0, 0, 275, 199 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Vдlj kolumner" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "OK",IDOK,84,178,50,14 + PUSHBUTTON "Avbryt",IDCANCEL,138,178,50,14 + LTEXT "Vдlj de kolumner som skall synas pе process-sidan i Aktivitetshanteraren.", + IDC_STATIC,7,7,181,17 + CONTROL "&Processnamn",IDC_IMAGENAME,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,7,28,60,10 + CONTROL "P&ID (Processidentifierare)",IDC_PID,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,39,119,10 + CONTROL "Processoranvдndnin&g",IDC_CPUUSAGE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,50,89,10 + CONTROL "Pro&cessortid",IDC_CPUTIME,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,61,62,10 + CONTROL "&Minnesanvдndning",IDC_MEMORYUSAGE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,72,77,10 + CONTROL "Minnesanvдndnings&fцrдndring",IDC_MEMORYUSAGEDELTA,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,83,121,10 + CONTROL "T&oppvдrde minnesanvдndning",IDC_PEAKMEMORYUSAGE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,94,121,10 + CONTROL "&Sidfel",IDC_PAGEFAULTS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,105,56,10 + CONTROL "&USER Objekt",IDC_USEROBJECTS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,116,64,10 + CONTROL "Antal I/O-l&дsningar",IDC_IOREADS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,127,88,10 + CONTROL "I/O, anta&l tecken lдsta",IDC_IOREADBYTES,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,138,119,10 + CONTROL "Sessions-I&D",IDC_SESSIONID,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,149,58,10 + CONTROL "Anvдndar&namn",IDC_USERNAME,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,160,62,10 + CONTROL "Sidfelsf&цrдndring",IDC_PAGEFAULTSDELTA,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,133,28,82,10 + CONTROL "Storl&ek i virtuella minnet",IDC_VIRTUALMEMORYSIZE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,133,39,116,10 + CONTROL "Vдxlings&bar pool",IDC_PAGEDPOOL,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,133,50,76,10 + CONTROL "Ic&ke vдxlingsbar pool",IDC_NONPAGEDPOOL,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,133,61,96,10 + CONTROL "&Basprioritet",IDC_BASEPRIORITY,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,133,72,60,10 + CONTROL "Antal referenser (&handles)",IDC_HANDLECOUNT,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,133,83,117,10 + CONTROL "Antal tr&еdar",IDC_THREADCOUNT,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,133,94,60,10 + CONTROL "GDI-ob&jekt",IDC_GDIOBJECTS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,133,105,52,10 + CONTROL "An&tal I/O-Skrivningar",IDC_IOWRITES,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,133,116,97,10 + CONTROL "I/O, &antal tecken skrivna",IDC_IOWRITEBYTES,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,133,127,113,10 + CONTROL "And&ra I/O еtgдrder",IDC_IOOTHER,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,133,138,89,10 + CONTROL "Antal tecken, andra I/O еtgдrder",IDC_IOOTHERBYTES,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,133,149,141,10 +END + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" + "#include ""windows.h""\r\n" + "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" + "#include ""resource.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "\r\n" + "\0" +END + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_ABOUTBOX, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 252 + TOPMARGIN, 7 + BOTTOMMARGIN, 203 + END + + IDD_TASKMGR_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 3 + RIGHTMARGIN, 260 + TOPMARGIN, 3 + BOTTOMMARGIN, 231 + END + + IDD_APPLICATION_PAGE, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 240 + TOPMARGIN, 7 + BOTTOMMARGIN, 203 + END + + IDD_PROCESS_PAGE, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 240 + TOPMARGIN, 7 + BOTTOMMARGIN, 203 + END + + IDD_PERFORMANCE_PAGE, DIALOG + BEGIN + LEFTMARGIN, 5 + RIGHTMARGIN, 242 + VERTGUIDE, 12 + VERTGUIDE, 65 + VERTGUIDE, 110 + TOPMARGIN, 5 + BOTTOMMARGIN, 205 + END + + IDD_AFFINITY_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 224 + VERTGUIDE, 11 + VERTGUIDE, 61 + VERTGUIDE, 116 + VERTGUIDE, 175 + TOPMARGIN, 7 + BOTTOMMARGIN, 147 + HORZGUIDE, 28 + HORZGUIDE, 38 + HORZGUIDE, 51 + HORZGUIDE, 64 + HORZGUIDE, 77 + HORZGUIDE, 90 + HORZGUIDE, 103 + HORZGUIDE, 116 + HORZGUIDE, 129 + END + + IDD_COLUMNS_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 188 + VERTGUIDE, 107 + TOPMARGIN, 7 + BOTTOMMARGIN, 192 + HORZGUIDE, 28 + END +END +#endif // APSTUDIO_INVOKED + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_APP_TITLE "Aktivitetshanteraren" + IDC_TASKMGR "Aktivitetshanteraren" + IDS_IDLE_PROCESS "Systemets lediga resurser" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_NEW "Kцr ett nytt program" + ID_OPTIONS_ALWAYSONTOP "Aktivitetshanteraren fцrblir i fцrgrunden om den inte minimeras" + ID_OPTIONS_MINIMIZEONUSE + "Aktivitetshanteraren minimeras nдr en Vдxla till operation utfцrs" + ID_OPTIONS_HIDEWHENMINIMIZED "Gцm Aktivitetshanteraren nдr den minimeras" + ID_VIEW_REFRESH "Tvinga Aktivitetshanteraren att uppdatera nu, oavsдtt vald uppdateringshastighet" + ID_VIEW_LARGE "Visa aktiviteter med stora ikoner" + ID_VIEW_SMALL "Visa aktiviteter med smе ikoner" + ID_VIEW_DETAILS "Visa information om varje aktivitet" + ID_VIEW_UPDATESPEED_HIGH "Uppdaterar vдrden tvе gеnger per sekund" + ID_VIEW_UPDATESPEED_NORMAL "Uppdaterar vдrden varannan sekund" + ID_VIEW_UPDATESPEED_LOW "Uppdaterar vдrden var 4:e sekund" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_VIEW_UPDATESPEED_PAUSED "Uppdaterar inte automatiskt" + ID_WINDOWS_TILEHORIZONTALLY + "Ordna fцnstren horizontellt pе skrivbordet" + ID_WINDOWS_TILEVERTICALLY "Ordna fцnstren vertikalt pе skrivbordet" + ID_WINDOWS_MINIMIZE "Minimerar fцnstret" + ID_WINDOWS_MAXIMIZE "Maximerar fцnstret" + ID_WINDOWS_CASCADE "Ordna fцnstren diagonalt цverlappande pе skrivbordet" + ID_WINDOWS_BRINGTOFRONT "Fцr fцnstret till fцrgrunden men vдxla inte till det" + ID_HELP_TOPICS "Visa Aktivitetshanterarens hjдlpavsnitt" + ID_HELP_ABOUT "Visa programinformation, versionsnummer, och upphovsrдtt" + ID_FILE_EXIT "Avsluta Aktivitetshanteraren" + ID_OPTIONS_SHOW16BITTASKS + "Visa 16-bitarsprocesser under tillhцrande ntvdm.exe" + ID_VIEW_SELECTCOLUMNS "Vдlj de kolumner som ska synas pе process-sidan" + ID_VIEW_SHOWKERNELTIMES "Visar kernel-tider i prestandagrafer" + ID_VIEW_CPUHISTORY_ONEGRAPHALL + "En enda historik-graf visar totala processoranvдndningen" + ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU "Varje processor har sin egen historik-graf" + ID_APPLICATION_PAGE_SWITCHTO + "Fцr aktiviteten till fцrgrunden och vдxla till den" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_ENDTASK "Ber de valda aktiviteterna att avslutas" + ID_GOTOPROCESS "Дndrar fokus till den valda aktivitetens process" + ID_RESTORE "Еterstдller Aktivitetshanteraren frеn sitt gцmda tillstеnd" + ID_PROCESS_PAGE_ENDPROCESS "Tar bort processen frеn systemet" + ID_PROCESS_PAGE_ENDPROCESSTREE + "Tar bort den hдr processen och underprocesser frеn systemet" + ID_PROCESS_PAGE_DEBUG "Kopplar felsцkaren till den hдr processen" + ID_PROCESS_PAGE_SETAFFINITY + "Kontrollerar vilka processorer processen tillеts att kцras pе" + ID_PROCESS_PAGE_SETPRIORITY_REALTIME + "Дndrar processens prioritet till realtidslдge" + ID_PROCESS_PAGE_SETPRIORITY_HIGH "Дndrar processens prioritet till hцg" + ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL + "Дndrar processens prioritet till цver normal" + ID_PROCESS_PAGE_SETPRIORITY_NORMAL + "Дndrar processens prioritet till normal" + ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL + "Дndrar processens prioritet till under normal" + ID_PROCESS_PAGE_SETPRIORITY_LOW "Дndrar processens prioritet till lеg" + IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA." +END + + +STRINGTABLE DISCARDABLE +BEGIN + IDS_TAB_APPS "Program" + IDS_TAB_PROCESSES "Processer" + IDS_TAB_PERFORMANCE "Prestanda" + IDS_TAB_TASK "Aktivitet" + IDS_TAB_STATUS "Status" + IDS_TAB_IMAGENAME "Processnamn" + IDS_TAB_PID "PID" + IDS_TAB_USERNAME "Anvдndarnamn" + IDS_TAB_SESSIONID "Sessions-ID" + IDS_TAB_CPU "Processor" + IDS_TAB_CPUTIME "Processortid" + IDS_TAB_MEMUSAGE "Minnesanvдndning" + IDS_TAB_PEAKMEMUSAGE "Toppvдrde minne" + IDS_TAB_MEMDELTA "Minnesvдrdesfцrдndring" + IDS_TAB_PAGEFAULT "Sidfel" + IDS_TAB_PFDELTA "Sidfelsfцrдndring" + IDS_TAB_VMSIZE "VM Storlek" + IDS_TAB_PAGEDPOOL "Vдxlingsbar pool" + IDS_TAB_NPPOOL "Ovдxlingsbar pool" + IDS_TAB_BASEPRI "Basprioritet" + IDS_TAB_HANDLES "Referenser" + IDS_TAB_THREADS "Trеdar" + IDS_TAB_USERPBJECTS "USER Objekt" + IDS_TAB_GDIOBJECTS "GDI Objekt" + IDS_TAB_IOREADS "I/O-lдsningar" + IDS_TAB_IOWRITES "I/O-skrivningar" + IDS_TAB_IOOTHER "I/O-цvriga" + IDS_TAB_IOREADBYTES "Antal tecken lдsta, andra I/O-еtgдrder" + IDS_TAB_IOWRITESBYTES "Antal tecken skrivna, andra I/O-еtgдrder" + IDS_TAB_IOOTHERBYTES "I/O, antal tecken" + IDS_MENU_SELECTCOLUMNS "&Vдlj kolumner..." + IDS_MENU_16BITTASK "&Visa 16-bitsprocesser" + IDS_MENU_WINDOWS "&Fцnster" + IDS_MENU_LARGEICONS "&Stora ikoner" + IDS_MENU_SMALLICONS "S&mе ikoner" + IDS_MENU_DETAILS "&Detaljer" + IDS_MENU_ONEGRAPHALLCPUS "En visare fцr &alla processorer" + IDS_MENU_ONEGRAPHPERCPU "&En visare per processor" + IDS_MENU_CPUHISTORY "&Processorhistorik" + IDS_MENU_SHOWKERNELTIMES "&Visa kerneltider" + IDS_CREATENEWTASK "Ny aktivitet" + IDS_CREATENEWTASK_DESC "Skriv namnet pе ett program, en mapp, en web-adress eller ett dokument fцr att цppna det." + IDS_MSG_ACCESSPROCESSAFF "Kunde inte komma еt eller дndra processorsamhцrigheten" + IDS_MSG_PROCESSONEPRO "Processen mеste ha samhцrighet med minst en processor." + IDS_MSG_INVALIDOPTION "Ogiltigt val" + IDS_MSG_UNABLEDEBUGPROCESS "Kunde inte felsцka processen" + IDS_MSG_WARNINGDEBUG "VARNING: Felsцkning av den hдr processen kan resultera i fцrlorad data.\nДr du sдker pе att du vill ansluta felsцkaren?" + IDS_MSG_TASKMGRWARNING "Aktivitetshanteraren varning" + IDS_MSG_WARNINGTERMINATING "VARNING: Ett avslutande av en process kan orsaka\noцnskade effekter och pеverka systemets stabilitet. Processen\nkommer inte att ges chans att spara sitt arbete innan\nden avslutas. Дr du sдker pе att du vill avsluta processen?" + IDS_MSG_UNABLETERMINATEPRO "Kunde inte avsluta processen" + IDS_MSG_UNABLECHANGEPRIORITY "Kunde inte дndra prioritet" + IDS_MSG_WARNINGCHANGEPRIORITY "VARNING: Дndring av prioritetsklassen hos den hдr processen kan\norsaka oцnskade effekter och pеverka systemets stabilitet. Дr du\nsдker pе att du vill дndra prioritetsklassen?" + IDS_MSG_TRAYICONCPUUSAGE "Processoranvдndning: %d%%" + IDS_STATUS_MEMUSAGE "Minnesanv: %dK / %dK" + IDS_STATUS_CPUUSAGE "Processoranv: %3d%%" + IDS_STATUS_PROCESSES "Processer: %d" + IDS_Not_Responding "Svarar inte" + IDS_Running "Igеng" +END + + +#endif // Swedish (SE) resources +///////////////////////////////////////////////////////////////////////////// diff --git a/reactos/base/applications/taskmgr/Uk.rc b/reactos/base/applications/taskmgr/Uk.rc index 53f63df8d0b..cd03d54ef09 100644 --- a/reactos/base/applications/taskmgr/Uk.rc +++ b/reactos/base/applications/taskmgr/Uk.rc @@ -1,686 +1,686 @@ -///////////////////////////////////////////////////////////////////////////// -// Ukrainian resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_UKR) -#ifdef _WIN32 -LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT -#pragma code_page(1251) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Menu -// - -IDR_TASKMANAGER MENU DISCARDABLE -BEGIN - POPUP "&Файл" - BEGIN - MENUITEM "&Нове завдання (Виконати...)", ID_FILE_NEW - MENUITEM SEPARATOR - MENUITEM "&Завершення диспетчера завдань", ID_FILE_EXIT - END - POPUP "&Параметри" - BEGIN - MENUITEM "&Поверх інших вікон", ID_OPTIONS_ALWAYSONTOP - , CHECKED - MENUITEM "&Згортати після звернення", ID_OPTIONS_MINIMIZEONUSE - , CHECKED - MENUITEM "При&ховувати згорнуте", ID_OPTIONS_HIDEWHENMINIMIZED - , CHECKED - MENUITEM "&Відображати 16-розрядні завдання", ID_OPTIONS_SHOW16BITTASKS - , CHECKED - END - POPUP "&Вигляд" - BEGIN - MENUITEM "&Оновити", ID_VIEW_REFRESH - POPUP "&Швидкість оновлення" - BEGIN - MENUITEM "&Висока", ID_VIEW_UPDATESPEED_HIGH - MENUITEM "&Звичайна", ID_VIEW_UPDATESPEED_NORMAL - , CHECKED - MENUITEM "&Низька", ID_VIEW_UPDATESPEED_LOW - MENUITEM "&Призупинити", ID_VIEW_UPDATESPEED_PAUSED - - END - MENUITEM SEPARATOR - MENUITEM "&Великі значки", ID_VIEW_LARGE - MENUITEM "&Дрібні значки", ID_VIEW_SMALL - MENUITEM "&Таблиця", ID_VIEW_DETAILS, CHECKED - MENUITEM "В&ибрати стовпці...", ID_VIEW_SELECTCOLUMNS - POPUP "&Хронологія ЦП" - BEGIN - MENUITEM "&Один графік для всіх ЦП", ID_VIEW_CPUHISTORY_ONEGRAPHALL - - MENUITEM "Окремий &графік для кожного ЦП", ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU - , CHECKED - END - MENUITEM "&Вивід часу ядра", ID_VIEW_SHOWKERNELTIMES - END - POPUP "В&ікна" - BEGIN - MENUITEM "З&ліва направо", ID_WINDOWS_TILEHORIZONTALLY - MENUITEM "Згори до&низу", ID_WINDOWS_TILEVERTICALLY - MENUITEM "&Згорнути", ID_WINDOWS_MINIMIZE - MENUITEM "&Розгорнути", ID_WINDOWS_MAXIMIZE - MENUITEM "&Каскадом", ID_WINDOWS_CASCADE - MENUITEM "На передні&й план", ID_WINDOWS_BRINGTOFRONT - END - POPUP "&Довідка" - BEGIN - MENUITEM "&Зміст", ID_HELP_TOPICS - MENUITEM SEPARATOR - MENUITEM "&Про Диспетчер завдань", ID_HELP_ABOUT - END -END - -IDR_WINDOWSMENU MENU DISCARDABLE -BEGIN - MENUITEM "З&ліва направо", ID_WINDOWS_TILEHORIZONTALLY - MENUITEM "Згори до&низу", ID_WINDOWS_TILEVERTICALLY - MENUITEM "&Згорнути", ID_WINDOWS_MINIMIZE - MENUITEM "&Розгорнути", ID_WINDOWS_MAXIMIZE - MENUITEM "&Каскадом", ID_WINDOWS_CASCADE - MENUITEM "На передні&й план", ID_WINDOWS_BRINGTOFRONT -END - -IDR_APPLICATION_PAGE_CONTEXT1 MENU DISCARDABLE -BEGIN - POPUP "DUMMY" - BEGIN - MENUITEM "&Нове завдання (Виконати...)", ID_FILE_NEW - MENUITEM SEPARATOR - MENUITEM "&Великі значки", ID_VIEW_LARGE - MENUITEM "&Дрібні значки", ID_VIEW_SMALL - MENUITEM "&Таблиця", ID_VIEW_DETAILS, CHECKED - END -END - -IDR_APPLICATION_PAGE_CONTEXT2 MENU DISCARDABLE -BEGIN - POPUP "DUMMY" - BEGIN - MENUITEM "П&ереключитися", ID_APPLICATION_PAGE_SWITCHTO - MENUITEM "На передні&й план", ID_WINDOWS_BRINGTOFRONT - MENUITEM SEPARATOR - MENUITEM "З&ліва направо", ID_WINDOWS_TILEHORIZONTALLY - MENUITEM "Згори до&низу", ID_WINDOWS_TILEVERTICALLY - MENUITEM "&Згорнути", ID_WINDOWS_MINIMIZE - MENUITEM "&Розгорнути", ID_WINDOWS_MAXIMIZE - MENUITEM "&Каскадом", ID_WINDOWS_CASCADE - MENUITEM SEPARATOR - MENUITEM "Зн&яти завдання", ID_APPLICATION_PAGE_ENDTASK - MENUITEM "&Перейти до процесів", ID_APPLICATION_PAGE_GOTOPROCESS - - END -END - -IDR_TRAY_POPUP MENU DISCARDABLE -BEGIN - POPUP "DUMMY" - BEGIN - MENUITEM "&Відновити", ID_RESTORE - MENUITEM "&Закрити", ID_FILE_EXIT - MENUITEM SEPARATOR - MENUITEM "&Поверх інших вікон", ID_OPTIONS_ALWAYSONTOP - END -END - -IDR_PROCESS_PAGE_CONTEXT MENU DISCARDABLE -BEGIN - POPUP "DUMMY" - BEGIN - MENUITEM "&Завершити процес", ID_PROCESS_PAGE_ENDPROCESS - MENUITEM "Завершити &дерево процесів", ID_PROCESS_PAGE_ENDPROCESSTREE - - MENUITEM "&Налагодження", ID_PROCESS_PAGE_DEBUG - MENUITEM SEPARATOR - POPUP "&Пріоритет" - BEGIN - MENUITEM "&Реального часу", ID_PROCESS_PAGE_SETPRIORITY_REALTIME - - MENUITEM "&Високий", ID_PROCESS_PAGE_SETPRIORITY_HIGH - - MENUITEM "Ви&ще середнього", ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL - - MENUITEM "&Середній", ID_PROCESS_PAGE_SETPRIORITY_NORMAL - - MENUITEM "Ни&жче середнього", ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL - - MENUITEM "&Низький", ID_PROCESS_PAGE_SETPRIORITY_LOW - - END - MENUITEM "У&становити відповідність...", ID_PROCESS_PAGE_SETAFFINITY - MENUITEM "Edit Debug &Channels...", ID_PROCESS_PAGE_DEBUGCHANNELS - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_ABOUTBOX DIALOG DISCARDABLE 22, 17, 259, 210 -STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU -CAPTION "Про Диспетчер завдань" -FONT 8, "Tahoma" -BEGIN - CONTROL "Диспетчер завдань v1.0\nCopyright (C) 1999 - 2001\nby Brian Palmer (brianp@reactos.org)", - IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,53,28, - 122,26 - DEFPUSHBUTTON "OK",IDOK,183,189,44,14,WS_GROUP - ICON IDI_TASKMANAGER,IDC_STATIC,19,30,20,20 - EDITTEXT IDC_LICENSE_EDIT,53,63,174,107,ES_MULTILINE | - ES_READONLY | WS_VSCROLL -END - -IDD_TASKMGR_DIALOG DIALOG DISCARDABLE 0, 0, 264, 246 -STYLE DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | - WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU | - WS_THICKFRAME -CAPTION "Диспетчер завдань" -MENU IDR_TASKMANAGER -FONT 8, "Tahoma" -BEGIN - CONTROL "Tab1",IDC_TAB,"SysTabControl32",WS_TABSTOP,3,3,257,228 -END - -IDD_APPLICATION_PAGE DIALOG DISCARDABLE 0, 0, 247, 210 -STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN -FONT 8, "Tahoma" -BEGIN - CONTROL "List2",IDC_APPLIST,"SysListView32",LVS_REPORT | - LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,7,7,233,177 - PUSHBUTTON "&Нове завдання...",IDC_NEWTASK,187,189,53,14 - PUSHBUTTON "П&ереключитися",IDC_SWITCHTO,131,189,53,14,WS_DISABLED - PUSHBUTTON "Зн&яти завдання",IDC_ENDTASK,75,189,53,14,WS_DISABLED -END - -IDD_PROCESS_PAGE DIALOG DISCARDABLE 0, 0, 247, 210 -STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN -FONT 8, "Tahoma" -BEGIN - CONTROL "List2",IDC_PROCESSLIST,"SysListView32",LVS_REPORT | - LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_OWNERDATA | - WS_BORDER | WS_TABSTOP,7,7,233,177 - PUSHBUTTON "Зн&яти завдання",IDC_ENDPROCESS,171,189,69,14 - CONTROL "&Відображати процеси всіх користувачів",IDC_SHOWALLPROCESSES, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,191,111,10 -END - -//IDD_PERFORMANCE_PAGE DIALOGEX 0, 0, 247, 210 -IDD_PERFORMANCE_PAGE DIALOGEX DISCARDABLE 0, 0, 247, 210 -STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN -FONT 8, "Tahoma" -BEGIN - GROUPBOX "Використання ЦП",IDC_CPU_USAGE_FRAME,5,5,60,54,WS_TABSTOP, WS_EX_TRANSPARENT - GROUPBOX "Використання пам'яті",IDC_MEM_USAGE_FRAME,5,63,60,54,BS_LEFTTEXT, WS_EX_TRANSPARENT - GROUPBOX "Усього",IDC_TOTALS_FRAME,5,122,111,39,0,WS_EX_TRANSPARENT - GROUPBOX "Виділення пам'яті (КБ)",IDC_COMMIT_CHARGE_FRAME,5,166,111,39,0,WS_EX_TRANSPARENT - GROUPBOX "Фізична пам'ять (КБ)",IDC_PHYSICAL_MEMORY_FRAME,131,122,111,39,0,WS_EX_TRANSPARENT - GROUPBOX "Пам'ять ядра (КБ)",IDC_KERNEL_MEMORY_FRAME,131,166,111,39,0,WS_EX_TRANSPARENT - LTEXT "Дескрипторів",IDS_TOTALS_HANDLE_COUNT,12,131,27,8 - LTEXT "Потоків",IDS_TOTALS_THREAD_COUNT,12,140,27,8 - LTEXT "Процесів",IDS_TOTALS_PROCESS_COUNT,12,149,34,8 - EDITTEXT IDC_TOTALS_HANDLE_COUNT,65,131,45,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_TOTALS_THREAD_COUNT,65,140,45,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_TOTALS_PROCESS_COUNT,65,149,45,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - LTEXT "Усього",IDS_COMMIT_CHARGE_TOTAL,12,175,27,8 - LTEXT "Межа",IDS_COMMIT_CHARGE_LIMIT,12,184,15,8 - LTEXT "Пік",IDS_COMMIT_CHARGE_PEAK,12,193,34,8 - EDITTEXT IDC_COMMIT_CHARGE_TOTAL,65,174,45,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_COMMIT_CHARGE_LIMIT,65,184,45,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_COMMIT_CHARGE_PEAK,65,193,45,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - LTEXT "Усього",IDS_PHYSICAL_MEMORY_TOTAL,137,131,27,8 - LTEXT "Доступно",IDS_PHYSICAL_MEMORY_AVAILABLE,137,140,30,8 - LTEXT "Системний кеш",IDS_PHYSICAL_MEMORY_SYSTEM_CACHE,137,149,46,8 - EDITTEXT IDC_PHYSICAL_MEMORY_TOTAL,185,131,48,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_PHYSICAL_MEMORY_AVAILABLE,185,140,48,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_PHYSICAL_MEMORY_SYSTEM_CACHE,185,149,48,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - LTEXT "Усього",IDS_KERNEL_MEMORY_TOTAL,137,174,27,8 - LTEXT "Вивантажувана",IDS_KERNEL_MEMORY_PAGED,137,184,21,8 - LTEXT "Невивантажувана",IDS_KERNEL_MEMORY_NONPAGED,137,193,34,8 - EDITTEXT IDC_KERNEL_MEMORY_TOTAL,185,174,48,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_KERNEL_MEMORY_PAGED,185,184,48,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - EDITTEXT IDC_KERNEL_MEMORY_NONPAGED,185,193,48,8,ES_RIGHT | - ES_READONLY | ES_NUMBER | NOT WS_BORDER - GROUPBOX "Хронологія використання ЦП",IDC_CPU_USAGE_HISTORY_FRAME,74,5,168,54,0,WS_EX_TRANSPARENT - GROUPBOX "Хронологія використання пам'яті",IDC_MEMORY_USAGE_HISTORY_FRAME,74,63,168,54,0,WS_EX_TRANSPARENT - PUSHBUTTON "Відображення використання ЦП",IDC_CPU_USAGE_GRAPH,12,17,47,37,0, - WS_EX_CLIENTEDGE - PUSHBUTTON "Відображення використання пам'яті",IDC_MEM_USAGE_GRAPH,12,75,47,37,0, - WS_EX_CLIENTEDGE - PUSHBUTTON "Хронологія використання ЦП",IDC_CPU_USAGE_HISTORY_GRAPH,81,17, - 153,37,0,WS_EX_CLIENTEDGE - PUSHBUTTON "Хронологія використання пам'яті",IDC_MEM_USAGE_HISTORY_GRAPH,81,75, - 153,37,0,WS_EX_CLIENTEDGE -END - -IDD_DEBUG_CHANNELS_DIALOG DIALOG DISCARDABLE 0, 0, 247, 210 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Налагодження каналів" -FONT 8, "Tahoma" -BEGIN - CONTROL "List2",IDC_DEBUG_CHANNELS_LIST,"SysListView32",LVS_REPORT | - LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP | - LVS_SORTASCENDING,7,7,233,177 - PUSHBUTTON "Закрити",IDOK,171,189,69,14 -END - -IDD_AFFINITY_DIALOG DIALOG DISCARDABLE 0, 0, 231, 154 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Відповідність процесорів" -FONT 8, "Tahoma" -BEGIN - DEFPUSHBUTTON "OK",IDOK,120,133,50,14 - PUSHBUTTON "Скасувати",IDCANCEL,174,133,50,14 - LTEXT "Параметр відповідності процесорів визначає, на якому ЦП буде дозволено виконувати процес.", - IDC_STATIC,5,5,220,16 - CONTROL "ЦП 0",IDC_CPU0,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, - 11,28,37,10 - CONTROL "ЦП 1",IDC_CPU1,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,11,41,37,10 - CONTROL "ЦП 2",IDC_CPU2,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,11,54,37,10 - CONTROL "ЦП 3",IDC_CPU3,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,11,67,37,10 - CONTROL "ЦП 4",IDC_CPU4,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,11,80,37,10 - CONTROL "ЦП 5",IDC_CPU5,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,11,93,37,10 - CONTROL "ЦП 6",IDC_CPU6,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,11,106,37,10 - CONTROL "ЦП 7",IDC_CPU7,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,11,119,37,10 - CONTROL "ЦП 8",IDC_CPU8,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,61,28,37,10 - CONTROL "ЦП 9",IDC_CPU9,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,61,41,37,10 - CONTROL "ЦП 10",IDC_CPU10,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,61,54,41,10 - CONTROL "ЦП 11",IDC_CPU11,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,61,67,41,10 - CONTROL "ЦП 12",IDC_CPU12,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,61,80,41,10 - CONTROL "ЦП 13",IDC_CPU13,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,61,93,41,10 - CONTROL "ЦП 14",IDC_CPU14,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,61,106,41,10 - CONTROL "ЦП 15",IDC_CPU15,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,61,119,41,10 - CONTROL "ЦП 16",IDC_CPU16,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,28,41,10 - CONTROL "ЦП 17",IDC_CPU17,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,41,41,10 - CONTROL "ЦП 18",IDC_CPU18,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,54,41,10 - CONTROL "ЦП 19",IDC_CPU19,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,67,41,10 - CONTROL "ЦП 20",IDC_CPU20,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,80,41,10 - CONTROL "ЦП 21",IDC_CPU21,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,93,41,10 - CONTROL "ЦП 22",IDC_CPU22,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,106,41,10 - CONTROL "ЦП 23",IDC_CPU23,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,116,119,41,10 - CONTROL "ЦП 24",IDC_CPU24,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,28,41,10 - CONTROL "ЦП 25",IDC_CPU25,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,41,41,10 - CONTROL "ЦП 26",IDC_CPU26,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,54,41,10 - CONTROL "ЦП 27",IDC_CPU27,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,67,41,10 - CONTROL "ЦП 28",IDC_CPU28,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,80,41,10 - CONTROL "ЦП 29",IDC_CPU29,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,93,41,10 - CONTROL "ЦП 30",IDC_CPU30,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,106,41,10 - CONTROL "ЦП 31",IDC_CPU31,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,175,119,41,10 -END - -IDD_COLUMNS_DIALOG DIALOG DISCARDABLE 0, 0, 195, 199 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Вибір стовпців" -FONT 8, "Tahoma" -BEGIN - DEFPUSHBUTTON "OK",IDOK,84,178,50,14 - PUSHBUTTON "Скасувати",IDCANCEL,138,178,50,14 - LTEXT "Виберіть стовпці, які слід відображати на вкладці Процес диспетчера завдань.", - IDC_STATIC,7,7,181,17 - CONTROL "&Ім'я образу",IDC_IMAGENAME,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,7,28,56,10 - CONTROL "Іденти&ф. процесу (PID)",IDC_PID,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,39,88,10 - CONTROL "&Використання ЦП",IDC_CPUUSAGE,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,50,53,10 - CONTROL "&Час ЦП",IDC_CPUTIME,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,61,48,10 - CONTROL "&Пам'ять - використання",IDC_MEMORYUSAGE,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,72,63,10 - CONTROL "Пам'ять - змі&на",IDC_MEMORYUSAGEDELTA,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,83,82,10 - CONTROL "Пам'ять - &максимум",IDC_PEAKMEMORYUSAGE,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,94,82,10 - CONTROL "П&омилок сторінки",IDC_PAGEFAULTS,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,105,53,10 - CONTROL "О&б'єкти USER",IDC_USEROBJECTS,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,116,62,10 - CONTROL "Кількість читань",IDC_IOREADS,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,127,49,10 - CONTROL "Прочитано байтів",IDC_IOREADBYTES,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,138,65,10 - CONTROL "Код се&ансу",IDC_SESSIONID,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,149,50,10 - CONTROL "Ім'&я користувача",IDC_USERNAME,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,7,160,51,10 - CONTROL "Помилок &сторінки - зміна",IDC_PAGEFAULTSDELTA,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,107,28,72,10 - CONTROL "Об'єм віртуал&ьної пам'яті",IDC_VIRTUALMEMORYSIZE,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,107,39,77,10 - CONTROL "Виванта&жуваний пул",IDC_PAGEDPOOL,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,107,50,53,10 - CONTROL "Невивантаж&уваний пул",IDC_NONPAGEDPOOL,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,107,61,67,10 - CONTROL "Базови&й пріоритет",IDC_BASEPRIORITY,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,107,72,55,10 - CONTROL "Лічильник &дескрипторів",IDC_HANDLECOUNT,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,107,83,59,10 - CONTROL "&Лічильник потоків",IDC_THREADCOUNT,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,107,94,59,10 - CONTROL "Об'&єкти GDI",IDC_GDIOBJECTS,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,107,105,55,10 - CONTROL "Кількість записів",IDC_IOWRITES,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,107,116,49,10 - CONTROL "Записано байтів",IDC_IOWRITEBYTES,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,107,127,65,10 - CONTROL "Інший ввід-вивід",IDC_IOOTHER,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,107,138,46,10 - CONTROL "Інших байтів під час вводу-виводу",IDC_IOOTHERBYTES,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,107,149,65,10 -END - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -2 TEXTINCLUDE DISCARDABLE -BEGIN - "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" - "#include ""windows.h""\r\n" - "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" - "#include ""resource.h""\r\n" - "\0" -END - -3 TEXTINCLUDE DISCARDABLE -BEGIN - "\r\n" - "\0" -END - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "resource.h\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO DISCARDABLE -BEGIN - IDD_ABOUTBOX, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 252 - TOPMARGIN, 7 - BOTTOMMARGIN, 203 - END - - IDD_TASKMGR_DIALOG, DIALOG - BEGIN - LEFTMARGIN, 3 - RIGHTMARGIN, 260 - TOPMARGIN, 3 - BOTTOMMARGIN, 231 - END - - IDD_APPLICATION_PAGE, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 240 - TOPMARGIN, 7 - BOTTOMMARGIN, 203 - END - - IDD_PROCESS_PAGE, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 240 - TOPMARGIN, 7 - BOTTOMMARGIN, 203 - END - - IDD_PERFORMANCE_PAGE, DIALOG - BEGIN - LEFTMARGIN, 5 - RIGHTMARGIN, 242 - VERTGUIDE, 12 - VERTGUIDE, 65 - VERTGUIDE, 110 - TOPMARGIN, 5 - BOTTOMMARGIN, 205 - END - - IDD_AFFINITY_DIALOG, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 224 - VERTGUIDE, 11 - VERTGUIDE, 61 - VERTGUIDE, 116 - VERTGUIDE, 175 - TOPMARGIN, 7 - BOTTOMMARGIN, 147 - HORZGUIDE, 28 - HORZGUIDE, 38 - HORZGUIDE, 51 - HORZGUIDE, 64 - HORZGUIDE, 77 - HORZGUIDE, 90 - HORZGUIDE, 103 - HORZGUIDE, 116 - HORZGUIDE, 129 - END - - IDD_COLUMNS_DIALOG, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 188 - VERTGUIDE, 107 - TOPMARGIN, 7 - BOTTOMMARGIN, 192 - HORZGUIDE, 28 - END -END -#endif // APSTUDIO_INVOKED - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APP_TITLE "Диспетчер завдань" - IDC_TASKMGR "Диспетчер завдань" - IDS_IDLE_PROCESS "Недіяння системи" -END - -STRINGTABLE DISCARDABLE -BEGIN - ID_FILE_NEW "Запускає нову програму" - ID_OPTIONS_ALWAYSONTOP "Вікно диспетчера завдань залишається поверх інших вікон, якщо його не згорнуто" - ID_OPTIONS_MINIMIZEONUSE - "Вікно диспетчера завдань згортається при переключенні" - ID_OPTIONS_HIDEWHENMINIMIZED "Приховування згорнутого вікна диспетчера завдань" - ID_VIEW_REFRESH "Спричинює негайне оновлення вікна диспетчера завдань" - ID_VIEW_LARGE "Показує завдання великими значками" - ID_VIEW_SMALL "Показує завдання малими значками" - ID_VIEW_DETAILS "Показує додаткові відомості про кожне завдання" - ID_VIEW_UPDATESPEED_HIGH "Оновлює зображення двічі на секунду" - ID_VIEW_UPDATESPEED_NORMAL "Оновлює зображення раз на дві секунди" - ID_VIEW_UPDATESPEED_LOW "Оновлює зображення раз на чотири секунди" -END - -STRINGTABLE DISCARDABLE -BEGIN - ID_VIEW_UPDATESPEED_PAUSED "Не оновлювати автоматично" - ID_WINDOWS_TILEHORIZONTALLY - "Розташовує вікна горизонтально на робочому столі" - ID_WINDOWS_TILEVERTICALLY "Розташовує вікна вертикально на робочому столі" - ID_WINDOWS_MINIMIZE "Згортає вікна" - ID_WINDOWS_MAXIMIZE "Розгортає вікна" - ID_WINDOWS_CASCADE "Розташовує вікна каскадом на робочому столі" - ID_WINDOWS_BRINGTOFRONT "Переміщення вікна на передній план без переходу до нього" - ID_HELP_TOPICS "Показує довідку диспетчера завдань" - ID_HELP_ABOUT "Показує відомості про програму, її версію та авторські права" - ID_FILE_EXIT "Закриває диспетчер завдань" - ID_OPTIONS_SHOW16BITTASKS - "Показ 16-розрядних завдань, які обробляє ntvdm.exe" - ID_VIEW_SELECTCOLUMNS "Виберіть стовпці, які слід відображати на вкладці Процеси" - ID_VIEW_SHOWKERNELTIMES "Показує час ядра на графіках продуктивності" - ID_VIEW_CPUHISTORY_ONEGRAPHALL - "Єдиний хронологічний графік загального використання ЦП" - ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU "Кожний ЦП має власний хронологічний графік" - ID_APPLICATION_PAGE_SWITCHTO - "Переміщення завдання на передній план і передача керування цьому завданню" -END - -STRINGTABLE DISCARDABLE -BEGIN - ID_ENDTASK "Наказує вибраним завданням закритися" - ID_GOTOPROCESS "Передача фокуса до процесу вибраного завдання" - ID_RESTORE "Відновлення прихованого вікна диспетчера завдань" - ID_PROCESS_PAGE_ENDPROCESS "Видаляє процес із системи" - ID_PROCESS_PAGE_ENDPROCESSTREE - "Видаляє із системи цей процес і всіх його нащадків" - ID_PROCESS_PAGE_DEBUG "Застосовує налагоджувач до цього процесу" - ID_PROCESS_PAGE_SETAFFINITY - "Визначає, які процесори може використовувати процес" - ID_PROCESS_PAGE_SETPRIORITY_REALTIME - "Установлює клас пріоритету \"Реального часу\" для процесу" - ID_PROCESS_PAGE_SETPRIORITY_HIGH "Установлює клас пріоритету \"Високий\" для процесу" - ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL - "Установлює клас пріоритету \"Вище середнього\" для процесу" - ID_PROCESS_PAGE_SETPRIORITY_NORMAL - "Установлює клас пріоритету \"Середній\" для процесу" - ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL - "Установлює клас пріоритету \"Нижче середнього\" для процесу" - ID_PROCESS_PAGE_SETPRIORITY_LOW "Установлює клас пріоритету \"Низький\" для процесу" - IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA." -END - - -STRINGTABLE DISCARDABLE -BEGIN - IDS_TAB_APPS "Додатки" - IDS_TAB_PROCESSES "Процеси" - IDS_TAB_PERFORMANCE "Швидкодія" - IDS_TAB_TASK "Завдання" - IDS_TAB_STATUS "Стан" - IDS_TAB_IMAGENAME "Ім'я образу" - IDS_TAB_PID "PID" - IDS_TAB_USERNAME "Ім'я користувача" - IDS_TAB_SESSIONID "Код сеансу" - IDS_TAB_CPU "ЦП" - IDS_TAB_CPUTIME "Час ЦП" - IDS_TAB_MEMUSAGE "Пам'ять" - IDS_TAB_PEAKMEMUSAGE "Пікове використання пам'яті" - IDS_TAB_MEMDELTA "Пам'ять (змін)" - IDS_TAB_PAGEFAULT "Пом.ст." - IDS_TAB_PFDELTA "Пом.ст.(змін)" - IDS_TAB_VMSIZE "Вірт.п." - IDS_TAB_PAGEDPOOL "Вив.пул" - IDS_TAB_NPPOOL "Невив.пул" - IDS_TAB_BASEPRI "Баз.пр." - IDS_TAB_HANDLES "Дескр." - IDS_TAB_THREADS "Потоків" - IDS_TAB_USERPBJECTS "Об'єкти USER" - IDS_TAB_GDIOBJECTS "Об'єкти GDI" - IDS_TAB_IOREADS "Кількість читань" - IDS_TAB_IOWRITES "Кількість записів" - IDS_TAB_IOOTHER "Інший ввід-вивід" - IDS_TAB_IOREADBYTES "Прочитано байтів" - IDS_TAB_IOWRITESBYTES "Записано байтів" - IDS_TAB_IOOTHERBYTES "Інших байтів під час вводу-виводу" - IDS_MENU_SELECTCOLUMNS "В&ибрати стовпці..." - IDS_MENU_16BITTASK "&Відображати 16-розрядні завдання" - IDS_MENU_WINDOWS "В&ікна" - IDS_MENU_LARGEICONS "&Великі значки" - IDS_MENU_SMALLICONS "&Дрібні значки" - IDS_MENU_DETAILS "&Таблиця" - IDS_MENU_ONEGRAPHALLCPUS "&Один графік для всіх ЦП" - IDS_MENU_ONEGRAPHPERCPU "Окремий &графік для кожного ЦП" - IDS_MENU_CPUHISTORY "&Хронологія ЦП" - IDS_MENU_SHOWKERNELTIMES "&Вивід часу ядра" - IDS_CREATENEWTASK "Створити нове завдання" - IDS_CREATENEWTASK_DESC "Введіть ім'я програми, папки, документа або ресурсу Інтернету, і Диспетчер завдань відкриє їх." - IDS_MSG_ACCESSPROCESSAFF "Не вдалося отримати доступ або установити належність процесу" - IDS_MSG_PROCESSONEPRO "Процесу має відповідати принаймні один процесор." - IDS_MSG_INVALIDOPTION "Неправильний параметр" - IDS_MSG_UNABLEDEBUGPROCESS "Не вдається налагодити процес" - IDS_MSG_WARNINGDEBUG "УВАГА! Налагодження цього процесу може спричинити втрату даних.\nВи дійсно бажаєте застосувати налагоджувач?" - IDS_MSG_TASKMGRWARNING "Попередження диспетчера завдань" - IDS_MSG_WARNINGTERMINATING "УВАГА! Припинення процесу може призвести до \nнебажаних наслідків, включаючи втрату даних і \nнестабільну роботу системи. Процес не зможе \nзберегти свій стан або дані перед припиненням. \nВи дійсно бажаєте припинити процес?" - IDS_MSG_UNABLETERMINATEPRO "Неможливо завершити процес" - IDS_MSG_UNABLECHANGEPRIORITY "Неможливо змінити пріоритет" - IDS_MSG_WARNINGCHANGEPRIORITY "УВАГА! Зміна класу пріоритету цього процесу може призвести до \nнебажаних наслідків, включаючи нестабільну роботу \nсистеми. Ви дійсно бажаєте змінити пріоритет класу?" - IDS_MSG_TRAYICONCPUUSAGE "Використання ЦП: %d%%" - IDS_STATUS_MEMUSAGE "Пам'ять: %dK / %dK" - IDS_STATUS_CPUUSAGE "Використання ЦП: %3d%%" - IDS_STATUS_PROCESSES "Процесів: %d" - IDS_Not_Responding "Не відповідає" - IDS_Running "Виконується" -END - - -#endif // Ukrainian resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - +///////////////////////////////////////////////////////////////////////////// +// Ukrainian resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_UKR) +#ifdef _WIN32 +LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT +#pragma code_page(1251) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_TASKMANAGER MENU DISCARDABLE +BEGIN + POPUP "&Файл" + BEGIN + MENUITEM "&Нове завдання (Виконати...)", ID_FILE_NEW + MENUITEM SEPARATOR + MENUITEM "&Завершення диспетчера завдань", ID_FILE_EXIT + END + POPUP "&Параметри" + BEGIN + MENUITEM "&Поверх інших вікон", ID_OPTIONS_ALWAYSONTOP + , CHECKED + MENUITEM "&Згортати після звернення", ID_OPTIONS_MINIMIZEONUSE + , CHECKED + MENUITEM "При&ховувати згорнуте", ID_OPTIONS_HIDEWHENMINIMIZED + , CHECKED + MENUITEM "&Відображати 16-розрядні завдання", ID_OPTIONS_SHOW16BITTASKS + , CHECKED + END + POPUP "&Вигляд" + BEGIN + MENUITEM "&Оновити", ID_VIEW_REFRESH + POPUP "&Швидкість оновлення" + BEGIN + MENUITEM "&Висока", ID_VIEW_UPDATESPEED_HIGH + MENUITEM "&Звичайна", ID_VIEW_UPDATESPEED_NORMAL + , CHECKED + MENUITEM "&Низька", ID_VIEW_UPDATESPEED_LOW + MENUITEM "&Призупинити", ID_VIEW_UPDATESPEED_PAUSED + + END + MENUITEM SEPARATOR + MENUITEM "&Великі значки", ID_VIEW_LARGE + MENUITEM "&Дрібні значки", ID_VIEW_SMALL + MENUITEM "&Таблиця", ID_VIEW_DETAILS, CHECKED + MENUITEM "В&ибрати стовпці...", ID_VIEW_SELECTCOLUMNS + POPUP "&Хронологія ЦП" + BEGIN + MENUITEM "&Один графік для всіх ЦП", ID_VIEW_CPUHISTORY_ONEGRAPHALL + + MENUITEM "Окремий &графік для кожного ЦП", ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU + , CHECKED + END + MENUITEM "&Вивід часу ядра", ID_VIEW_SHOWKERNELTIMES + END + POPUP "В&ікна" + BEGIN + MENUITEM "З&ліва направо", ID_WINDOWS_TILEHORIZONTALLY + MENUITEM "Згори до&низу", ID_WINDOWS_TILEVERTICALLY + MENUITEM "&Згорнути", ID_WINDOWS_MINIMIZE + MENUITEM "&Розгорнути", ID_WINDOWS_MAXIMIZE + MENUITEM "&Каскадом", ID_WINDOWS_CASCADE + MENUITEM "На передні&й план", ID_WINDOWS_BRINGTOFRONT + END + POPUP "&Довідка" + BEGIN + MENUITEM "&Зміст", ID_HELP_TOPICS + MENUITEM SEPARATOR + MENUITEM "&Про Диспетчер завдань", ID_HELP_ABOUT + END +END + +IDR_WINDOWSMENU MENU DISCARDABLE +BEGIN + MENUITEM "З&ліва направо", ID_WINDOWS_TILEHORIZONTALLY + MENUITEM "Згори до&низу", ID_WINDOWS_TILEVERTICALLY + MENUITEM "&Згорнути", ID_WINDOWS_MINIMIZE + MENUITEM "&Розгорнути", ID_WINDOWS_MAXIMIZE + MENUITEM "&Каскадом", ID_WINDOWS_CASCADE + MENUITEM "На передні&й план", ID_WINDOWS_BRINGTOFRONT +END + +IDR_APPLICATION_PAGE_CONTEXT1 MENU DISCARDABLE +BEGIN + POPUP "DUMMY" + BEGIN + MENUITEM "&Нове завдання (Виконати...)", ID_FILE_NEW + MENUITEM SEPARATOR + MENUITEM "&Великі значки", ID_VIEW_LARGE + MENUITEM "&Дрібні значки", ID_VIEW_SMALL + MENUITEM "&Таблиця", ID_VIEW_DETAILS, CHECKED + END +END + +IDR_APPLICATION_PAGE_CONTEXT2 MENU DISCARDABLE +BEGIN + POPUP "DUMMY" + BEGIN + MENUITEM "П&ереключитися", ID_APPLICATION_PAGE_SWITCHTO + MENUITEM "На передні&й план", ID_WINDOWS_BRINGTOFRONT + MENUITEM SEPARATOR + MENUITEM "З&ліва направо", ID_WINDOWS_TILEHORIZONTALLY + MENUITEM "Згори до&низу", ID_WINDOWS_TILEVERTICALLY + MENUITEM "&Згорнути", ID_WINDOWS_MINIMIZE + MENUITEM "&Розгорнути", ID_WINDOWS_MAXIMIZE + MENUITEM "&Каскадом", ID_WINDOWS_CASCADE + MENUITEM SEPARATOR + MENUITEM "Зн&яти завдання", ID_APPLICATION_PAGE_ENDTASK + MENUITEM "&Перейти до процесів", ID_APPLICATION_PAGE_GOTOPROCESS + + END +END + +IDR_TRAY_POPUP MENU DISCARDABLE +BEGIN + POPUP "DUMMY" + BEGIN + MENUITEM "&Відновити", ID_RESTORE + MENUITEM "&Закрити", ID_FILE_EXIT + MENUITEM SEPARATOR + MENUITEM "&Поверх інших вікон", ID_OPTIONS_ALWAYSONTOP + END +END + +IDR_PROCESS_PAGE_CONTEXT MENU DISCARDABLE +BEGIN + POPUP "DUMMY" + BEGIN + MENUITEM "&Завершити процес", ID_PROCESS_PAGE_ENDPROCESS + MENUITEM "Завершити &дерево процесів", ID_PROCESS_PAGE_ENDPROCESSTREE + + MENUITEM "&Налагодження", ID_PROCESS_PAGE_DEBUG + MENUITEM SEPARATOR + POPUP "&Пріоритет" + BEGIN + MENUITEM "&Реального часу", ID_PROCESS_PAGE_SETPRIORITY_REALTIME + + MENUITEM "&Високий", ID_PROCESS_PAGE_SETPRIORITY_HIGH + + MENUITEM "Ви&ще середнього", ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL + + MENUITEM "&Середній", ID_PROCESS_PAGE_SETPRIORITY_NORMAL + + MENUITEM "Ни&жче середнього", ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL + + MENUITEM "&Низький", ID_PROCESS_PAGE_SETPRIORITY_LOW + + END + MENUITEM "У&становити відповідність...", ID_PROCESS_PAGE_SETAFFINITY + MENUITEM "Edit Debug &Channels...", ID_PROCESS_PAGE_DEBUGCHANNELS + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_ABOUTBOX DIALOG DISCARDABLE 22, 17, 259, 210 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +CAPTION "Про Диспетчер завдань" +FONT 8, "Tahoma" +BEGIN + CONTROL "Диспетчер завдань v1.0\nCopyright (C) 1999 - 2001\nby Brian Palmer (brianp@reactos.org)", + IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,53,28, + 122,26 + DEFPUSHBUTTON "OK",IDOK,183,189,44,14,WS_GROUP + ICON IDI_TASKMANAGER,IDC_STATIC,19,30,20,20 + EDITTEXT IDC_LICENSE_EDIT,53,63,174,107,ES_MULTILINE | + ES_READONLY | WS_VSCROLL +END + +IDD_TASKMGR_DIALOG DIALOG DISCARDABLE 0, 0, 264, 246 +STYLE DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | + WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU | + WS_THICKFRAME +CAPTION "Диспетчер завдань" +MENU IDR_TASKMANAGER +FONT 8, "Tahoma" +BEGIN + CONTROL "Tab1",IDC_TAB,"SysTabControl32",WS_TABSTOP,3,3,257,228 +END + +IDD_APPLICATION_PAGE DIALOG DISCARDABLE 0, 0, 247, 210 +STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN +FONT 8, "Tahoma" +BEGIN + CONTROL "List2",IDC_APPLIST,"SysListView32",LVS_REPORT | + LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,7,7,233,177 + PUSHBUTTON "&Нове завдання...",IDC_NEWTASK,187,189,53,14 + PUSHBUTTON "П&ереключитися",IDC_SWITCHTO,131,189,53,14,WS_DISABLED + PUSHBUTTON "Зн&яти завдання",IDC_ENDTASK,75,189,53,14,WS_DISABLED +END + +IDD_PROCESS_PAGE DIALOG DISCARDABLE 0, 0, 247, 210 +STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN +FONT 8, "Tahoma" +BEGIN + CONTROL "List2",IDC_PROCESSLIST,"SysListView32",LVS_REPORT | + LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_OWNERDATA | + WS_BORDER | WS_TABSTOP,7,7,233,177 + PUSHBUTTON "Зн&яти завдання",IDC_ENDPROCESS,171,189,69,14 + CONTROL "&Відображати процеси всіх користувачів",IDC_SHOWALLPROCESSES, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,191,111,10 +END + +//IDD_PERFORMANCE_PAGE DIALOGEX 0, 0, 247, 210 +IDD_PERFORMANCE_PAGE DIALOGEX DISCARDABLE 0, 0, 247, 210 +STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN +FONT 8, "Tahoma" +BEGIN + GROUPBOX "Використання ЦП",IDC_CPU_USAGE_FRAME,5,5,60,54,WS_TABSTOP, WS_EX_TRANSPARENT + GROUPBOX "Використання пам'яті",IDC_MEM_USAGE_FRAME,5,63,60,54,BS_LEFTTEXT, WS_EX_TRANSPARENT + GROUPBOX "Усього",IDC_TOTALS_FRAME,5,122,111,39,0,WS_EX_TRANSPARENT + GROUPBOX "Виділення пам'яті (КБ)",IDC_COMMIT_CHARGE_FRAME,5,166,111,39,0,WS_EX_TRANSPARENT + GROUPBOX "Фізична пам'ять (КБ)",IDC_PHYSICAL_MEMORY_FRAME,131,122,111,39,0,WS_EX_TRANSPARENT + GROUPBOX "Пам'ять ядра (КБ)",IDC_KERNEL_MEMORY_FRAME,131,166,111,39,0,WS_EX_TRANSPARENT + LTEXT "Дескрипторів",IDS_TOTALS_HANDLE_COUNT,12,131,27,8 + LTEXT "Потоків",IDS_TOTALS_THREAD_COUNT,12,140,27,8 + LTEXT "Процесів",IDS_TOTALS_PROCESS_COUNT,12,149,34,8 + EDITTEXT IDC_TOTALS_HANDLE_COUNT,65,131,45,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_TOTALS_THREAD_COUNT,65,140,45,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_TOTALS_PROCESS_COUNT,65,149,45,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + LTEXT "Усього",IDS_COMMIT_CHARGE_TOTAL,12,175,27,8 + LTEXT "Межа",IDS_COMMIT_CHARGE_LIMIT,12,184,15,8 + LTEXT "Пік",IDS_COMMIT_CHARGE_PEAK,12,193,34,8 + EDITTEXT IDC_COMMIT_CHARGE_TOTAL,65,174,45,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_COMMIT_CHARGE_LIMIT,65,184,45,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_COMMIT_CHARGE_PEAK,65,193,45,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + LTEXT "Усього",IDS_PHYSICAL_MEMORY_TOTAL,137,131,27,8 + LTEXT "Доступно",IDS_PHYSICAL_MEMORY_AVAILABLE,137,140,30,8 + LTEXT "Системний кеш",IDS_PHYSICAL_MEMORY_SYSTEM_CACHE,137,149,46,8 + EDITTEXT IDC_PHYSICAL_MEMORY_TOTAL,185,131,48,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_PHYSICAL_MEMORY_AVAILABLE,185,140,48,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_PHYSICAL_MEMORY_SYSTEM_CACHE,185,149,48,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + LTEXT "Усього",IDS_KERNEL_MEMORY_TOTAL,137,174,27,8 + LTEXT "Вивантажувана",IDS_KERNEL_MEMORY_PAGED,137,184,21,8 + LTEXT "Невивантажувана",IDS_KERNEL_MEMORY_NONPAGED,137,193,34,8 + EDITTEXT IDC_KERNEL_MEMORY_TOTAL,185,174,48,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_KERNEL_MEMORY_PAGED,185,184,48,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + EDITTEXT IDC_KERNEL_MEMORY_NONPAGED,185,193,48,8,ES_RIGHT | + ES_READONLY | ES_NUMBER | NOT WS_BORDER + GROUPBOX "Хронологія використання ЦП",IDC_CPU_USAGE_HISTORY_FRAME,74,5,168,54,0,WS_EX_TRANSPARENT + GROUPBOX "Хронологія використання пам'яті",IDC_MEMORY_USAGE_HISTORY_FRAME,74,63,168,54,0,WS_EX_TRANSPARENT + PUSHBUTTON "Відображення використання ЦП",IDC_CPU_USAGE_GRAPH,12,17,47,37,0, + WS_EX_CLIENTEDGE + PUSHBUTTON "Відображення використання пам'яті",IDC_MEM_USAGE_GRAPH,12,75,47,37,0, + WS_EX_CLIENTEDGE + PUSHBUTTON "Хронологія використання ЦП",IDC_CPU_USAGE_HISTORY_GRAPH,81,17, + 153,37,0,WS_EX_CLIENTEDGE + PUSHBUTTON "Хронологія використання пам'яті",IDC_MEM_USAGE_HISTORY_GRAPH,81,75, + 153,37,0,WS_EX_CLIENTEDGE +END + +IDD_DEBUG_CHANNELS_DIALOG DIALOG DISCARDABLE 0, 0, 247, 210 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Налагодження каналів" +FONT 8, "Tahoma" +BEGIN + CONTROL "List2",IDC_DEBUG_CHANNELS_LIST,"SysListView32",LVS_REPORT | + LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP | + LVS_SORTASCENDING,7,7,233,177 + PUSHBUTTON "Закрити",IDOK,171,189,69,14 +END + +IDD_AFFINITY_DIALOG DIALOG DISCARDABLE 0, 0, 231, 154 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Відповідність процесорів" +FONT 8, "Tahoma" +BEGIN + DEFPUSHBUTTON "OK",IDOK,120,133,50,14 + PUSHBUTTON "Скасувати",IDCANCEL,174,133,50,14 + LTEXT "Параметр відповідності процесорів визначає, на якому ЦП буде дозволено виконувати процес.", + IDC_STATIC,5,5,220,16 + CONTROL "ЦП 0",IDC_CPU0,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, + 11,28,37,10 + CONTROL "ЦП 1",IDC_CPU1,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,11,41,37,10 + CONTROL "ЦП 2",IDC_CPU2,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,11,54,37,10 + CONTROL "ЦП 3",IDC_CPU3,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,11,67,37,10 + CONTROL "ЦП 4",IDC_CPU4,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,11,80,37,10 + CONTROL "ЦП 5",IDC_CPU5,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,11,93,37,10 + CONTROL "ЦП 6",IDC_CPU6,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,11,106,37,10 + CONTROL "ЦП 7",IDC_CPU7,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,11,119,37,10 + CONTROL "ЦП 8",IDC_CPU8,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,61,28,37,10 + CONTROL "ЦП 9",IDC_CPU9,"Button",BS_AUTOCHECKBOX | WS_DISABLED | + WS_TABSTOP,61,41,37,10 + CONTROL "ЦП 10",IDC_CPU10,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,61,54,41,10 + CONTROL "ЦП 11",IDC_CPU11,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,61,67,41,10 + CONTROL "ЦП 12",IDC_CPU12,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,61,80,41,10 + CONTROL "ЦП 13",IDC_CPU13,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,61,93,41,10 + CONTROL "ЦП 14",IDC_CPU14,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,61,106,41,10 + CONTROL "ЦП 15",IDC_CPU15,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,61,119,41,10 + CONTROL "ЦП 16",IDC_CPU16,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,28,41,10 + CONTROL "ЦП 17",IDC_CPU17,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,41,41,10 + CONTROL "ЦП 18",IDC_CPU18,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,54,41,10 + CONTROL "ЦП 19",IDC_CPU19,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,67,41,10 + CONTROL "ЦП 20",IDC_CPU20,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,80,41,10 + CONTROL "ЦП 21",IDC_CPU21,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,93,41,10 + CONTROL "ЦП 22",IDC_CPU22,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,106,41,10 + CONTROL "ЦП 23",IDC_CPU23,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,116,119,41,10 + CONTROL "ЦП 24",IDC_CPU24,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,28,41,10 + CONTROL "ЦП 25",IDC_CPU25,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,41,41,10 + CONTROL "ЦП 26",IDC_CPU26,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,54,41,10 + CONTROL "ЦП 27",IDC_CPU27,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,67,41,10 + CONTROL "ЦП 28",IDC_CPU28,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,80,41,10 + CONTROL "ЦП 29",IDC_CPU29,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,93,41,10 + CONTROL "ЦП 30",IDC_CPU30,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,106,41,10 + CONTROL "ЦП 31",IDC_CPU31,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,175,119,41,10 +END + +IDD_COLUMNS_DIALOG DIALOG DISCARDABLE 0, 0, 195, 199 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Вибір стовпців" +FONT 8, "Tahoma" +BEGIN + DEFPUSHBUTTON "OK",IDOK,84,178,50,14 + PUSHBUTTON "Скасувати",IDCANCEL,138,178,50,14 + LTEXT "Виберіть стовпці, які слід відображати на вкладці Процес диспетчера завдань.", + IDC_STATIC,7,7,181,17 + CONTROL "&Ім'я образу",IDC_IMAGENAME,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,7,28,56,10 + CONTROL "Іденти&ф. процесу (PID)",IDC_PID,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,39,88,10 + CONTROL "&Використання ЦП",IDC_CPUUSAGE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,50,53,10 + CONTROL "&Час ЦП",IDC_CPUTIME,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,61,48,10 + CONTROL "&Пам'ять - використання",IDC_MEMORYUSAGE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,72,63,10 + CONTROL "Пам'ять - змі&на",IDC_MEMORYUSAGEDELTA,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,83,82,10 + CONTROL "Пам'ять - &максимум",IDC_PEAKMEMORYUSAGE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,94,82,10 + CONTROL "П&омилок сторінки",IDC_PAGEFAULTS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,105,53,10 + CONTROL "О&б'єкти USER",IDC_USEROBJECTS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,116,62,10 + CONTROL "Кількість читань",IDC_IOREADS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,127,49,10 + CONTROL "Прочитано байтів",IDC_IOREADBYTES,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,138,65,10 + CONTROL "Код се&ансу",IDC_SESSIONID,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,149,50,10 + CONTROL "Ім'&я користувача",IDC_USERNAME,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,160,51,10 + CONTROL "Помилок &сторінки - зміна",IDC_PAGEFAULTSDELTA,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,107,28,72,10 + CONTROL "Об'єм віртуал&ьної пам'яті",IDC_VIRTUALMEMORYSIZE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,107,39,77,10 + CONTROL "Виванта&жуваний пул",IDC_PAGEDPOOL,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,107,50,53,10 + CONTROL "Невивантаж&уваний пул",IDC_NONPAGEDPOOL,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,107,61,67,10 + CONTROL "Базови&й пріоритет",IDC_BASEPRIORITY,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,107,72,55,10 + CONTROL "Лічильник &дескрипторів",IDC_HANDLECOUNT,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,107,83,59,10 + CONTROL "&Лічильник потоків",IDC_THREADCOUNT,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,107,94,59,10 + CONTROL "Об'&єкти GDI",IDC_GDIOBJECTS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,107,105,55,10 + CONTROL "Кількість записів",IDC_IOWRITES,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,107,116,49,10 + CONTROL "Записано байтів",IDC_IOWRITEBYTES,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,107,127,65,10 + CONTROL "Інший ввід-вивід",IDC_IOOTHER,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,107,138,46,10 + CONTROL "Інших байтів під час вводу-виводу",IDC_IOOTHERBYTES,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,107,149,65,10 +END + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" + "#include ""windows.h""\r\n" + "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" + "#include ""resource.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "\r\n" + "\0" +END + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_ABOUTBOX, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 252 + TOPMARGIN, 7 + BOTTOMMARGIN, 203 + END + + IDD_TASKMGR_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 3 + RIGHTMARGIN, 260 + TOPMARGIN, 3 + BOTTOMMARGIN, 231 + END + + IDD_APPLICATION_PAGE, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 240 + TOPMARGIN, 7 + BOTTOMMARGIN, 203 + END + + IDD_PROCESS_PAGE, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 240 + TOPMARGIN, 7 + BOTTOMMARGIN, 203 + END + + IDD_PERFORMANCE_PAGE, DIALOG + BEGIN + LEFTMARGIN, 5 + RIGHTMARGIN, 242 + VERTGUIDE, 12 + VERTGUIDE, 65 + VERTGUIDE, 110 + TOPMARGIN, 5 + BOTTOMMARGIN, 205 + END + + IDD_AFFINITY_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 224 + VERTGUIDE, 11 + VERTGUIDE, 61 + VERTGUIDE, 116 + VERTGUIDE, 175 + TOPMARGIN, 7 + BOTTOMMARGIN, 147 + HORZGUIDE, 28 + HORZGUIDE, 38 + HORZGUIDE, 51 + HORZGUIDE, 64 + HORZGUIDE, 77 + HORZGUIDE, 90 + HORZGUIDE, 103 + HORZGUIDE, 116 + HORZGUIDE, 129 + END + + IDD_COLUMNS_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 188 + VERTGUIDE, 107 + TOPMARGIN, 7 + BOTTOMMARGIN, 192 + HORZGUIDE, 28 + END +END +#endif // APSTUDIO_INVOKED + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_APP_TITLE "Диспетчер завдань" + IDC_TASKMGR "Диспетчер завдань" + IDS_IDLE_PROCESS "Недіяння системи" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_FILE_NEW "Запускає нову програму" + ID_OPTIONS_ALWAYSONTOP "Вікно диспетчера завдань залишається поверх інших вікон, якщо його не згорнуто" + ID_OPTIONS_MINIMIZEONUSE + "Вікно диспетчера завдань згортається при переключенні" + ID_OPTIONS_HIDEWHENMINIMIZED "Приховування згорнутого вікна диспетчера завдань" + ID_VIEW_REFRESH "Спричинює негайне оновлення вікна диспетчера завдань" + ID_VIEW_LARGE "Показує завдання великими значками" + ID_VIEW_SMALL "Показує завдання малими значками" + ID_VIEW_DETAILS "Показує додаткові відомості про кожне завдання" + ID_VIEW_UPDATESPEED_HIGH "Оновлює зображення двічі на секунду" + ID_VIEW_UPDATESPEED_NORMAL "Оновлює зображення раз на дві секунди" + ID_VIEW_UPDATESPEED_LOW "Оновлює зображення раз на чотири секунди" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_VIEW_UPDATESPEED_PAUSED "Не оновлювати автоматично" + ID_WINDOWS_TILEHORIZONTALLY + "Розташовує вікна горизонтально на робочому столі" + ID_WINDOWS_TILEVERTICALLY "Розташовує вікна вертикально на робочому столі" + ID_WINDOWS_MINIMIZE "Згортає вікна" + ID_WINDOWS_MAXIMIZE "Розгортає вікна" + ID_WINDOWS_CASCADE "Розташовує вікна каскадом на робочому столі" + ID_WINDOWS_BRINGTOFRONT "Переміщення вікна на передній план без переходу до нього" + ID_HELP_TOPICS "Показує довідку диспетчера завдань" + ID_HELP_ABOUT "Показує відомості про програму, її версію та авторські права" + ID_FILE_EXIT "Закриває диспетчер завдань" + ID_OPTIONS_SHOW16BITTASKS + "Показ 16-розрядних завдань, які обробляє ntvdm.exe" + ID_VIEW_SELECTCOLUMNS "Виберіть стовпці, які слід відображати на вкладці Процеси" + ID_VIEW_SHOWKERNELTIMES "Показує час ядра на графіках продуктивності" + ID_VIEW_CPUHISTORY_ONEGRAPHALL + "Єдиний хронологічний графік загального використання ЦП" + ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU "Кожний ЦП має власний хронологічний графік" + ID_APPLICATION_PAGE_SWITCHTO + "Переміщення завдання на передній план і передача керування цьому завданню" +END + +STRINGTABLE DISCARDABLE +BEGIN + ID_ENDTASK "Наказує вибраним завданням закритися" + ID_GOTOPROCESS "Передача фокуса до процесу вибраного завдання" + ID_RESTORE "Відновлення прихованого вікна диспетчера завдань" + ID_PROCESS_PAGE_ENDPROCESS "Видаляє процес із системи" + ID_PROCESS_PAGE_ENDPROCESSTREE + "Видаляє із системи цей процес і всіх його нащадків" + ID_PROCESS_PAGE_DEBUG "Застосовує налагоджувач до цього процесу" + ID_PROCESS_PAGE_SETAFFINITY + "Визначає, які процесори може використовувати процес" + ID_PROCESS_PAGE_SETPRIORITY_REALTIME + "Установлює клас пріоритету \"Реального часу\" для процесу" + ID_PROCESS_PAGE_SETPRIORITY_HIGH "Установлює клас пріоритету \"Високий\" для процесу" + ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL + "Установлює клас пріоритету \"Вище середнього\" для процесу" + ID_PROCESS_PAGE_SETPRIORITY_NORMAL + "Установлює клас пріоритету \"Середній\" для процесу" + ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL + "Установлює клас пріоритету \"Нижче середнього\" для процесу" + ID_PROCESS_PAGE_SETPRIORITY_LOW "Установлює клас пріоритету \"Низький\" для процесу" + IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA." +END + + +STRINGTABLE DISCARDABLE +BEGIN + IDS_TAB_APPS "Додатки" + IDS_TAB_PROCESSES "Процеси" + IDS_TAB_PERFORMANCE "Швидкодія" + IDS_TAB_TASK "Завдання" + IDS_TAB_STATUS "Стан" + IDS_TAB_IMAGENAME "Ім'я образу" + IDS_TAB_PID "PID" + IDS_TAB_USERNAME "Ім'я користувача" + IDS_TAB_SESSIONID "Код сеансу" + IDS_TAB_CPU "ЦП" + IDS_TAB_CPUTIME "Час ЦП" + IDS_TAB_MEMUSAGE "Пам'ять" + IDS_TAB_PEAKMEMUSAGE "Пікове використання пам'яті" + IDS_TAB_MEMDELTA "Пам'ять (змін)" + IDS_TAB_PAGEFAULT "Пом.ст." + IDS_TAB_PFDELTA "Пом.ст.(змін)" + IDS_TAB_VMSIZE "Вірт.п." + IDS_TAB_PAGEDPOOL "Вив.пул" + IDS_TAB_NPPOOL "Невив.пул" + IDS_TAB_BASEPRI "Баз.пр." + IDS_TAB_HANDLES "Дескр." + IDS_TAB_THREADS "Потоків" + IDS_TAB_USERPBJECTS "Об'єкти USER" + IDS_TAB_GDIOBJECTS "Об'єкти GDI" + IDS_TAB_IOREADS "Кількість читань" + IDS_TAB_IOWRITES "Кількість записів" + IDS_TAB_IOOTHER "Інший ввід-вивід" + IDS_TAB_IOREADBYTES "Прочитано байтів" + IDS_TAB_IOWRITESBYTES "Записано байтів" + IDS_TAB_IOOTHERBYTES "Інших байтів під час вводу-виводу" + IDS_MENU_SELECTCOLUMNS "В&ибрати стовпці..." + IDS_MENU_16BITTASK "&Відображати 16-розрядні завдання" + IDS_MENU_WINDOWS "В&ікна" + IDS_MENU_LARGEICONS "&Великі значки" + IDS_MENU_SMALLICONS "&Дрібні значки" + IDS_MENU_DETAILS "&Таблиця" + IDS_MENU_ONEGRAPHALLCPUS "&Один графік для всіх ЦП" + IDS_MENU_ONEGRAPHPERCPU "Окремий &графік для кожного ЦП" + IDS_MENU_CPUHISTORY "&Хронологія ЦП" + IDS_MENU_SHOWKERNELTIMES "&Вивід часу ядра" + IDS_CREATENEWTASK "Створити нове завдання" + IDS_CREATENEWTASK_DESC "Введіть ім'я програми, папки, документа або ресурсу Інтернету, і Диспетчер завдань відкриє їх." + IDS_MSG_ACCESSPROCESSAFF "Не вдалося отримати доступ або установити належність процесу" + IDS_MSG_PROCESSONEPRO "Процесу має відповідати принаймні один процесор." + IDS_MSG_INVALIDOPTION "Неправильний параметр" + IDS_MSG_UNABLEDEBUGPROCESS "Не вдається налагодити процес" + IDS_MSG_WARNINGDEBUG "УВАГА! Налагодження цього процесу може спричинити втрату даних.\nВи дійсно бажаєте застосувати налагоджувач?" + IDS_MSG_TASKMGRWARNING "Попередження диспетчера завдань" + IDS_MSG_WARNINGTERMINATING "УВАГА! Припинення процесу може призвести до \nнебажаних наслідків, включаючи втрату даних і \nнестабільну роботу системи. Процес не зможе \nзберегти свій стан або дані перед припиненням. \nВи дійсно бажаєте припинити процес?" + IDS_MSG_UNABLETERMINATEPRO "Неможливо завершити процес" + IDS_MSG_UNABLECHANGEPRIORITY "Неможливо змінити пріоритет" + IDS_MSG_WARNINGCHANGEPRIORITY "УВАГА! Зміна класу пріоритету цього процесу може призвести до \nнебажаних наслідків, включаючи нестабільну роботу \nсистеми. Ви дійсно бажаєте змінити пріоритет класу?" + IDS_MSG_TRAYICONCPUUSAGE "Використання ЦП: %d%%" + IDS_STATUS_MEMUSAGE "Пам'ять: %dK / %dK" + IDS_STATUS_CPUUSAGE "Використання ЦП: %3d%%" + IDS_STATUS_PROCESSES "Процесів: %d" + IDS_Not_Responding "Не відповідає" + IDS_Running "Виконується" +END + + +#endif // Ukrainian resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/reactos/base/applications/testsets/rpcrt4/context_handles/client.c b/reactos/base/applications/testsets/rpcrt4/context_handles/client.c index d0af42e6564..8cfb261fe6a 100644 --- a/reactos/base/applications/testsets/rpcrt4/context_handles/client.c +++ b/reactos/base/applications/testsets/rpcrt4/context_handles/client.c @@ -1,457 +1,457 @@ -#include -#include -#include -#include "ctx.h" - -#define TYPE_FORMAT_STRING_SIZE 23 -#define PROC_FORMAT_STRING_SIZE 21 -#define TRANSMIT_AS_TABLE_SIZE 0 -#define WIRE_MARSHAL_TABLE_SIZE 0 - -typedef struct _MIDL_TYPE_FORMAT_STRING - { - short Pad; - unsigned char Format[ TYPE_FORMAT_STRING_SIZE ]; - } MIDL_TYPE_FORMAT_STRING; - -typedef struct _MIDL_PROC_FORMAT_STRING - { - short Pad; - unsigned char Format[ PROC_FORMAT_STRING_SIZE ]; -} MIDL_PROC_FORMAT_STRING; - -extern const MIDL_STUB_DESC hello_StubDesc; -extern const MIDL_PROC_FORMAT_STRING __MIDL_ProcFormatString; -//extern const MIDL_TYPE_FORMAT_STRING __MIDL_TypeFormatString;*/ - -/***************************************************************** - * Modified from midl-generated stubs * - *****************************************************************/ - - -void m_CtxOpen( - /* [out] */ PCTXTYPE __RPC_FAR *pphContext, - /* [in] */ long Value) -{ - RPC_BINDING_HANDLE _Handle = 0; - - RPC_MESSAGE _RpcMessage; - - MIDL_STUB_MESSAGE _StubMsg; - - char *ctx, *buf; - int i; - - printf("\n*******************************************************************\n"); - printf("**** CtxOpen() ***\n"); - printf("*******************************************************************\n\n"); - - if(!pphContext) - { - RpcRaiseException(RPC_X_NULL_REF_POINTER); - } - RpcTryFinally - { - NdrClientInitializeNew( - ( PRPC_MESSAGE )&_RpcMessage, - ( PMIDL_STUB_MESSAGE )&_StubMsg, - ( PMIDL_STUB_DESC )&hello_StubDesc, - 0); - - - _Handle = hBinding; - - - _StubMsg.BufferLength = 4U; - NdrGetBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg, _StubMsg.BufferLength, _Handle ); - - *(( long __RPC_FAR * )_StubMsg.Buffer)++ = Value; - - NdrSendReceive( (PMIDL_STUB_MESSAGE) &_StubMsg, (unsigned char __RPC_FAR *) _StubMsg.Buffer ); - - if ( (_RpcMessage.DataRepresentation & 0X0000FFFFUL) != NDR_LOCAL_DATA_REPRESENTATION ) - NdrConvert( (PMIDL_STUB_MESSAGE) &_StubMsg, (PFORMAT_STRING) &__MIDL_ProcFormatString.Format[0] ); - - - printf("Before NdrClientContextUnmarshall: Buflen=%d\nBuffer: ", _StubMsg.RpcMsg->BufferLength); - for(buf = _StubMsg.Buffer, i = 0; i < _StubMsg.RpcMsg->BufferLength; i++) - printf("0x%x, ", buf[i] & 0x0FF); - printf("\n\n"); - - *pphContext = (void *)0; - NdrClientContextUnmarshall( - ( PMIDL_STUB_MESSAGE )&_StubMsg, - ( NDR_CCONTEXT __RPC_FAR * )pphContext, - _Handle); - - ctx = (char*)*pphContext; - printf("\nNdrClientContextUnmarshall returned: handle=0x%p\n", ctx); - printf("00: 0x%x <- obviously pointer to binding handle copyed from _Handle\n", *((int*)ctx)); - ctx+=4; - printf("04: 0x%x <- unknown field\n", *((int*)ctx)); - printf("08: "); - - for(ctx+=4, i = 0; i < 20; i++) - printf("0x%x,", *(ctx+i) & 0x0FF); printf(" <- ndr 20 bytes\n\n"); - - printf("Buflen=%d, Buffer: ", _StubMsg.BufferLength); - for(buf = _StubMsg.BufferStart; buf < _StubMsg.BufferEnd; buf++) - printf("0x%x,", *buf & 0x0FF); - printf("\n"); - - - } - RpcFinally - { - NdrFreeBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg ); - - } - RpcEndFinally - -} - -void m_CtxOpen2( - /* [out] */ PCTXTYPE __RPC_FAR *pphContext, - /* [in] */ long Value) -{ - - RPC_BINDING_HANDLE _Handle = 0; - - RPC_MESSAGE _RpcMessage; - - MIDL_STUB_MESSAGE _StubMsg; - - char buf[255]; - - NdrClientInitializeNew( - ( PRPC_MESSAGE )&_RpcMessage, - ( PMIDL_STUB_MESSAGE )&_StubMsg, - ( PMIDL_STUB_DESC )&hello_StubDesc, - 0); - - - _Handle = hBinding; - - - _StubMsg.BufferLength = 4U; - NdrGetBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg, _StubMsg.BufferLength, _Handle ); - - *(( long __RPC_FAR * )_StubMsg.Buffer)++ = Value; - - NdrSendReceive( (PMIDL_STUB_MESSAGE) &_StubMsg, (unsigned char __RPC_FAR *) _StubMsg.Buffer ); - - if ( (_RpcMessage.DataRepresentation & 0X0000FFFFUL) != NDR_LOCAL_DATA_REPRESENTATION ) - NdrConvert( (PMIDL_STUB_MESSAGE) &_StubMsg, (PFORMAT_STRING) &__MIDL_ProcFormatString.Format[0] ); - - *pphContext = (void *)0; - - RpcTryExcept - { - NdrClientContextUnmarshall( - ( PMIDL_STUB_MESSAGE )&_StubMsg, - NULL, - _Handle); - } - RpcExcept(1) - { - printf("NdrClientContextUnmarshall reported exception = %d\n", RpcExceptionCode()); - } - RpcEndExcept - - - - RpcTryExcept - { - NdrClientContextUnmarshall( - ( PMIDL_STUB_MESSAGE )&_StubMsg, - (NDR_CCONTEXT __RPC_FAR * )pphContext, - NULL); - } - RpcExcept(1) - { - printf("NdrClientContextUnmarshall reported exception = %d\n", RpcExceptionCode()); - } - RpcEndExcept - - - RpcTryExcept - { - NdrClientContextMarshall( - ( PMIDL_STUB_MESSAGE )&_StubMsg, - NULL, - 1); - } - RpcExcept(1) - { - printf("NdrClientContextMarshall reported exception = %d\n", RpcExceptionCode()); - } - RpcEndExcept - - RpcTryExcept - { - NDRCContextUnmarshall( NULL, _Handle, buf, _RpcMessage.DataRepresentation ); - } - RpcExcept(1) - { - printf("NDRCContextUnmarshall reported exception = %d\n", RpcExceptionCode()); - } - RpcEndExcept - - - NdrFreeBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg ); - - -} - -void m_CtxHello( - /* [in] */ PCTXTYPE phContext) -{ - - RPC_BINDING_HANDLE _Handle = 0; - - RPC_MESSAGE _RpcMessage; - - MIDL_STUB_MESSAGE _StubMsg; - - char *buf; - int i; - - printf("\n*******************************************************************\n"); - printf("**** CtxHello() ***\n"); - printf("*******************************************************************\n\n"); - - RpcTryFinally - { - NdrClientInitializeNew( - ( PRPC_MESSAGE )&_RpcMessage, - ( PMIDL_STUB_MESSAGE )&_StubMsg, - ( PMIDL_STUB_DESC )&hello_StubDesc, - 1); - - - if(phContext != 0) - { - _Handle = NDRCContextBinding(( NDR_CCONTEXT )phContext);; - - } - else - { - RpcRaiseException(RPC_X_SS_IN_NULL_CONTEXT); - } - - _StubMsg.BufferLength = 20U; - NdrGetBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg, _StubMsg.BufferLength, _Handle ); - - NdrClientContextMarshall( - ( PMIDL_STUB_MESSAGE )&_StubMsg, - ( NDR_CCONTEXT )phContext, - 1); - printf("After NdrClientContextMarshall: Buflen=%d\nBuffer: ", _StubMsg.BufferLength ); - for(buf = _StubMsg.Buffer, i = 0; i < _StubMsg.BufferLength; i++) - printf("0x%x, ", buf[i] & 0x0FF); - printf("\n\n"); - - NdrSendReceive( (PMIDL_STUB_MESSAGE) &_StubMsg, (unsigned char __RPC_FAR *) _StubMsg.Buffer ); - - } - RpcFinally - { - NdrFreeBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg ); - - } - RpcEndFinally - -} - - -void m_CtxClose( - /* [out][in] */ PCTXTYPE __RPC_FAR *pphContext) -{ - - RPC_BINDING_HANDLE _Handle = 0; - - RPC_MESSAGE _RpcMessage; - - MIDL_STUB_MESSAGE _StubMsg; - char *buf; - int i; - - printf("\n*******************************************************************\n"); - printf("**** CtxClose() ***\n"); - printf("*******************************************************************\n\n"); - - if(!pphContext) - { - RpcRaiseException(RPC_X_NULL_REF_POINTER); - } - RpcTryFinally - { - NdrClientInitializeNew( - ( PRPC_MESSAGE )&_RpcMessage, - ( PMIDL_STUB_MESSAGE )&_StubMsg, - ( PMIDL_STUB_DESC )&hello_StubDesc, - 2); - - - if(*pphContext != 0) - { - _Handle = NDRCContextBinding(( NDR_CCONTEXT )*pphContext);; - - } - - _StubMsg.BufferLength = 20U; - NdrGetBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg, _StubMsg.BufferLength, _Handle ); - - NdrClientContextMarshall( - ( PMIDL_STUB_MESSAGE )&_StubMsg, - ( NDR_CCONTEXT )*pphContext, - 0); - - NdrSendReceive( (PMIDL_STUB_MESSAGE) &_StubMsg, (unsigned char __RPC_FAR *) _StubMsg.Buffer ); - - if ( (_RpcMessage.DataRepresentation & 0X0000FFFFUL) != NDR_LOCAL_DATA_REPRESENTATION ) - NdrConvert( (PMIDL_STUB_MESSAGE) &_StubMsg, (PFORMAT_STRING) &__MIDL_ProcFormatString.Format[14] ); - - - printf("Before NdrClientContextUnmarshall: Buflen=%d\nBuffer: ", _StubMsg.BufferLength ); - for(buf = _StubMsg.Buffer, i = 0; i < _StubMsg.BufferLength; i++) - printf("0x%x, ", buf[i] & 0x0FF); - printf("\n\n"); - - NdrClientContextUnmarshall( - ( PMIDL_STUB_MESSAGE )&_StubMsg, - ( NDR_CCONTEXT __RPC_FAR * )pphContext, - _Handle); - - - printf("\nNdrClientContextUnmarshall returned: handle=0x%p\n", *pphContext); - - - } - RpcFinally - { - NdrFreeBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg ); - - } - RpcEndFinally - -} - -int interactive = 0; -void interact() -{ - if(interactive) - { - printf("\nPress any key to continue..."); - getch(); - printf("\n\n"); - } -} - -void main(int argc, char **argv) -{ - RPC_STATUS status; - unsigned long ulCode; - PCTXTYPE hContext; - char *pszStringBinding = NULL; - RPC_BINDING_HANDLE Handle = 0; - char buffer[255]; - - int test_num = 0; - int test_value = 31337; - - if(argc<2) - { - printf("USAGE: client.exe [test_value] [interactive]\n" - "Available tests:\n" - "0. General test\n" - "1. NULL pointer test\n" - "2. Context rundown routine"); - return; - } - - test_num = atoi(argv[1]); - if(argc>2) test_value = atoi(argv[2]); - if(argc>3) interactive = 1; - - status = RpcStringBindingCompose(NULL, - "ncacn_np", - NULL, - "\\pipe\\hello", - NULL, - &pszStringBinding); - - if (status) - { - printf("RpcStringBindingCompose %x\n", status); - exit(status); - } - - status = RpcBindingFromStringBinding(pszStringBinding, &hBinding); - - if (status) - { - printf("RpcBindingFromStringBinding %x\n", status); - exit(status); - } - - RpcStringFree(&pszStringBinding); - - switch(test_num) - { - case 0: - m_CtxOpen(&hContext, test_value); - RpcBindingFree(&hBinding); - m_CtxHello(hContext); - interact(); - m_CtxClose(&hContext); - break; - case 1: - ///////////////////////////////////////////////////////////////////////////////////////// - RpcTryExcept - { - Handle = NDRCContextBinding(NULL); - printf("NDRCContextBinding(NULL) returned %p\n", Handle); - } - RpcExcept(1) - { - printf("NDRCContextBinding(NULL) reported exception = %d\n", RpcExceptionCode()); - } - RpcEndExcept - - m_CtxOpen2(&hContext, test_value); - - ///////////////////////////////////////////////////////////////////////////////////////// - RpcTryExcept - { - NDRCContextMarshall(NULL, &buffer); - printf("NDRCContextMarshall(NULL) returned %p\n", Handle); - } - RpcExcept(1) - { - printf("NDRCContextMarshall(NULL) reported exception = %d\n", RpcExceptionCode()); - } - RpcEndExcept - ///////////////////////////////////////////////////////////////////////////////////////// - break; - case 2: - CtxOpen(&hContext, test_value); - interact(); - ExitProcess(0); - break; - default: - printf("Unknown test %d\n", test_num); - } - -} - - -void __RPC_FAR * __RPC_USER midl_user_allocate(size_t len) -{ - return(malloc(len)); -} - -void __RPC_USER midl_user_free(void __RPC_FAR * ptr) -{ - free(ptr); -} +#include +#include +#include +#include "ctx.h" + +#define TYPE_FORMAT_STRING_SIZE 23 +#define PROC_FORMAT_STRING_SIZE 21 +#define TRANSMIT_AS_TABLE_SIZE 0 +#define WIRE_MARSHAL_TABLE_SIZE 0 + +typedef struct _MIDL_TYPE_FORMAT_STRING + { + short Pad; + unsigned char Format[ TYPE_FORMAT_STRING_SIZE ]; + } MIDL_TYPE_FORMAT_STRING; + +typedef struct _MIDL_PROC_FORMAT_STRING + { + short Pad; + unsigned char Format[ PROC_FORMAT_STRING_SIZE ]; +} MIDL_PROC_FORMAT_STRING; + +extern const MIDL_STUB_DESC hello_StubDesc; +extern const MIDL_PROC_FORMAT_STRING __MIDL_ProcFormatString; +//extern const MIDL_TYPE_FORMAT_STRING __MIDL_TypeFormatString;*/ + +/***************************************************************** + * Modified from midl-generated stubs * + *****************************************************************/ + + +void m_CtxOpen( + /* [out] */ PCTXTYPE __RPC_FAR *pphContext, + /* [in] */ long Value) +{ + RPC_BINDING_HANDLE _Handle = 0; + + RPC_MESSAGE _RpcMessage; + + MIDL_STUB_MESSAGE _StubMsg; + + char *ctx, *buf; + int i; + + printf("\n*******************************************************************\n"); + printf("**** CtxOpen() ***\n"); + printf("*******************************************************************\n\n"); + + if(!pphContext) + { + RpcRaiseException(RPC_X_NULL_REF_POINTER); + } + RpcTryFinally + { + NdrClientInitializeNew( + ( PRPC_MESSAGE )&_RpcMessage, + ( PMIDL_STUB_MESSAGE )&_StubMsg, + ( PMIDL_STUB_DESC )&hello_StubDesc, + 0); + + + _Handle = hBinding; + + + _StubMsg.BufferLength = 4U; + NdrGetBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg, _StubMsg.BufferLength, _Handle ); + + *(( long __RPC_FAR * )_StubMsg.Buffer)++ = Value; + + NdrSendReceive( (PMIDL_STUB_MESSAGE) &_StubMsg, (unsigned char __RPC_FAR *) _StubMsg.Buffer ); + + if ( (_RpcMessage.DataRepresentation & 0X0000FFFFUL) != NDR_LOCAL_DATA_REPRESENTATION ) + NdrConvert( (PMIDL_STUB_MESSAGE) &_StubMsg, (PFORMAT_STRING) &__MIDL_ProcFormatString.Format[0] ); + + + printf("Before NdrClientContextUnmarshall: Buflen=%d\nBuffer: ", _StubMsg.RpcMsg->BufferLength); + for(buf = _StubMsg.Buffer, i = 0; i < _StubMsg.RpcMsg->BufferLength; i++) + printf("0x%x, ", buf[i] & 0x0FF); + printf("\n\n"); + + *pphContext = (void *)0; + NdrClientContextUnmarshall( + ( PMIDL_STUB_MESSAGE )&_StubMsg, + ( NDR_CCONTEXT __RPC_FAR * )pphContext, + _Handle); + + ctx = (char*)*pphContext; + printf("\nNdrClientContextUnmarshall returned: handle=0x%p\n", ctx); + printf("00: 0x%x <- obviously pointer to binding handle copyed from _Handle\n", *((int*)ctx)); + ctx+=4; + printf("04: 0x%x <- unknown field\n", *((int*)ctx)); + printf("08: "); + + for(ctx+=4, i = 0; i < 20; i++) + printf("0x%x,", *(ctx+i) & 0x0FF); printf(" <- ndr 20 bytes\n\n"); + + printf("Buflen=%d, Buffer: ", _StubMsg.BufferLength); + for(buf = _StubMsg.BufferStart; buf < _StubMsg.BufferEnd; buf++) + printf("0x%x,", *buf & 0x0FF); + printf("\n"); + + + } + RpcFinally + { + NdrFreeBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg ); + + } + RpcEndFinally + +} + +void m_CtxOpen2( + /* [out] */ PCTXTYPE __RPC_FAR *pphContext, + /* [in] */ long Value) +{ + + RPC_BINDING_HANDLE _Handle = 0; + + RPC_MESSAGE _RpcMessage; + + MIDL_STUB_MESSAGE _StubMsg; + + char buf[255]; + + NdrClientInitializeNew( + ( PRPC_MESSAGE )&_RpcMessage, + ( PMIDL_STUB_MESSAGE )&_StubMsg, + ( PMIDL_STUB_DESC )&hello_StubDesc, + 0); + + + _Handle = hBinding; + + + _StubMsg.BufferLength = 4U; + NdrGetBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg, _StubMsg.BufferLength, _Handle ); + + *(( long __RPC_FAR * )_StubMsg.Buffer)++ = Value; + + NdrSendReceive( (PMIDL_STUB_MESSAGE) &_StubMsg, (unsigned char __RPC_FAR *) _StubMsg.Buffer ); + + if ( (_RpcMessage.DataRepresentation & 0X0000FFFFUL) != NDR_LOCAL_DATA_REPRESENTATION ) + NdrConvert( (PMIDL_STUB_MESSAGE) &_StubMsg, (PFORMAT_STRING) &__MIDL_ProcFormatString.Format[0] ); + + *pphContext = (void *)0; + + RpcTryExcept + { + NdrClientContextUnmarshall( + ( PMIDL_STUB_MESSAGE )&_StubMsg, + NULL, + _Handle); + } + RpcExcept(1) + { + printf("NdrClientContextUnmarshall reported exception = %d\n", RpcExceptionCode()); + } + RpcEndExcept + + + + RpcTryExcept + { + NdrClientContextUnmarshall( + ( PMIDL_STUB_MESSAGE )&_StubMsg, + (NDR_CCONTEXT __RPC_FAR * )pphContext, + NULL); + } + RpcExcept(1) + { + printf("NdrClientContextUnmarshall reported exception = %d\n", RpcExceptionCode()); + } + RpcEndExcept + + + RpcTryExcept + { + NdrClientContextMarshall( + ( PMIDL_STUB_MESSAGE )&_StubMsg, + NULL, + 1); + } + RpcExcept(1) + { + printf("NdrClientContextMarshall reported exception = %d\n", RpcExceptionCode()); + } + RpcEndExcept + + RpcTryExcept + { + NDRCContextUnmarshall( NULL, _Handle, buf, _RpcMessage.DataRepresentation ); + } + RpcExcept(1) + { + printf("NDRCContextUnmarshall reported exception = %d\n", RpcExceptionCode()); + } + RpcEndExcept + + + NdrFreeBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg ); + + +} + +void m_CtxHello( + /* [in] */ PCTXTYPE phContext) +{ + + RPC_BINDING_HANDLE _Handle = 0; + + RPC_MESSAGE _RpcMessage; + + MIDL_STUB_MESSAGE _StubMsg; + + char *buf; + int i; + + printf("\n*******************************************************************\n"); + printf("**** CtxHello() ***\n"); + printf("*******************************************************************\n\n"); + + RpcTryFinally + { + NdrClientInitializeNew( + ( PRPC_MESSAGE )&_RpcMessage, + ( PMIDL_STUB_MESSAGE )&_StubMsg, + ( PMIDL_STUB_DESC )&hello_StubDesc, + 1); + + + if(phContext != 0) + { + _Handle = NDRCContextBinding(( NDR_CCONTEXT )phContext);; + + } + else + { + RpcRaiseException(RPC_X_SS_IN_NULL_CONTEXT); + } + + _StubMsg.BufferLength = 20U; + NdrGetBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg, _StubMsg.BufferLength, _Handle ); + + NdrClientContextMarshall( + ( PMIDL_STUB_MESSAGE )&_StubMsg, + ( NDR_CCONTEXT )phContext, + 1); + printf("After NdrClientContextMarshall: Buflen=%d\nBuffer: ", _StubMsg.BufferLength ); + for(buf = _StubMsg.Buffer, i = 0; i < _StubMsg.BufferLength; i++) + printf("0x%x, ", buf[i] & 0x0FF); + printf("\n\n"); + + NdrSendReceive( (PMIDL_STUB_MESSAGE) &_StubMsg, (unsigned char __RPC_FAR *) _StubMsg.Buffer ); + + } + RpcFinally + { + NdrFreeBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg ); + + } + RpcEndFinally + +} + + +void m_CtxClose( + /* [out][in] */ PCTXTYPE __RPC_FAR *pphContext) +{ + + RPC_BINDING_HANDLE _Handle = 0; + + RPC_MESSAGE _RpcMessage; + + MIDL_STUB_MESSAGE _StubMsg; + char *buf; + int i; + + printf("\n*******************************************************************\n"); + printf("**** CtxClose() ***\n"); + printf("*******************************************************************\n\n"); + + if(!pphContext) + { + RpcRaiseException(RPC_X_NULL_REF_POINTER); + } + RpcTryFinally + { + NdrClientInitializeNew( + ( PRPC_MESSAGE )&_RpcMessage, + ( PMIDL_STUB_MESSAGE )&_StubMsg, + ( PMIDL_STUB_DESC )&hello_StubDesc, + 2); + + + if(*pphContext != 0) + { + _Handle = NDRCContextBinding(( NDR_CCONTEXT )*pphContext);; + + } + + _StubMsg.BufferLength = 20U; + NdrGetBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg, _StubMsg.BufferLength, _Handle ); + + NdrClientContextMarshall( + ( PMIDL_STUB_MESSAGE )&_StubMsg, + ( NDR_CCONTEXT )*pphContext, + 0); + + NdrSendReceive( (PMIDL_STUB_MESSAGE) &_StubMsg, (unsigned char __RPC_FAR *) _StubMsg.Buffer ); + + if ( (_RpcMessage.DataRepresentation & 0X0000FFFFUL) != NDR_LOCAL_DATA_REPRESENTATION ) + NdrConvert( (PMIDL_STUB_MESSAGE) &_StubMsg, (PFORMAT_STRING) &__MIDL_ProcFormatString.Format[14] ); + + + printf("Before NdrClientContextUnmarshall: Buflen=%d\nBuffer: ", _StubMsg.BufferLength ); + for(buf = _StubMsg.Buffer, i = 0; i < _StubMsg.BufferLength; i++) + printf("0x%x, ", buf[i] & 0x0FF); + printf("\n\n"); + + NdrClientContextUnmarshall( + ( PMIDL_STUB_MESSAGE )&_StubMsg, + ( NDR_CCONTEXT __RPC_FAR * )pphContext, + _Handle); + + + printf("\nNdrClientContextUnmarshall returned: handle=0x%p\n", *pphContext); + + + } + RpcFinally + { + NdrFreeBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg ); + + } + RpcEndFinally + +} + +int interactive = 0; +void interact() +{ + if(interactive) + { + printf("\nPress any key to continue..."); + getch(); + printf("\n\n"); + } +} + +void main(int argc, char **argv) +{ + RPC_STATUS status; + unsigned long ulCode; + PCTXTYPE hContext; + char *pszStringBinding = NULL; + RPC_BINDING_HANDLE Handle = 0; + char buffer[255]; + + int test_num = 0; + int test_value = 31337; + + if(argc<2) + { + printf("USAGE: client.exe [test_value] [interactive]\n" + "Available tests:\n" + "0. General test\n" + "1. NULL pointer test\n" + "2. Context rundown routine"); + return; + } + + test_num = atoi(argv[1]); + if(argc>2) test_value = atoi(argv[2]); + if(argc>3) interactive = 1; + + status = RpcStringBindingCompose(NULL, + "ncacn_np", + NULL, + "\\pipe\\hello", + NULL, + &pszStringBinding); + + if (status) + { + printf("RpcStringBindingCompose %x\n", status); + exit(status); + } + + status = RpcBindingFromStringBinding(pszStringBinding, &hBinding); + + if (status) + { + printf("RpcBindingFromStringBinding %x\n", status); + exit(status); + } + + RpcStringFree(&pszStringBinding); + + switch(test_num) + { + case 0: + m_CtxOpen(&hContext, test_value); + RpcBindingFree(&hBinding); + m_CtxHello(hContext); + interact(); + m_CtxClose(&hContext); + break; + case 1: + ///////////////////////////////////////////////////////////////////////////////////////// + RpcTryExcept + { + Handle = NDRCContextBinding(NULL); + printf("NDRCContextBinding(NULL) returned %p\n", Handle); + } + RpcExcept(1) + { + printf("NDRCContextBinding(NULL) reported exception = %d\n", RpcExceptionCode()); + } + RpcEndExcept + + m_CtxOpen2(&hContext, test_value); + + ///////////////////////////////////////////////////////////////////////////////////////// + RpcTryExcept + { + NDRCContextMarshall(NULL, &buffer); + printf("NDRCContextMarshall(NULL) returned %p\n", Handle); + } + RpcExcept(1) + { + printf("NDRCContextMarshall(NULL) reported exception = %d\n", RpcExceptionCode()); + } + RpcEndExcept + ///////////////////////////////////////////////////////////////////////////////////////// + break; + case 2: + CtxOpen(&hContext, test_value); + interact(); + ExitProcess(0); + break; + default: + printf("Unknown test %d\n", test_num); + } + +} + + +void __RPC_FAR * __RPC_USER midl_user_allocate(size_t len) +{ + return(malloc(len)); +} + +void __RPC_USER midl_user_free(void __RPC_FAR * ptr) +{ + free(ptr); +} diff --git a/reactos/base/applications/testsets/rpcrt4/context_handles/ctx.acf b/reactos/base/applications/testsets/rpcrt4/context_handles/ctx.acf index 79f24ff7baa..c02c5d1a213 100644 --- a/reactos/base/applications/testsets/rpcrt4/context_handles/ctx.acf +++ b/reactos/base/applications/testsets/rpcrt4/context_handles/ctx.acf @@ -1,8 +1,8 @@ -//file hello.idl -[ - implicit_handle(handle_t hBinding) -] -interface hello -{ - +//file hello.idl +[ + implicit_handle(handle_t hBinding) +] +interface hello +{ + } \ No newline at end of file diff --git a/reactos/base/applications/testsets/rpcrt4/context_handles/ctx.h b/reactos/base/applications/testsets/rpcrt4/context_handles/ctx.h index a3c5495bdba..f92edbe6c31 100644 --- a/reactos/base/applications/testsets/rpcrt4/context_handles/ctx.h +++ b/reactos/base/applications/testsets/rpcrt4/context_handles/ctx.h @@ -1,80 +1,80 @@ - -#pragma warning( disable: 4049 ) /* more than 64k source lines */ - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 5.03.0280 */ -/* at Fri Mar 24 18:32:16 2006 - */ -/* Compiler settings for ctx.idl: - Os (OptLev=s), W1, Zp8, env=Win32 (32b run), ms_ext, c_ext - error checks: allocation ref bounds_check enum stub_data - VC __declspec() decoration level: - __declspec(uuid()), __declspec(selectany), __declspec(novtable) - DECLSPEC_UUID(), MIDL_INTERFACE() -*/ -//@@MIDL_FILE_HEADING( ) - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 440 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __ctx_h__ -#define __ctx_h__ - -/* Forward Declarations */ - -#ifdef __cplusplus -extern "C"{ -#endif - -void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t); -void __RPC_USER MIDL_user_free( void __RPC_FAR * ); - -#ifndef __hello_INTERFACE_DEFINED__ -#define __hello_INTERFACE_DEFINED__ - -/* interface hello */ -/* [implicit_handle][version][uuid] */ - -typedef long CTXTYPE; - -typedef /* [context_handle] */ CTXTYPE __RPC_FAR *PCTXTYPE; - -void CtxOpen( - /* [out] */ PCTXTYPE __RPC_FAR *pphContext, - /* [in] */ long Value); - -void CtxHello( - /* [in] */ PCTXTYPE phContext); - -void CtxClose( - /* [out][in] */ PCTXTYPE __RPC_FAR *pphContext); - - -extern handle_t hBinding; - - -extern RPC_IF_HANDLE hello_v1_0_c_ifspec; -extern RPC_IF_HANDLE hello_v1_0_s_ifspec; -#endif /* __hello_INTERFACE_DEFINED__ */ - -/* Additional Prototypes for ALL interfaces */ - -void __RPC_USER PCTXTYPE_rundown( PCTXTYPE ); - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - + +#pragma warning( disable: 4049 ) /* more than 64k source lines */ + +/* this ALWAYS GENERATED file contains the definitions for the interfaces */ + + + /* File created by MIDL compiler version 5.03.0280 */ +/* at Fri Mar 24 18:32:16 2006 + */ +/* Compiler settings for ctx.idl: + Os (OptLev=s), W1, Zp8, env=Win32 (32b run), ms_ext, c_ext + error checks: allocation ref bounds_check enum stub_data + VC __declspec() decoration level: + __declspec(uuid()), __declspec(selectany), __declspec(novtable) + DECLSPEC_UUID(), MIDL_INTERFACE() +*/ +//@@MIDL_FILE_HEADING( ) + + +/* verify that the version is high enough to compile this file*/ +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 440 +#endif + +#include "rpc.h" +#include "rpcndr.h" + +#ifndef __ctx_h__ +#define __ctx_h__ + +/* Forward Declarations */ + +#ifdef __cplusplus +extern "C"{ +#endif + +void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t); +void __RPC_USER MIDL_user_free( void __RPC_FAR * ); + +#ifndef __hello_INTERFACE_DEFINED__ +#define __hello_INTERFACE_DEFINED__ + +/* interface hello */ +/* [implicit_handle][version][uuid] */ + +typedef long CTXTYPE; + +typedef /* [context_handle] */ CTXTYPE __RPC_FAR *PCTXTYPE; + +void CtxOpen( + /* [out] */ PCTXTYPE __RPC_FAR *pphContext, + /* [in] */ long Value); + +void CtxHello( + /* [in] */ PCTXTYPE phContext); + +void CtxClose( + /* [out][in] */ PCTXTYPE __RPC_FAR *pphContext); + + +extern handle_t hBinding; + + +extern RPC_IF_HANDLE hello_v1_0_c_ifspec; +extern RPC_IF_HANDLE hello_v1_0_s_ifspec; +#endif /* __hello_INTERFACE_DEFINED__ */ + +/* Additional Prototypes for ALL interfaces */ + +void __RPC_USER PCTXTYPE_rundown( PCTXTYPE ); + +/* end of Additional Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif + + diff --git a/reactos/base/applications/testsets/rpcrt4/context_handles/ctx.idl b/reactos/base/applications/testsets/rpcrt4/context_handles/ctx.idl index e6cecc99933..e3226dde75e 100644 --- a/reactos/base/applications/testsets/rpcrt4/context_handles/ctx.idl +++ b/reactos/base/applications/testsets/rpcrt4/context_handles/ctx.idl @@ -1,19 +1,19 @@ -//file hello.idl -[ - uuid(7a98c250-6808-11cf-b73b-00aa00b677a7), - version(1.0) -] -interface hello -{ - -typedef long CTXTYPE; -typedef [context_handle] CTXTYPE *PCTXTYPE; - -void CtxOpen( [out] PCTXTYPE *pphContext, - [in] long Value); - -void CtxHello( [in] PCTXTYPE phContext ); - -void CtxClose( [in, out] PCTXTYPE *pphContext ); - +//file hello.idl +[ + uuid(7a98c250-6808-11cf-b73b-00aa00b677a7), + version(1.0) +] +interface hello +{ + +typedef long CTXTYPE; +typedef [context_handle] CTXTYPE *PCTXTYPE; + +void CtxOpen( [out] PCTXTYPE *pphContext, + [in] long Value); + +void CtxHello( [in] PCTXTYPE phContext ); + +void CtxClose( [in, out] PCTXTYPE *pphContext ); + } \ No newline at end of file diff --git a/reactos/base/applications/testsets/rpcrt4/context_handles/ctx_c.c b/reactos/base/applications/testsets/rpcrt4/context_handles/ctx_c.c index c177102acc4..69a8bd3204e 100644 --- a/reactos/base/applications/testsets/rpcrt4/context_handles/ctx_c.c +++ b/reactos/base/applications/testsets/rpcrt4/context_handles/ctx_c.c @@ -1,335 +1,335 @@ - -#pragma warning( disable: 4049 ) /* more than 64k source lines */ - -/* this ALWAYS GENERATED file contains the RPC client stubs */ - - - /* File created by MIDL compiler version 5.03.0280 */ -/* at Fri Mar 24 18:32:16 2006 - */ -/* Compiler settings for ctx.idl: - Os (OptLev=s), W1, Zp8, env=Win32 (32b run), ms_ext, c_ext - error checks: allocation ref bounds_check enum stub_data - VC __declspec() decoration level: - __declspec(uuid()), __declspec(selectany), __declspec(novtable) - DECLSPEC_UUID(), MIDL_INTERFACE() -*/ -//@@MIDL_FILE_HEADING( ) - -#if !defined(_M_IA64) && !defined(_M_AXP64) -#include -#if defined( _ALPHA_ ) -#include -#endif - -#include "ctx.h" - -#define TYPE_FORMAT_STRING_SIZE 23 -#define PROC_FORMAT_STRING_SIZE 21 -#define TRANSMIT_AS_TABLE_SIZE 0 -#define WIRE_MARSHAL_TABLE_SIZE 0 - -typedef struct _MIDL_TYPE_FORMAT_STRING - { - short Pad; - unsigned char Format[ TYPE_FORMAT_STRING_SIZE ]; - } MIDL_TYPE_FORMAT_STRING; - -typedef struct _MIDL_PROC_FORMAT_STRING - { - short Pad; - unsigned char Format[ PROC_FORMAT_STRING_SIZE ]; - } MIDL_PROC_FORMAT_STRING; - - -extern const MIDL_TYPE_FORMAT_STRING __MIDL_TypeFormatString; -extern const MIDL_PROC_FORMAT_STRING __MIDL_ProcFormatString; - -#define GENERIC_BINDING_TABLE_SIZE 0 - - -/* Standard interface: hello, ver. 1.0, - GUID={0x7a98c250,0x6808,0x11cf,{0xb7,0x3b,0x00,0xaa,0x00,0xb6,0x77,0xa7}} */ - -handle_t hBinding; - - -static const RPC_CLIENT_INTERFACE hello___RpcClientInterface = - { - sizeof(RPC_CLIENT_INTERFACE), - {{0x7a98c250,0x6808,0x11cf,{0xb7,0x3b,0x00,0xaa,0x00,0xb6,0x77,0xa7}},{1,0}}, - {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}, - 0, - 0, - 0, - 0, - 0, - 0 - }; -RPC_IF_HANDLE hello_v1_0_c_ifspec = (RPC_IF_HANDLE)& hello___RpcClientInterface; - -extern const MIDL_STUB_DESC hello_StubDesc; - -RPC_BINDING_HANDLE hello__MIDL_AutoBindHandle; - - -void CtxOpen( - /* [out] */ PCTXTYPE __RPC_FAR *pphContext, - /* [in] */ long Value) -{ - - RPC_BINDING_HANDLE _Handle = 0; - - RPC_MESSAGE _RpcMessage; - - MIDL_STUB_MESSAGE _StubMsg; - - if(!pphContext) - { - RpcRaiseException(RPC_X_NULL_REF_POINTER); - } - RpcTryFinally - { - NdrClientInitializeNew( - ( PRPC_MESSAGE )&_RpcMessage, - ( PMIDL_STUB_MESSAGE )&_StubMsg, - ( PMIDL_STUB_DESC )&hello_StubDesc, - 0); - - - _Handle = hBinding; - - - _StubMsg.BufferLength = 4U; - NdrGetBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg, _StubMsg.BufferLength, _Handle ); - - *(( long __RPC_FAR * )_StubMsg.Buffer)++ = Value; - - NdrSendReceive( (PMIDL_STUB_MESSAGE) &_StubMsg, (unsigned char __RPC_FAR *) _StubMsg.Buffer ); - - if ( (_RpcMessage.DataRepresentation & 0X0000FFFFUL) != NDR_LOCAL_DATA_REPRESENTATION ) - NdrConvert( (PMIDL_STUB_MESSAGE) &_StubMsg, (PFORMAT_STRING) &__MIDL_ProcFormatString.Format[0] ); - - *pphContext = (void *)0; - NdrClientContextUnmarshall( - ( PMIDL_STUB_MESSAGE )&_StubMsg, - ( NDR_CCONTEXT __RPC_FAR * )pphContext, - _Handle); - - } - RpcFinally - { - NdrFreeBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg ); - - } - RpcEndFinally - -} - - -void CtxHello( - /* [in] */ PCTXTYPE phContext) -{ - - RPC_BINDING_HANDLE _Handle = 0; - - RPC_MESSAGE _RpcMessage; - - MIDL_STUB_MESSAGE _StubMsg; - - RpcTryFinally - { - NdrClientInitializeNew( - ( PRPC_MESSAGE )&_RpcMessage, - ( PMIDL_STUB_MESSAGE )&_StubMsg, - ( PMIDL_STUB_DESC )&hello_StubDesc, - 1); - - - if(phContext != 0) - { - _Handle = NDRCContextBinding(( NDR_CCONTEXT )phContext);; - - } - else - { - RpcRaiseException(RPC_X_SS_IN_NULL_CONTEXT); - } - - _StubMsg.BufferLength = 20U; - NdrGetBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg, _StubMsg.BufferLength, _Handle ); - - NdrClientContextMarshall( - ( PMIDL_STUB_MESSAGE )&_StubMsg, - ( NDR_CCONTEXT )phContext, - 1); - NdrSendReceive( (PMIDL_STUB_MESSAGE) &_StubMsg, (unsigned char __RPC_FAR *) _StubMsg.Buffer ); - - } - RpcFinally - { - NdrFreeBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg ); - - } - RpcEndFinally - -} - - -void CtxClose( - /* [out][in] */ PCTXTYPE __RPC_FAR *pphContext) -{ - - RPC_BINDING_HANDLE _Handle = 0; - - RPC_MESSAGE _RpcMessage; - - MIDL_STUB_MESSAGE _StubMsg; - - if(!pphContext) - { - RpcRaiseException(RPC_X_NULL_REF_POINTER); - } - RpcTryFinally - { - NdrClientInitializeNew( - ( PRPC_MESSAGE )&_RpcMessage, - ( PMIDL_STUB_MESSAGE )&_StubMsg, - ( PMIDL_STUB_DESC )&hello_StubDesc, - 2); - - - if(*pphContext != 0) - { - _Handle = NDRCContextBinding(( NDR_CCONTEXT )*pphContext);; - - } - - _StubMsg.BufferLength = 20U; - NdrGetBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg, _StubMsg.BufferLength, _Handle ); - - NdrClientContextMarshall( - ( PMIDL_STUB_MESSAGE )&_StubMsg, - ( NDR_CCONTEXT )*pphContext, - 0); - NdrSendReceive( (PMIDL_STUB_MESSAGE) &_StubMsg, (unsigned char __RPC_FAR *) _StubMsg.Buffer ); - - if ( (_RpcMessage.DataRepresentation & 0X0000FFFFUL) != NDR_LOCAL_DATA_REPRESENTATION ) - NdrConvert( (PMIDL_STUB_MESSAGE) &_StubMsg, (PFORMAT_STRING) &__MIDL_ProcFormatString.Format[14] ); - - NdrClientContextUnmarshall( - ( PMIDL_STUB_MESSAGE )&_StubMsg, - ( NDR_CCONTEXT __RPC_FAR * )pphContext, - _Handle); - - } - RpcFinally - { - NdrFreeBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg ); - - } - RpcEndFinally - -} - - -const MIDL_STUB_DESC hello_StubDesc = - { - (void __RPC_FAR *)& hello___RpcClientInterface, - MIDL_user_allocate, - MIDL_user_free, - &hBinding, - 0, - 0, - 0, - 0, - __MIDL_TypeFormatString.Format, - 1, /* -error bounds_check flag */ - 0x10001, /* Ndr library version */ - 0, - 0x5030118, /* MIDL Version 5.3.280 */ - 0, - 0, - 0, /* notify & notify_flag routine table */ - 0x1, /* MIDL flag */ - 0, /* Reserved3 */ - 0, /* Reserved4 */ - 0 /* Reserved5 */ - }; - -#if !defined(__RPC_WIN32__) -#error Invalid build platform for this stub. -#endif - -const MIDL_PROC_FORMAT_STRING __MIDL_ProcFormatString = - { - 0, - { - - 0x51, /* FC_OUT_PARAM */ -#ifndef _ALPHA_ - 0x1, /* x86, MIPS & PPC stack size = 1 */ -#else - 0x2, /* Alpha stack size = 2 */ -#endif -/* 2 */ NdrFcShort( 0x2 ), /* Type Offset=2 */ -/* 4 */ 0x4e, /* FC_IN_PARAM_BASETYPE */ - 0x8, /* FC_LONG */ -/* 6 */ 0x5b, /* FC_END */ - 0x5c, /* FC_PAD */ -/* 8 */ - 0x4d, /* FC_IN_PARAM */ -#ifndef _ALPHA_ - 0x1, /* x86, MIPS & PPC stack size = 1 */ -#else - 0x2, /* Alpha stack size = 2 */ -#endif -/* 10 */ NdrFcShort( 0xa ), /* Type Offset=10 */ -/* 12 */ 0x5b, /* FC_END */ - 0x5c, /* FC_PAD */ -/* 14 */ - 0x50, /* FC_IN_OUT_PARAM */ -#ifndef _ALPHA_ - 0x1, /* x86, MIPS & PPC stack size = 1 */ -#else - 0x2, /* Alpha stack size = 2 */ -#endif -/* 16 */ NdrFcShort( 0xe ), /* Type Offset=14 */ -/* 18 */ 0x5b, /* FC_END */ - 0x5c, /* FC_PAD */ - - 0x0 - } - }; - -const MIDL_TYPE_FORMAT_STRING __MIDL_TypeFormatString = - { - 0, - { - NdrFcShort( 0x0 ), /* 0 */ -/* 2 */ - 0x11, 0x0, /* FC_RP */ -/* 4 */ NdrFcShort( 0x2 ), /* Offset= 2 (6) */ -/* 6 */ 0x30, /* FC_BIND_CONTEXT */ - 0xa0, /* Ctxt flags: via ptr, out, */ -/* 8 */ 0x0, /* 0 */ - 0x0, /* 0 */ -/* 10 */ 0x30, /* FC_BIND_CONTEXT */ - 0x41, /* Ctxt flags: in, can't be null */ -/* 12 */ 0x0, /* 0 */ - 0x0, /* 0 */ -/* 14 */ - 0x11, 0x0, /* FC_RP */ -/* 16 */ NdrFcShort( 0x2 ), /* Offset= 2 (18) */ -/* 18 */ 0x30, /* FC_BIND_CONTEXT */ - 0xe1, /* Ctxt flags: via ptr, in, out, can't be null */ -/* 20 */ 0x0, /* 0 */ - 0x0, /* 0 */ - - 0x0 - } - }; - - -#endif /* !defined(_M_IA64) && !defined(_M_AXP64)*/ - + +#pragma warning( disable: 4049 ) /* more than 64k source lines */ + +/* this ALWAYS GENERATED file contains the RPC client stubs */ + + + /* File created by MIDL compiler version 5.03.0280 */ +/* at Fri Mar 24 18:32:16 2006 + */ +/* Compiler settings for ctx.idl: + Os (OptLev=s), W1, Zp8, env=Win32 (32b run), ms_ext, c_ext + error checks: allocation ref bounds_check enum stub_data + VC __declspec() decoration level: + __declspec(uuid()), __declspec(selectany), __declspec(novtable) + DECLSPEC_UUID(), MIDL_INTERFACE() +*/ +//@@MIDL_FILE_HEADING( ) + +#if !defined(_M_IA64) && !defined(_M_AXP64) +#include +#if defined( _ALPHA_ ) +#include +#endif + +#include "ctx.h" + +#define TYPE_FORMAT_STRING_SIZE 23 +#define PROC_FORMAT_STRING_SIZE 21 +#define TRANSMIT_AS_TABLE_SIZE 0 +#define WIRE_MARSHAL_TABLE_SIZE 0 + +typedef struct _MIDL_TYPE_FORMAT_STRING + { + short Pad; + unsigned char Format[ TYPE_FORMAT_STRING_SIZE ]; + } MIDL_TYPE_FORMAT_STRING; + +typedef struct _MIDL_PROC_FORMAT_STRING + { + short Pad; + unsigned char Format[ PROC_FORMAT_STRING_SIZE ]; + } MIDL_PROC_FORMAT_STRING; + + +extern const MIDL_TYPE_FORMAT_STRING __MIDL_TypeFormatString; +extern const MIDL_PROC_FORMAT_STRING __MIDL_ProcFormatString; + +#define GENERIC_BINDING_TABLE_SIZE 0 + + +/* Standard interface: hello, ver. 1.0, + GUID={0x7a98c250,0x6808,0x11cf,{0xb7,0x3b,0x00,0xaa,0x00,0xb6,0x77,0xa7}} */ + +handle_t hBinding; + + +static const RPC_CLIENT_INTERFACE hello___RpcClientInterface = + { + sizeof(RPC_CLIENT_INTERFACE), + {{0x7a98c250,0x6808,0x11cf,{0xb7,0x3b,0x00,0xaa,0x00,0xb6,0x77,0xa7}},{1,0}}, + {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}, + 0, + 0, + 0, + 0, + 0, + 0 + }; +RPC_IF_HANDLE hello_v1_0_c_ifspec = (RPC_IF_HANDLE)& hello___RpcClientInterface; + +extern const MIDL_STUB_DESC hello_StubDesc; + +RPC_BINDING_HANDLE hello__MIDL_AutoBindHandle; + + +void CtxOpen( + /* [out] */ PCTXTYPE __RPC_FAR *pphContext, + /* [in] */ long Value) +{ + + RPC_BINDING_HANDLE _Handle = 0; + + RPC_MESSAGE _RpcMessage; + + MIDL_STUB_MESSAGE _StubMsg; + + if(!pphContext) + { + RpcRaiseException(RPC_X_NULL_REF_POINTER); + } + RpcTryFinally + { + NdrClientInitializeNew( + ( PRPC_MESSAGE )&_RpcMessage, + ( PMIDL_STUB_MESSAGE )&_StubMsg, + ( PMIDL_STUB_DESC )&hello_StubDesc, + 0); + + + _Handle = hBinding; + + + _StubMsg.BufferLength = 4U; + NdrGetBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg, _StubMsg.BufferLength, _Handle ); + + *(( long __RPC_FAR * )_StubMsg.Buffer)++ = Value; + + NdrSendReceive( (PMIDL_STUB_MESSAGE) &_StubMsg, (unsigned char __RPC_FAR *) _StubMsg.Buffer ); + + if ( (_RpcMessage.DataRepresentation & 0X0000FFFFUL) != NDR_LOCAL_DATA_REPRESENTATION ) + NdrConvert( (PMIDL_STUB_MESSAGE) &_StubMsg, (PFORMAT_STRING) &__MIDL_ProcFormatString.Format[0] ); + + *pphContext = (void *)0; + NdrClientContextUnmarshall( + ( PMIDL_STUB_MESSAGE )&_StubMsg, + ( NDR_CCONTEXT __RPC_FAR * )pphContext, + _Handle); + + } + RpcFinally + { + NdrFreeBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg ); + + } + RpcEndFinally + +} + + +void CtxHello( + /* [in] */ PCTXTYPE phContext) +{ + + RPC_BINDING_HANDLE _Handle = 0; + + RPC_MESSAGE _RpcMessage; + + MIDL_STUB_MESSAGE _StubMsg; + + RpcTryFinally + { + NdrClientInitializeNew( + ( PRPC_MESSAGE )&_RpcMessage, + ( PMIDL_STUB_MESSAGE )&_StubMsg, + ( PMIDL_STUB_DESC )&hello_StubDesc, + 1); + + + if(phContext != 0) + { + _Handle = NDRCContextBinding(( NDR_CCONTEXT )phContext);; + + } + else + { + RpcRaiseException(RPC_X_SS_IN_NULL_CONTEXT); + } + + _StubMsg.BufferLength = 20U; + NdrGetBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg, _StubMsg.BufferLength, _Handle ); + + NdrClientContextMarshall( + ( PMIDL_STUB_MESSAGE )&_StubMsg, + ( NDR_CCONTEXT )phContext, + 1); + NdrSendReceive( (PMIDL_STUB_MESSAGE) &_StubMsg, (unsigned char __RPC_FAR *) _StubMsg.Buffer ); + + } + RpcFinally + { + NdrFreeBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg ); + + } + RpcEndFinally + +} + + +void CtxClose( + /* [out][in] */ PCTXTYPE __RPC_FAR *pphContext) +{ + + RPC_BINDING_HANDLE _Handle = 0; + + RPC_MESSAGE _RpcMessage; + + MIDL_STUB_MESSAGE _StubMsg; + + if(!pphContext) + { + RpcRaiseException(RPC_X_NULL_REF_POINTER); + } + RpcTryFinally + { + NdrClientInitializeNew( + ( PRPC_MESSAGE )&_RpcMessage, + ( PMIDL_STUB_MESSAGE )&_StubMsg, + ( PMIDL_STUB_DESC )&hello_StubDesc, + 2); + + + if(*pphContext != 0) + { + _Handle = NDRCContextBinding(( NDR_CCONTEXT )*pphContext);; + + } + + _StubMsg.BufferLength = 20U; + NdrGetBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg, _StubMsg.BufferLength, _Handle ); + + NdrClientContextMarshall( + ( PMIDL_STUB_MESSAGE )&_StubMsg, + ( NDR_CCONTEXT )*pphContext, + 0); + NdrSendReceive( (PMIDL_STUB_MESSAGE) &_StubMsg, (unsigned char __RPC_FAR *) _StubMsg.Buffer ); + + if ( (_RpcMessage.DataRepresentation & 0X0000FFFFUL) != NDR_LOCAL_DATA_REPRESENTATION ) + NdrConvert( (PMIDL_STUB_MESSAGE) &_StubMsg, (PFORMAT_STRING) &__MIDL_ProcFormatString.Format[14] ); + + NdrClientContextUnmarshall( + ( PMIDL_STUB_MESSAGE )&_StubMsg, + ( NDR_CCONTEXT __RPC_FAR * )pphContext, + _Handle); + + } + RpcFinally + { + NdrFreeBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg ); + + } + RpcEndFinally + +} + + +const MIDL_STUB_DESC hello_StubDesc = + { + (void __RPC_FAR *)& hello___RpcClientInterface, + MIDL_user_allocate, + MIDL_user_free, + &hBinding, + 0, + 0, + 0, + 0, + __MIDL_TypeFormatString.Format, + 1, /* -error bounds_check flag */ + 0x10001, /* Ndr library version */ + 0, + 0x5030118, /* MIDL Version 5.3.280 */ + 0, + 0, + 0, /* notify & notify_flag routine table */ + 0x1, /* MIDL flag */ + 0, /* Reserved3 */ + 0, /* Reserved4 */ + 0 /* Reserved5 */ + }; + +#if !defined(__RPC_WIN32__) +#error Invalid build platform for this stub. +#endif + +const MIDL_PROC_FORMAT_STRING __MIDL_ProcFormatString = + { + 0, + { + + 0x51, /* FC_OUT_PARAM */ +#ifndef _ALPHA_ + 0x1, /* x86, MIPS & PPC stack size = 1 */ +#else + 0x2, /* Alpha stack size = 2 */ +#endif +/* 2 */ NdrFcShort( 0x2 ), /* Type Offset=2 */ +/* 4 */ 0x4e, /* FC_IN_PARAM_BASETYPE */ + 0x8, /* FC_LONG */ +/* 6 */ 0x5b, /* FC_END */ + 0x5c, /* FC_PAD */ +/* 8 */ + 0x4d, /* FC_IN_PARAM */ +#ifndef _ALPHA_ + 0x1, /* x86, MIPS & PPC stack size = 1 */ +#else + 0x2, /* Alpha stack size = 2 */ +#endif +/* 10 */ NdrFcShort( 0xa ), /* Type Offset=10 */ +/* 12 */ 0x5b, /* FC_END */ + 0x5c, /* FC_PAD */ +/* 14 */ + 0x50, /* FC_IN_OUT_PARAM */ +#ifndef _ALPHA_ + 0x1, /* x86, MIPS & PPC stack size = 1 */ +#else + 0x2, /* Alpha stack size = 2 */ +#endif +/* 16 */ NdrFcShort( 0xe ), /* Type Offset=14 */ +/* 18 */ 0x5b, /* FC_END */ + 0x5c, /* FC_PAD */ + + 0x0 + } + }; + +const MIDL_TYPE_FORMAT_STRING __MIDL_TypeFormatString = + { + 0, + { + NdrFcShort( 0x0 ), /* 0 */ +/* 2 */ + 0x11, 0x0, /* FC_RP */ +/* 4 */ NdrFcShort( 0x2 ), /* Offset= 2 (6) */ +/* 6 */ 0x30, /* FC_BIND_CONTEXT */ + 0xa0, /* Ctxt flags: via ptr, out, */ +/* 8 */ 0x0, /* 0 */ + 0x0, /* 0 */ +/* 10 */ 0x30, /* FC_BIND_CONTEXT */ + 0x41, /* Ctxt flags: in, can't be null */ +/* 12 */ 0x0, /* 0 */ + 0x0, /* 0 */ +/* 14 */ + 0x11, 0x0, /* FC_RP */ +/* 16 */ NdrFcShort( 0x2 ), /* Offset= 2 (18) */ +/* 18 */ 0x30, /* FC_BIND_CONTEXT */ + 0xe1, /* Ctxt flags: via ptr, in, out, can't be null */ +/* 20 */ 0x0, /* 0 */ + 0x0, /* 0 */ + + 0x0 + } + }; + + +#endif /* !defined(_M_IA64) && !defined(_M_AXP64)*/ + diff --git a/reactos/base/applications/testsets/rpcrt4/context_handles/ctx_s.c b/reactos/base/applications/testsets/rpcrt4/context_handles/ctx_s.c index fa0041f96e5..81e610c986e 100644 --- a/reactos/base/applications/testsets/rpcrt4/context_handles/ctx_s.c +++ b/reactos/base/applications/testsets/rpcrt4/context_handles/ctx_s.c @@ -1,349 +1,349 @@ - -#pragma warning( disable: 4049 ) /* more than 64k source lines */ - -/* this ALWAYS GENERATED file contains the RPC server stubs */ - - - /* File created by MIDL compiler version 5.03.0280 */ -/* at Fri Mar 24 18:32:16 2006 - */ -/* Compiler settings for ctx.idl: - Os (OptLev=s), W1, Zp8, env=Win32 (32b run), ms_ext, c_ext - error checks: allocation ref bounds_check enum stub_data - VC __declspec() decoration level: - __declspec(uuid()), __declspec(selectany), __declspec(novtable) - DECLSPEC_UUID(), MIDL_INTERFACE() -*/ -//@@MIDL_FILE_HEADING( ) - -#if !defined(_M_IA64) && !defined(_M_AXP64) -#include -#include "ctx.h" - -#define TYPE_FORMAT_STRING_SIZE 23 -#define PROC_FORMAT_STRING_SIZE 21 -#define TRANSMIT_AS_TABLE_SIZE 0 -#define WIRE_MARSHAL_TABLE_SIZE 0 - -typedef struct _MIDL_TYPE_FORMAT_STRING - { - short Pad; - unsigned char Format[ TYPE_FORMAT_STRING_SIZE ]; - } MIDL_TYPE_FORMAT_STRING; - -typedef struct _MIDL_PROC_FORMAT_STRING - { - short Pad; - unsigned char Format[ PROC_FORMAT_STRING_SIZE ]; - } MIDL_PROC_FORMAT_STRING; - -extern const MIDL_TYPE_FORMAT_STRING __MIDL_TypeFormatString; -extern const MIDL_PROC_FORMAT_STRING __MIDL_ProcFormatString; - -/* Standard interface: hello, ver. 1.0, - GUID={0x7a98c250,0x6808,0x11cf,{0xb7,0x3b,0x00,0xaa,0x00,0xb6,0x77,0xa7}} */ - - -extern RPC_DISPATCH_TABLE hello_v1_0_DispatchTable; - -static const RPC_SERVER_INTERFACE hello___RpcServerInterface = - { - sizeof(RPC_SERVER_INTERFACE), - {{0x7a98c250,0x6808,0x11cf,{0xb7,0x3b,0x00,0xaa,0x00,0xb6,0x77,0xa7}},{1,0}}, - {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}, - &hello_v1_0_DispatchTable, - 0, - 0, - 0, - 0, - 0 - }; -RPC_IF_HANDLE hello_v1_0_s_ifspec = (RPC_IF_HANDLE)& hello___RpcServerInterface; - -extern const MIDL_STUB_DESC hello_StubDesc; - -void __RPC_STUB -hello_CtxOpen( - PRPC_MESSAGE _pRpcMessage ) -{ - long Value; - MIDL_STUB_MESSAGE _StubMsg; - NDR_SCONTEXT pphContext; - RPC_STATUS _Status; - - ((void)(_Status)); - NdrServerInitializeNew( - _pRpcMessage, - &_StubMsg, - &hello_StubDesc); - - ( PCTXTYPE __RPC_FAR * )pphContext = 0; - RpcTryFinally - { - RpcTryExcept - { - if ( (_pRpcMessage->DataRepresentation & 0X0000FFFFUL) != NDR_LOCAL_DATA_REPRESENTATION ) - NdrConvert( (PMIDL_STUB_MESSAGE) &_StubMsg, (PFORMAT_STRING) &__MIDL_ProcFormatString.Format[0] ); - - Value = *(( long __RPC_FAR * )_StubMsg.Buffer)++; - - if(_StubMsg.Buffer > _StubMsg.BufferEnd) - { - RpcRaiseException(RPC_X_BAD_STUB_DATA); - } - } - RpcExcept( RPC_BAD_STUB_DATA_EXCEPTION_FILTER ) - { - RpcRaiseException(RPC_X_BAD_STUB_DATA); - } - RpcEndExcept - pphContext = NDRSContextUnmarshall( (char *)0, _pRpcMessage->DataRepresentation ); - - - CtxOpen(( PCTXTYPE __RPC_FAR * )NDRSContextValue(pphContext),Value); - - _StubMsg.BufferLength = 20U; - _pRpcMessage->BufferLength = _StubMsg.BufferLength; - - _Status = I_RpcGetBuffer( _pRpcMessage ); - if ( _Status ) - RpcRaiseException( _Status ); - - _StubMsg.Buffer = (unsigned char __RPC_FAR *) _pRpcMessage->Buffer; - - NdrServerContextMarshall( - ( PMIDL_STUB_MESSAGE )&_StubMsg, - ( NDR_SCONTEXT )pphContext, - ( NDR_RUNDOWN )PCTXTYPE_rundown); - - } - RpcFinally - { - } - RpcEndFinally - _pRpcMessage->BufferLength = - (unsigned int)(_StubMsg.Buffer - (unsigned char __RPC_FAR *)_pRpcMessage->Buffer); - -} - -void __RPC_STUB -hello_CtxHello( - PRPC_MESSAGE _pRpcMessage ) -{ - MIDL_STUB_MESSAGE _StubMsg; - NDR_SCONTEXT phContext; - RPC_STATUS _Status; - - ((void)(_Status)); - NdrServerInitializeNew( - _pRpcMessage, - &_StubMsg, - &hello_StubDesc); - - RpcTryFinally - { - RpcTryExcept - { - if ( (_pRpcMessage->DataRepresentation & 0X0000FFFFUL) != NDR_LOCAL_DATA_REPRESENTATION ) - NdrConvert( (PMIDL_STUB_MESSAGE) &_StubMsg, (PFORMAT_STRING) &__MIDL_ProcFormatString.Format[8] ); - - phContext = NdrServerContextUnmarshall(( PMIDL_STUB_MESSAGE )&_StubMsg); - - if(_StubMsg.Buffer > _StubMsg.BufferEnd) - { - RpcRaiseException(RPC_X_BAD_STUB_DATA); - } - } - RpcExcept( RPC_BAD_STUB_DATA_EXCEPTION_FILTER ) - { - RpcRaiseException(RPC_X_BAD_STUB_DATA); - } - RpcEndExcept - - CtxHello(( PCTXTYPE )*NDRSContextValue(phContext)); - - } - RpcFinally - { - } - RpcEndFinally - _pRpcMessage->BufferLength = - (unsigned int)(_StubMsg.Buffer - (unsigned char __RPC_FAR *)_pRpcMessage->Buffer); - -} - -void __RPC_STUB -hello_CtxClose( - PRPC_MESSAGE _pRpcMessage ) -{ - MIDL_STUB_MESSAGE _StubMsg; - NDR_SCONTEXT pphContext; - RPC_STATUS _Status; - - ((void)(_Status)); - NdrServerInitializeNew( - _pRpcMessage, - &_StubMsg, - &hello_StubDesc); - - ( PCTXTYPE __RPC_FAR * )pphContext = 0; - RpcTryFinally - { - RpcTryExcept - { - if ( (_pRpcMessage->DataRepresentation & 0X0000FFFFUL) != NDR_LOCAL_DATA_REPRESENTATION ) - NdrConvert( (PMIDL_STUB_MESSAGE) &_StubMsg, (PFORMAT_STRING) &__MIDL_ProcFormatString.Format[14] ); - - pphContext = NdrServerContextUnmarshall(( PMIDL_STUB_MESSAGE )&_StubMsg); - - if(_StubMsg.Buffer > _StubMsg.BufferEnd) - { - RpcRaiseException(RPC_X_BAD_STUB_DATA); - } - } - RpcExcept( RPC_BAD_STUB_DATA_EXCEPTION_FILTER ) - { - RpcRaiseException(RPC_X_BAD_STUB_DATA); - } - RpcEndExcept - - CtxClose(( PCTXTYPE __RPC_FAR * )NDRSContextValue(pphContext)); - - _StubMsg.BufferLength = 20U; - _pRpcMessage->BufferLength = _StubMsg.BufferLength; - - _Status = I_RpcGetBuffer( _pRpcMessage ); - if ( _Status ) - RpcRaiseException( _Status ); - - _StubMsg.Buffer = (unsigned char __RPC_FAR *) _pRpcMessage->Buffer; - - NdrServerContextMarshall( - ( PMIDL_STUB_MESSAGE )&_StubMsg, - ( NDR_SCONTEXT )pphContext, - ( NDR_RUNDOWN )PCTXTYPE_rundown); - - } - RpcFinally - { - } - RpcEndFinally - _pRpcMessage->BufferLength = - (unsigned int)(_StubMsg.Buffer - (unsigned char __RPC_FAR *)_pRpcMessage->Buffer); - -} - - -static const MIDL_STUB_DESC hello_StubDesc = - { - (void __RPC_FAR *)& hello___RpcServerInterface, - MIDL_user_allocate, - MIDL_user_free, - 0, - 0, - 0, - 0, - 0, - __MIDL_TypeFormatString.Format, - 1, /* -error bounds_check flag */ - 0x10001, /* Ndr library version */ - 0, - 0x5030118, /* MIDL Version 5.3.280 */ - 0, - 0, - 0, /* notify & notify_flag routine table */ - 0x1, /* MIDL flag */ - 0, /* Reserved3 */ - 0, /* Reserved4 */ - 0 /* Reserved5 */ - }; - -static RPC_DISPATCH_FUNCTION hello_table[] = - { - hello_CtxOpen, - hello_CtxHello, - hello_CtxClose, - 0 - }; -RPC_DISPATCH_TABLE hello_v1_0_DispatchTable = - { - 3, - hello_table - }; - -#if !defined(__RPC_WIN32__) -#error Invalid build platform for this stub. -#endif - -static const MIDL_PROC_FORMAT_STRING __MIDL_ProcFormatString = - { - 0, - { - - 0x51, /* FC_OUT_PARAM */ -#ifndef _ALPHA_ - 0x1, /* x86, MIPS & PPC stack size = 1 */ -#else - 0x2, /* Alpha stack size = 2 */ -#endif -/* 2 */ NdrFcShort( 0x2 ), /* Type Offset=2 */ -/* 4 */ 0x4e, /* FC_IN_PARAM_BASETYPE */ - 0x8, /* FC_LONG */ -/* 6 */ 0x5b, /* FC_END */ - 0x5c, /* FC_PAD */ -/* 8 */ - 0x4d, /* FC_IN_PARAM */ -#ifndef _ALPHA_ - 0x1, /* x86, MIPS & PPC stack size = 1 */ -#else - 0x2, /* Alpha stack size = 2 */ -#endif -/* 10 */ NdrFcShort( 0xa ), /* Type Offset=10 */ -/* 12 */ 0x5b, /* FC_END */ - 0x5c, /* FC_PAD */ -/* 14 */ - 0x50, /* FC_IN_OUT_PARAM */ -#ifndef _ALPHA_ - 0x1, /* x86, MIPS & PPC stack size = 1 */ -#else - 0x2, /* Alpha stack size = 2 */ -#endif -/* 16 */ NdrFcShort( 0xe ), /* Type Offset=14 */ -/* 18 */ 0x5b, /* FC_END */ - 0x5c, /* FC_PAD */ - - 0x0 - } - }; - -static const MIDL_TYPE_FORMAT_STRING __MIDL_TypeFormatString = - { - 0, - { - NdrFcShort( 0x0 ), /* 0 */ -/* 2 */ - 0x11, 0x0, /* FC_RP */ -/* 4 */ NdrFcShort( 0x2 ), /* Offset= 2 (6) */ -/* 6 */ 0x30, /* FC_BIND_CONTEXT */ - 0xa0, /* Ctxt flags: via ptr, out, */ -/* 8 */ 0x0, /* 0 */ - 0x0, /* 0 */ -/* 10 */ 0x30, /* FC_BIND_CONTEXT */ - 0x41, /* Ctxt flags: in, can't be null */ -/* 12 */ 0x0, /* 0 */ - 0x0, /* 0 */ -/* 14 */ - 0x11, 0x0, /* FC_RP */ -/* 16 */ NdrFcShort( 0x2 ), /* Offset= 2 (18) */ -/* 18 */ 0x30, /* FC_BIND_CONTEXT */ - 0xe1, /* Ctxt flags: via ptr, in, out, can't be null */ -/* 20 */ 0x0, /* 0 */ - 0x0, /* 0 */ - - 0x0 - } - }; - - -#endif /* !defined(_M_IA64) && !defined(_M_AXP64)*/ - + +#pragma warning( disable: 4049 ) /* more than 64k source lines */ + +/* this ALWAYS GENERATED file contains the RPC server stubs */ + + + /* File created by MIDL compiler version 5.03.0280 */ +/* at Fri Mar 24 18:32:16 2006 + */ +/* Compiler settings for ctx.idl: + Os (OptLev=s), W1, Zp8, env=Win32 (32b run), ms_ext, c_ext + error checks: allocation ref bounds_check enum stub_data + VC __declspec() decoration level: + __declspec(uuid()), __declspec(selectany), __declspec(novtable) + DECLSPEC_UUID(), MIDL_INTERFACE() +*/ +//@@MIDL_FILE_HEADING( ) + +#if !defined(_M_IA64) && !defined(_M_AXP64) +#include +#include "ctx.h" + +#define TYPE_FORMAT_STRING_SIZE 23 +#define PROC_FORMAT_STRING_SIZE 21 +#define TRANSMIT_AS_TABLE_SIZE 0 +#define WIRE_MARSHAL_TABLE_SIZE 0 + +typedef struct _MIDL_TYPE_FORMAT_STRING + { + short Pad; + unsigned char Format[ TYPE_FORMAT_STRING_SIZE ]; + } MIDL_TYPE_FORMAT_STRING; + +typedef struct _MIDL_PROC_FORMAT_STRING + { + short Pad; + unsigned char Format[ PROC_FORMAT_STRING_SIZE ]; + } MIDL_PROC_FORMAT_STRING; + +extern const MIDL_TYPE_FORMAT_STRING __MIDL_TypeFormatString; +extern const MIDL_PROC_FORMAT_STRING __MIDL_ProcFormatString; + +/* Standard interface: hello, ver. 1.0, + GUID={0x7a98c250,0x6808,0x11cf,{0xb7,0x3b,0x00,0xaa,0x00,0xb6,0x77,0xa7}} */ + + +extern RPC_DISPATCH_TABLE hello_v1_0_DispatchTable; + +static const RPC_SERVER_INTERFACE hello___RpcServerInterface = + { + sizeof(RPC_SERVER_INTERFACE), + {{0x7a98c250,0x6808,0x11cf,{0xb7,0x3b,0x00,0xaa,0x00,0xb6,0x77,0xa7}},{1,0}}, + {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}, + &hello_v1_0_DispatchTable, + 0, + 0, + 0, + 0, + 0 + }; +RPC_IF_HANDLE hello_v1_0_s_ifspec = (RPC_IF_HANDLE)& hello___RpcServerInterface; + +extern const MIDL_STUB_DESC hello_StubDesc; + +void __RPC_STUB +hello_CtxOpen( + PRPC_MESSAGE _pRpcMessage ) +{ + long Value; + MIDL_STUB_MESSAGE _StubMsg; + NDR_SCONTEXT pphContext; + RPC_STATUS _Status; + + ((void)(_Status)); + NdrServerInitializeNew( + _pRpcMessage, + &_StubMsg, + &hello_StubDesc); + + ( PCTXTYPE __RPC_FAR * )pphContext = 0; + RpcTryFinally + { + RpcTryExcept + { + if ( (_pRpcMessage->DataRepresentation & 0X0000FFFFUL) != NDR_LOCAL_DATA_REPRESENTATION ) + NdrConvert( (PMIDL_STUB_MESSAGE) &_StubMsg, (PFORMAT_STRING) &__MIDL_ProcFormatString.Format[0] ); + + Value = *(( long __RPC_FAR * )_StubMsg.Buffer)++; + + if(_StubMsg.Buffer > _StubMsg.BufferEnd) + { + RpcRaiseException(RPC_X_BAD_STUB_DATA); + } + } + RpcExcept( RPC_BAD_STUB_DATA_EXCEPTION_FILTER ) + { + RpcRaiseException(RPC_X_BAD_STUB_DATA); + } + RpcEndExcept + pphContext = NDRSContextUnmarshall( (char *)0, _pRpcMessage->DataRepresentation ); + + + CtxOpen(( PCTXTYPE __RPC_FAR * )NDRSContextValue(pphContext),Value); + + _StubMsg.BufferLength = 20U; + _pRpcMessage->BufferLength = _StubMsg.BufferLength; + + _Status = I_RpcGetBuffer( _pRpcMessage ); + if ( _Status ) + RpcRaiseException( _Status ); + + _StubMsg.Buffer = (unsigned char __RPC_FAR *) _pRpcMessage->Buffer; + + NdrServerContextMarshall( + ( PMIDL_STUB_MESSAGE )&_StubMsg, + ( NDR_SCONTEXT )pphContext, + ( NDR_RUNDOWN )PCTXTYPE_rundown); + + } + RpcFinally + { + } + RpcEndFinally + _pRpcMessage->BufferLength = + (unsigned int)(_StubMsg.Buffer - (unsigned char __RPC_FAR *)_pRpcMessage->Buffer); + +} + +void __RPC_STUB +hello_CtxHello( + PRPC_MESSAGE _pRpcMessage ) +{ + MIDL_STUB_MESSAGE _StubMsg; + NDR_SCONTEXT phContext; + RPC_STATUS _Status; + + ((void)(_Status)); + NdrServerInitializeNew( + _pRpcMessage, + &_StubMsg, + &hello_StubDesc); + + RpcTryFinally + { + RpcTryExcept + { + if ( (_pRpcMessage->DataRepresentation & 0X0000FFFFUL) != NDR_LOCAL_DATA_REPRESENTATION ) + NdrConvert( (PMIDL_STUB_MESSAGE) &_StubMsg, (PFORMAT_STRING) &__MIDL_ProcFormatString.Format[8] ); + + phContext = NdrServerContextUnmarshall(( PMIDL_STUB_MESSAGE )&_StubMsg); + + if(_StubMsg.Buffer > _StubMsg.BufferEnd) + { + RpcRaiseException(RPC_X_BAD_STUB_DATA); + } + } + RpcExcept( RPC_BAD_STUB_DATA_EXCEPTION_FILTER ) + { + RpcRaiseException(RPC_X_BAD_STUB_DATA); + } + RpcEndExcept + + CtxHello(( PCTXTYPE )*NDRSContextValue(phContext)); + + } + RpcFinally + { + } + RpcEndFinally + _pRpcMessage->BufferLength = + (unsigned int)(_StubMsg.Buffer - (unsigned char __RPC_FAR *)_pRpcMessage->Buffer); + +} + +void __RPC_STUB +hello_CtxClose( + PRPC_MESSAGE _pRpcMessage ) +{ + MIDL_STUB_MESSAGE _StubMsg; + NDR_SCONTEXT pphContext; + RPC_STATUS _Status; + + ((void)(_Status)); + NdrServerInitializeNew( + _pRpcMessage, + &_StubMsg, + &hello_StubDesc); + + ( PCTXTYPE __RPC_FAR * )pphContext = 0; + RpcTryFinally + { + RpcTryExcept + { + if ( (_pRpcMessage->DataRepresentation & 0X0000FFFFUL) != NDR_LOCAL_DATA_REPRESENTATION ) + NdrConvert( (PMIDL_STUB_MESSAGE) &_StubMsg, (PFORMAT_STRING) &__MIDL_ProcFormatString.Format[14] ); + + pphContext = NdrServerContextUnmarshall(( PMIDL_STUB_MESSAGE )&_StubMsg); + + if(_StubMsg.Buffer > _StubMsg.BufferEnd) + { + RpcRaiseException(RPC_X_BAD_STUB_DATA); + } + } + RpcExcept( RPC_BAD_STUB_DATA_EXCEPTION_FILTER ) + { + RpcRaiseException(RPC_X_BAD_STUB_DATA); + } + RpcEndExcept + + CtxClose(( PCTXTYPE __RPC_FAR * )NDRSContextValue(pphContext)); + + _StubMsg.BufferLength = 20U; + _pRpcMessage->BufferLength = _StubMsg.BufferLength; + + _Status = I_RpcGetBuffer( _pRpcMessage ); + if ( _Status ) + RpcRaiseException( _Status ); + + _StubMsg.Buffer = (unsigned char __RPC_FAR *) _pRpcMessage->Buffer; + + NdrServerContextMarshall( + ( PMIDL_STUB_MESSAGE )&_StubMsg, + ( NDR_SCONTEXT )pphContext, + ( NDR_RUNDOWN )PCTXTYPE_rundown); + + } + RpcFinally + { + } + RpcEndFinally + _pRpcMessage->BufferLength = + (unsigned int)(_StubMsg.Buffer - (unsigned char __RPC_FAR *)_pRpcMessage->Buffer); + +} + + +static const MIDL_STUB_DESC hello_StubDesc = + { + (void __RPC_FAR *)& hello___RpcServerInterface, + MIDL_user_allocate, + MIDL_user_free, + 0, + 0, + 0, + 0, + 0, + __MIDL_TypeFormatString.Format, + 1, /* -error bounds_check flag */ + 0x10001, /* Ndr library version */ + 0, + 0x5030118, /* MIDL Version 5.3.280 */ + 0, + 0, + 0, /* notify & notify_flag routine table */ + 0x1, /* MIDL flag */ + 0, /* Reserved3 */ + 0, /* Reserved4 */ + 0 /* Reserved5 */ + }; + +static RPC_DISPATCH_FUNCTION hello_table[] = + { + hello_CtxOpen, + hello_CtxHello, + hello_CtxClose, + 0 + }; +RPC_DISPATCH_TABLE hello_v1_0_DispatchTable = + { + 3, + hello_table + }; + +#if !defined(__RPC_WIN32__) +#error Invalid build platform for this stub. +#endif + +static const MIDL_PROC_FORMAT_STRING __MIDL_ProcFormatString = + { + 0, + { + + 0x51, /* FC_OUT_PARAM */ +#ifndef _ALPHA_ + 0x1, /* x86, MIPS & PPC stack size = 1 */ +#else + 0x2, /* Alpha stack size = 2 */ +#endif +/* 2 */ NdrFcShort( 0x2 ), /* Type Offset=2 */ +/* 4 */ 0x4e, /* FC_IN_PARAM_BASETYPE */ + 0x8, /* FC_LONG */ +/* 6 */ 0x5b, /* FC_END */ + 0x5c, /* FC_PAD */ +/* 8 */ + 0x4d, /* FC_IN_PARAM */ +#ifndef _ALPHA_ + 0x1, /* x86, MIPS & PPC stack size = 1 */ +#else + 0x2, /* Alpha stack size = 2 */ +#endif +/* 10 */ NdrFcShort( 0xa ), /* Type Offset=10 */ +/* 12 */ 0x5b, /* FC_END */ + 0x5c, /* FC_PAD */ +/* 14 */ + 0x50, /* FC_IN_OUT_PARAM */ +#ifndef _ALPHA_ + 0x1, /* x86, MIPS & PPC stack size = 1 */ +#else + 0x2, /* Alpha stack size = 2 */ +#endif +/* 16 */ NdrFcShort( 0xe ), /* Type Offset=14 */ +/* 18 */ 0x5b, /* FC_END */ + 0x5c, /* FC_PAD */ + + 0x0 + } + }; + +static const MIDL_TYPE_FORMAT_STRING __MIDL_TypeFormatString = + { + 0, + { + NdrFcShort( 0x0 ), /* 0 */ +/* 2 */ + 0x11, 0x0, /* FC_RP */ +/* 4 */ NdrFcShort( 0x2 ), /* Offset= 2 (6) */ +/* 6 */ 0x30, /* FC_BIND_CONTEXT */ + 0xa0, /* Ctxt flags: via ptr, out, */ +/* 8 */ 0x0, /* 0 */ + 0x0, /* 0 */ +/* 10 */ 0x30, /* FC_BIND_CONTEXT */ + 0x41, /* Ctxt flags: in, can't be null */ +/* 12 */ 0x0, /* 0 */ + 0x0, /* 0 */ +/* 14 */ + 0x11, 0x0, /* FC_RP */ +/* 16 */ NdrFcShort( 0x2 ), /* Offset= 2 (18) */ +/* 18 */ 0x30, /* FC_BIND_CONTEXT */ + 0xe1, /* Ctxt flags: via ptr, in, out, can't be null */ +/* 20 */ 0x0, /* 0 */ + 0x0, /* 0 */ + + 0x0 + } + }; + + +#endif /* !defined(_M_IA64) && !defined(_M_AXP64)*/ + diff --git a/reactos/base/applications/testsets/rpcrt4/context_handles/server.c b/reactos/base/applications/testsets/rpcrt4/context_handles/server.c index b0506d442ac..66f048f1124 100644 --- a/reactos/base/applications/testsets/rpcrt4/context_handles/server.c +++ b/reactos/base/applications/testsets/rpcrt4/context_handles/server.c @@ -1,78 +1,78 @@ -#include -#include -#include -#include "ctx.h" - -void CtxOpen( PCTXTYPE *pphContext, - long Value) -{ - printf("CtxOpen(): Value=%d\n",Value); - *pphContext = (PCTXTYPE)midl_user_allocate( sizeof(CTXTYPE) ); - **pphContext = Value; -} - -void CtxHello( PCTXTYPE phContext ) -{ - printf("CtxHello(): Hello, World! Context value: %d\n", *phContext); -} - -void CtxClose(PCTXTYPE *pphContext ) -{ - printf("CtxClose(): %d\n", **pphContext); - midl_user_free(*pphContext); - *pphContext = NULL; -} - - -void main() -{ - RPC_STATUS status; - unsigned int cMinCalls = 1; - unsigned int cMaxCalls = 20; - int i; - - status = RpcServerUseProtseqEp("ncacn_np", 20, "\\pipe\\hello", NULL); - - if (status) - { - printf("RpcServerUseProtseqEp %x\n", status); - exit(status); - } - - status = RpcServerRegisterIf(hello_v1_0_s_ifspec, NULL, NULL); - - if (status) - { - printf("RpcServerRegisterIf %x\n", status); - exit(status); - } - - status = RpcServerListen(1, 20, FALSE); - - if (status) - { - printf("RpcServerListen %x", status); - exit(status); - } - - scanf("%d", &i); -} - - -void __RPC_USER PCTXTYPE_rundown( - PCTXTYPE hContext) -{ - PCTXTYPE pCtx = (PCTXTYPE)hContext; - printf("Context rundown: Value=%d \n", *pCtx); - midl_user_free(hContext); -} - -void __RPC_FAR * __RPC_USER midl_user_allocate(size_t len) -{ - return(malloc(len)); -} - -void __RPC_USER midl_user_free(void __RPC_FAR * ptr) -{ - free(ptr); -} +#include +#include +#include +#include "ctx.h" + +void CtxOpen( PCTXTYPE *pphContext, + long Value) +{ + printf("CtxOpen(): Value=%d\n",Value); + *pphContext = (PCTXTYPE)midl_user_allocate( sizeof(CTXTYPE) ); + **pphContext = Value; +} + +void CtxHello( PCTXTYPE phContext ) +{ + printf("CtxHello(): Hello, World! Context value: %d\n", *phContext); +} + +void CtxClose(PCTXTYPE *pphContext ) +{ + printf("CtxClose(): %d\n", **pphContext); + midl_user_free(*pphContext); + *pphContext = NULL; +} + + +void main() +{ + RPC_STATUS status; + unsigned int cMinCalls = 1; + unsigned int cMaxCalls = 20; + int i; + + status = RpcServerUseProtseqEp("ncacn_np", 20, "\\pipe\\hello", NULL); + + if (status) + { + printf("RpcServerUseProtseqEp %x\n", status); + exit(status); + } + + status = RpcServerRegisterIf(hello_v1_0_s_ifspec, NULL, NULL); + + if (status) + { + printf("RpcServerRegisterIf %x\n", status); + exit(status); + } + + status = RpcServerListen(1, 20, FALSE); + + if (status) + { + printf("RpcServerListen %x", status); + exit(status); + } + + scanf("%d", &i); +} + + +void __RPC_USER PCTXTYPE_rundown( + PCTXTYPE hContext) +{ + PCTXTYPE pCtx = (PCTXTYPE)hContext; + printf("Context rundown: Value=%d \n", *pCtx); + midl_user_free(hContext); +} + +void __RPC_FAR * __RPC_USER midl_user_allocate(size_t len) +{ + return(malloc(len)); +} + +void __RPC_USER midl_user_free(void __RPC_FAR * ptr) +{ + free(ptr); +} diff --git a/reactos/base/applications/testsets/smss/movefile/movefile.cpp b/reactos/base/applications/testsets/smss/movefile/movefile.cpp index c3f6d4f303e..0e4b8c1c0d8 100644 --- a/reactos/base/applications/testsets/smss/movefile/movefile.cpp +++ b/reactos/base/applications/testsets/smss/movefile/movefile.cpp @@ -1,235 +1,235 @@ -/* - * PROJECT: ReactOS Test applications - * LICENSE: GPL - See COPYING in the top level directory - * FILE: base/applications/testsets/smss/movefile.cpp - * PURPOSE: Provides testing for the "move file after reboot" - * function of smss.exe/kernel32.dll - * PROGRAMMERS: Dmitriy Philippov (shedon@mail.ru) - */ - - -#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers -#include "windows.h" -#include -#include -#include "stdlib.h" -#include "string.h" - - -void Usage() -{ - printf(" Usage: smssTest.exe -g|c|s|d \n \ - g - generate test files \n \ - c - check files after reboot \n \ - s - show registry entry \n \ - d - delete registry value \n"); -} - -int ShowRegValue() -{ - BYTE lpBuff[255]; - memset(lpBuff, 0, sizeof(lpBuff)); - - DWORD lSize = sizeof(lpBuff); - HKEY hKey; - LONG retValue; - // test registry entry - retValue = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Control\\Session Manager", 0, KEY_QUERY_VALUE, &hKey); - if( ERROR_SUCCESS != retValue ) { - printf("RegOpenKeyEx err=%ld \n", retValue); - return 1; - } - - retValue = RegQueryValueEx(hKey, "PendingFileRenameOperations", NULL, NULL, lpBuff, &lSize); - if( ERROR_SUCCESS != retValue ) { - printf("RegQueryValueEx err=%ld \n", retValue); - lSize = 0; - } - - printf("reg data: \n"); - for(UINT i=0; i +#include +#include "stdlib.h" +#include "string.h" + + +void Usage() +{ + printf(" Usage: smssTest.exe -g|c|s|d \n \ + g - generate test files \n \ + c - check files after reboot \n \ + s - show registry entry \n \ + d - delete registry value \n"); +} + +int ShowRegValue() +{ + BYTE lpBuff[255]; + memset(lpBuff, 0, sizeof(lpBuff)); + + DWORD lSize = sizeof(lpBuff); + HKEY hKey; + LONG retValue; + // test registry entry + retValue = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Control\\Session Manager", 0, KEY_QUERY_VALUE, &hKey); + if( ERROR_SUCCESS != retValue ) { + printf("RegOpenKeyEx err=%ld \n", retValue); + return 1; + } + + retValue = RegQueryValueEx(hKey, "PendingFileRenameOperations", NULL, NULL, lpBuff, &lSize); + if( ERROR_SUCCESS != retValue ) { + printf("RegQueryValueEx err=%ld \n", retValue); + lSize = 0; + } + + printf("reg data: \n"); + for(UINT i=0; i - . - - 0x0500 - 0x0600 - 0x0600 - kernel32 - advapi32 - user32 - movefile.cpp - movefile.rc + + . + + 0x0500 + 0x0600 + 0x0600 + kernel32 + advapi32 + user32 + movefile.cpp + movefile.rc \ No newline at end of file diff --git a/reactos/base/applications/testsets/smss/movefile/movefile.rc b/reactos/base/applications/testsets/smss/movefile/movefile.rc index 877f2b46020..77fc4abedb0 100644 --- a/reactos/base/applications/testsets/smss/movefile/movefile.rc +++ b/reactos/base/applications/testsets/smss/movefile/movefile.rc @@ -1,9 +1,9 @@ -#include -#include "resource.h" - -#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Move File after reboot test\0" -#define REACTOS_STR_INTERNAL_NAME "movefiletest\0" -#define REACTOS_STR_ORIGINAL_FILENAME "movefiletest.exe\0" -#include - - +#include +#include "resource.h" + +#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Move File after reboot test\0" +#define REACTOS_STR_INTERNAL_NAME "movefiletest\0" +#define REACTOS_STR_ORIGINAL_FILENAME "movefiletest.exe\0" +#include + + diff --git a/reactos/base/applications/testsets/smss/smss.rbuild b/reactos/base/applications/testsets/smss/smss.rbuild index bb407f85695..20ff30e2965 100644 --- a/reactos/base/applications/testsets/smss/smss.rbuild +++ b/reactos/base/applications/testsets/smss/smss.rbuild @@ -1,7 +1,7 @@ - - - - - - - + + + + + + + diff --git a/reactos/base/applications/testsets/testsets.rbuild b/reactos/base/applications/testsets/testsets.rbuild index a0cdaa833eb..745c4b5c25b 100644 --- a/reactos/base/applications/testsets/testsets.rbuild +++ b/reactos/base/applications/testsets/testsets.rbuild @@ -1,10 +1,10 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/reactos/base/applications/testsets/user32/drawcaption/capicon.c b/reactos/base/applications/testsets/user32/drawcaption/capicon.c index 3595edced7d..31bec73f870 100644 --- a/reactos/base/applications/testsets/user32/drawcaption/capicon.c +++ b/reactos/base/applications/testsets/user32/drawcaption/capicon.c @@ -1,145 +1,145 @@ -/* - * Copyright 2006 Saveliy Tretiakov - * - * 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. - * - * This 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. - * - * You 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. - */ - -#include "windows.h" -#include "stdio.h" -#include "resource.h" - -WCHAR WndClass[] = L"capicon_class"; - -HINSTANCE hInst; -INT testnum = 0; - - -LRESULT CALLBACK WndProc(HWND hWnd, - UINT msg, - WPARAM wParam, - LPARAM lParam) -{ - HICON hIcon; - - switch (msg) - { - case WM_GETICON: - if(testnum>2) - { - if(wParam == ICON_SMALL) - hIcon = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON2SM)); - else if(wParam == ICON_BIG) - hIcon = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON2BIG)); - else hIcon = (HICON)1; - - if(!hIcon) - { - printf("LoadIcon() failed: %d\n", (INT)GetLastError()); - break; - } - - return (LRESULT)hIcon; - } - break; - - case WM_DESTROY: - PostQuitMessage(0); - return 0; - } - - return DefWindowProc(hWnd, msg, wParam, lParam); -} - - -INT main(INT argc, CHAR **argv) -{ - HWND hWnd; - MSG msg; - WNDCLASSEX wcx; - UINT result; - - if(argc<2) - { - printf("DrawCaption icon test.\n"); - printf("USAGE: drawcap.exe \n\n"); - printf("Available tests:\n" - "1. Class small icon\n" - "2. Class big icon\n" - "3. Class small icon + WM_GETICON\n" - "4. Class big icon + WM_GETICON\n" - "5. WM_GETICON only\n\n"); - return 0; - } - - testnum = atoi(argv[1]); - if(testnum < 1 || testnum > 5) - { - printf("Unknown test %d\n", testnum); - return 1; - } - - hInst = GetModuleHandle(NULL); - - memset(&wcx, 0, sizeof(wcx)); - wcx.cbSize = sizeof(wcx); - wcx.style = CS_HREDRAW | CS_VREDRAW; - wcx.lpfnWndProc = (WNDPROC) WndProc; - wcx.hInstance = hInst; - wcx.hbrBackground = (HBRUSH)COLOR_WINDOW; - wcx.lpszClassName = WndClass; - if(testnum<5)wcx.hIcon = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON1BIG)); - if(testnum == 1 || testnum == 3) - wcx.hIconSm = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON1SM)); - - if(!(result = RegisterClassEx(&wcx))) - { - printf("Shit! RegisterClassEx failed: %d\n", - (int)GetLastError()); - return 1; - } - - hWnd = CreateWindowEx(0, - WndClass, - L"DrawCaption icon test", - WS_OVERLAPPED|WS_THICKFRAME|WS_SYSMENU, - CW_USEDEFAULT, - CW_USEDEFAULT, - 250, - 100, - NULL, - 0, - hInst, - NULL); - - if(!hWnd) - { - printf("Shit! Can't create wnd!\n"); - UnregisterClass(WndClass, hInst); - return 1; - } - - - ShowWindow(hWnd, SW_SHOW); - UpdateWindow(hWnd); - - while(GetMessage(&msg, NULL, 0, 0 )) - { - TranslateMessage(&msg); - DispatchMessage(&msg); - } - - UnregisterClass(WndClass, hInst); - return 0; -} +/* + * Copyright 2006 Saveliy Tretiakov + * + * 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. + * + * This 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. + * + * You 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. + */ + +#include "windows.h" +#include "stdio.h" +#include "resource.h" + +WCHAR WndClass[] = L"capicon_class"; + +HINSTANCE hInst; +INT testnum = 0; + + +LRESULT CALLBACK WndProc(HWND hWnd, + UINT msg, + WPARAM wParam, + LPARAM lParam) +{ + HICON hIcon; + + switch (msg) + { + case WM_GETICON: + if(testnum>2) + { + if(wParam == ICON_SMALL) + hIcon = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON2SM)); + else if(wParam == ICON_BIG) + hIcon = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON2BIG)); + else hIcon = (HICON)1; + + if(!hIcon) + { + printf("LoadIcon() failed: %d\n", (INT)GetLastError()); + break; + } + + return (LRESULT)hIcon; + } + break; + + case WM_DESTROY: + PostQuitMessage(0); + return 0; + } + + return DefWindowProc(hWnd, msg, wParam, lParam); +} + + +INT main(INT argc, CHAR **argv) +{ + HWND hWnd; + MSG msg; + WNDCLASSEX wcx; + UINT result; + + if(argc<2) + { + printf("DrawCaption icon test.\n"); + printf("USAGE: drawcap.exe \n\n"); + printf("Available tests:\n" + "1. Class small icon\n" + "2. Class big icon\n" + "3. Class small icon + WM_GETICON\n" + "4. Class big icon + WM_GETICON\n" + "5. WM_GETICON only\n\n"); + return 0; + } + + testnum = atoi(argv[1]); + if(testnum < 1 || testnum > 5) + { + printf("Unknown test %d\n", testnum); + return 1; + } + + hInst = GetModuleHandle(NULL); + + memset(&wcx, 0, sizeof(wcx)); + wcx.cbSize = sizeof(wcx); + wcx.style = CS_HREDRAW | CS_VREDRAW; + wcx.lpfnWndProc = (WNDPROC) WndProc; + wcx.hInstance = hInst; + wcx.hbrBackground = (HBRUSH)COLOR_WINDOW; + wcx.lpszClassName = WndClass; + if(testnum<5)wcx.hIcon = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON1BIG)); + if(testnum == 1 || testnum == 3) + wcx.hIconSm = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON1SM)); + + if(!(result = RegisterClassEx(&wcx))) + { + printf("Shit! RegisterClassEx failed: %d\n", + (int)GetLastError()); + return 1; + } + + hWnd = CreateWindowEx(0, + WndClass, + L"DrawCaption icon test", + WS_OVERLAPPED|WS_THICKFRAME|WS_SYSMENU, + CW_USEDEFAULT, + CW_USEDEFAULT, + 250, + 100, + NULL, + 0, + hInst, + NULL); + + if(!hWnd) + { + printf("Shit! Can't create wnd!\n"); + UnregisterClass(WndClass, hInst); + return 1; + } + + + ShowWindow(hWnd, SW_SHOW); + UpdateWindow(hWnd); + + while(GetMessage(&msg, NULL, 0, 0 )) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + + UnregisterClass(WndClass, hInst); + return 0; +} diff --git a/reactos/base/applications/testsets/user32/drawcaption/capicon.rc b/reactos/base/applications/testsets/user32/drawcaption/capicon.rc index 70f4c2501db..0cb31e4e0be 100644 --- a/reactos/base/applications/testsets/user32/drawcaption/capicon.rc +++ b/reactos/base/applications/testsets/user32/drawcaption/capicon.rc @@ -1,13 +1,13 @@ -#include -#include "resource.h" - -#define REACTOS_STR_FILE_DESCRIPTION "ReactOS DrawCaption icon test\0" -#define REACTOS_STR_INTERNAL_NAME "capicon\0" -#define REACTOS_STR_ORIGINAL_FILENAME "capicon.exe\0" -#include - -ID_ICON1BIG ICON res\icon1big.ico -ID_ICON1SM ICON res\icon1sm.ico -ID_ICON2BIG ICON res\icon2big.ico -ID_ICON2SM ICON res\icon2sm.ico - +#include +#include "resource.h" + +#define REACTOS_STR_FILE_DESCRIPTION "ReactOS DrawCaption icon test\0" +#define REACTOS_STR_INTERNAL_NAME "capicon\0" +#define REACTOS_STR_ORIGINAL_FILENAME "capicon.exe\0" +#include + +ID_ICON1BIG ICON res\icon1big.ico +ID_ICON1SM ICON res\icon1sm.ico +ID_ICON2BIG ICON res\icon2big.ico +ID_ICON2SM ICON res\icon2sm.ico + diff --git a/reactos/base/applications/testsets/user32/drawcaption/drawcap.c b/reactos/base/applications/testsets/user32/drawcaption/drawcap.c index 31f9dcc9986..b6036d8a41b 100644 --- a/reactos/base/applications/testsets/user32/drawcaption/drawcap.c +++ b/reactos/base/applications/testsets/user32/drawcaption/drawcap.c @@ -1,289 +1,289 @@ -/* - * Copyright 2006 Saveliy Tretiakov - * - * 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. - * - * This 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. - * - * You 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. - */ - -#include "windows.h" -#include "resource.h" -#include "stdio.h" - -WCHAR CaptWndClass[] = L"captwnd_class"; - -HINSTANCE hInst; -INT testnum = 0; - -//BOOL STDCALL (*DrawCaptionTemp) ( -// HWND hwnd, -// HDC hdc, -// const RECT *rect, -// HFONT hFont, -// HICON hIcon, -// LPCWSTR str, -// UINT uFlags); - -VOID CapTest(HWND hWnd, - HDC hDc, - LPRECT pR, - WCHAR *Text, - DWORD Flags, - WCHAR *AddonStr, - DWORD Addon) -{ - WCHAR Buf[512]; - - lstrcpy(Buf, AddonStr); - if(lstrlen(Buf))lstrcat(Buf, L" | "); - lstrcat(Buf, Text); - - DrawText( hDc, Buf, lstrlen(Buf), pR, DT_LEFT ); - - pR->top+=20; - pR->bottom+=20; - - if(!DrawCaption(hWnd, hDc, pR, Flags | Addon)) - { - printf("PAINT: DrawCaption failed: %d\n", (int)GetLastError()); - } - - pR->top+=30; - pR->bottom+=30; -} - -VOID DrawCaptionTest(HWND hWnd, HDC hDc, WCHAR *AddonStr, DWORD Addon) -{ - RECT Rect; - GetClientRect(hWnd, &Rect); - Rect.bottom = 30; - Rect.left = 10; - Rect.right-=10; - Rect.top = 10; - - CapTest(hWnd, hDc, &Rect, L"DC_TEXT:", DC_TEXT, AddonStr, Addon); - - CapTest(hWnd, hDc, &Rect, - L"DC_TEXT | DC_ACTIVE:", - DC_TEXT | DC_ACTIVE, - AddonStr, Addon); - - CapTest(hWnd, hDc, &Rect, - L"DC_TEXT | DC_ICON:" , - DC_TEXT | DC_ICON, - AddonStr, Addon); - - CapTest(hWnd, hDc, &Rect, - L"DC_TEXT | DC_ACTIVE | DC_ICON:" , - DC_TEXT | DC_ACTIVE | DC_ICON, - AddonStr, Addon); - - CapTest(hWnd, hDc, &Rect, - L"DC_TEXT | DC_INBUTTON:" , - DC_TEXT | DC_INBUTTON, - AddonStr, Addon); - - CapTest(hWnd, hDc, &Rect, - L"DC_TEXT | DC_ACTIVE | DC_INBUTTON:" , - DC_TEXT | DC_ACTIVE | DC_INBUTTON, - AddonStr, Addon); - - CapTest(hWnd, hDc, &Rect, - L"DC_TEXT | DC_ICON | DC_INBUTTON:" , - DC_TEXT | DC_ICON | DC_INBUTTON, - AddonStr, Addon); - - CapTest(hWnd, hDc, &Rect, - L"DC_TEXT | DC_ACTIVE | DC_ICON | DC_INBUTTON:" , - DC_TEXT | DC_ACTIVE | DC_ICON | DC_INBUTTON, - AddonStr, Addon); - -} - -LRESULT CALLBACK CaptWndProc(HWND hWnd, - UINT msg, - WPARAM wParam, - LPARAM lParam) -{ - - - switch (msg) - { - - case WM_PAINT: - { - HDC hDc; - PAINTSTRUCT Ps; - - hDc = BeginPaint(hWnd, &Ps); - SetBkMode( hDc, TRANSPARENT ); - - switch(testnum) - { - case 1: - DrawCaptionTest(hWnd, hDc, L"", 0); - break; - case 2: - DrawCaptionTest(hWnd, hDc, L"DC_GRADIENT", DC_GRADIENT); - break; - case 3: - DrawCaptionTest(hWnd, hDc, L"DC_SMALLCAP", DC_SMALLCAP); - break; - case 4: - DrawCaptionTest(hWnd, hDc, L"DC_BUTTONS", DC_BUTTONS); - break; - case 5: - DrawCaptionTest(hWnd, hDc, - L"DC_GRADIENT | DC_SMALLCAP", - DC_GRADIENT | DC_SMALLCAP); - break; - case 6: - DrawCaptionTest(hWnd, hDc, - L"DC_GRADIENT | DC_BUTTONS", - DC_GRADIENT | DC_BUTTONS); - break; - case 7: - DrawCaptionTest(hWnd, hDc, - L"DC_BUTTONS | DC_SMALLCAP", - DC_BUTTONS | DC_SMALLCAP); - break; - case 8: - DrawCaptionTest(hWnd, hDc, - L"DC_BUTTONS | DC_SMALLCAP | DC_GRADIENT", - DC_BUTTONS | DC_SMALLCAP | DC_GRADIENT); - break; - } - - EndPaint(hWnd, &Ps); - - return 0; - } - - case WM_DESTROY: - { - PostQuitMessage(0); - return 0; - } - } - - return DefWindowProc(hWnd, msg, wParam, lParam); -} - - -INT main(INT argc, CHAR **argv) -{ - HWND hWnd; - MSG msg; - WNDCLASSEX wcx; - UINT result; - HBRUSH hBr; - //HMODULE hLib; - - if(argc<2) - { - printf("DrawCaption testcode.\n"); - printf("USAGE: drawcap.exe [useicon]\n\n"); - printf("Available tests:\n" - "1. DrawCaption test\n" - "2. DrawCaption test + DC_GRADIENT\n" - "3. DrawCaption test + DC_SMALLCAP\n" - "4. DrawCaption test + DC_BUTTONS\n" - "5. DrawCaption test + DC_GRADIENT | DC_SMALLCAP\n" - "6. DrawCaption test + DC_GRADIENT | DC_BUTTONS\n" - "7. DrawCaption test + DC_BUTTONS | DC_SMALLCAP\n" - "8. DrawCaption test + DC_BUTTONS | DC_SMALLCAP | DC_GRADIENT\n\n"); - return 0; - } - - testnum = atoi(argv[1]); - if(testnum < 1 || testnum > 8) - { - printf("Unknown test %d\n", testnum); - return 1; - } - - hInst = GetModuleHandle(NULL); - - //hLib = LoadLibrary(L"user32"); - //if(!hLib) - //{ - // printf("Shit! Can't load user32.dll\n"); - // return 1; - //} - - //DrawCaptionTemp = GetProcAddress(hLib, "DrawCaptionTempW"); - //if(!DrawCaptionTemp) - //{ - // printf("Shit! Can't get DrawCaptionTemp address\n"); - // return 1; - //} - - hBr = CreateSolidBrush(RGB(255, 255, 255)); - if(!hBr) - { - printf("Shit! Can't create brush."); - return 1; - } - - memset(&wcx, 0, sizeof(wcx)); - wcx.cbSize = sizeof(wcx); - wcx.style = CS_HREDRAW | CS_VREDRAW; - wcx.lpfnWndProc = (WNDPROC) CaptWndProc; - wcx.hInstance = hInst; - wcx.hbrBackground = hBr; - wcx.lpszClassName = CaptWndClass; - if(argc > 2) wcx.hIconSm = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON1SM)); - - if(!(result = RegisterClassEx(&wcx))) - { - printf("Shit! RegisterClassEx failed: %d\n", - (int)GetLastError()); - DeleteObject(hBr); - return 1; - } - - hWnd = CreateWindowEx(0, - CaptWndClass, - L"DrawCaption test", - WS_OVERLAPPED|WS_THICKFRAME|WS_SYSMENU, - CW_USEDEFAULT, - CW_USEDEFAULT, - 600, - 470, - NULL, - 0, - hInst, - NULL); - - if(!hWnd) - { - printf("Shit! Can't create wnd!\n"); - UnregisterClass(CaptWndClass, hInst); - DeleteObject(hBr); - return 1; - } - - - ShowWindow(hWnd, SW_SHOW); - UpdateWindow(hWnd); - - while(GetMessage(&msg, NULL, 0, 0 )) - { - TranslateMessage(&msg); - DispatchMessage(&msg); - } - - DeleteObject(hBr); - UnregisterClass(CaptWndClass, hInst); - return 0; -} +/* + * Copyright 2006 Saveliy Tretiakov + * + * 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. + * + * This 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. + * + * You 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. + */ + +#include "windows.h" +#include "resource.h" +#include "stdio.h" + +WCHAR CaptWndClass[] = L"captwnd_class"; + +HINSTANCE hInst; +INT testnum = 0; + +//BOOL STDCALL (*DrawCaptionTemp) ( +// HWND hwnd, +// HDC hdc, +// const RECT *rect, +// HFONT hFont, +// HICON hIcon, +// LPCWSTR str, +// UINT uFlags); + +VOID CapTest(HWND hWnd, + HDC hDc, + LPRECT pR, + WCHAR *Text, + DWORD Flags, + WCHAR *AddonStr, + DWORD Addon) +{ + WCHAR Buf[512]; + + lstrcpy(Buf, AddonStr); + if(lstrlen(Buf))lstrcat(Buf, L" | "); + lstrcat(Buf, Text); + + DrawText( hDc, Buf, lstrlen(Buf), pR, DT_LEFT ); + + pR->top+=20; + pR->bottom+=20; + + if(!DrawCaption(hWnd, hDc, pR, Flags | Addon)) + { + printf("PAINT: DrawCaption failed: %d\n", (int)GetLastError()); + } + + pR->top+=30; + pR->bottom+=30; +} + +VOID DrawCaptionTest(HWND hWnd, HDC hDc, WCHAR *AddonStr, DWORD Addon) +{ + RECT Rect; + GetClientRect(hWnd, &Rect); + Rect.bottom = 30; + Rect.left = 10; + Rect.right-=10; + Rect.top = 10; + + CapTest(hWnd, hDc, &Rect, L"DC_TEXT:", DC_TEXT, AddonStr, Addon); + + CapTest(hWnd, hDc, &Rect, + L"DC_TEXT | DC_ACTIVE:", + DC_TEXT | DC_ACTIVE, + AddonStr, Addon); + + CapTest(hWnd, hDc, &Rect, + L"DC_TEXT | DC_ICON:" , + DC_TEXT | DC_ICON, + AddonStr, Addon); + + CapTest(hWnd, hDc, &Rect, + L"DC_TEXT | DC_ACTIVE | DC_ICON:" , + DC_TEXT | DC_ACTIVE | DC_ICON, + AddonStr, Addon); + + CapTest(hWnd, hDc, &Rect, + L"DC_TEXT | DC_INBUTTON:" , + DC_TEXT | DC_INBUTTON, + AddonStr, Addon); + + CapTest(hWnd, hDc, &Rect, + L"DC_TEXT | DC_ACTIVE | DC_INBUTTON:" , + DC_TEXT | DC_ACTIVE | DC_INBUTTON, + AddonStr, Addon); + + CapTest(hWnd, hDc, &Rect, + L"DC_TEXT | DC_ICON | DC_INBUTTON:" , + DC_TEXT | DC_ICON | DC_INBUTTON, + AddonStr, Addon); + + CapTest(hWnd, hDc, &Rect, + L"DC_TEXT | DC_ACTIVE | DC_ICON | DC_INBUTTON:" , + DC_TEXT | DC_ACTIVE | DC_ICON | DC_INBUTTON, + AddonStr, Addon); + +} + +LRESULT CALLBACK CaptWndProc(HWND hWnd, + UINT msg, + WPARAM wParam, + LPARAM lParam) +{ + + + switch (msg) + { + + case WM_PAINT: + { + HDC hDc; + PAINTSTRUCT Ps; + + hDc = BeginPaint(hWnd, &Ps); + SetBkMode( hDc, TRANSPARENT ); + + switch(testnum) + { + case 1: + DrawCaptionTest(hWnd, hDc, L"", 0); + break; + case 2: + DrawCaptionTest(hWnd, hDc, L"DC_GRADIENT", DC_GRADIENT); + break; + case 3: + DrawCaptionTest(hWnd, hDc, L"DC_SMALLCAP", DC_SMALLCAP); + break; + case 4: + DrawCaptionTest(hWnd, hDc, L"DC_BUTTONS", DC_BUTTONS); + break; + case 5: + DrawCaptionTest(hWnd, hDc, + L"DC_GRADIENT | DC_SMALLCAP", + DC_GRADIENT | DC_SMALLCAP); + break; + case 6: + DrawCaptionTest(hWnd, hDc, + L"DC_GRADIENT | DC_BUTTONS", + DC_GRADIENT | DC_BUTTONS); + break; + case 7: + DrawCaptionTest(hWnd, hDc, + L"DC_BUTTONS | DC_SMALLCAP", + DC_BUTTONS | DC_SMALLCAP); + break; + case 8: + DrawCaptionTest(hWnd, hDc, + L"DC_BUTTONS | DC_SMALLCAP | DC_GRADIENT", + DC_BUTTONS | DC_SMALLCAP | DC_GRADIENT); + break; + } + + EndPaint(hWnd, &Ps); + + return 0; + } + + case WM_DESTROY: + { + PostQuitMessage(0); + return 0; + } + } + + return DefWindowProc(hWnd, msg, wParam, lParam); +} + + +INT main(INT argc, CHAR **argv) +{ + HWND hWnd; + MSG msg; + WNDCLASSEX wcx; + UINT result; + HBRUSH hBr; + //HMODULE hLib; + + if(argc<2) + { + printf("DrawCaption testcode.\n"); + printf("USAGE: drawcap.exe [useicon]\n\n"); + printf("Available tests:\n" + "1. DrawCaption test\n" + "2. DrawCaption test + DC_GRADIENT\n" + "3. DrawCaption test + DC_SMALLCAP\n" + "4. DrawCaption test + DC_BUTTONS\n" + "5. DrawCaption test + DC_GRADIENT | DC_SMALLCAP\n" + "6. DrawCaption test + DC_GRADIENT | DC_BUTTONS\n" + "7. DrawCaption test + DC_BUTTONS | DC_SMALLCAP\n" + "8. DrawCaption test + DC_BUTTONS | DC_SMALLCAP | DC_GRADIENT\n\n"); + return 0; + } + + testnum = atoi(argv[1]); + if(testnum < 1 || testnum > 8) + { + printf("Unknown test %d\n", testnum); + return 1; + } + + hInst = GetModuleHandle(NULL); + + //hLib = LoadLibrary(L"user32"); + //if(!hLib) + //{ + // printf("Shit! Can't load user32.dll\n"); + // return 1; + //} + + //DrawCaptionTemp = GetProcAddress(hLib, "DrawCaptionTempW"); + //if(!DrawCaptionTemp) + //{ + // printf("Shit! Can't get DrawCaptionTemp address\n"); + // return 1; + //} + + hBr = CreateSolidBrush(RGB(255, 255, 255)); + if(!hBr) + { + printf("Shit! Can't create brush."); + return 1; + } + + memset(&wcx, 0, sizeof(wcx)); + wcx.cbSize = sizeof(wcx); + wcx.style = CS_HREDRAW | CS_VREDRAW; + wcx.lpfnWndProc = (WNDPROC) CaptWndProc; + wcx.hInstance = hInst; + wcx.hbrBackground = hBr; + wcx.lpszClassName = CaptWndClass; + if(argc > 2) wcx.hIconSm = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON1SM)); + + if(!(result = RegisterClassEx(&wcx))) + { + printf("Shit! RegisterClassEx failed: %d\n", + (int)GetLastError()); + DeleteObject(hBr); + return 1; + } + + hWnd = CreateWindowEx(0, + CaptWndClass, + L"DrawCaption test", + WS_OVERLAPPED|WS_THICKFRAME|WS_SYSMENU, + CW_USEDEFAULT, + CW_USEDEFAULT, + 600, + 470, + NULL, + 0, + hInst, + NULL); + + if(!hWnd) + { + printf("Shit! Can't create wnd!\n"); + UnregisterClass(CaptWndClass, hInst); + DeleteObject(hBr); + return 1; + } + + + ShowWindow(hWnd, SW_SHOW); + UpdateWindow(hWnd); + + while(GetMessage(&msg, NULL, 0, 0 )) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + + DeleteObject(hBr); + UnregisterClass(CaptWndClass, hInst); + return 0; +} diff --git a/reactos/base/applications/testsets/user32/drawcaption/drawcap.rc b/reactos/base/applications/testsets/user32/drawcaption/drawcap.rc index 2ff0a125e76..c7f3270e80a 100644 --- a/reactos/base/applications/testsets/user32/drawcaption/drawcap.rc +++ b/reactos/base/applications/testsets/user32/drawcaption/drawcap.rc @@ -1,11 +1,11 @@ -#include -#include "resource.h" - -#define REACTOS_STR_FILE_DESCRIPTION "ReactOS DrawCaption test\0" -#define REACTOS_STR_INTERNAL_NAME "drawcap\0" -#define REACTOS_STR_ORIGINAL_FILENAME "drawcap.exe\0" -#include - -ID_ICON1SM ICON res\icon1sm.ico - - +#include +#include "resource.h" + +#define REACTOS_STR_FILE_DESCRIPTION "ReactOS DrawCaption test\0" +#define REACTOS_STR_INTERNAL_NAME "drawcap\0" +#define REACTOS_STR_ORIGINAL_FILENAME "drawcap.exe\0" +#include + +ID_ICON1SM ICON res\icon1sm.ico + + diff --git a/reactos/base/applications/testsets/user32/drawcaption/drawcaption.rbuild b/reactos/base/applications/testsets/user32/drawcaption/drawcaption.rbuild index 9f9024ac2bc..9593d201568 100644 --- a/reactos/base/applications/testsets/user32/drawcaption/drawcaption.rbuild +++ b/reactos/base/applications/testsets/user32/drawcaption/drawcaption.rbuild @@ -1,29 +1,29 @@ - - . - - - - 0x0500 - 0x0600 - 0x0600 - kernel32 - user32 - gdi32 - drawcap.c - drawcap.rc - - - - . - - - - 0x0500 - 0x0600 - 0x0600 - kernel32 - user32 - gdi32 - capicon.c - capicon.rc - + + . + + + + 0x0500 + 0x0600 + 0x0600 + kernel32 + user32 + gdi32 + drawcap.c + drawcap.rc + + + + . + + + + 0x0500 + 0x0600 + 0x0600 + kernel32 + user32 + gdi32 + capicon.c + capicon.rc + diff --git a/reactos/base/applications/testsets/user32/drawcaption/resource.h b/reactos/base/applications/testsets/user32/drawcaption/resource.h index b967ebaf3be..ce5b98a9f4d 100644 --- a/reactos/base/applications/testsets/user32/drawcaption/resource.h +++ b/reactos/base/applications/testsets/user32/drawcaption/resource.h @@ -1,10 +1,10 @@ -#ifndef _CAPICON_RESOURCE_H -#define _CAPICON_RESOURCE_H - -#define ID_ICON1BIG 101 -#define ID_ICON1SM 102 -#define ID_ICON2BIG 103 -#define ID_ICON2SM 104 - - -#endif /* _CAPICON_RESOURCE_H */ +#ifndef _CAPICON_RESOURCE_H +#define _CAPICON_RESOURCE_H + +#define ID_ICON1BIG 101 +#define ID_ICON1SM 102 +#define ID_ICON2BIG 103 +#define ID_ICON2SM 104 + + +#endif /* _CAPICON_RESOURCE_H */ diff --git a/reactos/base/applications/testsets/user32/sysicon/sysicon.c b/reactos/base/applications/testsets/user32/sysicon/sysicon.c index e6f38c643e4..054f422516a 100644 --- a/reactos/base/applications/testsets/user32/sysicon/sysicon.c +++ b/reactos/base/applications/testsets/user32/sysicon/sysicon.c @@ -1,163 +1,163 @@ -/* - * Copyright 2006 Saveliy Tretiakov - * - * 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. - * - * This 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. - * - * You 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. - */ - - /* This testapp demonstrates WS_SYSMENU + WS_EX_DLGMODALFRAME - * behavior and shows that DrawCaption does care - * about WS_EX_DLGMODALFRAME and WS_EX_TOOLWINDOW - */ - -#include "windows.h" -#include "stdio.h" -#include "resource.h" - -WCHAR WndClass[] = L"sysicon_class"; - -LRESULT CALLBACK WndProc(HWND hWnd, - UINT msg, - WPARAM wParam, - LPARAM lParam) -{ - - switch (msg) - { - - case WM_PAINT: - { - HDC hDc; - PAINTSTRUCT Ps; - RECT Rect; - GetClientRect(hWnd, &Rect); - - Rect.left = 10; - Rect.top = 10; - Rect.right-=10; - Rect.bottom = 25; - - hDc = BeginPaint(hWnd, &Ps); - SetBkMode( hDc, TRANSPARENT ); - - DrawCaption(hWnd, hDc, &Rect, DC_GRADIENT | DC_ACTIVE | DC_TEXT | DC_ICON); - - EndPaint(hWnd, &Ps); - - return 0; - } - - case WM_DESTROY: - PostQuitMessage(0); - return 0; - } - - return DefWindowProc(hWnd, msg, wParam, lParam); -} - -int APIENTRY WinMain(HINSTANCE hInst, - HINSTANCE hPrevInstance, - LPSTR lpCmdLine, - int nCmdShow) -{ - HWND hWnd1, hWnd2, hWnd3; - MSG msg; - WNDCLASSEX wcx; - UINT result; - - memset(&wcx, 0, sizeof(wcx)); - wcx.cbSize = sizeof(wcx); - wcx.lpfnWndProc = (WNDPROC) WndProc; - wcx.hInstance = hInst; - wcx.hbrBackground = (HBRUSH)COLOR_WINDOW; - wcx.lpszClassName = WndClass; - - if(!(result = RegisterClassEx(&wcx))) - { - return 1; - } - - /* WS_EX_DLGMODALFRAME */ - hWnd1 = CreateWindowEx(WS_EX_DLGMODALFRAME, - WndClass, - L"WS_SYSMENU | WS_EX_DLGMODALFRAME", - WS_CAPTION | WS_SYSMENU , - CW_USEDEFAULT, - CW_USEDEFAULT, - 400, - 100, - NULL, - 0, - hInst, - NULL); - - if(!hWnd1) - { - return 1; - } - - ShowWindow(hWnd1, SW_SHOW); - UpdateWindow(hWnd1); - - hWnd2 = CreateWindowEx(WS_EX_TOOLWINDOW, - WndClass, - L"WS_SYSMENU | WS_EX_TOOLWINDOW", - WS_CAPTION | WS_SYSMENU , - CW_USEDEFAULT, - CW_USEDEFAULT, - 400, - 100, - NULL, - 0, - hInst, - NULL); - - if(!hWnd2) - { - return 1; - } - - ShowWindow(hWnd2, SW_SHOW); - UpdateWindow(hWnd2); - - hWnd3 = CreateWindowEx(0, - WndClass, - L"WS_SYSMENU ", - WS_CAPTION | WS_SYSMENU , - CW_USEDEFAULT, - CW_USEDEFAULT, - 400, - 100, - NULL, - 0, - hInst, - NULL); - - if(!hWnd3) - { - return 1; - } - - ShowWindow(hWnd3, SW_SHOW); - UpdateWindow(hWnd3); - - while(GetMessage(&msg, NULL, 0, 0 )) - { - TranslateMessage(&msg); - DispatchMessage(&msg); - } - - UnregisterClass(WndClass, hInst); - return 0; -} +/* + * Copyright 2006 Saveliy Tretiakov + * + * 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. + * + * This 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. + * + * You 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. + */ + + /* This testapp demonstrates WS_SYSMENU + WS_EX_DLGMODALFRAME + * behavior and shows that DrawCaption does care + * about WS_EX_DLGMODALFRAME and WS_EX_TOOLWINDOW + */ + +#include "windows.h" +#include "stdio.h" +#include "resource.h" + +WCHAR WndClass[] = L"sysicon_class"; + +LRESULT CALLBACK WndProc(HWND hWnd, + UINT msg, + WPARAM wParam, + LPARAM lParam) +{ + + switch (msg) + { + + case WM_PAINT: + { + HDC hDc; + PAINTSTRUCT Ps; + RECT Rect; + GetClientRect(hWnd, &Rect); + + Rect.left = 10; + Rect.top = 10; + Rect.right-=10; + Rect.bottom = 25; + + hDc = BeginPaint(hWnd, &Ps); + SetBkMode( hDc, TRANSPARENT ); + + DrawCaption(hWnd, hDc, &Rect, DC_GRADIENT | DC_ACTIVE | DC_TEXT | DC_ICON); + + EndPaint(hWnd, &Ps); + + return 0; + } + + case WM_DESTROY: + PostQuitMessage(0); + return 0; + } + + return DefWindowProc(hWnd, msg, wParam, lParam); +} + +int APIENTRY WinMain(HINSTANCE hInst, + HINSTANCE hPrevInstance, + LPSTR lpCmdLine, + int nCmdShow) +{ + HWND hWnd1, hWnd2, hWnd3; + MSG msg; + WNDCLASSEX wcx; + UINT result; + + memset(&wcx, 0, sizeof(wcx)); + wcx.cbSize = sizeof(wcx); + wcx.lpfnWndProc = (WNDPROC) WndProc; + wcx.hInstance = hInst; + wcx.hbrBackground = (HBRUSH)COLOR_WINDOW; + wcx.lpszClassName = WndClass; + + if(!(result = RegisterClassEx(&wcx))) + { + return 1; + } + + /* WS_EX_DLGMODALFRAME */ + hWnd1 = CreateWindowEx(WS_EX_DLGMODALFRAME, + WndClass, + L"WS_SYSMENU | WS_EX_DLGMODALFRAME", + WS_CAPTION | WS_SYSMENU , + CW_USEDEFAULT, + CW_USEDEFAULT, + 400, + 100, + NULL, + 0, + hInst, + NULL); + + if(!hWnd1) + { + return 1; + } + + ShowWindow(hWnd1, SW_SHOW); + UpdateWindow(hWnd1); + + hWnd2 = CreateWindowEx(WS_EX_TOOLWINDOW, + WndClass, + L"WS_SYSMENU | WS_EX_TOOLWINDOW", + WS_CAPTION | WS_SYSMENU , + CW_USEDEFAULT, + CW_USEDEFAULT, + 400, + 100, + NULL, + 0, + hInst, + NULL); + + if(!hWnd2) + { + return 1; + } + + ShowWindow(hWnd2, SW_SHOW); + UpdateWindow(hWnd2); + + hWnd3 = CreateWindowEx(0, + WndClass, + L"WS_SYSMENU ", + WS_CAPTION | WS_SYSMENU , + CW_USEDEFAULT, + CW_USEDEFAULT, + 400, + 100, + NULL, + 0, + hInst, + NULL); + + if(!hWnd3) + { + return 1; + } + + ShowWindow(hWnd3, SW_SHOW); + UpdateWindow(hWnd3); + + while(GetMessage(&msg, NULL, 0, 0 )) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + + UnregisterClass(WndClass, hInst); + return 0; +} diff --git a/reactos/base/applications/testsets/user32/sysicon/sysicon.rbuild b/reactos/base/applications/testsets/user32/sysicon/sysicon.rbuild index e94e0ba443d..cc617fee768 100644 --- a/reactos/base/applications/testsets/user32/sysicon/sysicon.rbuild +++ b/reactos/base/applications/testsets/user32/sysicon/sysicon.rbuild @@ -1,13 +1,13 @@ - - . - - - - 0x0500 - 0x0600 - 0x0600 - kernel32 - user32 - gdi32 - sysicon.c - + + . + + + + 0x0500 + 0x0600 + 0x0600 + kernel32 + user32 + gdi32 + sysicon.c + diff --git a/reactos/base/applications/testsets/user32/user32.rbuild b/reactos/base/applications/testsets/user32/user32.rbuild index d72d18db67e..7ff61eb109f 100644 --- a/reactos/base/applications/testsets/user32/user32.rbuild +++ b/reactos/base/applications/testsets/user32/user32.rbuild @@ -1,10 +1,10 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/reactos/base/applications/tsclient/MissTosca.sln b/reactos/base/applications/tsclient/MissTosca.sln index 7c035a066dd..4156cc20bc3 100644 --- a/reactos/base/applications/tsclient/MissTosca.sln +++ b/reactos/base/applications/tsclient/MissTosca.sln @@ -1,38 +1,38 @@ -п»ї -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual C++ Express 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rdesktop-core", "rdesktop\rdesktop-core.vcproj", "{8620E9B2-9AF0-4F69-A5AF-C195D5F86372}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mstsc", "mstsc\mstsc.vcproj", "{1B415732-1F37-415F-957B-EA436301860D}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mstscax", "mstscax\mstscax.vcproj", "{2C217E9E-9D77-4D6A-9259-216FD56BA56F}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rdesktop-core-tester", "porting-tools\rdesktop-core-tester\rdesktop-core-tester.vcproj", "{B172A623-E2BD-4E3F-86E6-620548FE255B}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8620E9B2-9AF0-4F69-A5AF-C195D5F86372}.Debug|Win32.ActiveCfg = Debug|Win32 - {8620E9B2-9AF0-4F69-A5AF-C195D5F86372}.Debug|Win32.Build.0 = Debug|Win32 - {8620E9B2-9AF0-4F69-A5AF-C195D5F86372}.Release|Win32.ActiveCfg = Release|Win32 - {8620E9B2-9AF0-4F69-A5AF-C195D5F86372}.Release|Win32.Build.0 = Release|Win32 - {1B415732-1F37-415F-957B-EA436301860D}.Debug|Win32.ActiveCfg = Debug|Win32 - {1B415732-1F37-415F-957B-EA436301860D}.Debug|Win32.Build.0 = Debug|Win32 - {1B415732-1F37-415F-957B-EA436301860D}.Release|Win32.ActiveCfg = Release|Win32 - {1B415732-1F37-415F-957B-EA436301860D}.Release|Win32.Build.0 = Release|Win32 - {2C217E9E-9D77-4D6A-9259-216FD56BA56F}.Debug|Win32.ActiveCfg = Debug|Win32 - {2C217E9E-9D77-4D6A-9259-216FD56BA56F}.Debug|Win32.Build.0 = Debug|Win32 - {2C217E9E-9D77-4D6A-9259-216FD56BA56F}.Release|Win32.ActiveCfg = Release|Win32 - {2C217E9E-9D77-4D6A-9259-216FD56BA56F}.Release|Win32.Build.0 = Release|Win32 - {B172A623-E2BD-4E3F-86E6-620548FE255B}.Debug|Win32.ActiveCfg = Debug|Win32 - {B172A623-E2BD-4E3F-86E6-620548FE255B}.Debug|Win32.Build.0 = Debug|Win32 - {B172A623-E2BD-4E3F-86E6-620548FE255B}.Release|Win32.ActiveCfg = Release|Win32 - {B172A623-E2BD-4E3F-86E6-620548FE255B}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal +п»ї +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual C++ Express 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rdesktop-core", "rdesktop\rdesktop-core.vcproj", "{8620E9B2-9AF0-4F69-A5AF-C195D5F86372}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mstsc", "mstsc\mstsc.vcproj", "{1B415732-1F37-415F-957B-EA436301860D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mstscax", "mstscax\mstscax.vcproj", "{2C217E9E-9D77-4D6A-9259-216FD56BA56F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rdesktop-core-tester", "porting-tools\rdesktop-core-tester\rdesktop-core-tester.vcproj", "{B172A623-E2BD-4E3F-86E6-620548FE255B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8620E9B2-9AF0-4F69-A5AF-C195D5F86372}.Debug|Win32.ActiveCfg = Debug|Win32 + {8620E9B2-9AF0-4F69-A5AF-C195D5F86372}.Debug|Win32.Build.0 = Debug|Win32 + {8620E9B2-9AF0-4F69-A5AF-C195D5F86372}.Release|Win32.ActiveCfg = Release|Win32 + {8620E9B2-9AF0-4F69-A5AF-C195D5F86372}.Release|Win32.Build.0 = Release|Win32 + {1B415732-1F37-415F-957B-EA436301860D}.Debug|Win32.ActiveCfg = Debug|Win32 + {1B415732-1F37-415F-957B-EA436301860D}.Debug|Win32.Build.0 = Debug|Win32 + {1B415732-1F37-415F-957B-EA436301860D}.Release|Win32.ActiveCfg = Release|Win32 + {1B415732-1F37-415F-957B-EA436301860D}.Release|Win32.Build.0 = Release|Win32 + {2C217E9E-9D77-4D6A-9259-216FD56BA56F}.Debug|Win32.ActiveCfg = Debug|Win32 + {2C217E9E-9D77-4D6A-9259-216FD56BA56F}.Debug|Win32.Build.0 = Debug|Win32 + {2C217E9E-9D77-4D6A-9259-216FD56BA56F}.Release|Win32.ActiveCfg = Release|Win32 + {2C217E9E-9D77-4D6A-9259-216FD56BA56F}.Release|Win32.Build.0 = Release|Win32 + {B172A623-E2BD-4E3F-86E6-620548FE255B}.Debug|Win32.ActiveCfg = Debug|Win32 + {B172A623-E2BD-4E3F-86E6-620548FE255B}.Debug|Win32.Build.0 = Debug|Win32 + {B172A623-E2BD-4E3F-86E6-620548FE255B}.Release|Win32.ActiveCfg = Release|Win32 + {B172A623-E2BD-4E3F-86E6-620548FE255B}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/reactos/base/applications/tsclient/mstsc/mstsc.cpp b/reactos/base/applications/tsclient/mstsc/mstsc.cpp index 91806ac5f3b..106d7296c01 100644 --- a/reactos/base/applications/tsclient/mstsc/mstsc.cpp +++ b/reactos/base/applications/tsclient/mstsc/mstsc.cpp @@ -1,7 +1,7 @@ -#include "stdafx.h" - -int _tmain(int argc, _TCHAR* argv[]) -{ - return 0; -} - +#include "stdafx.h" + +int _tmain(int argc, _TCHAR* argv[]) +{ + return 0; +} + diff --git a/reactos/base/applications/tsclient/mstsc/mstsc.vcproj b/reactos/base/applications/tsclient/mstsc/mstsc.vcproj index a6d58a9cc1c..a992a2dd97c 100644 --- a/reactos/base/applications/tsclient/mstsc/mstsc.vcproj +++ b/reactos/base/applications/tsclient/mstsc/mstsc.vcproj @@ -1,223 +1,223 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/reactos/base/applications/tsclient/mstsc/stdafx.cpp b/reactos/base/applications/tsclient/mstsc/stdafx.cpp index cc6f8043102..f7caa754005 100644 --- a/reactos/base/applications/tsclient/mstsc/stdafx.cpp +++ b/reactos/base/applications/tsclient/mstsc/stdafx.cpp @@ -1,8 +1,8 @@ -// stdafx.cpp : source file that includes just the standard includes -// mstsc.pch will be the pre-compiled header -// stdafx.obj will contain the pre-compiled type information - -#include "stdafx.h" - -// TODO: reference any additional headers you need in STDAFX.H -// and not in this file +// stdafx.cpp : source file that includes just the standard includes +// mstsc.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + +// TODO: reference any additional headers you need in STDAFX.H +// and not in this file diff --git a/reactos/base/applications/tsclient/mstsc/stdafx.h b/reactos/base/applications/tsclient/mstsc/stdafx.h index 83cd4a71993..ddacb46d869 100644 --- a/reactos/base/applications/tsclient/mstsc/stdafx.h +++ b/reactos/base/applications/tsclient/mstsc/stdafx.h @@ -1,15 +1,15 @@ -// stdafx.h : include file for standard system include files, -// or project specific include files that are used frequently, but -// are changed infrequently -// - -#pragma once - - -#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers -#include -#include - - - -// TODO: reference additional headers your program requires here +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#pragma once + + +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers +#include +#include + + + +// TODO: reference additional headers your program requires here diff --git a/reactos/base/applications/tsclient/mstscax/mstscax.cpp b/reactos/base/applications/tsclient/mstscax/mstscax.cpp index 91806ac5f3b..106d7296c01 100644 --- a/reactos/base/applications/tsclient/mstscax/mstscax.cpp +++ b/reactos/base/applications/tsclient/mstscax/mstscax.cpp @@ -1,7 +1,7 @@ -#include "stdafx.h" - -int _tmain(int argc, _TCHAR* argv[]) -{ - return 0; -} - +#include "stdafx.h" + +int _tmain(int argc, _TCHAR* argv[]) +{ + return 0; +} + diff --git a/reactos/base/applications/tsclient/mstscax/mstscax.vcproj b/reactos/base/applications/tsclient/mstscax/mstscax.vcproj index 7b3b3b0144f..8bcb326864a 100644 --- a/reactos/base/applications/tsclient/mstscax/mstscax.vcproj +++ b/reactos/base/applications/tsclient/mstscax/mstscax.vcproj @@ -1,223 +1,223 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/reactos/base/applications/tsclient/mstscax/stdafx.cpp b/reactos/base/applications/tsclient/mstscax/stdafx.cpp index 166b44effc9..9a99ced5d1d 100644 --- a/reactos/base/applications/tsclient/mstscax/stdafx.cpp +++ b/reactos/base/applications/tsclient/mstscax/stdafx.cpp @@ -1,8 +1,8 @@ -// stdafx.cpp : source file that includes just the standard includes -// mstscax.pch will be the pre-compiled header -// stdafx.obj will contain the pre-compiled type information - -#include "stdafx.h" - -// TODO: reference any additional headers you need in STDAFX.H -// and not in this file +// stdafx.cpp : source file that includes just the standard includes +// mstscax.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + +// TODO: reference any additional headers you need in STDAFX.H +// and not in this file diff --git a/reactos/base/applications/tsclient/mstscax/stdafx.h b/reactos/base/applications/tsclient/mstscax/stdafx.h index 83cd4a71993..ddacb46d869 100644 --- a/reactos/base/applications/tsclient/mstscax/stdafx.h +++ b/reactos/base/applications/tsclient/mstscax/stdafx.h @@ -1,15 +1,15 @@ -// stdafx.h : include file for standard system include files, -// or project specific include files that are used frequently, but -// are changed infrequently -// - -#pragma once - - -#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers -#include -#include - - - -// TODO: reference additional headers your program requires here +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#pragma once + + +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers +#include +#include + + + +// TODO: reference additional headers your program requires here diff --git a/reactos/base/applications/tsclient/porting-tools/mstscax/mstscax.cpp b/reactos/base/applications/tsclient/porting-tools/mstscax/mstscax.cpp index 66bc2f1e440..84e997ef3bb 100644 --- a/reactos/base/applications/tsclient/porting-tools/mstscax/mstscax.cpp +++ b/reactos/base/applications/tsclient/porting-tools/mstscax/mstscax.cpp @@ -1,5011 +1,5011 @@ -#include "stdafx.h" - -namespace -{ - using namespace MSTSCLib; - - typedef HRESULT (STDAPICALLTYPE * PFNDLLGETCLASSOBJECT)(IN REFCLSID rclsid, IN REFIID riid, OUT LPVOID FAR * ppv); - typedef HRESULT (STDAPICALLTYPE * PFNDLLCANUNLOADNOW)(void); - typedef ULONG (STDAPICALLTYPE * PFNDLLGETTSCCTLVER)(void); - - PFNDLLGETCLASSOBJECT pfnDllGetClassObject = NULL; - PFNDLLCANUNLOADNOW pfnDllCanUnloadNow = NULL; - PFNDLLGETTSCCTLVER pfnDllGetTscCtlVer = NULL; - - HMODULE hmMstscax = NULL; - - extern "C" char __ImageBase; - static const HMODULE hmSelf = reinterpret_cast(&__ImageBase); - - void init() - { - if(hmMstscax) - return; - - TCHAR szFileName[MAX_PATH + 1]; - GetModuleFileName(hmSelf, szFileName, MAX_PATH); - - std::basic_string strFileName(&szFileName[0]); - std::reverse_iterator::const_iterator > begin(strFileName.end()); - std::reverse_iterator::const_iterator > end(strFileName.begin()); - std::basic_string::const_iterator endPath = std::find(begin, end, TEXT('\\')).base(); - - std::basic_string strPath(strFileName.begin(), endPath); - strPath.append(TEXT("original\\mstscax.dll")); - - hmMstscax = LoadLibrary(strPath.c_str()); - pfnDllGetClassObject = (PFNDLLGETCLASSOBJECT)GetProcAddress(hmMstscax, "DllGetClassObject"); - pfnDllCanUnloadNow = (PFNDLLCANUNLOADNOW)GetProcAddress(hmMstscax, "DllCanUnloadNow"); - pfnDllGetTscCtlVer = (PFNDLLGETTSCCTLVER)GetProcAddress(hmMstscax, "DllGetTscCtlVer"); - } - - void dbgprintf(LPCTSTR fmt, ...) - { - TCHAR buf[0x1000]; - - va_list args; - va_start(args, fmt); - StringCbVPrintf(buf, sizeof(buf), fmt, args); - va_end(args); - - StringCbCat(buf, sizeof(buf), TEXT("\n")); - - OutputDebugString(buf); - } - -#if 0 - const IID MsTscAxIIDs[] = - { - IID_IMsRdpClient, - IID_IMsTscAx, - //IID_IMsTscAxEvents, - IID_IMsTscNonScriptable, - IID_IMsRdpClientNonScriptable, - }; - - const IID MsRdpClient[] = - { - IID_IMsRdpClient, - IID_IMsTscAx, - //IID_IMsTscAxEvents, - IID_IMsTscNonScriptable, - IID_IMsRdpClientNonScriptable, - }; - - const IID MsRdpClient2[] = - { - IID_IMsRdpClient2, - IID_IMsRdpClient, - IID_IMsTscAx, - //IID_IMsTscAxEvents, - IID_IMsTscNonScriptable, - IID_IMsRdpClientNonScriptable, - }; - - const IID MsRdpClient3[] = - { - IID_IMsRdpClient3, - IID_IMsRdpClient2, - IID_IMsRdpClient, - IID_IMsTscAx, - //IID_IMsTscAxEvents, - IID_IMsTscNonScriptable, - IID_IMsRdpClientNonScriptable, - }; - - const IID MsRdpClient4[] = - { - IID_IMsRdpClient4, - IID_IMsRdpClient3, - IID_IMsRdpClient2, - IID_IMsRdpClient, - IID_IMsTscAx, - //IID_IMsTscAxEvents, - IID_IMsTscNonScriptable, - IID_IMsRdpClientNonScriptable, - IID_IMsRdpClientNonScriptable2, - }; -#endif - - std::wstring UUIDToString(const UUID& uuid) - { - std::wstring s; - LPOLESTR str; - StringFromCLSID(uuid, &str); - s += str; - CoTaskMemFree(str); - return s; - } - - std::wstring MonikerToString(IMoniker * pmk) - { - LPOLESTR pszName = NULL; - - if(SUCCEEDED(pmk->GetDisplayName(NULL, NULL, &pszName))) - { - std::wstring s(pszName); - CoTaskMemFree(pszName); - return s; - } - else - return std::wstring(L""); - } - - std::basic_string RectToString(const RECT& rc) - { - if(&rc == NULL) - return TEXT(""); - - std::basic_ostringstream o; - o << "{" << " left:" << rc.left << " top:" << rc.top << " right:" << rc.right << " bottom:" << rc.bottom << " }"; - return o.str(); - } - - std::basic_string RectToString(const RECTL& rc) - { - if(&rc == NULL) - return TEXT(""); - - std::basic_ostringstream o; - o << "{" << " left:" << rc.left << " top:" << rc.top << " right:" << rc.right << " bottom:" << rc.bottom << " }"; - return o.str(); - } - - std::basic_string SizeToString(const SIZE& sz) - { - if(&sz == NULL) - return TEXT(""); - - std::basic_ostringstream o; - o << "{ " << " cx:" << sz.cx << " cy:" << sz.cy << " }"; - return o.str(); - } - - template LPCTSTR BooleanToString(const T& X) - { - return X ? TEXT("true") : TEXT("false"); - } - - std::basic_string VariantToString(const VARIANT& var) - { - std::basic_ostringstream o; - - switch(var.vt & VT_TYPEMASK) - { - case VT_EMPTY: o << ""; break; - case VT_NULL: o << ""; break; - case VT_I2: o << "short"; break; - case VT_I4: o << "long"; break; - case VT_R4: o << "float"; break; - case VT_R8: o << "double"; break; - case VT_CY: o << "CURRENCY"; break; - case VT_DATE: o << "DATE"; break; - case VT_BSTR: o << "string"; break; - case VT_DISPATCH: o << "IDispatch *"; break; - case VT_ERROR: o << "SCODE"; break; - case VT_BOOL: o << "bool"; break; - case VT_VARIANT: o << "VARIANT *"; break; - case VT_UNKNOWN: o << "IUnknown *"; break; - case VT_DECIMAL: o << "DECIMAL"; break; - case VT_I1: o << "char"; break; - case VT_UI1: o << "unsigned char"; break; - case VT_UI2: o << "unsigned short"; break; - case VT_UI4: o << "unsigned long"; break; - case VT_I8: o << "long long"; break; - case VT_UI8: o << "unsigned long long"; break; - case VT_INT: o << "int"; break; - case VT_UINT: o << "unsigned int"; break; - case VT_VOID: o << "void"; break; - case VT_HRESULT: o << "HRESULT"; break; - case VT_PTR: o << "void *"; break; - case VT_SAFEARRAY: o << "SAFEARRAY *"; break; - case VT_LPSTR: o << "LPSTR"; break; - case VT_LPWSTR: o << "LPWSTR"; break; - case VT_RECORD: o << "struct { }"; break; - case VT_INT_PTR: o << "intptr_t"; break; - case VT_UINT_PTR: o << "uintptr_t"; break; - case VT_FILETIME: o << "FILETIME"; break; - default: o << "???"; break; - } - - if(var.vt & VT_ARRAY) - o << "[]"; - else if(var.vt & VT_BYREF) - o << " *"; - else - { - switch(var.vt & VT_TYPEMASK) - { - case VT_EMPTY: - case VT_NULL: - case VT_RECORD: - case VT_VOID: - - // TODO - case VT_CY: - case VT_DATE: - case VT_DECIMAL: - case VT_FILETIME: - break; - - default: - o << " = "; - } - - switch(var.vt & VT_TYPEMASK) - { - case VT_I2: o << var.iVal; break; - case VT_I4: o << var.lVal; break; - case VT_R4: o << var.fltVal; break; - case VT_R8: o << var.dblVal; break; - case VT_BSTR: o << std::wstring(var.bstrVal, var.bstrVal + SysStringLen(var.bstrVal)); break; - case VT_BOOL: o << var.boolVal ? "true" : "false"; break; - case VT_I1: o << int(var.cVal); break; - case VT_UI1: o << unsigned int(var.bVal); break; - case VT_UI2: o << var.uiVal; break; - case VT_UI4: o << var.ulVal; break; - case VT_I8: o << var.llVal; break; - case VT_UI8: o << var.ullVal; break; - case VT_INT: o << var.intVal; break; - case VT_UINT: o << var.uintVal; break; - case VT_LPSTR: o << LPSTR(var.byref); break; - case VT_LPWSTR: o << LPWSTR(var.byref); break; - case VT_INT_PTR: o << var.intVal; break; // BUGBUG - case VT_UINT_PTR: o << var.uintVal; break; // BUGBUG - - case VT_DISPATCH: - case VT_VARIANT: - case VT_UNKNOWN: - case VT_PTR: - case VT_SAFEARRAY: - case VT_RECORD: - o << var.byref; break; - - case VT_ERROR: - case VT_HRESULT: - o << std::hex << var.ulVal; break; - - case VT_EMPTY: - case VT_NULL: - case VT_VOID: - break; - - default: - assert(0); - } - } - - return o.str(); - } - -#pragma warning(disable:4584) - - IConnectionPointContainer * HookIConnectionPointContainer(IConnectionPointContainer * p); - IEnumConnectionPoints * HookIEnumConnectionPoints(IEnumConnectionPoints * p); - IConnectionPoint * HookIConnectionPoint(IConnectionPoint * p); - IEnumConnections * HookIEnumConnections(IEnumConnections * p); - - class CConnectionPointContainer: public IConnectionPointContainer - { - private: - LONG m_refCount; - IConnectionPointContainer * m_IConnectionPointContainer; - - public: - CConnectionPointContainer(IConnectionPointContainer * pIConnectionPointContainer): - m_refCount(1), - m_IConnectionPointContainer(pIConnectionPointContainer) - { } - - ~CConnectionPointContainer() { m_IConnectionPointContainer->Release(); } - - virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void ** ppvObject) - { - HRESULT hr = S_OK; - - dbgprintf(TEXT("CConnectionPointContainer::QueryInterface(%ls, %p)"), UUIDToString(riid).c_str(), ppvObject); - - if(riid == IID_IUnknown || riid == IID_IConnectionPointContainer) - *ppvObject = this; - else - { - *ppvObject = NULL; - hr = E_NOINTERFACE; - } - - dbgprintf(TEXT("CConnectionPointContainer::QueryInterface -> %08X, ppvObject = %p"), hr, *ppvObject); - return hr; - } - - virtual ULONG STDMETHODCALLTYPE AddRef(void) - { - return InterlockedIncrement(&m_refCount); - } - - virtual ULONG STDMETHODCALLTYPE Release(void) - { - LONG n = InterlockedDecrement(&m_refCount); - - if(n == 0) - delete this; - - return n; - } - - virtual HRESULT STDMETHODCALLTYPE EnumConnectionPoints(IEnumConnectionPoints ** ppEnum) - { - dbgprintf(TEXT("CConnectionPointContainer::EnumConnectionPoints(%p)"), ppEnum); - HRESULT hr = m_IConnectionPointContainer->EnumConnectionPoints(ppEnum); - dbgprintf(TEXT("CConnectionPointContainer::EnumConnectionPoints -> %08X, pEnum = %p"), hr, *ppEnum); - - if(SUCCEEDED(hr)) - *ppEnum = HookIEnumConnectionPoints(*ppEnum); - - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE FindConnectionPoint(REFIID riid, IConnectionPoint ** ppCP) - { - dbgprintf(TEXT("CConnectionPointContainer::FindConnectionPoint(%ls, %p)"), UUIDToString(riid).c_str(), ppCP); - HRESULT hr = m_IConnectionPointContainer->FindConnectionPoint(riid, ppCP); - dbgprintf(TEXT("CConnectionPointContainer::FindConnectionPoint -> %08X, pCP = %p"), hr, *ppCP); - - if(SUCCEEDED(hr)) - *ppCP = HookIConnectionPoint(*ppCP); - - return hr; - } - }; - - class CEnumConnectionPoints: public IEnumConnectionPoints - { - private: - LONG m_refCount; - IEnumConnectionPoints * m_IEnumConnectionPoints; - - public: - CEnumConnectionPoints(IEnumConnectionPoints * pIEnumConnectionPoints): - m_refCount(1), - m_IEnumConnectionPoints(pIEnumConnectionPoints) - { } - - ~CEnumConnectionPoints() { m_IEnumConnectionPoints->Release(); } - - virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void ** ppvObject) - { - HRESULT hr = S_OK; - - dbgprintf(TEXT("CEnumConnectionPoints::QueryInterface(%ls, %p)"), UUIDToString(riid).c_str(), ppvObject); - - if(riid == IID_IUnknown || riid == IID_IEnumConnectionPoints) - *ppvObject = this; - else - { - *ppvObject = NULL; - hr = E_NOINTERFACE; - } - - dbgprintf(TEXT("CEnumConnectionPoints::QueryInterface -> %08X, ppvObject = %p"), hr, *ppvObject); - return hr; - } - - virtual ULONG STDMETHODCALLTYPE AddRef(void) - { - return InterlockedIncrement(&m_refCount); - } - - virtual ULONG STDMETHODCALLTYPE Release(void) - { - LONG n = InterlockedDecrement(&m_refCount); - - if(n == 0) - delete this; - - return n; - } - - virtual HRESULT STDMETHODCALLTYPE Next(ULONG cConnections, LPCONNECTIONPOINT * ppCP, ULONG * pcFetched) - { - dbgprintf(TEXT("CEnumConnectionPoints::Next(%lu, %p, %p)"), cConnections, ppCP, pcFetched); - HRESULT hr = m_IEnumConnectionPoints->Next(cConnections, ppCP, pcFetched); - dbgprintf(TEXT("CEnumConnectionPoints:: -> %08X, pCP = %p, cFetched = %lu"), hr, *ppCP, *pcFetched); - - if(SUCCEEDED(hr)) - *ppCP = HookIConnectionPoint(*ppCP); - - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE Skip(ULONG cConnections) - { - dbgprintf(TEXT("CEnumConnectionPoints::Skip(%lu)"), cConnections); - HRESULT hr = m_IEnumConnectionPoints->Skip(cConnections); - dbgprintf(TEXT("CEnumConnectionPoints:: -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE Reset(void) - { - dbgprintf(TEXT("CEnumConnectionPoints::Reset()")); - HRESULT hr = m_IEnumConnectionPoints->Reset(); - dbgprintf(TEXT("CEnumConnectionPoints:: -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE Clone(IEnumConnectionPoints ** ppEnum) - { - dbgprintf(TEXT("CEnumConnectionPoints::Clone(%p)"), ppEnum); - HRESULT hr = m_IEnumConnectionPoints->Clone(ppEnum); - dbgprintf(TEXT("CEnumConnectionPoints:: -> %08X, pEnum"), hr, *ppEnum); - - if(SUCCEEDED(hr)) - *ppEnum = HookIEnumConnectionPoints(*ppEnum); - - return hr; - } - }; - - class CConnectionPoint: public IConnectionPoint - { - private: - LONG m_refCount; - IConnectionPoint * m_IConnectionPoint; - - public: - CConnectionPoint(IConnectionPoint * pIConnectionPoint): - m_refCount(1), - m_IConnectionPoint(pIConnectionPoint) - { } - - ~CConnectionPoint() { m_IConnectionPoint->Release(); } - - virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void ** ppvObject) - { - HRESULT hr = S_OK; - - dbgprintf(TEXT("CConnectionPoint::QueryInterface(%ls, %p)"), UUIDToString(riid).c_str(), ppvObject); - - if(riid == IID_IUnknown || riid == IID_IConnectionPoint) - *ppvObject = this; - else - { - *ppvObject = NULL; - hr = E_NOINTERFACE; - } - - dbgprintf(TEXT("CConnectionPoint::QueryInterface -> %08X, ppvObject = %p"), hr, *ppvObject); - return hr; - } - - virtual ULONG STDMETHODCALLTYPE AddRef(void) - { - return InterlockedIncrement(&m_refCount); - } - - virtual ULONG STDMETHODCALLTYPE Release(void) - { - LONG n = InterlockedDecrement(&m_refCount); - - if(n == 0) - delete this; - - return n; - } - - virtual HRESULT STDMETHODCALLTYPE GetConnectionInterface(IID * pIID) - { - dbgprintf(TEXT("CConnectionPoint::GetConnectionInterface(%p)"), pIID); - HRESULT hr = m_IConnectionPoint->GetConnectionInterface(pIID); - dbgprintf(TEXT("CConnectionPoint::GetConnectionInterface -> %08X, IID = %ls"), hr, UUIDToString(*pIID).c_str()); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE GetConnectionPointContainer(IConnectionPointContainer ** ppCPC) - { - dbgprintf(TEXT("CConnectionPoint::GetConnectionPointContainer(%p)"), ppCPC); - HRESULT hr = m_IConnectionPoint->GetConnectionPointContainer(ppCPC); - dbgprintf(TEXT("CConnectionPoint::GetConnectionPointContainer -> %08X, pCPC = %p"), hr, *ppCPC); - - if(SUCCEEDED(hr)) - *ppCPC = HookIConnectionPointContainer(*ppCPC); - - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE Advise(IUnknown * pUnkSink, DWORD * pdwCookie) - { - dbgprintf(TEXT("CConnectionPoint::Advise(%p, %p)"), pUnkSink, pdwCookie); - HRESULT hr = m_IConnectionPoint->Advise(pUnkSink, pdwCookie); - dbgprintf(TEXT("CConnectionPoint::Advise -> %08X, dwCookie = %lu"), hr, *pdwCookie); - // TODO: hook sink - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE Unadvise(DWORD dwCookie) - { - dbgprintf(TEXT("CConnectionPoint::Unadvise(%lu)"), dwCookie); - HRESULT hr = m_IConnectionPoint->Unadvise(dwCookie); - dbgprintf(TEXT("CConnectionPoint::Unadvise -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE EnumConnections(IEnumConnections ** ppEnum) - { - dbgprintf(TEXT("CConnectionPoint::EnumConnections(%p)"), ppEnum); - HRESULT hr = m_IConnectionPoint->EnumConnections(ppEnum); - dbgprintf(TEXT("CConnectionPoint::EnumConnections -> %08X, pEnum = %p"), hr, *ppEnum); - - if(SUCCEEDED(hr)) - *ppEnum = HookIEnumConnections(*ppEnum); - - return hr; - } - }; - - class CEnumConnections: public IEnumConnections - { - private: - LONG m_refCount; - IEnumConnections * m_IEnumConnections; - - public: - CEnumConnections(IEnumConnections * pIEnumConnections): - m_refCount(1), - m_IEnumConnections(pIEnumConnections) - { } - - ~CEnumConnections() { m_IEnumConnections->Release(); } - - virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void ** ppvObject) - { - HRESULT hr = S_OK; - - dbgprintf(TEXT("CEnumConnections::QueryInterface(%ls, %p)"), UUIDToString(riid).c_str(), ppvObject); - - if(riid == IID_IUnknown || riid == IID_IEnumConnections) - *ppvObject = this; - else - { - *ppvObject = NULL; - hr = E_NOINTERFACE; - } - - dbgprintf(TEXT("CEnumConnections::QueryInterface -> %08X, ppvObject = %p"), hr, *ppvObject); - return hr; - } - - virtual ULONG STDMETHODCALLTYPE AddRef(void) - { - return InterlockedIncrement(&m_refCount); - } - - virtual ULONG STDMETHODCALLTYPE Release(void) - { - LONG n = InterlockedDecrement(&m_refCount); - - if(n == 0) - delete this; - - return n; - } - - virtual HRESULT STDMETHODCALLTYPE Next(ULONG cConnections, LPCONNECTDATA pCD, ULONG * pcFetched) - { - dbgprintf(TEXT("CEnumConnections::Next(%lu, %p, %p)"), cConnections, pCD, pcFetched); - HRESULT hr = m_IEnumConnections->Next(cConnections, pCD, pcFetched); - dbgprintf(TEXT("CEnumConnections:: -> %08X, CD = { pUnk = %p, dwCookie = %lu }, cFetched = %lu"), hr, pCD->pUnk, pCD->dwCookie, *pcFetched); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE Skip(ULONG cConnections) - { - dbgprintf(TEXT("CEnumConnections::Skip(%lu)"), cConnections); - HRESULT hr = m_IEnumConnections->Skip(cConnections); - dbgprintf(TEXT("CEnumConnections:: -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE Reset(void) - { - dbgprintf(TEXT("CEnumConnections::Reset()")); - HRESULT hr = m_IEnumConnections->Reset(); - dbgprintf(TEXT("CEnumConnections:: -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE Clone(IEnumConnections ** ppEnum) - { - dbgprintf(TEXT("CEnumConnections::Clone(%p)"), ppEnum); - HRESULT hr = m_IEnumConnections->Clone(ppEnum); - dbgprintf(TEXT("CEnumConnections:: -> %08X, pEnum"), hr, *ppEnum); - - if(SUCCEEDED(hr)) - *ppEnum = HookIEnumConnections(*ppEnum); - - return hr; - } - }; - - IConnectionPointContainer * HookIConnectionPointContainer(IConnectionPointContainer * p) - { - return new CConnectionPointContainer(p); - } - - IEnumConnectionPoints * HookIEnumConnectionPoints(IEnumConnectionPoints * p) - { - return new CEnumConnectionPoints(p); - } - - IConnectionPoint * HookIConnectionPoint(IConnectionPoint * p) - { - return new CConnectionPoint(p); - } - - IEnumConnections * HookIEnumConnections(IEnumConnections * p) - { - return new CEnumConnections(p); - } - - class CAdvancedSettings: public IMsRdpClientAdvancedSettings4 - { - private: - LONG m_refCount; - IUnknown * m_IUnknown; - IDispatch * m_IDispatch; - IMsTscAdvancedSettings * m_IMsTscAdvancedSettings; - IMsRdpClientAdvancedSettings * m_IMsRdpClientAdvancedSettings; - IMsRdpClientAdvancedSettings2 * m_IMsRdpClientAdvancedSettings2; - IMsRdpClientAdvancedSettings3 * m_IMsRdpClientAdvancedSettings3; - IMsRdpClientAdvancedSettings4 * m_IMsRdpClientAdvancedSettings4; - - IDispatch * getIDispatch() - { - assert(m_IDispatch); - return m_IDispatch; - } - - IMsTscAdvancedSettings * getIMsTscAdvancedSettings() - { - if(m_IMsTscAdvancedSettings) - return m_IMsTscAdvancedSettings; - else if(m_IMsRdpClientAdvancedSettings) - m_IMsTscAdvancedSettings = m_IMsRdpClientAdvancedSettings; - else if(m_IMsRdpClientAdvancedSettings2) - m_IMsTscAdvancedSettings = m_IMsRdpClientAdvancedSettings2; - else if(m_IMsRdpClientAdvancedSettings3) - m_IMsTscAdvancedSettings = m_IMsRdpClientAdvancedSettings3; - else if(m_IMsRdpClientAdvancedSettings4) - m_IMsTscAdvancedSettings = m_IMsRdpClientAdvancedSettings4; - - if(m_IMsTscAdvancedSettings) - { - m_IMsTscAdvancedSettings->AddRef(); - return m_IMsTscAdvancedSettings; - } - - m_IUnknown->QueryInterface(&m_IMsTscAdvancedSettings); - return m_IMsTscAdvancedSettings; - } - - IMsRdpClientAdvancedSettings * getIMsRdpClientAdvancedSettings() - { - if(m_IMsRdpClientAdvancedSettings) - return m_IMsRdpClientAdvancedSettings; - else if(m_IMsRdpClientAdvancedSettings2) - m_IMsRdpClientAdvancedSettings = m_IMsRdpClientAdvancedSettings2; - else if(m_IMsRdpClientAdvancedSettings3) - m_IMsRdpClientAdvancedSettings = m_IMsRdpClientAdvancedSettings3; - else if(m_IMsRdpClientAdvancedSettings4) - m_IMsRdpClientAdvancedSettings = m_IMsRdpClientAdvancedSettings4; - - if(m_IMsRdpClientAdvancedSettings) - { - m_IMsRdpClientAdvancedSettings->AddRef(); - return m_IMsRdpClientAdvancedSettings; - } - - m_IUnknown->QueryInterface(&m_IMsRdpClientAdvancedSettings); - return m_IMsRdpClientAdvancedSettings; - } - - IMsRdpClientAdvancedSettings2 * getIMsRdpClientAdvancedSettings2() - { - if(m_IMsRdpClientAdvancedSettings2) - return m_IMsRdpClientAdvancedSettings2; - else if(m_IMsRdpClientAdvancedSettings3) - m_IMsRdpClientAdvancedSettings2 = m_IMsRdpClientAdvancedSettings3; - else if(m_IMsRdpClientAdvancedSettings4) - m_IMsRdpClientAdvancedSettings2 = m_IMsRdpClientAdvancedSettings4; - - if(m_IMsRdpClientAdvancedSettings2) - { - m_IMsRdpClientAdvancedSettings2->AddRef(); - return m_IMsRdpClientAdvancedSettings2; - } - - m_IUnknown->QueryInterface(&m_IMsRdpClientAdvancedSettings2); - return m_IMsRdpClientAdvancedSettings2; - } - - IMsRdpClientAdvancedSettings3 * getIMsRdpClientAdvancedSettings3() - { - if(m_IMsRdpClientAdvancedSettings3) - return m_IMsRdpClientAdvancedSettings3; - else if(m_IMsRdpClientAdvancedSettings4) - m_IMsRdpClientAdvancedSettings3 = m_IMsRdpClientAdvancedSettings4; - - if(m_IMsRdpClientAdvancedSettings3) - { - m_IMsRdpClientAdvancedSettings3->AddRef(); - return m_IMsRdpClientAdvancedSettings3; - } - - m_IUnknown->QueryInterface(&m_IMsRdpClientAdvancedSettings3); - return m_IMsRdpClientAdvancedSettings3; - } - - IMsRdpClientAdvancedSettings4 * getIMsRdpClientAdvancedSettings4() - { - if(m_IMsRdpClientAdvancedSettings4) - return m_IMsRdpClientAdvancedSettings4; - - if(m_IMsRdpClientAdvancedSettings4) - { - m_IMsRdpClientAdvancedSettings4->AddRef(); - return m_IMsRdpClientAdvancedSettings4; - } - - m_IUnknown->QueryInterface(&m_IMsRdpClientAdvancedSettings4); - return m_IMsRdpClientAdvancedSettings4; - } - - ~CAdvancedSettings() - { - m_IUnknown->Release(); - m_IDispatch->Release(); - - if(m_IMsTscAdvancedSettings) - m_IMsTscAdvancedSettings->Release(); - - if(m_IMsRdpClientAdvancedSettings) - m_IMsRdpClientAdvancedSettings->Release(); - - if(m_IMsRdpClientAdvancedSettings2) - m_IMsRdpClientAdvancedSettings2->Release(); - - if(m_IMsRdpClientAdvancedSettings3) - m_IMsRdpClientAdvancedSettings3->Release(); - - if(m_IMsRdpClientAdvancedSettings4) - m_IMsRdpClientAdvancedSettings4->Release(); - } - - void Init(IMsTscAdvancedSettings * p) - { - m_IMsTscAdvancedSettings = p; - } - - void Init(IMsRdpClientAdvancedSettings * p) - { - m_IMsRdpClientAdvancedSettings = p; - } - - void Init(IMsRdpClientAdvancedSettings2 * p) - { - m_IMsRdpClientAdvancedSettings2 = p; - } - - void Init(IMsRdpClientAdvancedSettings3 * p) - { - m_IMsRdpClientAdvancedSettings3 = p; - } - - void Init(IMsRdpClientAdvancedSettings4 * p) - { - m_IMsRdpClientAdvancedSettings4 = p; - } - - public: - template CAdvancedSettings(Interface * p): - m_refCount(1), - m_IUnknown(p), - m_IDispatch(p), - m_IMsTscAdvancedSettings(NULL), - m_IMsRdpClientAdvancedSettings(NULL), - m_IMsRdpClientAdvancedSettings2(NULL), - m_IMsRdpClientAdvancedSettings3(NULL), - m_IMsRdpClientAdvancedSettings4(NULL) - { - assert(p); - p->AddRef(); - p->AddRef(); - Init(p); - } - - /* IUnknown */ - virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void ** ppvObject) - { - HRESULT hr; - IUnknown * pvObject; - - dbgprintf(TEXT("CAdvancedSettings::QueryInterface(%ls, %p)"), UUIDToString(riid).c_str(), ppvObject); - -#define QIBEGIN() \ - if(riid == IID_IUnknown) \ - { \ - hr = S_OK; \ - pvObject = (IUnknown *)(this); \ - } - -#define QI(I) \ - else if(riid == IID_ ## I) \ - { \ - if(m_ ## I) \ - { \ - m_ ## I->AddRef(); \ - hr = S_OK; \ - } \ - else \ - { \ - hr = m_IUnknown->QueryInterface(&m_ ## I); \ - } \ - \ - if(SUCCEEDED(hr)) \ - pvObject = static_cast(this); \ - } - -#define QIEND() \ - else \ - { \ - hr = E_NOINTERFACE; \ - pvObject = NULL; \ - } - - QIBEGIN() - QI(IDispatch) - QI(IMsTscAdvancedSettings) - QI(IMsRdpClientAdvancedSettings) - QI(IMsRdpClientAdvancedSettings2) - QI(IMsRdpClientAdvancedSettings3) - QI(IMsRdpClientAdvancedSettings4) - QIEND() - -#undef QIBEGIN -#undef QIEND -#undef QI - - if(SUCCEEDED(hr)) - { - assert(pvObject); - pvObject->AddRef(); - } - else - { - assert(pvObject == NULL); - } - - *ppvObject = pvObject; - - dbgprintf(TEXT("CAdvancedSettings::QueryInterface -> %08X, ppvObject = %p"), hr, *ppvObject); - return hr; - } - - virtual ULONG STDMETHODCALLTYPE AddRef(void) - { - return InterlockedIncrement(&m_refCount); - } - - virtual ULONG STDMETHODCALLTYPE Release(void) - { - LONG n = InterlockedDecrement(&m_refCount); - - if(n == 0) - delete this; - - return n; - } - - /* IDispatch */ - /* - * p = get(); - dbgprintf(TEXT("CAdvancedSettings::()"), ); - HRESULT hr = p->(); - dbgprintf(TEXT("CAdvancedSettings:: -> %08X, "), hr, ); - return hr; - */ - virtual STDMETHODIMP IDispatch::GetTypeInfoCount(UINT * pctinfo) - { - IDispatch * pIDispatch = getIDispatch(); - dbgprintf(TEXT("CAdvancedSettings::GetTypeInfoCount(%p)"), pctinfo); - HRESULT hr = pIDispatch->GetTypeInfoCount(pctinfo); - dbgprintf(TEXT("CAdvancedSettings::GetTypeInfoCount -> %08X, ctinfo = %u"), hr, *pctinfo); - return hr; - } - - virtual STDMETHODIMP IDispatch::GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo ** ppTInfo) - { - IDispatch * pIDispatch = getIDispatch(); - dbgprintf(TEXT("CAdvancedSettings::GetTypeInfo(%u, %lu, %p)"), iTInfo, lcid, ppTInfo); - HRESULT hr = pIDispatch->GetTypeInfo(iTInfo, lcid, ppTInfo); - dbgprintf(TEXT("CAdvancedSettings::GetTypeInfo -> %08X, pTInfo = %p"), hr, *ppTInfo); - return hr; - } - - virtual STDMETHODIMP IDispatch::GetIDsOfNames(REFIID riid, LPOLESTR * rgszNames, UINT cNames, LCID lcid, DISPID * rgDispId) - { - IDispatch * pIDispatch = getIDispatch(); - dbgprintf(TEXT("CAdvancedSettings::GetIDsOfNames(%ls, %ls, %d, %lu, %p)"), UUIDToString(riid).c_str(), *rgszNames, cNames, lcid, rgDispId); - HRESULT hr = pIDispatch->GetIDsOfNames(riid, rgszNames, cNames, lcid, rgDispId); - dbgprintf(TEXT("CAdvancedSettings::GetIDsOfNames -> %08X, rgDispId = %ld"), hr, *rgDispId); - return hr; - } - - virtual STDMETHODIMP IDispatch::Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS * pDispParams, VARIANT * pVarResult, EXCEPINFO * pExcepInfo, UINT * puArgErr) - { - // TODO - IDispatch * pIDispatch = getIDispatch(); - dbgprintf(TEXT("CAdvancedSettings::Invoke()")/*, */); - HRESULT hr = pIDispatch->Invoke(dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); - dbgprintf(TEXT("CAdvancedSettings::Invoke -> %08X, "), hr/*, */); - return hr; - } - - /* IMsTscAdvancedSettings */ - virtual STDMETHODIMP IMsTscAdvancedSettings::put_Compress(long pcompress) - { - IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_Compress(%ld)"), pcompress); - HRESULT hr = pIMsTscAdvancedSettings->put_Compress(pcompress); - dbgprintf(TEXT("CAdvancedSettings::put_Compress -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsTscAdvancedSettings::get_Compress(long * pcompress) - { - IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_Compress(%p)"), pcompress); - HRESULT hr = pIMsTscAdvancedSettings->get_Compress(pcompress); - dbgprintf(TEXT("CAdvancedSettings::get_Compress -> %08X, compress = %ld"), hr, *pcompress); - return hr; - } - - virtual STDMETHODIMP IMsTscAdvancedSettings::put_BitmapPeristence(long pbitmapPeristence) - { - IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_BitmapPeristence(%ld)"), pbitmapPeristence); - HRESULT hr = pIMsTscAdvancedSettings->put_BitmapPeristence(pbitmapPeristence); - dbgprintf(TEXT("CAdvancedSettings::put_BitmapPeristence -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsTscAdvancedSettings::get_BitmapPeristence(long * pbitmapPeristence) - { - IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_BitmapPeristence(%p)"), pbitmapPeristence); - HRESULT hr = pIMsTscAdvancedSettings->get_BitmapPeristence(pbitmapPeristence); - dbgprintf(TEXT("CAdvancedSettings::get_BitmapPeristence -> %08X, bitmapPeristence = %ld"), hr, *pbitmapPeristence); - return hr; - } - - virtual STDMETHODIMP IMsTscAdvancedSettings::put_allowBackgroundInput(long pallowBackgroundInput) - { - IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_allowBackgroundInput(%ld)"), pallowBackgroundInput); - HRESULT hr = pIMsTscAdvancedSettings->put_allowBackgroundInput(pallowBackgroundInput); - dbgprintf(TEXT("CAdvancedSettings::put_allowBackgroundInput -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsTscAdvancedSettings::get_allowBackgroundInput(long * pallowBackgroundInput) - { - IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_allowBackgroundInput(%p)"), pallowBackgroundInput); - HRESULT hr = pIMsTscAdvancedSettings->get_allowBackgroundInput(pallowBackgroundInput); - dbgprintf(TEXT("CAdvancedSettings::get_allowBackgroundInput -> %08X, allowBackgroundInput = %ld"), hr, *pallowBackgroundInput); - return hr; - } - - virtual STDMETHODIMP IMsTscAdvancedSettings::put_KeyBoardLayoutStr(BSTR rhs) - { - IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_KeyBoardLayoutStr(%ls)"), rhs); - HRESULT hr = pIMsTscAdvancedSettings->put_KeyBoardLayoutStr(rhs); - dbgprintf(TEXT("CAdvancedSettings::put_KeyBoardLayoutStr -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsTscAdvancedSettings::put_PluginDlls(BSTR rhs) - { - IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_PluginDlls(%ls)"), rhs); - HRESULT hr = pIMsTscAdvancedSettings->put_PluginDlls(rhs); - dbgprintf(TEXT("CAdvancedSettings::put_PluginDlls -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsTscAdvancedSettings::put_IconFile(BSTR rhs) - { - IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_IconFile(%ls)"), rhs); - HRESULT hr = pIMsTscAdvancedSettings->put_IconFile(rhs); - dbgprintf(TEXT("CAdvancedSettings::put_IconFile -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsTscAdvancedSettings::put_IconIndex(long rhs) - { - IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_IconIndex(%ld)"), rhs); - HRESULT hr = pIMsTscAdvancedSettings->put_IconIndex(rhs); - dbgprintf(TEXT("CAdvancedSettings::put_IconIndex -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsTscAdvancedSettings::put_ContainerHandledFullScreen(long pContainerHandledFullScreen) - { - IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_ContainerHandledFullScreen(%ld)"), pContainerHandledFullScreen); - HRESULT hr = pIMsTscAdvancedSettings->put_ContainerHandledFullScreen(pContainerHandledFullScreen); - dbgprintf(TEXT("CAdvancedSettings::put_ContainerHandledFullScreen -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsTscAdvancedSettings::get_ContainerHandledFullScreen(long * pContainerHandledFullScreen) - { - IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_ContainerHandledFullScreen(%p)"), pContainerHandledFullScreen); - HRESULT hr = pIMsTscAdvancedSettings->get_ContainerHandledFullScreen(pContainerHandledFullScreen); - dbgprintf(TEXT("CAdvancedSettings::get_ContainerHandledFullScreen -> %08X, ContainerHandledFullScreen = %ld"), hr, *pContainerHandledFullScreen); - return hr; - } - - virtual STDMETHODIMP IMsTscAdvancedSettings::put_DisableRdpdr(long pDisableRdpdr) - { - IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_DisableRdpdr(%ld)"), pDisableRdpdr); - HRESULT hr = pIMsTscAdvancedSettings->put_DisableRdpdr(pDisableRdpdr); - dbgprintf(TEXT("CAdvancedSettings::put_DisableRdpdr -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsTscAdvancedSettings::get_DisableRdpdr(long * pDisableRdpdr) - { - IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_DisableRdpdr(%p)"), pDisableRdpdr); - HRESULT hr = pIMsTscAdvancedSettings->get_DisableRdpdr(pDisableRdpdr); - dbgprintf(TEXT("CAdvancedSettings::get_DisableRdpdr -> %08X, DisableRdpdr = %ld"), hr, *pDisableRdpdr); - return hr; - } - - /* IMsRdpClientAdvancedSettings */ - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_SmoothScroll(long psmoothScroll) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_SmoothScroll(%ld)"), psmoothScroll); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_SmoothScroll(psmoothScroll); - dbgprintf(TEXT("CAdvancedSettings::put_SmoothScroll -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_SmoothScroll(long * psmoothScroll) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_SmoothScroll(%p)"), psmoothScroll); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_SmoothScroll(psmoothScroll); - dbgprintf(TEXT("CAdvancedSettings::get_SmoothScroll -> %08X, smoothScroll = %ld"), hr, *psmoothScroll); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_AcceleratorPassthrough(long pacceleratorPassthrough) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_AcceleratorPassthrough(%ld)"), pacceleratorPassthrough); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_AcceleratorPassthrough(pacceleratorPassthrough); - dbgprintf(TEXT("CAdvancedSettings::put_AcceleratorPassthrough -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_AcceleratorPassthrough(long * pacceleratorPassthrough) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_AcceleratorPassthrough(%p)"), pacceleratorPassthrough); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_AcceleratorPassthrough(pacceleratorPassthrough); - dbgprintf(TEXT("CAdvancedSettings::get_AcceleratorPassthrough -> %08X, acceleratorPassthrough = %ld"), hr, *pacceleratorPassthrough); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_ShadowBitmap(long pshadowBitmap) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_ShadowBitmap(%ld)"), pshadowBitmap); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_ShadowBitmap(pshadowBitmap); - dbgprintf(TEXT("CAdvancedSettings::put_ShadowBitmap -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_ShadowBitmap(long * pshadowBitmap) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_ShadowBitmap(%p)"), pshadowBitmap); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_ShadowBitmap(pshadowBitmap); - dbgprintf(TEXT("CAdvancedSettings::get_ShadowBitmap -> %08X, shadowBitmap = %ld"), hr, *pshadowBitmap); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_TransportType(long ptransportType) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_TransportType(%ld)"), ptransportType); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_TransportType(ptransportType); - dbgprintf(TEXT("CAdvancedSettings::put_TransportType -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_TransportType(long * ptransportType) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_TransportType(%p)"), ptransportType); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_TransportType(ptransportType); - dbgprintf(TEXT("CAdvancedSettings::get_TransportType -> %08X, transportType = %ld"), hr, *ptransportType); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_SasSequence(long psasSequence) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_SasSequence(%ld)"), psasSequence); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_SasSequence(psasSequence); - dbgprintf(TEXT("CAdvancedSettings::put_SasSequence -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_SasSequence(long * psasSequence) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_SasSequence(%p)"), psasSequence); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_SasSequence(psasSequence); - dbgprintf(TEXT("CAdvancedSettings::get_SasSequence -> %08X, sasSequence = %ld"), hr, *psasSequence); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_EncryptionEnabled(long pencryptionEnabled) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_EncryptionEnabled(%ld)"), pencryptionEnabled); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_EncryptionEnabled(pencryptionEnabled); - dbgprintf(TEXT("CAdvancedSettings::put_EncryptionEnabled -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_EncryptionEnabled(long * pencryptionEnabled) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_EncryptionEnabled(%p)"), pencryptionEnabled); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_EncryptionEnabled(pencryptionEnabled); - dbgprintf(TEXT("CAdvancedSettings::get_EncryptionEnabled -> %08X, encryptionEnabled = %ld"), hr, *pencryptionEnabled); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_DedicatedTerminal(long pdedicatedTerminal) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_DedicatedTerminal(%ld)"), pdedicatedTerminal); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_DedicatedTerminal(pdedicatedTerminal); - dbgprintf(TEXT("CAdvancedSettings::put_DedicatedTerminal -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_DedicatedTerminal(long * pdedicatedTerminal) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_DedicatedTerminal(%p)"), pdedicatedTerminal); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_DedicatedTerminal(pdedicatedTerminal); - dbgprintf(TEXT("CAdvancedSettings::get_DedicatedTerminal -> %08X, dedicatedTerminal = %ld"), hr, *pdedicatedTerminal); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RDPPort(long prdpPort) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_RDPPort(%ld)"), prdpPort); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_RDPPort(prdpPort); - dbgprintf(TEXT("CAdvancedSettings::put_RDPPort -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RDPPort(long * prdpPort) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_RDPPort(%p)"), prdpPort); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_RDPPort(prdpPort); - dbgprintf(TEXT("CAdvancedSettings::get_RDPPort -> %08X, rdpPort = %ld"), hr, *prdpPort); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_EnableMouse(long penableMouse) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_EnableMouse(%ld)"), penableMouse); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_EnableMouse(penableMouse); - dbgprintf(TEXT("CAdvancedSettings::put_EnableMouse -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_EnableMouse(long * penableMouse) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_EnableMouse(%p)"), penableMouse); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_EnableMouse(penableMouse); - dbgprintf(TEXT("CAdvancedSettings::get_EnableMouse -> %08X, enableMouse = %ld"), hr, *penableMouse); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_DisableCtrlAltDel(long pdisableCtrlAltDel) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_DisableCtrlAltDel(%ld)"), pdisableCtrlAltDel); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_DisableCtrlAltDel(pdisableCtrlAltDel); - dbgprintf(TEXT("CAdvancedSettings::put_DisableCtrlAltDel -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_DisableCtrlAltDel(long * pdisableCtrlAltDel) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_DisableCtrlAltDel(%p)"), pdisableCtrlAltDel); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_DisableCtrlAltDel(pdisableCtrlAltDel); - dbgprintf(TEXT("CAdvancedSettings::get_DisableCtrlAltDel -> %08X, disableCtrlAltDel = %ld"), hr, *pdisableCtrlAltDel); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_EnableWindowsKey(long penableWindowsKey) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_EnableWindowsKey(%ld)"), penableWindowsKey); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_EnableWindowsKey(penableWindowsKey); - dbgprintf(TEXT("CAdvancedSettings::put_EnableWindowsKey -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_EnableWindowsKey(long * penableWindowsKey) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_EnableWindowsKey(%p)"), penableWindowsKey); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_EnableWindowsKey(penableWindowsKey); - dbgprintf(TEXT("CAdvancedSettings::get_EnableWindowsKey -> %08X, enableWindowsKey = %ld"), hr, *penableWindowsKey); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_DoubleClickDetect(long pdoubleClickDetect) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_DoubleClickDetect(%ld)"), pdoubleClickDetect); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_DoubleClickDetect(pdoubleClickDetect); - dbgprintf(TEXT("CAdvancedSettings::put_DoubleClickDetect -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_DoubleClickDetect(long * pdoubleClickDetect) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_DoubleClickDetect(%p)"), pdoubleClickDetect); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_DoubleClickDetect(pdoubleClickDetect); - dbgprintf(TEXT("CAdvancedSettings::get_DoubleClickDetect -> %08X, doubleClickDetect = %ld"), hr, *pdoubleClickDetect); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_MaximizeShell(long pmaximizeShell) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_MaximizeShell(%ld)"), pmaximizeShell); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_MaximizeShell(pmaximizeShell); - dbgprintf(TEXT("CAdvancedSettings::put_MaximizeShell -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_MaximizeShell(long * pmaximizeShell) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_MaximizeShell(%p)"), pmaximizeShell); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_MaximizeShell(pmaximizeShell); - dbgprintf(TEXT("CAdvancedSettings::get_MaximizeShell -> %08X, maximizeShell = %ld"), hr, *pmaximizeShell); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyFullScreen(long photKeyFullScreen) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_HotKeyFullScreen(%ld)"), photKeyFullScreen); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_HotKeyFullScreen(photKeyFullScreen); - dbgprintf(TEXT("CAdvancedSettings::put_HotKeyFullScreen -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyFullScreen(long * photKeyFullScreen) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_HotKeyFullScreen(%p)"), photKeyFullScreen); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_HotKeyFullScreen(photKeyFullScreen); - dbgprintf(TEXT("CAdvancedSettings::get_HotKeyFullScreen -> %08X, hotKeyFullScreen = %ld"), hr, *photKeyFullScreen); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyCtrlEsc(long photKeyCtrlEsc) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_HotKeyCtrlEsc(%ld)"), photKeyCtrlEsc); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_HotKeyCtrlEsc(photKeyCtrlEsc); - dbgprintf(TEXT("CAdvancedSettings::put_HotKeyCtrlEsc -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyCtrlEsc(long * photKeyCtrlEsc) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_HotKeyCtrlEsc(%p)"), photKeyCtrlEsc); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_HotKeyCtrlEsc(photKeyCtrlEsc); - dbgprintf(TEXT("CAdvancedSettings::get_HotKeyCtrlEsc -> %08X, hotKeyCtrlEsc = %ld"), hr, *photKeyCtrlEsc); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyAltEsc(long photKeyAltEsc) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_HotKeyAltEsc(%ld)"), photKeyAltEsc); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_HotKeyAltEsc(photKeyAltEsc); - dbgprintf(TEXT("CAdvancedSettings::put_HotKeyAltEsc -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyAltEsc(long * photKeyAltEsc) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_HotKeyAltEsc(%p)"), photKeyAltEsc); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_HotKeyAltEsc(photKeyAltEsc); - dbgprintf(TEXT("CAdvancedSettings::get_HotKeyAltEsc -> %08X, hotKeyAltEsc = %ld"), hr, *photKeyAltEsc); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyAltTab(long photKeyAltTab) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_HotKeyAltTab(%ld)"), photKeyAltTab); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_HotKeyAltTab(photKeyAltTab); - dbgprintf(TEXT("CAdvancedSettings::put_HotKeyAltTab -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyAltTab(long * photKeyAltTab) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_HotKeyAltTab(%p)"), photKeyAltTab); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_HotKeyAltTab(photKeyAltTab); - dbgprintf(TEXT("CAdvancedSettings::get_HotKeyAltTab -> %08X, hotKeyAltTab = %ld"), hr, *photKeyAltTab); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyAltShiftTab(long photKeyAltShiftTab) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_HotKeyAltShiftTab(%ld)"), photKeyAltShiftTab); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_HotKeyAltShiftTab(photKeyAltShiftTab); - dbgprintf(TEXT("CAdvancedSettings::put_HotKeyAltShiftTab -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyAltShiftTab(long * photKeyAltShiftTab) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_HotKeyAltShiftTab(%p)"), photKeyAltShiftTab); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_HotKeyAltShiftTab(photKeyAltShiftTab); - dbgprintf(TEXT("CAdvancedSettings::get_HotKeyAltShiftTab -> %08X, hotKeyAltShiftTab = %ld"), hr, *photKeyAltShiftTab); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyAltSpace(long photKeyAltSpace) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_HotKeyAltSpace(%ld)"), photKeyAltSpace); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_HotKeyAltSpace(photKeyAltSpace); - dbgprintf(TEXT("CAdvancedSettings::put_HotKeyAltSpace -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyAltSpace(long * photKeyAltSpace) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_HotKeyAltSpace(%p)"), photKeyAltSpace); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_HotKeyAltSpace(photKeyAltSpace); - dbgprintf(TEXT("CAdvancedSettings::get_HotKeyAltSpace -> %08X, hotKeyAltSpace = %ld"), hr, *photKeyAltSpace); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyCtrlAltDel(long photKeyCtrlAltDel) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_HotKeyCtrlAltDel(%ld)"), photKeyCtrlAltDel); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_HotKeyCtrlAltDel(photKeyCtrlAltDel); - dbgprintf(TEXT("CAdvancedSettings::put_HotKeyCtrlAltDel -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyCtrlAltDel(long * photKeyCtrlAltDel) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_HotKeyCtrlAltDel(%p)"), photKeyCtrlAltDel); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_HotKeyCtrlAltDel(photKeyCtrlAltDel); - dbgprintf(TEXT("CAdvancedSettings::get_HotKeyCtrlAltDel -> %08X, hotKeyCtrlAltDel = %ld"), hr, *photKeyCtrlAltDel); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_orderDrawThreshold(long porderDrawThreshold) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_orderDrawThreshold(%ld)"), porderDrawThreshold); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_orderDrawThreshold(porderDrawThreshold); - dbgprintf(TEXT("CAdvancedSettings::put_orderDrawThreshold -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_orderDrawThreshold(long * porderDrawThreshold) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_orderDrawThreshold(%p)"), porderDrawThreshold); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_orderDrawThreshold(porderDrawThreshold); - dbgprintf(TEXT("CAdvancedSettings::get_orderDrawThreshold -> %08X, orderDrawThreshold = %ld"), hr, *porderDrawThreshold); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_BitmapCacheSize(long pbitmapCacheSize) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_BitmapCacheSize(%ld)"), pbitmapCacheSize); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_BitmapCacheSize(pbitmapCacheSize); - dbgprintf(TEXT("CAdvancedSettings::put_BitmapCacheSize -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_BitmapCacheSize(long * pbitmapCacheSize) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_BitmapCacheSize(%p)"), pbitmapCacheSize); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_BitmapCacheSize(pbitmapCacheSize); - dbgprintf(TEXT("CAdvancedSettings::get_BitmapCacheSize -> %08X, bitmapCacheSize = %ld"), hr, *pbitmapCacheSize); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_BitmapVirtualCacheSize(long pbitmapVirtualCacheSize) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_BitmapVirtualCacheSize(%ld)"), pbitmapVirtualCacheSize); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_BitmapVirtualCacheSize(pbitmapVirtualCacheSize); - dbgprintf(TEXT("CAdvancedSettings::put_BitmapVirtualCacheSize -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_BitmapVirtualCacheSize(long * pbitmapVirtualCacheSize) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_BitmapVirtualCacheSize(%p)"), pbitmapVirtualCacheSize); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_BitmapVirtualCacheSize(pbitmapVirtualCacheSize); - dbgprintf(TEXT("CAdvancedSettings::get_BitmapVirtualCacheSize -> %08X, bitmapVirtualCacheSize = %ld"), hr, *pbitmapVirtualCacheSize); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_ScaleBitmapCachesByBPP(long pbScale) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_ScaleBitmapCachesByBPP(%ld)"), pbScale); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_ScaleBitmapCachesByBPP(pbScale); - dbgprintf(TEXT("CAdvancedSettings::put_ScaleBitmapCachesByBPP -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_ScaleBitmapCachesByBPP(long * pbScale) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_ScaleBitmapCachesByBPP(%p)"), pbScale); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_ScaleBitmapCachesByBPP(pbScale); - dbgprintf(TEXT("CAdvancedSettings::get_ScaleBitmapCachesByBPP -> %08X, bScale = %ld"), hr, *pbScale); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_NumBitmapCaches(long pnumBitmapCaches) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_NumBitmapCaches(%ld)"), pnumBitmapCaches); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_NumBitmapCaches(pnumBitmapCaches); - dbgprintf(TEXT("CAdvancedSettings::put_NumBitmapCaches -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_NumBitmapCaches(long * pnumBitmapCaches) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_NumBitmapCaches(%p)"), pnumBitmapCaches); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_NumBitmapCaches(pnumBitmapCaches); - dbgprintf(TEXT("CAdvancedSettings::get_NumBitmapCaches -> %08X, numBitmapCaches = %ld"), hr, *pnumBitmapCaches); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_CachePersistenceActive(long pcachePersistenceActive) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_CachePersistenceActive(%ld)"), pcachePersistenceActive); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_CachePersistenceActive(pcachePersistenceActive); - dbgprintf(TEXT("CAdvancedSettings::put_CachePersistenceActive -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_CachePersistenceActive(long * pcachePersistenceActive) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_CachePersistenceActive(%p)"), pcachePersistenceActive); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_CachePersistenceActive(pcachePersistenceActive); - dbgprintf(TEXT("CAdvancedSettings::get_CachePersistenceActive -> %08X, cachePersistenceActive = %ld"), hr, *pcachePersistenceActive); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_PersistCacheDirectory(BSTR rhs) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_PersistCacheDirectory(%ls)"), rhs); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_PersistCacheDirectory(rhs); - dbgprintf(TEXT("CAdvancedSettings::put_PersistCacheDirectory -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_brushSupportLevel(long pbrushSupportLevel) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_brushSupportLevel(%ld)"), pbrushSupportLevel); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_brushSupportLevel(pbrushSupportLevel); - dbgprintf(TEXT("CAdvancedSettings::put_brushSupportLevel -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_brushSupportLevel(long * pbrushSupportLevel) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_brushSupportLevel(%p)"), pbrushSupportLevel); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_brushSupportLevel(pbrushSupportLevel); - dbgprintf(TEXT("CAdvancedSettings::get_brushSupportLevel -> %08X, brushSupportLevel = %ld"), hr, *pbrushSupportLevel); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_minInputSendInterval(long pminInputSendInterval) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_minInputSendInterval(%ld)"), pminInputSendInterval); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_minInputSendInterval(pminInputSendInterval); - dbgprintf(TEXT("CAdvancedSettings::put_minInputSendInterval -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_minInputSendInterval(long * pminInputSendInterval) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_minInputSendInterval(%p)"), pminInputSendInterval); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_minInputSendInterval(pminInputSendInterval); - dbgprintf(TEXT("CAdvancedSettings::get_minInputSendInterval -> %08X, minInputSendInterval = %ld"), hr, *pminInputSendInterval); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_InputEventsAtOnce(long pinputEventsAtOnce) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_InputEventsAtOnce(%ld)"), pinputEventsAtOnce); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_InputEventsAtOnce(pinputEventsAtOnce); - dbgprintf(TEXT("CAdvancedSettings::put_InputEventsAtOnce -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_InputEventsAtOnce(long * pinputEventsAtOnce) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_InputEventsAtOnce(%p)"), pinputEventsAtOnce); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_InputEventsAtOnce(pinputEventsAtOnce); - dbgprintf(TEXT("CAdvancedSettings::get_InputEventsAtOnce -> %08X, inputEventsAtOnce = %ld"), hr, *pinputEventsAtOnce); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_maxEventCount(long pmaxEventCount) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_maxEventCount(%ld)"), pmaxEventCount); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_maxEventCount(pmaxEventCount); - dbgprintf(TEXT("CAdvancedSettings::put_maxEventCount -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_maxEventCount(long * pmaxEventCount) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_maxEventCount(%p)"), pmaxEventCount); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_maxEventCount(pmaxEventCount); - dbgprintf(TEXT("CAdvancedSettings::get_maxEventCount -> %08X, maxEventCount = %ld"), hr, *pmaxEventCount); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_keepAliveInterval(long pkeepAliveInterval) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_keepAliveInterval(%ld)"), pkeepAliveInterval); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_keepAliveInterval(pkeepAliveInterval); - dbgprintf(TEXT("CAdvancedSettings::put_keepAliveInterval -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_keepAliveInterval(long * pkeepAliveInterval) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_keepAliveInterval(%p)"), pkeepAliveInterval); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_keepAliveInterval(pkeepAliveInterval); - dbgprintf(TEXT("CAdvancedSettings::get_keepAliveInterval -> %08X, keepAliveInterval = %ld"), hr, *pkeepAliveInterval); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_shutdownTimeout(long pshutdownTimeout) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_shutdownTimeout(%ld)"), pshutdownTimeout); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_shutdownTimeout(pshutdownTimeout); - dbgprintf(TEXT("CAdvancedSettings::put_shutdownTimeout -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_shutdownTimeout(long * pshutdownTimeout) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_shutdownTimeout(%p)"), pshutdownTimeout); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_shutdownTimeout(pshutdownTimeout); - dbgprintf(TEXT("CAdvancedSettings::get_shutdownTimeout -> %08X, shutdownTimeout = %ld"), hr, *pshutdownTimeout); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_overallConnectionTimeout(long poverallConnectionTimeout) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_overallConnectionTimeout(%ld)"), poverallConnectionTimeout); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_overallConnectionTimeout(poverallConnectionTimeout); - dbgprintf(TEXT("CAdvancedSettings::put_overallConnectionTimeout -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_overallConnectionTimeout(long * poverallConnectionTimeout) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_overallConnectionTimeout(%p)"), poverallConnectionTimeout); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_overallConnectionTimeout(poverallConnectionTimeout); - dbgprintf(TEXT("CAdvancedSettings::get_overallConnectionTimeout -> %08X, overallConnectionTimeout = %ld"), hr, *poverallConnectionTimeout); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_singleConnectionTimeout(long psingleConnectionTimeout) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_singleConnectionTimeout(%ld)"), psingleConnectionTimeout); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_singleConnectionTimeout(psingleConnectionTimeout); - dbgprintf(TEXT("CAdvancedSettings::put_singleConnectionTimeout -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_singleConnectionTimeout(long * psingleConnectionTimeout) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_singleConnectionTimeout(%p)"), psingleConnectionTimeout); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_singleConnectionTimeout(psingleConnectionTimeout); - dbgprintf(TEXT("CAdvancedSettings::get_singleConnectionTimeout -> %08X, singleConnectionTimeout = %ld"), hr, *psingleConnectionTimeout); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_KeyboardType(long pkeyboardType) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_KeyboardType(%ld)"), pkeyboardType); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_KeyboardType(pkeyboardType); - dbgprintf(TEXT("CAdvancedSettings::put_KeyboardType -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_KeyboardType(long * pkeyboardType) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_KeyboardType(%p)"), pkeyboardType); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_KeyboardType(pkeyboardType); - dbgprintf(TEXT("CAdvancedSettings::get_KeyboardType -> %08X, keyboardType = %ld"), hr, *pkeyboardType); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_KeyboardSubType(long pkeyboardSubType) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_KeyboardSubType(%ld)"), pkeyboardSubType); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_KeyboardSubType(pkeyboardSubType); - dbgprintf(TEXT("CAdvancedSettings::put_KeyboardSubType -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_KeyboardSubType(long * pkeyboardSubType) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_KeyboardSubType(%p)"), pkeyboardSubType); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_KeyboardSubType(pkeyboardSubType); - dbgprintf(TEXT("CAdvancedSettings::get_KeyboardSubType -> %08X, keyboardSubType = %ld"), hr, *pkeyboardSubType); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_KeyboardFunctionKey(long pkeyboardFunctionKey) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_KeyboardFunctionKey(%ld)"), pkeyboardFunctionKey); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_KeyboardFunctionKey(pkeyboardFunctionKey); - dbgprintf(TEXT("CAdvancedSettings::put_KeyboardFunctionKey -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_KeyboardFunctionKey(long * pkeyboardFunctionKey) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_KeyboardFunctionKey(%p)"), pkeyboardFunctionKey); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_KeyboardFunctionKey(pkeyboardFunctionKey); - dbgprintf(TEXT("CAdvancedSettings::get_KeyboardFunctionKey -> %08X, keyboardFunctionKey = %ld"), hr, *pkeyboardFunctionKey); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_WinceFixedPalette(long pwinceFixedPalette) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_WinceFixedPalette(%ld)"), pwinceFixedPalette); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_WinceFixedPalette(pwinceFixedPalette); - dbgprintf(TEXT("CAdvancedSettings::put_WinceFixedPalette -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_WinceFixedPalette(long * pwinceFixedPalette) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_WinceFixedPalette(%p)"), pwinceFixedPalette); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_WinceFixedPalette(pwinceFixedPalette); - dbgprintf(TEXT("CAdvancedSettings::get_WinceFixedPalette -> %08X, winceFixedPalette = %ld"), hr, *pwinceFixedPalette); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_ConnectToServerConsole(VARIANT_BOOL pConnectToConsole) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_ConnectToServerConsole(%s)"), BooleanToString(pConnectToConsole)); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_ConnectToServerConsole(pConnectToConsole); - dbgprintf(TEXT("CAdvancedSettings::put_ConnectToServerConsole -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_ConnectToServerConsole(VARIANT_BOOL * pConnectToConsole) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_ConnectToServerConsole(%p)"), pConnectToConsole); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_ConnectToServerConsole(pConnectToConsole); - dbgprintf(TEXT("CAdvancedSettings::get_ConnectToServerConsole -> %08X, ConnectToConsole = %s"), hr, BooleanToString(*pConnectToConsole)); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_BitmapPersistence(long pbitmapPersistence) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_BitmapPersistence(%ld)"), pbitmapPersistence); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_BitmapPersistence(pbitmapPersistence); - dbgprintf(TEXT("CAdvancedSettings::put_BitmapPersistence -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_BitmapPersistence(long * pbitmapPersistence) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_BitmapPersistence(%p)"), pbitmapPersistence); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_BitmapPersistence(pbitmapPersistence); - dbgprintf(TEXT("CAdvancedSettings::get_BitmapPersistence -> %08X, bitmapPersistence = %ld"), hr, *pbitmapPersistence); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_MinutesToIdleTimeout(long pminutesToIdleTimeout) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_MinutesToIdleTimeout(%ld)"), pminutesToIdleTimeout); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_MinutesToIdleTimeout(pminutesToIdleTimeout); - dbgprintf(TEXT("CAdvancedSettings::put_MinutesToIdleTimeout -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_MinutesToIdleTimeout(long * pminutesToIdleTimeout) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_MinutesToIdleTimeout(%p)"), pminutesToIdleTimeout); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_MinutesToIdleTimeout(pminutesToIdleTimeout); - dbgprintf(TEXT("CAdvancedSettings::get_MinutesToIdleTimeout -> %08X, minutesToIdleTimeout = %ld"), hr, *pminutesToIdleTimeout); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_SmartSizing(VARIANT_BOOL pfSmartSizing) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_SmartSizing(%s)"), BooleanToString(pfSmartSizing)); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_SmartSizing(pfSmartSizing); - dbgprintf(TEXT("CAdvancedSettings::put_SmartSizing -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_SmartSizing(VARIANT_BOOL * pfSmartSizing) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_SmartSizing(%p)"), pfSmartSizing); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_SmartSizing(pfSmartSizing); - dbgprintf(TEXT("CAdvancedSettings::get_SmartSizing -> %08X, fSmartSizing = %s"), hr, BooleanToString(*pfSmartSizing)); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RdpdrLocalPrintingDocName(BSTR pLocalPrintingDocName) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_RdpdrLocalPrintingDocName(%ls)"), pLocalPrintingDocName); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_RdpdrLocalPrintingDocName(pLocalPrintingDocName); - dbgprintf(TEXT("CAdvancedSettings::put_RdpdrLocalPrintingDocName -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RdpdrLocalPrintingDocName(BSTR * pLocalPrintingDocName) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_RdpdrLocalPrintingDocName(%p)"), pLocalPrintingDocName); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_RdpdrLocalPrintingDocName(pLocalPrintingDocName); - dbgprintf(TEXT("CAdvancedSettings::get_RdpdrLocalPrintingDocName -> %08X, LocalPrintingDocName = %ls"), hr, *pLocalPrintingDocName); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RdpdrClipCleanTempDirString(BSTR clipCleanTempDirString) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_RdpdrClipCleanTempDirString(%ls)"), clipCleanTempDirString); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_RdpdrClipCleanTempDirString(clipCleanTempDirString); - dbgprintf(TEXT("CAdvancedSettings::put_RdpdrClipCleanTempDirString -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RdpdrClipCleanTempDirString(BSTR * clipCleanTempDirString) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_RdpdrClipCleanTempDirString(%p)"), clipCleanTempDirString); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_RdpdrClipCleanTempDirString(clipCleanTempDirString); - dbgprintf(TEXT("CAdvancedSettings::get_RdpdrClipCleanTempDirString -> %08X, clipCleanTempDirString = %ls"), hr, *clipCleanTempDirString); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RdpdrClipPasteInfoString(BSTR clipPasteInfoString) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_RdpdrClipPasteInfoString(%ls)"), clipPasteInfoString); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_RdpdrClipPasteInfoString(clipPasteInfoString); - dbgprintf(TEXT("CAdvancedSettings::put_RdpdrClipPasteInfoString -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RdpdrClipPasteInfoString(BSTR * clipPasteInfoString) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_RdpdrClipPasteInfoString(%p)"), clipPasteInfoString); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_RdpdrClipPasteInfoString(clipPasteInfoString); - dbgprintf(TEXT("CAdvancedSettings::get_RdpdrClipPasteInfoString -> %08X, clipPasteInfoString = %ls"), hr, *clipPasteInfoString); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_ClearTextPassword(BSTR rhs) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_ClearTextPassword(%ls)"), rhs); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_ClearTextPassword(rhs); - dbgprintf(TEXT("CAdvancedSettings::put_ClearTextPassword -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_DisplayConnectionBar(VARIANT_BOOL pDisplayConnectionBar) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_DisplayConnectionBar(%s)"), BooleanToString(pDisplayConnectionBar)); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_DisplayConnectionBar(pDisplayConnectionBar); - dbgprintf(TEXT("CAdvancedSettings::put_DisplayConnectionBar -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_DisplayConnectionBar(VARIANT_BOOL * pDisplayConnectionBar) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_DisplayConnectionBar(%p)"), pDisplayConnectionBar); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_DisplayConnectionBar(pDisplayConnectionBar); - dbgprintf(TEXT("CAdvancedSettings::get_DisplayConnectionBar -> %08X, DisplayConnectionBar = %s"), hr, BooleanToString(*pDisplayConnectionBar)); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_PinConnectionBar(VARIANT_BOOL pPinConnectionBar) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_PinConnectionBar(%s)"), BooleanToString(pPinConnectionBar)); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_PinConnectionBar(pPinConnectionBar); - dbgprintf(TEXT("CAdvancedSettings::put_PinConnectionBar -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_PinConnectionBar(VARIANT_BOOL * pPinConnectionBar) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_PinConnectionBar(%p)"), pPinConnectionBar); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_PinConnectionBar(pPinConnectionBar); - dbgprintf(TEXT("CAdvancedSettings::get_PinConnectionBar -> %08X, PinConnectionBar = %s"), hr, BooleanToString(*pPinConnectionBar)); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_GrabFocusOnConnect(VARIANT_BOOL pfGrabFocusOnConnect) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_GrabFocusOnConnect(%s)"), BooleanToString(pfGrabFocusOnConnect)); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_GrabFocusOnConnect(pfGrabFocusOnConnect); - dbgprintf(TEXT("CAdvancedSettings::put_GrabFocusOnConnect -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_GrabFocusOnConnect(VARIANT_BOOL * pfGrabFocusOnConnect) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_GrabFocusOnConnect(%p)"), pfGrabFocusOnConnect); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_GrabFocusOnConnect(pfGrabFocusOnConnect); - dbgprintf(TEXT("CAdvancedSettings::get_GrabFocusOnConnect -> %08X, fGrabFocusOnConnect = %s"), hr, BooleanToString(*pfGrabFocusOnConnect)); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_LoadBalanceInfo(BSTR pLBInfo) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_LoadBalanceInfo(%ls)"), pLBInfo); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_LoadBalanceInfo(pLBInfo); - dbgprintf(TEXT("CAdvancedSettings::put_LoadBalanceInfo -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_LoadBalanceInfo(BSTR * pLBInfo) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_LoadBalanceInfo(%p)"), pLBInfo); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_LoadBalanceInfo(pLBInfo); - dbgprintf(TEXT("CAdvancedSettings::get_LoadBalanceInfo -> %08X, LBInfo = %ls"), hr, *pLBInfo); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RedirectDrives(VARIANT_BOOL pRedirectDrives) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_RedirectDrives(%s)"), BooleanToString(pRedirectDrives)); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_RedirectDrives(pRedirectDrives); - dbgprintf(TEXT("CAdvancedSettings::put_RedirectDrives -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RedirectDrives(VARIANT_BOOL * pRedirectDrives) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_RedirectDrives(%p)"), pRedirectDrives); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_RedirectDrives(pRedirectDrives); - dbgprintf(TEXT("CAdvancedSettings::get_RedirectDrives -> %08X, RedirectDrives = %s"), hr, BooleanToString(*pRedirectDrives)); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RedirectPrinters(VARIANT_BOOL pRedirectPrinters) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_RedirectPrinters(%s)"), BooleanToString(pRedirectPrinters)); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_RedirectPrinters(pRedirectPrinters); - dbgprintf(TEXT("CAdvancedSettings::put_RedirectPrinters -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RedirectPrinters(VARIANT_BOOL * pRedirectPrinters) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_RedirectPrinters(%p)"), pRedirectPrinters); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_RedirectPrinters(pRedirectPrinters); - dbgprintf(TEXT("CAdvancedSettings::get_RedirectPrinters -> %08X, RedirectPrinters = %s"), hr, BooleanToString(*pRedirectPrinters)); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RedirectPorts(VARIANT_BOOL pRedirectPorts) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_RedirectPorts(%s)"), BooleanToString(pRedirectPorts)); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_RedirectPorts(pRedirectPorts); - dbgprintf(TEXT("CAdvancedSettings::put_RedirectPorts -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RedirectPorts(VARIANT_BOOL * pRedirectPorts) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_RedirectPorts(%p)"), pRedirectPorts); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_RedirectPorts(pRedirectPorts); - dbgprintf(TEXT("CAdvancedSettings::get_RedirectPorts -> %08X, RedirectPorts = %s"), hr, BooleanToString(*pRedirectPorts)); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RedirectSmartCards(VARIANT_BOOL pRedirectSmartCards) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_RedirectSmartCards(%s)"), BooleanToString(pRedirectSmartCards)); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_RedirectSmartCards(pRedirectSmartCards); - dbgprintf(TEXT("CAdvancedSettings::put_RedirectSmartCards -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RedirectSmartCards(VARIANT_BOOL * pRedirectSmartCards) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_RedirectSmartCards(%p)"), pRedirectSmartCards); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_RedirectSmartCards(pRedirectSmartCards); - dbgprintf(TEXT("CAdvancedSettings::get_RedirectSmartCards -> %08X, RedirectSmartCards = %s"), hr, BooleanToString(*pRedirectSmartCards)); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_BitmapVirtualCache16BppSize(long pBitmapVirtualCache16BppSize) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_BitmapVirtualCache16BppSize(%ld)"), pBitmapVirtualCache16BppSize); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_BitmapVirtualCache16BppSize(pBitmapVirtualCache16BppSize); - dbgprintf(TEXT("CAdvancedSettings::put_BitmapVirtualCache16BppSize -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_BitmapVirtualCache16BppSize(long * pBitmapVirtualCache16BppSize) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_BitmapVirtualCache16BppSize(%p)"), pBitmapVirtualCache16BppSize); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_BitmapVirtualCache16BppSize(pBitmapVirtualCache16BppSize); - dbgprintf(TEXT("CAdvancedSettings::get_BitmapVirtualCache16BppSize -> %08X, BitmapVirtualCache16BppSize = %ld"), hr, *pBitmapVirtualCache16BppSize); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_BitmapVirtualCache24BppSize(long pBitmapVirtualCache24BppSize) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_BitmapVirtualCache24BppSize(%ld)"), pBitmapVirtualCache24BppSize); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_BitmapVirtualCache24BppSize(pBitmapVirtualCache24BppSize); - dbgprintf(TEXT("CAdvancedSettings::put_BitmapVirtualCache24BppSize -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_BitmapVirtualCache24BppSize(long * pBitmapVirtualCache24BppSize) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_BitmapVirtualCache24BppSize(%p)"), pBitmapVirtualCache24BppSize); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_BitmapVirtualCache24BppSize(pBitmapVirtualCache24BppSize); - dbgprintf(TEXT("CAdvancedSettings::get_BitmapVirtualCache24BppSize -> %08X, BitmapVirtualCache24BppSize = %ld"), hr, *pBitmapVirtualCache24BppSize); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_PerformanceFlags(long pDisableList) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_PerformanceFlags(%ld)"), pDisableList); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_PerformanceFlags(pDisableList); - dbgprintf(TEXT("CAdvancedSettings::put_PerformanceFlags -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_PerformanceFlags(long * pDisableList) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_PerformanceFlags(%p)"), pDisableList); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_PerformanceFlags(pDisableList); - dbgprintf(TEXT("CAdvancedSettings::get_PerformanceFlags -> %08X, DisableList = %ld"), hr, *pDisableList); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_ConnectWithEndpoint(VARIANT * rhs) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_ConnectWithEndpoint(%s)"), VariantToString(*rhs).c_str()); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_ConnectWithEndpoint(rhs); - dbgprintf(TEXT("CAdvancedSettings::put_ConnectWithEndpoint -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_NotifyTSPublicKey(VARIANT_BOOL pfNotify) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::put_NotifyTSPublicKey(%s)"), BooleanToString(pfNotify)); - HRESULT hr = pIMsRdpClientAdvancedSettings->put_NotifyTSPublicKey(pfNotify); - dbgprintf(TEXT("CAdvancedSettings::put_NotifyTSPublicKey -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_NotifyTSPublicKey(VARIANT_BOOL * pfNotify) - { - IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); - dbgprintf(TEXT("CAdvancedSettings::get_NotifyTSPublicKey(%p)"), pfNotify); - HRESULT hr = pIMsRdpClientAdvancedSettings->get_NotifyTSPublicKey(pfNotify); - dbgprintf(TEXT("CAdvancedSettings::get_NotifyTSPublicKey -> %08X, fNotify = %s"), hr, BooleanToString(*pfNotify)); - return hr; - } - - /* IMsRdpClientAdvancedSettings2 */ - virtual STDMETHODIMP IMsRdpClientAdvancedSettings2::get_CanAutoReconnect(VARIANT_BOOL * pfCanAutoReconnect) - { - IMsRdpClientAdvancedSettings2 * pIMsRdpClientAdvancedSettings2 = getIMsRdpClientAdvancedSettings2(); - dbgprintf(TEXT("CAdvancedSettings::get_CanAutoReconnect(%p)"), pfCanAutoReconnect); - HRESULT hr = pIMsRdpClientAdvancedSettings2->get_CanAutoReconnect(pfCanAutoReconnect); - dbgprintf(TEXT("CAdvancedSettings::get_CanAutoReconnect -> %08X, fCanAutoReconnect = %s"), hr, BooleanToString(*pfCanAutoReconnect)); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings2::put_EnableAutoReconnect(VARIANT_BOOL pfEnableAutoReconnect) - { - IMsRdpClientAdvancedSettings2 * pIMsRdpClientAdvancedSettings2 = getIMsRdpClientAdvancedSettings2(); - dbgprintf(TEXT("CAdvancedSettings::put_EnableAutoReconnect(%s)"), BooleanToString(pfEnableAutoReconnect)); - HRESULT hr = pIMsRdpClientAdvancedSettings2->put_EnableAutoReconnect(pfEnableAutoReconnect); - dbgprintf(TEXT("CAdvancedSettings::put_EnableAutoReconnect -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings2::get_EnableAutoReconnect(VARIANT_BOOL * pfEnableAutoReconnect) - { - IMsRdpClientAdvancedSettings2 * pIMsRdpClientAdvancedSettings2 = getIMsRdpClientAdvancedSettings2(); - dbgprintf(TEXT("CAdvancedSettings::get_EnableAutoReconnect(%p)"), pfEnableAutoReconnect); - HRESULT hr = pIMsRdpClientAdvancedSettings2->get_EnableAutoReconnect(pfEnableAutoReconnect); - dbgprintf(TEXT("CAdvancedSettings::get_EnableAutoReconnect -> %08X, fEnableAutoReconnect = %s"), hr, BooleanToString(*pfEnableAutoReconnect)); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings2::put_MaxReconnectAttempts(long pMaxReconnectAttempts) - { - IMsRdpClientAdvancedSettings2 * pIMsRdpClientAdvancedSettings2 = getIMsRdpClientAdvancedSettings2(); - dbgprintf(TEXT("CAdvancedSettings::put_MaxReconnectAttempts(%ld)"), pMaxReconnectAttempts); - HRESULT hr = pIMsRdpClientAdvancedSettings2->put_MaxReconnectAttempts(pMaxReconnectAttempts); - dbgprintf(TEXT("CAdvancedSettings::put_MaxReconnectAttempts -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings2::get_MaxReconnectAttempts(long * pMaxReconnectAttempts) - { - IMsRdpClientAdvancedSettings2 * pIMsRdpClientAdvancedSettings2 = getIMsRdpClientAdvancedSettings2(); - dbgprintf(TEXT("CAdvancedSettings::get_MaxReconnectAttempts(%p)"), pMaxReconnectAttempts); - HRESULT hr = pIMsRdpClientAdvancedSettings2->get_MaxReconnectAttempts(pMaxReconnectAttempts); - dbgprintf(TEXT("CAdvancedSettings::get_MaxReconnectAttempts -> %08X, MaxReconnectAttempts = %ld"), hr, *pMaxReconnectAttempts); - return hr; - } - - /* IMsRdpClientAdvancedSettings3 */ - virtual STDMETHODIMP IMsRdpClientAdvancedSettings3::put_ConnectionBarShowMinimizeButton(VARIANT_BOOL pfShowMinimize) - { - IMsRdpClientAdvancedSettings3 * pIMsRdpClientAdvancedSettings3 = getIMsRdpClientAdvancedSettings3(); - dbgprintf(TEXT("CAdvancedSettings::put_ConnectionBarShowMinimizeButton(%s)"), BooleanToString(pfShowMinimize)); - HRESULT hr = pIMsRdpClientAdvancedSettings3->put_ConnectionBarShowMinimizeButton(pfShowMinimize); - dbgprintf(TEXT("CAdvancedSettings::put_ConnectionBarShowMinimizeButton -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings3::get_ConnectionBarShowMinimizeButton(VARIANT_BOOL * pfShowMinimize) - { - IMsRdpClientAdvancedSettings3 * pIMsRdpClientAdvancedSettings3 = getIMsRdpClientAdvancedSettings3(); - dbgprintf(TEXT("CAdvancedSettings::get_ConnectionBarShowMinimizeButton(%p)"), pfShowMinimize); - HRESULT hr = pIMsRdpClientAdvancedSettings3->get_ConnectionBarShowMinimizeButton(pfShowMinimize); - dbgprintf(TEXT("CAdvancedSettings::get_ConnectionBarShowMinimizeButton -> %08X, fShowMinimize = %s"), hr, BooleanToString(*pfShowMinimize)); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings3::put_ConnectionBarShowRestoreButton(VARIANT_BOOL pfShowRestore) - { - IMsRdpClientAdvancedSettings3 * pIMsRdpClientAdvancedSettings3 = getIMsRdpClientAdvancedSettings3(); - dbgprintf(TEXT("CAdvancedSettings::put_ConnectionBarShowRestoreButton(%s)"), BooleanToString(pfShowRestore)); - HRESULT hr = pIMsRdpClientAdvancedSettings3->put_ConnectionBarShowRestoreButton(pfShowRestore); - dbgprintf(TEXT("CAdvancedSettings::put_ConnectionBarShowRestoreButton -> %08X"), hr); - return hr; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings3::get_ConnectionBarShowRestoreButton(VARIANT_BOOL * pfShowRestore) - { - IMsRdpClientAdvancedSettings3 * pIMsRdpClientAdvancedSettings3 = getIMsRdpClientAdvancedSettings3(); - dbgprintf(TEXT("CAdvancedSettings::get_ConnectionBarShowRestoreButton(%p)"), pfShowRestore); - HRESULT hr = pIMsRdpClientAdvancedSettings3->get_ConnectionBarShowRestoreButton(pfShowRestore); - dbgprintf(TEXT("CAdvancedSettings::get_ConnectionBarShowRestoreButton -> %08X, fShowRestore = %s"), hr, BooleanToString(*pfShowRestore)); - return hr; - } - - /* IMsRdpClientAdvancedSettings4 */ - virtual STDMETHODIMP IMsRdpClientAdvancedSettings4::put_AuthenticationLevel(unsigned int puiAuthLevel) - { - IMsRdpClientAdvancedSettings4 * pIMsRdpClientAdvancedSettings4 = getIMsRdpClientAdvancedSettings4(); - dbgprintf(TEXT("CAdvancedSettings::put_AuthenticationLevel(%u)"), puiAuthLevel); - HRESULT hr = pIMsRdpClientAdvancedSettings4->put_AuthenticationLevel(puiAuthLevel); - dbgprintf(TEXT("CAdvancedSettings::put_AuthenticationLevel -> %08X"), hr); - return hr; - } - virtual STDMETHODIMP IMsRdpClientAdvancedSettings4::get_AuthenticationLevel(unsigned int * puiAuthLevel) - { - IMsRdpClientAdvancedSettings4 * pIMsRdpClientAdvancedSettings4 = getIMsRdpClientAdvancedSettings4(); - dbgprintf(TEXT("CAdvancedSettings::get_AuthenticationLevel(%p)"), puiAuthLevel); - HRESULT hr = pIMsRdpClientAdvancedSettings4->get_AuthenticationLevel(puiAuthLevel); - dbgprintf(TEXT("CAdvancedSettings::get_AuthenticationLevel -> %08X, uiAuthLevel = %ld"), hr, *puiAuthLevel); - return hr; - } - }; - - class CoClass: - /* Standard interfaces */ - public IUnknown, - public IDispatch, - public IConnectionPointContainer, - public IDataObject, - public IObjectSafety, - public IOleControl, - public IOleInPlaceActiveObject, - public IOleInPlaceObject, - public IOleObject, - public IOleWindow, - public IPersist, - public IPersistPropertyBag, - public IPersistStorage, - public IPersistStreamInit, - public IProvideClassInfo, - public IProvideClassInfo2, - public IQuickActivate, - public ISpecifyPropertyPages, - public IViewObject, - public IViewObject2, - - /* RDP client interfaces */ - public IMsRdpClient4, - public IMsRdpClientNonScriptable2 - { - private: - LONG m_refCount; - - IUnknown * m_IUnknown; - - IDispatch * m_IDispatch; - IConnectionPointContainer * m_IConnectionPointContainer; - IDataObject * m_IDataObject; - IObjectSafety * m_IObjectSafety; - IOleControl * m_IOleControl; - IOleInPlaceActiveObject * m_IOleInPlaceActiveObject; - IOleInPlaceObject * m_IOleInPlaceObject; - IOleObject * m_IOleObject; - IOleWindow * m_IOleWindow; - IPersist * m_IPersist; - IPersistPropertyBag * m_IPersistPropertyBag; - IPersistStorage * m_IPersistStorage; - IPersistStreamInit * m_IPersistStreamInit; - IProvideClassInfo * m_IProvideClassInfo; - IProvideClassInfo2 * m_IProvideClassInfo2; - IQuickActivate * m_IQuickActivate; - ISpecifyPropertyPages * m_ISpecifyPropertyPages; - IViewObject * m_IViewObject; - IViewObject2 * m_IViewObject2; - - IMsRdpClient * m_IMsRdpClient; - IMsRdpClient2 * m_IMsRdpClient2; - IMsRdpClient3 * m_IMsRdpClient3; - IMsRdpClient4 * m_IMsRdpClient4; - IMsTscAx * m_IMsTscAx; - IMsTscNonScriptable * m_IMsTscNonScriptable; - IMsRdpClientNonScriptable * m_IMsRdpClientNonScriptable; - IMsRdpClientNonScriptable2 * m_IMsRdpClientNonScriptable2; - - IDispatch * getIDispatch() - { - if(m_IDispatch) - return m_IDispatch; - - if(m_IMsRdpClient) - m_IDispatch = m_IMsRdpClient; - else if(m_IMsRdpClient2) - m_IDispatch = m_IMsRdpClient2; - else if(m_IMsRdpClient3) - m_IDispatch = m_IMsRdpClient3; - else if(m_IMsRdpClient4) - m_IDispatch = m_IMsRdpClient4; - else if(m_IMsTscAx) - m_IDispatch = m_IMsTscAx; - - if(m_IDispatch) - { - m_IDispatch->AddRef(); - return m_IDispatch; - } - - if(SUCCEEDED(m_IUnknown->QueryInterface(&m_IDispatch))) - return m_IDispatch; - - return NULL; - } - - IConnectionPointContainer * getIConnectionPointContainer() - { - if(m_IConnectionPointContainer) - return m_IConnectionPointContainer; - - m_IUnknown->QueryInterface(&m_IConnectionPointContainer); - return m_IConnectionPointContainer; - - } - - IDataObject * getIDataObject() - { - if(m_IDataObject) - return m_IDataObject; - - m_IUnknown->QueryInterface(&m_IDataObject); - return m_IDataObject; - } - - IObjectSafety * getIObjectSafety() - { - if(m_IObjectSafety) - return m_IObjectSafety; - - m_IUnknown->QueryInterface(&m_IObjectSafety); - return m_IObjectSafety; - } - - IOleControl * getIOleControl() - { - if(m_IOleControl) - return m_IOleControl; - - m_IUnknown->QueryInterface(&m_IOleControl); - return m_IOleControl; - } - - IOleInPlaceActiveObject * getIOleInPlaceActiveObject() - { - if(m_IOleInPlaceActiveObject) - return m_IOleInPlaceActiveObject; - - m_IUnknown->QueryInterface(&m_IOleInPlaceActiveObject); - return m_IOleInPlaceActiveObject; - } - - IOleInPlaceObject * getIOleInPlaceObject() - { - if(m_IOleInPlaceObject) - return m_IOleInPlaceObject; - - m_IUnknown->QueryInterface(&m_IOleInPlaceObject); - return m_IOleInPlaceObject; - } - - IOleObject * getIOleObject() - { - if(m_IOleObject) - return m_IOleObject; - - m_IUnknown->QueryInterface(&m_IOleObject); - return m_IOleObject; - } - - IOleWindow * getIOleWindow() - { - if(m_IOleWindow) - return m_IOleWindow; - - if(m_IOleInPlaceActiveObject) - m_IOleWindow = m_IOleInPlaceActiveObject; - - if(m_IOleWindow) - { - m_IOleWindow->AddRef(); - return m_IOleWindow; - } - - m_IUnknown->QueryInterface(&m_IOleWindow); - return m_IOleWindow; - } - - IPersist * getIPersist() - { - if(m_IPersist) - return m_IPersist; - - if(m_IPersistPropertyBag) - m_IPersist = m_IPersistPropertyBag; - else if(m_IPersistStorage) - m_IPersist = m_IPersistStorage; - else if(m_IPersistStreamInit) - m_IPersist = m_IPersistStreamInit; - - if(m_IPersist) - { - m_IPersist->AddRef(); - return m_IPersist; - } - - m_IUnknown->QueryInterface(&m_IPersist); - return m_IPersist; - } - - IPersistPropertyBag * getIPersistPropertyBag() - { - if(m_IPersistPropertyBag) - return m_IPersistPropertyBag; - - m_IUnknown->QueryInterface(&m_IPersistPropertyBag); - return m_IPersistPropertyBag; - } - - IPersistStorage * getIPersistStorage() - { - if(m_IPersistStorage) - return m_IPersistStorage; - - m_IUnknown->QueryInterface(&m_IPersistStorage); - return m_IPersistStorage; - } - - IPersistStreamInit * getIPersistStreamInit() - { - if(m_IPersistStreamInit) - return m_IPersistStreamInit; - - m_IUnknown->QueryInterface(&m_IPersistStreamInit); - return m_IPersistStreamInit; - } - - IProvideClassInfo * getIProvideClassInfo() - { - if(m_IProvideClassInfo) - return m_IProvideClassInfo; - - if(m_IProvideClassInfo2) - m_IProvideClassInfo = m_IProvideClassInfo2; - - if(m_IProvideClassInfo) - { - m_IProvideClassInfo->AddRef(); - return m_IProvideClassInfo; - } - - m_IUnknown->QueryInterface(&m_IProvideClassInfo); - return m_IProvideClassInfo; - } - - IProvideClassInfo2 * getIProvideClassInfo2() - { - if(m_IProvideClassInfo2) - return m_IProvideClassInfo2; - - m_IUnknown->QueryInterface(&m_IProvideClassInfo2); - return m_IProvideClassInfo2; - } - - IQuickActivate * getIQuickActivate() - { - if(m_IQuickActivate) - return m_IQuickActivate; - - m_IUnknown->QueryInterface(&m_IQuickActivate); - return m_IQuickActivate; - } - - ISpecifyPropertyPages * getISpecifyPropertyPages() - { - if(m_ISpecifyPropertyPages) - return m_ISpecifyPropertyPages; - - m_IUnknown->QueryInterface(&m_ISpecifyPropertyPages); - return m_ISpecifyPropertyPages; - } - - IViewObject * getIViewObject() - { - if(m_IViewObject) - return m_IViewObject; - - if(m_IViewObject2) - m_IViewObject = m_IViewObject2; - - if(m_IViewObject) - { - m_IViewObject->AddRef(); - return m_IViewObject; - } - - m_IUnknown->QueryInterface(&m_IViewObject); - return m_IViewObject; - } - - IViewObject2 * getIViewObject2() - { - if(m_IViewObject2) - return m_IViewObject2; - - m_IUnknown->QueryInterface(&m_IViewObject2); - return m_IViewObject2; - } - - IMsRdpClient * getIMsRdpClient() - { - if(m_IMsRdpClient) - return m_IMsRdpClient; - - if(m_IMsRdpClient2) - m_IMsRdpClient = m_IMsRdpClient2; - else if(m_IMsRdpClient3) - m_IMsRdpClient = m_IMsRdpClient3; - else if(m_IMsRdpClient4) - m_IMsRdpClient = m_IMsRdpClient4; - - if(m_IMsRdpClient) - { - m_IMsRdpClient->AddRef(); - return m_IMsRdpClient; - } - - m_IUnknown->QueryInterface(&m_IMsRdpClient); - return m_IMsRdpClient; - } - - IMsRdpClient2 * getIMsRdpClient2() - { - if(m_IMsRdpClient2) - return m_IMsRdpClient2; - - if(m_IMsRdpClient3) - m_IMsRdpClient2 = m_IMsRdpClient3; - else if(m_IMsRdpClient4) - m_IMsRdpClient2 = m_IMsRdpClient4; - - if(m_IMsRdpClient2) - { - m_IMsRdpClient2->AddRef(); - return m_IMsRdpClient2; - } - - m_IUnknown->QueryInterface(&m_IMsRdpClient2); - return m_IMsRdpClient2; - } - - IMsRdpClient3 * getIMsRdpClient3() - { - if(m_IMsRdpClient3) - return m_IMsRdpClient3; - - if(m_IMsRdpClient4) - m_IMsRdpClient3 = m_IMsRdpClient4; - - if(m_IMsRdpClient3) - { - m_IMsRdpClient3->AddRef(); - return m_IMsRdpClient3; - } - - m_IUnknown->QueryInterface(&m_IMsRdpClient3); - return m_IMsRdpClient3; - } - - IMsRdpClient4 * getIMsRdpClient4() - { - if(m_IMsRdpClient4) - return m_IMsRdpClient4; - - m_IUnknown->QueryInterface(&m_IMsRdpClient4); - return m_IMsRdpClient4; - } - - IMsTscAx * getIMsTscAx() - { - if(m_IMsTscAx) - return m_IMsTscAx; - - if(m_IMsRdpClient) - m_IMsTscAx = m_IMsRdpClient; - else if(m_IMsRdpClient2) - m_IMsTscAx = m_IMsRdpClient2; - else if(m_IMsRdpClient3) - m_IMsTscAx = m_IMsRdpClient3; - else if(m_IMsRdpClient4) - m_IMsTscAx = m_IMsRdpClient4; - - if(m_IMsTscAx) - { - m_IMsTscAx->AddRef(); - return m_IMsTscAx; - } - - m_IUnknown->QueryInterface(&m_IMsTscAx); - return m_IMsTscAx; - } - - IMsTscNonScriptable * getIMsTscNonScriptable() - { - if(m_IMsTscNonScriptable) - return m_IMsTscNonScriptable; - - if(m_IMsRdpClientNonScriptable) - m_IMsTscNonScriptable = m_IMsRdpClientNonScriptable; - else if(m_IMsRdpClientNonScriptable2) - m_IMsTscNonScriptable = m_IMsRdpClientNonScriptable2; - - if(m_IMsTscNonScriptable) - { - m_IMsTscNonScriptable->AddRef(); - return m_IMsTscNonScriptable; - } - - m_IUnknown->QueryInterface(&m_IMsTscNonScriptable); - return m_IMsTscNonScriptable; - } - - IMsRdpClientNonScriptable * getIMsRdpClientNonScriptable() - { - if(m_IMsRdpClientNonScriptable) - return m_IMsRdpClientNonScriptable; - - if(m_IMsRdpClientNonScriptable2) - m_IMsRdpClientNonScriptable = m_IMsRdpClientNonScriptable2; - - if(m_IMsRdpClientNonScriptable) - { - m_IMsRdpClientNonScriptable->AddRef(); - return m_IMsRdpClientNonScriptable; - } - - m_IUnknown->QueryInterface(&m_IMsRdpClientNonScriptable); - return m_IMsRdpClientNonScriptable; - } - - IMsRdpClientNonScriptable2 * getIMsRdpClientNonScriptable2() - { - if(m_IMsRdpClientNonScriptable2) - return m_IMsRdpClientNonScriptable2; - - m_IUnknown->QueryInterface(&m_IMsRdpClientNonScriptable2); - return m_IMsRdpClientNonScriptable2; - } - - private: - IUnknown * m_outer; - - HRESULT queryInterface(REFIID riid, void ** ppvObject) - { - HRESULT hr; - IUnknown * pvObject = NULL; - - dbgprintf(TEXT("IUnknown::QueryInterface(%ls, %p)"), UUIDToString(riid).c_str(), ppvObject); - -#define QIBEGIN() \ - if(riid == IID_IUnknown) \ - { \ - assert(0); \ - } - -#define QI(I) \ - else if(riid == IID_ ## I) \ - { \ - if(m_ ## I) \ - { \ - m_ ## I->AddRef(); \ - hr = S_OK; \ - } \ - else \ - { \ - hr = m_IUnknown->QueryInterface(&m_ ## I); \ - } \ - \ - if(SUCCEEDED(hr)) \ - pvObject = static_cast(this); \ - } - -#define QIEND() \ - else \ - { \ - hr = E_NOINTERFACE; \ - pvObject = NULL; \ - } - - QIBEGIN() - - /* Standard interfaces */ - QI(IDispatch) - QI(IConnectionPointContainer) - QI(IDataObject) - QI(IObjectSafety) - QI(IOleControl) - QI(IOleInPlaceActiveObject) - QI(IOleInPlaceObject) - QI(IOleObject) - QI(IOleWindow) - QI(IPersist) - QI(IPersistPropertyBag) - QI(IPersistStorage) - QI(IPersistStreamInit) - QI(IProvideClassInfo) - QI(IProvideClassInfo2) - QI(IQuickActivate) - QI(ISpecifyPropertyPages) - QI(IViewObject) - QI(IViewObject2) - - /* Terminal services client */ - QI(IMsRdpClient) - QI(IMsRdpClient2) - QI(IMsRdpClient3) - QI(IMsRdpClient4) - QI(IMsTscAx) - QI(IMsTscNonScriptable) - QI(IMsRdpClientNonScriptable) - QI(IMsRdpClientNonScriptable2) - QIEND() - -#undef QIBEGIN -#undef QIEND -#undef QI - - if(SUCCEEDED(hr)) - { - assert(pvObject); - pvObject->AddRef(); - } - else - { - assert(pvObject == NULL); - } - - *ppvObject = pvObject; - - dbgprintf(TEXT("IUnknown::QueryInterface -> %08X, ppvObject = %p"), hr, *ppvObject); - return hr; - } - - ULONG addRef() - { - return InterlockedIncrement(&m_refCount); - } - - ULONG release() - { - LONG n = InterlockedDecrement(&m_refCount); - - if(n == 0) - delete this; - - return n; - } - - friend class CoClassInner; - - class CoClassInner: public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void ** ppvObject) - { - if(riid == IID_IUnknown) - { - AddRef(); - *ppvObject = this; - return S_OK; - } - - return InnerToOuter(this)->queryInterface(riid, ppvObject); - } - - virtual ULONG STDMETHODCALLTYPE AddRef() - { - return InnerToOuter(this)->addRef(); - } - - virtual ULONG STDMETHODCALLTYPE Release() - { - return InnerToOuter(this)->release(); - } - } - m_inner; - - static CoClass * InnerToOuter(CoClassInner * inner) - { - return CONTAINING_RECORD(inner, CoClass, m_inner); - } - - private: - CoClass(IUnknown * pUnknw, IUnknown * pUnkOuter): - m_refCount(1), - m_outer(pUnkOuter), - m_IUnknown(pUnknw), - m_IDispatch(NULL), - m_IConnectionPointContainer(NULL), - m_IDataObject(NULL), - m_IObjectSafety(NULL), - m_IOleControl(NULL), - m_IOleInPlaceActiveObject(NULL), - m_IOleInPlaceObject(NULL), - m_IOleObject(NULL), - m_IOleWindow(NULL), - m_IPersist(NULL), - m_IPersistPropertyBag(NULL), - m_IPersistStorage(NULL), - m_IPersistStreamInit(NULL), - m_IProvideClassInfo(NULL), - m_IProvideClassInfo2(NULL), - m_IQuickActivate(NULL), - m_ISpecifyPropertyPages(NULL), - m_IViewObject(NULL), - m_IViewObject2(NULL), - m_IMsRdpClient(NULL), - m_IMsRdpClient2(NULL), - m_IMsRdpClient3(NULL), - m_IMsRdpClient4(NULL), - m_IMsTscAx(NULL), - m_IMsTscNonScriptable(NULL), - m_IMsRdpClientNonScriptable(NULL), - m_IMsRdpClientNonScriptable2(NULL) - { - if(m_outer == NULL) - m_outer = &m_inner; - } - - public: - static HRESULT CreateInstance(IUnknown * pUnknw, IUnknown * pUnkOuter, REFIID riid, void ** ppvObject) - { - HRESULT hr = S_OK; - - if(pUnkOuter && riid != IID_IUnknown) - hr = CLASS_E_NOAGGREGATION; - else - { - CoClass * p = new CoClass(pUnknw, pUnkOuter); - - if(p == NULL) - hr = E_OUTOFMEMORY; - else - { - hr = p->m_inner.QueryInterface(riid, ppvObject); - - if(FAILED(hr)) - delete p; - else - p->m_inner.Release(); - } - } - - if(FAILED(hr)) - pUnknw->Release(); - - return hr; - } - - private: - ~CoClass() - { - if(m_IUnknown) - m_IUnknown->Release(); - - if(m_IDispatch) - m_IDispatch->Release(); - - if(m_IConnectionPointContainer) - m_IConnectionPointContainer->Release(); - - if(m_IDataObject) - m_IDataObject->Release(); - - if(m_IObjectSafety) - m_IObjectSafety->Release(); - - if(m_IOleControl) - m_IOleControl->Release(); - - if(m_IOleInPlaceActiveObject) - m_IOleInPlaceActiveObject->Release(); - - if(m_IOleInPlaceObject) - m_IOleInPlaceObject->Release(); - - if(m_IOleObject) - m_IOleObject->Release(); - - if(m_IOleWindow) - m_IOleWindow->Release(); - - if(m_IPersist) - m_IPersist->Release(); - - if(m_IPersistPropertyBag) - m_IPersistPropertyBag->Release(); - - if(m_IPersistStorage) - m_IPersistStorage->Release(); - - if(m_IPersistStreamInit) - m_IPersistStreamInit->Release(); - - if(m_IProvideClassInfo) - m_IProvideClassInfo->Release(); - - if(m_IProvideClassInfo2) - m_IProvideClassInfo2->Release(); - - if(m_IQuickActivate) - m_IQuickActivate->Release(); - - if(m_ISpecifyPropertyPages) - m_ISpecifyPropertyPages->Release(); - - if(m_IViewObject) - m_IViewObject->Release(); - - if(m_IViewObject2) - m_IViewObject2->Release(); - - if(m_IMsRdpClient) - m_IMsRdpClient->Release(); - - if(m_IMsRdpClient2) - m_IMsRdpClient2->Release(); - - if(m_IMsRdpClient3) - m_IMsRdpClient3->Release(); - - if(m_IMsRdpClient4) - m_IMsRdpClient4->Release(); - - if(m_IMsTscAx) - m_IMsTscAx->Release(); - - if(m_IMsTscNonScriptable) - m_IMsTscNonScriptable->Release(); - - if(m_IMsRdpClientNonScriptable) - m_IMsRdpClientNonScriptable->Release(); - - if(m_IMsRdpClientNonScriptable2) - m_IMsRdpClientNonScriptable2->Release(); - } - - /* IUnknown */ - public: - virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void ** ppvObject) - { - return m_outer->QueryInterface(riid, ppvObject); - } - - virtual ULONG STDMETHODCALLTYPE AddRef(void) - { - return m_outer->AddRef(); - } - - virtual ULONG STDMETHODCALLTYPE Release(void) - { - return m_outer->Release(); - } - - /* IDispatch */ - private: - static void FreeExcepInfo(const EXCEPINFO& excepInfo) - { - if(excepInfo.bstrSource) - SysFreeString(excepInfo.bstrSource); - - if(excepInfo.bstrDescription) - SysFreeString(excepInfo.bstrDescription); - - if(excepInfo.bstrHelpFile) - SysFreeString(excepInfo.bstrHelpFile); - } - - static std::basic_string ExcepInfoToString(const EXCEPINFO& excepInfo) - { - std::basic_ostringstream o; - - o << "{"; - o << " code: " << excepInfo.wCode << " from: " << std::basic_string(excepInfo.bstrSource, excepInfo.bstrSource + SysStringLen(excepInfo.bstrSource)); - - BSTR bstrDescription = NULL; - - if(excepInfo.bstrDescription) - bstrDescription = excepInfo.bstrDescription; - else if(excepInfo.pfnDeferredFillIn) - { - EXCEPINFO excepInfoCopy = excepInfo; - - if(SUCCEEDED(excepInfoCopy.pfnDeferredFillIn(&excepInfoCopy)) && excepInfoCopy.bstrDescription) - { - bstrDescription = excepInfoCopy.bstrDescription; - excepInfoCopy.bstrDescription = NULL; - } - - if(excepInfoCopy.bstrSource == excepInfo.bstrSource) - excepInfoCopy.bstrSource = NULL; - - if(excepInfoCopy.bstrHelpFile == excepInfo.bstrDescription) - excepInfoCopy.bstrDescription = NULL; - - FreeExcepInfo(excepInfoCopy); - } - - if(bstrDescription) - { - o << " msg: " << std::basic_string(bstrDescription, bstrDescription + SysStringLen(bstrDescription)); - - if(excepInfo.bstrDescription == NULL) - SysFreeString(bstrDescription); - } - - o << " }"; - - return o.str().c_str(); - } - - public: - virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount(UINT * pctinfo) - { - IDispatch * pIDispatch = getIDispatch(); - dbgprintf(TEXT("IDispatch::GetTypeInfoCount(%p)"), pctinfo); - HRESULT hr = pIDispatch->GetTypeInfoCount(pctinfo); - dbgprintf(TEXT("IDispatch::GetTypeInfoCount -> %08X, ctinfo = %lu"), hr, *pctinfo); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo ** ppTInfo) - { - IDispatch * pIDispatch = getIDispatch(); - dbgprintf(TEXT("IDispatch::GetTypeInfo(%lu, %08X, %p)"), iTInfo, lcid, ppTInfo); - HRESULT hr = pIDispatch->GetTypeInfo(iTInfo, lcid, ppTInfo); - dbgprintf(TEXT("IDispatch::GetTypeInfo -> %08X, pTInfo = %p"), hr, *ppTInfo); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(REFIID riid, LPOLESTR * rgszNames, UINT cNames, LCID lcid, DISPID * rgDispId) - { - IDispatch * pIDispatch = getIDispatch(); - std::wstring strtemp; - - std::wostringstream strtempo; - - strtemp.resize(0); - strtemp += L"[ "; - - for(UINT i = 0; i < cNames; ++ i) - { - if(i) - strtemp += L", "; - - strtemp += rgszNames[i]; - } - - strtemp += L" ]"; - - dbgprintf(TEXT("IDispatch::GetIDsOfNames(%ls, %ls, %lu, %08X, %p)"), UUIDToString(riid).c_str(), strtemp.c_str(), cNames, lcid, rgDispId); - HRESULT hr = pIDispatch->GetIDsOfNames(riid, rgszNames, cNames, lcid, rgDispId); - - strtemp.resize(0); - strtempo.str(strtemp); - - strtempo << L"[ "; - - for(UINT i = 0; i < cNames; ++ i) - { - if(i) - strtempo << L", "; - - strtempo << rgDispId[i]; - } - - strtempo << L" ]"; - - dbgprintf(TEXT("IDispatch::GetIDsOfNames -> %08X, rgDispId = %ls"), hr, strtempo.str().c_str()); - - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS * pDispParams, VARIANT * pVarResult, EXCEPINFO * pExcepInfo, UINT * puArgErr) - { - IDispatch * pIDispatch = getIDispatch(); - - std::basic_ostringstream strtempo; - - strtempo << L"{"; - - for(unsigned int i = pDispParams->cArgs, j = pDispParams->cNamedArgs; j < pDispParams->cArgs; -- i, ++ j) - { - strtempo << L" "; - strtempo << VariantToString(pDispParams->rgvarg[i - 1]); - strtempo << L","; - } - - for(unsigned int i = pDispParams->cArgs - pDispParams->cNamedArgs; i > 0; -- i) - { - strtempo << L" "; - strtempo << L"["; strtempo << pDispParams->rgdispidNamedArgs[i - 1]; strtempo << L"] => "; - strtempo << VariantToString(pDispParams->rgvarg[i - 1]); - strtempo << L","; - } - - strtempo << L" }"; - - dbgprintf(TEXT("IDispatch::Invoke(%ld, %ls, %08X, %04X, %s, %p, %p, %p)"), dispIdMember, UUIDToString(riid).c_str(), lcid, wFlags, strtempo.str().c_str(), pVarResult, pExcepInfo, puArgErr); - - VARIANT VarResult = { }; - EXCEPINFO ExcepInfo = { }; - - if(pVarResult == NULL) - pVarResult = &VarResult; - - if(pExcepInfo == NULL) - pExcepInfo = &ExcepInfo; - - HRESULT hr = pIDispatch->Invoke(dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); - - dbgprintf(TEXT("IDispatch::Invoke -> %08X, returns %s, throws %s"), hr, VariantToString(*pVarResult).c_str(), ExcepInfoToString(*pExcepInfo).c_str()); - - FreeExcepInfo(ExcepInfo); - - return hr; - } - - /* IConnectionPointContainer */ - public: - virtual HRESULT STDMETHODCALLTYPE EnumConnectionPoints(IEnumConnectionPoints ** ppEnum) - { - IConnectionPointContainer * pIConnectionPointContainer = getIConnectionPointContainer(); - dbgprintf(TEXT("IConnectionPointContainer::EnumConnectionPoints(%p)"), ppEnum); - HRESULT hr = pIConnectionPointContainer->EnumConnectionPoints(ppEnum); - dbgprintf(TEXT("IConnectionPointContainer::EnumConnectionPoints -> %08X, pEnum = %p"), hr, *ppEnum); - - if(SUCCEEDED(hr)) - *ppEnum = HookIEnumConnectionPoints(*ppEnum); - - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE FindConnectionPoint(REFIID riid, IConnectionPoint ** ppCP) - { - IConnectionPointContainer * pIConnectionPointContainer = getIConnectionPointContainer(); - dbgprintf(TEXT("IConnectionPointContainer::FindConnectionPoint(%ls, %p)"), UUIDToString(riid).c_str(), ppCP); - HRESULT hr = pIConnectionPointContainer->FindConnectionPoint(riid, ppCP); - dbgprintf(TEXT("IConnectionPointContainer::FindConnectionPoint -> %08X, pCP = %p"), hr, *ppCP); - - if(SUCCEEDED(hr)) - *ppCP = HookIConnectionPoint(*ppCP); - - return hr; - } - - /* IDataObject */ - private: - static std::basic_string TargetDeviceToString(const DVTARGETDEVICE& targetdev) - { - if(&targetdev == NULL) - return TEXT(""); - - std::basic_ostringstream o; - - o << "{"; - o << LPCWSTR(targetdev.tdData[targetdev.tdDriverNameOffset]); - - if(targetdev.tdDeviceNameOffset) - { - o << ","; - o << LPCWSTR(targetdev.tdData[targetdev.tdDeviceNameOffset]); - } - - if(targetdev.tdPortNameOffset) - { - o << ","; - o << LPCWSTR(targetdev.tdData[targetdev.tdPortNameOffset]); - } - - o << " }"; - - return o.str(); - } - - static LPCTSTR AspectToString(DWORD aspect) - { - switch(aspect) - { - case DVASPECT_CONTENT: return TEXT("content"); - case DVASPECT_THUMBNAIL: return TEXT("thumbnail"); - case DVASPECT_ICON: return TEXT("icon"); - case DVASPECT_DOCPRINT: return TEXT("printable"); - default: return TEXT(""); - } - } - - static LPCTSTR TymedToString(DWORD tymed) - { - switch(tymed) - { - case TYMED_HGLOBAL: return TEXT("memory"); - case TYMED_FILE: return TEXT("file"); - case TYMED_ISTREAM: return TEXT("IStream"); - case TYMED_ISTORAGE: return TEXT("IStorage"); - case TYMED_GDI: return TEXT("bitmap"); - case TYMED_MFPICT: return TEXT("metafile"); - case TYMED_ENHMF: return TEXT("enhanced metafile"); - case TYMED_NULL: return TEXT(""); - default: return TEXT(""); - } - } - - static std::basic_string FormatEtcToString(const FORMATETC& formatetc) - { - std::basic_ostringstream o; - - o << "{"; - - // cfFormat - o << " format: "; - - switch(formatetc.cfFormat) - { - case CF_TEXT: o << "ANSI text"; break; - case CF_BITMAP: o << "bitmap"; break; - case CF_METAFILEPICT: o << "metafile"; break; - case CF_SYLK: o << "symlink"; break; - case CF_DIF: o << "DIF"; break; - case CF_TIFF: o << "TIFF"; break; - case CF_OEMTEXT: o << "OEM text"; break; - case CF_DIB: o << "DIBv4"; break; - case CF_PALETTE: o << "palette"; break; - case CF_PENDATA: o << "pen data"; break; - case CF_RIFF: o << "RIFF"; break; - case CF_WAVE: o << "WAV"; break; - case CF_UNICODETEXT: o << "Unicode text"; break; - case CF_ENHMETAFILE: o << "enhanced metafile"; break; - case CF_HDROP: o << "list of files"; break; - case CF_LOCALE: o << "LCID"; break; - case CF_DIBV5: o << "DIBv5"; break; - case CF_OWNERDISPLAY: o << ""; break; - case CF_DSPTEXT: o << ""; break; - case CF_DSPBITMAP: o << ""; break; - case CF_DSPMETAFILEPICT: o << ""; break; - case CF_DSPENHMETAFILE: o << ""; break; - - default: - o << "<"; - - if(formatetc.cfFormat >= CF_PRIVATEFIRST && formatetc.cfFormat <= CF_PRIVATELAST) - o << "private"; - else if(formatetc.cfFormat >= CF_GDIOBJFIRST && formatetc.cfFormat <= CF_GDIOBJLAST) - o << "GDI object"; - else - o << "unknown"; - - o << " " << std::hex << formatetc.cfFormat << std::dec << ">"; - } - - // ptd - if(formatetc.ptd) - o << " device: " << TargetDeviceToString(*formatetc.ptd); - - // dwAspect - o << " aspect: " << AspectToString(formatetc.dwAspect); - - // lindex - if(formatetc.dwAspect == DVASPECT_CONTENT || formatetc.dwAspect == DVASPECT_DOCPRINT) - o << " page split: " << formatetc.lindex; - - // tymed - o << " medium: " << TymedToString(formatetc.tymed); - - return o.str(); - } - - static std::basic_string MediumToString(const STGMEDIUM& medium) - { - std::basic_ostringstream o; - - o << "{ "; - o << TymedToString(medium.tymed); - o << " }"; - - return o.str(); - } - - public: - virtual HRESULT STDMETHODCALLTYPE GetData(FORMATETC * pformatetcIn, STGMEDIUM * pmedium) - { - IDataObject * pIDataObject = getIDataObject(); - dbgprintf(TEXT("IDataObject::GetData(%s, %p)"), FormatEtcToString(*pformatetcIn).c_str(), pmedium); - HRESULT hr = pIDataObject->GetData(pformatetcIn, pmedium); - dbgprintf(TEXT("IDataObject::GetData -> %08X, %s"), hr, MediumToString(*pmedium).c_str()); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE GetDataHere(FORMATETC * pformatetc, STGMEDIUM * pmedium) - { - IDataObject * pIDataObject = getIDataObject(); - dbgprintf(TEXT("IDataObject::GetDataHere(%s, %p)"), FormatEtcToString(*pformatetc).c_str(), pmedium); - HRESULT hr = pIDataObject->GetDataHere(pformatetc, pmedium); - dbgprintf(TEXT("IDataObject::GetDataHere -> %08X, medium = %s"), hr, MediumToString(*pmedium).c_str()); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE QueryGetData(FORMATETC * pformatetc) - { - IDataObject * pIDataObject = getIDataObject(); - dbgprintf(TEXT("IDataObject::QueryGetData(%s)"), FormatEtcToString(*pformatetc).c_str()); - HRESULT hr = pIDataObject->QueryGetData(pformatetc); - dbgprintf(TEXT("IDataObject::QueryGetData -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE GetCanonicalFormatEtc(FORMATETC * pformatectIn, FORMATETC * pformatetcOut) - { - IDataObject * pIDataObject = getIDataObject(); - dbgprintf(TEXT("IDataObject::GetCanonicalFormatEtc(%s, %p)"), FormatEtcToString(*pformatectIn).c_str(), pformatetcOut); - HRESULT hr = pIDataObject->GetCanonicalFormatEtc(pformatectIn, pformatetcOut); - dbgprintf(TEXT("IDataObject::GetCanonicalFormatEtc -> %08X, formatetcOut = %s"), hr, FormatEtcToString(*pformatetcOut).c_str()); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE SetData(FORMATETC * pformatetc, STGMEDIUM * pmedium, BOOL fRelease) - { - IDataObject * pIDataObject = getIDataObject(); - dbgprintf(TEXT("IDataObject::SetData(%s, %p, %s)"), FormatEtcToString(*pformatetc).c_str(), MediumToString(*pmedium).c_str(), fRelease ? TEXT("true") : TEXT("false")); - HRESULT hr = pIDataObject->SetData(pformatetc, pmedium, fRelease); - dbgprintf(TEXT("IDataObject::SetData -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC ** ppenumFormatEtc) - { - IDataObject * pIDataObject = getIDataObject(); - dbgprintf(TEXT("IDataObject::EnumFormatEtc(%lu, %p)"), dwDirection, ppenumFormatEtc); - HRESULT hr = pIDataObject->EnumFormatEtc(dwDirection, ppenumFormatEtc); - dbgprintf(TEXT("IDataObject::EnumFormatEtc -> %08X, penumFormatEtc = %p"), hr, *ppenumFormatEtc); - // TODO: hook - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE DAdvise(FORMATETC * pformatetc, DWORD advf, IAdviseSink * pAdvSink, DWORD * pdwConnection) - { - IDataObject * pIDataObject = getIDataObject(); - dbgprintf(TEXT("IDataObject::DAdvise(%s, %lu, %p, %p)"), FormatEtcToString(*pformatetc).c_str(), advf, pAdvSink, pdwConnection); - HRESULT hr = pIDataObject->DAdvise(pformatetc, advf, pAdvSink, pdwConnection); - dbgprintf(TEXT("IDataObject::DAdvise -> %08X, dwConnection = %lu"), hr, *pdwConnection); - // TODO: hook - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE DUnadvise(DWORD dwConnection) - { - IDataObject * pIDataObject = getIDataObject(); - dbgprintf(TEXT("IDataObject::DUnadvise(%lu)"), dwConnection); - HRESULT hr = pIDataObject->DUnadvise(dwConnection); - dbgprintf(TEXT("IDataObject::DUnadvise -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE EnumDAdvise(IEnumSTATDATA ** ppenumAdvise) - { - IDataObject * pIDataObject = getIDataObject(); - dbgprintf(TEXT("IDataObject::EnumDAdvise(%p)"), ppenumAdvise); - HRESULT hr = pIDataObject->EnumDAdvise(ppenumAdvise); - dbgprintf(TEXT("IDataObject::EnumDAdvise -> %08X, penumAdvise = %p"), hr, *ppenumAdvise); - // TODO: hook - return hr; - } - - /* IObjectSafety */ - public: - virtual HRESULT STDMETHODCALLTYPE IObjectSafety::GetInterfaceSafetyOptions(REFIID riid, DWORD * pdwSupportedOptions, DWORD * pdwEnabledOptions) - { - IObjectSafety * pIObjectSafety = getIObjectSafety(); - dbgprintf(TEXT("IObjectSafety::GetInterfaceSafetyOptions(%ls, %p, %p)"), UUIDToString(riid).c_str(), pdwSupportedOptions, pdwEnabledOptions); - HRESULT hr = pIObjectSafety->GetInterfaceSafetyOptions(riid, pdwSupportedOptions, pdwEnabledOptions); - dbgprintf(TEXT("IObjectSafety::GetInterfaceSafetyOptions -> %08X, dwSupportedOptions = %08X, dwEnabledOptions = %08X"), hr, *pdwSupportedOptions, *pdwEnabledOptions); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE IObjectSafety::SetInterfaceSafetyOptions(REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions) - { - IObjectSafety * pIObjectSafety = getIObjectSafety(); - dbgprintf(TEXT("IObjectSafety::SetInterfaceSafetyOptions(%ls, %08X, %08X)"), UUIDToString(riid).c_str(), dwOptionSetMask, dwEnabledOptions); - HRESULT hr = pIObjectSafety->SetInterfaceSafetyOptions(riid, dwOptionSetMask, dwEnabledOptions); - dbgprintf(TEXT("IObjectSafety::SetInterfaceSafetyOptions -> %08X"), hr); - return hr; - } - - /* IOleControl */ - private: - std::basic_string ControlInfoToString(const CONTROLINFO& ci) - { - std::basic_ostringstream o; - - int firstdone = 0; - - o << "{ "; - - if(ci.cAccel && ci.hAccel) - { - LPACCEL pAccel = static_cast(GlobalLock(ci.hAccel)); - - if(pAccel) - { - for(USHORT i = 0; i < ci.cAccel; ++ i) - { - if(i) - o << ", "; - - if(pAccel[i].fVirt & FSHIFT) - o << "SHIFT + "; - - if(pAccel[i].fVirt & FCONTROL) - o << "CONTROL + "; - - if(pAccel[i].fVirt & FALT) - o << "ALT + "; - - if(pAccel[i].fVirt & FVIRTKEY) - o << ""; - else - o << wchar_t(pAccel[i].key); - - o << " " << std::hex << pAccel[i].cmd << std::dec; - } - - firstdone = ci.cAccel; - - GlobalUnlock(pAccel); - } - } - - if(ci.dwFlags & CTRLINFO_EATS_RETURN) - { - if(!firstdone) - { - o << ", "; - ++ firstdone; - } - - o << "ENTER"; - } - - if(ci.dwFlags & CTRLINFO_EATS_ESCAPE) - { - if(!firstdone) - { - o << ", "; - ++ firstdone; - } - - o << "ESC"; - } - - if(firstdone) - o << " "; - - o << "}"; - - return o.str(); - } - - std::basic_string MnemonicToString(const MSG& msg) - { - std::basic_ostringstream o; - - o << "["; - - switch(msg.message) - { - case WM_SYSKEYDOWN: - o << "ALT + "; - - case WM_KEYDOWN: - TCHAR sz[1024]; - GetKeyNameText(LONG(msg.lParam), sz, ARRAYSIZE(sz)); - o << sz; - - default: - o << ""; - } - - o << "]"; - - return o.str(); - } - - public: - virtual HRESULT STDMETHODCALLTYPE GetControlInfo(CONTROLINFO * pCI) - { - IOleControl * pIOleControl = getIOleControl(); - dbgprintf(TEXT("IOleControl::GetControlInfo(%p)"), pCI); - HRESULT hr = pIOleControl->GetControlInfo(pCI); - dbgprintf(TEXT("IOleControl::GetControlInfo -> %08X, %s"), hr, ControlInfoToString(*pCI).c_str()); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE OnMnemonic(MSG * pMsg) - { - IOleControl * pIOleControl = getIOleControl(); - dbgprintf(TEXT("IOleControl::OnMnemonic(%s)"), MnemonicToString(*pMsg).c_str()); - HRESULT hr = pIOleControl->OnMnemonic(pMsg); - dbgprintf(TEXT("IOleControl::OnMnemonic -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE OnAmbientPropertyChange(DISPID dispID) - { - IOleControl * pIOleControl = getIOleControl(); - dbgprintf(TEXT("IOleControl::OnAmbientPropertyChange(%08X)"), dispID); - HRESULT hr = pIOleControl->OnAmbientPropertyChange(dispID); - dbgprintf(TEXT("IOleControl::OnAmbientPropertyChange -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE FreezeEvents(BOOL bFreeze) - { - IOleControl * pIOleControl = getIOleControl(); - dbgprintf(TEXT("IOleControl::FreezeEvents(%s)"), BooleanToString(bFreeze)); - HRESULT hr = pIOleControl->FreezeEvents(bFreeze); - dbgprintf(TEXT("IOleControl::FreezeEvents -> %08X"), hr); - return hr; - } - - /* IOleInPlaceActiveObject */ - public: - virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(LPMSG lpmsg) - { - IOleInPlaceActiveObject * pIOleInPlaceActiveObject = getIOleInPlaceActiveObject(); - dbgprintf(TEXT("IOleInPlaceActiveObject::TranslateAccelerator(%s)"), MnemonicToString(*lpmsg).c_str()); - HRESULT hr = pIOleInPlaceActiveObject->TranslateAccelerator(lpmsg); - dbgprintf(TEXT("IOleInPlaceActiveObject::TranslateAccelerator -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE OnFrameWindowActivate(BOOL fActivate) - { - IOleInPlaceActiveObject * pIOleInPlaceActiveObject = getIOleInPlaceActiveObject(); - dbgprintf(TEXT("IOleInPlaceActiveObject::OnFrameWindowActivate(%s)"), BooleanToString(fActivate)); - HRESULT hr = pIOleInPlaceActiveObject->OnFrameWindowActivate(fActivate); - dbgprintf(TEXT("IOleInPlaceActiveObject::OnFrameWindowActivate -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE OnDocWindowActivate(BOOL fActivate) - { - IOleInPlaceActiveObject * pIOleInPlaceActiveObject = getIOleInPlaceActiveObject(); - dbgprintf(TEXT("IOleInPlaceActiveObject::OnDocWindowActivate(%s)"), BooleanToString(fActivate)); - HRESULT hr = pIOleInPlaceActiveObject->OnDocWindowActivate(fActivate); - dbgprintf(TEXT("IOleInPlaceActiveObject::OnDocWindowActivate -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE ResizeBorder(LPCRECT prcBorder, IOleInPlaceUIWindow * pUIWindow, BOOL fFrameWindow) - { - // TODO: hook pUIWindow - IOleInPlaceActiveObject * pIOleInPlaceActiveObject = getIOleInPlaceActiveObject(); - dbgprintf(TEXT("IOleInPlaceActiveObject::ResizeBorder(%s)"), RectToString(*prcBorder).c_str(), pUIWindow, BooleanToString(fFrameWindow)); - HRESULT hr = pIOleInPlaceActiveObject->ResizeBorder(prcBorder, pUIWindow, fFrameWindow); - dbgprintf(TEXT("IOleInPlaceActiveObject::ResizeBorder -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE EnableModeless(BOOL fEnable) - { - IOleInPlaceActiveObject * pIOleInPlaceActiveObject = getIOleInPlaceActiveObject(); - dbgprintf(TEXT("IOleInPlaceActiveObject::EnableModeless(%s)"), BooleanToString(fEnable)); - HRESULT hr = pIOleInPlaceActiveObject->EnableModeless(fEnable); - dbgprintf(TEXT("IOleInPlaceActiveObject::EnableModeless -> %08X"), hr); - return hr; - } - - /* IOleInPlaceObject */ - public: - virtual HRESULT STDMETHODCALLTYPE InPlaceDeactivate(void) - { - IOleInPlaceObject * pIOleInPlaceObject = getIOleInPlaceObject(); - dbgprintf(TEXT("IOleInPlaceObject::InPlaceDeactivate()")); - HRESULT hr = pIOleInPlaceObject->InPlaceDeactivate(); - dbgprintf(TEXT("IOleInPlaceObject::InPlaceDeactivate -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE UIDeactivate(void) - { - IOleInPlaceObject * pIOleInPlaceObject = getIOleInPlaceObject(); - dbgprintf(TEXT("IOleInPlaceObject::UIDeactivate()")); - HRESULT hr = pIOleInPlaceObject->UIDeactivate(); - dbgprintf(TEXT("IOleInPlaceObject::UIDeactivate -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE SetObjectRects(LPCRECT lprcPosRect, LPCRECT lprcClipRect) - { - IOleInPlaceObject * pIOleInPlaceObject = getIOleInPlaceObject(); - dbgprintf(TEXT("IOleInPlaceObject::SetObjectRects(%s, %s)"), RectToString(*lprcPosRect).c_str(), RectToString(*lprcClipRect).c_str()); - HRESULT hr = pIOleInPlaceObject->SetObjectRects(lprcPosRect, lprcClipRect); - dbgprintf(TEXT("IOleInPlaceObject::SetObjectRects -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE ReactivateAndUndo(void) - { - IOleInPlaceObject * pIOleInPlaceObject = getIOleInPlaceObject(); - dbgprintf(TEXT("IOleInPlaceObject::ReactivateAndUndo()")); - HRESULT hr = pIOleInPlaceObject->ReactivateAndUndo(); - dbgprintf(TEXT("IOleInPlaceObject::ReactivateAndUndo -> %08X"), hr); - return hr; - } - - /* IOleWindow */ - public: - virtual HRESULT STDMETHODCALLTYPE GetWindow(HWND * phwnd) - { - IOleWindow * pIOleWindow = getIOleWindow(); - dbgprintf(TEXT("IOleWindow::GetWindow(%p)"), phwnd); - HRESULT hr = pIOleWindow->GetWindow(phwnd); - dbgprintf(TEXT("IOleWindow::GetWindow -> %08X, hwnd = %X"), hr, *phwnd); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL fEnterMode) - { - IOleWindow * pIOleWindow = getIOleWindow(); - dbgprintf(TEXT("IOleWindow::ContextSensitiveHelp(%s)"), BooleanToString(fEnterMode)); - HRESULT hr = pIOleWindow->ContextSensitiveHelp(fEnterMode); - dbgprintf(TEXT("IOleWindow::ContextSensitiveHelp -> %08X"), hr); - return hr; - } - - /* IOleObject */ - public: - virtual HRESULT STDMETHODCALLTYPE SetClientSite(IOleClientSite * pClientSite) - { - // TODO: hook pClientSite - IOleObject * pIOleObject = getIOleObject(); - dbgprintf(TEXT("IOleObject::SetClientSite(%p)"), pClientSite); - HRESULT hr = pIOleObject->SetClientSite(pClientSite); - dbgprintf(TEXT("IOleObject::SetClientSite -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE GetClientSite(IOleClientSite ** ppClientSite) - { - IOleObject * pIOleObject = getIOleObject(); - dbgprintf(TEXT("IOleObject::GetClientSite(%s)"), ppClientSite); - HRESULT hr = pIOleObject->GetClientSite(ppClientSite); - dbgprintf(TEXT("IOleObject::GetClientSite -> %08X"), hr, ppClientSite); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE SetHostNames(LPCOLESTR szContainerApp, LPCOLESTR szContainerObj) - { - IOleObject * pIOleObject = getIOleObject(); - dbgprintf(TEXT("IOleObject::SetHostNames(%ls, %ls)"), szContainerApp, szContainerObj); - HRESULT hr = pIOleObject->SetHostNames(szContainerApp, szContainerObj); - dbgprintf(TEXT("IOleObject::SetHostNames -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE Close(DWORD dwSaveOption) - { - IOleObject * pIOleObject = getIOleObject(); - dbgprintf(TEXT("IOleObject::Close(%lu)"), dwSaveOption); - HRESULT hr = pIOleObject->Close(dwSaveOption); - dbgprintf(TEXT("IOleObject::Close -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE SetMoniker(DWORD dwWhichMoniker, IMoniker * pmk) - { - IOleObject * pIOleObject = getIOleObject(); - dbgprintf(TEXT("IOleObject::SetMoniker(%lu, %p)"), dwWhichMoniker, MonikerToString(pmk).c_str()); - HRESULT hr = pIOleObject->SetMoniker(dwWhichMoniker, pmk); - dbgprintf(TEXT("IOleObject::SetMoniker -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker ** ppmk) - { - IOleObject * pIOleObject = getIOleObject(); - dbgprintf(TEXT("IOleObject::GetMoniker(%lu, %lu, %p)"), dwAssign, dwWhichMoniker, ppmk); - HRESULT hr = pIOleObject->GetMoniker(dwAssign, dwWhichMoniker, ppmk); - dbgprintf(TEXT("IOleObject::GetMoniker -> %08X, pmk = %s"), hr, SUCCEEDED(hr) ? MonikerToString(*ppmk).c_str() : TEXT("")); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE InitFromData(IDataObject * pDataObject, BOOL fCreation, DWORD dwReserved) - { - IOleObject * pIOleObject = getIOleObject(); - dbgprintf(TEXT("IOleObject::InitFromData(%p, %s, %lu)"), pDataObject, BooleanToString(fCreation), dwReserved); - HRESULT hr = pIOleObject->InitFromData(pDataObject, fCreation, dwReserved); - dbgprintf(TEXT("IOleObject::InitFromData -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE GetClipboardData(DWORD dwReserved, IDataObject ** ppDataObject) - { - IOleObject * pIOleObject = getIOleObject(); - dbgprintf(TEXT("IOleObject::GetClipboardData(%lu, %p)"), dwReserved, ppDataObject); - HRESULT hr = pIOleObject->GetClipboardData(dwReserved, ppDataObject); - dbgprintf(TEXT("IOleObject::GetClipboardData -> %08X, pDataObject = %p"), hr, *ppDataObject); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE DoVerb(LONG iVerb, LPMSG lpmsg, IOleClientSite * pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect) - { - IOleObject * pIOleObject = getIOleObject(); - dbgprintf(TEXT("IOleObject::DoVerb(%ld, %p, %p, %ld, %p, %s)"), iVerb, lpmsg, pActiveSite, lindex, hwndParent, RectToString(*lprcPosRect).c_str()); - HRESULT hr = pIOleObject->DoVerb(iVerb, lpmsg, pActiveSite, lindex, hwndParent, lprcPosRect); - dbgprintf(TEXT("IOleObject::DoVerb -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE EnumVerbs(IEnumOLEVERB ** ppEnumOleVerb) - { - IOleObject * pIOleObject = getIOleObject(); - dbgprintf(TEXT("IOleObject::EnumVerbs(%p)"), ppEnumOleVerb); - HRESULT hr = pIOleObject->EnumVerbs(ppEnumOleVerb); - dbgprintf(TEXT("IOleObject::EnumVerbs -> %08X, pEnumOleVerb = %p"), hr, *ppEnumOleVerb); - // TODO: hook - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE Update(void) - { - IOleObject * pIOleObject = getIOleObject(); - dbgprintf(TEXT("IOleObject::Update(%s)")); - HRESULT hr = pIOleObject->Update(); - dbgprintf(TEXT("IOleObject::Update -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE IsUpToDate(void) - { - IOleObject * pIOleObject = getIOleObject(); - dbgprintf(TEXT("IOleObject::IsUpToDate(%s)")); - HRESULT hr = pIOleObject->IsUpToDate(); - dbgprintf(TEXT("IOleObject::IsUpToDate -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE GetUserClassID(CLSID * pClsid) - { - IOleObject * pIOleObject = getIOleObject(); - dbgprintf(TEXT("IOleObject::GetUserClassID(%p)"), pClsid); - HRESULT hr = pIOleObject->GetUserClassID(pClsid); - dbgprintf(TEXT("IOleObject::GetUserClassID -> %08X, Clsid = %ls"), hr, UUIDToString(*pClsid).c_str()); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE GetUserType(DWORD dwFormOfType, LPOLESTR * pszUserType) - { - IOleObject * pIOleObject = getIOleObject(); - dbgprintf(TEXT("IOleObject::GetUserType(%lu, %p)"), dwFormOfType, pszUserType); - HRESULT hr = pIOleObject->GetUserType(dwFormOfType, pszUserType); - dbgprintf(TEXT("IOleObject::GetUserType -> %08X, szUserType = %s"), hr, *pszUserType); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE SetExtent(DWORD dwDrawAspect, SIZEL * psizel) - { - IOleObject * pIOleObject = getIOleObject(); - dbgprintf(TEXT("IOleObject::SetExtent(%lu, %s)"), dwDrawAspect, SizeToString(*psizel).c_str()); - HRESULT hr = pIOleObject->SetExtent(dwDrawAspect, psizel); - dbgprintf(TEXT("IOleObject::SetExtent -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE GetExtent(DWORD dwDrawAspect, SIZEL * psizel) - { - IOleObject * pIOleObject = getIOleObject(); - dbgprintf(TEXT("IOleObject::GetExtent(%lu, %p)"), dwDrawAspect, psizel); - HRESULT hr = pIOleObject->GetExtent(dwDrawAspect, psizel); - dbgprintf(TEXT("IOleObject::GetExtent -> %08X"), hr, SizeToString(*psizel).c_str()); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE Advise(IAdviseSink * pAdvSink, DWORD * pdwConnection) - { - // TODO: hook pAdvSink - IOleObject * pIOleObject = getIOleObject(); - dbgprintf(TEXT("IOleObject::Advise(%p, %p)"), pAdvSink, pdwConnection); - HRESULT hr = pIOleObject->Advise(pAdvSink, pdwConnection); - dbgprintf(TEXT("IOleObject::Advise -> %08X, dwConnection = %lu"), hr, *pdwConnection); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE Unadvise(DWORD dwConnection) - { - IOleObject * pIOleObject = getIOleObject(); - dbgprintf(TEXT("IOleObject::Unadvise(%lu)"), dwConnection); - HRESULT hr = pIOleObject->Unadvise(dwConnection); - dbgprintf(TEXT("IOleObject::Unadvise -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE EnumAdvise(IEnumSTATDATA ** ppenumAdvise) - { - IOleObject * pIOleObject = getIOleObject(); - dbgprintf(TEXT("IOleObject::EnumAdvise(%p)"), ppenumAdvise); - HRESULT hr = pIOleObject->EnumAdvise(ppenumAdvise); - dbgprintf(TEXT("IOleObject::EnumAdvise -> %08X, penumAdvise = %p"), hr, *ppenumAdvise); - // TODO: hook - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE GetMiscStatus(DWORD dwAspect, DWORD * pdwStatus) - { - IOleObject * pIOleObject = getIOleObject(); - dbgprintf(TEXT("IOleObject::GetMiscStatus(%lu, %p)"), dwAspect, pdwStatus); - HRESULT hr = pIOleObject->GetMiscStatus(dwAspect, pdwStatus); - dbgprintf(TEXT("IOleObject::GetMiscStatus -> %08X, dwStatus = %08X"), hr, *pdwStatus); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE SetColorScheme(LOGPALETTE * pLogpal) - { - IOleObject * pIOleObject = getIOleObject(); - dbgprintf(TEXT("IOleObject::SetColorScheme(%p)"), pLogpal); - HRESULT hr = pIOleObject->SetColorScheme(pLogpal); - dbgprintf(TEXT("IOleObject::SetColorScheme -> %08X"), hr); - return hr; - } - - /* IPersist */ - public: - virtual HRESULT STDMETHODCALLTYPE GetClassID(CLSID * pClassID) - { - IPersist * pIPersist = getIPersist(); - dbgprintf(TEXT("IPersist::GetClassID(%p)"), pClassID); - HRESULT hr = pIPersist->GetClassID(pClassID); - dbgprintf(TEXT("IPersist::GetClassID -> %08X, ClassId = %ls"), hr, UUIDToString(*pClassID).c_str()); - return hr; - } - - /* IPersistPropertyBag */ - public: - virtual HRESULT STDMETHODCALLTYPE InitNew(void) - { - IPersistPropertyBag * pIPersistPropertyBag = getIPersistPropertyBag(); - dbgprintf(TEXT("IPersistPropertyBag::InitNew()")); - HRESULT hr = pIPersistPropertyBag->InitNew(); - dbgprintf(TEXT("IPersistPropertyBag::InitNew -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE Load(IPropertyBag * pPropBag, IErrorLog * pErrorLog) - { - // TODO: hook pPropBag, pErrorLog - IPersistPropertyBag * pIPersistPropertyBag = getIPersistPropertyBag(); - dbgprintf(TEXT("IPersistPropertyBag::Load(%p, %p)"), pPropBag, pErrorLog); - HRESULT hr = pIPersistPropertyBag->Load(pPropBag, pErrorLog); - dbgprintf(TEXT("IPersistPropertyBag::Load -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE Save(IPropertyBag * pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties) - { - // TODO: hook pPropBag - IPersistPropertyBag * pIPersistPropertyBag = getIPersistPropertyBag(); - dbgprintf(TEXT("IPersistPropertyBag::Save(%p, %s, %s)"), pPropBag, BooleanToString(fClearDirty), BooleanToString(fSaveAllProperties)); - HRESULT hr = pIPersistPropertyBag->Save(pPropBag, fClearDirty, fSaveAllProperties); - dbgprintf(TEXT("IPersistPropertyBag::Save -> %08X"), hr); - return hr; - } - - /* IPersistStorage */ - public: - virtual HRESULT STDMETHODCALLTYPE IPersistStorage::IsDirty(void) - { - IPersistStorage * pIPersistStorage = getIPersistStorage(); - dbgprintf(TEXT("IPersistStorage::IsDirty()")); - HRESULT hr = pIPersistStorage->IsDirty(); - dbgprintf(TEXT("IPersistStorage::IsDirty -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE IPersistStorage::InitNew(IStorage * pStg) - { - IPersistStorage * pIPersistStorage = getIPersistStorage(); - dbgprintf(TEXT("IPersistStorage::InitNew(%p)"), pStg); - HRESULT hr = pIPersistStorage->InitNew(pStg); - dbgprintf(TEXT("IPersistStorage::InitNew -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE IPersistStorage::Load(IStorage * pStg) - { - IPersistStorage * pIPersistStorage = getIPersistStorage(); - dbgprintf(TEXT("IPersistStorage::Load(%p)"), pStg); - HRESULT hr = pIPersistStorage->Load(pStg); - dbgprintf(TEXT("IPersistStorage::Load -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE IPersistStorage::Save(IStorage * pStgSave, BOOL fSameAsLoad) - { - IPersistStorage * pIPersistStorage = getIPersistStorage(); - dbgprintf(TEXT("IPersistStorage::Save(%p, %s)"), pStgSave, BooleanToString(fSameAsLoad)); - HRESULT hr = pIPersistStorage->Save(pStgSave, fSameAsLoad); - dbgprintf(TEXT("IPersistStorage::Save -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE SaveCompleted(IStorage * pStgNew) - { - IPersistStorage * pIPersistStorage = getIPersistStorage(); - dbgprintf(TEXT("IPersistStorage::SaveCompleted(%p)"), pStgNew); - HRESULT hr = pIPersistStorage->SaveCompleted(pStgNew); - dbgprintf(TEXT("IPersistStorage::SaveCompleted -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE HandsOffStorage(void) - { - IPersistStorage * pIPersistStorage = getIPersistStorage(); - dbgprintf(TEXT("IPersistStorage::HandsOffStorage()")); - HRESULT hr = pIPersistStorage->HandsOffStorage(); - dbgprintf(TEXT("IPersistStorage::HandsOffStorage -> %08X"), hr); - return hr; - } - - /* IPersistStreamInit */ - public: - virtual HRESULT STDMETHODCALLTYPE IPersistStreamInit::IsDirty(void) - { - IPersistStreamInit * pIPersistStreamInit = getIPersistStreamInit(); - dbgprintf(TEXT("IPersistStreamInit::IsDirty()")); - HRESULT hr = pIPersistStreamInit->IsDirty(); - dbgprintf(TEXT("IPersistStreamInit::IsDirty -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE IPersistStreamInit::Load(LPSTREAM pStm) - { - IPersistStreamInit * pIPersistStreamInit = getIPersistStreamInit(); - dbgprintf(TEXT("IPersistStreamInit::Load(%p)"), pStm); - HRESULT hr = pIPersistStreamInit->Load(pStm); - dbgprintf(TEXT("IPersistStreamInit::Load -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE IPersistStreamInit::Save(LPSTREAM pStm, BOOL fClearDirty) - { - IPersistStreamInit * pIPersistStreamInit = getIPersistStreamInit(); - dbgprintf(TEXT("IPersistStreamInit::Save(%p, %s)"), pStm, BooleanToString(fClearDirty)); - HRESULT hr = pIPersistStreamInit->Save(pStm, fClearDirty); - dbgprintf(TEXT("IPersistStreamInit::Save -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE IPersistStreamInit::GetSizeMax(ULARGE_INTEGER * pCbSize) - { - IPersistStreamInit * pIPersistStreamInit = getIPersistStreamInit(); - dbgprintf(TEXT("IPersistStreamInit::GetSizeMax(%p)"), pCbSize); - HRESULT hr = pIPersistStreamInit->GetSizeMax(pCbSize); - dbgprintf(TEXT("IPersistStreamInit::GetSizeMax -> %08X, CbSize = %llu"), hr, pCbSize->QuadPart); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE IPersistStreamInit::InitNew(void) - { - IPersistStreamInit * pIPersistStreamInit = getIPersistStreamInit(); - dbgprintf(TEXT("IPersistStreamInit::InitNew()")); - HRESULT hr = pIPersistStreamInit->InitNew(); - dbgprintf(TEXT("IPersistStreamInit::InitNew -> %08X"), hr); - return hr; - } - - /* IProvideClassInfo */ - public: - virtual HRESULT STDMETHODCALLTYPE GetClassInfo(ITypeInfo ** ppTI) - { - IProvideClassInfo * pIProvideClassInfo = getIProvideClassInfo(); - dbgprintf(TEXT("IProvideClassInfo::GetClassInfo(%p)"), ppTI); - HRESULT hr = pIProvideClassInfo->GetClassInfo(ppTI); - dbgprintf(TEXT("IProvideClassInfo::GetClassInfo -> %08X, pTI = %p"), hr, *ppTI); - return hr; - } - - /* IProvideClassInfo2 */ - public: - virtual HRESULT STDMETHODCALLTYPE IProvideClassInfo2::GetGUID(DWORD dwGuidKind, GUID * pGUID) - { - IProvideClassInfo2 * pIProvideClassInfo2 = getIProvideClassInfo2(); - dbgprintf(TEXT("IProvideClassInfo2::GetGUID(%lu, %p)"), dwGuidKind, pGUID); - HRESULT hr = pIProvideClassInfo2->GetGUID(dwGuidKind, pGUID); - dbgprintf(TEXT("IProvideClassInfo2::GetGUID -> %08X, GUID = %ls"), hr, UUIDToString(*pGUID).c_str()); - return hr; - } - - /* IQuickActivate */ - public: - virtual HRESULT STDMETHODCALLTYPE IQuickActivate::QuickActivate(QACONTAINER * pQaContainer, QACONTROL * pQaControl) // TODO - { - IQuickActivate * pIQuickActivate = getIQuickActivate(); - - std::basic_stringstream o1; - - o1 << "{ "; - o1 << "pClientSite = " << (void *)pQaContainer->pClientSite << ", "; - o1 << "pAdviseSink = " << (void *)pQaContainer->pAdviseSink << ", "; - o1 << "pPropertyNotifySink = " << (void *)pQaContainer->pPropertyNotifySink << ", "; - o1 << "pUnkEventSink = " << (void *)pQaContainer->pUnkEventSink << ", "; - - o1 << std::hex; - o1 << "dwAmbientFlags = " << pQaContainer->dwAmbientFlags << ", "; - o1 << "colorFore = " << pQaContainer->colorFore << ", "; - o1 << "colorBack = " << pQaContainer->colorBack << ", "; - o1 << std::dec; - - o1 << "pFont = " << (void *)pQaContainer->pFont << ", "; - o1 << "pUndoMgr = " << (void *)pQaContainer->pUndoMgr << ", "; - - o1 << std::hex; - o1 << "dwAppearance = " << pQaContainer->dwAppearance << ", "; - o1 << "lcid = " << pQaContainer->lcid << ", "; - o1 << std::dec; - - o1 << "hpal = " << (void *)pQaContainer->hpal << ", "; - o1 << "pBindHost = " << (void *)pQaContainer->pBindHost << ", "; - o1 << "pOleControlSite = " << (void *)pQaContainer->pOleControlSite << ", "; - o1 << "pServiceProvider = " << (void *)pQaContainer->pServiceProvider << ", "; - o1 << "}"; - - dbgprintf(TEXT("IQuickActivate::QuickActivate(%s, %p)"), o1.str().c_str(), pQaControl); - - HRESULT hr = pIQuickActivate->QuickActivate(pQaContainer, pQaControl); - - std::basic_stringstream o2; - - o2 << "{ "; - o2 << std::hex; - o2 << "dwMiscStatus = " << pQaControl->dwMiscStatus << ", "; - o2 << "dwViewStatus = " << pQaControl->dwViewStatus << ", "; - o2 << "dwEventCookie = " << pQaControl->dwEventCookie << ", "; - o2 << "dwPropNotifyCookie = " << pQaControl->dwPropNotifyCookie << ", "; - o2 << "dwPointerActivationPolicy = " << pQaControl->dwPointerActivationPolicy << ", "; - o2 << std::dec; - o2 << "}"; - - dbgprintf(TEXT("IQuickActivate::QuickActivate -> %08X, QaControl = %s"), hr, o2.str().c_str()); - - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE IQuickActivate::SetContentExtent(LPSIZEL pSizel) - { - IQuickActivate * pIQuickActivate = getIQuickActivate(); - dbgprintf(TEXT("IQuickActivate::SetContentExtent(%s)"), SizeToString(*pSizel).c_str()); - HRESULT hr = pIQuickActivate->SetContentExtent(pSizel); - dbgprintf(TEXT("IQuickActivate::SetContentExtent -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE IQuickActivate::GetContentExtent(LPSIZEL pSizel) - { - IQuickActivate * pIQuickActivate = getIQuickActivate(); - dbgprintf(TEXT("IQuickActivate::GetContentExtent(%p)"), pSizel); - HRESULT hr = pIQuickActivate->GetContentExtent(pSizel); - dbgprintf(TEXT("IQuickActivate::GetContentExtent -> %08X, Sizel = %s"), hr, SizeToString(*pSizel).c_str()); - return hr; - } - - /* ISpecifyPropertyPages */ - private: - std::basic_string CauuidToString(const CAUUID& cauuid) - { - std::basic_ostringstream o; - - o << "{"; - - for(ULONG i = 0; i < cauuid.cElems; ++ i) - { - if(i) - o << ", "; - else - o << " "; - - o << UUIDToString(cauuid.pElems[i]); - } - - o << " }"; - - return o.str(); - } - - public: - virtual HRESULT STDMETHODCALLTYPE ISpecifyPropertyPages::GetPages(CAUUID * pPages) - { - ISpecifyPropertyPages * pISpecifyPropertyPages = getISpecifyPropertyPages(); - dbgprintf(TEXT("ISpecifyPropertyPages::GetPages(%p)"), pPages); - HRESULT hr = pISpecifyPropertyPages->GetPages(pPages); - dbgprintf(TEXT("ISpecifyPropertyPages::GetPages -> %08X, Pages = %s"), hr, CauuidToString(*pPages).c_str()); - return hr; - } - - /* IViewObject */ - public: - virtual HRESULT STDMETHODCALLTYPE IViewObject::Draw(DWORD dwDrawAspect, LONG lindex, void * pvAspect, DVTARGETDEVICE * ptd, HDC hdcTargetDev, HDC hdcDraw, LPCRECTL lprcBounds, LPCRECTL lprcWBounds, BOOL (STDMETHODCALLTYPE * pfnContinue)(ULONG_PTR dwContinue), ULONG_PTR dwContinue) - { - IViewObject * pIViewObject = getIViewObject(); - dbgprintf(TEXT("IViewObject::Draw(%s, %ld, %p, %s, %p, %p, %s, %s, %p, %p)"), AspectToString(dwDrawAspect), lindex, pvAspect, TargetDeviceToString(*ptd).c_str(), hdcTargetDev, hdcDraw, RectToString(*lprcBounds).c_str(), RectToString(*lprcWBounds).c_str(), pfnContinue, dwContinue); - HRESULT hr = pIViewObject->Draw(dwDrawAspect, lindex, pvAspect, ptd, hdcTargetDev, hdcDraw, lprcBounds, lprcWBounds, pfnContinue, dwContinue); - dbgprintf(TEXT("IViewObject::Draw -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE IViewObject::GetColorSet(DWORD dwDrawAspect, LONG lindex, void * pvAspect, DVTARGETDEVICE * ptd, HDC hicTargetDev, LOGPALETTE ** ppColorSet) - { - IViewObject * pIViewObject = getIViewObject(); - dbgprintf(TEXT("IViewObject::GetColorSet(%s, %ld, %p, %s, %p, %p)"), AspectToString(dwDrawAspect), lindex, pvAspect, TargetDeviceToString(*ptd).c_str(), hicTargetDev, ppColorSet); - HRESULT hr = pIViewObject->GetColorSet(dwDrawAspect, lindex, pvAspect, ptd, hicTargetDev, ppColorSet); - dbgprintf(TEXT("IViewObject::GetColorSet -> %08X, pColorSet = %p"), hr, *ppColorSet); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE IViewObject::Freeze(DWORD dwDrawAspect, LONG lindex, void * pvAspect, DWORD * pdwFreeze) - { - IViewObject * pIViewObject = getIViewObject(); - dbgprintf(TEXT("IViewObject::Freeze(%s, %ld, %p, %p)"), AspectToString(dwDrawAspect), lindex, pvAspect, pdwFreeze); - HRESULT hr = pIViewObject->Freeze(dwDrawAspect, lindex, pvAspect, pdwFreeze); - dbgprintf(TEXT("IViewObject::Freeze -> %08X, dwFreeze = %08X"), hr, *pdwFreeze); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE IViewObject::Unfreeze(DWORD dwFreeze) - { - IViewObject * pIViewObject = getIViewObject(); - dbgprintf(TEXT("IViewObject::Unfreeze(%08X)"), dwFreeze); - HRESULT hr = pIViewObject->Unfreeze(dwFreeze); - dbgprintf(TEXT("IViewObject::Unfreeze -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE IViewObject::SetAdvise(DWORD aspects, DWORD advf, IAdviseSink * pAdvSink) - { - IViewObject * pIViewObject = getIViewObject(); - dbgprintf(TEXT("IViewObject::SetAdvise(%s, %08X, %p)"), AspectToString(aspects), advf, pAdvSink); - HRESULT hr = pIViewObject->SetAdvise(aspects, advf, pAdvSink); - dbgprintf(TEXT("IViewObject::SetAdvise -> %08X"), hr); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE IViewObject::GetAdvise(DWORD * pAspects, DWORD * pAdvf, IAdviseSink ** ppAdvSink) - { - IViewObject * pIViewObject = getIViewObject(); - dbgprintf(TEXT("IViewObject::GetAdvise(%p, %p, %p)"), pAspects, pAdvf, ppAdvSink); - HRESULT hr = pIViewObject->GetAdvise(pAspects, pAdvf, ppAdvSink); - dbgprintf(TEXT("IViewObject::GetAdvise -> %08X, aspects = %s, advf = %08X, pAdvSink %p"), hr, AspectToString(*pAspects), *pAdvf, *ppAdvSink); - return hr; - } - - /* IViewObject2 */ - public: - virtual HRESULT STDMETHODCALLTYPE IViewObject2::GetExtent(DWORD dwDrawAspect, LONG lindex, DVTARGETDEVICE * ptd, LPSIZEL lpsizel) - { - IViewObject2 * pIViewObject2 = getIViewObject2(); - dbgprintf(TEXT("IViewObject2::GetExtent(%s, %ld, %s, %p)"), AspectToString(dwDrawAspect), lindex, TargetDeviceToString(*ptd).c_str(), lpsizel); - HRESULT hr = pIViewObject2->GetExtent(dwDrawAspect, lindex, ptd, lpsizel); - dbgprintf(TEXT("IViewObject2::GetExtent -> %08X, sizel = %s"), hr, SizeToString(*lpsizel).c_str()); - return hr; - } - - /* IMsTscAx */ - public: - virtual HRESULT __stdcall put_Server(BSTR pServer) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::put_Server(%ls)"), pServer); - HRESULT hr = pIMsTscAx->put_Server(pServer); - dbgprintf(TEXT("IMsTscAx::put_Server -> %08X"), hr); - return hr; - } - - virtual HRESULT __stdcall get_Server(BSTR * pServer) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::get_Server()"), pServer); - HRESULT hr = pIMsTscAx->get_Server(pServer); - dbgprintf(TEXT("IMsTscAx::get_Server -> %08X, server = %ls"), hr, *pServer); - return hr; - } - - virtual HRESULT __stdcall put_Domain(BSTR pDomain) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::put_Domain(%ls)"), pDomain); - HRESULT hr = pIMsTscAx->put_Domain(pDomain); - dbgprintf(TEXT("IMsTscAx::put_Domain -> %08X"), hr); - return hr; - } - - virtual HRESULT __stdcall get_Domain(BSTR * pDomain) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::get_Domain(%p)"), pDomain); - HRESULT hr = pIMsTscAx->get_Domain(pDomain); - dbgprintf(TEXT("IMsTscAx::get_Domain -> %08X, Domain = %ls"), hr, *pDomain); - return hr; - } - - virtual HRESULT __stdcall put_UserName(BSTR pUserName) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::put_UserName(%ls)"), pUserName); - HRESULT hr = pIMsTscAx->put_UserName(pUserName); - dbgprintf(TEXT("IMsTscAx::put_UserName -> %08X"), hr); - return hr; - } - - virtual HRESULT __stdcall get_UserName(BSTR * pUserName) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::get_UserName(%p)"), pUserName); - HRESULT hr = pIMsTscAx->get_UserName(pUserName); - dbgprintf(TEXT("IMsTscAx::get_UserName -> %08X, UserName = %ls"), hr, *pUserName); - return hr; - } - - virtual HRESULT __stdcall put_DisconnectedText(BSTR pDisconnectedText) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::put_DisconnectedText(%ls)"), pDisconnectedText); - HRESULT hr = pIMsTscAx->put_DisconnectedText(pDisconnectedText); - dbgprintf(TEXT("IMsTscAx::put_DisconnectedText -> %08X"), hr); - return hr; - } - - virtual HRESULT __stdcall get_DisconnectedText(BSTR * pDisconnectedText) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::get_DisconnectedText(%p)"), pDisconnectedText); - HRESULT hr = pIMsTscAx->get_DisconnectedText(pDisconnectedText); - dbgprintf(TEXT("IMsTscAx::get_DisconnectedText -> %08X, DisconnectedText = %ls"), hr, *pDisconnectedText); - return hr; - } - - virtual HRESULT __stdcall put_ConnectingText(BSTR pConnectingText) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::put_ConnectingText(%ls)"), pConnectingText); - HRESULT hr = pIMsTscAx->put_ConnectingText(pConnectingText); - dbgprintf(TEXT("IMsTscAx::put_ConnectingText -> %08X"), hr); - return hr; - } - - virtual HRESULT __stdcall get_ConnectingText(BSTR * pConnectingText) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::get_ConnectingText(%p)"), pConnectingText); - HRESULT hr = pIMsTscAx->get_ConnectingText(pConnectingText); - dbgprintf(TEXT("IMsTscAx::get_ConnectingText -> %08X, ConnectingText = %ls"), hr, *pConnectingText); - return hr; - } - - virtual HRESULT __stdcall get_Connected(short * pIsConnected) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::get_Connected(%p)"), pIsConnected); - HRESULT hr = pIMsTscAx->get_Connected(pIsConnected); - dbgprintf(TEXT("IMsTscAx::get_Connected -> %08X, IsConnected = %s"), hr, BooleanToString(*pIsConnected)); - return hr; - } - - virtual HRESULT __stdcall put_DesktopWidth(long pVal) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::put_DesktopWidth(%ld)"), pVal); - HRESULT hr = pIMsTscAx->put_DesktopWidth(pVal); - dbgprintf(TEXT("IMsTscAx::put_DesktopWidth -> %08X"), hr); - return hr; - } - - virtual HRESULT __stdcall get_DesktopWidth(long * pVal) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::get_DesktopWidth(%p)"), pVal); - HRESULT hr = pIMsTscAx->get_DesktopWidth(pVal); - dbgprintf(TEXT("IMsTscAx::get_DesktopWidth -> %08X, Val = %lu"), hr, *pVal); - return hr; - } - - virtual HRESULT __stdcall put_DesktopHeight(long pVal) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::put_DesktopHeight(%ld)"), pVal); - HRESULT hr = pIMsTscAx->put_DesktopHeight(pVal); - dbgprintf(TEXT("IMsTscAx::put_DesktopHeight -> %08X"), hr); - return hr; - } - - virtual HRESULT __stdcall get_DesktopHeight(long * pVal) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::get_DesktopHeight(%p)"), pVal); - HRESULT hr = pIMsTscAx->get_DesktopHeight(pVal); - dbgprintf(TEXT("IMsTscAx::get_DesktopHeight -> %08X, Val = %lu"), hr, *pVal); - return hr; - } - - virtual HRESULT __stdcall put_StartConnected(long pfStartConnected) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::put_StartConnected(%s)"), BooleanToString(pfStartConnected)); - HRESULT hr = pIMsTscAx->put_StartConnected(pfStartConnected); - dbgprintf(TEXT("IMsTscAx::put_StartConnected -> %08X"), hr); - return hr; - } - - virtual HRESULT __stdcall get_StartConnected(long * pfStartConnected) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::get_StartConnected(%p)"), pfStartConnected); - HRESULT hr = pIMsTscAx->get_StartConnected(pfStartConnected); - dbgprintf(TEXT("IMsTscAx::get_StartConnected -> %08X, fStartConnected = %s"), hr, BooleanToString(*pfStartConnected)); - return hr; - } - - virtual HRESULT __stdcall get_HorizontalScrollBarVisible(long * pfHScrollVisible) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::get_HorizontalScrollBarVisible(%p)"), pfHScrollVisible); - HRESULT hr = pIMsTscAx->get_HorizontalScrollBarVisible(pfHScrollVisible); - dbgprintf(TEXT("IMsTscAx::get_HorizontalScrollBarVisible -> %08X, fHScrollVisible = %s"), hr, BooleanToString(*pfHScrollVisible)); - return hr; - } - - virtual HRESULT __stdcall get_VerticalScrollBarVisible(long * pfVScrollVisible) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::get_VerticalScrollBarVisible(%p)"), pfVScrollVisible); - HRESULT hr = pIMsTscAx->get_VerticalScrollBarVisible(pfVScrollVisible); - dbgprintf(TEXT("IMsTscAx::get_VerticalScrollBarVisible -> %08X, fVScrollVisible"), hr, *pfVScrollVisible); - return hr; - } - - virtual HRESULT __stdcall put_FullScreenTitle(BSTR _arg1) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::put_FullScreenTitle(%ls)"), _arg1); - HRESULT hr = pIMsTscAx->put_FullScreenTitle(_arg1); - dbgprintf(TEXT("IMsTscAx::put_FullScreenTitle -> %08X"), hr); - return hr; - } - - virtual HRESULT __stdcall get_CipherStrength(long * pCipherStrength) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::get_CipherStrength(%p)"), pCipherStrength); - HRESULT hr = pIMsTscAx->get_CipherStrength(pCipherStrength); - dbgprintf(TEXT("IMsTscAx::get_CipherStrength -> %08X, CipherStrength = %ld"), hr, *pCipherStrength); - return hr; - } - - virtual HRESULT __stdcall get_Version(BSTR * pVersion) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::get_Version(%p)"), pVersion); - HRESULT hr = pIMsTscAx->get_Version(pVersion); - dbgprintf(TEXT("IMsTscAx::get_Version -> %08X, Version = %ls"), hr, *pVersion); - return hr; - } - - virtual HRESULT __stdcall get_SecuredSettingsEnabled(long * pSecuredSettingsEnabled) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::get_SecuredSettingsEnabled(%p)"), pSecuredSettingsEnabled); - HRESULT hr = pIMsTscAx->get_SecuredSettingsEnabled(pSecuredSettingsEnabled); - dbgprintf(TEXT("IMsTscAx::get_SecuredSettingsEnabled -> %08X, SecuredSettingsEnabled = %s"), hr, BooleanToString(*pSecuredSettingsEnabled)); - return hr; - } - - virtual HRESULT __stdcall get_SecuredSettings(IMsTscSecuredSettings ** ppSecuredSettings) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::get_SecuredSettings(%p)"), ppSecuredSettings); - HRESULT hr = pIMsTscAx->get_SecuredSettings(ppSecuredSettings); - dbgprintf(TEXT("IMsTscAx::get_SecuredSettings -> %08X, pSecuredSettings = %p"), hr, *ppSecuredSettings); - return hr; - } - - virtual HRESULT __stdcall get_AdvancedSettings(IMsTscAdvancedSettings ** ppAdvSettings) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::get_AdvancedSettings(%p)"), ppAdvSettings); - HRESULT hr = pIMsTscAx->get_AdvancedSettings(ppAdvSettings); - dbgprintf(TEXT("IMsTscAx::get_AdvancedSettings -> %08X, pAdvSettings = %p"), hr, *ppAdvSettings); - - if(SUCCEEDED(hr)) - *ppAdvSettings = new CAdvancedSettings(*ppAdvSettings); - - return hr; - } - - virtual HRESULT __stdcall get_Debugger(IMsTscDebug ** ppDebugger) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::get_Debugger(%p)"), ppDebugger); - HRESULT hr = pIMsTscAx->get_Debugger(ppDebugger); - dbgprintf(TEXT("IMsTscAx::get_Debugger -> %08X, pDebugger = %p"), hr, *ppDebugger); - return hr; - } - - virtual HRESULT __stdcall Connect() - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::Connect()")); - HRESULT hr = pIMsTscAx->Connect(); - dbgprintf(TEXT("IMsTscAx::Connect -> %08X"), hr); - return hr; - } - - virtual HRESULT __stdcall Disconnect() - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::Disconnect()")); - HRESULT hr = pIMsTscAx->Disconnect(); - dbgprintf(TEXT("IMsTscAx::Disconnect -> %08X"), hr); - return hr; - } - - virtual HRESULT __stdcall CreateVirtualChannels(BSTR newVal) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::CreateVirtualChannels(%ls)"), newVal); - HRESULT hr = pIMsTscAx->CreateVirtualChannels(newVal); - dbgprintf(TEXT("IMsTscAx::CreateVirtualChannels -> %08X"), hr); - return hr; - } - - virtual HRESULT __stdcall SendOnVirtualChannel(BSTR chanName, BSTR ChanData) - { - IMsTscAx * pIMsTscAx = getIMsTscAx(); - dbgprintf(TEXT("IMsTscAx::SendOnVirtualChannel(%ls, %p)"), chanName, ChanData); - HRESULT hr = pIMsTscAx->SendOnVirtualChannel(chanName, ChanData); - dbgprintf(TEXT("IMsTscAx::SendOnVirtualChannel -> %08X"), hr); - return hr; - } - - /* IMsRdpClient */ - public: - virtual HRESULT __stdcall put_ColorDepth(long pcolorDepth) - { - IMsRdpClient * pIMsRdpClient = getIMsRdpClient(); - dbgprintf(TEXT("IMsRdpClient::put_ColorDepth(%ld)"), pcolorDepth); - HRESULT hr = pIMsRdpClient->put_ColorDepth(pcolorDepth); - dbgprintf(TEXT("IMsRdpClient::put_ColorDepth -> %08X"), hr); - return hr; - } - - virtual HRESULT __stdcall get_ColorDepth(long * pcolorDepth) - { - IMsRdpClient * pIMsRdpClient = getIMsRdpClient(); - dbgprintf(TEXT("IMsRdpClient::get_ColorDepth(%p)"), pcolorDepth); - HRESULT hr = pIMsRdpClient->get_ColorDepth(pcolorDepth); - dbgprintf(TEXT("IMsRdpClient::get_ColorDepth -> %08X, colorDepth = %ld"), hr, *pcolorDepth); - return hr; - } - - virtual HRESULT __stdcall get_AdvancedSettings2(IMsRdpClientAdvancedSettings ** ppAdvSettings) - { - IMsRdpClient * pIMsRdpClient = getIMsRdpClient(); - dbgprintf(TEXT("IMsRdpClient::get_AdvancedSettings2(%p)"), ppAdvSettings); - HRESULT hr = pIMsRdpClient->get_AdvancedSettings2(ppAdvSettings); - dbgprintf(TEXT("IMsRdpClient::get_AdvancedSettings2 -> %08X, pAdvSettings = %p"), hr, *ppAdvSettings); - - if(SUCCEEDED(hr)) - *ppAdvSettings = new CAdvancedSettings(*ppAdvSettings); - - return hr; - } - - virtual HRESULT __stdcall get_SecuredSettings2(IMsRdpClientSecuredSettings ** ppSecuredSettings) - { - IMsRdpClient * pIMsRdpClient = getIMsRdpClient(); - dbgprintf(TEXT("IMsRdpClient::get_SecuredSettings2(%p)"), ppSecuredSettings); - HRESULT hr = pIMsRdpClient->get_SecuredSettings2(ppSecuredSettings); - dbgprintf(TEXT("IMsRdpClient::get_SecuredSettings2 -> %08X, pSecuredSettings = %p"), hr, *ppSecuredSettings); - return hr; - } - - virtual HRESULT __stdcall get_ExtendedDisconnectReason(ExtendedDisconnectReasonCode * pExtendedDisconnectReason) - { - IMsRdpClient * pIMsRdpClient = getIMsRdpClient(); - dbgprintf(TEXT("IMsRdpClient::get_ExtendedDisconnectReason(%p)"), pExtendedDisconnectReason); - HRESULT hr = pIMsRdpClient->get_ExtendedDisconnectReason(pExtendedDisconnectReason); - dbgprintf(TEXT("IMsRdpClient::get_ExtendedDisconnectReason -> %08X, ExtendedDisconnectReason = %u"), hr, *pExtendedDisconnectReason); - return hr; - } - - virtual HRESULT __stdcall put_FullScreen(VARIANT_BOOL pfFullScreen) - { - IMsRdpClient * pIMsRdpClient = getIMsRdpClient(); - dbgprintf(TEXT("IMsRdpClient::put_FullScreen(%s)"), BooleanToString(pfFullScreen)); - HRESULT hr = pIMsRdpClient->put_FullScreen(pfFullScreen); - dbgprintf(TEXT("IMsRdpClient::put_FullScreen -> %08X"), hr); - return hr; - } - - virtual HRESULT __stdcall get_FullScreen(VARIANT_BOOL * pfFullScreen) - { - IMsRdpClient * pIMsRdpClient = getIMsRdpClient(); - dbgprintf(TEXT("IMsRdpClient::get_FullScreen(%p)"), pfFullScreen); - HRESULT hr = pIMsRdpClient->get_FullScreen(pfFullScreen); - dbgprintf(TEXT("IMsRdpClient::get_FullScreen -> %08X, pfFullScreen = %s"), hr, BooleanToString(*pfFullScreen)); - return hr; - } - - virtual HRESULT __stdcall SetVirtualChannelOptions(BSTR chanName, long chanOptions) - { - IMsRdpClient * pIMsRdpClient = getIMsRdpClient(); - dbgprintf(TEXT("IMsRdpClient::SetVirtualChannelOptions(%ls, %08X)"), chanName, chanOptions); - HRESULT hr = pIMsRdpClient->SetVirtualChannelOptions(chanName, chanOptions); - dbgprintf(TEXT("IMsRdpClient::SetVirtualChannelOptions -> %08X"), hr); - return hr; - } - - virtual HRESULT __stdcall GetVirtualChannelOptions(BSTR chanName, long * pChanOptions) - { - IMsRdpClient * pIMsRdpClient = getIMsRdpClient(); - dbgprintf(TEXT("IMsRdpClient::GetVirtualChannelOptions(%ls, %p)"), chanName, pChanOptions); - HRESULT hr = pIMsRdpClient->GetVirtualChannelOptions(chanName, pChanOptions); - dbgprintf(TEXT("IMsRdpClient::GetVirtualChannelOptions -> %08X, ChanOptions = %08X"), hr, *pChanOptions); - return hr; - } - - virtual HRESULT __stdcall RequestClose(ControlCloseStatus * pCloseStatus) - { - IMsRdpClient * pIMsRdpClient = getIMsRdpClient(); - dbgprintf(TEXT("IMsRdpClient::RequestClose(%p)"), pCloseStatus); - HRESULT hr = pIMsRdpClient->RequestClose(pCloseStatus); - dbgprintf(TEXT("IMsRdpClient::RequestClose -> %08X, CloseStatus = %ld"), hr, *pCloseStatus); - return hr; - } - - /* IMsRdpClient2 */ - public: - virtual HRESULT __stdcall get_AdvancedSettings3(IMsRdpClientAdvancedSettings2 ** ppAdvSettings) - { - IMsRdpClient2 * pIMsRdpClient2 = getIMsRdpClient2(); - dbgprintf(TEXT("IMsRdpClient2::get_AdvancedSettings3(%p)"), ppAdvSettings); - HRESULT hr = pIMsRdpClient2->get_AdvancedSettings3(ppAdvSettings); - dbgprintf(TEXT("IMsRdpClient2::get_AdvancedSettings3 -> %08X, pAdvSettings = %p"), hr, *ppAdvSettings); - - if(SUCCEEDED(hr)) - *ppAdvSettings = new CAdvancedSettings(*ppAdvSettings); - - return hr; - } - - virtual HRESULT __stdcall put_ConnectedStatusText(BSTR pConnectedStatusText) - { - IMsRdpClient2 * pIMsRdpClient2 = getIMsRdpClient2(); - dbgprintf(TEXT("IMsRdpClient2::put_ConnectedStatusText(%ls)"), pConnectedStatusText); - HRESULT hr = pIMsRdpClient2->put_ConnectedStatusText(pConnectedStatusText); - dbgprintf(TEXT("IMsRdpClient2::put_ConnectedStatusText -> %08X"), hr); - return hr; - } - - virtual HRESULT __stdcall get_ConnectedStatusText(BSTR * pConnectedStatusText) - { - IMsRdpClient2 * pIMsRdpClient2 = getIMsRdpClient2(); - dbgprintf(TEXT("IMsRdpClient2::get_ConnectedStatusText(%p)"), pConnectedStatusText); - HRESULT hr = pIMsRdpClient2->get_ConnectedStatusText(pConnectedStatusText); - dbgprintf(TEXT("IMsRdpClient2::get_ConnectedStatusText -> %08X, ConnectedStatusText = %ls"), hr, *pConnectedStatusText); - return hr; - } - - /* IMsRdpClient3 */ - public: - virtual HRESULT __stdcall get_AdvancedSettings4(IMsRdpClientAdvancedSettings3 ** ppAdvSettings) - { - IMsRdpClient3 * pIMsRdpClient3 = getIMsRdpClient3(); - dbgprintf(TEXT("IMsRdpClient3::get_AdvancedSettings4(%p)"), ppAdvSettings); - HRESULT hr = pIMsRdpClient3->get_AdvancedSettings4(ppAdvSettings); - dbgprintf(TEXT("IMsRdpClient3::get_AdvancedSettings4 -> %08X, pAdvSettings = %p"), hr, *ppAdvSettings); - - if(SUCCEEDED(hr)) - *ppAdvSettings = new CAdvancedSettings(*ppAdvSettings); - - return hr; - } - - /* IMsRdpClient4 */ - public: - virtual HRESULT __stdcall get_AdvancedSettings5(IMsRdpClientAdvancedSettings4 ** ppAdvSettings5) - { - IMsRdpClient4 * pIMsRdpClient4 = getIMsRdpClient4(); - dbgprintf(TEXT("IMsRdpClient4::get_AdvancedSettings5(%p)"), ppAdvSettings5); - HRESULT hr = pIMsRdpClient4->get_AdvancedSettings5(ppAdvSettings5); - dbgprintf(TEXT("IMsRdpClient4::get_AdvancedSettings5 -> %08X, pAdvSettings5 = %p"), hr, *ppAdvSettings5); - - if(SUCCEEDED(hr)) - *ppAdvSettings5 = new CAdvancedSettings(*ppAdvSettings5); - - return hr; - } - - /* IMsTscNonScriptable */ - public: - virtual HRESULT __stdcall put_ClearTextPassword(BSTR _arg1) - { - IMsTscNonScriptable * pIMsTscNonScriptable = getIMsTscNonScriptable(); - dbgprintf(TEXT("IMsTscNonScriptable::put_ClearTextPassword(%ls)"), _arg1); - HRESULT hr = pIMsTscNonScriptable->put_ClearTextPassword(_arg1); - dbgprintf(TEXT("IMsTscNonScriptable::put_ClearTextPassword -> %08X"), hr); - return hr; - } - - virtual HRESULT __stdcall put_PortablePassword(BSTR pPortablePass) - { - IMsTscNonScriptable * pIMsTscNonScriptable = getIMsTscNonScriptable(); - dbgprintf(TEXT("IMsTscNonScriptable::put_PortablePassword(%ls)"), pPortablePass); - HRESULT hr = pIMsTscNonScriptable->put_PortablePassword(pPortablePass); - dbgprintf(TEXT("IMsTscNonScriptable::put_PortablePassword -> %08X"), hr); - return hr; - } - - virtual HRESULT __stdcall get_PortablePassword(BSTR * pPortablePass) - { - IMsTscNonScriptable * pIMsTscNonScriptable = getIMsTscNonScriptable(); - dbgprintf(TEXT("IMsTscNonScriptable::get_PortablePassword(%p)"), pPortablePass); - HRESULT hr = pIMsTscNonScriptable->get_PortablePassword(pPortablePass); - dbgprintf(TEXT("IMsTscNonScriptable::get_PortablePassword -> %08X, PortablePass = %ls"), hr, *pPortablePass); - return hr; - } - - virtual HRESULT __stdcall put_PortableSalt(BSTR pPortableSalt) - { - IMsTscNonScriptable * pIMsTscNonScriptable = getIMsTscNonScriptable(); - dbgprintf(TEXT("IMsTscNonScriptable::put_PortableSalt(%ls)"), pPortableSalt); - HRESULT hr = pIMsTscNonScriptable->put_PortableSalt(pPortableSalt); - dbgprintf(TEXT("IMsTscNonScriptable::put_PortableSalt -> %08X"), hr); - return hr; - } - - virtual HRESULT __stdcall get_PortableSalt(BSTR * pPortableSalt) - { - IMsTscNonScriptable * pIMsTscNonScriptable = getIMsTscNonScriptable(); - dbgprintf(TEXT("IMsTscNonScriptable::get_PortableSalt()"), pPortableSalt); - HRESULT hr = pIMsTscNonScriptable->get_PortableSalt(pPortableSalt); - dbgprintf(TEXT("IMsTscNonScriptable::get_PortableSalt -> %08X, PortableSalt = %ls"), hr, *pPortableSalt); - return hr; - } - - virtual HRESULT __stdcall put_BinaryPassword(BSTR pBinaryPassword) - { - IMsTscNonScriptable * pIMsTscNonScriptable = getIMsTscNonScriptable(); - dbgprintf(TEXT("IMsTscNonScriptable::put_BinaryPassword(%p)"), pBinaryPassword); - HRESULT hr = pIMsTscNonScriptable->put_BinaryPassword(pBinaryPassword); - dbgprintf(TEXT("IMsTscNonScriptable::put_BinaryPassword -> %08X"), hr); - return hr; - } - - virtual HRESULT __stdcall get_BinaryPassword(BSTR * pBinaryPassword) - { - IMsTscNonScriptable * pIMsTscNonScriptable = getIMsTscNonScriptable(); - dbgprintf(TEXT("IMsTscNonScriptable::get_BinaryPassword()"), pBinaryPassword); - HRESULT hr = pIMsTscNonScriptable->get_BinaryPassword(pBinaryPassword); - dbgprintf(TEXT("IMsTscNonScriptable::get_BinaryPassword -> %08X, BinaryPassword = %ls"), hr, *pBinaryPassword); - return hr; - } - - virtual HRESULT __stdcall put_BinarySalt(BSTR pSalt) - { - IMsTscNonScriptable * pIMsTscNonScriptable = getIMsTscNonScriptable(); - dbgprintf(TEXT("IMsTscNonScriptable::put_BinarySalt(%p)"), pSalt); - HRESULT hr = pIMsTscNonScriptable->put_BinarySalt(pSalt); - dbgprintf(TEXT("IMsTscNonScriptable::put_BinarySalt -> %08X"), hr); - return hr; - } - - virtual HRESULT __stdcall get_BinarySalt(BSTR * pSalt) - { - IMsTscNonScriptable * pIMsTscNonScriptable = getIMsTscNonScriptable(); - dbgprintf(TEXT("IMsTscNonScriptable::get_BinarySalt()"), pSalt); - HRESULT hr = pIMsTscNonScriptable->get_BinarySalt(pSalt); - dbgprintf(TEXT("IMsTscNonScriptable::get_BinarySalt -> %08X, pSalt = %ls"), hr, *pSalt); - return hr; - } - - virtual HRESULT __stdcall ResetPassword() - { - IMsTscNonScriptable * pIMsTscNonScriptable = getIMsTscNonScriptable(); - dbgprintf(TEXT("IMsTscNonScriptable::ResetPassword()")); - HRESULT hr = pIMsTscNonScriptable->ResetPassword(); - dbgprintf(TEXT("IMsTscNonScriptable::ResetPassword -> %08X"), hr); - return hr; - } - - - /* IMsRdpClientNonScriptable */ - public: - virtual HRESULT __stdcall IMsRdpClientNonScriptable::NotifyRedirectDeviceChange(UINT_PTR wParam, LONG_PTR lParam) - { - IMsRdpClientNonScriptable * pIMsRdpClientNonScriptable = getIMsRdpClientNonScriptable(); - dbgprintf(TEXT("IMsRdpClientNonScriptable::NotifyRedirectDeviceChange(%p, %p)"), wParam, lParam); - HRESULT hr = pIMsRdpClientNonScriptable->NotifyRedirectDeviceChange(wParam, lParam); - dbgprintf(TEXT("IMsRdpClientNonScriptable::NotifyRedirectDeviceChange -> %08X"), hr); - return hr; - } - - virtual HRESULT __stdcall IMsRdpClientNonScriptable::SendKeys(long numKeys, VARIANT_BOOL * pbArrayKeyUp, long * plKeyData) // TBD - { - IMsRdpClientNonScriptable * pIMsRdpClientNonScriptable = getIMsRdpClientNonScriptable(); - dbgprintf(TEXT("IMsRdpClientNonScriptable::SendKeys(%ld, %p, %p)"), numKeys, pbArrayKeyUp, plKeyData); - HRESULT hr = pIMsRdpClientNonScriptable->SendKeys(numKeys, pbArrayKeyUp, plKeyData); - dbgprintf(TEXT("IMsRdpClientNonScriptable::SendKeys -> %08X"), hr); - return hr; - } - - /* IMsRdpClientNonScriptable2 */ - public: - virtual HRESULT __stdcall IMsRdpClientNonScriptable2::put_UIParentWindowHandle(wireHWND phwndUIParentWindowHandle) - { - IMsRdpClientNonScriptable2 * pIMsRdpClientNonScriptable2 = getIMsRdpClientNonScriptable2(); - dbgprintf(TEXT("IMsRdpClientNonScriptable2::put_UIParentWindowHandle(%p)"), phwndUIParentWindowHandle); - HRESULT hr = pIMsRdpClientNonScriptable2->put_UIParentWindowHandle(phwndUIParentWindowHandle); - dbgprintf(TEXT("IMsRdpClientNonScriptable2::put_UIParentWindowHandle -> %08X"), hr); - return hr; - } - - virtual HRESULT __stdcall IMsRdpClientNonScriptable2::get_UIParentWindowHandle(wireHWND * phwndUIParentWindowHandle) - { - IMsRdpClientNonScriptable2 * pIMsRdpClientNonScriptable2 = getIMsRdpClientNonScriptable2(); - dbgprintf(TEXT("IMsRdpClientNonScriptable2::get_UIParentWindowHandle(%p)"), phwndUIParentWindowHandle); - HRESULT hr = pIMsRdpClientNonScriptable2->get_UIParentWindowHandle(phwndUIParentWindowHandle); - dbgprintf(TEXT("IMsRdpClientNonScriptable2::get_UIParentWindowHandle -> %08X, hwndUIParentWindowHandle = %p"), hr, *phwndUIParentWindowHandle); - return hr; - } - - /* - { - * p = m_; - dbgprintf(TEXT("::()"), ); - HRESULT hr = p->(); - dbgprintf(TEXT(":: -> %08X, "), hr, ); - return hr; - } - */ - }; - - class ClassFactory: public IClassFactory2 - { - private: - LONG m_refCount; - IUnknown * m_IUnknown; - IClassFactory * m_IClassFactory; - IClassFactory2 * m_IClassFactory2; - - IClassFactory * getIClassFactory() - { - if(m_IClassFactory) - return m_IClassFactory; - - if(m_IClassFactory2) - m_IClassFactory = m_IClassFactory2; - - if(m_IClassFactory) - { - m_IClassFactory->AddRef(); - return m_IClassFactory; - } - - m_IUnknown->QueryInterface(&m_IClassFactory); - return m_IClassFactory; - } - - IClassFactory2 * getIClassFactory2() - { - if(m_IClassFactory2) - return m_IClassFactory2; - - m_IUnknown->QueryInterface(&m_IClassFactory2); - return m_IClassFactory2; - } - - public: - ClassFactory(IUnknown * pUnknwn): - m_refCount(1), - m_IUnknown(pUnknwn), - m_IClassFactory(NULL), - m_IClassFactory2(NULL) - { - m_IUnknown->AddRef(); - } - - ~ClassFactory() - { - if(m_IUnknown) - m_IUnknown->Release(); - - if(m_IClassFactory) - m_IClassFactory->Release(); - - if(m_IClassFactory2) - m_IClassFactory2->Release(); - } - - /* IUnknown */ - public: - virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void ** ppvObject) - { - HRESULT hr; - IUnknown * pvObject = NULL; - - dbgprintf(TEXT("IUnknown::QueryInterface(%ls, %p)"), UUIDToString(riid).c_str(), ppvObject); - -#define QIBEGIN() \ - if(riid == IID_IUnknown) \ - { \ - hr = S_OK; \ - pvObject = (IUnknown *)(this); \ - } - -#define QI(I) \ - else if(riid == IID_ ## I) \ - { \ - if(m_ ## I) \ - { \ - m_ ## I->AddRef(); \ - hr = S_OK; \ - } \ - else \ - { \ - hr = m_IUnknown->QueryInterface(&m_ ## I); \ - } \ - \ - if(SUCCEEDED(hr)) \ - pvObject = static_cast(this); \ - } - -#define QIEND() \ - else \ - { \ - hr = E_NOINTERFACE; \ - pvObject = NULL; \ - } - - QIBEGIN() - QI(IClassFactory) - QI(IClassFactory2) - QIEND() - -#undef QIBEGIN -#undef QIEND -#undef QI - - if(SUCCEEDED(hr)) - { - assert(pvObject); - pvObject->AddRef(); - } - else - { - assert(pvObject == NULL); - } - - *ppvObject = pvObject; - - dbgprintf(TEXT("IUnknown::QueryInterface -> %08X, ppvObject = %p"), hr, *ppvObject); - return hr; - } - - virtual ULONG STDMETHODCALLTYPE AddRef(void) - { - return InterlockedIncrement(&m_refCount); - } - - virtual ULONG STDMETHODCALLTYPE Release(void) - { - LONG n = InterlockedDecrement(&m_refCount); - - if(n == 0) - delete this; - - return n; - } - - /* IClassFactory */ - public: - virtual HRESULT STDMETHODCALLTYPE CreateInstance(IUnknown * pUnkOuter, REFIID riid, void ** ppvObject) - { - IClassFactory * pIClassFactory = getIClassFactory(); - dbgprintf(TEXT("IClassFactory::CreateInstance(%p, %ls, %p)"), pUnkOuter, UUIDToString(riid).c_str(), ppvObject); - HRESULT hr = pIClassFactory->CreateInstance(NULL, riid, ppvObject); - dbgprintf(TEXT("IClassFactory::CreateInstance -> %08X, pvObject = %p"), hr, *ppvObject); - return CoClass::CreateInstance((IUnknown *)*ppvObject, pUnkOuter, riid, ppvObject); - } - - virtual HRESULT STDMETHODCALLTYPE LockServer(BOOL fLock) - { - IClassFactory * pIClassFactory = getIClassFactory(); - dbgprintf(TEXT("IClassFactory::LockServer(%s)"), BooleanToString(fLock)); - HRESULT hr = pIClassFactory->LockServer(fLock); - dbgprintf(TEXT("IClassFactory::LockServer -> %08X"), hr); - return hr; - } - - /* IClassFactory2 */ - public: - virtual HRESULT STDMETHODCALLTYPE GetLicInfo(LICINFO * pLicInfo) - { - IClassFactory2 * pIClassFactory2 = getIClassFactory2(); - dbgprintf(TEXT("IClassFactory2::GetLicInfo(%p)"), pLicInfo); - HRESULT hr = pIClassFactory2->GetLicInfo(pLicInfo); - dbgprintf(TEXT("IClassFactory2::GetLicInfo -> %08X, LicInfo = %p"), hr, pLicInfo); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE RequestLicKey(DWORD dwReserved, BSTR * pBstrKey) - { - IClassFactory2 * pIClassFactory2 = getIClassFactory2(); - dbgprintf(TEXT("IClassFactory2::RequestLicKey(%lu, %p)"), dwReserved, pBstrKey); - HRESULT hr = pIClassFactory2->RequestLicKey(dwReserved, pBstrKey); - dbgprintf(TEXT("IClassFactory2::RequestLicKey -> %08X, bstrKey = %ls"), hr, *pBstrKey); - return hr; - } - - virtual HRESULT STDMETHODCALLTYPE CreateInstanceLic(IUnknown * pUnkOuter, IUnknown * pUnkReserved, REFIID riid, BSTR bstrKey, PVOID * ppvObj) - { - IClassFactory2 * pIClassFactory2 = getIClassFactory2(); - dbgprintf(TEXT("IClassFactory2::CreateInstanceLic(%p, %p, %ls, %ls, %p)"), pUnkOuter, pUnkReserved, UUIDToString(riid).c_str(), bstrKey, ppvObj); - HRESULT hr = pIClassFactory2->CreateInstanceLic(NULL, pUnkReserved, riid, bstrKey, ppvObj); - dbgprintf(TEXT("IClassFactory2::CreateInstanceLic -> %08X, pvObj = %p"), hr, *ppvObj); - return CoClass::CreateInstance((IUnknown *)*ppvObj, pUnkOuter, riid, ppvObj); - } - }; - - STDAPI DllGetClassObject(IN REFCLSID rclsid, IN REFIID riid, OUT LPVOID * ppv) - { - init(); - - dbgprintf(TEXT("DllGetClassObject(%ls, %ls, %p)"), UUIDToString(rclsid).c_str(), UUIDToString(riid).c_str(), ppv); - HRESULT hr = pfnDllGetClassObject(rclsid, IID_IUnknown, ppv); - dbgprintf(TEXT("DllGetClassObject -> %08X, pv = %p"), hr, *ppv); - - IUnknown * pv = NULL; - - if(SUCCEEDED(hr)) - { - IUnknown * punk = (IUnknown *)*ppv; - - if(rclsid == CLSID_MsTscAx || rclsid == CLSID_MsRdpClient || rclsid == CLSID_MsRdpClient2 || rclsid == CLSID_MsRdpClient3 || rclsid == CLSID_MsRdpClient4) - pv = new ClassFactory(punk); - else - hr = CLASS_E_CLASSNOTAVAILABLE; - - punk->Release(); - } - - if(pv) - { - hr = pv->QueryInterface(riid, ppv); - - if(FAILED(hr)) - pv->Release(); - } - - return hr; - } - - STDAPI DllCanUnloadNow(void) - { - init(); - - dbgprintf(TEXT("DllCanUnloadNow()")); - HRESULT hr = pfnDllCanUnloadNow(); - dbgprintf(TEXT("DllCanUnloadNow -> %08X"), hr); - - return hr; - } - - STDAPI_(ULONG) DllGetTscCtlVer(void) - { - init(); - - dbgprintf(TEXT("DllGetTscCtlVer()")); - ULONG ul = pfnDllGetTscCtlVer(); - dbgprintf(TEXT("DllGetTscCtlVer-> %08X"), ul); - - return ul; - } -} - -// EOF +#include "stdafx.h" + +namespace +{ + using namespace MSTSCLib; + + typedef HRESULT (STDAPICALLTYPE * PFNDLLGETCLASSOBJECT)(IN REFCLSID rclsid, IN REFIID riid, OUT LPVOID FAR * ppv); + typedef HRESULT (STDAPICALLTYPE * PFNDLLCANUNLOADNOW)(void); + typedef ULONG (STDAPICALLTYPE * PFNDLLGETTSCCTLVER)(void); + + PFNDLLGETCLASSOBJECT pfnDllGetClassObject = NULL; + PFNDLLCANUNLOADNOW pfnDllCanUnloadNow = NULL; + PFNDLLGETTSCCTLVER pfnDllGetTscCtlVer = NULL; + + HMODULE hmMstscax = NULL; + + extern "C" char __ImageBase; + static const HMODULE hmSelf = reinterpret_cast(&__ImageBase); + + void init() + { + if(hmMstscax) + return; + + TCHAR szFileName[MAX_PATH + 1]; + GetModuleFileName(hmSelf, szFileName, MAX_PATH); + + std::basic_string strFileName(&szFileName[0]); + std::reverse_iterator::const_iterator > begin(strFileName.end()); + std::reverse_iterator::const_iterator > end(strFileName.begin()); + std::basic_string::const_iterator endPath = std::find(begin, end, TEXT('\\')).base(); + + std::basic_string strPath(strFileName.begin(), endPath); + strPath.append(TEXT("original\\mstscax.dll")); + + hmMstscax = LoadLibrary(strPath.c_str()); + pfnDllGetClassObject = (PFNDLLGETCLASSOBJECT)GetProcAddress(hmMstscax, "DllGetClassObject"); + pfnDllCanUnloadNow = (PFNDLLCANUNLOADNOW)GetProcAddress(hmMstscax, "DllCanUnloadNow"); + pfnDllGetTscCtlVer = (PFNDLLGETTSCCTLVER)GetProcAddress(hmMstscax, "DllGetTscCtlVer"); + } + + void dbgprintf(LPCTSTR fmt, ...) + { + TCHAR buf[0x1000]; + + va_list args; + va_start(args, fmt); + StringCbVPrintf(buf, sizeof(buf), fmt, args); + va_end(args); + + StringCbCat(buf, sizeof(buf), TEXT("\n")); + + OutputDebugString(buf); + } + +#if 0 + const IID MsTscAxIIDs[] = + { + IID_IMsRdpClient, + IID_IMsTscAx, + //IID_IMsTscAxEvents, + IID_IMsTscNonScriptable, + IID_IMsRdpClientNonScriptable, + }; + + const IID MsRdpClient[] = + { + IID_IMsRdpClient, + IID_IMsTscAx, + //IID_IMsTscAxEvents, + IID_IMsTscNonScriptable, + IID_IMsRdpClientNonScriptable, + }; + + const IID MsRdpClient2[] = + { + IID_IMsRdpClient2, + IID_IMsRdpClient, + IID_IMsTscAx, + //IID_IMsTscAxEvents, + IID_IMsTscNonScriptable, + IID_IMsRdpClientNonScriptable, + }; + + const IID MsRdpClient3[] = + { + IID_IMsRdpClient3, + IID_IMsRdpClient2, + IID_IMsRdpClient, + IID_IMsTscAx, + //IID_IMsTscAxEvents, + IID_IMsTscNonScriptable, + IID_IMsRdpClientNonScriptable, + }; + + const IID MsRdpClient4[] = + { + IID_IMsRdpClient4, + IID_IMsRdpClient3, + IID_IMsRdpClient2, + IID_IMsRdpClient, + IID_IMsTscAx, + //IID_IMsTscAxEvents, + IID_IMsTscNonScriptable, + IID_IMsRdpClientNonScriptable, + IID_IMsRdpClientNonScriptable2, + }; +#endif + + std::wstring UUIDToString(const UUID& uuid) + { + std::wstring s; + LPOLESTR str; + StringFromCLSID(uuid, &str); + s += str; + CoTaskMemFree(str); + return s; + } + + std::wstring MonikerToString(IMoniker * pmk) + { + LPOLESTR pszName = NULL; + + if(SUCCEEDED(pmk->GetDisplayName(NULL, NULL, &pszName))) + { + std::wstring s(pszName); + CoTaskMemFree(pszName); + return s; + } + else + return std::wstring(L""); + } + + std::basic_string RectToString(const RECT& rc) + { + if(&rc == NULL) + return TEXT(""); + + std::basic_ostringstream o; + o << "{" << " left:" << rc.left << " top:" << rc.top << " right:" << rc.right << " bottom:" << rc.bottom << " }"; + return o.str(); + } + + std::basic_string RectToString(const RECTL& rc) + { + if(&rc == NULL) + return TEXT(""); + + std::basic_ostringstream o; + o << "{" << " left:" << rc.left << " top:" << rc.top << " right:" << rc.right << " bottom:" << rc.bottom << " }"; + return o.str(); + } + + std::basic_string SizeToString(const SIZE& sz) + { + if(&sz == NULL) + return TEXT(""); + + std::basic_ostringstream o; + o << "{ " << " cx:" << sz.cx << " cy:" << sz.cy << " }"; + return o.str(); + } + + template LPCTSTR BooleanToString(const T& X) + { + return X ? TEXT("true") : TEXT("false"); + } + + std::basic_string VariantToString(const VARIANT& var) + { + std::basic_ostringstream o; + + switch(var.vt & VT_TYPEMASK) + { + case VT_EMPTY: o << ""; break; + case VT_NULL: o << ""; break; + case VT_I2: o << "short"; break; + case VT_I4: o << "long"; break; + case VT_R4: o << "float"; break; + case VT_R8: o << "double"; break; + case VT_CY: o << "CURRENCY"; break; + case VT_DATE: o << "DATE"; break; + case VT_BSTR: o << "string"; break; + case VT_DISPATCH: o << "IDispatch *"; break; + case VT_ERROR: o << "SCODE"; break; + case VT_BOOL: o << "bool"; break; + case VT_VARIANT: o << "VARIANT *"; break; + case VT_UNKNOWN: o << "IUnknown *"; break; + case VT_DECIMAL: o << "DECIMAL"; break; + case VT_I1: o << "char"; break; + case VT_UI1: o << "unsigned char"; break; + case VT_UI2: o << "unsigned short"; break; + case VT_UI4: o << "unsigned long"; break; + case VT_I8: o << "long long"; break; + case VT_UI8: o << "unsigned long long"; break; + case VT_INT: o << "int"; break; + case VT_UINT: o << "unsigned int"; break; + case VT_VOID: o << "void"; break; + case VT_HRESULT: o << "HRESULT"; break; + case VT_PTR: o << "void *"; break; + case VT_SAFEARRAY: o << "SAFEARRAY *"; break; + case VT_LPSTR: o << "LPSTR"; break; + case VT_LPWSTR: o << "LPWSTR"; break; + case VT_RECORD: o << "struct { }"; break; + case VT_INT_PTR: o << "intptr_t"; break; + case VT_UINT_PTR: o << "uintptr_t"; break; + case VT_FILETIME: o << "FILETIME"; break; + default: o << "???"; break; + } + + if(var.vt & VT_ARRAY) + o << "[]"; + else if(var.vt & VT_BYREF) + o << " *"; + else + { + switch(var.vt & VT_TYPEMASK) + { + case VT_EMPTY: + case VT_NULL: + case VT_RECORD: + case VT_VOID: + + // TODO + case VT_CY: + case VT_DATE: + case VT_DECIMAL: + case VT_FILETIME: + break; + + default: + o << " = "; + } + + switch(var.vt & VT_TYPEMASK) + { + case VT_I2: o << var.iVal; break; + case VT_I4: o << var.lVal; break; + case VT_R4: o << var.fltVal; break; + case VT_R8: o << var.dblVal; break; + case VT_BSTR: o << std::wstring(var.bstrVal, var.bstrVal + SysStringLen(var.bstrVal)); break; + case VT_BOOL: o << var.boolVal ? "true" : "false"; break; + case VT_I1: o << int(var.cVal); break; + case VT_UI1: o << unsigned int(var.bVal); break; + case VT_UI2: o << var.uiVal; break; + case VT_UI4: o << var.ulVal; break; + case VT_I8: o << var.llVal; break; + case VT_UI8: o << var.ullVal; break; + case VT_INT: o << var.intVal; break; + case VT_UINT: o << var.uintVal; break; + case VT_LPSTR: o << LPSTR(var.byref); break; + case VT_LPWSTR: o << LPWSTR(var.byref); break; + case VT_INT_PTR: o << var.intVal; break; // BUGBUG + case VT_UINT_PTR: o << var.uintVal; break; // BUGBUG + + case VT_DISPATCH: + case VT_VARIANT: + case VT_UNKNOWN: + case VT_PTR: + case VT_SAFEARRAY: + case VT_RECORD: + o << var.byref; break; + + case VT_ERROR: + case VT_HRESULT: + o << std::hex << var.ulVal; break; + + case VT_EMPTY: + case VT_NULL: + case VT_VOID: + break; + + default: + assert(0); + } + } + + return o.str(); + } + +#pragma warning(disable:4584) + + IConnectionPointContainer * HookIConnectionPointContainer(IConnectionPointContainer * p); + IEnumConnectionPoints * HookIEnumConnectionPoints(IEnumConnectionPoints * p); + IConnectionPoint * HookIConnectionPoint(IConnectionPoint * p); + IEnumConnections * HookIEnumConnections(IEnumConnections * p); + + class CConnectionPointContainer: public IConnectionPointContainer + { + private: + LONG m_refCount; + IConnectionPointContainer * m_IConnectionPointContainer; + + public: + CConnectionPointContainer(IConnectionPointContainer * pIConnectionPointContainer): + m_refCount(1), + m_IConnectionPointContainer(pIConnectionPointContainer) + { } + + ~CConnectionPointContainer() { m_IConnectionPointContainer->Release(); } + + virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void ** ppvObject) + { + HRESULT hr = S_OK; + + dbgprintf(TEXT("CConnectionPointContainer::QueryInterface(%ls, %p)"), UUIDToString(riid).c_str(), ppvObject); + + if(riid == IID_IUnknown || riid == IID_IConnectionPointContainer) + *ppvObject = this; + else + { + *ppvObject = NULL; + hr = E_NOINTERFACE; + } + + dbgprintf(TEXT("CConnectionPointContainer::QueryInterface -> %08X, ppvObject = %p"), hr, *ppvObject); + return hr; + } + + virtual ULONG STDMETHODCALLTYPE AddRef(void) + { + return InterlockedIncrement(&m_refCount); + } + + virtual ULONG STDMETHODCALLTYPE Release(void) + { + LONG n = InterlockedDecrement(&m_refCount); + + if(n == 0) + delete this; + + return n; + } + + virtual HRESULT STDMETHODCALLTYPE EnumConnectionPoints(IEnumConnectionPoints ** ppEnum) + { + dbgprintf(TEXT("CConnectionPointContainer::EnumConnectionPoints(%p)"), ppEnum); + HRESULT hr = m_IConnectionPointContainer->EnumConnectionPoints(ppEnum); + dbgprintf(TEXT("CConnectionPointContainer::EnumConnectionPoints -> %08X, pEnum = %p"), hr, *ppEnum); + + if(SUCCEEDED(hr)) + *ppEnum = HookIEnumConnectionPoints(*ppEnum); + + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE FindConnectionPoint(REFIID riid, IConnectionPoint ** ppCP) + { + dbgprintf(TEXT("CConnectionPointContainer::FindConnectionPoint(%ls, %p)"), UUIDToString(riid).c_str(), ppCP); + HRESULT hr = m_IConnectionPointContainer->FindConnectionPoint(riid, ppCP); + dbgprintf(TEXT("CConnectionPointContainer::FindConnectionPoint -> %08X, pCP = %p"), hr, *ppCP); + + if(SUCCEEDED(hr)) + *ppCP = HookIConnectionPoint(*ppCP); + + return hr; + } + }; + + class CEnumConnectionPoints: public IEnumConnectionPoints + { + private: + LONG m_refCount; + IEnumConnectionPoints * m_IEnumConnectionPoints; + + public: + CEnumConnectionPoints(IEnumConnectionPoints * pIEnumConnectionPoints): + m_refCount(1), + m_IEnumConnectionPoints(pIEnumConnectionPoints) + { } + + ~CEnumConnectionPoints() { m_IEnumConnectionPoints->Release(); } + + virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void ** ppvObject) + { + HRESULT hr = S_OK; + + dbgprintf(TEXT("CEnumConnectionPoints::QueryInterface(%ls, %p)"), UUIDToString(riid).c_str(), ppvObject); + + if(riid == IID_IUnknown || riid == IID_IEnumConnectionPoints) + *ppvObject = this; + else + { + *ppvObject = NULL; + hr = E_NOINTERFACE; + } + + dbgprintf(TEXT("CEnumConnectionPoints::QueryInterface -> %08X, ppvObject = %p"), hr, *ppvObject); + return hr; + } + + virtual ULONG STDMETHODCALLTYPE AddRef(void) + { + return InterlockedIncrement(&m_refCount); + } + + virtual ULONG STDMETHODCALLTYPE Release(void) + { + LONG n = InterlockedDecrement(&m_refCount); + + if(n == 0) + delete this; + + return n; + } + + virtual HRESULT STDMETHODCALLTYPE Next(ULONG cConnections, LPCONNECTIONPOINT * ppCP, ULONG * pcFetched) + { + dbgprintf(TEXT("CEnumConnectionPoints::Next(%lu, %p, %p)"), cConnections, ppCP, pcFetched); + HRESULT hr = m_IEnumConnectionPoints->Next(cConnections, ppCP, pcFetched); + dbgprintf(TEXT("CEnumConnectionPoints:: -> %08X, pCP = %p, cFetched = %lu"), hr, *ppCP, *pcFetched); + + if(SUCCEEDED(hr)) + *ppCP = HookIConnectionPoint(*ppCP); + + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE Skip(ULONG cConnections) + { + dbgprintf(TEXT("CEnumConnectionPoints::Skip(%lu)"), cConnections); + HRESULT hr = m_IEnumConnectionPoints->Skip(cConnections); + dbgprintf(TEXT("CEnumConnectionPoints:: -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE Reset(void) + { + dbgprintf(TEXT("CEnumConnectionPoints::Reset()")); + HRESULT hr = m_IEnumConnectionPoints->Reset(); + dbgprintf(TEXT("CEnumConnectionPoints:: -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE Clone(IEnumConnectionPoints ** ppEnum) + { + dbgprintf(TEXT("CEnumConnectionPoints::Clone(%p)"), ppEnum); + HRESULT hr = m_IEnumConnectionPoints->Clone(ppEnum); + dbgprintf(TEXT("CEnumConnectionPoints:: -> %08X, pEnum"), hr, *ppEnum); + + if(SUCCEEDED(hr)) + *ppEnum = HookIEnumConnectionPoints(*ppEnum); + + return hr; + } + }; + + class CConnectionPoint: public IConnectionPoint + { + private: + LONG m_refCount; + IConnectionPoint * m_IConnectionPoint; + + public: + CConnectionPoint(IConnectionPoint * pIConnectionPoint): + m_refCount(1), + m_IConnectionPoint(pIConnectionPoint) + { } + + ~CConnectionPoint() { m_IConnectionPoint->Release(); } + + virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void ** ppvObject) + { + HRESULT hr = S_OK; + + dbgprintf(TEXT("CConnectionPoint::QueryInterface(%ls, %p)"), UUIDToString(riid).c_str(), ppvObject); + + if(riid == IID_IUnknown || riid == IID_IConnectionPoint) + *ppvObject = this; + else + { + *ppvObject = NULL; + hr = E_NOINTERFACE; + } + + dbgprintf(TEXT("CConnectionPoint::QueryInterface -> %08X, ppvObject = %p"), hr, *ppvObject); + return hr; + } + + virtual ULONG STDMETHODCALLTYPE AddRef(void) + { + return InterlockedIncrement(&m_refCount); + } + + virtual ULONG STDMETHODCALLTYPE Release(void) + { + LONG n = InterlockedDecrement(&m_refCount); + + if(n == 0) + delete this; + + return n; + } + + virtual HRESULT STDMETHODCALLTYPE GetConnectionInterface(IID * pIID) + { + dbgprintf(TEXT("CConnectionPoint::GetConnectionInterface(%p)"), pIID); + HRESULT hr = m_IConnectionPoint->GetConnectionInterface(pIID); + dbgprintf(TEXT("CConnectionPoint::GetConnectionInterface -> %08X, IID = %ls"), hr, UUIDToString(*pIID).c_str()); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE GetConnectionPointContainer(IConnectionPointContainer ** ppCPC) + { + dbgprintf(TEXT("CConnectionPoint::GetConnectionPointContainer(%p)"), ppCPC); + HRESULT hr = m_IConnectionPoint->GetConnectionPointContainer(ppCPC); + dbgprintf(TEXT("CConnectionPoint::GetConnectionPointContainer -> %08X, pCPC = %p"), hr, *ppCPC); + + if(SUCCEEDED(hr)) + *ppCPC = HookIConnectionPointContainer(*ppCPC); + + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE Advise(IUnknown * pUnkSink, DWORD * pdwCookie) + { + dbgprintf(TEXT("CConnectionPoint::Advise(%p, %p)"), pUnkSink, pdwCookie); + HRESULT hr = m_IConnectionPoint->Advise(pUnkSink, pdwCookie); + dbgprintf(TEXT("CConnectionPoint::Advise -> %08X, dwCookie = %lu"), hr, *pdwCookie); + // TODO: hook sink + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE Unadvise(DWORD dwCookie) + { + dbgprintf(TEXT("CConnectionPoint::Unadvise(%lu)"), dwCookie); + HRESULT hr = m_IConnectionPoint->Unadvise(dwCookie); + dbgprintf(TEXT("CConnectionPoint::Unadvise -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE EnumConnections(IEnumConnections ** ppEnum) + { + dbgprintf(TEXT("CConnectionPoint::EnumConnections(%p)"), ppEnum); + HRESULT hr = m_IConnectionPoint->EnumConnections(ppEnum); + dbgprintf(TEXT("CConnectionPoint::EnumConnections -> %08X, pEnum = %p"), hr, *ppEnum); + + if(SUCCEEDED(hr)) + *ppEnum = HookIEnumConnections(*ppEnum); + + return hr; + } + }; + + class CEnumConnections: public IEnumConnections + { + private: + LONG m_refCount; + IEnumConnections * m_IEnumConnections; + + public: + CEnumConnections(IEnumConnections * pIEnumConnections): + m_refCount(1), + m_IEnumConnections(pIEnumConnections) + { } + + ~CEnumConnections() { m_IEnumConnections->Release(); } + + virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void ** ppvObject) + { + HRESULT hr = S_OK; + + dbgprintf(TEXT("CEnumConnections::QueryInterface(%ls, %p)"), UUIDToString(riid).c_str(), ppvObject); + + if(riid == IID_IUnknown || riid == IID_IEnumConnections) + *ppvObject = this; + else + { + *ppvObject = NULL; + hr = E_NOINTERFACE; + } + + dbgprintf(TEXT("CEnumConnections::QueryInterface -> %08X, ppvObject = %p"), hr, *ppvObject); + return hr; + } + + virtual ULONG STDMETHODCALLTYPE AddRef(void) + { + return InterlockedIncrement(&m_refCount); + } + + virtual ULONG STDMETHODCALLTYPE Release(void) + { + LONG n = InterlockedDecrement(&m_refCount); + + if(n == 0) + delete this; + + return n; + } + + virtual HRESULT STDMETHODCALLTYPE Next(ULONG cConnections, LPCONNECTDATA pCD, ULONG * pcFetched) + { + dbgprintf(TEXT("CEnumConnections::Next(%lu, %p, %p)"), cConnections, pCD, pcFetched); + HRESULT hr = m_IEnumConnections->Next(cConnections, pCD, pcFetched); + dbgprintf(TEXT("CEnumConnections:: -> %08X, CD = { pUnk = %p, dwCookie = %lu }, cFetched = %lu"), hr, pCD->pUnk, pCD->dwCookie, *pcFetched); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE Skip(ULONG cConnections) + { + dbgprintf(TEXT("CEnumConnections::Skip(%lu)"), cConnections); + HRESULT hr = m_IEnumConnections->Skip(cConnections); + dbgprintf(TEXT("CEnumConnections:: -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE Reset(void) + { + dbgprintf(TEXT("CEnumConnections::Reset()")); + HRESULT hr = m_IEnumConnections->Reset(); + dbgprintf(TEXT("CEnumConnections:: -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE Clone(IEnumConnections ** ppEnum) + { + dbgprintf(TEXT("CEnumConnections::Clone(%p)"), ppEnum); + HRESULT hr = m_IEnumConnections->Clone(ppEnum); + dbgprintf(TEXT("CEnumConnections:: -> %08X, pEnum"), hr, *ppEnum); + + if(SUCCEEDED(hr)) + *ppEnum = HookIEnumConnections(*ppEnum); + + return hr; + } + }; + + IConnectionPointContainer * HookIConnectionPointContainer(IConnectionPointContainer * p) + { + return new CConnectionPointContainer(p); + } + + IEnumConnectionPoints * HookIEnumConnectionPoints(IEnumConnectionPoints * p) + { + return new CEnumConnectionPoints(p); + } + + IConnectionPoint * HookIConnectionPoint(IConnectionPoint * p) + { + return new CConnectionPoint(p); + } + + IEnumConnections * HookIEnumConnections(IEnumConnections * p) + { + return new CEnumConnections(p); + } + + class CAdvancedSettings: public IMsRdpClientAdvancedSettings4 + { + private: + LONG m_refCount; + IUnknown * m_IUnknown; + IDispatch * m_IDispatch; + IMsTscAdvancedSettings * m_IMsTscAdvancedSettings; + IMsRdpClientAdvancedSettings * m_IMsRdpClientAdvancedSettings; + IMsRdpClientAdvancedSettings2 * m_IMsRdpClientAdvancedSettings2; + IMsRdpClientAdvancedSettings3 * m_IMsRdpClientAdvancedSettings3; + IMsRdpClientAdvancedSettings4 * m_IMsRdpClientAdvancedSettings4; + + IDispatch * getIDispatch() + { + assert(m_IDispatch); + return m_IDispatch; + } + + IMsTscAdvancedSettings * getIMsTscAdvancedSettings() + { + if(m_IMsTscAdvancedSettings) + return m_IMsTscAdvancedSettings; + else if(m_IMsRdpClientAdvancedSettings) + m_IMsTscAdvancedSettings = m_IMsRdpClientAdvancedSettings; + else if(m_IMsRdpClientAdvancedSettings2) + m_IMsTscAdvancedSettings = m_IMsRdpClientAdvancedSettings2; + else if(m_IMsRdpClientAdvancedSettings3) + m_IMsTscAdvancedSettings = m_IMsRdpClientAdvancedSettings3; + else if(m_IMsRdpClientAdvancedSettings4) + m_IMsTscAdvancedSettings = m_IMsRdpClientAdvancedSettings4; + + if(m_IMsTscAdvancedSettings) + { + m_IMsTscAdvancedSettings->AddRef(); + return m_IMsTscAdvancedSettings; + } + + m_IUnknown->QueryInterface(&m_IMsTscAdvancedSettings); + return m_IMsTscAdvancedSettings; + } + + IMsRdpClientAdvancedSettings * getIMsRdpClientAdvancedSettings() + { + if(m_IMsRdpClientAdvancedSettings) + return m_IMsRdpClientAdvancedSettings; + else if(m_IMsRdpClientAdvancedSettings2) + m_IMsRdpClientAdvancedSettings = m_IMsRdpClientAdvancedSettings2; + else if(m_IMsRdpClientAdvancedSettings3) + m_IMsRdpClientAdvancedSettings = m_IMsRdpClientAdvancedSettings3; + else if(m_IMsRdpClientAdvancedSettings4) + m_IMsRdpClientAdvancedSettings = m_IMsRdpClientAdvancedSettings4; + + if(m_IMsRdpClientAdvancedSettings) + { + m_IMsRdpClientAdvancedSettings->AddRef(); + return m_IMsRdpClientAdvancedSettings; + } + + m_IUnknown->QueryInterface(&m_IMsRdpClientAdvancedSettings); + return m_IMsRdpClientAdvancedSettings; + } + + IMsRdpClientAdvancedSettings2 * getIMsRdpClientAdvancedSettings2() + { + if(m_IMsRdpClientAdvancedSettings2) + return m_IMsRdpClientAdvancedSettings2; + else if(m_IMsRdpClientAdvancedSettings3) + m_IMsRdpClientAdvancedSettings2 = m_IMsRdpClientAdvancedSettings3; + else if(m_IMsRdpClientAdvancedSettings4) + m_IMsRdpClientAdvancedSettings2 = m_IMsRdpClientAdvancedSettings4; + + if(m_IMsRdpClientAdvancedSettings2) + { + m_IMsRdpClientAdvancedSettings2->AddRef(); + return m_IMsRdpClientAdvancedSettings2; + } + + m_IUnknown->QueryInterface(&m_IMsRdpClientAdvancedSettings2); + return m_IMsRdpClientAdvancedSettings2; + } + + IMsRdpClientAdvancedSettings3 * getIMsRdpClientAdvancedSettings3() + { + if(m_IMsRdpClientAdvancedSettings3) + return m_IMsRdpClientAdvancedSettings3; + else if(m_IMsRdpClientAdvancedSettings4) + m_IMsRdpClientAdvancedSettings3 = m_IMsRdpClientAdvancedSettings4; + + if(m_IMsRdpClientAdvancedSettings3) + { + m_IMsRdpClientAdvancedSettings3->AddRef(); + return m_IMsRdpClientAdvancedSettings3; + } + + m_IUnknown->QueryInterface(&m_IMsRdpClientAdvancedSettings3); + return m_IMsRdpClientAdvancedSettings3; + } + + IMsRdpClientAdvancedSettings4 * getIMsRdpClientAdvancedSettings4() + { + if(m_IMsRdpClientAdvancedSettings4) + return m_IMsRdpClientAdvancedSettings4; + + if(m_IMsRdpClientAdvancedSettings4) + { + m_IMsRdpClientAdvancedSettings4->AddRef(); + return m_IMsRdpClientAdvancedSettings4; + } + + m_IUnknown->QueryInterface(&m_IMsRdpClientAdvancedSettings4); + return m_IMsRdpClientAdvancedSettings4; + } + + ~CAdvancedSettings() + { + m_IUnknown->Release(); + m_IDispatch->Release(); + + if(m_IMsTscAdvancedSettings) + m_IMsTscAdvancedSettings->Release(); + + if(m_IMsRdpClientAdvancedSettings) + m_IMsRdpClientAdvancedSettings->Release(); + + if(m_IMsRdpClientAdvancedSettings2) + m_IMsRdpClientAdvancedSettings2->Release(); + + if(m_IMsRdpClientAdvancedSettings3) + m_IMsRdpClientAdvancedSettings3->Release(); + + if(m_IMsRdpClientAdvancedSettings4) + m_IMsRdpClientAdvancedSettings4->Release(); + } + + void Init(IMsTscAdvancedSettings * p) + { + m_IMsTscAdvancedSettings = p; + } + + void Init(IMsRdpClientAdvancedSettings * p) + { + m_IMsRdpClientAdvancedSettings = p; + } + + void Init(IMsRdpClientAdvancedSettings2 * p) + { + m_IMsRdpClientAdvancedSettings2 = p; + } + + void Init(IMsRdpClientAdvancedSettings3 * p) + { + m_IMsRdpClientAdvancedSettings3 = p; + } + + void Init(IMsRdpClientAdvancedSettings4 * p) + { + m_IMsRdpClientAdvancedSettings4 = p; + } + + public: + template CAdvancedSettings(Interface * p): + m_refCount(1), + m_IUnknown(p), + m_IDispatch(p), + m_IMsTscAdvancedSettings(NULL), + m_IMsRdpClientAdvancedSettings(NULL), + m_IMsRdpClientAdvancedSettings2(NULL), + m_IMsRdpClientAdvancedSettings3(NULL), + m_IMsRdpClientAdvancedSettings4(NULL) + { + assert(p); + p->AddRef(); + p->AddRef(); + Init(p); + } + + /* IUnknown */ + virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void ** ppvObject) + { + HRESULT hr; + IUnknown * pvObject; + + dbgprintf(TEXT("CAdvancedSettings::QueryInterface(%ls, %p)"), UUIDToString(riid).c_str(), ppvObject); + +#define QIBEGIN() \ + if(riid == IID_IUnknown) \ + { \ + hr = S_OK; \ + pvObject = (IUnknown *)(this); \ + } + +#define QI(I) \ + else if(riid == IID_ ## I) \ + { \ + if(m_ ## I) \ + { \ + m_ ## I->AddRef(); \ + hr = S_OK; \ + } \ + else \ + { \ + hr = m_IUnknown->QueryInterface(&m_ ## I); \ + } \ + \ + if(SUCCEEDED(hr)) \ + pvObject = static_cast(this); \ + } + +#define QIEND() \ + else \ + { \ + hr = E_NOINTERFACE; \ + pvObject = NULL; \ + } + + QIBEGIN() + QI(IDispatch) + QI(IMsTscAdvancedSettings) + QI(IMsRdpClientAdvancedSettings) + QI(IMsRdpClientAdvancedSettings2) + QI(IMsRdpClientAdvancedSettings3) + QI(IMsRdpClientAdvancedSettings4) + QIEND() + +#undef QIBEGIN +#undef QIEND +#undef QI + + if(SUCCEEDED(hr)) + { + assert(pvObject); + pvObject->AddRef(); + } + else + { + assert(pvObject == NULL); + } + + *ppvObject = pvObject; + + dbgprintf(TEXT("CAdvancedSettings::QueryInterface -> %08X, ppvObject = %p"), hr, *ppvObject); + return hr; + } + + virtual ULONG STDMETHODCALLTYPE AddRef(void) + { + return InterlockedIncrement(&m_refCount); + } + + virtual ULONG STDMETHODCALLTYPE Release(void) + { + LONG n = InterlockedDecrement(&m_refCount); + + if(n == 0) + delete this; + + return n; + } + + /* IDispatch */ + /* + * p = get(); + dbgprintf(TEXT("CAdvancedSettings::()"), ); + HRESULT hr = p->(); + dbgprintf(TEXT("CAdvancedSettings:: -> %08X, "), hr, ); + return hr; + */ + virtual STDMETHODIMP IDispatch::GetTypeInfoCount(UINT * pctinfo) + { + IDispatch * pIDispatch = getIDispatch(); + dbgprintf(TEXT("CAdvancedSettings::GetTypeInfoCount(%p)"), pctinfo); + HRESULT hr = pIDispatch->GetTypeInfoCount(pctinfo); + dbgprintf(TEXT("CAdvancedSettings::GetTypeInfoCount -> %08X, ctinfo = %u"), hr, *pctinfo); + return hr; + } + + virtual STDMETHODIMP IDispatch::GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo ** ppTInfo) + { + IDispatch * pIDispatch = getIDispatch(); + dbgprintf(TEXT("CAdvancedSettings::GetTypeInfo(%u, %lu, %p)"), iTInfo, lcid, ppTInfo); + HRESULT hr = pIDispatch->GetTypeInfo(iTInfo, lcid, ppTInfo); + dbgprintf(TEXT("CAdvancedSettings::GetTypeInfo -> %08X, pTInfo = %p"), hr, *ppTInfo); + return hr; + } + + virtual STDMETHODIMP IDispatch::GetIDsOfNames(REFIID riid, LPOLESTR * rgszNames, UINT cNames, LCID lcid, DISPID * rgDispId) + { + IDispatch * pIDispatch = getIDispatch(); + dbgprintf(TEXT("CAdvancedSettings::GetIDsOfNames(%ls, %ls, %d, %lu, %p)"), UUIDToString(riid).c_str(), *rgszNames, cNames, lcid, rgDispId); + HRESULT hr = pIDispatch->GetIDsOfNames(riid, rgszNames, cNames, lcid, rgDispId); + dbgprintf(TEXT("CAdvancedSettings::GetIDsOfNames -> %08X, rgDispId = %ld"), hr, *rgDispId); + return hr; + } + + virtual STDMETHODIMP IDispatch::Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS * pDispParams, VARIANT * pVarResult, EXCEPINFO * pExcepInfo, UINT * puArgErr) + { + // TODO + IDispatch * pIDispatch = getIDispatch(); + dbgprintf(TEXT("CAdvancedSettings::Invoke()")/*, */); + HRESULT hr = pIDispatch->Invoke(dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + dbgprintf(TEXT("CAdvancedSettings::Invoke -> %08X, "), hr/*, */); + return hr; + } + + /* IMsTscAdvancedSettings */ + virtual STDMETHODIMP IMsTscAdvancedSettings::put_Compress(long pcompress) + { + IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_Compress(%ld)"), pcompress); + HRESULT hr = pIMsTscAdvancedSettings->put_Compress(pcompress); + dbgprintf(TEXT("CAdvancedSettings::put_Compress -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsTscAdvancedSettings::get_Compress(long * pcompress) + { + IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_Compress(%p)"), pcompress); + HRESULT hr = pIMsTscAdvancedSettings->get_Compress(pcompress); + dbgprintf(TEXT("CAdvancedSettings::get_Compress -> %08X, compress = %ld"), hr, *pcompress); + return hr; + } + + virtual STDMETHODIMP IMsTscAdvancedSettings::put_BitmapPeristence(long pbitmapPeristence) + { + IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_BitmapPeristence(%ld)"), pbitmapPeristence); + HRESULT hr = pIMsTscAdvancedSettings->put_BitmapPeristence(pbitmapPeristence); + dbgprintf(TEXT("CAdvancedSettings::put_BitmapPeristence -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsTscAdvancedSettings::get_BitmapPeristence(long * pbitmapPeristence) + { + IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_BitmapPeristence(%p)"), pbitmapPeristence); + HRESULT hr = pIMsTscAdvancedSettings->get_BitmapPeristence(pbitmapPeristence); + dbgprintf(TEXT("CAdvancedSettings::get_BitmapPeristence -> %08X, bitmapPeristence = %ld"), hr, *pbitmapPeristence); + return hr; + } + + virtual STDMETHODIMP IMsTscAdvancedSettings::put_allowBackgroundInput(long pallowBackgroundInput) + { + IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_allowBackgroundInput(%ld)"), pallowBackgroundInput); + HRESULT hr = pIMsTscAdvancedSettings->put_allowBackgroundInput(pallowBackgroundInput); + dbgprintf(TEXT("CAdvancedSettings::put_allowBackgroundInput -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsTscAdvancedSettings::get_allowBackgroundInput(long * pallowBackgroundInput) + { + IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_allowBackgroundInput(%p)"), pallowBackgroundInput); + HRESULT hr = pIMsTscAdvancedSettings->get_allowBackgroundInput(pallowBackgroundInput); + dbgprintf(TEXT("CAdvancedSettings::get_allowBackgroundInput -> %08X, allowBackgroundInput = %ld"), hr, *pallowBackgroundInput); + return hr; + } + + virtual STDMETHODIMP IMsTscAdvancedSettings::put_KeyBoardLayoutStr(BSTR rhs) + { + IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_KeyBoardLayoutStr(%ls)"), rhs); + HRESULT hr = pIMsTscAdvancedSettings->put_KeyBoardLayoutStr(rhs); + dbgprintf(TEXT("CAdvancedSettings::put_KeyBoardLayoutStr -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsTscAdvancedSettings::put_PluginDlls(BSTR rhs) + { + IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_PluginDlls(%ls)"), rhs); + HRESULT hr = pIMsTscAdvancedSettings->put_PluginDlls(rhs); + dbgprintf(TEXT("CAdvancedSettings::put_PluginDlls -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsTscAdvancedSettings::put_IconFile(BSTR rhs) + { + IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_IconFile(%ls)"), rhs); + HRESULT hr = pIMsTscAdvancedSettings->put_IconFile(rhs); + dbgprintf(TEXT("CAdvancedSettings::put_IconFile -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsTscAdvancedSettings::put_IconIndex(long rhs) + { + IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_IconIndex(%ld)"), rhs); + HRESULT hr = pIMsTscAdvancedSettings->put_IconIndex(rhs); + dbgprintf(TEXT("CAdvancedSettings::put_IconIndex -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsTscAdvancedSettings::put_ContainerHandledFullScreen(long pContainerHandledFullScreen) + { + IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_ContainerHandledFullScreen(%ld)"), pContainerHandledFullScreen); + HRESULT hr = pIMsTscAdvancedSettings->put_ContainerHandledFullScreen(pContainerHandledFullScreen); + dbgprintf(TEXT("CAdvancedSettings::put_ContainerHandledFullScreen -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsTscAdvancedSettings::get_ContainerHandledFullScreen(long * pContainerHandledFullScreen) + { + IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_ContainerHandledFullScreen(%p)"), pContainerHandledFullScreen); + HRESULT hr = pIMsTscAdvancedSettings->get_ContainerHandledFullScreen(pContainerHandledFullScreen); + dbgprintf(TEXT("CAdvancedSettings::get_ContainerHandledFullScreen -> %08X, ContainerHandledFullScreen = %ld"), hr, *pContainerHandledFullScreen); + return hr; + } + + virtual STDMETHODIMP IMsTscAdvancedSettings::put_DisableRdpdr(long pDisableRdpdr) + { + IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_DisableRdpdr(%ld)"), pDisableRdpdr); + HRESULT hr = pIMsTscAdvancedSettings->put_DisableRdpdr(pDisableRdpdr); + dbgprintf(TEXT("CAdvancedSettings::put_DisableRdpdr -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsTscAdvancedSettings::get_DisableRdpdr(long * pDisableRdpdr) + { + IMsTscAdvancedSettings * pIMsTscAdvancedSettings = getIMsTscAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_DisableRdpdr(%p)"), pDisableRdpdr); + HRESULT hr = pIMsTscAdvancedSettings->get_DisableRdpdr(pDisableRdpdr); + dbgprintf(TEXT("CAdvancedSettings::get_DisableRdpdr -> %08X, DisableRdpdr = %ld"), hr, *pDisableRdpdr); + return hr; + } + + /* IMsRdpClientAdvancedSettings */ + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_SmoothScroll(long psmoothScroll) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_SmoothScroll(%ld)"), psmoothScroll); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_SmoothScroll(psmoothScroll); + dbgprintf(TEXT("CAdvancedSettings::put_SmoothScroll -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_SmoothScroll(long * psmoothScroll) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_SmoothScroll(%p)"), psmoothScroll); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_SmoothScroll(psmoothScroll); + dbgprintf(TEXT("CAdvancedSettings::get_SmoothScroll -> %08X, smoothScroll = %ld"), hr, *psmoothScroll); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_AcceleratorPassthrough(long pacceleratorPassthrough) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_AcceleratorPassthrough(%ld)"), pacceleratorPassthrough); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_AcceleratorPassthrough(pacceleratorPassthrough); + dbgprintf(TEXT("CAdvancedSettings::put_AcceleratorPassthrough -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_AcceleratorPassthrough(long * pacceleratorPassthrough) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_AcceleratorPassthrough(%p)"), pacceleratorPassthrough); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_AcceleratorPassthrough(pacceleratorPassthrough); + dbgprintf(TEXT("CAdvancedSettings::get_AcceleratorPassthrough -> %08X, acceleratorPassthrough = %ld"), hr, *pacceleratorPassthrough); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_ShadowBitmap(long pshadowBitmap) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_ShadowBitmap(%ld)"), pshadowBitmap); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_ShadowBitmap(pshadowBitmap); + dbgprintf(TEXT("CAdvancedSettings::put_ShadowBitmap -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_ShadowBitmap(long * pshadowBitmap) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_ShadowBitmap(%p)"), pshadowBitmap); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_ShadowBitmap(pshadowBitmap); + dbgprintf(TEXT("CAdvancedSettings::get_ShadowBitmap -> %08X, shadowBitmap = %ld"), hr, *pshadowBitmap); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_TransportType(long ptransportType) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_TransportType(%ld)"), ptransportType); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_TransportType(ptransportType); + dbgprintf(TEXT("CAdvancedSettings::put_TransportType -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_TransportType(long * ptransportType) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_TransportType(%p)"), ptransportType); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_TransportType(ptransportType); + dbgprintf(TEXT("CAdvancedSettings::get_TransportType -> %08X, transportType = %ld"), hr, *ptransportType); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_SasSequence(long psasSequence) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_SasSequence(%ld)"), psasSequence); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_SasSequence(psasSequence); + dbgprintf(TEXT("CAdvancedSettings::put_SasSequence -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_SasSequence(long * psasSequence) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_SasSequence(%p)"), psasSequence); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_SasSequence(psasSequence); + dbgprintf(TEXT("CAdvancedSettings::get_SasSequence -> %08X, sasSequence = %ld"), hr, *psasSequence); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_EncryptionEnabled(long pencryptionEnabled) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_EncryptionEnabled(%ld)"), pencryptionEnabled); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_EncryptionEnabled(pencryptionEnabled); + dbgprintf(TEXT("CAdvancedSettings::put_EncryptionEnabled -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_EncryptionEnabled(long * pencryptionEnabled) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_EncryptionEnabled(%p)"), pencryptionEnabled); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_EncryptionEnabled(pencryptionEnabled); + dbgprintf(TEXT("CAdvancedSettings::get_EncryptionEnabled -> %08X, encryptionEnabled = %ld"), hr, *pencryptionEnabled); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_DedicatedTerminal(long pdedicatedTerminal) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_DedicatedTerminal(%ld)"), pdedicatedTerminal); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_DedicatedTerminal(pdedicatedTerminal); + dbgprintf(TEXT("CAdvancedSettings::put_DedicatedTerminal -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_DedicatedTerminal(long * pdedicatedTerminal) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_DedicatedTerminal(%p)"), pdedicatedTerminal); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_DedicatedTerminal(pdedicatedTerminal); + dbgprintf(TEXT("CAdvancedSettings::get_DedicatedTerminal -> %08X, dedicatedTerminal = %ld"), hr, *pdedicatedTerminal); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RDPPort(long prdpPort) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_RDPPort(%ld)"), prdpPort); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_RDPPort(prdpPort); + dbgprintf(TEXT("CAdvancedSettings::put_RDPPort -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RDPPort(long * prdpPort) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_RDPPort(%p)"), prdpPort); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_RDPPort(prdpPort); + dbgprintf(TEXT("CAdvancedSettings::get_RDPPort -> %08X, rdpPort = %ld"), hr, *prdpPort); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_EnableMouse(long penableMouse) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_EnableMouse(%ld)"), penableMouse); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_EnableMouse(penableMouse); + dbgprintf(TEXT("CAdvancedSettings::put_EnableMouse -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_EnableMouse(long * penableMouse) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_EnableMouse(%p)"), penableMouse); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_EnableMouse(penableMouse); + dbgprintf(TEXT("CAdvancedSettings::get_EnableMouse -> %08X, enableMouse = %ld"), hr, *penableMouse); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_DisableCtrlAltDel(long pdisableCtrlAltDel) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_DisableCtrlAltDel(%ld)"), pdisableCtrlAltDel); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_DisableCtrlAltDel(pdisableCtrlAltDel); + dbgprintf(TEXT("CAdvancedSettings::put_DisableCtrlAltDel -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_DisableCtrlAltDel(long * pdisableCtrlAltDel) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_DisableCtrlAltDel(%p)"), pdisableCtrlAltDel); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_DisableCtrlAltDel(pdisableCtrlAltDel); + dbgprintf(TEXT("CAdvancedSettings::get_DisableCtrlAltDel -> %08X, disableCtrlAltDel = %ld"), hr, *pdisableCtrlAltDel); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_EnableWindowsKey(long penableWindowsKey) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_EnableWindowsKey(%ld)"), penableWindowsKey); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_EnableWindowsKey(penableWindowsKey); + dbgprintf(TEXT("CAdvancedSettings::put_EnableWindowsKey -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_EnableWindowsKey(long * penableWindowsKey) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_EnableWindowsKey(%p)"), penableWindowsKey); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_EnableWindowsKey(penableWindowsKey); + dbgprintf(TEXT("CAdvancedSettings::get_EnableWindowsKey -> %08X, enableWindowsKey = %ld"), hr, *penableWindowsKey); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_DoubleClickDetect(long pdoubleClickDetect) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_DoubleClickDetect(%ld)"), pdoubleClickDetect); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_DoubleClickDetect(pdoubleClickDetect); + dbgprintf(TEXT("CAdvancedSettings::put_DoubleClickDetect -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_DoubleClickDetect(long * pdoubleClickDetect) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_DoubleClickDetect(%p)"), pdoubleClickDetect); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_DoubleClickDetect(pdoubleClickDetect); + dbgprintf(TEXT("CAdvancedSettings::get_DoubleClickDetect -> %08X, doubleClickDetect = %ld"), hr, *pdoubleClickDetect); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_MaximizeShell(long pmaximizeShell) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_MaximizeShell(%ld)"), pmaximizeShell); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_MaximizeShell(pmaximizeShell); + dbgprintf(TEXT("CAdvancedSettings::put_MaximizeShell -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_MaximizeShell(long * pmaximizeShell) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_MaximizeShell(%p)"), pmaximizeShell); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_MaximizeShell(pmaximizeShell); + dbgprintf(TEXT("CAdvancedSettings::get_MaximizeShell -> %08X, maximizeShell = %ld"), hr, *pmaximizeShell); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyFullScreen(long photKeyFullScreen) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_HotKeyFullScreen(%ld)"), photKeyFullScreen); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_HotKeyFullScreen(photKeyFullScreen); + dbgprintf(TEXT("CAdvancedSettings::put_HotKeyFullScreen -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyFullScreen(long * photKeyFullScreen) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_HotKeyFullScreen(%p)"), photKeyFullScreen); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_HotKeyFullScreen(photKeyFullScreen); + dbgprintf(TEXT("CAdvancedSettings::get_HotKeyFullScreen -> %08X, hotKeyFullScreen = %ld"), hr, *photKeyFullScreen); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyCtrlEsc(long photKeyCtrlEsc) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_HotKeyCtrlEsc(%ld)"), photKeyCtrlEsc); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_HotKeyCtrlEsc(photKeyCtrlEsc); + dbgprintf(TEXT("CAdvancedSettings::put_HotKeyCtrlEsc -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyCtrlEsc(long * photKeyCtrlEsc) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_HotKeyCtrlEsc(%p)"), photKeyCtrlEsc); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_HotKeyCtrlEsc(photKeyCtrlEsc); + dbgprintf(TEXT("CAdvancedSettings::get_HotKeyCtrlEsc -> %08X, hotKeyCtrlEsc = %ld"), hr, *photKeyCtrlEsc); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyAltEsc(long photKeyAltEsc) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_HotKeyAltEsc(%ld)"), photKeyAltEsc); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_HotKeyAltEsc(photKeyAltEsc); + dbgprintf(TEXT("CAdvancedSettings::put_HotKeyAltEsc -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyAltEsc(long * photKeyAltEsc) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_HotKeyAltEsc(%p)"), photKeyAltEsc); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_HotKeyAltEsc(photKeyAltEsc); + dbgprintf(TEXT("CAdvancedSettings::get_HotKeyAltEsc -> %08X, hotKeyAltEsc = %ld"), hr, *photKeyAltEsc); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyAltTab(long photKeyAltTab) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_HotKeyAltTab(%ld)"), photKeyAltTab); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_HotKeyAltTab(photKeyAltTab); + dbgprintf(TEXT("CAdvancedSettings::put_HotKeyAltTab -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyAltTab(long * photKeyAltTab) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_HotKeyAltTab(%p)"), photKeyAltTab); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_HotKeyAltTab(photKeyAltTab); + dbgprintf(TEXT("CAdvancedSettings::get_HotKeyAltTab -> %08X, hotKeyAltTab = %ld"), hr, *photKeyAltTab); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyAltShiftTab(long photKeyAltShiftTab) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_HotKeyAltShiftTab(%ld)"), photKeyAltShiftTab); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_HotKeyAltShiftTab(photKeyAltShiftTab); + dbgprintf(TEXT("CAdvancedSettings::put_HotKeyAltShiftTab -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyAltShiftTab(long * photKeyAltShiftTab) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_HotKeyAltShiftTab(%p)"), photKeyAltShiftTab); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_HotKeyAltShiftTab(photKeyAltShiftTab); + dbgprintf(TEXT("CAdvancedSettings::get_HotKeyAltShiftTab -> %08X, hotKeyAltShiftTab = %ld"), hr, *photKeyAltShiftTab); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyAltSpace(long photKeyAltSpace) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_HotKeyAltSpace(%ld)"), photKeyAltSpace); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_HotKeyAltSpace(photKeyAltSpace); + dbgprintf(TEXT("CAdvancedSettings::put_HotKeyAltSpace -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyAltSpace(long * photKeyAltSpace) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_HotKeyAltSpace(%p)"), photKeyAltSpace); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_HotKeyAltSpace(photKeyAltSpace); + dbgprintf(TEXT("CAdvancedSettings::get_HotKeyAltSpace -> %08X, hotKeyAltSpace = %ld"), hr, *photKeyAltSpace); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyCtrlAltDel(long photKeyCtrlAltDel) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_HotKeyCtrlAltDel(%ld)"), photKeyCtrlAltDel); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_HotKeyCtrlAltDel(photKeyCtrlAltDel); + dbgprintf(TEXT("CAdvancedSettings::put_HotKeyCtrlAltDel -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyCtrlAltDel(long * photKeyCtrlAltDel) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_HotKeyCtrlAltDel(%p)"), photKeyCtrlAltDel); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_HotKeyCtrlAltDel(photKeyCtrlAltDel); + dbgprintf(TEXT("CAdvancedSettings::get_HotKeyCtrlAltDel -> %08X, hotKeyCtrlAltDel = %ld"), hr, *photKeyCtrlAltDel); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_orderDrawThreshold(long porderDrawThreshold) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_orderDrawThreshold(%ld)"), porderDrawThreshold); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_orderDrawThreshold(porderDrawThreshold); + dbgprintf(TEXT("CAdvancedSettings::put_orderDrawThreshold -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_orderDrawThreshold(long * porderDrawThreshold) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_orderDrawThreshold(%p)"), porderDrawThreshold); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_orderDrawThreshold(porderDrawThreshold); + dbgprintf(TEXT("CAdvancedSettings::get_orderDrawThreshold -> %08X, orderDrawThreshold = %ld"), hr, *porderDrawThreshold); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_BitmapCacheSize(long pbitmapCacheSize) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_BitmapCacheSize(%ld)"), pbitmapCacheSize); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_BitmapCacheSize(pbitmapCacheSize); + dbgprintf(TEXT("CAdvancedSettings::put_BitmapCacheSize -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_BitmapCacheSize(long * pbitmapCacheSize) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_BitmapCacheSize(%p)"), pbitmapCacheSize); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_BitmapCacheSize(pbitmapCacheSize); + dbgprintf(TEXT("CAdvancedSettings::get_BitmapCacheSize -> %08X, bitmapCacheSize = %ld"), hr, *pbitmapCacheSize); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_BitmapVirtualCacheSize(long pbitmapVirtualCacheSize) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_BitmapVirtualCacheSize(%ld)"), pbitmapVirtualCacheSize); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_BitmapVirtualCacheSize(pbitmapVirtualCacheSize); + dbgprintf(TEXT("CAdvancedSettings::put_BitmapVirtualCacheSize -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_BitmapVirtualCacheSize(long * pbitmapVirtualCacheSize) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_BitmapVirtualCacheSize(%p)"), pbitmapVirtualCacheSize); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_BitmapVirtualCacheSize(pbitmapVirtualCacheSize); + dbgprintf(TEXT("CAdvancedSettings::get_BitmapVirtualCacheSize -> %08X, bitmapVirtualCacheSize = %ld"), hr, *pbitmapVirtualCacheSize); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_ScaleBitmapCachesByBPP(long pbScale) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_ScaleBitmapCachesByBPP(%ld)"), pbScale); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_ScaleBitmapCachesByBPP(pbScale); + dbgprintf(TEXT("CAdvancedSettings::put_ScaleBitmapCachesByBPP -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_ScaleBitmapCachesByBPP(long * pbScale) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_ScaleBitmapCachesByBPP(%p)"), pbScale); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_ScaleBitmapCachesByBPP(pbScale); + dbgprintf(TEXT("CAdvancedSettings::get_ScaleBitmapCachesByBPP -> %08X, bScale = %ld"), hr, *pbScale); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_NumBitmapCaches(long pnumBitmapCaches) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_NumBitmapCaches(%ld)"), pnumBitmapCaches); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_NumBitmapCaches(pnumBitmapCaches); + dbgprintf(TEXT("CAdvancedSettings::put_NumBitmapCaches -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_NumBitmapCaches(long * pnumBitmapCaches) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_NumBitmapCaches(%p)"), pnumBitmapCaches); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_NumBitmapCaches(pnumBitmapCaches); + dbgprintf(TEXT("CAdvancedSettings::get_NumBitmapCaches -> %08X, numBitmapCaches = %ld"), hr, *pnumBitmapCaches); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_CachePersistenceActive(long pcachePersistenceActive) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_CachePersistenceActive(%ld)"), pcachePersistenceActive); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_CachePersistenceActive(pcachePersistenceActive); + dbgprintf(TEXT("CAdvancedSettings::put_CachePersistenceActive -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_CachePersistenceActive(long * pcachePersistenceActive) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_CachePersistenceActive(%p)"), pcachePersistenceActive); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_CachePersistenceActive(pcachePersistenceActive); + dbgprintf(TEXT("CAdvancedSettings::get_CachePersistenceActive -> %08X, cachePersistenceActive = %ld"), hr, *pcachePersistenceActive); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_PersistCacheDirectory(BSTR rhs) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_PersistCacheDirectory(%ls)"), rhs); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_PersistCacheDirectory(rhs); + dbgprintf(TEXT("CAdvancedSettings::put_PersistCacheDirectory -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_brushSupportLevel(long pbrushSupportLevel) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_brushSupportLevel(%ld)"), pbrushSupportLevel); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_brushSupportLevel(pbrushSupportLevel); + dbgprintf(TEXT("CAdvancedSettings::put_brushSupportLevel -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_brushSupportLevel(long * pbrushSupportLevel) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_brushSupportLevel(%p)"), pbrushSupportLevel); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_brushSupportLevel(pbrushSupportLevel); + dbgprintf(TEXT("CAdvancedSettings::get_brushSupportLevel -> %08X, brushSupportLevel = %ld"), hr, *pbrushSupportLevel); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_minInputSendInterval(long pminInputSendInterval) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_minInputSendInterval(%ld)"), pminInputSendInterval); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_minInputSendInterval(pminInputSendInterval); + dbgprintf(TEXT("CAdvancedSettings::put_minInputSendInterval -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_minInputSendInterval(long * pminInputSendInterval) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_minInputSendInterval(%p)"), pminInputSendInterval); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_minInputSendInterval(pminInputSendInterval); + dbgprintf(TEXT("CAdvancedSettings::get_minInputSendInterval -> %08X, minInputSendInterval = %ld"), hr, *pminInputSendInterval); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_InputEventsAtOnce(long pinputEventsAtOnce) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_InputEventsAtOnce(%ld)"), pinputEventsAtOnce); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_InputEventsAtOnce(pinputEventsAtOnce); + dbgprintf(TEXT("CAdvancedSettings::put_InputEventsAtOnce -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_InputEventsAtOnce(long * pinputEventsAtOnce) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_InputEventsAtOnce(%p)"), pinputEventsAtOnce); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_InputEventsAtOnce(pinputEventsAtOnce); + dbgprintf(TEXT("CAdvancedSettings::get_InputEventsAtOnce -> %08X, inputEventsAtOnce = %ld"), hr, *pinputEventsAtOnce); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_maxEventCount(long pmaxEventCount) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_maxEventCount(%ld)"), pmaxEventCount); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_maxEventCount(pmaxEventCount); + dbgprintf(TEXT("CAdvancedSettings::put_maxEventCount -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_maxEventCount(long * pmaxEventCount) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_maxEventCount(%p)"), pmaxEventCount); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_maxEventCount(pmaxEventCount); + dbgprintf(TEXT("CAdvancedSettings::get_maxEventCount -> %08X, maxEventCount = %ld"), hr, *pmaxEventCount); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_keepAliveInterval(long pkeepAliveInterval) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_keepAliveInterval(%ld)"), pkeepAliveInterval); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_keepAliveInterval(pkeepAliveInterval); + dbgprintf(TEXT("CAdvancedSettings::put_keepAliveInterval -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_keepAliveInterval(long * pkeepAliveInterval) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_keepAliveInterval(%p)"), pkeepAliveInterval); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_keepAliveInterval(pkeepAliveInterval); + dbgprintf(TEXT("CAdvancedSettings::get_keepAliveInterval -> %08X, keepAliveInterval = %ld"), hr, *pkeepAliveInterval); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_shutdownTimeout(long pshutdownTimeout) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_shutdownTimeout(%ld)"), pshutdownTimeout); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_shutdownTimeout(pshutdownTimeout); + dbgprintf(TEXT("CAdvancedSettings::put_shutdownTimeout -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_shutdownTimeout(long * pshutdownTimeout) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_shutdownTimeout(%p)"), pshutdownTimeout); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_shutdownTimeout(pshutdownTimeout); + dbgprintf(TEXT("CAdvancedSettings::get_shutdownTimeout -> %08X, shutdownTimeout = %ld"), hr, *pshutdownTimeout); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_overallConnectionTimeout(long poverallConnectionTimeout) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_overallConnectionTimeout(%ld)"), poverallConnectionTimeout); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_overallConnectionTimeout(poverallConnectionTimeout); + dbgprintf(TEXT("CAdvancedSettings::put_overallConnectionTimeout -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_overallConnectionTimeout(long * poverallConnectionTimeout) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_overallConnectionTimeout(%p)"), poverallConnectionTimeout); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_overallConnectionTimeout(poverallConnectionTimeout); + dbgprintf(TEXT("CAdvancedSettings::get_overallConnectionTimeout -> %08X, overallConnectionTimeout = %ld"), hr, *poverallConnectionTimeout); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_singleConnectionTimeout(long psingleConnectionTimeout) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_singleConnectionTimeout(%ld)"), psingleConnectionTimeout); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_singleConnectionTimeout(psingleConnectionTimeout); + dbgprintf(TEXT("CAdvancedSettings::put_singleConnectionTimeout -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_singleConnectionTimeout(long * psingleConnectionTimeout) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_singleConnectionTimeout(%p)"), psingleConnectionTimeout); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_singleConnectionTimeout(psingleConnectionTimeout); + dbgprintf(TEXT("CAdvancedSettings::get_singleConnectionTimeout -> %08X, singleConnectionTimeout = %ld"), hr, *psingleConnectionTimeout); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_KeyboardType(long pkeyboardType) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_KeyboardType(%ld)"), pkeyboardType); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_KeyboardType(pkeyboardType); + dbgprintf(TEXT("CAdvancedSettings::put_KeyboardType -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_KeyboardType(long * pkeyboardType) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_KeyboardType(%p)"), pkeyboardType); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_KeyboardType(pkeyboardType); + dbgprintf(TEXT("CAdvancedSettings::get_KeyboardType -> %08X, keyboardType = %ld"), hr, *pkeyboardType); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_KeyboardSubType(long pkeyboardSubType) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_KeyboardSubType(%ld)"), pkeyboardSubType); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_KeyboardSubType(pkeyboardSubType); + dbgprintf(TEXT("CAdvancedSettings::put_KeyboardSubType -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_KeyboardSubType(long * pkeyboardSubType) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_KeyboardSubType(%p)"), pkeyboardSubType); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_KeyboardSubType(pkeyboardSubType); + dbgprintf(TEXT("CAdvancedSettings::get_KeyboardSubType -> %08X, keyboardSubType = %ld"), hr, *pkeyboardSubType); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_KeyboardFunctionKey(long pkeyboardFunctionKey) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_KeyboardFunctionKey(%ld)"), pkeyboardFunctionKey); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_KeyboardFunctionKey(pkeyboardFunctionKey); + dbgprintf(TEXT("CAdvancedSettings::put_KeyboardFunctionKey -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_KeyboardFunctionKey(long * pkeyboardFunctionKey) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_KeyboardFunctionKey(%p)"), pkeyboardFunctionKey); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_KeyboardFunctionKey(pkeyboardFunctionKey); + dbgprintf(TEXT("CAdvancedSettings::get_KeyboardFunctionKey -> %08X, keyboardFunctionKey = %ld"), hr, *pkeyboardFunctionKey); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_WinceFixedPalette(long pwinceFixedPalette) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_WinceFixedPalette(%ld)"), pwinceFixedPalette); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_WinceFixedPalette(pwinceFixedPalette); + dbgprintf(TEXT("CAdvancedSettings::put_WinceFixedPalette -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_WinceFixedPalette(long * pwinceFixedPalette) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_WinceFixedPalette(%p)"), pwinceFixedPalette); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_WinceFixedPalette(pwinceFixedPalette); + dbgprintf(TEXT("CAdvancedSettings::get_WinceFixedPalette -> %08X, winceFixedPalette = %ld"), hr, *pwinceFixedPalette); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_ConnectToServerConsole(VARIANT_BOOL pConnectToConsole) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_ConnectToServerConsole(%s)"), BooleanToString(pConnectToConsole)); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_ConnectToServerConsole(pConnectToConsole); + dbgprintf(TEXT("CAdvancedSettings::put_ConnectToServerConsole -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_ConnectToServerConsole(VARIANT_BOOL * pConnectToConsole) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_ConnectToServerConsole(%p)"), pConnectToConsole); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_ConnectToServerConsole(pConnectToConsole); + dbgprintf(TEXT("CAdvancedSettings::get_ConnectToServerConsole -> %08X, ConnectToConsole = %s"), hr, BooleanToString(*pConnectToConsole)); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_BitmapPersistence(long pbitmapPersistence) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_BitmapPersistence(%ld)"), pbitmapPersistence); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_BitmapPersistence(pbitmapPersistence); + dbgprintf(TEXT("CAdvancedSettings::put_BitmapPersistence -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_BitmapPersistence(long * pbitmapPersistence) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_BitmapPersistence(%p)"), pbitmapPersistence); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_BitmapPersistence(pbitmapPersistence); + dbgprintf(TEXT("CAdvancedSettings::get_BitmapPersistence -> %08X, bitmapPersistence = %ld"), hr, *pbitmapPersistence); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_MinutesToIdleTimeout(long pminutesToIdleTimeout) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_MinutesToIdleTimeout(%ld)"), pminutesToIdleTimeout); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_MinutesToIdleTimeout(pminutesToIdleTimeout); + dbgprintf(TEXT("CAdvancedSettings::put_MinutesToIdleTimeout -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_MinutesToIdleTimeout(long * pminutesToIdleTimeout) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_MinutesToIdleTimeout(%p)"), pminutesToIdleTimeout); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_MinutesToIdleTimeout(pminutesToIdleTimeout); + dbgprintf(TEXT("CAdvancedSettings::get_MinutesToIdleTimeout -> %08X, minutesToIdleTimeout = %ld"), hr, *pminutesToIdleTimeout); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_SmartSizing(VARIANT_BOOL pfSmartSizing) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_SmartSizing(%s)"), BooleanToString(pfSmartSizing)); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_SmartSizing(pfSmartSizing); + dbgprintf(TEXT("CAdvancedSettings::put_SmartSizing -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_SmartSizing(VARIANT_BOOL * pfSmartSizing) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_SmartSizing(%p)"), pfSmartSizing); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_SmartSizing(pfSmartSizing); + dbgprintf(TEXT("CAdvancedSettings::get_SmartSizing -> %08X, fSmartSizing = %s"), hr, BooleanToString(*pfSmartSizing)); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RdpdrLocalPrintingDocName(BSTR pLocalPrintingDocName) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_RdpdrLocalPrintingDocName(%ls)"), pLocalPrintingDocName); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_RdpdrLocalPrintingDocName(pLocalPrintingDocName); + dbgprintf(TEXT("CAdvancedSettings::put_RdpdrLocalPrintingDocName -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RdpdrLocalPrintingDocName(BSTR * pLocalPrintingDocName) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_RdpdrLocalPrintingDocName(%p)"), pLocalPrintingDocName); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_RdpdrLocalPrintingDocName(pLocalPrintingDocName); + dbgprintf(TEXT("CAdvancedSettings::get_RdpdrLocalPrintingDocName -> %08X, LocalPrintingDocName = %ls"), hr, *pLocalPrintingDocName); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RdpdrClipCleanTempDirString(BSTR clipCleanTempDirString) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_RdpdrClipCleanTempDirString(%ls)"), clipCleanTempDirString); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_RdpdrClipCleanTempDirString(clipCleanTempDirString); + dbgprintf(TEXT("CAdvancedSettings::put_RdpdrClipCleanTempDirString -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RdpdrClipCleanTempDirString(BSTR * clipCleanTempDirString) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_RdpdrClipCleanTempDirString(%p)"), clipCleanTempDirString); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_RdpdrClipCleanTempDirString(clipCleanTempDirString); + dbgprintf(TEXT("CAdvancedSettings::get_RdpdrClipCleanTempDirString -> %08X, clipCleanTempDirString = %ls"), hr, *clipCleanTempDirString); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RdpdrClipPasteInfoString(BSTR clipPasteInfoString) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_RdpdrClipPasteInfoString(%ls)"), clipPasteInfoString); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_RdpdrClipPasteInfoString(clipPasteInfoString); + dbgprintf(TEXT("CAdvancedSettings::put_RdpdrClipPasteInfoString -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RdpdrClipPasteInfoString(BSTR * clipPasteInfoString) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_RdpdrClipPasteInfoString(%p)"), clipPasteInfoString); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_RdpdrClipPasteInfoString(clipPasteInfoString); + dbgprintf(TEXT("CAdvancedSettings::get_RdpdrClipPasteInfoString -> %08X, clipPasteInfoString = %ls"), hr, *clipPasteInfoString); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_ClearTextPassword(BSTR rhs) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_ClearTextPassword(%ls)"), rhs); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_ClearTextPassword(rhs); + dbgprintf(TEXT("CAdvancedSettings::put_ClearTextPassword -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_DisplayConnectionBar(VARIANT_BOOL pDisplayConnectionBar) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_DisplayConnectionBar(%s)"), BooleanToString(pDisplayConnectionBar)); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_DisplayConnectionBar(pDisplayConnectionBar); + dbgprintf(TEXT("CAdvancedSettings::put_DisplayConnectionBar -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_DisplayConnectionBar(VARIANT_BOOL * pDisplayConnectionBar) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_DisplayConnectionBar(%p)"), pDisplayConnectionBar); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_DisplayConnectionBar(pDisplayConnectionBar); + dbgprintf(TEXT("CAdvancedSettings::get_DisplayConnectionBar -> %08X, DisplayConnectionBar = %s"), hr, BooleanToString(*pDisplayConnectionBar)); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_PinConnectionBar(VARIANT_BOOL pPinConnectionBar) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_PinConnectionBar(%s)"), BooleanToString(pPinConnectionBar)); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_PinConnectionBar(pPinConnectionBar); + dbgprintf(TEXT("CAdvancedSettings::put_PinConnectionBar -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_PinConnectionBar(VARIANT_BOOL * pPinConnectionBar) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_PinConnectionBar(%p)"), pPinConnectionBar); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_PinConnectionBar(pPinConnectionBar); + dbgprintf(TEXT("CAdvancedSettings::get_PinConnectionBar -> %08X, PinConnectionBar = %s"), hr, BooleanToString(*pPinConnectionBar)); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_GrabFocusOnConnect(VARIANT_BOOL pfGrabFocusOnConnect) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_GrabFocusOnConnect(%s)"), BooleanToString(pfGrabFocusOnConnect)); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_GrabFocusOnConnect(pfGrabFocusOnConnect); + dbgprintf(TEXT("CAdvancedSettings::put_GrabFocusOnConnect -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_GrabFocusOnConnect(VARIANT_BOOL * pfGrabFocusOnConnect) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_GrabFocusOnConnect(%p)"), pfGrabFocusOnConnect); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_GrabFocusOnConnect(pfGrabFocusOnConnect); + dbgprintf(TEXT("CAdvancedSettings::get_GrabFocusOnConnect -> %08X, fGrabFocusOnConnect = %s"), hr, BooleanToString(*pfGrabFocusOnConnect)); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_LoadBalanceInfo(BSTR pLBInfo) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_LoadBalanceInfo(%ls)"), pLBInfo); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_LoadBalanceInfo(pLBInfo); + dbgprintf(TEXT("CAdvancedSettings::put_LoadBalanceInfo -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_LoadBalanceInfo(BSTR * pLBInfo) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_LoadBalanceInfo(%p)"), pLBInfo); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_LoadBalanceInfo(pLBInfo); + dbgprintf(TEXT("CAdvancedSettings::get_LoadBalanceInfo -> %08X, LBInfo = %ls"), hr, *pLBInfo); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RedirectDrives(VARIANT_BOOL pRedirectDrives) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_RedirectDrives(%s)"), BooleanToString(pRedirectDrives)); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_RedirectDrives(pRedirectDrives); + dbgprintf(TEXT("CAdvancedSettings::put_RedirectDrives -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RedirectDrives(VARIANT_BOOL * pRedirectDrives) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_RedirectDrives(%p)"), pRedirectDrives); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_RedirectDrives(pRedirectDrives); + dbgprintf(TEXT("CAdvancedSettings::get_RedirectDrives -> %08X, RedirectDrives = %s"), hr, BooleanToString(*pRedirectDrives)); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RedirectPrinters(VARIANT_BOOL pRedirectPrinters) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_RedirectPrinters(%s)"), BooleanToString(pRedirectPrinters)); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_RedirectPrinters(pRedirectPrinters); + dbgprintf(TEXT("CAdvancedSettings::put_RedirectPrinters -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RedirectPrinters(VARIANT_BOOL * pRedirectPrinters) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_RedirectPrinters(%p)"), pRedirectPrinters); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_RedirectPrinters(pRedirectPrinters); + dbgprintf(TEXT("CAdvancedSettings::get_RedirectPrinters -> %08X, RedirectPrinters = %s"), hr, BooleanToString(*pRedirectPrinters)); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RedirectPorts(VARIANT_BOOL pRedirectPorts) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_RedirectPorts(%s)"), BooleanToString(pRedirectPorts)); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_RedirectPorts(pRedirectPorts); + dbgprintf(TEXT("CAdvancedSettings::put_RedirectPorts -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RedirectPorts(VARIANT_BOOL * pRedirectPorts) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_RedirectPorts(%p)"), pRedirectPorts); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_RedirectPorts(pRedirectPorts); + dbgprintf(TEXT("CAdvancedSettings::get_RedirectPorts -> %08X, RedirectPorts = %s"), hr, BooleanToString(*pRedirectPorts)); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RedirectSmartCards(VARIANT_BOOL pRedirectSmartCards) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_RedirectSmartCards(%s)"), BooleanToString(pRedirectSmartCards)); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_RedirectSmartCards(pRedirectSmartCards); + dbgprintf(TEXT("CAdvancedSettings::put_RedirectSmartCards -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RedirectSmartCards(VARIANT_BOOL * pRedirectSmartCards) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_RedirectSmartCards(%p)"), pRedirectSmartCards); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_RedirectSmartCards(pRedirectSmartCards); + dbgprintf(TEXT("CAdvancedSettings::get_RedirectSmartCards -> %08X, RedirectSmartCards = %s"), hr, BooleanToString(*pRedirectSmartCards)); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_BitmapVirtualCache16BppSize(long pBitmapVirtualCache16BppSize) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_BitmapVirtualCache16BppSize(%ld)"), pBitmapVirtualCache16BppSize); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_BitmapVirtualCache16BppSize(pBitmapVirtualCache16BppSize); + dbgprintf(TEXT("CAdvancedSettings::put_BitmapVirtualCache16BppSize -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_BitmapVirtualCache16BppSize(long * pBitmapVirtualCache16BppSize) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_BitmapVirtualCache16BppSize(%p)"), pBitmapVirtualCache16BppSize); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_BitmapVirtualCache16BppSize(pBitmapVirtualCache16BppSize); + dbgprintf(TEXT("CAdvancedSettings::get_BitmapVirtualCache16BppSize -> %08X, BitmapVirtualCache16BppSize = %ld"), hr, *pBitmapVirtualCache16BppSize); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_BitmapVirtualCache24BppSize(long pBitmapVirtualCache24BppSize) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_BitmapVirtualCache24BppSize(%ld)"), pBitmapVirtualCache24BppSize); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_BitmapVirtualCache24BppSize(pBitmapVirtualCache24BppSize); + dbgprintf(TEXT("CAdvancedSettings::put_BitmapVirtualCache24BppSize -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_BitmapVirtualCache24BppSize(long * pBitmapVirtualCache24BppSize) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_BitmapVirtualCache24BppSize(%p)"), pBitmapVirtualCache24BppSize); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_BitmapVirtualCache24BppSize(pBitmapVirtualCache24BppSize); + dbgprintf(TEXT("CAdvancedSettings::get_BitmapVirtualCache24BppSize -> %08X, BitmapVirtualCache24BppSize = %ld"), hr, *pBitmapVirtualCache24BppSize); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_PerformanceFlags(long pDisableList) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_PerformanceFlags(%ld)"), pDisableList); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_PerformanceFlags(pDisableList); + dbgprintf(TEXT("CAdvancedSettings::put_PerformanceFlags -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_PerformanceFlags(long * pDisableList) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_PerformanceFlags(%p)"), pDisableList); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_PerformanceFlags(pDisableList); + dbgprintf(TEXT("CAdvancedSettings::get_PerformanceFlags -> %08X, DisableList = %ld"), hr, *pDisableList); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_ConnectWithEndpoint(VARIANT * rhs) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_ConnectWithEndpoint(%s)"), VariantToString(*rhs).c_str()); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_ConnectWithEndpoint(rhs); + dbgprintf(TEXT("CAdvancedSettings::put_ConnectWithEndpoint -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_NotifyTSPublicKey(VARIANT_BOOL pfNotify) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::put_NotifyTSPublicKey(%s)"), BooleanToString(pfNotify)); + HRESULT hr = pIMsRdpClientAdvancedSettings->put_NotifyTSPublicKey(pfNotify); + dbgprintf(TEXT("CAdvancedSettings::put_NotifyTSPublicKey -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_NotifyTSPublicKey(VARIANT_BOOL * pfNotify) + { + IMsRdpClientAdvancedSettings * pIMsRdpClientAdvancedSettings = getIMsRdpClientAdvancedSettings(); + dbgprintf(TEXT("CAdvancedSettings::get_NotifyTSPublicKey(%p)"), pfNotify); + HRESULT hr = pIMsRdpClientAdvancedSettings->get_NotifyTSPublicKey(pfNotify); + dbgprintf(TEXT("CAdvancedSettings::get_NotifyTSPublicKey -> %08X, fNotify = %s"), hr, BooleanToString(*pfNotify)); + return hr; + } + + /* IMsRdpClientAdvancedSettings2 */ + virtual STDMETHODIMP IMsRdpClientAdvancedSettings2::get_CanAutoReconnect(VARIANT_BOOL * pfCanAutoReconnect) + { + IMsRdpClientAdvancedSettings2 * pIMsRdpClientAdvancedSettings2 = getIMsRdpClientAdvancedSettings2(); + dbgprintf(TEXT("CAdvancedSettings::get_CanAutoReconnect(%p)"), pfCanAutoReconnect); + HRESULT hr = pIMsRdpClientAdvancedSettings2->get_CanAutoReconnect(pfCanAutoReconnect); + dbgprintf(TEXT("CAdvancedSettings::get_CanAutoReconnect -> %08X, fCanAutoReconnect = %s"), hr, BooleanToString(*pfCanAutoReconnect)); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings2::put_EnableAutoReconnect(VARIANT_BOOL pfEnableAutoReconnect) + { + IMsRdpClientAdvancedSettings2 * pIMsRdpClientAdvancedSettings2 = getIMsRdpClientAdvancedSettings2(); + dbgprintf(TEXT("CAdvancedSettings::put_EnableAutoReconnect(%s)"), BooleanToString(pfEnableAutoReconnect)); + HRESULT hr = pIMsRdpClientAdvancedSettings2->put_EnableAutoReconnect(pfEnableAutoReconnect); + dbgprintf(TEXT("CAdvancedSettings::put_EnableAutoReconnect -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings2::get_EnableAutoReconnect(VARIANT_BOOL * pfEnableAutoReconnect) + { + IMsRdpClientAdvancedSettings2 * pIMsRdpClientAdvancedSettings2 = getIMsRdpClientAdvancedSettings2(); + dbgprintf(TEXT("CAdvancedSettings::get_EnableAutoReconnect(%p)"), pfEnableAutoReconnect); + HRESULT hr = pIMsRdpClientAdvancedSettings2->get_EnableAutoReconnect(pfEnableAutoReconnect); + dbgprintf(TEXT("CAdvancedSettings::get_EnableAutoReconnect -> %08X, fEnableAutoReconnect = %s"), hr, BooleanToString(*pfEnableAutoReconnect)); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings2::put_MaxReconnectAttempts(long pMaxReconnectAttempts) + { + IMsRdpClientAdvancedSettings2 * pIMsRdpClientAdvancedSettings2 = getIMsRdpClientAdvancedSettings2(); + dbgprintf(TEXT("CAdvancedSettings::put_MaxReconnectAttempts(%ld)"), pMaxReconnectAttempts); + HRESULT hr = pIMsRdpClientAdvancedSettings2->put_MaxReconnectAttempts(pMaxReconnectAttempts); + dbgprintf(TEXT("CAdvancedSettings::put_MaxReconnectAttempts -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings2::get_MaxReconnectAttempts(long * pMaxReconnectAttempts) + { + IMsRdpClientAdvancedSettings2 * pIMsRdpClientAdvancedSettings2 = getIMsRdpClientAdvancedSettings2(); + dbgprintf(TEXT("CAdvancedSettings::get_MaxReconnectAttempts(%p)"), pMaxReconnectAttempts); + HRESULT hr = pIMsRdpClientAdvancedSettings2->get_MaxReconnectAttempts(pMaxReconnectAttempts); + dbgprintf(TEXT("CAdvancedSettings::get_MaxReconnectAttempts -> %08X, MaxReconnectAttempts = %ld"), hr, *pMaxReconnectAttempts); + return hr; + } + + /* IMsRdpClientAdvancedSettings3 */ + virtual STDMETHODIMP IMsRdpClientAdvancedSettings3::put_ConnectionBarShowMinimizeButton(VARIANT_BOOL pfShowMinimize) + { + IMsRdpClientAdvancedSettings3 * pIMsRdpClientAdvancedSettings3 = getIMsRdpClientAdvancedSettings3(); + dbgprintf(TEXT("CAdvancedSettings::put_ConnectionBarShowMinimizeButton(%s)"), BooleanToString(pfShowMinimize)); + HRESULT hr = pIMsRdpClientAdvancedSettings3->put_ConnectionBarShowMinimizeButton(pfShowMinimize); + dbgprintf(TEXT("CAdvancedSettings::put_ConnectionBarShowMinimizeButton -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings3::get_ConnectionBarShowMinimizeButton(VARIANT_BOOL * pfShowMinimize) + { + IMsRdpClientAdvancedSettings3 * pIMsRdpClientAdvancedSettings3 = getIMsRdpClientAdvancedSettings3(); + dbgprintf(TEXT("CAdvancedSettings::get_ConnectionBarShowMinimizeButton(%p)"), pfShowMinimize); + HRESULT hr = pIMsRdpClientAdvancedSettings3->get_ConnectionBarShowMinimizeButton(pfShowMinimize); + dbgprintf(TEXT("CAdvancedSettings::get_ConnectionBarShowMinimizeButton -> %08X, fShowMinimize = %s"), hr, BooleanToString(*pfShowMinimize)); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings3::put_ConnectionBarShowRestoreButton(VARIANT_BOOL pfShowRestore) + { + IMsRdpClientAdvancedSettings3 * pIMsRdpClientAdvancedSettings3 = getIMsRdpClientAdvancedSettings3(); + dbgprintf(TEXT("CAdvancedSettings::put_ConnectionBarShowRestoreButton(%s)"), BooleanToString(pfShowRestore)); + HRESULT hr = pIMsRdpClientAdvancedSettings3->put_ConnectionBarShowRestoreButton(pfShowRestore); + dbgprintf(TEXT("CAdvancedSettings::put_ConnectionBarShowRestoreButton -> %08X"), hr); + return hr; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings3::get_ConnectionBarShowRestoreButton(VARIANT_BOOL * pfShowRestore) + { + IMsRdpClientAdvancedSettings3 * pIMsRdpClientAdvancedSettings3 = getIMsRdpClientAdvancedSettings3(); + dbgprintf(TEXT("CAdvancedSettings::get_ConnectionBarShowRestoreButton(%p)"), pfShowRestore); + HRESULT hr = pIMsRdpClientAdvancedSettings3->get_ConnectionBarShowRestoreButton(pfShowRestore); + dbgprintf(TEXT("CAdvancedSettings::get_ConnectionBarShowRestoreButton -> %08X, fShowRestore = %s"), hr, BooleanToString(*pfShowRestore)); + return hr; + } + + /* IMsRdpClientAdvancedSettings4 */ + virtual STDMETHODIMP IMsRdpClientAdvancedSettings4::put_AuthenticationLevel(unsigned int puiAuthLevel) + { + IMsRdpClientAdvancedSettings4 * pIMsRdpClientAdvancedSettings4 = getIMsRdpClientAdvancedSettings4(); + dbgprintf(TEXT("CAdvancedSettings::put_AuthenticationLevel(%u)"), puiAuthLevel); + HRESULT hr = pIMsRdpClientAdvancedSettings4->put_AuthenticationLevel(puiAuthLevel); + dbgprintf(TEXT("CAdvancedSettings::put_AuthenticationLevel -> %08X"), hr); + return hr; + } + virtual STDMETHODIMP IMsRdpClientAdvancedSettings4::get_AuthenticationLevel(unsigned int * puiAuthLevel) + { + IMsRdpClientAdvancedSettings4 * pIMsRdpClientAdvancedSettings4 = getIMsRdpClientAdvancedSettings4(); + dbgprintf(TEXT("CAdvancedSettings::get_AuthenticationLevel(%p)"), puiAuthLevel); + HRESULT hr = pIMsRdpClientAdvancedSettings4->get_AuthenticationLevel(puiAuthLevel); + dbgprintf(TEXT("CAdvancedSettings::get_AuthenticationLevel -> %08X, uiAuthLevel = %ld"), hr, *puiAuthLevel); + return hr; + } + }; + + class CoClass: + /* Standard interfaces */ + public IUnknown, + public IDispatch, + public IConnectionPointContainer, + public IDataObject, + public IObjectSafety, + public IOleControl, + public IOleInPlaceActiveObject, + public IOleInPlaceObject, + public IOleObject, + public IOleWindow, + public IPersist, + public IPersistPropertyBag, + public IPersistStorage, + public IPersistStreamInit, + public IProvideClassInfo, + public IProvideClassInfo2, + public IQuickActivate, + public ISpecifyPropertyPages, + public IViewObject, + public IViewObject2, + + /* RDP client interfaces */ + public IMsRdpClient4, + public IMsRdpClientNonScriptable2 + { + private: + LONG m_refCount; + + IUnknown * m_IUnknown; + + IDispatch * m_IDispatch; + IConnectionPointContainer * m_IConnectionPointContainer; + IDataObject * m_IDataObject; + IObjectSafety * m_IObjectSafety; + IOleControl * m_IOleControl; + IOleInPlaceActiveObject * m_IOleInPlaceActiveObject; + IOleInPlaceObject * m_IOleInPlaceObject; + IOleObject * m_IOleObject; + IOleWindow * m_IOleWindow; + IPersist * m_IPersist; + IPersistPropertyBag * m_IPersistPropertyBag; + IPersistStorage * m_IPersistStorage; + IPersistStreamInit * m_IPersistStreamInit; + IProvideClassInfo * m_IProvideClassInfo; + IProvideClassInfo2 * m_IProvideClassInfo2; + IQuickActivate * m_IQuickActivate; + ISpecifyPropertyPages * m_ISpecifyPropertyPages; + IViewObject * m_IViewObject; + IViewObject2 * m_IViewObject2; + + IMsRdpClient * m_IMsRdpClient; + IMsRdpClient2 * m_IMsRdpClient2; + IMsRdpClient3 * m_IMsRdpClient3; + IMsRdpClient4 * m_IMsRdpClient4; + IMsTscAx * m_IMsTscAx; + IMsTscNonScriptable * m_IMsTscNonScriptable; + IMsRdpClientNonScriptable * m_IMsRdpClientNonScriptable; + IMsRdpClientNonScriptable2 * m_IMsRdpClientNonScriptable2; + + IDispatch * getIDispatch() + { + if(m_IDispatch) + return m_IDispatch; + + if(m_IMsRdpClient) + m_IDispatch = m_IMsRdpClient; + else if(m_IMsRdpClient2) + m_IDispatch = m_IMsRdpClient2; + else if(m_IMsRdpClient3) + m_IDispatch = m_IMsRdpClient3; + else if(m_IMsRdpClient4) + m_IDispatch = m_IMsRdpClient4; + else if(m_IMsTscAx) + m_IDispatch = m_IMsTscAx; + + if(m_IDispatch) + { + m_IDispatch->AddRef(); + return m_IDispatch; + } + + if(SUCCEEDED(m_IUnknown->QueryInterface(&m_IDispatch))) + return m_IDispatch; + + return NULL; + } + + IConnectionPointContainer * getIConnectionPointContainer() + { + if(m_IConnectionPointContainer) + return m_IConnectionPointContainer; + + m_IUnknown->QueryInterface(&m_IConnectionPointContainer); + return m_IConnectionPointContainer; + + } + + IDataObject * getIDataObject() + { + if(m_IDataObject) + return m_IDataObject; + + m_IUnknown->QueryInterface(&m_IDataObject); + return m_IDataObject; + } + + IObjectSafety * getIObjectSafety() + { + if(m_IObjectSafety) + return m_IObjectSafety; + + m_IUnknown->QueryInterface(&m_IObjectSafety); + return m_IObjectSafety; + } + + IOleControl * getIOleControl() + { + if(m_IOleControl) + return m_IOleControl; + + m_IUnknown->QueryInterface(&m_IOleControl); + return m_IOleControl; + } + + IOleInPlaceActiveObject * getIOleInPlaceActiveObject() + { + if(m_IOleInPlaceActiveObject) + return m_IOleInPlaceActiveObject; + + m_IUnknown->QueryInterface(&m_IOleInPlaceActiveObject); + return m_IOleInPlaceActiveObject; + } + + IOleInPlaceObject * getIOleInPlaceObject() + { + if(m_IOleInPlaceObject) + return m_IOleInPlaceObject; + + m_IUnknown->QueryInterface(&m_IOleInPlaceObject); + return m_IOleInPlaceObject; + } + + IOleObject * getIOleObject() + { + if(m_IOleObject) + return m_IOleObject; + + m_IUnknown->QueryInterface(&m_IOleObject); + return m_IOleObject; + } + + IOleWindow * getIOleWindow() + { + if(m_IOleWindow) + return m_IOleWindow; + + if(m_IOleInPlaceActiveObject) + m_IOleWindow = m_IOleInPlaceActiveObject; + + if(m_IOleWindow) + { + m_IOleWindow->AddRef(); + return m_IOleWindow; + } + + m_IUnknown->QueryInterface(&m_IOleWindow); + return m_IOleWindow; + } + + IPersist * getIPersist() + { + if(m_IPersist) + return m_IPersist; + + if(m_IPersistPropertyBag) + m_IPersist = m_IPersistPropertyBag; + else if(m_IPersistStorage) + m_IPersist = m_IPersistStorage; + else if(m_IPersistStreamInit) + m_IPersist = m_IPersistStreamInit; + + if(m_IPersist) + { + m_IPersist->AddRef(); + return m_IPersist; + } + + m_IUnknown->QueryInterface(&m_IPersist); + return m_IPersist; + } + + IPersistPropertyBag * getIPersistPropertyBag() + { + if(m_IPersistPropertyBag) + return m_IPersistPropertyBag; + + m_IUnknown->QueryInterface(&m_IPersistPropertyBag); + return m_IPersistPropertyBag; + } + + IPersistStorage * getIPersistStorage() + { + if(m_IPersistStorage) + return m_IPersistStorage; + + m_IUnknown->QueryInterface(&m_IPersistStorage); + return m_IPersistStorage; + } + + IPersistStreamInit * getIPersistStreamInit() + { + if(m_IPersistStreamInit) + return m_IPersistStreamInit; + + m_IUnknown->QueryInterface(&m_IPersistStreamInit); + return m_IPersistStreamInit; + } + + IProvideClassInfo * getIProvideClassInfo() + { + if(m_IProvideClassInfo) + return m_IProvideClassInfo; + + if(m_IProvideClassInfo2) + m_IProvideClassInfo = m_IProvideClassInfo2; + + if(m_IProvideClassInfo) + { + m_IProvideClassInfo->AddRef(); + return m_IProvideClassInfo; + } + + m_IUnknown->QueryInterface(&m_IProvideClassInfo); + return m_IProvideClassInfo; + } + + IProvideClassInfo2 * getIProvideClassInfo2() + { + if(m_IProvideClassInfo2) + return m_IProvideClassInfo2; + + m_IUnknown->QueryInterface(&m_IProvideClassInfo2); + return m_IProvideClassInfo2; + } + + IQuickActivate * getIQuickActivate() + { + if(m_IQuickActivate) + return m_IQuickActivate; + + m_IUnknown->QueryInterface(&m_IQuickActivate); + return m_IQuickActivate; + } + + ISpecifyPropertyPages * getISpecifyPropertyPages() + { + if(m_ISpecifyPropertyPages) + return m_ISpecifyPropertyPages; + + m_IUnknown->QueryInterface(&m_ISpecifyPropertyPages); + return m_ISpecifyPropertyPages; + } + + IViewObject * getIViewObject() + { + if(m_IViewObject) + return m_IViewObject; + + if(m_IViewObject2) + m_IViewObject = m_IViewObject2; + + if(m_IViewObject) + { + m_IViewObject->AddRef(); + return m_IViewObject; + } + + m_IUnknown->QueryInterface(&m_IViewObject); + return m_IViewObject; + } + + IViewObject2 * getIViewObject2() + { + if(m_IViewObject2) + return m_IViewObject2; + + m_IUnknown->QueryInterface(&m_IViewObject2); + return m_IViewObject2; + } + + IMsRdpClient * getIMsRdpClient() + { + if(m_IMsRdpClient) + return m_IMsRdpClient; + + if(m_IMsRdpClient2) + m_IMsRdpClient = m_IMsRdpClient2; + else if(m_IMsRdpClient3) + m_IMsRdpClient = m_IMsRdpClient3; + else if(m_IMsRdpClient4) + m_IMsRdpClient = m_IMsRdpClient4; + + if(m_IMsRdpClient) + { + m_IMsRdpClient->AddRef(); + return m_IMsRdpClient; + } + + m_IUnknown->QueryInterface(&m_IMsRdpClient); + return m_IMsRdpClient; + } + + IMsRdpClient2 * getIMsRdpClient2() + { + if(m_IMsRdpClient2) + return m_IMsRdpClient2; + + if(m_IMsRdpClient3) + m_IMsRdpClient2 = m_IMsRdpClient3; + else if(m_IMsRdpClient4) + m_IMsRdpClient2 = m_IMsRdpClient4; + + if(m_IMsRdpClient2) + { + m_IMsRdpClient2->AddRef(); + return m_IMsRdpClient2; + } + + m_IUnknown->QueryInterface(&m_IMsRdpClient2); + return m_IMsRdpClient2; + } + + IMsRdpClient3 * getIMsRdpClient3() + { + if(m_IMsRdpClient3) + return m_IMsRdpClient3; + + if(m_IMsRdpClient4) + m_IMsRdpClient3 = m_IMsRdpClient4; + + if(m_IMsRdpClient3) + { + m_IMsRdpClient3->AddRef(); + return m_IMsRdpClient3; + } + + m_IUnknown->QueryInterface(&m_IMsRdpClient3); + return m_IMsRdpClient3; + } + + IMsRdpClient4 * getIMsRdpClient4() + { + if(m_IMsRdpClient4) + return m_IMsRdpClient4; + + m_IUnknown->QueryInterface(&m_IMsRdpClient4); + return m_IMsRdpClient4; + } + + IMsTscAx * getIMsTscAx() + { + if(m_IMsTscAx) + return m_IMsTscAx; + + if(m_IMsRdpClient) + m_IMsTscAx = m_IMsRdpClient; + else if(m_IMsRdpClient2) + m_IMsTscAx = m_IMsRdpClient2; + else if(m_IMsRdpClient3) + m_IMsTscAx = m_IMsRdpClient3; + else if(m_IMsRdpClient4) + m_IMsTscAx = m_IMsRdpClient4; + + if(m_IMsTscAx) + { + m_IMsTscAx->AddRef(); + return m_IMsTscAx; + } + + m_IUnknown->QueryInterface(&m_IMsTscAx); + return m_IMsTscAx; + } + + IMsTscNonScriptable * getIMsTscNonScriptable() + { + if(m_IMsTscNonScriptable) + return m_IMsTscNonScriptable; + + if(m_IMsRdpClientNonScriptable) + m_IMsTscNonScriptable = m_IMsRdpClientNonScriptable; + else if(m_IMsRdpClientNonScriptable2) + m_IMsTscNonScriptable = m_IMsRdpClientNonScriptable2; + + if(m_IMsTscNonScriptable) + { + m_IMsTscNonScriptable->AddRef(); + return m_IMsTscNonScriptable; + } + + m_IUnknown->QueryInterface(&m_IMsTscNonScriptable); + return m_IMsTscNonScriptable; + } + + IMsRdpClientNonScriptable * getIMsRdpClientNonScriptable() + { + if(m_IMsRdpClientNonScriptable) + return m_IMsRdpClientNonScriptable; + + if(m_IMsRdpClientNonScriptable2) + m_IMsRdpClientNonScriptable = m_IMsRdpClientNonScriptable2; + + if(m_IMsRdpClientNonScriptable) + { + m_IMsRdpClientNonScriptable->AddRef(); + return m_IMsRdpClientNonScriptable; + } + + m_IUnknown->QueryInterface(&m_IMsRdpClientNonScriptable); + return m_IMsRdpClientNonScriptable; + } + + IMsRdpClientNonScriptable2 * getIMsRdpClientNonScriptable2() + { + if(m_IMsRdpClientNonScriptable2) + return m_IMsRdpClientNonScriptable2; + + m_IUnknown->QueryInterface(&m_IMsRdpClientNonScriptable2); + return m_IMsRdpClientNonScriptable2; + } + + private: + IUnknown * m_outer; + + HRESULT queryInterface(REFIID riid, void ** ppvObject) + { + HRESULT hr; + IUnknown * pvObject = NULL; + + dbgprintf(TEXT("IUnknown::QueryInterface(%ls, %p)"), UUIDToString(riid).c_str(), ppvObject); + +#define QIBEGIN() \ + if(riid == IID_IUnknown) \ + { \ + assert(0); \ + } + +#define QI(I) \ + else if(riid == IID_ ## I) \ + { \ + if(m_ ## I) \ + { \ + m_ ## I->AddRef(); \ + hr = S_OK; \ + } \ + else \ + { \ + hr = m_IUnknown->QueryInterface(&m_ ## I); \ + } \ + \ + if(SUCCEEDED(hr)) \ + pvObject = static_cast(this); \ + } + +#define QIEND() \ + else \ + { \ + hr = E_NOINTERFACE; \ + pvObject = NULL; \ + } + + QIBEGIN() + + /* Standard interfaces */ + QI(IDispatch) + QI(IConnectionPointContainer) + QI(IDataObject) + QI(IObjectSafety) + QI(IOleControl) + QI(IOleInPlaceActiveObject) + QI(IOleInPlaceObject) + QI(IOleObject) + QI(IOleWindow) + QI(IPersist) + QI(IPersistPropertyBag) + QI(IPersistStorage) + QI(IPersistStreamInit) + QI(IProvideClassInfo) + QI(IProvideClassInfo2) + QI(IQuickActivate) + QI(ISpecifyPropertyPages) + QI(IViewObject) + QI(IViewObject2) + + /* Terminal services client */ + QI(IMsRdpClient) + QI(IMsRdpClient2) + QI(IMsRdpClient3) + QI(IMsRdpClient4) + QI(IMsTscAx) + QI(IMsTscNonScriptable) + QI(IMsRdpClientNonScriptable) + QI(IMsRdpClientNonScriptable2) + QIEND() + +#undef QIBEGIN +#undef QIEND +#undef QI + + if(SUCCEEDED(hr)) + { + assert(pvObject); + pvObject->AddRef(); + } + else + { + assert(pvObject == NULL); + } + + *ppvObject = pvObject; + + dbgprintf(TEXT("IUnknown::QueryInterface -> %08X, ppvObject = %p"), hr, *ppvObject); + return hr; + } + + ULONG addRef() + { + return InterlockedIncrement(&m_refCount); + } + + ULONG release() + { + LONG n = InterlockedDecrement(&m_refCount); + + if(n == 0) + delete this; + + return n; + } + + friend class CoClassInner; + + class CoClassInner: public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void ** ppvObject) + { + if(riid == IID_IUnknown) + { + AddRef(); + *ppvObject = this; + return S_OK; + } + + return InnerToOuter(this)->queryInterface(riid, ppvObject); + } + + virtual ULONG STDMETHODCALLTYPE AddRef() + { + return InnerToOuter(this)->addRef(); + } + + virtual ULONG STDMETHODCALLTYPE Release() + { + return InnerToOuter(this)->release(); + } + } + m_inner; + + static CoClass * InnerToOuter(CoClassInner * inner) + { + return CONTAINING_RECORD(inner, CoClass, m_inner); + } + + private: + CoClass(IUnknown * pUnknw, IUnknown * pUnkOuter): + m_refCount(1), + m_outer(pUnkOuter), + m_IUnknown(pUnknw), + m_IDispatch(NULL), + m_IConnectionPointContainer(NULL), + m_IDataObject(NULL), + m_IObjectSafety(NULL), + m_IOleControl(NULL), + m_IOleInPlaceActiveObject(NULL), + m_IOleInPlaceObject(NULL), + m_IOleObject(NULL), + m_IOleWindow(NULL), + m_IPersist(NULL), + m_IPersistPropertyBag(NULL), + m_IPersistStorage(NULL), + m_IPersistStreamInit(NULL), + m_IProvideClassInfo(NULL), + m_IProvideClassInfo2(NULL), + m_IQuickActivate(NULL), + m_ISpecifyPropertyPages(NULL), + m_IViewObject(NULL), + m_IViewObject2(NULL), + m_IMsRdpClient(NULL), + m_IMsRdpClient2(NULL), + m_IMsRdpClient3(NULL), + m_IMsRdpClient4(NULL), + m_IMsTscAx(NULL), + m_IMsTscNonScriptable(NULL), + m_IMsRdpClientNonScriptable(NULL), + m_IMsRdpClientNonScriptable2(NULL) + { + if(m_outer == NULL) + m_outer = &m_inner; + } + + public: + static HRESULT CreateInstance(IUnknown * pUnknw, IUnknown * pUnkOuter, REFIID riid, void ** ppvObject) + { + HRESULT hr = S_OK; + + if(pUnkOuter && riid != IID_IUnknown) + hr = CLASS_E_NOAGGREGATION; + else + { + CoClass * p = new CoClass(pUnknw, pUnkOuter); + + if(p == NULL) + hr = E_OUTOFMEMORY; + else + { + hr = p->m_inner.QueryInterface(riid, ppvObject); + + if(FAILED(hr)) + delete p; + else + p->m_inner.Release(); + } + } + + if(FAILED(hr)) + pUnknw->Release(); + + return hr; + } + + private: + ~CoClass() + { + if(m_IUnknown) + m_IUnknown->Release(); + + if(m_IDispatch) + m_IDispatch->Release(); + + if(m_IConnectionPointContainer) + m_IConnectionPointContainer->Release(); + + if(m_IDataObject) + m_IDataObject->Release(); + + if(m_IObjectSafety) + m_IObjectSafety->Release(); + + if(m_IOleControl) + m_IOleControl->Release(); + + if(m_IOleInPlaceActiveObject) + m_IOleInPlaceActiveObject->Release(); + + if(m_IOleInPlaceObject) + m_IOleInPlaceObject->Release(); + + if(m_IOleObject) + m_IOleObject->Release(); + + if(m_IOleWindow) + m_IOleWindow->Release(); + + if(m_IPersist) + m_IPersist->Release(); + + if(m_IPersistPropertyBag) + m_IPersistPropertyBag->Release(); + + if(m_IPersistStorage) + m_IPersistStorage->Release(); + + if(m_IPersistStreamInit) + m_IPersistStreamInit->Release(); + + if(m_IProvideClassInfo) + m_IProvideClassInfo->Release(); + + if(m_IProvideClassInfo2) + m_IProvideClassInfo2->Release(); + + if(m_IQuickActivate) + m_IQuickActivate->Release(); + + if(m_ISpecifyPropertyPages) + m_ISpecifyPropertyPages->Release(); + + if(m_IViewObject) + m_IViewObject->Release(); + + if(m_IViewObject2) + m_IViewObject2->Release(); + + if(m_IMsRdpClient) + m_IMsRdpClient->Release(); + + if(m_IMsRdpClient2) + m_IMsRdpClient2->Release(); + + if(m_IMsRdpClient3) + m_IMsRdpClient3->Release(); + + if(m_IMsRdpClient4) + m_IMsRdpClient4->Release(); + + if(m_IMsTscAx) + m_IMsTscAx->Release(); + + if(m_IMsTscNonScriptable) + m_IMsTscNonScriptable->Release(); + + if(m_IMsRdpClientNonScriptable) + m_IMsRdpClientNonScriptable->Release(); + + if(m_IMsRdpClientNonScriptable2) + m_IMsRdpClientNonScriptable2->Release(); + } + + /* IUnknown */ + public: + virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void ** ppvObject) + { + return m_outer->QueryInterface(riid, ppvObject); + } + + virtual ULONG STDMETHODCALLTYPE AddRef(void) + { + return m_outer->AddRef(); + } + + virtual ULONG STDMETHODCALLTYPE Release(void) + { + return m_outer->Release(); + } + + /* IDispatch */ + private: + static void FreeExcepInfo(const EXCEPINFO& excepInfo) + { + if(excepInfo.bstrSource) + SysFreeString(excepInfo.bstrSource); + + if(excepInfo.bstrDescription) + SysFreeString(excepInfo.bstrDescription); + + if(excepInfo.bstrHelpFile) + SysFreeString(excepInfo.bstrHelpFile); + } + + static std::basic_string ExcepInfoToString(const EXCEPINFO& excepInfo) + { + std::basic_ostringstream o; + + o << "{"; + o << " code: " << excepInfo.wCode << " from: " << std::basic_string(excepInfo.bstrSource, excepInfo.bstrSource + SysStringLen(excepInfo.bstrSource)); + + BSTR bstrDescription = NULL; + + if(excepInfo.bstrDescription) + bstrDescription = excepInfo.bstrDescription; + else if(excepInfo.pfnDeferredFillIn) + { + EXCEPINFO excepInfoCopy = excepInfo; + + if(SUCCEEDED(excepInfoCopy.pfnDeferredFillIn(&excepInfoCopy)) && excepInfoCopy.bstrDescription) + { + bstrDescription = excepInfoCopy.bstrDescription; + excepInfoCopy.bstrDescription = NULL; + } + + if(excepInfoCopy.bstrSource == excepInfo.bstrSource) + excepInfoCopy.bstrSource = NULL; + + if(excepInfoCopy.bstrHelpFile == excepInfo.bstrDescription) + excepInfoCopy.bstrDescription = NULL; + + FreeExcepInfo(excepInfoCopy); + } + + if(bstrDescription) + { + o << " msg: " << std::basic_string(bstrDescription, bstrDescription + SysStringLen(bstrDescription)); + + if(excepInfo.bstrDescription == NULL) + SysFreeString(bstrDescription); + } + + o << " }"; + + return o.str().c_str(); + } + + public: + virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount(UINT * pctinfo) + { + IDispatch * pIDispatch = getIDispatch(); + dbgprintf(TEXT("IDispatch::GetTypeInfoCount(%p)"), pctinfo); + HRESULT hr = pIDispatch->GetTypeInfoCount(pctinfo); + dbgprintf(TEXT("IDispatch::GetTypeInfoCount -> %08X, ctinfo = %lu"), hr, *pctinfo); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo ** ppTInfo) + { + IDispatch * pIDispatch = getIDispatch(); + dbgprintf(TEXT("IDispatch::GetTypeInfo(%lu, %08X, %p)"), iTInfo, lcid, ppTInfo); + HRESULT hr = pIDispatch->GetTypeInfo(iTInfo, lcid, ppTInfo); + dbgprintf(TEXT("IDispatch::GetTypeInfo -> %08X, pTInfo = %p"), hr, *ppTInfo); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(REFIID riid, LPOLESTR * rgszNames, UINT cNames, LCID lcid, DISPID * rgDispId) + { + IDispatch * pIDispatch = getIDispatch(); + std::wstring strtemp; + + std::wostringstream strtempo; + + strtemp.resize(0); + strtemp += L"[ "; + + for(UINT i = 0; i < cNames; ++ i) + { + if(i) + strtemp += L", "; + + strtemp += rgszNames[i]; + } + + strtemp += L" ]"; + + dbgprintf(TEXT("IDispatch::GetIDsOfNames(%ls, %ls, %lu, %08X, %p)"), UUIDToString(riid).c_str(), strtemp.c_str(), cNames, lcid, rgDispId); + HRESULT hr = pIDispatch->GetIDsOfNames(riid, rgszNames, cNames, lcid, rgDispId); + + strtemp.resize(0); + strtempo.str(strtemp); + + strtempo << L"[ "; + + for(UINT i = 0; i < cNames; ++ i) + { + if(i) + strtempo << L", "; + + strtempo << rgDispId[i]; + } + + strtempo << L" ]"; + + dbgprintf(TEXT("IDispatch::GetIDsOfNames -> %08X, rgDispId = %ls"), hr, strtempo.str().c_str()); + + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS * pDispParams, VARIANT * pVarResult, EXCEPINFO * pExcepInfo, UINT * puArgErr) + { + IDispatch * pIDispatch = getIDispatch(); + + std::basic_ostringstream strtempo; + + strtempo << L"{"; + + for(unsigned int i = pDispParams->cArgs, j = pDispParams->cNamedArgs; j < pDispParams->cArgs; -- i, ++ j) + { + strtempo << L" "; + strtempo << VariantToString(pDispParams->rgvarg[i - 1]); + strtempo << L","; + } + + for(unsigned int i = pDispParams->cArgs - pDispParams->cNamedArgs; i > 0; -- i) + { + strtempo << L" "; + strtempo << L"["; strtempo << pDispParams->rgdispidNamedArgs[i - 1]; strtempo << L"] => "; + strtempo << VariantToString(pDispParams->rgvarg[i - 1]); + strtempo << L","; + } + + strtempo << L" }"; + + dbgprintf(TEXT("IDispatch::Invoke(%ld, %ls, %08X, %04X, %s, %p, %p, %p)"), dispIdMember, UUIDToString(riid).c_str(), lcid, wFlags, strtempo.str().c_str(), pVarResult, pExcepInfo, puArgErr); + + VARIANT VarResult = { }; + EXCEPINFO ExcepInfo = { }; + + if(pVarResult == NULL) + pVarResult = &VarResult; + + if(pExcepInfo == NULL) + pExcepInfo = &ExcepInfo; + + HRESULT hr = pIDispatch->Invoke(dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + + dbgprintf(TEXT("IDispatch::Invoke -> %08X, returns %s, throws %s"), hr, VariantToString(*pVarResult).c_str(), ExcepInfoToString(*pExcepInfo).c_str()); + + FreeExcepInfo(ExcepInfo); + + return hr; + } + + /* IConnectionPointContainer */ + public: + virtual HRESULT STDMETHODCALLTYPE EnumConnectionPoints(IEnumConnectionPoints ** ppEnum) + { + IConnectionPointContainer * pIConnectionPointContainer = getIConnectionPointContainer(); + dbgprintf(TEXT("IConnectionPointContainer::EnumConnectionPoints(%p)"), ppEnum); + HRESULT hr = pIConnectionPointContainer->EnumConnectionPoints(ppEnum); + dbgprintf(TEXT("IConnectionPointContainer::EnumConnectionPoints -> %08X, pEnum = %p"), hr, *ppEnum); + + if(SUCCEEDED(hr)) + *ppEnum = HookIEnumConnectionPoints(*ppEnum); + + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE FindConnectionPoint(REFIID riid, IConnectionPoint ** ppCP) + { + IConnectionPointContainer * pIConnectionPointContainer = getIConnectionPointContainer(); + dbgprintf(TEXT("IConnectionPointContainer::FindConnectionPoint(%ls, %p)"), UUIDToString(riid).c_str(), ppCP); + HRESULT hr = pIConnectionPointContainer->FindConnectionPoint(riid, ppCP); + dbgprintf(TEXT("IConnectionPointContainer::FindConnectionPoint -> %08X, pCP = %p"), hr, *ppCP); + + if(SUCCEEDED(hr)) + *ppCP = HookIConnectionPoint(*ppCP); + + return hr; + } + + /* IDataObject */ + private: + static std::basic_string TargetDeviceToString(const DVTARGETDEVICE& targetdev) + { + if(&targetdev == NULL) + return TEXT(""); + + std::basic_ostringstream o; + + o << "{"; + o << LPCWSTR(targetdev.tdData[targetdev.tdDriverNameOffset]); + + if(targetdev.tdDeviceNameOffset) + { + o << ","; + o << LPCWSTR(targetdev.tdData[targetdev.tdDeviceNameOffset]); + } + + if(targetdev.tdPortNameOffset) + { + o << ","; + o << LPCWSTR(targetdev.tdData[targetdev.tdPortNameOffset]); + } + + o << " }"; + + return o.str(); + } + + static LPCTSTR AspectToString(DWORD aspect) + { + switch(aspect) + { + case DVASPECT_CONTENT: return TEXT("content"); + case DVASPECT_THUMBNAIL: return TEXT("thumbnail"); + case DVASPECT_ICON: return TEXT("icon"); + case DVASPECT_DOCPRINT: return TEXT("printable"); + default: return TEXT(""); + } + } + + static LPCTSTR TymedToString(DWORD tymed) + { + switch(tymed) + { + case TYMED_HGLOBAL: return TEXT("memory"); + case TYMED_FILE: return TEXT("file"); + case TYMED_ISTREAM: return TEXT("IStream"); + case TYMED_ISTORAGE: return TEXT("IStorage"); + case TYMED_GDI: return TEXT("bitmap"); + case TYMED_MFPICT: return TEXT("metafile"); + case TYMED_ENHMF: return TEXT("enhanced metafile"); + case TYMED_NULL: return TEXT(""); + default: return TEXT(""); + } + } + + static std::basic_string FormatEtcToString(const FORMATETC& formatetc) + { + std::basic_ostringstream o; + + o << "{"; + + // cfFormat + o << " format: "; + + switch(formatetc.cfFormat) + { + case CF_TEXT: o << "ANSI text"; break; + case CF_BITMAP: o << "bitmap"; break; + case CF_METAFILEPICT: o << "metafile"; break; + case CF_SYLK: o << "symlink"; break; + case CF_DIF: o << "DIF"; break; + case CF_TIFF: o << "TIFF"; break; + case CF_OEMTEXT: o << "OEM text"; break; + case CF_DIB: o << "DIBv4"; break; + case CF_PALETTE: o << "palette"; break; + case CF_PENDATA: o << "pen data"; break; + case CF_RIFF: o << "RIFF"; break; + case CF_WAVE: o << "WAV"; break; + case CF_UNICODETEXT: o << "Unicode text"; break; + case CF_ENHMETAFILE: o << "enhanced metafile"; break; + case CF_HDROP: o << "list of files"; break; + case CF_LOCALE: o << "LCID"; break; + case CF_DIBV5: o << "DIBv5"; break; + case CF_OWNERDISPLAY: o << ""; break; + case CF_DSPTEXT: o << ""; break; + case CF_DSPBITMAP: o << ""; break; + case CF_DSPMETAFILEPICT: o << ""; break; + case CF_DSPENHMETAFILE: o << ""; break; + + default: + o << "<"; + + if(formatetc.cfFormat >= CF_PRIVATEFIRST && formatetc.cfFormat <= CF_PRIVATELAST) + o << "private"; + else if(formatetc.cfFormat >= CF_GDIOBJFIRST && formatetc.cfFormat <= CF_GDIOBJLAST) + o << "GDI object"; + else + o << "unknown"; + + o << " " << std::hex << formatetc.cfFormat << std::dec << ">"; + } + + // ptd + if(formatetc.ptd) + o << " device: " << TargetDeviceToString(*formatetc.ptd); + + // dwAspect + o << " aspect: " << AspectToString(formatetc.dwAspect); + + // lindex + if(formatetc.dwAspect == DVASPECT_CONTENT || formatetc.dwAspect == DVASPECT_DOCPRINT) + o << " page split: " << formatetc.lindex; + + // tymed + o << " medium: " << TymedToString(formatetc.tymed); + + return o.str(); + } + + static std::basic_string MediumToString(const STGMEDIUM& medium) + { + std::basic_ostringstream o; + + o << "{ "; + o << TymedToString(medium.tymed); + o << " }"; + + return o.str(); + } + + public: + virtual HRESULT STDMETHODCALLTYPE GetData(FORMATETC * pformatetcIn, STGMEDIUM * pmedium) + { + IDataObject * pIDataObject = getIDataObject(); + dbgprintf(TEXT("IDataObject::GetData(%s, %p)"), FormatEtcToString(*pformatetcIn).c_str(), pmedium); + HRESULT hr = pIDataObject->GetData(pformatetcIn, pmedium); + dbgprintf(TEXT("IDataObject::GetData -> %08X, %s"), hr, MediumToString(*pmedium).c_str()); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE GetDataHere(FORMATETC * pformatetc, STGMEDIUM * pmedium) + { + IDataObject * pIDataObject = getIDataObject(); + dbgprintf(TEXT("IDataObject::GetDataHere(%s, %p)"), FormatEtcToString(*pformatetc).c_str(), pmedium); + HRESULT hr = pIDataObject->GetDataHere(pformatetc, pmedium); + dbgprintf(TEXT("IDataObject::GetDataHere -> %08X, medium = %s"), hr, MediumToString(*pmedium).c_str()); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE QueryGetData(FORMATETC * pformatetc) + { + IDataObject * pIDataObject = getIDataObject(); + dbgprintf(TEXT("IDataObject::QueryGetData(%s)"), FormatEtcToString(*pformatetc).c_str()); + HRESULT hr = pIDataObject->QueryGetData(pformatetc); + dbgprintf(TEXT("IDataObject::QueryGetData -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE GetCanonicalFormatEtc(FORMATETC * pformatectIn, FORMATETC * pformatetcOut) + { + IDataObject * pIDataObject = getIDataObject(); + dbgprintf(TEXT("IDataObject::GetCanonicalFormatEtc(%s, %p)"), FormatEtcToString(*pformatectIn).c_str(), pformatetcOut); + HRESULT hr = pIDataObject->GetCanonicalFormatEtc(pformatectIn, pformatetcOut); + dbgprintf(TEXT("IDataObject::GetCanonicalFormatEtc -> %08X, formatetcOut = %s"), hr, FormatEtcToString(*pformatetcOut).c_str()); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE SetData(FORMATETC * pformatetc, STGMEDIUM * pmedium, BOOL fRelease) + { + IDataObject * pIDataObject = getIDataObject(); + dbgprintf(TEXT("IDataObject::SetData(%s, %p, %s)"), FormatEtcToString(*pformatetc).c_str(), MediumToString(*pmedium).c_str(), fRelease ? TEXT("true") : TEXT("false")); + HRESULT hr = pIDataObject->SetData(pformatetc, pmedium, fRelease); + dbgprintf(TEXT("IDataObject::SetData -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC ** ppenumFormatEtc) + { + IDataObject * pIDataObject = getIDataObject(); + dbgprintf(TEXT("IDataObject::EnumFormatEtc(%lu, %p)"), dwDirection, ppenumFormatEtc); + HRESULT hr = pIDataObject->EnumFormatEtc(dwDirection, ppenumFormatEtc); + dbgprintf(TEXT("IDataObject::EnumFormatEtc -> %08X, penumFormatEtc = %p"), hr, *ppenumFormatEtc); + // TODO: hook + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE DAdvise(FORMATETC * pformatetc, DWORD advf, IAdviseSink * pAdvSink, DWORD * pdwConnection) + { + IDataObject * pIDataObject = getIDataObject(); + dbgprintf(TEXT("IDataObject::DAdvise(%s, %lu, %p, %p)"), FormatEtcToString(*pformatetc).c_str(), advf, pAdvSink, pdwConnection); + HRESULT hr = pIDataObject->DAdvise(pformatetc, advf, pAdvSink, pdwConnection); + dbgprintf(TEXT("IDataObject::DAdvise -> %08X, dwConnection = %lu"), hr, *pdwConnection); + // TODO: hook + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE DUnadvise(DWORD dwConnection) + { + IDataObject * pIDataObject = getIDataObject(); + dbgprintf(TEXT("IDataObject::DUnadvise(%lu)"), dwConnection); + HRESULT hr = pIDataObject->DUnadvise(dwConnection); + dbgprintf(TEXT("IDataObject::DUnadvise -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE EnumDAdvise(IEnumSTATDATA ** ppenumAdvise) + { + IDataObject * pIDataObject = getIDataObject(); + dbgprintf(TEXT("IDataObject::EnumDAdvise(%p)"), ppenumAdvise); + HRESULT hr = pIDataObject->EnumDAdvise(ppenumAdvise); + dbgprintf(TEXT("IDataObject::EnumDAdvise -> %08X, penumAdvise = %p"), hr, *ppenumAdvise); + // TODO: hook + return hr; + } + + /* IObjectSafety */ + public: + virtual HRESULT STDMETHODCALLTYPE IObjectSafety::GetInterfaceSafetyOptions(REFIID riid, DWORD * pdwSupportedOptions, DWORD * pdwEnabledOptions) + { + IObjectSafety * pIObjectSafety = getIObjectSafety(); + dbgprintf(TEXT("IObjectSafety::GetInterfaceSafetyOptions(%ls, %p, %p)"), UUIDToString(riid).c_str(), pdwSupportedOptions, pdwEnabledOptions); + HRESULT hr = pIObjectSafety->GetInterfaceSafetyOptions(riid, pdwSupportedOptions, pdwEnabledOptions); + dbgprintf(TEXT("IObjectSafety::GetInterfaceSafetyOptions -> %08X, dwSupportedOptions = %08X, dwEnabledOptions = %08X"), hr, *pdwSupportedOptions, *pdwEnabledOptions); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE IObjectSafety::SetInterfaceSafetyOptions(REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions) + { + IObjectSafety * pIObjectSafety = getIObjectSafety(); + dbgprintf(TEXT("IObjectSafety::SetInterfaceSafetyOptions(%ls, %08X, %08X)"), UUIDToString(riid).c_str(), dwOptionSetMask, dwEnabledOptions); + HRESULT hr = pIObjectSafety->SetInterfaceSafetyOptions(riid, dwOptionSetMask, dwEnabledOptions); + dbgprintf(TEXT("IObjectSafety::SetInterfaceSafetyOptions -> %08X"), hr); + return hr; + } + + /* IOleControl */ + private: + std::basic_string ControlInfoToString(const CONTROLINFO& ci) + { + std::basic_ostringstream o; + + int firstdone = 0; + + o << "{ "; + + if(ci.cAccel && ci.hAccel) + { + LPACCEL pAccel = static_cast(GlobalLock(ci.hAccel)); + + if(pAccel) + { + for(USHORT i = 0; i < ci.cAccel; ++ i) + { + if(i) + o << ", "; + + if(pAccel[i].fVirt & FSHIFT) + o << "SHIFT + "; + + if(pAccel[i].fVirt & FCONTROL) + o << "CONTROL + "; + + if(pAccel[i].fVirt & FALT) + o << "ALT + "; + + if(pAccel[i].fVirt & FVIRTKEY) + o << ""; + else + o << wchar_t(pAccel[i].key); + + o << " " << std::hex << pAccel[i].cmd << std::dec; + } + + firstdone = ci.cAccel; + + GlobalUnlock(pAccel); + } + } + + if(ci.dwFlags & CTRLINFO_EATS_RETURN) + { + if(!firstdone) + { + o << ", "; + ++ firstdone; + } + + o << "ENTER"; + } + + if(ci.dwFlags & CTRLINFO_EATS_ESCAPE) + { + if(!firstdone) + { + o << ", "; + ++ firstdone; + } + + o << "ESC"; + } + + if(firstdone) + o << " "; + + o << "}"; + + return o.str(); + } + + std::basic_string MnemonicToString(const MSG& msg) + { + std::basic_ostringstream o; + + o << "["; + + switch(msg.message) + { + case WM_SYSKEYDOWN: + o << "ALT + "; + + case WM_KEYDOWN: + TCHAR sz[1024]; + GetKeyNameText(LONG(msg.lParam), sz, ARRAYSIZE(sz)); + o << sz; + + default: + o << ""; + } + + o << "]"; + + return o.str(); + } + + public: + virtual HRESULT STDMETHODCALLTYPE GetControlInfo(CONTROLINFO * pCI) + { + IOleControl * pIOleControl = getIOleControl(); + dbgprintf(TEXT("IOleControl::GetControlInfo(%p)"), pCI); + HRESULT hr = pIOleControl->GetControlInfo(pCI); + dbgprintf(TEXT("IOleControl::GetControlInfo -> %08X, %s"), hr, ControlInfoToString(*pCI).c_str()); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE OnMnemonic(MSG * pMsg) + { + IOleControl * pIOleControl = getIOleControl(); + dbgprintf(TEXT("IOleControl::OnMnemonic(%s)"), MnemonicToString(*pMsg).c_str()); + HRESULT hr = pIOleControl->OnMnemonic(pMsg); + dbgprintf(TEXT("IOleControl::OnMnemonic -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE OnAmbientPropertyChange(DISPID dispID) + { + IOleControl * pIOleControl = getIOleControl(); + dbgprintf(TEXT("IOleControl::OnAmbientPropertyChange(%08X)"), dispID); + HRESULT hr = pIOleControl->OnAmbientPropertyChange(dispID); + dbgprintf(TEXT("IOleControl::OnAmbientPropertyChange -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE FreezeEvents(BOOL bFreeze) + { + IOleControl * pIOleControl = getIOleControl(); + dbgprintf(TEXT("IOleControl::FreezeEvents(%s)"), BooleanToString(bFreeze)); + HRESULT hr = pIOleControl->FreezeEvents(bFreeze); + dbgprintf(TEXT("IOleControl::FreezeEvents -> %08X"), hr); + return hr; + } + + /* IOleInPlaceActiveObject */ + public: + virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(LPMSG lpmsg) + { + IOleInPlaceActiveObject * pIOleInPlaceActiveObject = getIOleInPlaceActiveObject(); + dbgprintf(TEXT("IOleInPlaceActiveObject::TranslateAccelerator(%s)"), MnemonicToString(*lpmsg).c_str()); + HRESULT hr = pIOleInPlaceActiveObject->TranslateAccelerator(lpmsg); + dbgprintf(TEXT("IOleInPlaceActiveObject::TranslateAccelerator -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE OnFrameWindowActivate(BOOL fActivate) + { + IOleInPlaceActiveObject * pIOleInPlaceActiveObject = getIOleInPlaceActiveObject(); + dbgprintf(TEXT("IOleInPlaceActiveObject::OnFrameWindowActivate(%s)"), BooleanToString(fActivate)); + HRESULT hr = pIOleInPlaceActiveObject->OnFrameWindowActivate(fActivate); + dbgprintf(TEXT("IOleInPlaceActiveObject::OnFrameWindowActivate -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE OnDocWindowActivate(BOOL fActivate) + { + IOleInPlaceActiveObject * pIOleInPlaceActiveObject = getIOleInPlaceActiveObject(); + dbgprintf(TEXT("IOleInPlaceActiveObject::OnDocWindowActivate(%s)"), BooleanToString(fActivate)); + HRESULT hr = pIOleInPlaceActiveObject->OnDocWindowActivate(fActivate); + dbgprintf(TEXT("IOleInPlaceActiveObject::OnDocWindowActivate -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE ResizeBorder(LPCRECT prcBorder, IOleInPlaceUIWindow * pUIWindow, BOOL fFrameWindow) + { + // TODO: hook pUIWindow + IOleInPlaceActiveObject * pIOleInPlaceActiveObject = getIOleInPlaceActiveObject(); + dbgprintf(TEXT("IOleInPlaceActiveObject::ResizeBorder(%s)"), RectToString(*prcBorder).c_str(), pUIWindow, BooleanToString(fFrameWindow)); + HRESULT hr = pIOleInPlaceActiveObject->ResizeBorder(prcBorder, pUIWindow, fFrameWindow); + dbgprintf(TEXT("IOleInPlaceActiveObject::ResizeBorder -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE EnableModeless(BOOL fEnable) + { + IOleInPlaceActiveObject * pIOleInPlaceActiveObject = getIOleInPlaceActiveObject(); + dbgprintf(TEXT("IOleInPlaceActiveObject::EnableModeless(%s)"), BooleanToString(fEnable)); + HRESULT hr = pIOleInPlaceActiveObject->EnableModeless(fEnable); + dbgprintf(TEXT("IOleInPlaceActiveObject::EnableModeless -> %08X"), hr); + return hr; + } + + /* IOleInPlaceObject */ + public: + virtual HRESULT STDMETHODCALLTYPE InPlaceDeactivate(void) + { + IOleInPlaceObject * pIOleInPlaceObject = getIOleInPlaceObject(); + dbgprintf(TEXT("IOleInPlaceObject::InPlaceDeactivate()")); + HRESULT hr = pIOleInPlaceObject->InPlaceDeactivate(); + dbgprintf(TEXT("IOleInPlaceObject::InPlaceDeactivate -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE UIDeactivate(void) + { + IOleInPlaceObject * pIOleInPlaceObject = getIOleInPlaceObject(); + dbgprintf(TEXT("IOleInPlaceObject::UIDeactivate()")); + HRESULT hr = pIOleInPlaceObject->UIDeactivate(); + dbgprintf(TEXT("IOleInPlaceObject::UIDeactivate -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE SetObjectRects(LPCRECT lprcPosRect, LPCRECT lprcClipRect) + { + IOleInPlaceObject * pIOleInPlaceObject = getIOleInPlaceObject(); + dbgprintf(TEXT("IOleInPlaceObject::SetObjectRects(%s, %s)"), RectToString(*lprcPosRect).c_str(), RectToString(*lprcClipRect).c_str()); + HRESULT hr = pIOleInPlaceObject->SetObjectRects(lprcPosRect, lprcClipRect); + dbgprintf(TEXT("IOleInPlaceObject::SetObjectRects -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE ReactivateAndUndo(void) + { + IOleInPlaceObject * pIOleInPlaceObject = getIOleInPlaceObject(); + dbgprintf(TEXT("IOleInPlaceObject::ReactivateAndUndo()")); + HRESULT hr = pIOleInPlaceObject->ReactivateAndUndo(); + dbgprintf(TEXT("IOleInPlaceObject::ReactivateAndUndo -> %08X"), hr); + return hr; + } + + /* IOleWindow */ + public: + virtual HRESULT STDMETHODCALLTYPE GetWindow(HWND * phwnd) + { + IOleWindow * pIOleWindow = getIOleWindow(); + dbgprintf(TEXT("IOleWindow::GetWindow(%p)"), phwnd); + HRESULT hr = pIOleWindow->GetWindow(phwnd); + dbgprintf(TEXT("IOleWindow::GetWindow -> %08X, hwnd = %X"), hr, *phwnd); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL fEnterMode) + { + IOleWindow * pIOleWindow = getIOleWindow(); + dbgprintf(TEXT("IOleWindow::ContextSensitiveHelp(%s)"), BooleanToString(fEnterMode)); + HRESULT hr = pIOleWindow->ContextSensitiveHelp(fEnterMode); + dbgprintf(TEXT("IOleWindow::ContextSensitiveHelp -> %08X"), hr); + return hr; + } + + /* IOleObject */ + public: + virtual HRESULT STDMETHODCALLTYPE SetClientSite(IOleClientSite * pClientSite) + { + // TODO: hook pClientSite + IOleObject * pIOleObject = getIOleObject(); + dbgprintf(TEXT("IOleObject::SetClientSite(%p)"), pClientSite); + HRESULT hr = pIOleObject->SetClientSite(pClientSite); + dbgprintf(TEXT("IOleObject::SetClientSite -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE GetClientSite(IOleClientSite ** ppClientSite) + { + IOleObject * pIOleObject = getIOleObject(); + dbgprintf(TEXT("IOleObject::GetClientSite(%s)"), ppClientSite); + HRESULT hr = pIOleObject->GetClientSite(ppClientSite); + dbgprintf(TEXT("IOleObject::GetClientSite -> %08X"), hr, ppClientSite); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE SetHostNames(LPCOLESTR szContainerApp, LPCOLESTR szContainerObj) + { + IOleObject * pIOleObject = getIOleObject(); + dbgprintf(TEXT("IOleObject::SetHostNames(%ls, %ls)"), szContainerApp, szContainerObj); + HRESULT hr = pIOleObject->SetHostNames(szContainerApp, szContainerObj); + dbgprintf(TEXT("IOleObject::SetHostNames -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE Close(DWORD dwSaveOption) + { + IOleObject * pIOleObject = getIOleObject(); + dbgprintf(TEXT("IOleObject::Close(%lu)"), dwSaveOption); + HRESULT hr = pIOleObject->Close(dwSaveOption); + dbgprintf(TEXT("IOleObject::Close -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE SetMoniker(DWORD dwWhichMoniker, IMoniker * pmk) + { + IOleObject * pIOleObject = getIOleObject(); + dbgprintf(TEXT("IOleObject::SetMoniker(%lu, %p)"), dwWhichMoniker, MonikerToString(pmk).c_str()); + HRESULT hr = pIOleObject->SetMoniker(dwWhichMoniker, pmk); + dbgprintf(TEXT("IOleObject::SetMoniker -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker ** ppmk) + { + IOleObject * pIOleObject = getIOleObject(); + dbgprintf(TEXT("IOleObject::GetMoniker(%lu, %lu, %p)"), dwAssign, dwWhichMoniker, ppmk); + HRESULT hr = pIOleObject->GetMoniker(dwAssign, dwWhichMoniker, ppmk); + dbgprintf(TEXT("IOleObject::GetMoniker -> %08X, pmk = %s"), hr, SUCCEEDED(hr) ? MonikerToString(*ppmk).c_str() : TEXT("")); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE InitFromData(IDataObject * pDataObject, BOOL fCreation, DWORD dwReserved) + { + IOleObject * pIOleObject = getIOleObject(); + dbgprintf(TEXT("IOleObject::InitFromData(%p, %s, %lu)"), pDataObject, BooleanToString(fCreation), dwReserved); + HRESULT hr = pIOleObject->InitFromData(pDataObject, fCreation, dwReserved); + dbgprintf(TEXT("IOleObject::InitFromData -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE GetClipboardData(DWORD dwReserved, IDataObject ** ppDataObject) + { + IOleObject * pIOleObject = getIOleObject(); + dbgprintf(TEXT("IOleObject::GetClipboardData(%lu, %p)"), dwReserved, ppDataObject); + HRESULT hr = pIOleObject->GetClipboardData(dwReserved, ppDataObject); + dbgprintf(TEXT("IOleObject::GetClipboardData -> %08X, pDataObject = %p"), hr, *ppDataObject); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE DoVerb(LONG iVerb, LPMSG lpmsg, IOleClientSite * pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect) + { + IOleObject * pIOleObject = getIOleObject(); + dbgprintf(TEXT("IOleObject::DoVerb(%ld, %p, %p, %ld, %p, %s)"), iVerb, lpmsg, pActiveSite, lindex, hwndParent, RectToString(*lprcPosRect).c_str()); + HRESULT hr = pIOleObject->DoVerb(iVerb, lpmsg, pActiveSite, lindex, hwndParent, lprcPosRect); + dbgprintf(TEXT("IOleObject::DoVerb -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE EnumVerbs(IEnumOLEVERB ** ppEnumOleVerb) + { + IOleObject * pIOleObject = getIOleObject(); + dbgprintf(TEXT("IOleObject::EnumVerbs(%p)"), ppEnumOleVerb); + HRESULT hr = pIOleObject->EnumVerbs(ppEnumOleVerb); + dbgprintf(TEXT("IOleObject::EnumVerbs -> %08X, pEnumOleVerb = %p"), hr, *ppEnumOleVerb); + // TODO: hook + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE Update(void) + { + IOleObject * pIOleObject = getIOleObject(); + dbgprintf(TEXT("IOleObject::Update(%s)")); + HRESULT hr = pIOleObject->Update(); + dbgprintf(TEXT("IOleObject::Update -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE IsUpToDate(void) + { + IOleObject * pIOleObject = getIOleObject(); + dbgprintf(TEXT("IOleObject::IsUpToDate(%s)")); + HRESULT hr = pIOleObject->IsUpToDate(); + dbgprintf(TEXT("IOleObject::IsUpToDate -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE GetUserClassID(CLSID * pClsid) + { + IOleObject * pIOleObject = getIOleObject(); + dbgprintf(TEXT("IOleObject::GetUserClassID(%p)"), pClsid); + HRESULT hr = pIOleObject->GetUserClassID(pClsid); + dbgprintf(TEXT("IOleObject::GetUserClassID -> %08X, Clsid = %ls"), hr, UUIDToString(*pClsid).c_str()); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE GetUserType(DWORD dwFormOfType, LPOLESTR * pszUserType) + { + IOleObject * pIOleObject = getIOleObject(); + dbgprintf(TEXT("IOleObject::GetUserType(%lu, %p)"), dwFormOfType, pszUserType); + HRESULT hr = pIOleObject->GetUserType(dwFormOfType, pszUserType); + dbgprintf(TEXT("IOleObject::GetUserType -> %08X, szUserType = %s"), hr, *pszUserType); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE SetExtent(DWORD dwDrawAspect, SIZEL * psizel) + { + IOleObject * pIOleObject = getIOleObject(); + dbgprintf(TEXT("IOleObject::SetExtent(%lu, %s)"), dwDrawAspect, SizeToString(*psizel).c_str()); + HRESULT hr = pIOleObject->SetExtent(dwDrawAspect, psizel); + dbgprintf(TEXT("IOleObject::SetExtent -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE GetExtent(DWORD dwDrawAspect, SIZEL * psizel) + { + IOleObject * pIOleObject = getIOleObject(); + dbgprintf(TEXT("IOleObject::GetExtent(%lu, %p)"), dwDrawAspect, psizel); + HRESULT hr = pIOleObject->GetExtent(dwDrawAspect, psizel); + dbgprintf(TEXT("IOleObject::GetExtent -> %08X"), hr, SizeToString(*psizel).c_str()); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE Advise(IAdviseSink * pAdvSink, DWORD * pdwConnection) + { + // TODO: hook pAdvSink + IOleObject * pIOleObject = getIOleObject(); + dbgprintf(TEXT("IOleObject::Advise(%p, %p)"), pAdvSink, pdwConnection); + HRESULT hr = pIOleObject->Advise(pAdvSink, pdwConnection); + dbgprintf(TEXT("IOleObject::Advise -> %08X, dwConnection = %lu"), hr, *pdwConnection); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE Unadvise(DWORD dwConnection) + { + IOleObject * pIOleObject = getIOleObject(); + dbgprintf(TEXT("IOleObject::Unadvise(%lu)"), dwConnection); + HRESULT hr = pIOleObject->Unadvise(dwConnection); + dbgprintf(TEXT("IOleObject::Unadvise -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE EnumAdvise(IEnumSTATDATA ** ppenumAdvise) + { + IOleObject * pIOleObject = getIOleObject(); + dbgprintf(TEXT("IOleObject::EnumAdvise(%p)"), ppenumAdvise); + HRESULT hr = pIOleObject->EnumAdvise(ppenumAdvise); + dbgprintf(TEXT("IOleObject::EnumAdvise -> %08X, penumAdvise = %p"), hr, *ppenumAdvise); + // TODO: hook + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE GetMiscStatus(DWORD dwAspect, DWORD * pdwStatus) + { + IOleObject * pIOleObject = getIOleObject(); + dbgprintf(TEXT("IOleObject::GetMiscStatus(%lu, %p)"), dwAspect, pdwStatus); + HRESULT hr = pIOleObject->GetMiscStatus(dwAspect, pdwStatus); + dbgprintf(TEXT("IOleObject::GetMiscStatus -> %08X, dwStatus = %08X"), hr, *pdwStatus); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE SetColorScheme(LOGPALETTE * pLogpal) + { + IOleObject * pIOleObject = getIOleObject(); + dbgprintf(TEXT("IOleObject::SetColorScheme(%p)"), pLogpal); + HRESULT hr = pIOleObject->SetColorScheme(pLogpal); + dbgprintf(TEXT("IOleObject::SetColorScheme -> %08X"), hr); + return hr; + } + + /* IPersist */ + public: + virtual HRESULT STDMETHODCALLTYPE GetClassID(CLSID * pClassID) + { + IPersist * pIPersist = getIPersist(); + dbgprintf(TEXT("IPersist::GetClassID(%p)"), pClassID); + HRESULT hr = pIPersist->GetClassID(pClassID); + dbgprintf(TEXT("IPersist::GetClassID -> %08X, ClassId = %ls"), hr, UUIDToString(*pClassID).c_str()); + return hr; + } + + /* IPersistPropertyBag */ + public: + virtual HRESULT STDMETHODCALLTYPE InitNew(void) + { + IPersistPropertyBag * pIPersistPropertyBag = getIPersistPropertyBag(); + dbgprintf(TEXT("IPersistPropertyBag::InitNew()")); + HRESULT hr = pIPersistPropertyBag->InitNew(); + dbgprintf(TEXT("IPersistPropertyBag::InitNew -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE Load(IPropertyBag * pPropBag, IErrorLog * pErrorLog) + { + // TODO: hook pPropBag, pErrorLog + IPersistPropertyBag * pIPersistPropertyBag = getIPersistPropertyBag(); + dbgprintf(TEXT("IPersistPropertyBag::Load(%p, %p)"), pPropBag, pErrorLog); + HRESULT hr = pIPersistPropertyBag->Load(pPropBag, pErrorLog); + dbgprintf(TEXT("IPersistPropertyBag::Load -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE Save(IPropertyBag * pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties) + { + // TODO: hook pPropBag + IPersistPropertyBag * pIPersistPropertyBag = getIPersistPropertyBag(); + dbgprintf(TEXT("IPersistPropertyBag::Save(%p, %s, %s)"), pPropBag, BooleanToString(fClearDirty), BooleanToString(fSaveAllProperties)); + HRESULT hr = pIPersistPropertyBag->Save(pPropBag, fClearDirty, fSaveAllProperties); + dbgprintf(TEXT("IPersistPropertyBag::Save -> %08X"), hr); + return hr; + } + + /* IPersistStorage */ + public: + virtual HRESULT STDMETHODCALLTYPE IPersistStorage::IsDirty(void) + { + IPersistStorage * pIPersistStorage = getIPersistStorage(); + dbgprintf(TEXT("IPersistStorage::IsDirty()")); + HRESULT hr = pIPersistStorage->IsDirty(); + dbgprintf(TEXT("IPersistStorage::IsDirty -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE IPersistStorage::InitNew(IStorage * pStg) + { + IPersistStorage * pIPersistStorage = getIPersistStorage(); + dbgprintf(TEXT("IPersistStorage::InitNew(%p)"), pStg); + HRESULT hr = pIPersistStorage->InitNew(pStg); + dbgprintf(TEXT("IPersistStorage::InitNew -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE IPersistStorage::Load(IStorage * pStg) + { + IPersistStorage * pIPersistStorage = getIPersistStorage(); + dbgprintf(TEXT("IPersistStorage::Load(%p)"), pStg); + HRESULT hr = pIPersistStorage->Load(pStg); + dbgprintf(TEXT("IPersistStorage::Load -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE IPersistStorage::Save(IStorage * pStgSave, BOOL fSameAsLoad) + { + IPersistStorage * pIPersistStorage = getIPersistStorage(); + dbgprintf(TEXT("IPersistStorage::Save(%p, %s)"), pStgSave, BooleanToString(fSameAsLoad)); + HRESULT hr = pIPersistStorage->Save(pStgSave, fSameAsLoad); + dbgprintf(TEXT("IPersistStorage::Save -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE SaveCompleted(IStorage * pStgNew) + { + IPersistStorage * pIPersistStorage = getIPersistStorage(); + dbgprintf(TEXT("IPersistStorage::SaveCompleted(%p)"), pStgNew); + HRESULT hr = pIPersistStorage->SaveCompleted(pStgNew); + dbgprintf(TEXT("IPersistStorage::SaveCompleted -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE HandsOffStorage(void) + { + IPersistStorage * pIPersistStorage = getIPersistStorage(); + dbgprintf(TEXT("IPersistStorage::HandsOffStorage()")); + HRESULT hr = pIPersistStorage->HandsOffStorage(); + dbgprintf(TEXT("IPersistStorage::HandsOffStorage -> %08X"), hr); + return hr; + } + + /* IPersistStreamInit */ + public: + virtual HRESULT STDMETHODCALLTYPE IPersistStreamInit::IsDirty(void) + { + IPersistStreamInit * pIPersistStreamInit = getIPersistStreamInit(); + dbgprintf(TEXT("IPersistStreamInit::IsDirty()")); + HRESULT hr = pIPersistStreamInit->IsDirty(); + dbgprintf(TEXT("IPersistStreamInit::IsDirty -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE IPersistStreamInit::Load(LPSTREAM pStm) + { + IPersistStreamInit * pIPersistStreamInit = getIPersistStreamInit(); + dbgprintf(TEXT("IPersistStreamInit::Load(%p)"), pStm); + HRESULT hr = pIPersistStreamInit->Load(pStm); + dbgprintf(TEXT("IPersistStreamInit::Load -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE IPersistStreamInit::Save(LPSTREAM pStm, BOOL fClearDirty) + { + IPersistStreamInit * pIPersistStreamInit = getIPersistStreamInit(); + dbgprintf(TEXT("IPersistStreamInit::Save(%p, %s)"), pStm, BooleanToString(fClearDirty)); + HRESULT hr = pIPersistStreamInit->Save(pStm, fClearDirty); + dbgprintf(TEXT("IPersistStreamInit::Save -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE IPersistStreamInit::GetSizeMax(ULARGE_INTEGER * pCbSize) + { + IPersistStreamInit * pIPersistStreamInit = getIPersistStreamInit(); + dbgprintf(TEXT("IPersistStreamInit::GetSizeMax(%p)"), pCbSize); + HRESULT hr = pIPersistStreamInit->GetSizeMax(pCbSize); + dbgprintf(TEXT("IPersistStreamInit::GetSizeMax -> %08X, CbSize = %llu"), hr, pCbSize->QuadPart); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE IPersistStreamInit::InitNew(void) + { + IPersistStreamInit * pIPersistStreamInit = getIPersistStreamInit(); + dbgprintf(TEXT("IPersistStreamInit::InitNew()")); + HRESULT hr = pIPersistStreamInit->InitNew(); + dbgprintf(TEXT("IPersistStreamInit::InitNew -> %08X"), hr); + return hr; + } + + /* IProvideClassInfo */ + public: + virtual HRESULT STDMETHODCALLTYPE GetClassInfo(ITypeInfo ** ppTI) + { + IProvideClassInfo * pIProvideClassInfo = getIProvideClassInfo(); + dbgprintf(TEXT("IProvideClassInfo::GetClassInfo(%p)"), ppTI); + HRESULT hr = pIProvideClassInfo->GetClassInfo(ppTI); + dbgprintf(TEXT("IProvideClassInfo::GetClassInfo -> %08X, pTI = %p"), hr, *ppTI); + return hr; + } + + /* IProvideClassInfo2 */ + public: + virtual HRESULT STDMETHODCALLTYPE IProvideClassInfo2::GetGUID(DWORD dwGuidKind, GUID * pGUID) + { + IProvideClassInfo2 * pIProvideClassInfo2 = getIProvideClassInfo2(); + dbgprintf(TEXT("IProvideClassInfo2::GetGUID(%lu, %p)"), dwGuidKind, pGUID); + HRESULT hr = pIProvideClassInfo2->GetGUID(dwGuidKind, pGUID); + dbgprintf(TEXT("IProvideClassInfo2::GetGUID -> %08X, GUID = %ls"), hr, UUIDToString(*pGUID).c_str()); + return hr; + } + + /* IQuickActivate */ + public: + virtual HRESULT STDMETHODCALLTYPE IQuickActivate::QuickActivate(QACONTAINER * pQaContainer, QACONTROL * pQaControl) // TODO + { + IQuickActivate * pIQuickActivate = getIQuickActivate(); + + std::basic_stringstream o1; + + o1 << "{ "; + o1 << "pClientSite = " << (void *)pQaContainer->pClientSite << ", "; + o1 << "pAdviseSink = " << (void *)pQaContainer->pAdviseSink << ", "; + o1 << "pPropertyNotifySink = " << (void *)pQaContainer->pPropertyNotifySink << ", "; + o1 << "pUnkEventSink = " << (void *)pQaContainer->pUnkEventSink << ", "; + + o1 << std::hex; + o1 << "dwAmbientFlags = " << pQaContainer->dwAmbientFlags << ", "; + o1 << "colorFore = " << pQaContainer->colorFore << ", "; + o1 << "colorBack = " << pQaContainer->colorBack << ", "; + o1 << std::dec; + + o1 << "pFont = " << (void *)pQaContainer->pFont << ", "; + o1 << "pUndoMgr = " << (void *)pQaContainer->pUndoMgr << ", "; + + o1 << std::hex; + o1 << "dwAppearance = " << pQaContainer->dwAppearance << ", "; + o1 << "lcid = " << pQaContainer->lcid << ", "; + o1 << std::dec; + + o1 << "hpal = " << (void *)pQaContainer->hpal << ", "; + o1 << "pBindHost = " << (void *)pQaContainer->pBindHost << ", "; + o1 << "pOleControlSite = " << (void *)pQaContainer->pOleControlSite << ", "; + o1 << "pServiceProvider = " << (void *)pQaContainer->pServiceProvider << ", "; + o1 << "}"; + + dbgprintf(TEXT("IQuickActivate::QuickActivate(%s, %p)"), o1.str().c_str(), pQaControl); + + HRESULT hr = pIQuickActivate->QuickActivate(pQaContainer, pQaControl); + + std::basic_stringstream o2; + + o2 << "{ "; + o2 << std::hex; + o2 << "dwMiscStatus = " << pQaControl->dwMiscStatus << ", "; + o2 << "dwViewStatus = " << pQaControl->dwViewStatus << ", "; + o2 << "dwEventCookie = " << pQaControl->dwEventCookie << ", "; + o2 << "dwPropNotifyCookie = " << pQaControl->dwPropNotifyCookie << ", "; + o2 << "dwPointerActivationPolicy = " << pQaControl->dwPointerActivationPolicy << ", "; + o2 << std::dec; + o2 << "}"; + + dbgprintf(TEXT("IQuickActivate::QuickActivate -> %08X, QaControl = %s"), hr, o2.str().c_str()); + + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE IQuickActivate::SetContentExtent(LPSIZEL pSizel) + { + IQuickActivate * pIQuickActivate = getIQuickActivate(); + dbgprintf(TEXT("IQuickActivate::SetContentExtent(%s)"), SizeToString(*pSizel).c_str()); + HRESULT hr = pIQuickActivate->SetContentExtent(pSizel); + dbgprintf(TEXT("IQuickActivate::SetContentExtent -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE IQuickActivate::GetContentExtent(LPSIZEL pSizel) + { + IQuickActivate * pIQuickActivate = getIQuickActivate(); + dbgprintf(TEXT("IQuickActivate::GetContentExtent(%p)"), pSizel); + HRESULT hr = pIQuickActivate->GetContentExtent(pSizel); + dbgprintf(TEXT("IQuickActivate::GetContentExtent -> %08X, Sizel = %s"), hr, SizeToString(*pSizel).c_str()); + return hr; + } + + /* ISpecifyPropertyPages */ + private: + std::basic_string CauuidToString(const CAUUID& cauuid) + { + std::basic_ostringstream o; + + o << "{"; + + for(ULONG i = 0; i < cauuid.cElems; ++ i) + { + if(i) + o << ", "; + else + o << " "; + + o << UUIDToString(cauuid.pElems[i]); + } + + o << " }"; + + return o.str(); + } + + public: + virtual HRESULT STDMETHODCALLTYPE ISpecifyPropertyPages::GetPages(CAUUID * pPages) + { + ISpecifyPropertyPages * pISpecifyPropertyPages = getISpecifyPropertyPages(); + dbgprintf(TEXT("ISpecifyPropertyPages::GetPages(%p)"), pPages); + HRESULT hr = pISpecifyPropertyPages->GetPages(pPages); + dbgprintf(TEXT("ISpecifyPropertyPages::GetPages -> %08X, Pages = %s"), hr, CauuidToString(*pPages).c_str()); + return hr; + } + + /* IViewObject */ + public: + virtual HRESULT STDMETHODCALLTYPE IViewObject::Draw(DWORD dwDrawAspect, LONG lindex, void * pvAspect, DVTARGETDEVICE * ptd, HDC hdcTargetDev, HDC hdcDraw, LPCRECTL lprcBounds, LPCRECTL lprcWBounds, BOOL (STDMETHODCALLTYPE * pfnContinue)(ULONG_PTR dwContinue), ULONG_PTR dwContinue) + { + IViewObject * pIViewObject = getIViewObject(); + dbgprintf(TEXT("IViewObject::Draw(%s, %ld, %p, %s, %p, %p, %s, %s, %p, %p)"), AspectToString(dwDrawAspect), lindex, pvAspect, TargetDeviceToString(*ptd).c_str(), hdcTargetDev, hdcDraw, RectToString(*lprcBounds).c_str(), RectToString(*lprcWBounds).c_str(), pfnContinue, dwContinue); + HRESULT hr = pIViewObject->Draw(dwDrawAspect, lindex, pvAspect, ptd, hdcTargetDev, hdcDraw, lprcBounds, lprcWBounds, pfnContinue, dwContinue); + dbgprintf(TEXT("IViewObject::Draw -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE IViewObject::GetColorSet(DWORD dwDrawAspect, LONG lindex, void * pvAspect, DVTARGETDEVICE * ptd, HDC hicTargetDev, LOGPALETTE ** ppColorSet) + { + IViewObject * pIViewObject = getIViewObject(); + dbgprintf(TEXT("IViewObject::GetColorSet(%s, %ld, %p, %s, %p, %p)"), AspectToString(dwDrawAspect), lindex, pvAspect, TargetDeviceToString(*ptd).c_str(), hicTargetDev, ppColorSet); + HRESULT hr = pIViewObject->GetColorSet(dwDrawAspect, lindex, pvAspect, ptd, hicTargetDev, ppColorSet); + dbgprintf(TEXT("IViewObject::GetColorSet -> %08X, pColorSet = %p"), hr, *ppColorSet); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE IViewObject::Freeze(DWORD dwDrawAspect, LONG lindex, void * pvAspect, DWORD * pdwFreeze) + { + IViewObject * pIViewObject = getIViewObject(); + dbgprintf(TEXT("IViewObject::Freeze(%s, %ld, %p, %p)"), AspectToString(dwDrawAspect), lindex, pvAspect, pdwFreeze); + HRESULT hr = pIViewObject->Freeze(dwDrawAspect, lindex, pvAspect, pdwFreeze); + dbgprintf(TEXT("IViewObject::Freeze -> %08X, dwFreeze = %08X"), hr, *pdwFreeze); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE IViewObject::Unfreeze(DWORD dwFreeze) + { + IViewObject * pIViewObject = getIViewObject(); + dbgprintf(TEXT("IViewObject::Unfreeze(%08X)"), dwFreeze); + HRESULT hr = pIViewObject->Unfreeze(dwFreeze); + dbgprintf(TEXT("IViewObject::Unfreeze -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE IViewObject::SetAdvise(DWORD aspects, DWORD advf, IAdviseSink * pAdvSink) + { + IViewObject * pIViewObject = getIViewObject(); + dbgprintf(TEXT("IViewObject::SetAdvise(%s, %08X, %p)"), AspectToString(aspects), advf, pAdvSink); + HRESULT hr = pIViewObject->SetAdvise(aspects, advf, pAdvSink); + dbgprintf(TEXT("IViewObject::SetAdvise -> %08X"), hr); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE IViewObject::GetAdvise(DWORD * pAspects, DWORD * pAdvf, IAdviseSink ** ppAdvSink) + { + IViewObject * pIViewObject = getIViewObject(); + dbgprintf(TEXT("IViewObject::GetAdvise(%p, %p, %p)"), pAspects, pAdvf, ppAdvSink); + HRESULT hr = pIViewObject->GetAdvise(pAspects, pAdvf, ppAdvSink); + dbgprintf(TEXT("IViewObject::GetAdvise -> %08X, aspects = %s, advf = %08X, pAdvSink %p"), hr, AspectToString(*pAspects), *pAdvf, *ppAdvSink); + return hr; + } + + /* IViewObject2 */ + public: + virtual HRESULT STDMETHODCALLTYPE IViewObject2::GetExtent(DWORD dwDrawAspect, LONG lindex, DVTARGETDEVICE * ptd, LPSIZEL lpsizel) + { + IViewObject2 * pIViewObject2 = getIViewObject2(); + dbgprintf(TEXT("IViewObject2::GetExtent(%s, %ld, %s, %p)"), AspectToString(dwDrawAspect), lindex, TargetDeviceToString(*ptd).c_str(), lpsizel); + HRESULT hr = pIViewObject2->GetExtent(dwDrawAspect, lindex, ptd, lpsizel); + dbgprintf(TEXT("IViewObject2::GetExtent -> %08X, sizel = %s"), hr, SizeToString(*lpsizel).c_str()); + return hr; + } + + /* IMsTscAx */ + public: + virtual HRESULT __stdcall put_Server(BSTR pServer) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::put_Server(%ls)"), pServer); + HRESULT hr = pIMsTscAx->put_Server(pServer); + dbgprintf(TEXT("IMsTscAx::put_Server -> %08X"), hr); + return hr; + } + + virtual HRESULT __stdcall get_Server(BSTR * pServer) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::get_Server()"), pServer); + HRESULT hr = pIMsTscAx->get_Server(pServer); + dbgprintf(TEXT("IMsTscAx::get_Server -> %08X, server = %ls"), hr, *pServer); + return hr; + } + + virtual HRESULT __stdcall put_Domain(BSTR pDomain) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::put_Domain(%ls)"), pDomain); + HRESULT hr = pIMsTscAx->put_Domain(pDomain); + dbgprintf(TEXT("IMsTscAx::put_Domain -> %08X"), hr); + return hr; + } + + virtual HRESULT __stdcall get_Domain(BSTR * pDomain) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::get_Domain(%p)"), pDomain); + HRESULT hr = pIMsTscAx->get_Domain(pDomain); + dbgprintf(TEXT("IMsTscAx::get_Domain -> %08X, Domain = %ls"), hr, *pDomain); + return hr; + } + + virtual HRESULT __stdcall put_UserName(BSTR pUserName) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::put_UserName(%ls)"), pUserName); + HRESULT hr = pIMsTscAx->put_UserName(pUserName); + dbgprintf(TEXT("IMsTscAx::put_UserName -> %08X"), hr); + return hr; + } + + virtual HRESULT __stdcall get_UserName(BSTR * pUserName) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::get_UserName(%p)"), pUserName); + HRESULT hr = pIMsTscAx->get_UserName(pUserName); + dbgprintf(TEXT("IMsTscAx::get_UserName -> %08X, UserName = %ls"), hr, *pUserName); + return hr; + } + + virtual HRESULT __stdcall put_DisconnectedText(BSTR pDisconnectedText) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::put_DisconnectedText(%ls)"), pDisconnectedText); + HRESULT hr = pIMsTscAx->put_DisconnectedText(pDisconnectedText); + dbgprintf(TEXT("IMsTscAx::put_DisconnectedText -> %08X"), hr); + return hr; + } + + virtual HRESULT __stdcall get_DisconnectedText(BSTR * pDisconnectedText) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::get_DisconnectedText(%p)"), pDisconnectedText); + HRESULT hr = pIMsTscAx->get_DisconnectedText(pDisconnectedText); + dbgprintf(TEXT("IMsTscAx::get_DisconnectedText -> %08X, DisconnectedText = %ls"), hr, *pDisconnectedText); + return hr; + } + + virtual HRESULT __stdcall put_ConnectingText(BSTR pConnectingText) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::put_ConnectingText(%ls)"), pConnectingText); + HRESULT hr = pIMsTscAx->put_ConnectingText(pConnectingText); + dbgprintf(TEXT("IMsTscAx::put_ConnectingText -> %08X"), hr); + return hr; + } + + virtual HRESULT __stdcall get_ConnectingText(BSTR * pConnectingText) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::get_ConnectingText(%p)"), pConnectingText); + HRESULT hr = pIMsTscAx->get_ConnectingText(pConnectingText); + dbgprintf(TEXT("IMsTscAx::get_ConnectingText -> %08X, ConnectingText = %ls"), hr, *pConnectingText); + return hr; + } + + virtual HRESULT __stdcall get_Connected(short * pIsConnected) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::get_Connected(%p)"), pIsConnected); + HRESULT hr = pIMsTscAx->get_Connected(pIsConnected); + dbgprintf(TEXT("IMsTscAx::get_Connected -> %08X, IsConnected = %s"), hr, BooleanToString(*pIsConnected)); + return hr; + } + + virtual HRESULT __stdcall put_DesktopWidth(long pVal) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::put_DesktopWidth(%ld)"), pVal); + HRESULT hr = pIMsTscAx->put_DesktopWidth(pVal); + dbgprintf(TEXT("IMsTscAx::put_DesktopWidth -> %08X"), hr); + return hr; + } + + virtual HRESULT __stdcall get_DesktopWidth(long * pVal) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::get_DesktopWidth(%p)"), pVal); + HRESULT hr = pIMsTscAx->get_DesktopWidth(pVal); + dbgprintf(TEXT("IMsTscAx::get_DesktopWidth -> %08X, Val = %lu"), hr, *pVal); + return hr; + } + + virtual HRESULT __stdcall put_DesktopHeight(long pVal) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::put_DesktopHeight(%ld)"), pVal); + HRESULT hr = pIMsTscAx->put_DesktopHeight(pVal); + dbgprintf(TEXT("IMsTscAx::put_DesktopHeight -> %08X"), hr); + return hr; + } + + virtual HRESULT __stdcall get_DesktopHeight(long * pVal) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::get_DesktopHeight(%p)"), pVal); + HRESULT hr = pIMsTscAx->get_DesktopHeight(pVal); + dbgprintf(TEXT("IMsTscAx::get_DesktopHeight -> %08X, Val = %lu"), hr, *pVal); + return hr; + } + + virtual HRESULT __stdcall put_StartConnected(long pfStartConnected) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::put_StartConnected(%s)"), BooleanToString(pfStartConnected)); + HRESULT hr = pIMsTscAx->put_StartConnected(pfStartConnected); + dbgprintf(TEXT("IMsTscAx::put_StartConnected -> %08X"), hr); + return hr; + } + + virtual HRESULT __stdcall get_StartConnected(long * pfStartConnected) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::get_StartConnected(%p)"), pfStartConnected); + HRESULT hr = pIMsTscAx->get_StartConnected(pfStartConnected); + dbgprintf(TEXT("IMsTscAx::get_StartConnected -> %08X, fStartConnected = %s"), hr, BooleanToString(*pfStartConnected)); + return hr; + } + + virtual HRESULT __stdcall get_HorizontalScrollBarVisible(long * pfHScrollVisible) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::get_HorizontalScrollBarVisible(%p)"), pfHScrollVisible); + HRESULT hr = pIMsTscAx->get_HorizontalScrollBarVisible(pfHScrollVisible); + dbgprintf(TEXT("IMsTscAx::get_HorizontalScrollBarVisible -> %08X, fHScrollVisible = %s"), hr, BooleanToString(*pfHScrollVisible)); + return hr; + } + + virtual HRESULT __stdcall get_VerticalScrollBarVisible(long * pfVScrollVisible) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::get_VerticalScrollBarVisible(%p)"), pfVScrollVisible); + HRESULT hr = pIMsTscAx->get_VerticalScrollBarVisible(pfVScrollVisible); + dbgprintf(TEXT("IMsTscAx::get_VerticalScrollBarVisible -> %08X, fVScrollVisible"), hr, *pfVScrollVisible); + return hr; + } + + virtual HRESULT __stdcall put_FullScreenTitle(BSTR _arg1) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::put_FullScreenTitle(%ls)"), _arg1); + HRESULT hr = pIMsTscAx->put_FullScreenTitle(_arg1); + dbgprintf(TEXT("IMsTscAx::put_FullScreenTitle -> %08X"), hr); + return hr; + } + + virtual HRESULT __stdcall get_CipherStrength(long * pCipherStrength) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::get_CipherStrength(%p)"), pCipherStrength); + HRESULT hr = pIMsTscAx->get_CipherStrength(pCipherStrength); + dbgprintf(TEXT("IMsTscAx::get_CipherStrength -> %08X, CipherStrength = %ld"), hr, *pCipherStrength); + return hr; + } + + virtual HRESULT __stdcall get_Version(BSTR * pVersion) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::get_Version(%p)"), pVersion); + HRESULT hr = pIMsTscAx->get_Version(pVersion); + dbgprintf(TEXT("IMsTscAx::get_Version -> %08X, Version = %ls"), hr, *pVersion); + return hr; + } + + virtual HRESULT __stdcall get_SecuredSettingsEnabled(long * pSecuredSettingsEnabled) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::get_SecuredSettingsEnabled(%p)"), pSecuredSettingsEnabled); + HRESULT hr = pIMsTscAx->get_SecuredSettingsEnabled(pSecuredSettingsEnabled); + dbgprintf(TEXT("IMsTscAx::get_SecuredSettingsEnabled -> %08X, SecuredSettingsEnabled = %s"), hr, BooleanToString(*pSecuredSettingsEnabled)); + return hr; + } + + virtual HRESULT __stdcall get_SecuredSettings(IMsTscSecuredSettings ** ppSecuredSettings) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::get_SecuredSettings(%p)"), ppSecuredSettings); + HRESULT hr = pIMsTscAx->get_SecuredSettings(ppSecuredSettings); + dbgprintf(TEXT("IMsTscAx::get_SecuredSettings -> %08X, pSecuredSettings = %p"), hr, *ppSecuredSettings); + return hr; + } + + virtual HRESULT __stdcall get_AdvancedSettings(IMsTscAdvancedSettings ** ppAdvSettings) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::get_AdvancedSettings(%p)"), ppAdvSettings); + HRESULT hr = pIMsTscAx->get_AdvancedSettings(ppAdvSettings); + dbgprintf(TEXT("IMsTscAx::get_AdvancedSettings -> %08X, pAdvSettings = %p"), hr, *ppAdvSettings); + + if(SUCCEEDED(hr)) + *ppAdvSettings = new CAdvancedSettings(*ppAdvSettings); + + return hr; + } + + virtual HRESULT __stdcall get_Debugger(IMsTscDebug ** ppDebugger) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::get_Debugger(%p)"), ppDebugger); + HRESULT hr = pIMsTscAx->get_Debugger(ppDebugger); + dbgprintf(TEXT("IMsTscAx::get_Debugger -> %08X, pDebugger = %p"), hr, *ppDebugger); + return hr; + } + + virtual HRESULT __stdcall Connect() + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::Connect()")); + HRESULT hr = pIMsTscAx->Connect(); + dbgprintf(TEXT("IMsTscAx::Connect -> %08X"), hr); + return hr; + } + + virtual HRESULT __stdcall Disconnect() + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::Disconnect()")); + HRESULT hr = pIMsTscAx->Disconnect(); + dbgprintf(TEXT("IMsTscAx::Disconnect -> %08X"), hr); + return hr; + } + + virtual HRESULT __stdcall CreateVirtualChannels(BSTR newVal) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::CreateVirtualChannels(%ls)"), newVal); + HRESULT hr = pIMsTscAx->CreateVirtualChannels(newVal); + dbgprintf(TEXT("IMsTscAx::CreateVirtualChannels -> %08X"), hr); + return hr; + } + + virtual HRESULT __stdcall SendOnVirtualChannel(BSTR chanName, BSTR ChanData) + { + IMsTscAx * pIMsTscAx = getIMsTscAx(); + dbgprintf(TEXT("IMsTscAx::SendOnVirtualChannel(%ls, %p)"), chanName, ChanData); + HRESULT hr = pIMsTscAx->SendOnVirtualChannel(chanName, ChanData); + dbgprintf(TEXT("IMsTscAx::SendOnVirtualChannel -> %08X"), hr); + return hr; + } + + /* IMsRdpClient */ + public: + virtual HRESULT __stdcall put_ColorDepth(long pcolorDepth) + { + IMsRdpClient * pIMsRdpClient = getIMsRdpClient(); + dbgprintf(TEXT("IMsRdpClient::put_ColorDepth(%ld)"), pcolorDepth); + HRESULT hr = pIMsRdpClient->put_ColorDepth(pcolorDepth); + dbgprintf(TEXT("IMsRdpClient::put_ColorDepth -> %08X"), hr); + return hr; + } + + virtual HRESULT __stdcall get_ColorDepth(long * pcolorDepth) + { + IMsRdpClient * pIMsRdpClient = getIMsRdpClient(); + dbgprintf(TEXT("IMsRdpClient::get_ColorDepth(%p)"), pcolorDepth); + HRESULT hr = pIMsRdpClient->get_ColorDepth(pcolorDepth); + dbgprintf(TEXT("IMsRdpClient::get_ColorDepth -> %08X, colorDepth = %ld"), hr, *pcolorDepth); + return hr; + } + + virtual HRESULT __stdcall get_AdvancedSettings2(IMsRdpClientAdvancedSettings ** ppAdvSettings) + { + IMsRdpClient * pIMsRdpClient = getIMsRdpClient(); + dbgprintf(TEXT("IMsRdpClient::get_AdvancedSettings2(%p)"), ppAdvSettings); + HRESULT hr = pIMsRdpClient->get_AdvancedSettings2(ppAdvSettings); + dbgprintf(TEXT("IMsRdpClient::get_AdvancedSettings2 -> %08X, pAdvSettings = %p"), hr, *ppAdvSettings); + + if(SUCCEEDED(hr)) + *ppAdvSettings = new CAdvancedSettings(*ppAdvSettings); + + return hr; + } + + virtual HRESULT __stdcall get_SecuredSettings2(IMsRdpClientSecuredSettings ** ppSecuredSettings) + { + IMsRdpClient * pIMsRdpClient = getIMsRdpClient(); + dbgprintf(TEXT("IMsRdpClient::get_SecuredSettings2(%p)"), ppSecuredSettings); + HRESULT hr = pIMsRdpClient->get_SecuredSettings2(ppSecuredSettings); + dbgprintf(TEXT("IMsRdpClient::get_SecuredSettings2 -> %08X, pSecuredSettings = %p"), hr, *ppSecuredSettings); + return hr; + } + + virtual HRESULT __stdcall get_ExtendedDisconnectReason(ExtendedDisconnectReasonCode * pExtendedDisconnectReason) + { + IMsRdpClient * pIMsRdpClient = getIMsRdpClient(); + dbgprintf(TEXT("IMsRdpClient::get_ExtendedDisconnectReason(%p)"), pExtendedDisconnectReason); + HRESULT hr = pIMsRdpClient->get_ExtendedDisconnectReason(pExtendedDisconnectReason); + dbgprintf(TEXT("IMsRdpClient::get_ExtendedDisconnectReason -> %08X, ExtendedDisconnectReason = %u"), hr, *pExtendedDisconnectReason); + return hr; + } + + virtual HRESULT __stdcall put_FullScreen(VARIANT_BOOL pfFullScreen) + { + IMsRdpClient * pIMsRdpClient = getIMsRdpClient(); + dbgprintf(TEXT("IMsRdpClient::put_FullScreen(%s)"), BooleanToString(pfFullScreen)); + HRESULT hr = pIMsRdpClient->put_FullScreen(pfFullScreen); + dbgprintf(TEXT("IMsRdpClient::put_FullScreen -> %08X"), hr); + return hr; + } + + virtual HRESULT __stdcall get_FullScreen(VARIANT_BOOL * pfFullScreen) + { + IMsRdpClient * pIMsRdpClient = getIMsRdpClient(); + dbgprintf(TEXT("IMsRdpClient::get_FullScreen(%p)"), pfFullScreen); + HRESULT hr = pIMsRdpClient->get_FullScreen(pfFullScreen); + dbgprintf(TEXT("IMsRdpClient::get_FullScreen -> %08X, pfFullScreen = %s"), hr, BooleanToString(*pfFullScreen)); + return hr; + } + + virtual HRESULT __stdcall SetVirtualChannelOptions(BSTR chanName, long chanOptions) + { + IMsRdpClient * pIMsRdpClient = getIMsRdpClient(); + dbgprintf(TEXT("IMsRdpClient::SetVirtualChannelOptions(%ls, %08X)"), chanName, chanOptions); + HRESULT hr = pIMsRdpClient->SetVirtualChannelOptions(chanName, chanOptions); + dbgprintf(TEXT("IMsRdpClient::SetVirtualChannelOptions -> %08X"), hr); + return hr; + } + + virtual HRESULT __stdcall GetVirtualChannelOptions(BSTR chanName, long * pChanOptions) + { + IMsRdpClient * pIMsRdpClient = getIMsRdpClient(); + dbgprintf(TEXT("IMsRdpClient::GetVirtualChannelOptions(%ls, %p)"), chanName, pChanOptions); + HRESULT hr = pIMsRdpClient->GetVirtualChannelOptions(chanName, pChanOptions); + dbgprintf(TEXT("IMsRdpClient::GetVirtualChannelOptions -> %08X, ChanOptions = %08X"), hr, *pChanOptions); + return hr; + } + + virtual HRESULT __stdcall RequestClose(ControlCloseStatus * pCloseStatus) + { + IMsRdpClient * pIMsRdpClient = getIMsRdpClient(); + dbgprintf(TEXT("IMsRdpClient::RequestClose(%p)"), pCloseStatus); + HRESULT hr = pIMsRdpClient->RequestClose(pCloseStatus); + dbgprintf(TEXT("IMsRdpClient::RequestClose -> %08X, CloseStatus = %ld"), hr, *pCloseStatus); + return hr; + } + + /* IMsRdpClient2 */ + public: + virtual HRESULT __stdcall get_AdvancedSettings3(IMsRdpClientAdvancedSettings2 ** ppAdvSettings) + { + IMsRdpClient2 * pIMsRdpClient2 = getIMsRdpClient2(); + dbgprintf(TEXT("IMsRdpClient2::get_AdvancedSettings3(%p)"), ppAdvSettings); + HRESULT hr = pIMsRdpClient2->get_AdvancedSettings3(ppAdvSettings); + dbgprintf(TEXT("IMsRdpClient2::get_AdvancedSettings3 -> %08X, pAdvSettings = %p"), hr, *ppAdvSettings); + + if(SUCCEEDED(hr)) + *ppAdvSettings = new CAdvancedSettings(*ppAdvSettings); + + return hr; + } + + virtual HRESULT __stdcall put_ConnectedStatusText(BSTR pConnectedStatusText) + { + IMsRdpClient2 * pIMsRdpClient2 = getIMsRdpClient2(); + dbgprintf(TEXT("IMsRdpClient2::put_ConnectedStatusText(%ls)"), pConnectedStatusText); + HRESULT hr = pIMsRdpClient2->put_ConnectedStatusText(pConnectedStatusText); + dbgprintf(TEXT("IMsRdpClient2::put_ConnectedStatusText -> %08X"), hr); + return hr; + } + + virtual HRESULT __stdcall get_ConnectedStatusText(BSTR * pConnectedStatusText) + { + IMsRdpClient2 * pIMsRdpClient2 = getIMsRdpClient2(); + dbgprintf(TEXT("IMsRdpClient2::get_ConnectedStatusText(%p)"), pConnectedStatusText); + HRESULT hr = pIMsRdpClient2->get_ConnectedStatusText(pConnectedStatusText); + dbgprintf(TEXT("IMsRdpClient2::get_ConnectedStatusText -> %08X, ConnectedStatusText = %ls"), hr, *pConnectedStatusText); + return hr; + } + + /* IMsRdpClient3 */ + public: + virtual HRESULT __stdcall get_AdvancedSettings4(IMsRdpClientAdvancedSettings3 ** ppAdvSettings) + { + IMsRdpClient3 * pIMsRdpClient3 = getIMsRdpClient3(); + dbgprintf(TEXT("IMsRdpClient3::get_AdvancedSettings4(%p)"), ppAdvSettings); + HRESULT hr = pIMsRdpClient3->get_AdvancedSettings4(ppAdvSettings); + dbgprintf(TEXT("IMsRdpClient3::get_AdvancedSettings4 -> %08X, pAdvSettings = %p"), hr, *ppAdvSettings); + + if(SUCCEEDED(hr)) + *ppAdvSettings = new CAdvancedSettings(*ppAdvSettings); + + return hr; + } + + /* IMsRdpClient4 */ + public: + virtual HRESULT __stdcall get_AdvancedSettings5(IMsRdpClientAdvancedSettings4 ** ppAdvSettings5) + { + IMsRdpClient4 * pIMsRdpClient4 = getIMsRdpClient4(); + dbgprintf(TEXT("IMsRdpClient4::get_AdvancedSettings5(%p)"), ppAdvSettings5); + HRESULT hr = pIMsRdpClient4->get_AdvancedSettings5(ppAdvSettings5); + dbgprintf(TEXT("IMsRdpClient4::get_AdvancedSettings5 -> %08X, pAdvSettings5 = %p"), hr, *ppAdvSettings5); + + if(SUCCEEDED(hr)) + *ppAdvSettings5 = new CAdvancedSettings(*ppAdvSettings5); + + return hr; + } + + /* IMsTscNonScriptable */ + public: + virtual HRESULT __stdcall put_ClearTextPassword(BSTR _arg1) + { + IMsTscNonScriptable * pIMsTscNonScriptable = getIMsTscNonScriptable(); + dbgprintf(TEXT("IMsTscNonScriptable::put_ClearTextPassword(%ls)"), _arg1); + HRESULT hr = pIMsTscNonScriptable->put_ClearTextPassword(_arg1); + dbgprintf(TEXT("IMsTscNonScriptable::put_ClearTextPassword -> %08X"), hr); + return hr; + } + + virtual HRESULT __stdcall put_PortablePassword(BSTR pPortablePass) + { + IMsTscNonScriptable * pIMsTscNonScriptable = getIMsTscNonScriptable(); + dbgprintf(TEXT("IMsTscNonScriptable::put_PortablePassword(%ls)"), pPortablePass); + HRESULT hr = pIMsTscNonScriptable->put_PortablePassword(pPortablePass); + dbgprintf(TEXT("IMsTscNonScriptable::put_PortablePassword -> %08X"), hr); + return hr; + } + + virtual HRESULT __stdcall get_PortablePassword(BSTR * pPortablePass) + { + IMsTscNonScriptable * pIMsTscNonScriptable = getIMsTscNonScriptable(); + dbgprintf(TEXT("IMsTscNonScriptable::get_PortablePassword(%p)"), pPortablePass); + HRESULT hr = pIMsTscNonScriptable->get_PortablePassword(pPortablePass); + dbgprintf(TEXT("IMsTscNonScriptable::get_PortablePassword -> %08X, PortablePass = %ls"), hr, *pPortablePass); + return hr; + } + + virtual HRESULT __stdcall put_PortableSalt(BSTR pPortableSalt) + { + IMsTscNonScriptable * pIMsTscNonScriptable = getIMsTscNonScriptable(); + dbgprintf(TEXT("IMsTscNonScriptable::put_PortableSalt(%ls)"), pPortableSalt); + HRESULT hr = pIMsTscNonScriptable->put_PortableSalt(pPortableSalt); + dbgprintf(TEXT("IMsTscNonScriptable::put_PortableSalt -> %08X"), hr); + return hr; + } + + virtual HRESULT __stdcall get_PortableSalt(BSTR * pPortableSalt) + { + IMsTscNonScriptable * pIMsTscNonScriptable = getIMsTscNonScriptable(); + dbgprintf(TEXT("IMsTscNonScriptable::get_PortableSalt()"), pPortableSalt); + HRESULT hr = pIMsTscNonScriptable->get_PortableSalt(pPortableSalt); + dbgprintf(TEXT("IMsTscNonScriptable::get_PortableSalt -> %08X, PortableSalt = %ls"), hr, *pPortableSalt); + return hr; + } + + virtual HRESULT __stdcall put_BinaryPassword(BSTR pBinaryPassword) + { + IMsTscNonScriptable * pIMsTscNonScriptable = getIMsTscNonScriptable(); + dbgprintf(TEXT("IMsTscNonScriptable::put_BinaryPassword(%p)"), pBinaryPassword); + HRESULT hr = pIMsTscNonScriptable->put_BinaryPassword(pBinaryPassword); + dbgprintf(TEXT("IMsTscNonScriptable::put_BinaryPassword -> %08X"), hr); + return hr; + } + + virtual HRESULT __stdcall get_BinaryPassword(BSTR * pBinaryPassword) + { + IMsTscNonScriptable * pIMsTscNonScriptable = getIMsTscNonScriptable(); + dbgprintf(TEXT("IMsTscNonScriptable::get_BinaryPassword()"), pBinaryPassword); + HRESULT hr = pIMsTscNonScriptable->get_BinaryPassword(pBinaryPassword); + dbgprintf(TEXT("IMsTscNonScriptable::get_BinaryPassword -> %08X, BinaryPassword = %ls"), hr, *pBinaryPassword); + return hr; + } + + virtual HRESULT __stdcall put_BinarySalt(BSTR pSalt) + { + IMsTscNonScriptable * pIMsTscNonScriptable = getIMsTscNonScriptable(); + dbgprintf(TEXT("IMsTscNonScriptable::put_BinarySalt(%p)"), pSalt); + HRESULT hr = pIMsTscNonScriptable->put_BinarySalt(pSalt); + dbgprintf(TEXT("IMsTscNonScriptable::put_BinarySalt -> %08X"), hr); + return hr; + } + + virtual HRESULT __stdcall get_BinarySalt(BSTR * pSalt) + { + IMsTscNonScriptable * pIMsTscNonScriptable = getIMsTscNonScriptable(); + dbgprintf(TEXT("IMsTscNonScriptable::get_BinarySalt()"), pSalt); + HRESULT hr = pIMsTscNonScriptable->get_BinarySalt(pSalt); + dbgprintf(TEXT("IMsTscNonScriptable::get_BinarySalt -> %08X, pSalt = %ls"), hr, *pSalt); + return hr; + } + + virtual HRESULT __stdcall ResetPassword() + { + IMsTscNonScriptable * pIMsTscNonScriptable = getIMsTscNonScriptable(); + dbgprintf(TEXT("IMsTscNonScriptable::ResetPassword()")); + HRESULT hr = pIMsTscNonScriptable->ResetPassword(); + dbgprintf(TEXT("IMsTscNonScriptable::ResetPassword -> %08X"), hr); + return hr; + } + + + /* IMsRdpClientNonScriptable */ + public: + virtual HRESULT __stdcall IMsRdpClientNonScriptable::NotifyRedirectDeviceChange(UINT_PTR wParam, LONG_PTR lParam) + { + IMsRdpClientNonScriptable * pIMsRdpClientNonScriptable = getIMsRdpClientNonScriptable(); + dbgprintf(TEXT("IMsRdpClientNonScriptable::NotifyRedirectDeviceChange(%p, %p)"), wParam, lParam); + HRESULT hr = pIMsRdpClientNonScriptable->NotifyRedirectDeviceChange(wParam, lParam); + dbgprintf(TEXT("IMsRdpClientNonScriptable::NotifyRedirectDeviceChange -> %08X"), hr); + return hr; + } + + virtual HRESULT __stdcall IMsRdpClientNonScriptable::SendKeys(long numKeys, VARIANT_BOOL * pbArrayKeyUp, long * plKeyData) // TBD + { + IMsRdpClientNonScriptable * pIMsRdpClientNonScriptable = getIMsRdpClientNonScriptable(); + dbgprintf(TEXT("IMsRdpClientNonScriptable::SendKeys(%ld, %p, %p)"), numKeys, pbArrayKeyUp, plKeyData); + HRESULT hr = pIMsRdpClientNonScriptable->SendKeys(numKeys, pbArrayKeyUp, plKeyData); + dbgprintf(TEXT("IMsRdpClientNonScriptable::SendKeys -> %08X"), hr); + return hr; + } + + /* IMsRdpClientNonScriptable2 */ + public: + virtual HRESULT __stdcall IMsRdpClientNonScriptable2::put_UIParentWindowHandle(wireHWND phwndUIParentWindowHandle) + { + IMsRdpClientNonScriptable2 * pIMsRdpClientNonScriptable2 = getIMsRdpClientNonScriptable2(); + dbgprintf(TEXT("IMsRdpClientNonScriptable2::put_UIParentWindowHandle(%p)"), phwndUIParentWindowHandle); + HRESULT hr = pIMsRdpClientNonScriptable2->put_UIParentWindowHandle(phwndUIParentWindowHandle); + dbgprintf(TEXT("IMsRdpClientNonScriptable2::put_UIParentWindowHandle -> %08X"), hr); + return hr; + } + + virtual HRESULT __stdcall IMsRdpClientNonScriptable2::get_UIParentWindowHandle(wireHWND * phwndUIParentWindowHandle) + { + IMsRdpClientNonScriptable2 * pIMsRdpClientNonScriptable2 = getIMsRdpClientNonScriptable2(); + dbgprintf(TEXT("IMsRdpClientNonScriptable2::get_UIParentWindowHandle(%p)"), phwndUIParentWindowHandle); + HRESULT hr = pIMsRdpClientNonScriptable2->get_UIParentWindowHandle(phwndUIParentWindowHandle); + dbgprintf(TEXT("IMsRdpClientNonScriptable2::get_UIParentWindowHandle -> %08X, hwndUIParentWindowHandle = %p"), hr, *phwndUIParentWindowHandle); + return hr; + } + + /* + { + * p = m_; + dbgprintf(TEXT("::()"), ); + HRESULT hr = p->(); + dbgprintf(TEXT(":: -> %08X, "), hr, ); + return hr; + } + */ + }; + + class ClassFactory: public IClassFactory2 + { + private: + LONG m_refCount; + IUnknown * m_IUnknown; + IClassFactory * m_IClassFactory; + IClassFactory2 * m_IClassFactory2; + + IClassFactory * getIClassFactory() + { + if(m_IClassFactory) + return m_IClassFactory; + + if(m_IClassFactory2) + m_IClassFactory = m_IClassFactory2; + + if(m_IClassFactory) + { + m_IClassFactory->AddRef(); + return m_IClassFactory; + } + + m_IUnknown->QueryInterface(&m_IClassFactory); + return m_IClassFactory; + } + + IClassFactory2 * getIClassFactory2() + { + if(m_IClassFactory2) + return m_IClassFactory2; + + m_IUnknown->QueryInterface(&m_IClassFactory2); + return m_IClassFactory2; + } + + public: + ClassFactory(IUnknown * pUnknwn): + m_refCount(1), + m_IUnknown(pUnknwn), + m_IClassFactory(NULL), + m_IClassFactory2(NULL) + { + m_IUnknown->AddRef(); + } + + ~ClassFactory() + { + if(m_IUnknown) + m_IUnknown->Release(); + + if(m_IClassFactory) + m_IClassFactory->Release(); + + if(m_IClassFactory2) + m_IClassFactory2->Release(); + } + + /* IUnknown */ + public: + virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void ** ppvObject) + { + HRESULT hr; + IUnknown * pvObject = NULL; + + dbgprintf(TEXT("IUnknown::QueryInterface(%ls, %p)"), UUIDToString(riid).c_str(), ppvObject); + +#define QIBEGIN() \ + if(riid == IID_IUnknown) \ + { \ + hr = S_OK; \ + pvObject = (IUnknown *)(this); \ + } + +#define QI(I) \ + else if(riid == IID_ ## I) \ + { \ + if(m_ ## I) \ + { \ + m_ ## I->AddRef(); \ + hr = S_OK; \ + } \ + else \ + { \ + hr = m_IUnknown->QueryInterface(&m_ ## I); \ + } \ + \ + if(SUCCEEDED(hr)) \ + pvObject = static_cast(this); \ + } + +#define QIEND() \ + else \ + { \ + hr = E_NOINTERFACE; \ + pvObject = NULL; \ + } + + QIBEGIN() + QI(IClassFactory) + QI(IClassFactory2) + QIEND() + +#undef QIBEGIN +#undef QIEND +#undef QI + + if(SUCCEEDED(hr)) + { + assert(pvObject); + pvObject->AddRef(); + } + else + { + assert(pvObject == NULL); + } + + *ppvObject = pvObject; + + dbgprintf(TEXT("IUnknown::QueryInterface -> %08X, ppvObject = %p"), hr, *ppvObject); + return hr; + } + + virtual ULONG STDMETHODCALLTYPE AddRef(void) + { + return InterlockedIncrement(&m_refCount); + } + + virtual ULONG STDMETHODCALLTYPE Release(void) + { + LONG n = InterlockedDecrement(&m_refCount); + + if(n == 0) + delete this; + + return n; + } + + /* IClassFactory */ + public: + virtual HRESULT STDMETHODCALLTYPE CreateInstance(IUnknown * pUnkOuter, REFIID riid, void ** ppvObject) + { + IClassFactory * pIClassFactory = getIClassFactory(); + dbgprintf(TEXT("IClassFactory::CreateInstance(%p, %ls, %p)"), pUnkOuter, UUIDToString(riid).c_str(), ppvObject); + HRESULT hr = pIClassFactory->CreateInstance(NULL, riid, ppvObject); + dbgprintf(TEXT("IClassFactory::CreateInstance -> %08X, pvObject = %p"), hr, *ppvObject); + return CoClass::CreateInstance((IUnknown *)*ppvObject, pUnkOuter, riid, ppvObject); + } + + virtual HRESULT STDMETHODCALLTYPE LockServer(BOOL fLock) + { + IClassFactory * pIClassFactory = getIClassFactory(); + dbgprintf(TEXT("IClassFactory::LockServer(%s)"), BooleanToString(fLock)); + HRESULT hr = pIClassFactory->LockServer(fLock); + dbgprintf(TEXT("IClassFactory::LockServer -> %08X"), hr); + return hr; + } + + /* IClassFactory2 */ + public: + virtual HRESULT STDMETHODCALLTYPE GetLicInfo(LICINFO * pLicInfo) + { + IClassFactory2 * pIClassFactory2 = getIClassFactory2(); + dbgprintf(TEXT("IClassFactory2::GetLicInfo(%p)"), pLicInfo); + HRESULT hr = pIClassFactory2->GetLicInfo(pLicInfo); + dbgprintf(TEXT("IClassFactory2::GetLicInfo -> %08X, LicInfo = %p"), hr, pLicInfo); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE RequestLicKey(DWORD dwReserved, BSTR * pBstrKey) + { + IClassFactory2 * pIClassFactory2 = getIClassFactory2(); + dbgprintf(TEXT("IClassFactory2::RequestLicKey(%lu, %p)"), dwReserved, pBstrKey); + HRESULT hr = pIClassFactory2->RequestLicKey(dwReserved, pBstrKey); + dbgprintf(TEXT("IClassFactory2::RequestLicKey -> %08X, bstrKey = %ls"), hr, *pBstrKey); + return hr; + } + + virtual HRESULT STDMETHODCALLTYPE CreateInstanceLic(IUnknown * pUnkOuter, IUnknown * pUnkReserved, REFIID riid, BSTR bstrKey, PVOID * ppvObj) + { + IClassFactory2 * pIClassFactory2 = getIClassFactory2(); + dbgprintf(TEXT("IClassFactory2::CreateInstanceLic(%p, %p, %ls, %ls, %p)"), pUnkOuter, pUnkReserved, UUIDToString(riid).c_str(), bstrKey, ppvObj); + HRESULT hr = pIClassFactory2->CreateInstanceLic(NULL, pUnkReserved, riid, bstrKey, ppvObj); + dbgprintf(TEXT("IClassFactory2::CreateInstanceLic -> %08X, pvObj = %p"), hr, *ppvObj); + return CoClass::CreateInstance((IUnknown *)*ppvObj, pUnkOuter, riid, ppvObj); + } + }; + + STDAPI DllGetClassObject(IN REFCLSID rclsid, IN REFIID riid, OUT LPVOID * ppv) + { + init(); + + dbgprintf(TEXT("DllGetClassObject(%ls, %ls, %p)"), UUIDToString(rclsid).c_str(), UUIDToString(riid).c_str(), ppv); + HRESULT hr = pfnDllGetClassObject(rclsid, IID_IUnknown, ppv); + dbgprintf(TEXT("DllGetClassObject -> %08X, pv = %p"), hr, *ppv); + + IUnknown * pv = NULL; + + if(SUCCEEDED(hr)) + { + IUnknown * punk = (IUnknown *)*ppv; + + if(rclsid == CLSID_MsTscAx || rclsid == CLSID_MsRdpClient || rclsid == CLSID_MsRdpClient2 || rclsid == CLSID_MsRdpClient3 || rclsid == CLSID_MsRdpClient4) + pv = new ClassFactory(punk); + else + hr = CLASS_E_CLASSNOTAVAILABLE; + + punk->Release(); + } + + if(pv) + { + hr = pv->QueryInterface(riid, ppv); + + if(FAILED(hr)) + pv->Release(); + } + + return hr; + } + + STDAPI DllCanUnloadNow(void) + { + init(); + + dbgprintf(TEXT("DllCanUnloadNow()")); + HRESULT hr = pfnDllCanUnloadNow(); + dbgprintf(TEXT("DllCanUnloadNow -> %08X"), hr); + + return hr; + } + + STDAPI_(ULONG) DllGetTscCtlVer(void) + { + init(); + + dbgprintf(TEXT("DllGetTscCtlVer()")); + ULONG ul = pfnDllGetTscCtlVer(); + dbgprintf(TEXT("DllGetTscCtlVer-> %08X"), ul); + + return ul; + } +} + +// EOF diff --git a/reactos/base/applications/tsclient/porting-tools/mstscax/mstscax.def b/reactos/base/applications/tsclient/porting-tools/mstscax/mstscax.def index 37dfb4ee9dd..f10498793bb 100644 --- a/reactos/base/applications/tsclient/porting-tools/mstscax/mstscax.def +++ b/reactos/base/applications/tsclient/porting-tools/mstscax/mstscax.def @@ -1,14 +1,14 @@ -LIBRARY mstscax.dll - -EXPORTS - ; OLE inproc server - DllGetClassObject PRIVATE - DllCanUnloadNow PRIVATE - - ; OLE self-registration - ; TODO - - ; Private APIs - DllGetTscCtlVer - -; EOF +LIBRARY mstscax.dll + +EXPORTS + ; OLE inproc server + DllGetClassObject PRIVATE + DllCanUnloadNow PRIVATE + + ; OLE self-registration + ; TODO + + ; Private APIs + DllGetTscCtlVer + +; EOF diff --git a/reactos/base/applications/tsclient/porting-tools/mstscax/mstscax.sln b/reactos/base/applications/tsclient/porting-tools/mstscax/mstscax.sln index 2abaf3db1b1..ca875311dfb 100644 --- a/reactos/base/applications/tsclient/porting-tools/mstscax/mstscax.sln +++ b/reactos/base/applications/tsclient/porting-tools/mstscax/mstscax.sln @@ -1,20 +1,20 @@ -п»ї -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual C++ Express 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mstscax", "mstscax.vcproj", "{933B2293-F12F-4B01-98B4-BF635B8B4F36}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {933B2293-F12F-4B01-98B4-BF635B8B4F36}.Debug|Win32.ActiveCfg = Debug|Win32 - {933B2293-F12F-4B01-98B4-BF635B8B4F36}.Debug|Win32.Build.0 = Debug|Win32 - {933B2293-F12F-4B01-98B4-BF635B8B4F36}.Release|Win32.ActiveCfg = Release|Win32 - {933B2293-F12F-4B01-98B4-BF635B8B4F36}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal +п»ї +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual C++ Express 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mstscax", "mstscax.vcproj", "{933B2293-F12F-4B01-98B4-BF635B8B4F36}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {933B2293-F12F-4B01-98B4-BF635B8B4F36}.Debug|Win32.ActiveCfg = Debug|Win32 + {933B2293-F12F-4B01-98B4-BF635B8B4F36}.Debug|Win32.Build.0 = Debug|Win32 + {933B2293-F12F-4B01-98B4-BF635B8B4F36}.Release|Win32.ActiveCfg = Release|Win32 + {933B2293-F12F-4B01-98B4-BF635B8B4F36}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/reactos/base/applications/tsclient/porting-tools/mstscax/mstscax.vcproj b/reactos/base/applications/tsclient/porting-tools/mstscax/mstscax.vcproj index 7e3def8edf7..faedc3958a1 100644 --- a/reactos/base/applications/tsclient/porting-tools/mstscax/mstscax.vcproj +++ b/reactos/base/applications/tsclient/porting-tools/mstscax/mstscax.vcproj @@ -1,229 +1,229 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/reactos/base/applications/tsclient/porting-tools/mstscax/stdafx.cpp b/reactos/base/applications/tsclient/porting-tools/mstscax/stdafx.cpp index a27b824da78..fd4f341c7b2 100644 --- a/reactos/base/applications/tsclient/porting-tools/mstscax/stdafx.cpp +++ b/reactos/base/applications/tsclient/porting-tools/mstscax/stdafx.cpp @@ -1 +1 @@ -#include "stdafx.h" +#include "stdafx.h" diff --git a/reactos/base/applications/tsclient/porting-tools/mstscax/stdafx.h b/reactos/base/applications/tsclient/porting-tools/mstscax/stdafx.h index df5b57cc4d0..9c317402891 100644 --- a/reactos/base/applications/tsclient/porting-tools/mstscax/stdafx.h +++ b/reactos/base/applications/tsclient/porting-tools/mstscax/stdafx.h @@ -1,33 +1,33 @@ -#pragma once - -#include -#include -#include - -#include -#include -#include -#include - -#define WIN32_LEAN_AND_MEAN -#define STRICT -#define NOMINMAX - -#include -#include -#include - -#include - -#include - -#import "./rdesktop-core-tester.tlb" \ - exclude("LONG_PTR", "UINT_PTR", "wireHWND", "_RemotableHandle", "__MIDL_IWinTypes_0009") \ - named_guids \ - no_implementation \ - no_smart_pointers \ - raw_dispinterfaces \ - raw_interfaces_only \ - raw_native_types - -// EOF +#pragma once + +#include +#include +#include + +#include +#include +#include +#include + +#define WIN32_LEAN_AND_MEAN +#define STRICT +#define NOMINMAX + +#include +#include +#include + +#include + +#include + +#import "./rdesktop-core-tester.tlb" \ + exclude("LONG_PTR", "UINT_PTR", "wireHWND", "_RemotableHandle", "__MIDL_IWinTypes_0009") \ + named_guids \ + no_implementation \ + no_smart_pointers \ + raw_dispinterfaces \ + raw_interfaces_only \ + raw_native_types + +// EOF diff --git a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/activex.cpp b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/activex.cpp index b4f5efad824..0bb197bcb14 100644 --- a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/activex.cpp +++ b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/activex.cpp @@ -1,6095 +1,6095 @@ -#include "stdafx.h" - -namespace MSTSCLib -{ -#include "mstsclib_h.h" -}; - -namespace MSTSCLib_Redist -{ -// extremely ew, but actually the cleanest way to import the alternate UUIDs -#include "mstsclib_redist_i.c" -}; - -#include "rdesktop/rdesktop.h" -#include "rdesktop/proto.h" - -namespace -{ -#ifdef _MSC_VER -extern "C" char __ImageBase; -#endif - -HMODULE GetCurrentModule() -{ - return reinterpret_cast(&__ImageBase); -} - -} - -namespace -{ - -LONG g_moduleRefCount = 0; - -void lockServer() -{ - InterlockedIncrement(&g_moduleRefCount); -} - -void unlockServer() -{ - InterlockedDecrement(&g_moduleRefCount); -} - -bool canUnloadServer() -{ - return g_moduleRefCount == 0; -} - -} - -namespace -{ - -void FreeLpsz(LPSTR lpsz) -{ - if(lpsz) - delete[] lpsz; -} - -LPSTR AllocLpsz(const CHAR * lpsz, size_t cb) -{ - LPSTR lpszNew = new CHAR[cb + 1]; - - if(lpszNew == NULL) - return NULL; - - CopyMemory(lpszNew, lpsz, cb); - lpszNew[cb] = 0; - - return lpszNew; -} - -LPSTR AllocLpsz(const WCHAR * lpwsz, int cchIn) -{ - int cch = WideCharToMultiByte(CP_ACP, 0, lpwsz, cchIn, NULL, 0, NULL, NULL); - - if(cch <= 0) - return NULL; - - LPSTR lpsz = new CHAR[cch]; - - if(lpsz == NULL) - return NULL; - - cch = WideCharToMultiByte(CP_ACP, 0, lpwsz, cchIn, lpsz, cch, NULL, NULL); - - if(cch <= 0) - { - FreeLpsz(lpsz); - return NULL; - } - - return lpsz; -} - -LPSTR BstrToLpsz(BSTR bstr) -{ - return AllocLpsz(bstr, SysStringLen(bstr)); -} - -BSTR LpszToBstr(LPSTR lpsz) -{ - int cch = MultiByteToWideChar(CP_ACP, 0, lpsz, -1, NULL, 0); - - if(cch <= 0) - return NULL; - - BSTR bstr = SysAllocStringLen(NULL, cch); - - if(bstr == NULL) - return NULL; - - cch = MultiByteToWideChar(CP_ACP, 0, lpsz, -1, bstr, cch); - - if(cch <= 0) - { - SysFreeString(bstr); - return NULL; - } - - return bstr; -} - -} - -namespace -{ - -template T aligndown(const T& X, const U& align) -{ - return X & ~(T(align) - 1); -} - -template T alignup(const T& X, const U& align) -{ - return aligndown(X + (align - 1), align); -} - -/* Convert between bitmap formats */ -uint8 * win32_convert_scanlines(int width, int height, int bitcount, int fromalign, int toalign, const uint8 * data, uint8 ** buffer) -{ - // TBD: profile & optimize the most common cases - assert(width > 0); - assert(height); - assert(bitcount && bitcount <= 32); - assert(fromalign <= toalign); - assert(data); - assert(buffer); - - bool flipped = height < 0; - - if(flipped) - height = - height; - - int bytesperrow = alignup(width * bitcount, 8) / 8; - int fromstride = alignup(bytesperrow, fromalign); - int tostride = alignup(bytesperrow, toalign); - assert(fromstride <= tostride); - - int datasize = tostride * height; - - uint8 * dibits = new uint8[datasize]; - - const uint8 * src = data; - uint8 * dest = dibits; - - const int pad = tostride - fromstride; - - assert(pad < 4); - __assume(pad < 4); - - if(flipped) - { - dest += (height - 1) * tostride; - tostride = - tostride; - } - - for(int i = 0; i < height; ++ i) - { - memcpy(dest, src, fromstride); - memset(dest + fromstride, 0, pad); - src += fromstride; - dest += tostride; - } - - *buffer = dibits; - return dibits; -} - -/* Creates bitmaps */ -HBITMAP win32_create_dib(LONG width, LONG height, WORD bitcount, const BYTE * data) -{ - struct b_ - { - BITMAPINFO bmi; - RGBQUAD colormap[256 - ARRAYSIZE(RTL_FIELD_TYPE(BITMAPINFO, bmiColors))]; - } - b; - - b.bmi.bmiHeader.biSize = sizeof(b.bmi.bmiHeader); - b.bmi.bmiHeader.biWidth = width; - b.bmi.bmiHeader.biHeight = height; - b.bmi.bmiHeader.biPlanes = 1; - b.bmi.bmiHeader.biBitCount = bitcount; - b.bmi.bmiHeader.biCompression = BI_RGB; - b.bmi.bmiHeader.biSizeImage = 0; - b.bmi.bmiHeader.biXPelsPerMeter = 0; - b.bmi.bmiHeader.biYPelsPerMeter = 0; - - if(bitcount > 8) - { - b.bmi.bmiHeader.biClrUsed = 0; - b.bmi.bmiHeader.biClrImportant = 0; - } - else - { - b.bmi.bmiHeader.biClrUsed = 2 << bitcount; - b.bmi.bmiHeader.biClrImportant = 2 << bitcount; - - // TODO: palette - } - - // FIXME: beyond ugly - HDC hdc = CreateCompatibleDC(NULL); - - if(hdc == NULL) - return NULL; - - HBITMAP hbm = CreateDIBitmap(hdc, &b.bmi.bmiHeader, CBM_INIT, data, &b.bmi, DIB_RGB_COLORS); - - if(hbm == NULL) - error("CreateDIBitmap %dx%dx%d failed\n", width, height, bitcount); - - DeleteDC(hdc); - return hbm; -} - -/* Creates brushes */ -HBRUSH win32_create_brush(BRUSH * brush, COLORREF fgcolour) -{ - if(brush == NULL) - return (HBRUSH)GetStockObject(NULL_BRUSH); - - switch(brush->style) - { - case BS_SOLID: - case BS_NULL: - case BS_HATCHED: - case BS_PATTERN: - case BS_PATTERN8X8: - break; - - default: - return NULL; - } - - switch(brush->style) - { - case BS_SOLID: - return CreateSolidBrush(fgcolour); - - case BS_HATCHED: - return CreateHatchBrush(brush->pattern[0], fgcolour); - - case BS_NULL: - return (HBRUSH)GetStockObject(NULL_BRUSH); - - case BS_PATTERN: - case BS_PATTERN8X8: - { - uint16 pattern[8]; - - for(size_t i = 0; i < 8; ++ i) - pattern[i] = brush->pattern[i]; - - HBITMAP hpattern = CreateBitmap(8, 8, 1, 1, pattern); - HBRUSH hbr = CreatePatternBrush(hpattern); - DeleteObject(hpattern); - return hbr; - } - - DEFAULT_UNREACHABLE; - } -} -}; - -/* - "sealed" can improve optimizations by asserting a class cannot be derived - from, optimizing out accesses to the v-table from inside the class -*/ -#if defined(_MSC_VER) && _MSC_VER >= 1400 -#define SEALED_ sealed -#else -#define SEALED_ -#endif - - -/* Class that implements the RDP client GUI */ -class RdpClientUI -{ -public: - // TODO: pass the client settings relevant to the GUI here - HRESULT Initialize(HWND hwndParent) - { - // TODO: create the various windows - // TODO: create display window thread - // TODO: create input thread - return E_FAIL; - } - -public: - static BOOL Startup() - { - WNDCLASSEX wcexUI = { sizeof(wcexUI) }; - WNDCLASSEX wcexConsole = { sizeof(wcexConsole) }; - WNDCLASSEX wcexDisplay = { sizeof(wcexDisplay) }; - WNDCLASSEX wcexInput = { sizeof(wcexInput) }; - - HBRUSH nullBrush = (HBRUSH)GetStockObject(HOLLOW_BRUSH); - - wcexUI.lpfnWndProc = NULL; // TODO - wcexUI.hInstance = GetCurrentModule(); - wcexUI.hCursor = LoadCursor(NULL, IDC_ARROW); - wcexUI.hbrBackground = nullBrush; - wcexUI.lpszClassName = TEXT("MissTosca_UI"); - - wcexConsole.style = CS_VREDRAW | CS_HREDRAW; - wcexConsole.lpfnWndProc = NULL; // TODO - wcexConsole.hInstance = GetCurrentModule(); - wcexConsole.hCursor = LoadCursor(NULL, IDC_ARROW); - wcexConsole.hbrBackground = nullBrush; - wcexConsole.lpszClassName = TEXT("MissTosca_Console"); - - wcexDisplay.style = CS_VREDRAW | CS_HREDRAW; - wcexDisplay.lpfnWndProc = NULL; // TODO - wcexDisplay.hInstance = GetCurrentModule(); - wcexDisplay.hCursor = LoadCursor(NULL, IDC_ARROW); - wcexDisplay.hbrBackground = nullBrush; - wcexDisplay.lpszClassName = TEXT("MissTosca_Display"); - - wcexInput.style = CS_VREDRAW | CS_HREDRAW; - wcexInput.lpfnWndProc = NULL; // TODO - wcexInput.hInstance = GetCurrentModule(); - wcexInput.hCursor = NULL; - wcexInput.hbrBackground = nullBrush; - wcexInput.lpszClassName = TEXT("MissTosca_Input"); - - return - RegisterClassEx(&wcexUI) && - RegisterClassEx(&wcexConsole) && - RegisterClassEx(&wcexDisplay) && - RegisterClassEx(&wcexInput); - } - - static void Shutdown() - { - // TODO - } - - /* - This is the main UI window. It's the direct child of the control - window, it fills its whole extent and it contains the scrollbars. - When activated, it will move keyboard focus to the input window - */ -private: - HWND m_uiWindow; - LONG m_scrollHPos; - LONG m_scrollVPos; - - LRESULT UIWindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam) - { - switch(uMsg) - { - // Keep the keyboard focus on the input window - case WM_ACTIVATE: - switch(LOWORD(wParam)) - { - case WA_INACTIVE: - break; - - case WA_ACTIVE: - case WA_CLICKACTIVE: - if(!HIWORD(wParam)) - SetFocus(m_inputWindow); - } - - return 0; - - // Resized: rearrange children windows, adjust scrollbars - case WM_SIZE: - { - if(IsIconic(m_uiWindow)) - break; - - RECT rcClient; - GetWindowRect(m_uiWindow, &rcClient); - - if(m_smartSizing) - { - // we are not supposed to maintain aspect ratio. Container has to do that - m_consoleX = 0; - m_consoleY = 0; - m_consoleWidth = rcClient.right; - m_consoleHeight = rcClient.bottom; - } - else - { - // center horizontally, no horizontal scrollbar - if(rcClient.right >= m_consoleWidth) - m_consoleX = (m_consoleWidth - rcClient.right) / 2; - - // center vertically, no vertical scrollbar - if(rcClient.bottom >= m_consoleHeight) - m_consoleY = (m_consoleHeight - rcClient.right) / 2; - } - - SCROLLINFO scroll = { sizeof(scroll), SIF_ALL, 0 }; - - // update the horizontal scrollbar - scroll.nMax = m_consoleWidth; - scroll.nPage = rcClient.right; - scroll.nPos = 0 - m_consoleX; - SetScrollInfo(m_uiWindow, SB_HORZ, &scroll, TRUE); - - // update the vertical scrollbar - scroll.nMax = m_consoleHeight; - scroll.nPage = rcClient.bottom; - scroll.nPos = 0 - m_consoleY; - SetScrollInfo(m_uiWindow, SB_VERT, &scroll, TRUE); - - // move/resize the console window - MoveWindow(m_consoleWindow, m_consoleX, m_consoleY, m_consoleWidth, m_consoleHeight, TRUE); - } - - return 0; - - case WM_HSCROLL: - { - SCROLLINFO scroll = { sizeof(scroll), SIF_TRACKPOS }; - GetScrollInfo(m_uiWindow, SB_HORZ, &scroll); - m_consoleX = - scroll.nTrackPos; - MoveWindow(m_consoleWindow, m_consoleX, m_consoleY, m_consoleWidth, m_consoleHeight, TRUE); - } - - return 0; - - case WM_VSCROLL: - { - SCROLLINFO scroll = { sizeof(scroll), SIF_TRACKPOS }; - GetScrollInfo(m_uiWindow, SB_VERT, &scroll); - m_consoleY = - scroll.nTrackPos; - MoveWindow(m_consoleWindow, m_consoleX, m_consoleY, m_consoleWidth, m_consoleHeight, TRUE); - } - - return 0; - - default: - break; - } - - return DefWindowProc(m_uiWindow, uMsg, wParam, lParam); - } - - /* - This is the full-screen title bar. It's displayed at the top of the - main UI window while in full-screen mode, and it contains two toolbars - with the pin, minimize, restore and close buttons - */ - HWND m_fullScreenBarWindow; - - /* - This is the console window. It has the same extent as the display on - the remote computer, or it fills the UI window in smart resizing mode, - and it contains the input and display windows - */ -private: - HWND m_consoleWindow; - LONG m_consoleX; - LONG m_consoleY; - LONG m_consoleWidth; - LONG m_consoleHeight; - bool m_smartSizing; - - LRESULT ConsoleWindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam) - { - switch(uMsg) - { - case WM_SIZE: - { - RECT rcClient; - GetClientRect(m_consoleWindow, &rcClient); - - MoveWindow(m_inputWindow, 0, 0, rcClient.right, rcClient.bottom, TRUE); - MoveWindow(m_displayWindow, 0, 0, rcClient.right, rcClient.bottom, TRUE); - } - - return 0; - - default: - break; - } - - return DefWindowProc(m_consoleWindow, uMsg, wParam, lParam); - } - - /* - This is the display window. It represents the virtual display of the - remote computer. It completely fills its parent, the console window, - and it runs in its own thread for performance reasons - */ -private: - HWND m_displayWindow; - LONG m_displayBufferWidth; - LONG m_displayBufferHeight; - HDC m_displayBuffer; - void * m_displayBufferRaw; - int m_displayBufferSave; - int m_displayBufferBitDepth; - int m_displayBufferByteDepth; - int m_displayBufferStride; - RECT m_displayBufferClip; - CRITICAL_SECTION m_displayBufferMutex; - - LRESULT DisplayWindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam) - { - switch(uMsg) - { - case WM_DESTROY: - PostQuitMessage(0); - return 0; - - case WM_PRINTCLIENT: - if(wParam == 0) - break; - - case WM_PAINT: - { - HDC hdc = (HDC)wParam; - - EnterCriticalSection(&m_displayBufferMutex); - - if(hdc) - { - RECT rc; - GetClientRect(m_displayWindow, &rc); - BitBlt(hdc, 0, 0, rc.right, rc.bottom, m_displayBuffer, 0, 0, SRCCOPY); - } - else - { - PAINTSTRUCT ps; - hdc = BeginPaint(m_displayWindow, &ps); - - if(!m_smartSizing) - { - BitBlt - ( - hdc, - ps.rcPaint.left, - ps.rcPaint.top, - ps.rcPaint.right - ps.rcPaint.left, - ps.rcPaint.bottom - ps.rcPaint.top, - m_displayBuffer, - ps.rcPaint.left, - ps.rcPaint.top, - SRCCOPY - ); - } - else - { - // bleh. There has to be a better way - SetStretchBltMode(hdc, HALFTONE); - - StretchBlt - ( - hdc, - 0, - 0, - m_consoleWidth, - m_consoleHeight, - m_displayBuffer, - 0, - 0, - m_displayBufferWidth, - m_displayBufferHeight, - SRCCOPY - ); - } - - EndPaint(m_displayWindow, &ps); - } - - LeaveCriticalSection(&m_displayBufferMutex); - } - - return 0; - - default: - break; - } - - return DefWindowProc(m_displayWindow, uMsg, wParam, lParam); - } - - /* Screen repainting */ - void Display_RepaintRect(const RECT * lprc) - { - if(m_smartSizing) - return Display_RepaintAll(); - - RECT rcDamage; - IntersectRect(&rcDamage, lprc, &m_displayBufferClip); - InvalidateRect(m_displayWindow, &rcDamage, FALSE); - } - - void Display_RepaintArea(int x, int y, int cx, int cy) - { - if(m_smartSizing) - return Display_RepaintAll(); - - RECT rcDamage; - rcDamage.left = x; - rcDamage.top = y; - rcDamage.right = x + cx; - rcDamage.bottom = y + cy; - Display_RepaintRect(&rcDamage); - } - - void Display_RepaintPolygon(POINT * point, int npoints, int linewidth) - { - if(m_smartSizing) - return Display_RepaintAll(); - - RECT rcDamage; - - rcDamage.left = MAXLONG; - rcDamage.top = MAXLONG; - rcDamage.right = 0; - rcDamage.bottom = 0; - - for(int i = 0; i < npoints; ++ i) - { - if(point[i].x < rcDamage.left) - rcDamage.left = point[i].x; - - if(point[i].y < rcDamage.top) - rcDamage.top = point[i].y; - - if(point[i].x > rcDamage.right) - rcDamage.right = point[i].x; - - if(point[i].y > rcDamage.bottom) - rcDamage.bottom = point[i].y; - } - - InflateRect(&rcDamage, linewidth, linewidth); - Display_RepaintRect(&rcDamage); - } - - void Display_RepaintAll() - { - InvalidateRgn(m_displayWindow, NULL, FALSE); - } - -public: - void Display_SetClip(int x, int y, int cx, int cy) - { - m_displayBufferClip.left = x; - m_displayBufferClip.top = y; - m_displayBufferClip.right = x + cx + 1; - m_displayBufferClip.bottom = y + cy + 1; - - HRGN hrgn = CreateRectRgnIndirect(&m_displayBufferClip); - SelectClipRgn(m_displayBuffer, hrgn); - DeleteObject(hrgn); - } - - void Display_ResetClip() - { - m_displayBufferClip.left = 0; - m_displayBufferClip.top = 0; - m_displayBufferClip.right = m_displayBufferWidth; - m_displayBufferClip.bottom = m_displayBufferHeight; - SelectClipRgn(m_displayBuffer, NULL); - } - - void Display_PaintBitmap(int x, int y, int cx, int cy, int width, int height, uint8 * data) - { - GdiFlush(); - - int fromstride = alignup(width * m_displayBufferByteDepth, 4); - int sizex = cx * m_displayBufferByteDepth; - - const uint8 * src = data; - - uint8 * dst = - (uint8 *)m_displayBufferRaw + - (m_displayBufferHeight - y - cy) * m_displayBufferStride + - x * m_displayBufferByteDepth; - - for(int i = 0; i < cy; ++ i) - { - memcpy(dst, src, sizex); - src += fromstride; - dst += m_displayBufferStride; - } - - Display_RepaintArea(x, y, cx, cy); - } - - void Display_DestBlt(uint8 opcode, int x, int y, int cx, int cy) - { - int dcsave = SaveDC(m_displayBuffer); - SelectObject(m_displayBuffer, GetStockObject(BLACK_BRUSH)); - PatBlt(m_displayBuffer, x, y, cx, cy, MAKELONG(0, opcode)); - RestoreDC(m_displayBuffer, dcsave); - Display_RepaintArea(x, y, cx, cy); - } - - void Display_PatBlt(uint8 opcode, int x, int y, int cx, int cy, BRUSH * brush, int bgcolour, int fgcolour) - { - HBRUSH hbr = win32_create_brush(brush, fgcolour); - - int dcsave = SaveDC(m_displayBuffer); - - SetBkColor(m_displayBuffer, bgcolour); - SetTextColor(m_displayBuffer, fgcolour); - SetBrushOrgEx(m_displayBuffer, brush->xorigin, brush->yorigin, NULL); - SelectObject(m_displayBuffer, hbr); - - PatBlt(m_displayBuffer, x, y, cx, cy, MAKELONG(0, opcode)); - - RestoreDC(m_displayBuffer, dcsave); - - DeleteObject(hbr); - - Display_RepaintArea(x, y, cx, cy); - } - - void Display_ScreenBlt(uint8 opcode, int x, int y, int cx, int cy, int srcx, int srcy) - { - BitBlt(m_displayBuffer, x, y, cx, cy, m_displayBuffer, srcx, srcy, MAKELONG(0, opcode)); - Display_RepaintArea(x, y, cx, cy); - } - - void Display_MemBlt(uint8 opcode, int x, int y, int cx, int cy, HBITMAP src, int srcx, int srcy) - { - HDC hdcSrc = CreateCompatibleDC(m_displayBuffer); - HGDIOBJ hOld = SelectObject(hdcSrc, src); - - BitBlt(m_displayBuffer, x, y, cx, cy, hdcSrc, srcx, srcy, MAKELONG(0, opcode)); - - SelectObject(hdcSrc, hOld); - DeleteDC(hdcSrc); - - Display_RepaintArea(x, y, cx, cy); - } - - void Display_TriBlt(uint8 opcode, int x, int y, int cx, int cy, HBITMAP src, int srcx, int srcy, BRUSH * brush, int bgcolour, int fgcolour) - { - // TODO - HDC hdcSrc = CreateCompatibleDC(m_displayBuffer); - HGDIOBJ hOld = SelectObject(hdcSrc, src); - - //SELECT_BRUSH(brush, bgcolour, fgcolour); - - BitBlt(m_displayBuffer, x, y, cx, cy, hdcSrc, srcx, srcy, MAKELONG(0, opcode)); - - //RESET_BRUSH(); - - SelectObject(hdcSrc, hOld); - DeleteDC(hdcSrc); - - Display_RepaintArea(x, y, cx, cy); - } - - void Display_Line(uint8 opcode, int startx, int starty, int endx, int endy, PEN * pen) - { - HPEN hpen = CreatePen(pen->style, pen->width, pen->colour); - - int dcsave = SaveDC(m_displayBuffer); - - SetROP2(m_displayBuffer, opcode); - SelectObject(m_displayBuffer, hpen); - MoveToEx(m_displayBuffer, startx, starty, NULL); - - LineTo(m_displayBuffer, endx, endy); - - RestoreDC(m_displayBuffer, dcsave); - - DeleteObject(hpen); - - RECT rcDamage; - - if(startx < endx) - { - rcDamage.left = startx; - rcDamage.right = endx; - } - else - { - rcDamage.left = endx; - rcDamage.right = startx; - } - - if(starty < endy) - { - rcDamage.top = starty; - rcDamage.bottom = endy; - } - else - { - rcDamage.top = endy; - rcDamage.bottom = starty; - } - - InflateRect(&rcDamage, pen->width, pen->width); - Display_RepaintRect(&rcDamage); - } - - void Display_Rect(int x, int y, int cx, int cy, int colour) - { - HBRUSH hbr = CreateSolidBrush(colour); - - int dcsave = SaveDC(m_displayBuffer); - - SelectObject(m_displayBuffer, hbr); - SelectObject(m_displayBuffer, GetStockObject(NULL_PEN)); - - Rectangle(m_displayBuffer, x, y, x + cx + 1, y + cy + 1); - - RestoreDC(m_displayBuffer, dcsave); - - DeleteObject(hbr); - - Display_RepaintArea(x, y, cx, cy); - } - - void Display_Polygon(uint8 opcode, uint8 fillmode, POINT * point, int npoints, BRUSH * brush, int bgcolour, int fgcolour) - { - HBRUSH hbr = win32_create_brush(brush, fgcolour); - - int dcsave = SaveDC(m_displayBuffer); - - SetBkColor(m_displayBuffer, bgcolour); - SetTextColor(m_displayBuffer, fgcolour); - SetPolyFillMode(m_displayBuffer, fillmode); - SelectObject(m_displayBuffer, hbr); - - Polygon(m_displayBuffer, point, npoints); - - RestoreDC(m_displayBuffer, dcsave); - - Display_RepaintPolygon(point, npoints, 0); - } - - void Display_Polyline(uint8 opcode, POINT * points, int npoints, PEN * pen) - { - POINT last = points[0]; - - for(int i = 1; i < npoints; ++ i) - { - points[i].x += last.x; - points[i].y += last.y; - last = points[i]; - } - - HPEN hpen = CreatePen(pen->style, pen->width, pen->colour); - - int dcsave = SaveDC(m_displayBuffer); - - SetROP2(m_displayBuffer, opcode); - SelectObject(m_displayBuffer, hpen); - - Polyline(m_displayBuffer, points, npoints); - - RestoreDC(m_displayBuffer, dcsave); - - DeleteObject(hpen); - - Display_RepaintPolygon(points, npoints, pen->width); - } - - void Display_Ellypse(uint8 opcode, uint8 fillmode, int x, int y, int cx, int cy, BRUSH * brush, int bgcolour, int fgcolour) - { - // TODO - - Display_RepaintArea(x, y, cx, cy); - } - - // TBD: optimize text drawing - void Display_DrawGlyph(int mixmode, int x, int y, int cx, int cy, HGLYPH glyph, int srcx, int srcy, int bgcolour, int fgcolour) - { - HBITMAP hbmGlyph = (HBITMAP)glyph; - HDC hdcGlyph = CreateCompatibleDC(m_displayBuffer); - HGDIOBJ hOld = SelectObject(hdcGlyph, hbmGlyph); - - int dcsave = SaveDC(m_displayBuffer); - - switch(mixmode) - { - case MIX_TRANSPARENT: - { - /* - ROP is DSPDxax: - - where the glyph (S) is white, D is set to the foreground color (P) - - where the glyph (S) is black, D is left untouched - - This paints a transparent glyph in the specified color - */ - HBRUSH hbr = CreateSolidBrush(fgcolour); - SelectObject(m_displayBuffer, hbr); - BitBlt(m_displayBuffer, x, y, cx, cy, hdcGlyph, srcx, srcy, MAKELONG(0, 0xe2)); - DeleteObject(hbr); - } - - break; - - case MIX_OPAQUE: - { - /* Curiously, glyphs are inverted (white-on-black) */ - SetBkColor(m_displayBuffer, fgcolour); - SetTextColor(m_displayBuffer, bgcolour); - BitBlt(m_displayBuffer, x, y, cx, cy, hdcGlyph, srcx, srcy, SRCCOPY); - } - - break; - } - - RestoreDC(m_displayBuffer, dcsave); - - SelectObject(hdcGlyph, hOld); - DeleteDC(hdcGlyph); - - Display_RepaintArea(x, y, cx, cy); - } - - void Display_DoGlyph(uint8 font, uint8 flags, int mixmode, int& x, int& y, int bgcolour, int fgcolour, const uint8 * ttext, int& idx) - { - FONTGLYPH * glyph; - - glyph = cache_get_font(/*This*/NULL, font, ttext[idx]); - - if(!(flags & TEXT2_IMPLICIT_X)) - { - int xyoffset = ttext[++ idx]; - - if((xyoffset & 0x80)) - { - if (flags & TEXT2_VERTICAL) - y += ttext[idx + 1] | (ttext[idx + 2] << 8); - else - x += ttext[idx + 1] | (ttext[idx + 2] << 8); - - idx += 2; - } - else - { - if (flags & TEXT2_VERTICAL) - y += xyoffset; - else - x += xyoffset; - } - } - - if(glyph) - { - Display_DrawGlyph - ( - mixmode, - x + (short)glyph->offset, - y + (short)glyph->baseline, - glyph->width, - glyph->height, - glyph->pixmap, - 0, - 0, - bgcolour, - fgcolour - ); - - if(flags & TEXT2_IMPLICIT_X) - x += glyph->width; - } - } - - void Display_DrawText - ( - uint8 font, - uint8 flags, - uint8 opcode, - int mixmode, - int x, - int y, - int clipx, - int clipy, - int clipcx, - int clipcy, - int boxx, - int boxy, - int boxcx, - int boxcy, - BRUSH * brush, - int bgcolour, - int fgcolour, - uint8 * text, - uint8 length - ) - { - int i, j; - DATABLOB *entry; - - HBRUSH hbr = CreateSolidBrush(bgcolour); - HGDIOBJ holdbrush = SelectObject(m_displayBuffer, hbr); - HGDIOBJ holdpen = SelectObject(m_displayBuffer, GetStockObject(NULL_PEN)); - - if (boxcx > 1) - Rectangle(m_displayBuffer, boxx, boxy, boxx + boxcx + 1, boxy + boxcy + 1); - else if (mixmode == MIX_OPAQUE) - Rectangle(m_displayBuffer, clipx, clipy, clipx + clipcx + 1, clipy + clipcy + 1); - - SelectObject(m_displayBuffer, holdpen); - SelectObject(m_displayBuffer, holdbrush); - - DeleteObject(hbr); - - if(boxcx > 1) - Display_RepaintArea(boxx, boxy, boxcx, boxcy); - else - Display_RepaintArea(clipx, clipy, clipcx, clipcy); - - /* Paint text, character by character */ - for (i = 0; i < length;) - { - switch (text[i]) - { - case 0xff: - /* At least two bytes needs to follow */ - if (i + 3 > length) - { - warning("Skipping short 0xff command:"); - for (j = 0; j < length; j++) - fprintf(stderr, "%02x ", text[j]); - fprintf(stderr, "\n"); - i = length = 0; - break; - } - cache_put_text(NULL /* TODO */, text[i + 1], text, text[i + 2]); - i += 3; - length -= i; - /* this will move pointer from start to first character after FF command */ - text = &(text[i]); - i = 0; - break; - - case 0xfe: - /* At least one byte needs to follow */ - if (i + 2 > length) - { - warning("Skipping short 0xfe command:"); - for (j = 0; j < length; j++) - fprintf(stderr, "%02x ", text[j]); - fprintf(stderr, "\n"); - i = length = 0; - break; - } - entry = cache_get_text(/*This*/NULL, text[i + 1]); - if (entry->data != NULL) - { - if ((((uint8 *) (entry->data))[1] == 0) - && (!(flags & TEXT2_IMPLICIT_X)) && (i + 2 < length)) - { - if (flags & TEXT2_VERTICAL) - y += text[i + 2]; - else - x += text[i + 2]; - } - for (j = 0; j < entry->size; j++) - Display_DoGlyph(font, flags, mixmode, x, y, bgcolour, fgcolour, ((uint8 *) (entry->data)), j); - } - if (i + 2 < length) - i += 3; - else - i += 2; - length -= i; - /* this will move pointer from start to first character after FE command */ - text = &(text[i]); - i = 0; - break; - - default: - Display_DoGlyph(font, flags, mixmode, x, y, bgcolour, fgcolour, text, i); - i++; - break; - } - } - } - - void Display_SaveDesktop(uint32 offset, int x, int y, int cx, int cy) - { - GdiFlush(); - - uint8 * data = - (uint8 *)m_displayBufferRaw + - x * m_displayBufferByteDepth + - (m_displayBufferHeight - y - cy) * m_displayBufferStride; - - cache_put_desktop - ( - /*This*/NULL, - offset * m_displayBufferByteDepth, - cx, - cy, - m_displayBufferStride, - m_displayBufferByteDepth, - data - ); - } - - void Display_RestoreDesktop(uint32 offset, int x, int y, int cx, int cy) - { - int fromstride = cx * m_displayBufferByteDepth; - - const uint8 * src = cache_get_desktop(/*This*/NULL, offset, cx, cy, m_displayBufferByteDepth); - - uint8 * dst = - (uint8 *)m_displayBufferRaw + - x * m_displayBufferByteDepth + - (m_displayBufferHeight - y - cy) * m_displayBufferStride; - - GdiFlush(); - - for(int i = 0; i < cy; ++ i) - { - memcpy(dst, src, fromstride); - src += fromstride; - dst += m_displayBufferStride; - } - - Display_RepaintArea(x, y, cx, cy); - } - - - void Display_BeginUpdate() - { - EnterCriticalSection(&m_displayBufferMutex); - m_displayBufferSave = SaveDC(m_displayBuffer); - } - - void Display_EndUpdate() - { - RestoreDC(m_displayBuffer, m_displayBufferSave); - LeaveCriticalSection(&m_displayBufferMutex); - } - - /* - This is the input window. It receives the keyboard and mouse input from - the user, and it's the only window that can receive the keyboard focus. - It completely fills its parent, the console window, and it runs in its - own thread for performance reasons and because of technical reasons - involving keyboard hooks in full-screen mode - */ - HWND m_inputWindow; - HCURSOR m_inputCursor; - - LRESULT InputWindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam) - { - switch(uMsg) - { - case WM_DESTROY: - PostQuitMessage(0); - return 0; - - /* Keyboard stuff */ - // TODO: we need a good way to post output cross-thread - case WM_SYSKEYDOWN: - case WM_KEYDOWN: - //rdp_send_input(This, GetMessageTime(), RDP_INPUT_SCANCODE, RDP_KEYPRESS | (lparam & 0x1000000 ? KBD_FLAG_EXT : 0), LOBYTE(HIWORD(lparam)), 0); - break; - - case WM_SYSKEYUP: - case WM_KEYUP: - //rdp_send_input(This, GetMessageTime(), RDP_INPUT_SCANCODE, RDP_KEYRELEASE | (lparam & 0x1000000 ? KBD_FLAG_EXT : 0), LOBYTE(HIWORD(lparam)), 0); - break; - - /* Mouse stuff */ - // Cursor shape - case WM_SETCURSOR: - if(LOWORD(lParam) == HTCLIENT) - { - SetCursor(m_inputCursor); - return TRUE; - } - - break; - - // Movement - case WM_MOUSEMOVE: - //rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_MOVE, LOWORD(lparam), HIWORD(lparam)); - break; - - // Buttons - // TODO: X buttons - case WM_LBUTTONDOWN: - //rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON1 | MOUSE_FLAG_DOWN, LOWORD(lparam), HIWORD(lparam)); - break; - - case WM_RBUTTONDOWN: - //rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON2 | MOUSE_FLAG_DOWN, LOWORD(lparam), HIWORD(lparam)); - break; - - case WM_MBUTTONDOWN: - //rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON3 | MOUSE_FLAG_DOWN, LOWORD(lparam), HIWORD(lparam)); - break; - - case WM_LBUTTONUP: - //rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON1, LOWORD(lparam), HIWORD(lparam)); - break; - - case WM_RBUTTONUP: - //rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON2, LOWORD(lparam), HIWORD(lparam)); - break; - - case WM_MBUTTONUP: - //rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON3, LOWORD(lparam), HIWORD(lparam)); - break; - - // Wheel - case WM_MOUSEWHEEL: - //mstsc_mousewheel(This, (SHORT)HIWORD(wparam), lparam); - break; - } - - return DefWindowProc(m_inputWindow, uMsg, wParam, lParam); - } - -public: -}; - -#pragma warning(push) -#pragma warning(disable: 4584) - -/* The ActiveX control */ -class RdpClient SEALED_: - /* COM basics */ - public IUnknown, - public IDispatch, - - /* ActiveX stuff */ - public IConnectionPointContainer, - public IDataObject, - public IObjectSafety, - public IOleControl, - public IOleInPlaceActiveObject, - public IOleInPlaceObject, - public IOleObject, - public IOleWindow, - public IPersist, - public IPersistPropertyBag, - public IPersistStorage, - public IPersistStreamInit, - public IProvideClassInfo, - public IProvideClassInfo2, - public IQuickActivate, - public IViewObject, - public IViewObject2, - - // NOTE: the original has a vestigial, non-functional implementation of this, which we omit - // ISpecifyPropertyPages - - // Hidden interfaces, not available through QueryInterface - public IConnectionPoint, - - /* RDP client interface */ - public MSTSCLib::IMsRdpClient4, - public MSTSCLib::IMsRdpClientNonScriptable2 - - // NOTE: implemented by inner classes due to requiring distinct IDispatch implementations - // IMsRdpClientAdvancedSettings4 - // IMsRdpClientSecuredSettings -{ -private: - /* An endless amount of COM glue */ - // Reference counting - LONG m_refCount; - -#ifdef _DEBUG - DWORD m_apartmentThreadId; - - bool InsideApartment() const - { - return GetCurrentThreadId() == m_apartmentThreadId; - } -#endif - - // Aggregation support - IUnknown * m_punkOuter; - - class RdpClientInner: public IUnknown - { - private: - RdpClient * Outer() - { - return InnerToOuter(this); - } - - public: - virtual STDMETHODIMP IUnknown::QueryInterface(REFIID riid, void ** ppvObject) - { - return Outer()->queryInterface(riid, ppvObject); - } - - virtual STDMETHODIMP_(ULONG) IUnknown::AddRef() - { - return Outer()->addRef(); - } - - virtual STDMETHODIMP_(ULONG) IUnknown::Release() - { - return Outer()->release(); - } - - } - m_inner; - - // Persistence support - CLSID m_classId; - - // Late binding support - unsigned m_typeLibIndex; - ITypeLib * m_typeLib; - ITypeInfo * m_dispTypeInfo; - - // Event sinks - size_t m_EventSinksCount; - - union - { - MSTSCLib::IMsTscAxEvents * m_EventSinksStatic[1]; - MSTSCLib::IMsTscAxEvents ** m_EventSinks; - }; - - // OLE control glue - HWND m_controlWindow; - IOleClientSite * m_clientSite; - IOleInPlaceSite * m_inPlaceSite; - IOleAdviseHolder * m_adviseHolder; - LONG m_freezeEvents; - bool m_uiActive; - - // UrlMon security - DWORD m_SafetyOptions; - - bool IsSafeForScripting() const - { - return m_SafetyOptions & INTERFACESAFE_FOR_UNTRUSTED_CALLER; - } - - /* Glue to interface to rdesktop-core */ - RdpClientUI * m_clientUI; - RDPCLIENT m_protocolState; - HANDLE m_protocolThread; - HANDLE m_protocolThreadWaitingReconnection; - bool m_reconnectAborted; - bool m_actuallyConnected; - bool m_loggedIn; - - /* Properties */ - // Storage fields - // NOTE: keep sorted by alignment (pointers and handles, integers, enumerations, booleans) - BSTR m_Domain; - BSTR m_UserName; - BSTR m_DisconnectedText; - BSTR m_ConnectingText; - BSTR m_FullScreenTitle; - BSTR m_StartProgram; - BSTR m_WorkDir; - BSTR m_ConnectedStatusText; - BSTR m_ClearTextPassword; // FIXME! dangerous, shouldn't store in cleartext! - BSTR m_RdpdrLocalPrintingDocName; - BSTR m_RdpdrClipCleanTempDirString; - BSTR m_RdpdrClipPasteInfoString; - BSTR m_KeyboardLayoutString; - LPSTR m_Server; - LPSTR m_LoadBalanceInfo; - // TODO: plugin DLLs - HWND m_UIParentWindowHandle; - long m_DesktopWidth; - long m_DesktopHeight; - long m_StartConnected; - long m_ColorDepth; - long m_KeyboardHookMode; - long m_AudioRedirectionMode; - long m_TransportType; - long m_SasSequence; - long m_RDPPort; - long m_HotKeyFullScreen; - long m_HotKeyAltEsc; - long m_HotKeyAltShiftTab; - long m_HotKeyAltSpace; - long m_HotKeyAltTab; - long m_HotKeyCtrlAltDel; - long m_HotKeyCtrlEsc; - long m_orderDrawThresold; - long m_BitmapCacheSize; - long m_BitmapVirtualCacheSize; - long m_NumBitmapCaches; - long m_brushSupportLevel; - long m_minInputSendInterval; - long m_InputEventsAtOnce; - long m_maxEventCount; - long m_keepAliveInternal; - long m_shutdownTimeout; - long m_overallConnectionTimeout; - long m_singleConnectionTimeout; - long m_MinutesToIdleTimeout; - long m_BitmapVirtualCache16BppSize; - long m_BitmapVirtualCache24BppSize; - long m_PerformanceFlags; - long m_MaxReconnectAttempts; - unsigned int m_AuthenticationLevel; - - MSTSCLib::ExtendedDisconnectReasonCode m_ExtendedDisconnectReason; - - bool m_Connected; - bool m_Compress; - bool m_BitmapPersistence; - bool m_allowBackgroundInput; - bool m_ContainerHandledFullScreen; - bool m_DisableRdpdr; - bool m_SecuredSettingsEnabled; - bool m_FullScreen; - bool m_AcceleratorPassthrough; - bool m_ShadowBitmap; - bool m_EncryptionEnabled; - bool m_DedicatedTerminal; - bool m_DisableCtrlAltDel; - bool m_EnableWindowsKey; - bool m_DoubleClickDetect; - bool m_MaximizeShell; - bool m_ScaleBitmapCachesByBpp; - bool m_CachePersistenceActive; - bool m_ConnectToServerConsole; - bool m_SmartSizing; // FIXME: this can be set while the control is connected - bool m_DisplayConnectionBar; - bool m_PinConnectionBar; - bool m_GrabFocusOnConnect; - bool m_RedirectDrives; - bool m_RedirectPrinters; - bool m_RedirectPorts; - bool m_RedirectSmartCards; - bool m_NotifyTSPublicKey; - bool m_CanAutoReconnect; - bool m_EnableAutoReconnect; - bool m_ConnectionBarShowMinimizeButton; - bool m_ConnectionBarShowRestoreButton; - - // Generic getters/setters - HRESULT GetProperty(BSTR& prop, BSTR * retVal) const - { - assert(InsideApartment()); - - if(retVal == NULL) - return E_POINTER; - - *retVal = SysAllocStringLen(prop, SysStringLen(prop)); - - if(*retVal == NULL) - return E_OUTOFMEMORY; - - return S_OK; - } - - HRESULT GetProperty(LPSTR& prop, BSTR * retVal) const - { - assert(InsideApartment()); - - if(retVal == NULL) - return E_POINTER; - - *retVal = LpszToBstr(prop); - - if(*retVal == NULL) - return E_OUTOFMEMORY; - - return S_OK; - } - - HRESULT SetProperty(BSTR& prop, BSTR newValue) - { - assert(InsideApartment()); - - if(m_Connected) - return E_FAIL; - - SysFreeString(prop); - - UINT len = SysStringLen(newValue); - - if(len) - { - // no embedded NULs, please - if(len != lstrlenW(newValue)) - return E_INVALIDARG; - - prop = SysAllocStringLen(newValue, len); - - if(prop == NULL) - return E_OUTOFMEMORY; - } - else - prop = NULL; - - return S_OK; - } - - HRESULT ReplaceProperty(BSTR& prop, BSTR newValue) - { - assert(InsideApartment()); - assert((prop == NULL && newValue == NULL) || prop != newValue); - - SysFreeString(prop); - prop = newValue; - return S_OK; - } - - HRESULT SetProperty(LPSTR& prop, BSTR newValue) - { - assert(InsideApartment()); - - if(m_Connected) - return E_FAIL; - - delete[] prop; - - if(SysStringLen(newValue)) - { - prop = BstrToLpsz(newValue); - - if(prop == NULL) - return E_OUTOFMEMORY; - } - else - prop = NULL; - - return S_OK; - } - - HRESULT ReplaceProperty(LPSTR& prop, LPSTR newValue) - { - assert(InsideApartment()); - assert((prop == NULL && newValue == NULL) || prop != newValue); - - if(prop) - delete[] prop; - - prop = newValue; - return S_OK; - } - - template HRESULT SetProperty(bool& prop, const Type& newValue) - { - assert(InsideApartment()); - - if(m_Connected) - return E_FAIL; - - prop = !!newValue; - return S_OK; - } - - template HRESULT SetProperty(Type& prop, const Type& newValue) - { - assert(InsideApartment()); - - if(m_Connected) - return E_FAIL; - - prop = newValue; - return S_OK; - } - - template HRESULT GetProperty(const bool& prop, Type * retVal) const - { - assert(InsideApartment()); - - if(retVal == NULL) - return E_POINTER; - - *retVal = prop ? VARIANT_TRUE : VARIANT_FALSE; - return S_OK; - } - - template HRESULT GetProperty(const Type& prop, Type * retVal) const - { - assert(InsideApartment()); - - if(retVal == NULL) - return E_POINTER; - - *retVal = prop; - return S_OK; - } - - /* Events */ - MSTSCLib::IMsTscAxEvents ** GetSinks() const - { - if(m_EventSinksCount > 1) - return m_EventSinks; - else - return const_cast(m_EventSinksStatic); - } - - // Event freezing - void UnfreezeEvents() - { - // Just in case - } - - // Generic event riser & helpers - void InvokeSinks(DISPID eventId, VARIANTARG rgvarg[], unsigned int cArgs, VARIANTARG * retval) - { - assert(InsideApartment()); - - DISPPARAMS params; - - params.rgvarg = rgvarg; - params.rgdispidNamedArgs = NULL; - params.cArgs = cArgs; - params.cNamedArgs = 0; - - MSTSCLib::IMsTscAxEvents ** sinks = GetSinks(); - - for(size_t i = 0; i < m_EventSinksCount; ++ i) - sinks[i]->Invoke(eventId, IID_NULL, 0, DISPATCH_METHOD, ¶ms, retval, NULL, NULL); - } - - typedef void (RdpClient::* AsyncEventCallback) - ( - DISPID eventId, - VARIANTARG * rgvarg, - unsigned int cArgs, - VARIANTARG * retVal - ); - - void CleanupEventArgumentsCallback - ( - DISPID eventId, - VARIANTARG * rgvarg, - unsigned int cArgs, - VARIANTARG * retVal - ) - { - assert((rgvarg == NULL) == (cArgs == 0)); - - for(unsigned int i = 0; i < cArgs; ++ i) - VariantClear(&rgvarg[i]); - - if(retVal) - VariantClear(retVal); - } - - // synchronous call from inside the apartment that owns the object - void FireEventInsideApartment - ( - DISPID eventId, - VARIANTARG * rgvarg = NULL, - unsigned int cArgs = 0, - VARIANTARG * retval = NULL, - AsyncEventCallback callback = NULL - ) - { - assert(InsideApartment()); - - if(retval == NULL && callback) - { - VARIANTARG localRetval = { }; - retval = &localRetval; - } - - InvokeSinks(eventId, rgvarg, cArgs, retval); - - if(callback) - (this->*callback)(eventId, rgvarg, cArgs, retval); - } - - struct EventArguments - { - DISPID eventId; - VARIANTARG * rgvarg; - unsigned int cArgs; - VARIANTARG * retval; - AsyncEventCallback callback; - }; - - struct RedirectArguments - { - uint32 flags; - uint32 server_len; - wchar_t * server; - uint32 cookie_len; - char * cookie; - uint32 username_len; - wchar_t * username; - uint32 domain_len; - wchar_t * domain; - uint32 password_len; - wchar_t * password; - }; - - enum - { - RDPC_WM_ = WM_USER, - RDPC_WM_SYNC_EVENT, - RDPC_WM_ASYNC_EVENT, - RDPC_WM_DISCONNECT, - RDPC_WM_REQUEST_CLOSE, - RDPC_WM_REDIRECT, - }; - - static VOID CALLBACK DisconnectAPC(ULONG_PTR) - { - // no need to do anything. The interruption will be enough - } - - bool HandleEvent(UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT& result) - { - result = 0; - - switch(uMsg) - { - /* Regular event to be dispatched to the container's sink */ - case RDPC_WM_SYNC_EVENT: - assert(InSendMessage()); - - case RDPC_WM_ASYNC_EVENT: - { - const EventArguments * eventArgs = reinterpret_cast(lParam); - assert(eventArgs); - - FireEventInsideApartment - ( - eventArgs->eventId, - eventArgs->rgvarg, - eventArgs->cArgs, - eventArgs->retval, - eventArgs->callback - ); - - if(uMsg == RDPC_WM_ASYNC_EVENT) - delete eventArgs; - } - - break; - - /* The protocol thread is about to die: prepare for disconnection */ - case RDPC_WM_DISCONNECT: - { - assert(m_Connected); - assert(InsideApartment()); - assert(InSendMessage()); - - // Unblock the protocol thread and wait for it to terminate - ReplyMessage(0); - JoinProtocolThread(); - - // Finish disconnecting - PerformDisconnect(static_cast(wParam)); - } - - break; - - case RDPC_WM_REDIRECT: - { - assert(InSendMessage()); - assert(lParam); - assert(m_Connected); - assert(m_protocolState.redirect); - - RedirectArguments * redirectArgs = reinterpret_cast(lParam); - - // BUGBUG: this is extremely messy and more prone to out-of-memory than it should be - LPSTR lpszNewServer = NULL; - LPSTR lpszNewCookie = NULL; - BSTR strNewUsername = NULL; - BSTR strNewDomain = NULL; - BSTR strNewPassword = NULL; - HRESULT hr = S_OK; - - for(;;) - { - // Allocate the new properties - hr = E_OUTOFMEMORY; - - // FIXME: convert the hostname to Punycode, not the ANSI codepage - lpszNewServer = AllocLpsz(redirectArgs->server, redirectArgs->server_len / sizeof(OLECHAR)); - - if(lpszNewServer == NULL && redirectArgs->server_len) - break; - - lpszNewCookie = AllocLpsz(redirectArgs->cookie, redirectArgs->cookie_len); - - if(lpszNewCookie == NULL && redirectArgs->cookie_len) - break; - - strNewUsername = SysAllocStringLen(redirectArgs->username, redirectArgs->username_len / sizeof(OLECHAR)); - - if(strNewUsername == NULL && redirectArgs->username_len) - break; - - strNewDomain = SysAllocStringLen(redirectArgs->domain, redirectArgs->domain_len / sizeof(OLECHAR)); - - if(strNewDomain == NULL && redirectArgs->domain_len) - break; - - strNewPassword = SysAllocStringLen(redirectArgs->password, redirectArgs->password_len / sizeof(OLECHAR)); - - if(strNewPassword == NULL && redirectArgs->password_len) - break; - - hr = S_OK; - break; - } - - // Success - if(SUCCEEDED(hr)) - { - // set the new properties - ReplaceProperty(m_Server, lpszNewServer); - ReplaceProperty(m_LoadBalanceInfo, lpszNewCookie); - ReplaceProperty(m_UserName, strNewUsername); - ReplaceProperty(m_Domain, strNewDomain); - ReplaceProperty(m_ClearTextPassword, strNewPassword); - } - // Failure - else - { - // free the buffers - FreeLpsz(lpszNewServer); - FreeLpsz(lpszNewCookie); - SysFreeString(strNewUsername); - SysFreeString(strNewDomain); - SysFreeString(strNewPassword); - - // signal the error - m_protocolState.disconnect_reason = 262; - m_protocolState.redirect = False; - result = -1; - } - } - - break; - - // BUGBUG: this could potentially disconnect an unrelated connection established later... - case RDPC_WM_REQUEST_CLOSE: - { - assert(!InSendMessage()); - - if(m_Connected) - { - // Ask confirmation to the container in case we are logged in - if(m_loggedIn && !FireConfirmClose()) - break; - - // For reentrancy (OnConfirmClose could deviously call Disconnect) - if(m_protocolThread == NULL) - break; - - // Terminate the protocol thread. It will fire the Disconnected event on exit - TerminateProtocolThread(); - } - } - - break; - - default: - return false; - } - - // If the calling thread is blocked, unblock it ASAP - if(InSendMessage()) - ReplyMessage(result); - - return true; - } - - // synchronous call from outside the apartment - void FireEventOutsideApartment - ( - DISPID eventId, - VARIANTARG * rgvarg = NULL, - unsigned int cArgs = 0, - VARIANTARG * retval = NULL, - AsyncEventCallback callback = NULL - ) - { - assert(!InsideApartment()); - EventArguments syncEvent = { eventId, rgvarg, cArgs, retval, callback }; - SendMessage(m_controlWindow, RDPC_WM_SYNC_EVENT, 0, reinterpret_cast(&syncEvent)); - } - - // asynchronous call from outside the apartment - HRESULT FireEventOutsideApartmentAsync - ( - DISPID eventId, - VARIANTARG * rgvarg = NULL, - unsigned int cArgs = 0, - VARIANTARG * retval = NULL, - AsyncEventCallback callback = NULL - ) - { - assert(!InsideApartment()); - - EventArguments * asyncEvent = new EventArguments(); - - if(asyncEvent == NULL) - return E_OUTOFMEMORY; - - asyncEvent->eventId = eventId; - asyncEvent->rgvarg = rgvarg; - asyncEvent->cArgs = cArgs; - asyncEvent->retval = NULL; - - if(!PostMessage(m_controlWindow, RDPC_WM_ASYNC_EVENT, 0, reinterpret_cast(asyncEvent))) - { - delete asyncEvent; - return HRESULT_FROM_WIN32(GetLastError()); - } - - return S_OK; - } - - // Specific events - void FireConnecting() - { - // Source: protocol - FireEventOutsideApartment(1); - } - - void FireConnected() - { - // Source: protocol - FireEventOutsideApartment(2); - } - - void FireLoginComplete() - { - // Source: protocol - FireEventOutsideApartment(3); - } - - void FireDisconnected(long reason) - { - // Source: protocol. Special handling - SendMessage(m_controlWindow, RDPC_WM_DISCONNECT, reason, 0); - } - - void FireEnterFullScreenMode() - { - // Source: UI window - FireEventInsideApartment(5); - } - - void FireLeaveFullScreenMode() - { - // Source: UI window - FireEventInsideApartment(6); - } - - HRESULT FireChannelReceivedData(char (& chanName)[CHANNEL_NAME_LEN + 1], void * chanData, unsigned int chanDataSize) - { - // BUGBUG: what to do when we run out of memory? - - OLECHAR wchanName[ARRAYSIZE(chanName)]; - std::copy(chanName + 0, chanName + ARRAYSIZE(chanName), wchanName); - - BSTR bstrChanName = SysAllocString(wchanName); - - if(bstrChanName == NULL) - return E_OUTOFMEMORY; - - BSTR bstrChanData = SysAllocStringByteLen(NULL, chanDataSize); - - if(bstrChanData == NULL) - { - SysFreeString(bstrChanName); - return E_OUTOFMEMORY; - } - - CopyMemory(bstrChanData, chanData, chanDataSize); - - VARIANTARG args[2] = { }; - - args[1].vt = VT_BSTR; - args[1].bstrVal = bstrChanName; - - args[0].vt = VT_BSTR; - args[0].bstrVal = bstrChanData; - - // Source: protocol - HRESULT hr = FireEventOutsideApartmentAsync(7, args, ARRAYSIZE(args), NULL, &RdpClient::CleanupEventArgumentsCallback); - - if(FAILED(hr)) - CleanupEventArgumentsCallback(7, args, ARRAYSIZE(args), NULL); - - return hr; - } - - void FireRequestGoFullScreen() - { - // Source: UI window - FireEventInsideApartment(8); - } - - void FireRequestLeaveFullScreen() - { - // Source: UI window - FireEventInsideApartment(9); - } - - void FireFatalError(long errorCode) - { - VARIANTARG arg = { }; - - arg.vt = VT_I4; - arg.lVal = errorCode; - - // Source: protocol - FireEventOutsideApartment(10, &arg, 1); - } - - void FireFatalErrorFromApartment(long errorCode) - { - VARIANTARG arg = { }; - - arg.vt = VT_I4; - arg.lVal = errorCode; - - // Source: control - FireEventInsideApartment(10, &arg, 1); - } - - void FireWarning(long warningCode) - { - VARIANTARG arg = { }; - - arg.vt = VT_I4; - arg.lVal = warningCode; - - // Source: protocol - FireEventOutsideApartment(11, &arg, 1); - } - - void FireRemoteDesktopSizeChange(long width, long height) - { - VARIANTARG args[2] = { }; - - args[1].vt = VT_I4; - args[1].lVal = width; - - args[0].vt = VT_I4; - args[0].lVal = height; - - // Source: UI window - FireEventInsideApartment(12, args, ARRAYSIZE(args)); - } - - void FireIdleTimeoutNotification() - { - // Source: input thread - FireEventOutsideApartment(13); - } - - void FireRequestContainerMinimize() - { - // Source: UI window - FireEventInsideApartment(14); - } - - bool FireConfirmClose() - { - VARIANTARG retval = { }; - VARIANT_BOOL allowClose = VARIANT_TRUE; - - retval.vt = VT_BYREF | VT_BOOL; - retval.pboolVal = &allowClose; - - // Source: control - FireEventInsideApartment(15, NULL, 0, &retval); - - return allowClose != VARIANT_FALSE; - } - - HRESULT FireReceivedTSPublicKey(void * publicKey, unsigned int publicKeyLength) - { - assert(m_Connected); - - if(!m_NotifyTSPublicKey) - return S_OK; - - BSTR bstrPublicKey = SysAllocStringByteLen(NULL, publicKeyLength); - - if(bstrPublicKey == NULL) - return E_OUTOFMEMORY; - - CopyMemory(bstrPublicKey, publicKey, publicKeyLength); - - VARIANT_BOOL continueLogon = VARIANT_TRUE; - VARIANTARG arg = { }; - VARIANTARG retval = { }; - - arg.vt = VT_BSTR; - arg.bstrVal = bstrPublicKey; - - retval.vt = VT_BYREF | VT_BOOL; - retval.pboolVal = &continueLogon; - - // Source: protocol - FireEventOutsideApartment(16, &arg, 1, &retval); - - return continueLogon ? S_OK : S_FALSE; - } - - LONG FireAutoReconnecting(long disconnectReason, long attemptCount) - { - LONG continueStatus = MSTSCLib::autoReconnectContinueAutomatic; - VARIANTARG args[2] = { }; - VARIANTARG retval = { }; - - args[1].vt = VT_I4; - args[1].lVal = disconnectReason; - - args[0].vt = VT_I4; - args[0].lVal = attemptCount; - - retval.vt = VT_BYREF | VT_I4; - retval.plVal = &continueStatus; - - // Source: protocol - FireEventOutsideApartment(17, args, ARRAYSIZE(args), &retval); - - return continueStatus; - } - - void FireAuthenticationWarningDisplayed() - { - // Source: protocol - FireEventOutsideApartment(18); - } - - void FireAuthenticationWarningDismissed() - { - // Source: protocol - FireEventOutsideApartment(19); - } - - /* Actual IUnknown implementation */ - HRESULT queryInterface(REFIID riid, void ** ppvObject) - { - IUnknown * pvObject = NULL; - - using namespace MSTSCLib; - - if(riid == IID_IUnknown) - pvObject = static_cast(&m_inner); - else if(riid == IID_IConnectionPointContainer) - pvObject = static_cast(this); - else if(riid == IID_IDataObject) - pvObject = static_cast(this); - else if(riid == IID_IObjectSafety) - pvObject = static_cast(this); - else if(riid == IID_IOleControl) - pvObject = static_cast(this); - else if(riid == IID_IOleInPlaceActiveObject) - pvObject = static_cast(this); - else if(riid == IID_IOleInPlaceObject) - pvObject = static_cast(this); - else if(riid == IID_IOleObject) - pvObject = static_cast(this); - else if(riid == IID_IOleWindow) - pvObject = static_cast(this); - else if(riid == IID_IPersist) - pvObject = static_cast(this); - else if(riid == IID_IPersistPropertyBag) - pvObject = static_cast(this); - else if(riid == IID_IPersistStorage) - pvObject = static_cast(this); - else if(riid == IID_IPersistStreamInit) - pvObject = static_cast(this); - else if(riid == IID_IQuickActivate) - pvObject = static_cast(this); - else if(riid == IID_IViewObject) - pvObject = static_cast(this); - else if(riid == IID_IViewObject2) - pvObject = static_cast(this); - else if(riid == IID_IMsTscAx || riid == MSTSCLib_Redist::IID_IMsTscAx) - pvObject = static_cast(this); - else if(riid == IID_IMsRdpClient) - pvObject = static_cast(this); - else if(riid == IID_IMsRdpClient2) - pvObject = static_cast(this); - else if(riid == IID_IMsRdpClient3) - pvObject = static_cast(this); - else if(riid == IID_IMsRdpClient4) - pvObject = static_cast(this); - else if(riid == IID_IMsTscNonScriptable) - pvObject = static_cast(this); - else if(riid == IID_IMsRdpClientNonScriptable) - pvObject = static_cast(this); - else if(riid == IID_IMsRdpClientNonScriptable2) - pvObject = static_cast(this); - - *ppvObject = pvObject; - - if(pvObject) - { - pvObject->AddRef(); - return S_OK; - } - - return E_NOINTERFACE; - } - - ULONG addRef() - { - return InterlockedIncrement(&m_refCount); - } - - ULONG release() - { - LONG n = InterlockedDecrement(&m_refCount); - - if(n == 0) - delete this; - - return n; - } - - /* Constructor */ - RdpClient(REFCLSID classId, unsigned libIndex, IUnknown * punkOuter): - // COM/OLE internals - m_refCount(0), - m_punkOuter(punkOuter), - m_classId(classId), - m_typeLibIndex(libIndex), - m_typeLib(), - m_dispTypeInfo(), - m_controlWindow(NULL), - m_clientSite(), - m_inPlaceSite(), - m_adviseHolder(), - m_freezeEvents(0), - m_uiActive(false), - m_SafetyOptions(), - -#ifdef _DEBUG - m_apartmentThreadId(GetCurrentThreadId()), -#endif - - // rdesktop-core interface - m_protocolState(), - m_protocolThread(), - - // Properties - m_Server(), - m_Domain(), - m_UserName(), - m_DisconnectedText(), - m_ConnectingText(), - m_FullScreenTitle(), - m_StartProgram(), - m_WorkDir(), - m_LoadBalanceInfo(), - m_ConnectedStatusText(), - m_ClearTextPassword(), - m_RdpdrLocalPrintingDocName(), - m_RdpdrClipCleanTempDirString(), - m_RdpdrClipPasteInfoString(), - m_UIParentWindowHandle(), - m_DesktopWidth(), - m_DesktopHeight(), - m_StartConnected(), - m_ColorDepth(16), - m_KeyboardHookMode(2), - m_AudioRedirectionMode(0), - m_TransportType(1), // BUGBUG: ??? what's this ??? - m_SasSequence(0xAA03), // BUGBUG: ??? what's this ??? - m_RDPPort(3389), - m_HotKeyFullScreen(VK_CANCEL), - m_HotKeyAltEsc(VK_INSERT), - m_HotKeyAltShiftTab(VK_NEXT), - m_HotKeyAltSpace(VK_DELETE), - m_HotKeyAltTab(VK_PRIOR), - m_HotKeyCtrlAltDel(VK_END), - m_HotKeyCtrlEsc(VK_HOME), - m_orderDrawThresold(0), - m_BitmapCacheSize(1500), - m_BitmapVirtualCacheSize(10), - m_brushSupportLevel(), - m_minInputSendInterval(), - m_InputEventsAtOnce(), - m_maxEventCount(), - m_keepAliveInternal(0), - m_shutdownTimeout(10), - m_overallConnectionTimeout(120), - m_singleConnectionTimeout(30), - m_MinutesToIdleTimeout(0), - m_BitmapVirtualCache16BppSize(20), - m_BitmapVirtualCache24BppSize(30), - m_PerformanceFlags(), - m_MaxReconnectAttempts(20), - m_AuthenticationLevel(0), - m_ExtendedDisconnectReason(MSTSCLib::exDiscReasonNoInfo), - m_Connected(false), - m_Compress(true), - m_BitmapPersistence(true), - m_allowBackgroundInput(false), - m_ContainerHandledFullScreen(false), - m_DisableRdpdr(false), - m_SecuredSettingsEnabled(true), - m_FullScreen(false), - m_AcceleratorPassthrough(true), - m_ShadowBitmap(true), - m_EncryptionEnabled(true), - m_DedicatedTerminal(false), - m_DisableCtrlAltDel(true), - m_EnableWindowsKey(true), - m_DoubleClickDetect(false), - m_MaximizeShell(true), - m_ScaleBitmapCachesByBpp(false), - m_CachePersistenceActive(false), - m_ConnectToServerConsole(false), - m_SmartSizing(false), - m_DisplayConnectionBar(true), - m_PinConnectionBar(true), - m_GrabFocusOnConnect(true), - m_RedirectDrives(false), - m_RedirectPrinters(false), - m_RedirectPorts(false), - m_RedirectSmartCards(false), - m_NotifyTSPublicKey(false), - m_CanAutoReconnect(false), - m_EnableAutoReconnect(true), - m_ConnectionBarShowMinimizeButton(true), - m_ConnectionBarShowRestoreButton(true) - { - if(m_punkOuter == NULL) - m_punkOuter = &m_inner; - } - - /* Destructor */ - ~RdpClient() - { - assert(m_refCount == 0); - - if(m_Connected) - { - // Terminate the protocol thread - TerminateProtocolThread(); - - // Dispatch the RDPC_WM_DISCONNECT message sent by the dying thread - MSG msg; - PeekMessage(&msg, m_controlWindow, 0, 0, PM_NOREMOVE); - - assert(!m_Connected); - } - - DestroyControlWindow(); - - if(m_typeLib) - m_typeLib->Release(); - - if(m_dispTypeInfo) - m_dispTypeInfo->Release(); - - MSTSCLib::IMsTscAxEvents ** sinks = GetSinks(); - - for(size_t i = 0; i < m_EventSinksCount; ++ i) - sinks[i]->Release(); - - if(m_EventSinksCount > 1) - delete[] m_EventSinks; - - if(m_clientSite) - m_clientSite->Release(); - - if(m_inPlaceSite) - m_inPlaceSite->Release(); - - if(m_adviseHolder) - m_adviseHolder->Release(); - - SysFreeString(m_Domain); - SysFreeString(m_UserName); - SysFreeString(m_DisconnectedText); - SysFreeString(m_DisconnectedText); - SysFreeString(m_FullScreenTitle); - SysFreeString(m_StartProgram); - SysFreeString(m_WorkDir); - SysFreeString(m_ConnectedStatusText); - SysFreeString(m_ClearTextPassword); - SysFreeString(m_RdpdrLocalPrintingDocName); - SysFreeString(m_RdpdrClipCleanTempDirString); - SysFreeString(m_RdpdrClipPasteInfoString); - - FreeLpsz(m_LoadBalanceInfo); - FreeLpsz(m_Server); - - unlockServer(); - } - - /* Advanced settings wrapper */ - friend class AdvancedSettings; - - class AdvancedSettings SEALED_: public MSTSCLib::IMsRdpClientAdvancedSettings4 - { - private: - RdpClient * Outer() - { - return InnerToOuter(this); - } - - const RdpClient * Outer() const - { - return InnerToOuter(this); - } - - /* IDispatch type information */ - ITypeInfo * m_dispTypeInfo; - - HRESULT LoadDispTypeInfo() - { - if(m_dispTypeInfo) - return S_OK; - - HRESULT hr = Outer()->LoadTypeLibrary(); - - if(FAILED(hr)) - return hr; - - assert(MSTSCLib::IID_IMsRdpClientAdvancedSettings4 == MSTSCLib_Redist::IID_IMsRdpClientAdvancedSettings4); - - hr = Outer()->m_typeLib->GetTypeInfoOfGuid(MSTSCLib::IID_IMsRdpClientAdvancedSettings4, &m_dispTypeInfo); - - if(FAILED(hr)) - return hr; - - assert(m_dispTypeInfo); - return S_OK; - } - - HRESULT AcquireDispTypeInfo(ITypeInfo ** ppTI) - { - HRESULT hr = LoadDispTypeInfo(); - - if(FAILED(hr)) - return hr; - - m_dispTypeInfo->AddRef(); - *ppTI = m_dispTypeInfo; - return S_OK; - } - - public: - ~AdvancedSettings() - { - if(m_dispTypeInfo) - m_dispTypeInfo->Release(); - } - - /* IUnknown */ - virtual STDMETHODIMP IUnknown::QueryInterface(REFIID riid, void ** ppvObject) - { - using namespace MSTSCLib; - - if - ( - riid == IID_IUnknown || - riid == IID_IDispatch || - riid == IID_IMsTscAdvancedSettings || - riid == IID_IMsRdpClientAdvancedSettings || - riid == IID_IMsRdpClientAdvancedSettings2 || - riid == IID_IMsRdpClientAdvancedSettings3 || - riid == IID_IMsRdpClientAdvancedSettings4 - ) - { - *ppvObject = this; - Outer()->addRef(); - return S_OK; - } - else - { - *ppvObject = NULL; - return E_NOINTERFACE; - } - } - - virtual STDMETHODIMP_(ULONG) IUnknown::AddRef() - { - return Outer()->addRef(); - } - - virtual STDMETHODIMP_(ULONG) IUnknown::Release() - { - return Outer()->release(); - } - - /* IDispatch */ - virtual STDMETHODIMP IDispatch::GetTypeInfoCount(UINT * pctinfo) - { - *pctinfo = 1; - return S_OK; - } - - virtual STDMETHODIMP IDispatch::GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo ** ppTInfo) - { - if(iTInfo != 0) - return DISP_E_BADINDEX; - - return AcquireDispTypeInfo(ppTInfo); - } - - virtual STDMETHODIMP IDispatch::GetIDsOfNames(REFIID riid, LPOLESTR * rgszNames, UINT cNames, LCID lcid, DISPID * rgDispId) - { - HRESULT hr = LoadDispTypeInfo(); - - if(FAILED(hr)) - return hr; - - return m_dispTypeInfo->GetIDsOfNames(rgszNames, cNames, rgDispId); - } - - virtual STDMETHODIMP IDispatch::Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS * pDispParams, VARIANT * pVarResult, EXCEPINFO * pExcepInfo, UINT * puArgErr) - { - return m_dispTypeInfo->Invoke - ( - static_cast(this), - dispIdMember, - wFlags, - pDispParams, - pVarResult, - pExcepInfo, - puArgErr - ); - } - - /* IMsTscAdvancedSettings */ - virtual STDMETHODIMP IMsTscAdvancedSettings::put_Compress(long pcompress) - { - return Outer()->SetProperty(Outer()->m_Compress, pcompress); - } - - virtual STDMETHODIMP IMsTscAdvancedSettings::get_Compress(long * pcompress) const - { - return Outer()->GetProperty(Outer()->m_Compress, pcompress); - } - - virtual STDMETHODIMP IMsTscAdvancedSettings::put_BitmapPeristence(long pbitmapPeristence) - { - return Outer()->SetProperty(Outer()->m_BitmapPersistence, pbitmapPeristence); - } - - virtual STDMETHODIMP IMsTscAdvancedSettings::get_BitmapPeristence(long * pbitmapPeristence) const - { - return Outer()->GetProperty(Outer()->m_BitmapPersistence, pbitmapPeristence); - } - - virtual STDMETHODIMP IMsTscAdvancedSettings::put_allowBackgroundInput(long pallowBackgroundInput) - { - if(Outer()->IsSafeForScripting()) - return S_FALSE; - - return Outer()->SetProperty(Outer()->m_allowBackgroundInput, pallowBackgroundInput); - } - - virtual STDMETHODIMP IMsTscAdvancedSettings::get_allowBackgroundInput(long * pallowBackgroundInput) const - { - return Outer()->GetProperty(Outer()->m_allowBackgroundInput, pallowBackgroundInput); - } - - virtual STDMETHODIMP IMsTscAdvancedSettings::put_KeyBoardLayoutStr(BSTR rhs) - { - return Outer()->SetProperty(Outer()->m_KeyboardLayoutString, rhs); - } - - virtual STDMETHODIMP IMsTscAdvancedSettings::put_PluginDlls(BSTR rhs) - { - // TODO: split rhs into an array - - // Control marked safe for scripting: only allow filenames - if(Outer()->IsSafeForScripting()) - { - // TODO: validate entries - // TODO: replace each entry with a full path based on the Virtual Channel DLL path - } - - return E_NOTIMPL; // TODO - } - - virtual STDMETHODIMP IMsTscAdvancedSettings::put_IconFile(BSTR rhs) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IMsTscAdvancedSettings::put_IconIndex(long rhs) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IMsTscAdvancedSettings::put_ContainerHandledFullScreen(long pContainerHandledFullScreen) - { - if(Outer()->IsSafeForScripting()) - return S_FALSE; - - return Outer()->SetProperty(Outer()->m_ContainerHandledFullScreen, pContainerHandledFullScreen); - } - - virtual STDMETHODIMP IMsTscAdvancedSettings::get_ContainerHandledFullScreen(long * pContainerHandledFullScreen) const - { - return Outer()->GetProperty(Outer()->m_ContainerHandledFullScreen, pContainerHandledFullScreen); - } - - virtual STDMETHODIMP IMsTscAdvancedSettings::put_DisableRdpdr(long pDisableRdpdr) - { - return Outer()->SetProperty(Outer()->m_DisableRdpdr, pDisableRdpdr); - } - - virtual STDMETHODIMP IMsTscAdvancedSettings::get_DisableRdpdr(long * pDisableRdpdr) const - { - return Outer()->GetProperty(Outer()->m_DisableRdpdr, pDisableRdpdr); - } - - /* IMsRdpClientAdvancedSettings */ - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_SmoothScroll(long psmoothScroll) - { - return S_FALSE; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_SmoothScroll(long * psmoothScroll) const - { - return S_FALSE; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_AcceleratorPassthrough(long pacceleratorPassthrough) - { - return Outer()->SetProperty(Outer()->m_AcceleratorPassthrough, pacceleratorPassthrough); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_AcceleratorPassthrough(long * pacceleratorPassthrough) const - { - return Outer()->GetProperty(Outer()->m_AcceleratorPassthrough, pacceleratorPassthrough); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_ShadowBitmap(long pshadowBitmap) - { - return Outer()->SetProperty(Outer()->m_ShadowBitmap, pshadowBitmap); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_ShadowBitmap(long * pshadowBitmap) const - { - return Outer()->GetProperty(Outer()->m_ShadowBitmap, pshadowBitmap); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_TransportType(long ptransportType) - { - // Reserved - return Outer()->SetProperty(Outer()->m_TransportType, ptransportType); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_TransportType(long * ptransportType) const - { - // Reserved - return Outer()->GetProperty(Outer()->m_TransportType, ptransportType); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_SasSequence(long psasSequence) - { - // Reserved - return Outer()->SetProperty(Outer()->m_SasSequence, psasSequence); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_SasSequence(long * psasSequence) const - { - // Reserved - return Outer()->GetProperty(Outer()->m_SasSequence, psasSequence); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_EncryptionEnabled(long pencryptionEnabled) - { - return Outer()->SetProperty(Outer()->m_EncryptionEnabled, pencryptionEnabled); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_EncryptionEnabled(long * pencryptionEnabled) const - { - return Outer()->GetProperty(Outer()->m_EncryptionEnabled, pencryptionEnabled); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_DedicatedTerminal(long pdedicatedTerminal) - { - return Outer()->SetProperty(Outer()->m_DedicatedTerminal, pdedicatedTerminal); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_DedicatedTerminal(long * pdedicatedTerminal) const - { - return Outer()->GetProperty(Outer()->m_DedicatedTerminal, pdedicatedTerminal); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RDPPort(long prdpPort) - { - if(prdpPort == 0 || prdpPort > 65535) - return E_INVALIDARG; - - return Outer()->SetProperty(Outer()->m_RDPPort, prdpPort); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RDPPort(long * prdpPort) const - { - return Outer()->GetProperty(Outer()->m_RDPPort, prdpPort); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_EnableMouse(long penableMouse) - { - return S_FALSE; // TBD? implement? - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_EnableMouse(long * penableMouse) const - { - return S_FALSE; // TBD? implement? - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_DisableCtrlAltDel(long pdisableCtrlAltDel) - { - return Outer()->SetProperty(Outer()->m_DisableCtrlAltDel, pdisableCtrlAltDel); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_DisableCtrlAltDel(long * pdisableCtrlAltDel) const - { - return Outer()->GetProperty(Outer()->m_DisableCtrlAltDel, pdisableCtrlAltDel); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_EnableWindowsKey(long penableWindowsKey) - { - return Outer()->SetProperty(Outer()->m_EnableWindowsKey, penableWindowsKey); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_EnableWindowsKey(long * penableWindowsKey) const - { - return Outer()->GetProperty(Outer()->m_EnableWindowsKey, penableWindowsKey); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_DoubleClickDetect(long pdoubleClickDetect) - { - return Outer()->SetProperty(Outer()->m_DoubleClickDetect, pdoubleClickDetect); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_DoubleClickDetect(long * pdoubleClickDetect) const - { - return Outer()->GetProperty(Outer()->m_DoubleClickDetect, pdoubleClickDetect); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_MaximizeShell(long pmaximizeShell) - { - return Outer()->SetProperty(Outer()->m_MaximizeShell, pmaximizeShell); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_MaximizeShell(long * pmaximizeShell) const - { - return Outer()->GetProperty(Outer()->m_MaximizeShell, pmaximizeShell); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyFullScreen(long photKeyFullScreen) - { - return Outer()->SetProperty(Outer()->m_HotKeyFullScreen, photKeyFullScreen); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyFullScreen(long * photKeyFullScreen) const - { - return Outer()->GetProperty(Outer()->m_HotKeyFullScreen, photKeyFullScreen); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyCtrlEsc(long photKeyCtrlEsc) - { - return Outer()->SetProperty(Outer()->m_HotKeyCtrlEsc, photKeyCtrlEsc); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyCtrlEsc(long * photKeyCtrlEsc) const - { - return Outer()->GetProperty(Outer()->m_HotKeyCtrlEsc, photKeyCtrlEsc); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyAltEsc(long photKeyAltEsc) - { - return Outer()->SetProperty(Outer()->m_HotKeyAltEsc, photKeyAltEsc); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyAltEsc(long * photKeyAltEsc) const - { - return Outer()->GetProperty(Outer()->m_HotKeyAltEsc, photKeyAltEsc); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyAltTab(long photKeyAltTab) - { - return Outer()->SetProperty(Outer()->m_HotKeyAltTab, photKeyAltTab); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyAltTab(long * photKeyAltTab) const - { - return Outer()->GetProperty(Outer()->m_HotKeyAltTab, photKeyAltTab); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyAltShiftTab(long photKeyAltShiftTab) - { - return Outer()->SetProperty(Outer()->m_HotKeyAltShiftTab, photKeyAltShiftTab); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyAltShiftTab(long * photKeyAltShiftTab) const - { - return Outer()->GetProperty(Outer()->m_HotKeyAltShiftTab, photKeyAltShiftTab); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyAltSpace(long photKeyAltSpace) - { - return Outer()->SetProperty(Outer()->m_HotKeyAltSpace, photKeyAltSpace); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyAltSpace(long * photKeyAltSpace) const - { - return Outer()->GetProperty(Outer()->m_HotKeyAltSpace, photKeyAltSpace); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyCtrlAltDel(long photKeyCtrlAltDel) - { - return Outer()->SetProperty(Outer()->m_HotKeyCtrlAltDel, photKeyCtrlAltDel); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyCtrlAltDel(long * photKeyCtrlAltDel) const - { - return Outer()->GetProperty(Outer()->m_HotKeyCtrlAltDel, photKeyCtrlAltDel); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_orderDrawThreshold(long porderDrawThreshold) - { - return S_FALSE; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_orderDrawThreshold(long * porderDrawThreshold) const - { - return S_FALSE; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_BitmapCacheSize(long pbitmapCacheSize) - { - // NOTE: the upper bound of "32" for a field with a default value of 1500 seems to be a bug - if(pbitmapCacheSize < 0 || pbitmapCacheSize > 32) - return E_INVALIDARG; - - return Outer()->SetProperty(Outer()->m_BitmapCacheSize, pbitmapCacheSize); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_BitmapCacheSize(long * pbitmapCacheSize) const - { - return Outer()->GetProperty(Outer()->m_BitmapCacheSize, pbitmapCacheSize); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_BitmapVirtualCacheSize(long pbitmapVirtualCacheSize) - { - if(pbitmapVirtualCacheSize < 0 || pbitmapVirtualCacheSize > 32) - return E_INVALIDARG; - - return Outer()->SetProperty(Outer()->m_BitmapVirtualCacheSize, pbitmapVirtualCacheSize); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_BitmapVirtualCacheSize(long * pbitmapVirtualCacheSize) const - { - return Outer()->GetProperty(Outer()->m_BitmapVirtualCacheSize, pbitmapVirtualCacheSize); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_ScaleBitmapCachesByBPP(long pbScale) - { - return S_FALSE; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_ScaleBitmapCachesByBPP(long * pbScale) const - { - return S_FALSE; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_NumBitmapCaches(long pnumBitmapCaches) - { - return Outer()->SetProperty(Outer()->m_NumBitmapCaches, pnumBitmapCaches); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_NumBitmapCaches(long * pnumBitmapCaches) const - { - return Outer()->GetProperty(Outer()->m_NumBitmapCaches, pnumBitmapCaches); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_CachePersistenceActive(long pcachePersistenceActive) - { - return Outer()->SetProperty(Outer()->m_CachePersistenceActive, pcachePersistenceActive); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_CachePersistenceActive(long * pcachePersistenceActive) const - { - return Outer()->GetProperty(Outer()->m_CachePersistenceActive, pcachePersistenceActive); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_PersistCacheDirectory(BSTR rhs) - { - return S_FALSE; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_brushSupportLevel(long pbrushSupportLevel) - { - return Outer()->SetProperty(Outer()->m_brushSupportLevel, pbrushSupportLevel); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_brushSupportLevel(long * pbrushSupportLevel) const - { - return Outer()->GetProperty(Outer()->m_brushSupportLevel, pbrushSupportLevel); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_minInputSendInterval(long pminInputSendInterval) - { - // TODO - return S_FALSE; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_minInputSendInterval(long * pminInputSendInterval) const - { - // TODO - return S_FALSE; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_InputEventsAtOnce(long pinputEventsAtOnce) - { - // TODO - return S_FALSE; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_InputEventsAtOnce(long * pinputEventsAtOnce) const - { - // TODO - return S_FALSE; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_maxEventCount(long pmaxEventCount) - { - // TODO - return S_FALSE; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_maxEventCount(long * pmaxEventCount) const - { - // TODO - return S_FALSE; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_keepAliveInterval(long pkeepAliveInterval) - { - if(pkeepAliveInterval && pkeepAliveInterval < 10) - return E_INVALIDARG; - - return Outer()->SetProperty(Outer()->m_keepAliveInternal, pkeepAliveInterval); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_keepAliveInterval(long * pkeepAliveInterval) const - { - return Outer()->GetProperty(Outer()->m_keepAliveInternal, pkeepAliveInterval); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_shutdownTimeout(long pshutdownTimeout) - { - if(pshutdownTimeout >= 600) - return E_INVALIDARG; - - return Outer()->SetProperty(Outer()->m_shutdownTimeout, pshutdownTimeout); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_shutdownTimeout(long * pshutdownTimeout) const - { - return Outer()->GetProperty(Outer()->m_shutdownTimeout, pshutdownTimeout); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_overallConnectionTimeout(long poverallConnectionTimeout) - { - if(poverallConnectionTimeout < 0 || poverallConnectionTimeout >= 600) - return E_INVALIDARG; - - return Outer()->SetProperty(Outer()->m_overallConnectionTimeout, poverallConnectionTimeout); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_overallConnectionTimeout(long * poverallConnectionTimeout) const - { - return Outer()->GetProperty(Outer()->m_overallConnectionTimeout, poverallConnectionTimeout); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_singleConnectionTimeout(long psingleConnectionTimeout) - { - if(psingleConnectionTimeout >= 600) - return E_INVALIDARG; - - return Outer()->SetProperty(Outer()->m_singleConnectionTimeout, psingleConnectionTimeout); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_singleConnectionTimeout(long * psingleConnectionTimeout) const - { - return Outer()->GetProperty(Outer()->m_singleConnectionTimeout, psingleConnectionTimeout); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_KeyboardType(long pkeyboardType) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_KeyboardType(long * pkeyboardType) const - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_KeyboardSubType(long pkeyboardSubType) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_KeyboardSubType(long * pkeyboardSubType) const - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_KeyboardFunctionKey(long pkeyboardFunctionKey) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_KeyboardFunctionKey(long * pkeyboardFunctionKey) const - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_WinceFixedPalette(long pwinceFixedPalette) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_WinceFixedPalette(long * pwinceFixedPalette) const - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_ConnectToServerConsole(VARIANT_BOOL pConnectToConsole) - { - return Outer()->SetProperty(Outer()->m_ConnectToServerConsole, pConnectToConsole); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_ConnectToServerConsole(VARIANT_BOOL * pConnectToConsole) const - { - return Outer()->GetProperty(Outer()->m_ConnectToServerConsole, pConnectToConsole); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_BitmapPersistence(long pbitmapPersistence) - { - return put_BitmapPeristence(pbitmapPersistence); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_BitmapPersistence(long * pbitmapPersistence) const - { - return get_BitmapPeristence(pbitmapPersistence); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_MinutesToIdleTimeout(long pminutesToIdleTimeout) - { - if(pminutesToIdleTimeout > 240) - return E_INVALIDARG; - - return Outer()->SetProperty(Outer()->m_MinutesToIdleTimeout, pminutesToIdleTimeout); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_MinutesToIdleTimeout(long * pminutesToIdleTimeout) const - { - return Outer()->GetProperty(Outer()->m_MinutesToIdleTimeout, pminutesToIdleTimeout); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_SmartSizing(VARIANT_BOOL pfSmartSizing) - { - return Outer()->SetProperty(Outer()->m_SmartSizing, pfSmartSizing); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_SmartSizing(VARIANT_BOOL * pfSmartSizing) const - { - return Outer()->GetProperty(Outer()->m_SmartSizing, pfSmartSizing); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RdpdrLocalPrintingDocName(BSTR pLocalPrintingDocName) - { - return Outer()->SetProperty(Outer()->m_RdpdrLocalPrintingDocName, pLocalPrintingDocName); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RdpdrLocalPrintingDocName(BSTR * pLocalPrintingDocName) const - { - return Outer()->GetProperty(Outer()->m_RdpdrLocalPrintingDocName, pLocalPrintingDocName); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RdpdrClipCleanTempDirString(BSTR clipCleanTempDirString) - { - return Outer()->SetProperty(Outer()->m_RdpdrClipCleanTempDirString, clipCleanTempDirString); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RdpdrClipCleanTempDirString(BSTR * clipCleanTempDirString) const - { - return Outer()->GetProperty(Outer()->m_RdpdrClipCleanTempDirString, clipCleanTempDirString); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RdpdrClipPasteInfoString(BSTR clipPasteInfoString) - { - return Outer()->SetProperty(Outer()->m_RdpdrClipPasteInfoString, clipPasteInfoString); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RdpdrClipPasteInfoString(BSTR * clipPasteInfoString) const - { - return Outer()->GetProperty(Outer()->m_RdpdrClipPasteInfoString, clipPasteInfoString); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_ClearTextPassword(BSTR rhs) - { - return Outer()->put_ClearTextPassword(rhs); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_DisplayConnectionBar(VARIANT_BOOL pDisplayConnectionBar) - { - if(!pDisplayConnectionBar && Outer()->IsSafeForScripting()) - return E_FAIL; - - return Outer()->SetProperty(Outer()->m_DisplayConnectionBar, pDisplayConnectionBar); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_DisplayConnectionBar(VARIANT_BOOL * pDisplayConnectionBar) const - { - return Outer()->GetProperty(Outer()->m_DisplayConnectionBar, pDisplayConnectionBar); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_PinConnectionBar(VARIANT_BOOL pPinConnectionBar) - { - if(Outer()->IsSafeForScripting()) - return E_NOTIMPL; - - return Outer()->SetProperty(Outer()->m_PinConnectionBar, pPinConnectionBar); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_PinConnectionBar(VARIANT_BOOL * pPinConnectionBar) const - { - return Outer()->GetProperty(Outer()->m_PinConnectionBar, pPinConnectionBar); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_GrabFocusOnConnect(VARIANT_BOOL pfGrabFocusOnConnect) - { - return Outer()->SetProperty(Outer()->m_GrabFocusOnConnect, pfGrabFocusOnConnect); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_GrabFocusOnConnect(VARIANT_BOOL * pfGrabFocusOnConnect) const - { - return Outer()->GetProperty(Outer()->m_GrabFocusOnConnect, pfGrabFocusOnConnect); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_LoadBalanceInfo(BSTR pLBInfo) - { - return Outer()->SetProperty(Outer()->m_LoadBalanceInfo, pLBInfo); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_LoadBalanceInfo(BSTR * pLBInfo) const - { - return Outer()->GetProperty(Outer()->m_LoadBalanceInfo, pLBInfo); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RedirectDrives(VARIANT_BOOL pRedirectDrives) - { - return Outer()->SetProperty(Outer()->m_RedirectDrives, pRedirectDrives); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RedirectDrives(VARIANT_BOOL * pRedirectDrives) const - { - return Outer()->GetProperty(Outer()->m_RedirectDrives, pRedirectDrives); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RedirectPrinters(VARIANT_BOOL pRedirectPrinters) - { - return Outer()->SetProperty(Outer()->m_RedirectPrinters, pRedirectPrinters); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RedirectPrinters(VARIANT_BOOL * pRedirectPrinters) const - { - return Outer()->GetProperty(Outer()->m_RedirectPrinters, pRedirectPrinters); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RedirectPorts(VARIANT_BOOL pRedirectPorts) - { - return Outer()->SetProperty(Outer()->m_RedirectPorts, pRedirectPorts); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RedirectPorts(VARIANT_BOOL * pRedirectPorts) const - { - return Outer()->GetProperty(Outer()->m_RedirectPorts, pRedirectPorts); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RedirectSmartCards(VARIANT_BOOL pRedirectSmartCards) - { - return Outer()->SetProperty(Outer()->m_RedirectSmartCards, pRedirectSmartCards); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RedirectSmartCards(VARIANT_BOOL * pRedirectSmartCards) const - { - return Outer()->GetProperty(Outer()->m_RedirectSmartCards, pRedirectSmartCards); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_BitmapVirtualCache16BppSize(long pBitmapVirtualCache16BppSize) - { - if(pBitmapVirtualCache16BppSize < 0 || pBitmapVirtualCache16BppSize > 32) - return E_INVALIDARG; - - return Outer()->SetProperty(Outer()->m_BitmapVirtualCache16BppSize, pBitmapVirtualCache16BppSize); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_BitmapVirtualCache16BppSize(long * pBitmapVirtualCache16BppSize) const - { - return Outer()->GetProperty(Outer()->m_BitmapVirtualCache16BppSize, pBitmapVirtualCache16BppSize); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_BitmapVirtualCache24BppSize(long pBitmapVirtualCache24BppSize) - { - if(pBitmapVirtualCache24BppSize < 0 || pBitmapVirtualCache24BppSize > 32) - return E_INVALIDARG; - - return Outer()->SetProperty(Outer()->m_BitmapVirtualCache24BppSize, pBitmapVirtualCache24BppSize); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_BitmapVirtualCache24BppSize(long * pBitmapVirtualCache24BppSize) const - { - return Outer()->GetProperty(Outer()->m_BitmapVirtualCache24BppSize, pBitmapVirtualCache24BppSize); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_PerformanceFlags(long pDisableList) - { - return Outer()->SetProperty(Outer()->m_PerformanceFlags, pDisableList); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_PerformanceFlags(long * pDisableList) const - { - return Outer()->GetProperty(Outer()->m_PerformanceFlags, pDisableList); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_ConnectWithEndpoint(VARIANT * rhs) - { - // TBD? the Microsoft client implements this, but what does it mean? - return E_NOTIMPL; - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_NotifyTSPublicKey(VARIANT_BOOL pfNotify) - { - return Outer()->SetProperty(Outer()->m_NotifyTSPublicKey, pfNotify); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_NotifyTSPublicKey(VARIANT_BOOL * pfNotify) const - { - return Outer()->GetProperty(Outer()->m_NotifyTSPublicKey, pfNotify); - } - - /* IMsRdpClientAdvancedSettings2 */ - virtual STDMETHODIMP IMsRdpClientAdvancedSettings2::get_CanAutoReconnect(VARIANT_BOOL * pfCanAutoReconnect) const - { - return E_NOTIMPL; // TODO - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings2::put_EnableAutoReconnect(VARIANT_BOOL pfEnableAutoReconnect) - { - return Outer()->SetProperty(Outer()->m_EnableAutoReconnect, pfEnableAutoReconnect); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings2::get_EnableAutoReconnect(VARIANT_BOOL * pfEnableAutoReconnect) const - { - return Outer()->GetProperty(Outer()->m_EnableAutoReconnect, pfEnableAutoReconnect); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings2::put_MaxReconnectAttempts(long pMaxReconnectAttempts) - { - if(pMaxReconnectAttempts < 0 || pMaxReconnectAttempts > 200) - return E_INVALIDARG; - - return Outer()->SetProperty(Outer()->m_MaxReconnectAttempts, pMaxReconnectAttempts); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings2::get_MaxReconnectAttempts(long * pMaxReconnectAttempts) const - { - return Outer()->GetProperty(Outer()->m_MaxReconnectAttempts, pMaxReconnectAttempts); - } - - /* IMsRdpClientAdvancedSettings3 */ - virtual STDMETHODIMP IMsRdpClientAdvancedSettings3::put_ConnectionBarShowMinimizeButton(VARIANT_BOOL pfShowMinimize) - { - return Outer()->SetProperty(Outer()->m_ConnectionBarShowMinimizeButton, pfShowMinimize); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings3::get_ConnectionBarShowMinimizeButton(VARIANT_BOOL * pfShowMinimize) const - { - return Outer()->GetProperty(Outer()->m_ConnectionBarShowMinimizeButton, pfShowMinimize); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings3::put_ConnectionBarShowRestoreButton(VARIANT_BOOL pfShowRestore) - { - return Outer()->SetProperty(Outer()->m_ConnectionBarShowRestoreButton, pfShowRestore); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings3::get_ConnectionBarShowRestoreButton(VARIANT_BOOL * pfShowRestore) const - { - return Outer()->GetProperty(Outer()->m_ConnectionBarShowRestoreButton, pfShowRestore); - } - - /* IMsRdpClientAdvancedSettings4 */ - virtual STDMETHODIMP IMsRdpClientAdvancedSettings4::put_AuthenticationLevel(unsigned int puiAuthLevel) - { - // TODO: this isn't implemented in rdesktop yet... - return Outer()->SetProperty(Outer()->m_AuthenticationLevel, puiAuthLevel); - } - - virtual STDMETHODIMP IMsRdpClientAdvancedSettings4::get_AuthenticationLevel(unsigned int * puiAuthLevel) const - { - return Outer()->GetProperty(Outer()->m_AuthenticationLevel, puiAuthLevel); - } - } - m_advancedSettings; - - template HRESULT GetAdvancedSettings(Interface ** ppAdvSettings) - { - addRef(); - *ppAdvSettings = &m_advancedSettings; - return S_OK; - } - - /* Secured settings wrapper */ - friend class SecuredSettings; - - class SecuredSettings SEALED_: public MSTSCLib::IMsRdpClientSecuredSettings - { - private: - RdpClient * Outer() - { - return InnerToOuter(this); - } - - const RdpClient * Outer() const - { - return InnerToOuter(this); - } - - /* IDispatch type information */ - ITypeInfo * m_dispTypeInfo; - - HRESULT LoadDispTypeInfo() - { - if(m_dispTypeInfo) - return S_OK; - - HRESULT hr = Outer()->LoadTypeLibrary(); - - if(FAILED(hr)) - return hr; - - assert(MSTSCLib::IID_IMsRdpClientSecuredSettings == MSTSCLib_Redist::IID_IMsRdpClientSecuredSettings); - - hr = Outer()->m_typeLib->GetTypeInfoOfGuid(MSTSCLib::IID_IMsRdpClientSecuredSettings, &m_dispTypeInfo); - - if(FAILED(hr)) - return hr; - - assert(m_dispTypeInfo); - return S_OK; - } - - HRESULT AcquireDispTypeInfo(ITypeInfo ** ppTI) - { - HRESULT hr = LoadDispTypeInfo(); - - if(FAILED(hr)) - return hr; - - m_dispTypeInfo->AddRef(); - *ppTI = m_dispTypeInfo; - return S_OK; - } - - public: - ~SecuredSettings() - { - if(m_dispTypeInfo) - m_dispTypeInfo->Release(); - } - - /* IUnknown */ - virtual STDMETHODIMP IUnknown::QueryInterface(REFIID riid, void ** ppvObject) - { - using namespace MSTSCLib; - - if - ( - riid == IID_IUnknown || - riid == IID_IDispatch || - riid == IID_IMsTscSecuredSettings || - riid == IID_IMsRdpClientSecuredSettings - ) - { - *ppvObject = this; - Outer()->addRef(); - return S_OK; - } - else - { - *ppvObject = NULL; - return E_NOINTERFACE; - } - } - - virtual STDMETHODIMP_(ULONG) IUnknown::AddRef() - { - return Outer()->addRef(); - } - - virtual STDMETHODIMP_(ULONG) IUnknown::Release() - { - return Outer()->release(); - } - - /* IDispatch */ - virtual STDMETHODIMP IDispatch::GetTypeInfoCount(UINT * pctinfo) - { - *pctinfo = 1; - return S_OK; - } - - virtual STDMETHODIMP IDispatch::GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo ** ppTInfo) - { - if(iTInfo != 0) - return DISP_E_BADINDEX; - - return AcquireDispTypeInfo(ppTInfo); - } - - virtual STDMETHODIMP IDispatch::GetIDsOfNames(REFIID riid, LPOLESTR * rgszNames, UINT cNames, LCID lcid, DISPID * rgDispId) - { - HRESULT hr = LoadDispTypeInfo(); - - if(FAILED(hr)) - return hr; - - return m_dispTypeInfo->GetIDsOfNames(rgszNames, cNames, rgDispId); - } - - virtual STDMETHODIMP IDispatch::Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS * pDispParams, VARIANT * pVarResult, EXCEPINFO * pExcepInfo, UINT * puArgErr) - { - return m_dispTypeInfo->Invoke - ( - static_cast(this), - dispIdMember, - wFlags, - pDispParams, - pVarResult, - pExcepInfo, - puArgErr - ); - } - - /* IMsTscSecuredSettings */ - virtual STDMETHODIMP IMsTscSecuredSettings::put_StartProgram(BSTR pStartProgram) - { - return Outer()->SetProperty(Outer()->m_StartProgram, pStartProgram); - } - - virtual STDMETHODIMP IMsTscSecuredSettings::get_StartProgram(BSTR * pStartProgram) const - { - return Outer()->GetProperty(Outer()->m_StartProgram, pStartProgram); - } - - virtual STDMETHODIMP IMsTscSecuredSettings::put_WorkDir(BSTR pWorkDir) - { - return Outer()->SetProperty(Outer()->m_WorkDir, pWorkDir); - } - - virtual STDMETHODIMP IMsTscSecuredSettings::get_WorkDir(BSTR * pWorkDir) const - { - return Outer()->GetProperty(Outer()->m_WorkDir, pWorkDir); - } - - virtual STDMETHODIMP IMsTscSecuredSettings::put_FullScreen(long pfFullScreen) - { - return Outer()->put_FullScreen(!!pfFullScreen); - } - - virtual STDMETHODIMP IMsTscSecuredSettings::get_FullScreen(long * pfFullScreen) const - { - return Outer()->GetProperty(Outer()->m_FullScreen, pfFullScreen); - } - - /* IMsRdpClientSecuredSettings */ - virtual STDMETHODIMP IMsRdpClientSecuredSettings::put_KeyboardHookMode(long pkeyboardHookMode) - { - if(pkeyboardHookMode < 0 || pkeyboardHookMode > 2) - return E_INVALIDARG; - - return Outer()->SetProperty(Outer()->m_KeyboardHookMode, pkeyboardHookMode); - } - - virtual STDMETHODIMP IMsRdpClientSecuredSettings::get_KeyboardHookMode(long * pkeyboardHookMode) const - { - return Outer()->GetProperty(Outer()->m_KeyboardHookMode, pkeyboardHookMode); - } - - virtual STDMETHODIMP IMsRdpClientSecuredSettings::put_AudioRedirectionMode(long pAudioRedirectionMode) - { - if(pAudioRedirectionMode < 0 || pAudioRedirectionMode > 2) - return E_INVALIDARG; - - return Outer()->SetProperty(Outer()->m_AudioRedirectionMode, pAudioRedirectionMode); - } - - virtual STDMETHODIMP IMsRdpClientSecuredSettings::get_AudioRedirectionMode(long * pAudioRedirectionMode) const - { - return Outer()->GetProperty(Outer()->m_AudioRedirectionMode, pAudioRedirectionMode); - } - } - m_securedSettings; - - template HRESULT GetSecuredSettings(Interface ** ppSecuredSettings) - { - if(!m_SecuredSettingsEnabled) - return E_FAIL; - - addRef(); - *ppSecuredSettings = &m_securedSettings; - return S_OK; - } - - /* Type library loading */ - HRESULT LoadTypeLibrary() - { - if(m_typeLib) - return S_OK; - - // Get the DLL name of the ActiveX control - WCHAR szPath[MAX_PATH + 1]; - DWORD cchPathLen = GetModuleFileNameW(GetCurrentModule(), szPath, ARRAYSIZE(szPath) - 1); - - if(cchPathLen == 0) - return HRESULT_FROM_WIN32(GetLastError()); - - if(cchPathLen > ((ARRAYSIZE(szPath) - 1) - 2)) - return E_FAIL; - - // Append the resource id of the type library - assert(m_typeLibIndex < 10); - - szPath[cchPathLen + 0] = L'\\'; - szPath[cchPathLen + 1] = static_cast(L'0' + m_typeLibIndex); - szPath[cchPathLen + 2] = 0; - - // Load the type library - HRESULT hr = LoadTypeLibEx(szPath, REGKIND_NONE, &m_typeLib); - - if(FAILED(hr)) - return hr; - - assert(m_typeLib); - return S_OK; - } - - /* IDispatch type information */ - HRESULT LoadDispTypeInfo() - { - if(m_dispTypeInfo) - return S_OK; - - HRESULT hr = LoadTypeLibrary(); - - if(FAILED(hr)) - return hr; - - assert(MSTSCLib::IID_IMsRdpClient4 == MSTSCLib_Redist::IID_IMsRdpClient4); - - hr = m_typeLib->GetTypeInfoOfGuid(MSTSCLib::IID_IMsRdpClient4, &m_dispTypeInfo); - - if(FAILED(hr)) - return hr; - - assert(m_dispTypeInfo); - return S_OK; - } - - HRESULT AcquireDispTypeInfo(ITypeInfo ** ppTI) - { - HRESULT hr = LoadDispTypeInfo(); - - if(FAILED(hr)) - return hr; - - m_dispTypeInfo->AddRef(); - *ppTI = m_dispTypeInfo; - return S_OK; - } - -public: - /* Helpers for our various embedded children */ - static RdpClient * InnerToOuter(RdpClientInner * innerThis) - { - return CONTAINING_RECORD(innerThis, RdpClient, m_inner); - } - - static RdpClient * InnerToOuter(AdvancedSettings * innerThis) - { - return CONTAINING_RECORD(innerThis, RdpClient, m_advancedSettings); - } - - static RdpClient * InnerToOuter(SecuredSettings * innerThis) - { - return CONTAINING_RECORD(innerThis, RdpClient, m_securedSettings); - } - - static RdpClient * InnerToOuter(RDPCLIENT * innerThis) - { - return CONTAINING_RECORD(innerThis, RdpClient, m_protocolState); - } - - static const RdpClient * InnerToOuter(const RdpClientInner * innerThis) - { - return CONTAINING_RECORD(innerThis, RdpClient, m_inner); - } - - static const RdpClient * InnerToOuter(const AdvancedSettings * innerThis) - { - return CONTAINING_RECORD(innerThis, RdpClient, m_advancedSettings); - } - - static const RdpClient * InnerToOuter(const SecuredSettings * innerThis) - { - return CONTAINING_RECORD(innerThis, RdpClient, m_securedSettings); - } - - static const RdpClient * InnerToOuter(const RDPCLIENT * innerThis) - { - return CONTAINING_RECORD(innerThis, RdpClient, m_protocolState); - } - - RdpClientUI * GetUI() const - { - assert(m_clientUI); - return m_clientUI; - } - - /* Glue for rdesktop-core */ -public: - static bool OnPublicKey(RDPCLIENT * This, unsigned char * key, unsigned int key_size) - { - return InnerToOuter(This)->OnPublicKey(key, key_size); - } - - static void OnLogon(RDPCLIENT * This) - { - return InnerToOuter(This)->OnLogon(); - } - - static bool OnRedirect - ( - RDPCLIENT * This, - uint32 flags, - uint32 server_len, - wchar_t * server, - uint32 cookie_len, - char * cookie, - uint32 username_len, - wchar_t * username, - uint32 domain_len, - wchar_t * domain, - uint32 password_len, - wchar_t * password - ) - { - return InnerToOuter(This)->OnRedirect - ( - flags, - server_len, - server, - cookie_len, - cookie, - username_len, - username, - domain_len, - domain, - password_len, - password - ); - } - -private: - bool OnPublicKey(unsigned char * key, unsigned int key_size) - { - HRESULT hr = FireReceivedTSPublicKey(key, key_size); - - if(FAILED(hr)) - { - m_protocolState.disconnect_reason = 262; - return false; - } - - return hr == S_OK; - } - - void OnLogon() - { - m_loggedIn = true; - FireLoginComplete(); - } - - bool OnRedirect - ( - uint32 flags, - uint32 server_len, - wchar_t * server, - uint32 cookie_len, - char * cookie, - uint32 username_len, - wchar_t * username, - uint32 domain_len, - wchar_t * domain, - uint32 password_len, - wchar_t * password - ) - { - assert(m_Connected); - assert(!InsideApartment()); - assert(IsWindow(m_controlWindow)); - - RedirectArguments redirectArgs = - { - flags, - server_len, - server, - cookie_len, - cookie, - username_len, - username, - domain_len, - domain, - password_len, - password - }; - - return SendMessage(m_controlWindow, RDPC_WM_REDIRECT, 0, reinterpret_cast(&redirectArgs)) == 0; - } - -private: - static DWORD WINAPI ProtocolLoopThreadProc(LPVOID lpParam) - { - static_cast(lpParam)->ProtocolLoop(); - return 0; - } - - static VOID CALLBACK ConnectionTimerAPC(LPVOID, DWORD, DWORD) - { - } - - // FIXME: various potential inconsistencies due to lack of detailed documentation of expected semantics - void ProtocolLoop() - { - HANDLE waitingReconnection = NULL; - - // Retrieve the local hostname to be passed to the server - WCHAR hostname[MAX_COMPUTERNAME_LENGTH + 1]; - DWORD hostnameLen = ARRAYSIZE(hostname); - - if(!GetComputerNameW(hostname, &hostnameLen)) - hostname[0] = 0; - - // Set some connection flags - uint32 flags = RDP_LOGON_NORMAL; - - if(m_Compress) - flags |= RDP_LOGON_COMPRESSION | RDP_LOGON_COMPRESSION2; - - if(m_AudioRedirectionMode == 1) - flags |= RDP_LOGON_LEAVE_AUDIO; - - if(m_ClearTextPassword) - flags |= RDP_LOGON_AUTO; - - // Notify the container that the connection process is beginning now - FireConnecting(); - - // Set the overall connection timer, if a timeout is set - // BUGBUG: the timeout semantics are ambiguous and have been most probably misinterpreted - HANDLE overallConnectionTimer = NULL; - LARGE_INTEGER overallTimeout; - - if(m_overallConnectionTimeout) - { - overallTimeout.QuadPart = - ((m_overallConnectionTimeout * 1000 * 1000 * 1000) / 100); - - overallConnectionTimer = CreateWaitableTimer(NULL, FALSE, NULL); - - if(overallConnectionTimer == NULL) - goto l_Disconnect; - } - - if(overallConnectionTimer) - SetWaitableTimer(overallConnectionTimer, &overallTimeout, 0, ConnectionTimerAPC, NULL, FALSE); - - // Initial connection - BOOL disconnected = rdp_connect - ( - &m_protocolState, - m_Server, - flags, - m_UserName, - m_Domain, - m_ClearTextPassword, - m_StartProgram, - m_WorkDir, - hostname, - m_LoadBalanceInfo - ); - - if(overallConnectionTimer) - CancelWaitableTimer(overallConnectionTimer); - - if(disconnected) - goto l_Disconnect; - - // TODO: set the disconnect reason for every instance in which we abort the loop - for(;;) - { - BOOL deactivated = False; - uint32 extendedDisconnectReason = 0; - - m_actuallyConnected = true; - - // Notify the container of the successful connection - FireConnected(); - - // Main protocol loop - m_loggedIn = false; - rdp_main_loop(&m_protocolState, &deactivated, &extendedDisconnectReason); - rdp_disconnect(&m_protocolState); - - m_actuallyConnected = false; - - // Redirection - // BUGBUG: redirection is very messy and probably this implementation is not "canonical" - if(m_protocolState.redirect) - { - m_protocolState.redirect = False; - rdp_reset_state(&m_protocolState); - - // TODO: reset connection parameters - // This has to be done in the main thread, so use SendMessage on the control window - - flags |= RDP_LOGON_AUTO; - - // retry - continue; - } - - // Disconnection - m_ExtendedDisconnectReason = static_cast(extendedDisconnectReason); - - // Clean disconnection - if(deactivated) - break; - - BOOL success; - - long autoReconnections = 0; - long totalReconnections = 0; - - // Reconnection - // BUGBUG: reconnection semantics may not be entirely accurate - do - { - ++ totalReconnections; - - // ask the container whether we should reconnect - long reconnectMode = FireAutoReconnecting(m_protocolState.disconnect_reason, totalReconnections); - - // do not reconnect - if(reconnectMode == MSTSCLib::autoReconnectContinueStop) - goto l_Disconnect; - - // the container will reconnect or abort manually - if(reconnectMode == MSTSCLib::autoReconnectContinueManual) - { - assert(!m_reconnectAborted); - assert(m_protocolThreadWaitingReconnection == NULL); - - if(waitingReconnection == NULL) - { - waitingReconnection = CreateEvent(NULL, TRUE, FALSE, NULL); - - if(waitingReconnection == NULL) - // TODO: fatal error - goto l_Disconnect; - } - - m_protocolThreadWaitingReconnection = waitingReconnection; - - WaitForSingleObject(waitingReconnection, INFINITE); - - m_protocolThreadWaitingReconnection = NULL; - - if(m_reconnectAborted) - { - // FIXME? do we set the disconnection status here? - goto l_Disconnect; - } - } - // reconnect automatically - else - { - // automatic reconnection is disabled - if(m_EnableAutoReconnect) - break; - - // too many consecutive automatic reconnections - if(autoReconnections == m_MaxReconnectAttempts) - break; - - ++ autoReconnections; - } - - if(overallConnectionTimer) - SetWaitableTimer(overallConnectionTimer, &overallTimeout, 0, ConnectionTimerAPC, NULL, FALSE); - - // Reconnection - success = rdp_reconnect - ( - &m_protocolState, - m_Server, - flags, - m_UserName, - m_Domain, - m_ClearTextPassword, - m_StartProgram, - m_WorkDir, - hostname, - m_LoadBalanceInfo - ); - - if(overallConnectionTimer) - CancelWaitableTimer(overallConnectionTimer); - } - while(!success); - } - -l_Disconnect: - // Disconnected - FireDisconnected(m_protocolState.disconnect_reason); - - if(overallConnectionTimer) - CloseHandle(overallConnectionTimer); - } - - void JoinProtocolThread() - { - assert(m_protocolThread); - WaitForSingleObject(m_protocolThread, INFINITE); - CloseHandle(m_protocolThread); - m_protocolThread = NULL; - } - - void TerminateProtocolThread() - { - assert(m_protocolThread); - - // wake it up if it's waiting for a manual reconnection - if(m_protocolThreadWaitingReconnection) - { - assert(!m_reconnectAborted); - m_reconnectAborted = true; - SetEvent(m_protocolThreadWaitingReconnection); - } - // otherwise, attempt to interrupt any current blocking operation - else - { - // shutdown(m_protocolState.tcp.sock, SD_BOTH); // TBD: maybe in the future? - QueueUserAPC(DisconnectAPC, m_protocolThread, 0); - } - - assert(m_protocolThreadWaitingReconnection == NULL); - } - - void PerformDisconnect(long reason) - { - assert(InsideApartment()); - assert(m_Connected); - - // TODO: notify virtual channels - - // TODO: do any other disconnection work here... - - // Put the control in the disconnected state - m_Connected = false; - m_loggedIn = false; - - // Notify the container - VARIANTARG arg = { }; - - arg.vt = VT_I4; - arg.lVal = reason; - - FireEventInsideApartment(4, &arg, 1); - } - -public: - /* Startup initialization */ - static BOOL Startup() - { - if(!RdpClientUI::Startup()) - return FALSE; - - WNDCLASSEX wcex = { sizeof(wcex) }; - - wcex.style = CS_HREDRAW | CS_VREDRAW; - wcex.lpfnWndProc = ControlWindowProc; - wcex.hInstance = GetCurrentModule(); - wcex.hCursor = LoadCursor(NULL, IDC_ARROW); - wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); - wcex.lpszClassName = TEXT("MissTosca_Control"); - - return RegisterClassEx(&wcex);; - } - - static void Shutdown() - { - UnregisterClass(TEXT("MissTosca_Control"), GetCurrentModule()); - } - - /* Class factory */ - static HRESULT CreateInstance(REFCLSID rclsid, unsigned libIndex, IUnknown * punkOuter, REFIID riid, void ** ppObj) - { - RdpClient * obj = new RdpClient(rclsid, libIndex, punkOuter); - - if(obj == NULL) - return E_OUTOFMEMORY; - - HRESULT hr = obj->m_inner.QueryInterface(riid, ppObj); - - if(FAILED(hr)) - { - delete obj; - return hr; - } - - assert(obj->m_refCount == 1); - assert(*ppObj != NULL); - - return S_OK; - } - -private: - /* Connection point enumerator */ - class CEnumConnectionPoints: public IEnumConnectionPoints - { - private: - LONG m_refCount; - IConnectionPoint * m_cp; - bool m_done; - - public: - CEnumConnectionPoints(IConnectionPoint * cp): m_refCount(1), m_cp(cp), m_done(false) - { - assert(m_cp); - m_cp->AddRef(); - } - - CEnumConnectionPoints(const CEnumConnectionPoints& ecp): m_refCount(1), m_cp(ecp.m_cp), m_done(ecp.m_done) - { - assert(m_cp); - m_cp->AddRef(); - } - - ~CEnumConnectionPoints() - { - assert(m_cp); - m_cp->Release(); - } - - virtual STDMETHODIMP QueryInterface(REFIID riid, void ** ppvObject) - { - if(riid == IID_IUnknown || riid == IID_IEnumConnectionPoints) - { - *ppvObject = this; - return S_OK; - } - else - { - *ppvObject = NULL; - return E_NOINTERFACE; - } - } - - virtual STDMETHODIMP_(ULONG) AddRef() - { - return InterlockedIncrement(&m_refCount); - } - - virtual STDMETHODIMP_(ULONG) Release() - { - LONG n = InterlockedDecrement(&m_refCount); - - if(n == 0) - delete this; - - return n; - } - - virtual STDMETHODIMP Next(ULONG cConnections, LPCONNECTIONPOINT * ppCP, ULONG * pcFetched) - { - if(cConnections == 0 || m_done) - return S_FALSE; - - m_done = true; - m_cp->AddRef(); - *ppCP = m_cp; - *pcFetched = 1; - - return S_OK; - } - - virtual STDMETHODIMP Skip(ULONG cConnections) - { - if(cConnections == 0) - return S_OK; - - if(cConnections == 1 && !m_done) - { - m_done = true; - return S_OK; - } - - assert(cConnections > 1 || m_done); - - return S_FALSE; - } - - virtual STDMETHODIMP Reset() - { - m_done = false; - return S_OK; - } - - virtual STDMETHODIMP Clone(IEnumConnectionPoints ** ppEnum) - { - if(ppEnum == NULL) - return E_POINTER; - - *ppEnum = new CEnumConnectionPoints(*this); - - if(*ppEnum == NULL) - return E_OUTOFMEMORY; - - return S_OK; - } - }; - - /* Pay no attention, ActiveX glue... */ - LRESULT ControlWindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam) - { - switch(uMsg) - { - case WM_SIZE: - { - // TODO: resize UI - } - - return 0; - - case WM_PAINT: - { - LPCWSTR text = NULL; - - if(!m_Connected) - text = m_DisconnectedText; - else if(m_actuallyConnected) - text = m_ConnectedStatusText; - else - text = m_ConnectingText; - - RECT clientRect; - GetClientRect(m_controlWindow, &clientRect); - - PAINTSTRUCT ps; - HDC hdc = BeginPaint(m_controlWindow, &ps); - - SetBkColor(hdc, GetSysColor(COLOR_WINDOW)); - SetTextColor(hdc, GetSysColor(COLOR_WINDOWTEXT)); - SelectObject(hdc, GetStockObject(SYSTEM_FONT)); - - RECT textRect = clientRect; - - DrawTextW - ( - hdc, - text, - -1, - &textRect, - DT_CENTER | DT_EDITCONTROL | DT_END_ELLIPSIS | DT_NOPREFIX | DT_WORDBREAK | DT_CALCRECT - ); - - if(textRect.right > clientRect.right) - textRect.right = clientRect.right; - - if(textRect.bottom > clientRect.bottom) - textRect.bottom = clientRect.bottom; - - textRect.left = (clientRect.right - textRect.right) / 2; - textRect.right += textRect.left; - textRect.top = (clientRect.bottom - textRect.bottom) / 2; - textRect.bottom += textRect.top; - - DrawTextW - ( - hdc, - text, - -1, - &textRect, - DT_CENTER | DT_EDITCONTROL | DT_END_ELLIPSIS | DT_NOPREFIX | DT_WORDBREAK - ); - - EndPaint(m_controlWindow, &ps); - } - - return 0; - - default: - { - LRESULT result; - - if(HandleEvent(uMsg, wParam, lParam, result)) - return result; - } - - break; - } - - return DefWindowProc(m_controlWindow, uMsg, wParam, lParam); - } - - static LRESULT CALLBACK ControlWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) - { - if(uMsg == WM_CREATE) - { - SetWindowLongPtr - ( - hwnd, - GWLP_USERDATA, - (LONG_PTR)reinterpret_cast(lParam)->lpCreateParams - ); - } - - RdpClient * Self = reinterpret_cast(GetWindowLongPtr(hwnd, GWLP_USERDATA)); - assert(Self); - - return Self->ControlWindowProc(uMsg, wParam, lParam); - } - - HRESULT CreateControlWindow(HWND hwndParent) - { - m_controlWindow = CreateWindow - ( - TEXT("MissTosca_Control"), - NULL, - WS_CHILD | WS_CLIPCHILDREN, - CW_USEDEFAULT, - CW_USEDEFAULT, - CW_USEDEFAULT, - CW_USEDEFAULT, - hwndParent, - NULL, - GetCurrentModule(), - this - ); - - if(m_controlWindow == NULL) - return HRESULT_FROM_WIN32(GetLastError()); - - m_UIParentWindowHandle = m_controlWindow; - return S_OK; - } - - HRESULT DestroyControlWindow() - { - if(m_controlWindow == NULL) - return S_FALSE; - - HWND controlWindow = NULL; - std::swap(controlWindow, m_controlWindow); - DestroyWindow(controlWindow); - return S_OK; - } - - HRESULT Activate(LONG iVerb, IOleClientSite * pActiveSite, HWND hwndParent, LPCRECT lprcPosRect) - { - if(pActiveSite == NULL) - pActiveSite = m_clientSite; - - if(pActiveSite == NULL) - return E_FAIL; - - // TODO: store this until we are closed or deactivated - IOleInPlaceSite * site; - - HRESULT hr = pActiveSite->QueryInterface(&site); - - if(FAILED(hr)) - return hr; - - IOleInPlaceFrame * frame = NULL; - IOleInPlaceUIWindow * uiWindow = NULL; - - for(;;) - { - hr = site->CanInPlaceActivate(); - - if(hr == S_FALSE) - hr = E_FAIL; - - if(FAILED(hr)) - break; - - site->OnInPlaceActivate(); - - if(hwndParent == NULL) - { - hr = site->GetWindow(&hwndParent); - - if(FAILED(hr)) - break; - } - - RECT rcPos; - RECT rcClip; - OLEINPLACEFRAMEINFO frameInfo = { sizeof(frameInfo) }; - - site->GetWindowContext(&frame, &uiWindow, &rcPos, &rcClip, &frameInfo); - - if(lprcPosRect == NULL) - lprcPosRect = &rcPos; - - if(m_controlWindow) - ShowWindow(m_controlWindow, SW_SHOW); - else - { - hr = CreateControlWindow(hwndParent); - - if(FAILED(hr)) - break; - } - - SetObjectRects(lprcPosRect, &rcClip); - - // UI activation - if((iVerb == OLEIVERB_PRIMARY || iVerb == OLEIVERB_UIACTIVATE) && !m_uiActive) - { - m_uiActive = true; - - hr = site->OnUIActivate(); - - if(FAILED(hr)) - break; - - SetWindowPos - ( - m_controlWindow, - NULL, - lprcPosRect->left, - lprcPosRect->top, - lprcPosRect->right - lprcPosRect->left, - lprcPosRect->bottom - lprcPosRect->top, - SWP_SHOWWINDOW - ); - - if(frame) - { - frame->SetActiveObject(this, NULL); - frame->SetBorderSpace(NULL); - } - - if(uiWindow) - { - uiWindow->SetActiveObject(this, NULL); - uiWindow->SetBorderSpace(NULL); - } - } - - break; - } - - if(uiWindow) - uiWindow->Release(); - - if(frame) - frame->Release(); - - site->Release(); - - if(SUCCEEDED(hr)) - pActiveSite->ShowObject(); - - return hr; - } - -public: - /* IUnknown */ - /* - NOTE: this is the delegating implementation, to support aggregation. The actual - implementation is RdpClientInner, above - */ - virtual STDMETHODIMP IUnknown::QueryInterface(REFIID riid, void ** ppvObject) - { - return m_punkOuter->QueryInterface(riid, ppvObject); - } - - virtual STDMETHODIMP_(ULONG) IUnknown::AddRef() - { - return m_punkOuter->AddRef(); - } - - virtual STDMETHODIMP_(ULONG) IUnknown::Release() - { - return m_punkOuter->Release(); - } - - /* IDispatch */ - virtual STDMETHODIMP IDispatch::GetTypeInfoCount(UINT * pctinfo) - { - *pctinfo = 1; - return S_OK; - } - - virtual STDMETHODIMP IDispatch::GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo ** ppTInfo) - { - if(iTInfo != 0) - return DISP_E_BADINDEX; - - return AcquireDispTypeInfo(ppTInfo); - } - - virtual STDMETHODIMP IDispatch::GetIDsOfNames(REFIID riid, LPOLESTR * rgszNames, UINT cNames, LCID lcid, DISPID * rgDispId) - { - HRESULT hr = LoadDispTypeInfo(); - - if(FAILED(hr)) - return hr; - - return m_dispTypeInfo->GetIDsOfNames(rgszNames, cNames, rgDispId); - } - - virtual STDMETHODIMP IDispatch::Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS * pDispParams, VARIANT * pVarResult, EXCEPINFO * pExcepInfo, UINT * puArgErr) - { - HRESULT hr = LoadDispTypeInfo(); - - if(FAILED(hr)) - return hr; - - return m_dispTypeInfo->Invoke - ( - static_cast(this), - dispIdMember, - wFlags, - pDispParams, - pVarResult, - pExcepInfo, - puArgErr - ); - } - - /* IConnectionPoint */ - virtual STDMETHODIMP GetConnectionInterface(IID * pIID) - { - if(pIID == NULL) - return E_POINTER; - - *pIID = MSTSCLib::DIID_IMsTscAxEvents; - return S_OK; - } - - virtual STDMETHODIMP GetConnectionPointContainer(IConnectionPointContainer ** ppCPC) - { - if(ppCPC == NULL) - return E_POINTER; - - addRef(); - *ppCPC = this; - return S_OK; - } - - virtual STDMETHODIMP Advise(IUnknown * pUnkSink, DWORD * pdwCookie) - { - MSTSCLib::IMsTscAxEvents * sink; - - if(FAILED(pUnkSink->QueryInterface(&sink))) - return CONNECT_E_CANNOTCONNECT; - - MSTSCLib::IMsTscAxEvents ** sinks = GetSinks(); - DWORD cookie = 0; - - if(m_EventSinksCount) - { - bool found = false; - - for(size_t i = 0; i < m_EventSinksCount; ++ i) - { - found = (sinks[i] == NULL); - - if(found) - { - cookie = static_cast(i); - break; - } - } - - if(!found) - { - MSTSCLib::IMsTscAxEvents ** newSinks = new MSTSCLib::IMsTscAxEvents *[m_EventSinksCount + 1]; - - if(newSinks == NULL) - { - sink->Release(); - return E_OUTOFMEMORY; - } - - std::copy(sinks, sinks + m_EventSinksCount, newSinks); - - m_EventSinks = newSinks; - sinks = newSinks; - - cookie = static_cast(m_EventSinksCount); - } - } - - sinks[cookie] = sink; - *pdwCookie = cookie; - - return S_OK; - } - - virtual STDMETHODIMP Unadvise(DWORD dwCookie) - { - MSTSCLib::IMsTscAxEvents ** sinks = GetSinks(); - - if(dwCookie >= m_EventSinksCount || sinks[dwCookie] == NULL) - return CONNECT_E_NOCONNECTION; - - sinks[dwCookie]->Release(); - sinks[dwCookie] = NULL; - - // BUGBUG: the array currently grows forever. Trim it whenever possible - - return S_OK; - } - - virtual STDMETHODIMP EnumConnections(IEnumConnections ** ppEnum) - { - // I see no real value in this - return E_NOTIMPL; - } - - /* IConnectionPointContainer */ - virtual STDMETHODIMP IConnectionPointContainer::EnumConnectionPoints(IEnumConnectionPoints ** ppEnum) - { - *ppEnum = new CEnumConnectionPoints(this); - - if(*ppEnum == NULL) - return E_OUTOFMEMORY; - - return S_OK; - } - - virtual STDMETHODIMP IConnectionPointContainer::FindConnectionPoint(REFIID riid, IConnectionPoint ** ppCP) - { - if(riid != MSTSCLib::DIID_IMsTscAxEvents) - return CONNECT_E_NOCONNECTION; - - addRef(); - *ppCP = this; - - return S_OK; - } - - /* IDataObject */ // 0/9 - virtual STDMETHODIMP IDataObject::GetData(FORMATETC * pformatetcIn, STGMEDIUM * pmedium) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IDataObject::GetDataHere(FORMATETC * pformatetc, STGMEDIUM * pmedium) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IDataObject::QueryGetData(FORMATETC * pformatetc) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IDataObject::GetCanonicalFormatEtc(FORMATETC * pformatectIn, FORMATETC * pformatetcOut) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IDataObject::SetData(FORMATETC * pformatetc, STGMEDIUM * pmedium, BOOL fRelease) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IDataObject::EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC ** ppenumFormatEtc) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IDataObject::DAdvise(FORMATETC * pformatetc, DWORD advf, IAdviseSink * pAdvSink, DWORD * pdwConnection) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IDataObject::DUnadvise(DWORD dwConnection) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IDataObject::EnumDAdvise(IEnumSTATDATA ** ppenumAdvise) - { - return E_NOTIMPL; - } - - /* IObjectSafety */ - virtual STDMETHODIMP IObjectSafety::GetInterfaceSafetyOptions(REFIID riid, DWORD * pdwSupportedOptions, DWORD * pdwEnabledOptions) - { - if(pdwSupportedOptions == NULL || pdwEnabledOptions == NULL) - return E_POINTER; - - if(riid != IID_IDispatch) - return E_NOINTERFACE; - - *pdwSupportedOptions = INTERFACESAFE_FOR_UNTRUSTED_CALLER; - *pdwEnabledOptions = m_SafetyOptions; - return S_OK; - } - - virtual STDMETHODIMP IObjectSafety::SetInterfaceSafetyOptions(REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions) - { - if(riid != IID_IDispatch) - return E_NOINTERFACE; - - m_SafetyOptions = dwEnabledOptions & (dwOptionSetMask & INTERFACESAFE_FOR_UNTRUSTED_CALLER); - return S_OK; - } - - /* IOleControl */ // 3/4 - virtual STDMETHODIMP IOleControl::GetControlInfo(CONTROLINFO * pCI) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IOleControl::OnMnemonic(MSG * pMsg) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IOleControl::OnAmbientPropertyChange(DISPID dispID) - { - return S_OK; - } - - virtual STDMETHODIMP IOleControl::FreezeEvents(BOOL bFreeze) - { - if(bFreeze) - InterlockedIncrement(&m_freezeEvents); - else if(InterlockedDecrement(&m_freezeEvents) == 0) - UnfreezeEvents(); - - return S_OK; - } - - /* IOleInPlaceActiveObject */ // 3/5 - virtual STDMETHODIMP IOleInPlaceActiveObject::TranslateAccelerator(LPMSG lpmsg) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IOleInPlaceActiveObject::OnFrameWindowActivate(BOOL fActivate) - { - // TODO - return E_NOTIMPL; - } - - virtual STDMETHODIMP IOleInPlaceActiveObject::OnDocWindowActivate(BOOL fActivate) - { - // TODO - return E_NOTIMPL; - } - - virtual STDMETHODIMP IOleInPlaceActiveObject::ResizeBorder(LPCRECT prcBorder, IOleInPlaceUIWindow * pUIWindow, BOOL fFrameWindow) - { - return S_OK; - } - - virtual STDMETHODIMP IOleInPlaceActiveObject::EnableModeless(BOOL fEnable) - { - return S_OK; - } - - /* IOleInPlaceObject */ // 1/4 - virtual STDMETHODIMP IOleInPlaceObject::InPlaceDeactivate() - { - // TODO: UIDeactivate, destroy window, inplacesite->OnInPlaceDeactivate - return E_NOTIMPL; - } - - virtual STDMETHODIMP IOleInPlaceObject::UIDeactivate() - { - // TODO - return E_NOTIMPL; - } - - virtual STDMETHODIMP IOleInPlaceObject::SetObjectRects(LPCRECT lprcPosRect, LPCRECT lprcClipRect) - { - if(m_controlWindow == NULL) - return E_FAIL; - - MoveWindow - ( - m_controlWindow, - lprcPosRect->left, - lprcPosRect->top, - lprcPosRect->right - lprcPosRect->left, - lprcPosRect->bottom - lprcPosRect->top, - TRUE - ); - - SetWindowRgn(m_controlWindow, CreateRectRgnIndirect(lprcClipRect), TRUE); - - return E_NOTIMPL; - } - - virtual STDMETHODIMP IOleInPlaceObject::ReactivateAndUndo() - { - return E_NOTIMPL; - } - - /* IOleObject */ // 18/21 - virtual STDMETHODIMP IOleObject::SetClientSite(IOleClientSite * pClientSite) - { - if(m_clientSite) - m_clientSite->Release(); - - m_clientSite = pClientSite; - - if(m_clientSite) - m_clientSite->AddRef(); - - return S_OK; - } - - virtual STDMETHODIMP IOleObject::GetClientSite(IOleClientSite ** ppClientSite) - { - if(ppClientSite == NULL) - return E_POINTER; - - if(m_clientSite) - m_clientSite->AddRef(); - - *ppClientSite = m_clientSite; - return S_OK; - } - - virtual STDMETHODIMP IOleObject::SetHostNames(LPCOLESTR szContainerApp, LPCOLESTR szContainerObj) - { - return S_OK; - } - - virtual STDMETHODIMP IOleObject::Close(DWORD dwSaveOption) - { - // TODO: deactivate, destroy window, release in-place site, release advise sink - return E_NOTIMPL; // TODO - } - - virtual STDMETHODIMP IOleObject::SetMoniker(DWORD dwWhichMoniker, IMoniker * pmk) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IOleObject::GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker ** ppmk) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IOleObject::InitFromData(IDataObject * pDataObject, BOOL fCreation, DWORD dwReserved) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IOleObject::GetClipboardData(DWORD dwReserved, IDataObject ** ppDataObject) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IOleObject::DoVerb(LONG iVerb, LPMSG lpmsg, IOleClientSite * pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect) - { - HRESULT hr; - - switch(iVerb) - { - case OLEIVERB_PRIMARY: - case OLEIVERB_SHOW: - case OLEIVERB_UIACTIVATE: - case OLEIVERB_INPLACEACTIVATE: - hr = S_OK; - break; - - default: - if(iVerb > 0) - hr = OLEOBJ_S_INVALIDVERB; - else - hr = E_NOTIMPL; - } - - if(FAILED(hr)) - return hr; - - HRESULT hrActivate = Activate(iVerb, pActiveSite, hwndParent, lprcPosRect); - - if(FAILED(hrActivate)) - hr = hrActivate; - - return hr; - } - - virtual STDMETHODIMP IOleObject::EnumVerbs(IEnumOLEVERB ** ppEnumOleVerb) - { - return OleRegEnumVerbs(m_classId, ppEnumOleVerb); - } - - virtual STDMETHODIMP IOleObject::Update() - { - return S_OK; - } - - virtual STDMETHODIMP IOleObject::IsUpToDate() - { - return S_OK; - } - - virtual STDMETHODIMP IOleObject::GetUserClassID(CLSID * pClsid) - { - *pClsid = m_classId; - return S_OK; - } - - virtual STDMETHODIMP IOleObject::GetUserType(DWORD dwFormOfType, LPOLESTR * pszUserType) - { - return OleRegGetUserType(m_classId, dwFormOfType, pszUserType); - } - - virtual STDMETHODIMP IOleObject::SetExtent(DWORD dwDrawAspect, SIZEL * psizel) - { - // TODO: resize - return E_NOTIMPL; - } - - virtual STDMETHODIMP IOleObject::GetExtent(DWORD dwDrawAspect, SIZEL * psizel) - { - // TODO: return size - return E_NOTIMPL; - } - - HRESULT NeedAdviseHolder() - { - if(m_adviseHolder) - return S_OK; - - return CreateOleAdviseHolder(&m_adviseHolder); - } - - virtual STDMETHODIMP IOleObject::Advise(IAdviseSink * pAdvSink, DWORD * pdwConnection) - { - HRESULT hr = NeedAdviseHolder(); - - if(FAILED(hr)) - return hr; - - return m_adviseHolder->Advise(pAdvSink, pdwConnection); - } - - virtual STDMETHODIMP IOleObject::Unadvise(DWORD dwConnection) - { - HRESULT hr = NeedAdviseHolder(); - - if(FAILED(hr)) - return hr; - - return m_adviseHolder->Unadvise(dwConnection); - } - - virtual STDMETHODIMP IOleObject::EnumAdvise(IEnumSTATDATA ** ppenumAdvise) - { - HRESULT hr = NeedAdviseHolder(); - - if(FAILED(hr)) - return hr; - - return m_adviseHolder->EnumAdvise(ppenumAdvise); - } - - virtual STDMETHODIMP IOleObject::GetMiscStatus(DWORD dwAspect, DWORD * pdwStatus) - { - return OleRegGetMiscStatus(m_classId, dwAspect, pdwStatus); - } - - virtual STDMETHODIMP IOleObject::SetColorScheme(LOGPALETTE * pLogpal) - { - return E_NOTIMPL; - } - - /* IOleWindow */ - virtual STDMETHODIMP IOleWindow::GetWindow(HWND * phwnd) - { - if(phwnd == NULL) - return E_POINTER; - - if(m_controlWindow == NULL) - return E_FAIL; - - *phwnd = m_controlWindow; - return S_OK; - } - - virtual STDMETHODIMP IOleWindow::ContextSensitiveHelp(BOOL fEnterMode) - { - return E_NOTIMPL; - } - - /* IPersist */ - virtual STDMETHODIMP IPersist::GetClassID(CLSID * pClassID) - { - *pClassID = m_classId; - return S_OK; - } - - /* IPersistPropertyBag */ // 0/3 - virtual STDMETHODIMP IPersistPropertyBag::InitNew() - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IPersistPropertyBag::Load(IPropertyBag * pPropBag, IErrorLog * pErrorLog) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IPersistPropertyBag::Save(IPropertyBag * pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties) - { - return E_NOTIMPL; - } - - /* IPersistStorage */ // 0/6 - virtual STDMETHODIMP IPersistStorage::IsDirty() - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IPersistStorage::InitNew(IStorage * pStg) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IPersistStorage::Load(IStorage * pStg) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IPersistStorage::Save(IStorage * pStgSave, BOOL fSameAsLoad) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IPersistStorage::SaveCompleted(IStorage * pStgNew) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IPersistStorage::HandsOffStorage() - { - return E_NOTIMPL; - } - - /* IPersistStreamInit */ // 0/5 - virtual STDMETHODIMP IPersistStreamInit::IsDirty() - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IPersistStreamInit::Load(LPSTREAM pStm) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IPersistStreamInit::Save(LPSTREAM pStm, BOOL fClearDirty) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IPersistStreamInit::GetSizeMax(ULARGE_INTEGER * pCbSize) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IPersistStreamInit::InitNew() - { - return E_NOTIMPL; - } - - /* IProvideClassInfo */ - virtual STDMETHODIMP IProvideClassInfo::GetClassInfo(ITypeInfo ** ppTI) - { - HRESULT hr = LoadTypeLibrary(); - - if(FAILED(hr)) - return hr; - - return m_typeLib->GetTypeInfoOfGuid(m_classId, ppTI); - } - - /* IProvideClassInfo2 */ - virtual STDMETHODIMP IProvideClassInfo2::GetGUID(DWORD dwGuidKind, GUID * pGUID) - { - if(dwGuidKind != GUIDKIND_DEFAULT_SOURCE_DISP_IID) - return E_INVALIDARG; - - *pGUID = MSTSCLib::DIID_IMsTscAxEvents; - return S_OK; - } - - /* IQuickActivate */ - virtual STDMETHODIMP IQuickActivate::QuickActivate(QACONTAINER * pQaContainer, QACONTROL * pQaControl) - { - if(pQaContainer == NULL || pQaControl == NULL) - return E_POINTER; - - if(pQaContainer->cbSize < sizeof(*pQaContainer) || pQaControl->cbSize < sizeof(*pQaControl)) - return E_INVALIDARG; - - ULONG cb = pQaControl->cbSize; - ZeroMemory(pQaControl, cb); - pQaControl->cbSize = cb; - - SetClientSite(pQaContainer->pClientSite); - - if(pQaContainer->pAdviseSink) - SetAdvise(DVASPECT_CONTENT, 0, pQaContainer->pAdviseSink); - - if(pQaContainer->pUnkEventSink) - Advise(pQaContainer->pUnkEventSink, &pQaControl->dwEventCookie); - - GetMiscStatus(DVASPECT_CONTENT, &pQaControl->dwMiscStatus); - - return E_NOTIMPL; - } - - virtual STDMETHODIMP IQuickActivate::SetContentExtent(LPSIZEL pSizel) - { - return SetExtent(DVASPECT_CONTENT, pSizel); - } - - virtual STDMETHODIMP IQuickActivate::GetContentExtent(LPSIZEL pSizel) - { - return GetExtent(DVASPECT_CONTENT, pSizel); - } - - /* IViewObject */ // 3/6 - virtual STDMETHODIMP IViewObject::Draw(DWORD dwDrawAspect, LONG lindex, void * pvAspect, DVTARGETDEVICE * ptd, HDC hdcTargetDev, HDC hdcDraw, LPCRECTL lprcBounds, LPCRECTL lprcWBounds, BOOL (STDMETHODCALLTYPE * pfnContinue)(ULONG_PTR dwContinue), ULONG_PTR dwContinue) - { - return E_NOTIMPL; // TODO - } - - virtual STDMETHODIMP IViewObject::GetColorSet(DWORD dwDrawAspect, LONG lindex, void * pvAspect, DVTARGETDEVICE * ptd, HDC hicTargetDev, LOGPALETTE ** ppColorSet) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IViewObject::Freeze(DWORD dwDrawAspect, LONG lindex, void * pvAspect, DWORD * pdwFreeze) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IViewObject::Unfreeze(DWORD dwFreeze) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IViewObject::SetAdvise(DWORD aspects, DWORD advf, IAdviseSink * pAdvSink) - { - return E_NOTIMPL; // TODO - } - - virtual STDMETHODIMP IViewObject::GetAdvise(DWORD * pAspects, DWORD * pAdvf, IAdviseSink ** ppAdvSink) - { - return E_NOTIMPL; // TODO - } - - /* IViewObject2 */ // 0/1 - virtual STDMETHODIMP IViewObject2::GetExtent(DWORD dwDrawAspect, LONG lindex, DVTARGETDEVICE * ptd, LPSIZEL lpsizel) - { - return E_NOTIMPL; // TODO - } - - /* IMsTscAx */ // 23/30 - virtual STDMETHODIMP IMsTscAx::put_Server(BSTR pServer) - { - // FIXME: convert the hostname to Punycode, not the ANSI codepage - return SetProperty(m_Server, pServer); - } - - virtual STDMETHODIMP IMsTscAx::get_Server(BSTR * pServer) const - { - return GetProperty(m_Server, pServer); - } - - virtual STDMETHODIMP IMsTscAx::put_Domain(BSTR pDomain) - { - return SetProperty(m_Domain, pDomain); - } - - virtual STDMETHODIMP IMsTscAx::get_Domain(BSTR * pDomain) const - { - return GetProperty(m_Domain, pDomain); - } - - virtual STDMETHODIMP IMsTscAx::put_UserName(BSTR pUserName) - { - return SetProperty(m_UserName, pUserName); - } - - virtual STDMETHODIMP IMsTscAx::get_UserName(BSTR * pUserName) const - { - return GetProperty(m_UserName, pUserName); - } - - virtual STDMETHODIMP IMsTscAx::put_DisconnectedText(BSTR pDisconnectedText) - { - return SetProperty(m_DisconnectedText, pDisconnectedText); - } - - virtual STDMETHODIMP IMsTscAx::get_DisconnectedText(BSTR * pDisconnectedText) const - { - return GetProperty(m_DisconnectedText, pDisconnectedText); - } - - virtual STDMETHODIMP IMsTscAx::put_ConnectingText(BSTR pConnectingText) - { - return SetProperty(m_ConnectingText, pConnectingText); - } - - virtual STDMETHODIMP IMsTscAx::get_ConnectingText(BSTR * pConnectingText) const - { - return GetProperty(m_ConnectingText, pConnectingText); - } - - virtual STDMETHODIMP IMsTscAx::get_Connected(short * pIsConnected) const - { - return GetProperty(m_Connected, pIsConnected); - } - - virtual STDMETHODIMP IMsTscAx::put_DesktopWidth(long pVal) - { - if(pVal < 200 || pVal > 1600) - return E_INVALIDARG; - - return SetProperty(m_DesktopWidth, pVal); - } - - virtual STDMETHODIMP IMsTscAx::get_DesktopWidth(long * pVal) const - { - return GetProperty(m_DesktopWidth, pVal); - } - - virtual STDMETHODIMP IMsTscAx::put_DesktopHeight(long pVal) - { - if(pVal < 200 || pVal > 1200) - return E_INVALIDARG; - - return SetProperty(m_DesktopHeight, pVal); - } - - virtual STDMETHODIMP IMsTscAx::get_DesktopHeight(long * pVal) const - { - return GetProperty(m_DesktopHeight, pVal); - } - - virtual STDMETHODIMP IMsTscAx::put_StartConnected(long pfStartConnected) - { - return SetProperty(m_StartConnected, pfStartConnected); - } - - virtual STDMETHODIMP IMsTscAx::get_StartConnected(long * pfStartConnected) const - { - return GetProperty(m_StartConnected, pfStartConnected); - } - - virtual STDMETHODIMP IMsTscAx::get_HorizontalScrollBarVisible(long * pfHScrollVisible) const - { - return E_NOTIMPL; // TODO - } - - virtual STDMETHODIMP IMsTscAx::get_VerticalScrollBarVisible(long * pfVScrollVisible) const - { - return E_NOTIMPL; // TODO - } - - virtual STDMETHODIMP IMsTscAx::put_FullScreenTitle(BSTR rhs) - { - // TODO - return E_NOTIMPL; - } - - virtual STDMETHODIMP IMsTscAx::get_CipherStrength(long * pCipherStrength) const - { - if(pCipherStrength == NULL) - return E_INVALIDARG; - - *pCipherStrength = 128; // BUGBUG: a later version may change this. Use a compile-time constant - return S_OK; - } - - virtual STDMETHODIMP IMsTscAx::get_Version(BSTR * pVersion) const - { - if(pVersion == NULL) - return E_INVALIDARG; - - BSTR version = SysAllocString(L"5.2.3790.1830"); // BUGBUG: don't use hardcoded string - - if(version == NULL) - return E_OUTOFMEMORY; - - *pVersion = version; - return S_OK; - } - - virtual STDMETHODIMP IMsTscAx::get_SecuredSettingsEnabled(long * pSecuredSettingsEnabled) const - { - // TODO: initialize m_SecuredSettingsEnabled as soon as we have an OLE client site - return GetProperty(m_SecuredSettingsEnabled, pSecuredSettingsEnabled); - } - - virtual STDMETHODIMP IMsTscAx::get_SecuredSettings(MSTSCLib::IMsTscSecuredSettings ** ppSecuredSettings) const - { - return GetSecuredSettings(ppSecuredSettings); - } - - virtual STDMETHODIMP IMsTscAx::get_AdvancedSettings(MSTSCLib::IMsTscAdvancedSettings ** ppAdvSettings) const - { - return GetAdvancedSettings(ppAdvSettings); - } - - virtual STDMETHODIMP IMsTscAx::get_Debugger(MSTSCLib::IMsTscDebug ** ppDebugger) const - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IMsTscAx::Connect() - { - if(m_Connected) - { - // Protocol thread waiting for a manual reconnection: wake it up - if(m_protocolThreadWaitingReconnection) - { - SetEvent(m_protocolThreadWaitingReconnection); - return S_OK; - } - - return E_FAIL; - } - - m_Connected = true; - - HRESULT hr; - - if(m_controlWindow == NULL) - { - hr = CreateControlWindow(NULL); - - if(FAILED(hr)) - return hr; - } - - for(;;) - { - // TODO: initialize plugin DLLs/channels - - m_clientUI = new RdpClientUI(); - - if(m_clientUI == NULL) - { - hr = E_OUTOFMEMORY; - break; - } - - m_clientUI->Initialize(m_controlWindow); - - m_protocolState.licence_username = BstrToLpsz(m_UserName); - - if(m_protocolState.licence_username == NULL) - { - hr = E_OUTOFMEMORY; - break; - } - - DWORD dwSize = ARRAYSIZE(m_protocolState.licence_hostname); - - if(!GetComputerNameA(m_protocolState.licence_hostname, &dwSize)) - { - hr = HRESULT_FROM_WIN32(GetLastError()); - break; - } - - // Keyboard layout - // BUGBUG: not too sure about the semantics - long keyboardLayout = -1; - WCHAR * endPtr = NULL; - - if(m_KeyboardLayoutString) - keyboardLayout = wcstol(m_KeyboardLayoutString, &endPtr, 0); - - // no keyboard layout specified or invalid keyboard layout: use current keyboard layout - if(endPtr == NULL || *endPtr == 0 || keyboardLayout == -1) - keyboardLayout = PtrToLong(GetKeyboardLayout(0)); // FIXME? use LOWORD()? - - m_protocolState.keylayout = keyboardLayout; - - // in case of failure, assume English (US) - if(m_protocolState.keylayout == 0) - m_protocolState.keylayout = MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US); - - // Physical keyboard information - m_protocolState.keyboard_type = GetKeyboardType(0); - m_protocolState.keyboard_subtype = GetKeyboardType(1); - m_protocolState.keyboard_functionkeys = GetKeyboardType(2); - - // in case of failure, assume an IBM Enhanced keyboard with 12 function keys - if(m_protocolState.keyboard_type == 0 || m_protocolState.keyboard_functionkeys == 0) - { - m_protocolState.keyboard_type = 4; - m_protocolState.keyboard_subtype = 0; - m_protocolState.keyboard_functionkeys = 12; - } - - // More initialization - m_protocolState.width = m_DesktopWidth; - m_protocolState.height = m_DesktopHeight; - m_protocolState.server_depth = m_ColorDepth; - m_protocolState.bitmap_compression = m_Compress ? TRUE : FALSE; - m_protocolState.bitmap_cache = True; // TODO - m_protocolState.bitmap_cache_persist_enable = False; // TODO - m_protocolState.bitmap_cache_precache = True; // FIXME? - m_protocolState.encryption = m_EncryptionEnabled ? TRUE : FALSE; // TBD: detect automatically - m_protocolState.packet_encryption = m_EncryptionEnabled ? TRUE : FALSE; - m_protocolState.desktop_save = True; // FIXME? tie to bitmap cache setting? - m_protocolState.polygon_ellipse_orders = True; - m_protocolState.use_rdp5 = True; // TBD: detect automatically - m_protocolState.console_session = m_ConnectToServerConsole ? TRUE : FALSE; - m_protocolState.rdp5_performanceflags = m_PerformanceFlags; - m_protocolState.tcp_port_rdp = m_RDPPort; - m_protocolState.rdp.current_status = 1; - - // TODO: cache tuning based on the provided parameters - - m_protocolState.cache.bmpcache_lru[0] = -1; - m_protocolState.cache.bmpcache_lru[1] = -1; - m_protocolState.cache.bmpcache_lru[2] = -1; - m_protocolState.cache.bmpcache_mru[0] = -1; - m_protocolState.cache.bmpcache_mru[1] = -1; - m_protocolState.cache.bmpcache_mru[2] = -1; - - DWORD dwIgnore; - m_protocolThread = CreateThread(NULL, 0, ProtocolLoopThreadProc, this, 0, &dwIgnore); - - hr = S_OK; - break; - } - - if(FAILED(hr)) - m_Connected = false; - - return hr; - } - - virtual STDMETHODIMP IMsTscAx::Disconnect() - { - if(!m_Connected) - return E_FAIL; - - // Terminate the protocol thread. On exit, it will fire the Disconnected event - TerminateProtocolThread(); - return S_OK; - } - - virtual STDMETHODIMP IMsTscAx::CreateVirtualChannels(BSTR newVal) - { - UINT strLength = SysStringLen(newVal); - - if(strLength < 1 || strLength > 300) - return E_INVALIDARG; - - return E_NOTIMPL; // TODO - } - - virtual STDMETHODIMP IMsTscAx::SendOnVirtualChannel(BSTR chanName, BSTR ChanData) - { - return E_NOTIMPL; // TODO - } - - /* IMsRdpClient */ // 6/10 - virtual STDMETHODIMP IMsRdpClient::put_ColorDepth(long pcolorDepth) - { - switch(pcolorDepth) - { - case 8: - case 15: - case 16: - case 24: - case 32: - break; - - default: - return E_INVALIDARG; - } - - return SetProperty(m_ColorDepth, pcolorDepth); - } - - virtual STDMETHODIMP IMsRdpClient::get_ColorDepth(long * pcolorDepth) const - { - return GetProperty(m_ColorDepth, pcolorDepth); - } - - virtual STDMETHODIMP IMsRdpClient::get_AdvancedSettings2(MSTSCLib::IMsRdpClientAdvancedSettings ** ppAdvSettings) const - { - return GetAdvancedSettings(ppAdvSettings); - } - - virtual STDMETHODIMP IMsRdpClient::get_SecuredSettings2(MSTSCLib::IMsRdpClientSecuredSettings ** ppSecuredSettings) const - { - return GetSecuredSettings(ppSecuredSettings); - } - - virtual STDMETHODIMP IMsRdpClient::get_ExtendedDisconnectReason(MSTSCLib::ExtendedDisconnectReasonCode * pExtendedDisconnectReason) const - { - return GetProperty(m_ExtendedDisconnectReason, pExtendedDisconnectReason); - } - - virtual STDMETHODIMP IMsRdpClient::put_FullScreen(VARIANT_BOOL pfFullScreen) - { - if(!m_Connected) - return E_FAIL; - - if(pfFullScreen && !m_SecuredSettingsEnabled) - return E_FAIL; - - // TODO - return E_NOTIMPL; - } - - virtual STDMETHODIMP IMsRdpClient::get_FullScreen(VARIANT_BOOL * pfFullScreen) const - { - return GetProperty(m_FullScreen, pfFullScreen); - } - - virtual STDMETHODIMP IMsRdpClient::SetVirtualChannelOptions(BSTR chanName, long chanOptions) - { - return E_NOTIMPL; // TODO - } - - virtual STDMETHODIMP IMsRdpClient::GetVirtualChannelOptions(BSTR chanName, long * pChanOptions) - { - return E_NOTIMPL; // TODO - } - - virtual STDMETHODIMP IMsRdpClient::RequestClose(MSTSCLib::ControlCloseStatus * pCloseStatus) - { - if(pCloseStatus == NULL) - return E_POINTER; - - if(!m_Connected) - { - *pCloseStatus = MSTSCLib::controlCloseCanProceed; - return S_OK; - } - - *pCloseStatus = MSTSCLib::controlCloseWaitForEvents; - - if(!PostMessage(m_controlWindow, RDPC_WM_REQUEST_CLOSE, 0, 0)) - return HRESULT_FROM_WIN32(GetLastError()); - - return S_OK; - } - - /* IMsRdpClient2 */ - virtual STDMETHODIMP IMsRdpClient2::get_AdvancedSettings3(MSTSCLib::IMsRdpClientAdvancedSettings2 ** ppAdvSettings) const - { - return GetAdvancedSettings(ppAdvSettings); - } - - virtual STDMETHODIMP IMsRdpClient2::put_ConnectedStatusText(BSTR pConnectedStatusText) - { - return SetProperty(m_ConnectedStatusText, pConnectedStatusText); - } - - virtual STDMETHODIMP IMsRdpClient2::get_ConnectedStatusText(BSTR * pConnectedStatusText) const - { - return GetProperty(m_ConnectedStatusText, pConnectedStatusText); - } - - /* IMsRdpClient3 */ - virtual STDMETHODIMP IMsRdpClient3::get_AdvancedSettings4(MSTSCLib::IMsRdpClientAdvancedSettings3 ** ppAdvSettings) const - { - return GetAdvancedSettings(ppAdvSettings); - } - - /* IMsRdpClient4 */ - virtual STDMETHODIMP IMsRdpClient4::get_AdvancedSettings5(MSTSCLib::IMsRdpClientAdvancedSettings4 ** ppAdvSettings5) const - { - return GetAdvancedSettings(ppAdvSettings5); - } - - /* IMsTscNonScriptable */ - virtual STDMETHODIMP IMsTscNonScriptable::put_ClearTextPassword(BSTR rhs) - { - return SetProperty(m_ClearTextPassword, rhs); - } - - virtual STDMETHODIMP IMsTscNonScriptable::put_PortablePassword(BSTR pPortablePass) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IMsTscNonScriptable::get_PortablePassword(BSTR * pPortablePass) const - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IMsTscNonScriptable::put_PortableSalt(BSTR pPortableSalt) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IMsTscNonScriptable::get_PortableSalt(BSTR * pPortableSalt) const - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IMsTscNonScriptable::put_BinaryPassword(BSTR pBinaryPassword) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IMsTscNonScriptable::get_BinaryPassword(BSTR * pBinaryPassword) const - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IMsTscNonScriptable::put_BinarySalt(BSTR pSalt) - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IMsTscNonScriptable::get_BinarySalt(BSTR * pSalt) const - { - return E_NOTIMPL; - } - - virtual STDMETHODIMP IMsTscNonScriptable::ResetPassword() - { - return SetProperty(m_ClearTextPassword, NULL); - } - - /* IMsRdpClientNonScriptable */ // 0/2 - virtual STDMETHODIMP IMsRdpClientNonScriptable::NotifyRedirectDeviceChange(MSTSCLib::UINT_PTR wParam, MSTSCLib::LONG_PTR lParam) - { - return E_NOTIMPL; // TODO - } - - virtual STDMETHODIMP IMsRdpClientNonScriptable::SendKeys(long numKeys, VARIANT_BOOL * pbArrayKeyUp, long * plKeyData) - { - // NOTE: the keys must be sent in a single, atomic sequence - // TODO: acquire the write lock - return E_NOTIMPL; // TODO - } - - /* IMsRdpClientNonScriptable2 */ - virtual STDMETHODIMP IMsRdpClientNonScriptable2::put_UIParentWindowHandle(HWND phwndUIParentWindowHandle) - { - return SetProperty(m_UIParentWindowHandle, phwndUIParentWindowHandle); - } - - virtual STDMETHODIMP IMsRdpClientNonScriptable2::get_UIParentWindowHandle(HWND * phwndUIParentWindowHandle) const - { - return GetProperty(m_UIParentWindowHandle, phwndUIParentWindowHandle); - } -}; - -#pragma warning(pop) - -/* More glue to interface to the rdesktop code */ -extern "C" -{ - -/* Orders */ -/* support routines */ -void ui_begin_update(RDPCLIENT * This) -{ - RdpClient::InnerToOuter(This)->GetUI()->Display_BeginUpdate(); -} - -void ui_end_update(RDPCLIENT * This) -{ - RdpClient::InnerToOuter(This)->GetUI()->Display_EndUpdate(); -} - -void ui_set_clip(RDPCLIENT * This, int x, int y, int cx, int cy) -{ - RdpClient::InnerToOuter(This)->GetUI()->Display_SetClip(x, y, cx, cy); -} - -void ui_reset_clip(RDPCLIENT * This) -{ - RdpClient::InnerToOuter(This)->GetUI()->Display_ResetClip(); -} - -/* blits */ -void ui_destblt(RDPCLIENT * This, uint8 opcode, int x, int y, int cx, int cy) -{ - RdpClient::InnerToOuter(This)->GetUI()->Display_DestBlt(opcode, x, y, cx, cy); -} - -void ui_memblt(RDPCLIENT * This, uint8 opcode, int x, int y, int cx, int cy, HBITMAP src, int srcx, int srcy) -{ - RdpClient::InnerToOuter(This)->GetUI()->Display_MemBlt(opcode, x, y, cx, cy, src, srcx, srcy); -} - -void ui_patblt(RDPCLIENT * This, uint8 opcode, int x, int y, int cx, int cy, BRUSH * brush, int bgcolour, int fgcolour) -{ - RdpClient::InnerToOuter(This)->GetUI()->Display_PatBlt(opcode, x, y, cx, cy, brush, bgcolour, fgcolour); -} - -void ui_screenblt(RDPCLIENT * This, uint8 opcode, int x, int y, int cx, int cy, int srcx, int srcy) -{ - RdpClient::InnerToOuter(This)->GetUI()->Display_ScreenBlt(opcode, x, y, cx, cy, srcx, srcy); -} - -void ui_triblt(RDPCLIENT * This, uint8 opcode, int x, int y, int cx, int cy, HBITMAP src, int srcx, int srcy, BRUSH * brush, int bgcolour, int fgcolour) -{ - RdpClient::InnerToOuter(This)->GetUI()->Display_TriBlt(opcode, x, y, cx, cy, src, srcx, srcy, brush, bgcolour, fgcolour); -} - -void ui_paint_bitmap(RDPCLIENT * This, int x, int y, int cx, int cy, int width, int height, uint8 * data) -{ - RdpClient::InnerToOuter(This)->GetUI()->Display_PaintBitmap(x, y, cx, cy, width, height, data); -} - -/* shapes */ -void ui_ellipse(RDPCLIENT * This, uint8 opcode, uint8 fillmode, int x, int y, int cx, int cy, BRUSH * brush, int bgcolour, int fgcolour) -{ - // TODO -// RdpClient::InnerToOuter(This)->GetUI()->Display_Ellipse(opcode, fillmode, x, y, cx, cy, brush, bgcolour, fgcolour); -} - -void ui_line(RDPCLIENT * This, uint8 opcode, int startx, int starty, int endx, int endy, PEN * pen) -{ - RdpClient::InnerToOuter(This)->GetUI()->Display_Line(opcode, startx, starty, endx, endy, pen); -} - -void ui_polygon(RDPCLIENT * This, uint8 opcode, uint8 fillmode, POINT * point, int npoints, BRUSH * brush, int bgcolour, int fgcolour) -{ - RdpClient::InnerToOuter(This)->GetUI()->Display_Polygon(opcode, fillmode, point, npoints, brush, bgcolour, fgcolour); -} - -void ui_polyline(RDPCLIENT * This, uint8 opcode, POINT * points, int npoints, PEN * pen) -{ - RdpClient::InnerToOuter(This)->GetUI()->Display_Polyline(opcode, points, npoints, pen); -} - -void ui_rect(RDPCLIENT * This, int x, int y, int cx, int cy, int colour) -{ - RdpClient::InnerToOuter(This)->GetUI()->Display_Rect(x, y, cx, cy, colour); -} - -/* text */ -void ui_draw_text -( - RDPCLIENT * This, - uint8 font, - uint8 flags, - uint8 opcode, - int mixmode, - int x, - int y, - int clipx, - int clipy, - int clipcx, - int clipcy, - int boxx, - int boxy, - int boxcx, - int boxcy, - BRUSH * brush, - int bgcolour, - int fgcolour, - uint8 * text, - uint8 length -) -{ - RdpClient::InnerToOuter(This)->GetUI()->Display_DrawText - ( - font, - flags, - opcode, - mixmode, - x, - y, - clipx, - clipy, - clipcx, - clipcy, - boxx, - boxy, - boxcx, - boxcy, - brush, - bgcolour, - fgcolour, - text, - length - ); -} - -/* desktop save/restore */ -void ui_desktop_save(RDPCLIENT * This, uint32 offset, int x, int y, int cx, int cy) -{ - RdpClient::InnerToOuter(This)->GetUI()->Display_SaveDesktop(offset, x, y, cx, cy); -} - -void ui_desktop_restore(RDPCLIENT * This, uint32 offset, int x, int y, int cx, int cy) -{ - RdpClient::InnerToOuter(This)->GetUI()->Display_RestoreDesktop(offset, x, y, cx, cy); -} - -/* Resources */ -/* bitmaps */ -HBITMAP ui_create_bitmap(RDPCLIENT * This, int width, int height, uint8 * data) -{ - return win32_create_dib(width, height, This->server_depth, data); -} - -void ui_destroy_bitmap(RDPCLIENT *, HBITMAP bmp) -{ - DeleteObject(bmp); -} - -/* palettes */ -HCOLOURMAP ui_create_colourmap(RDPCLIENT *, COLOURMAP * colours) -{ - return NULL; -} - -void ui_set_colourmap(RDPCLIENT * This, HCOLOURMAP map) -{ - // TODO -} - -/* cursors */ -HCURSOR ui_create_cursor(RDPCLIENT * This, unsigned int x, unsigned int y, int width, int height, uint8 * andmask, uint8 * xormask) -{ - uint8 * andbuf = NULL; - uint8 * xorbuf = NULL; - - uint8 * andbits = win32_convert_scanlines(width, - height, 1, 2, 4, andmask, &andbuf); - uint8 * xorbits = win32_convert_scanlines(width, height, 24, 2, 4, xormask, &xorbuf); - - HBITMAP hbmMask = CreateBitmap(width, height, 1, 1, andbits); - HBITMAP hbmColor = win32_create_dib(width, height, 24, xorbits); - - ICONINFO iconinfo; - iconinfo.fIcon = FALSE; - iconinfo.xHotspot = x; - iconinfo.yHotspot = y; - iconinfo.hbmMask = hbmMask; - iconinfo.hbmColor = hbmColor; - - HICON icon = CreateIconIndirect(&iconinfo); - - if(icon == NULL) - error("CreateIconIndirect %dx%d failed\n", width, height); - - if(andbuf) - delete[] andbuf; - - if(xorbuf) - delete[] xorbuf; - - DeleteObject(hbmMask); - DeleteObject(hbmColor); - - return icon; -} - -void ui_destroy_cursor(RDPCLIENT *, HCURSOR cursor) -{ - DestroyIcon(cursor); -} - -/* glyphs */ -HGLYPH ui_create_glyph(RDPCLIENT * This, int width, int height, const uint8 * data) -{ - uint8 * databuf = NULL; - uint8 * databits = win32_convert_scanlines(width, height, 1, 1, 2, data, &databuf); - - HBITMAP hbm = CreateBitmap(width, height, 1, 1, databits); - - if(databuf) - delete[] databuf; - - const uint8 * p = data; - int stride = alignup(alignup(width, 8) / 8, 1); - -#ifdef _DEBUG - printf("glyph %p\n", hbm); - - for(int i = 0; i < height; ++ i, p += stride) - { - for(int j = 0; j < width; ++ j) - { - int B = p[j / 8]; - int b = 8 - j % 8 - 1; - - if(B & (1 << b)) - fputs("##", stdout); - else - fputs("..", stdout); - } - - fputc('\n', stdout); - } - - fputc('\n', stdout); -#endif - - return hbm; -} - -void ui_destroy_glyph(RDPCLIENT *, HGLYPH glyph) -{ - DeleteObject(glyph); -} - -/* Input window */ -void ui_move_pointer(RDPCLIENT * This, int x, int y) -{ - // TODO -} - -void ui_set_cursor(RDPCLIENT * This, HCURSOR cursor) -{ - // TODO -} - -void ui_set_null_cursor(RDPCLIENT * This) -{ - // TODO -} - -/* Miscellaneous */ -void ui_resize_window(RDPCLIENT * This) -{ -} - -void ui_bell(RDPCLIENT *) -{ - MessageBeep(0); -} - -int ui_select(RDPCLIENT * This, SOCKET rdp_socket) -{ - return SleepEx(0, TRUE) == WAIT_IO_COMPLETION; -} - -/* Events */ -BOOL event_pubkey(RDPCLIENT * This, unsigned char * key, unsigned int key_size) -{ - if(!RdpClient::OnPublicKey(This, key, key_size)) - return FALSE; - else - return TRUE; -} - -void event_logon(RDPCLIENT * This) -{ - RdpClient::OnLogon(This); -} - -BOOL event_redirect(RDPCLIENT * This, uint32 flags, uint32 server_len, wchar_t * server, uint32 cookie_len, char * cookie, uint32 username_len, wchar_t * username, uint32 domain_len, wchar_t * domain, uint32 password_len, wchar_t * password) -{ - if - ( - !RdpClient::OnRedirect - ( - This, - flags, - server_len, - server, - cookie_len, - cookie, - username_len, - username, - domain_len, - domain, - password_len, - password - ) - ) - return FALSE; - else - return TRUE; -} - -} - -class ClassFactory: public IClassFactory -{ -private: - LONG m_refCount; - CLSID m_classId; - unsigned m_libIndex; - -public: - ClassFactory(REFCLSID rclsid, unsigned libIndex): - m_refCount(1), - m_classId(rclsid) - { - lockServer(); - } - - ~ClassFactory() - { - unlockServer(); - } - - virtual STDMETHODIMP QueryInterface(REFIID riid, void ** ppvObject) - { - if(riid == IID_IUnknown || riid == IID_IClassFactory) - { - *ppvObject = this; - return S_OK; - } - else - { - *ppvObject = NULL; - return E_NOINTERFACE; - } - } - - virtual STDMETHODIMP_(ULONG) AddRef() - { - return InterlockedIncrement(&m_refCount); - } - - virtual STDMETHODIMP_(ULONG) Release() - { - LONG n = InterlockedDecrement(&m_refCount); - - if(n == 0) - delete this; - - return n; - } - - virtual STDMETHODIMP CreateInstance(IUnknown * pUnkOuter, REFIID riid, void ** ppvObject) - { - if(pUnkOuter && riid != IID_IUnknown) - return CLASS_E_NOAGGREGATION; - - return RdpClient::CreateInstance(m_classId, m_libIndex, pUnkOuter, riid, ppvObject); - } - - virtual STDMETHODIMP LockServer(BOOL fLock) - { - if(fLock) - lockServer(); - else - unlockServer(); - - return S_OK; - } -}; - -extern "C" -{ - -STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID * ppv) -{ - unsigned libindex; - - if - ( - rclsid == MSTSCLib::CLSID_MsTscAx || - rclsid == MSTSCLib::CLSID_MsRdpClient || - rclsid == MSTSCLib::CLSID_MsRdpClient2 || - rclsid == MSTSCLib::CLSID_MsRdpClient3 || - rclsid == MSTSCLib::CLSID_MsRdpClient4 - ) - libindex = 1; - else if - ( - rclsid == MSTSCLib_Redist::CLSID_MsTscAx || - rclsid == MSTSCLib_Redist::CLSID_MsRdpClient || - rclsid == MSTSCLib_Redist::CLSID_MsRdpClient2 || - rclsid == MSTSCLib_Redist::CLSID_MsRdpClient3 // || - // rclsid != MSTSCLib::CLSID_MsRdpClient4 - ) - libindex = 2; - else - return CLASS_E_CLASSNOTAVAILABLE; - - ClassFactory * p = new ClassFactory(rclsid, libindex); - - if(p == NULL) - return E_OUTOFMEMORY; - - HRESULT hr = p->QueryInterface(riid, ppv); - - p->Release(); - - if(FAILED(hr)) - return hr; - - return S_OK; -} - -STDAPI DllCanUnloadNow(void) -{ - return canUnloadServer() ? S_OK : S_FALSE; -} - -STDAPI_(ULONG) DllGetTscCtlVer(void) -{ - // BUGBUG: don't hardcode this - return 0x05020ECE; // 5.2.3790 -} - -DWORD WINAPI DllMain(HINSTANCE hInstance, DWORD fdwReason, LPVOID lpvReserved) -{ - assert(hInstance == GetCurrentModule()); - - switch(fdwReason) - { - case DLL_PROCESS_ATTACH: - { - DisableThreadLibraryCalls(hInstance); - - if(!RdpClient::Startup()) - return FALSE; - } - - break; - - case DLL_PROCESS_DETACH: - { - // Process is terminating, no need to clean up - if(lpvReserved) - break; - - RdpClient::Shutdown(); - } - - break; - } - - return TRUE; -} - -} - -// EOF +#include "stdafx.h" + +namespace MSTSCLib +{ +#include "mstsclib_h.h" +}; + +namespace MSTSCLib_Redist +{ +// extremely ew, but actually the cleanest way to import the alternate UUIDs +#include "mstsclib_redist_i.c" +}; + +#include "rdesktop/rdesktop.h" +#include "rdesktop/proto.h" + +namespace +{ +#ifdef _MSC_VER +extern "C" char __ImageBase; +#endif + +HMODULE GetCurrentModule() +{ + return reinterpret_cast(&__ImageBase); +} + +} + +namespace +{ + +LONG g_moduleRefCount = 0; + +void lockServer() +{ + InterlockedIncrement(&g_moduleRefCount); +} + +void unlockServer() +{ + InterlockedDecrement(&g_moduleRefCount); +} + +bool canUnloadServer() +{ + return g_moduleRefCount == 0; +} + +} + +namespace +{ + +void FreeLpsz(LPSTR lpsz) +{ + if(lpsz) + delete[] lpsz; +} + +LPSTR AllocLpsz(const CHAR * lpsz, size_t cb) +{ + LPSTR lpszNew = new CHAR[cb + 1]; + + if(lpszNew == NULL) + return NULL; + + CopyMemory(lpszNew, lpsz, cb); + lpszNew[cb] = 0; + + return lpszNew; +} + +LPSTR AllocLpsz(const WCHAR * lpwsz, int cchIn) +{ + int cch = WideCharToMultiByte(CP_ACP, 0, lpwsz, cchIn, NULL, 0, NULL, NULL); + + if(cch <= 0) + return NULL; + + LPSTR lpsz = new CHAR[cch]; + + if(lpsz == NULL) + return NULL; + + cch = WideCharToMultiByte(CP_ACP, 0, lpwsz, cchIn, lpsz, cch, NULL, NULL); + + if(cch <= 0) + { + FreeLpsz(lpsz); + return NULL; + } + + return lpsz; +} + +LPSTR BstrToLpsz(BSTR bstr) +{ + return AllocLpsz(bstr, SysStringLen(bstr)); +} + +BSTR LpszToBstr(LPSTR lpsz) +{ + int cch = MultiByteToWideChar(CP_ACP, 0, lpsz, -1, NULL, 0); + + if(cch <= 0) + return NULL; + + BSTR bstr = SysAllocStringLen(NULL, cch); + + if(bstr == NULL) + return NULL; + + cch = MultiByteToWideChar(CP_ACP, 0, lpsz, -1, bstr, cch); + + if(cch <= 0) + { + SysFreeString(bstr); + return NULL; + } + + return bstr; +} + +} + +namespace +{ + +template T aligndown(const T& X, const U& align) +{ + return X & ~(T(align) - 1); +} + +template T alignup(const T& X, const U& align) +{ + return aligndown(X + (align - 1), align); +} + +/* Convert between bitmap formats */ +uint8 * win32_convert_scanlines(int width, int height, int bitcount, int fromalign, int toalign, const uint8 * data, uint8 ** buffer) +{ + // TBD: profile & optimize the most common cases + assert(width > 0); + assert(height); + assert(bitcount && bitcount <= 32); + assert(fromalign <= toalign); + assert(data); + assert(buffer); + + bool flipped = height < 0; + + if(flipped) + height = - height; + + int bytesperrow = alignup(width * bitcount, 8) / 8; + int fromstride = alignup(bytesperrow, fromalign); + int tostride = alignup(bytesperrow, toalign); + assert(fromstride <= tostride); + + int datasize = tostride * height; + + uint8 * dibits = new uint8[datasize]; + + const uint8 * src = data; + uint8 * dest = dibits; + + const int pad = tostride - fromstride; + + assert(pad < 4); + __assume(pad < 4); + + if(flipped) + { + dest += (height - 1) * tostride; + tostride = - tostride; + } + + for(int i = 0; i < height; ++ i) + { + memcpy(dest, src, fromstride); + memset(dest + fromstride, 0, pad); + src += fromstride; + dest += tostride; + } + + *buffer = dibits; + return dibits; +} + +/* Creates bitmaps */ +HBITMAP win32_create_dib(LONG width, LONG height, WORD bitcount, const BYTE * data) +{ + struct b_ + { + BITMAPINFO bmi; + RGBQUAD colormap[256 - ARRAYSIZE(RTL_FIELD_TYPE(BITMAPINFO, bmiColors))]; + } + b; + + b.bmi.bmiHeader.biSize = sizeof(b.bmi.bmiHeader); + b.bmi.bmiHeader.biWidth = width; + b.bmi.bmiHeader.biHeight = height; + b.bmi.bmiHeader.biPlanes = 1; + b.bmi.bmiHeader.biBitCount = bitcount; + b.bmi.bmiHeader.biCompression = BI_RGB; + b.bmi.bmiHeader.biSizeImage = 0; + b.bmi.bmiHeader.biXPelsPerMeter = 0; + b.bmi.bmiHeader.biYPelsPerMeter = 0; + + if(bitcount > 8) + { + b.bmi.bmiHeader.biClrUsed = 0; + b.bmi.bmiHeader.biClrImportant = 0; + } + else + { + b.bmi.bmiHeader.biClrUsed = 2 << bitcount; + b.bmi.bmiHeader.biClrImportant = 2 << bitcount; + + // TODO: palette + } + + // FIXME: beyond ugly + HDC hdc = CreateCompatibleDC(NULL); + + if(hdc == NULL) + return NULL; + + HBITMAP hbm = CreateDIBitmap(hdc, &b.bmi.bmiHeader, CBM_INIT, data, &b.bmi, DIB_RGB_COLORS); + + if(hbm == NULL) + error("CreateDIBitmap %dx%dx%d failed\n", width, height, bitcount); + + DeleteDC(hdc); + return hbm; +} + +/* Creates brushes */ +HBRUSH win32_create_brush(BRUSH * brush, COLORREF fgcolour) +{ + if(brush == NULL) + return (HBRUSH)GetStockObject(NULL_BRUSH); + + switch(brush->style) + { + case BS_SOLID: + case BS_NULL: + case BS_HATCHED: + case BS_PATTERN: + case BS_PATTERN8X8: + break; + + default: + return NULL; + } + + switch(brush->style) + { + case BS_SOLID: + return CreateSolidBrush(fgcolour); + + case BS_HATCHED: + return CreateHatchBrush(brush->pattern[0], fgcolour); + + case BS_NULL: + return (HBRUSH)GetStockObject(NULL_BRUSH); + + case BS_PATTERN: + case BS_PATTERN8X8: + { + uint16 pattern[8]; + + for(size_t i = 0; i < 8; ++ i) + pattern[i] = brush->pattern[i]; + + HBITMAP hpattern = CreateBitmap(8, 8, 1, 1, pattern); + HBRUSH hbr = CreatePatternBrush(hpattern); + DeleteObject(hpattern); + return hbr; + } + + DEFAULT_UNREACHABLE; + } +} +}; + +/* + "sealed" can improve optimizations by asserting a class cannot be derived + from, optimizing out accesses to the v-table from inside the class +*/ +#if defined(_MSC_VER) && _MSC_VER >= 1400 +#define SEALED_ sealed +#else +#define SEALED_ +#endif + + +/* Class that implements the RDP client GUI */ +class RdpClientUI +{ +public: + // TODO: pass the client settings relevant to the GUI here + HRESULT Initialize(HWND hwndParent) + { + // TODO: create the various windows + // TODO: create display window thread + // TODO: create input thread + return E_FAIL; + } + +public: + static BOOL Startup() + { + WNDCLASSEX wcexUI = { sizeof(wcexUI) }; + WNDCLASSEX wcexConsole = { sizeof(wcexConsole) }; + WNDCLASSEX wcexDisplay = { sizeof(wcexDisplay) }; + WNDCLASSEX wcexInput = { sizeof(wcexInput) }; + + HBRUSH nullBrush = (HBRUSH)GetStockObject(HOLLOW_BRUSH); + + wcexUI.lpfnWndProc = NULL; // TODO + wcexUI.hInstance = GetCurrentModule(); + wcexUI.hCursor = LoadCursor(NULL, IDC_ARROW); + wcexUI.hbrBackground = nullBrush; + wcexUI.lpszClassName = TEXT("MissTosca_UI"); + + wcexConsole.style = CS_VREDRAW | CS_HREDRAW; + wcexConsole.lpfnWndProc = NULL; // TODO + wcexConsole.hInstance = GetCurrentModule(); + wcexConsole.hCursor = LoadCursor(NULL, IDC_ARROW); + wcexConsole.hbrBackground = nullBrush; + wcexConsole.lpszClassName = TEXT("MissTosca_Console"); + + wcexDisplay.style = CS_VREDRAW | CS_HREDRAW; + wcexDisplay.lpfnWndProc = NULL; // TODO + wcexDisplay.hInstance = GetCurrentModule(); + wcexDisplay.hCursor = LoadCursor(NULL, IDC_ARROW); + wcexDisplay.hbrBackground = nullBrush; + wcexDisplay.lpszClassName = TEXT("MissTosca_Display"); + + wcexInput.style = CS_VREDRAW | CS_HREDRAW; + wcexInput.lpfnWndProc = NULL; // TODO + wcexInput.hInstance = GetCurrentModule(); + wcexInput.hCursor = NULL; + wcexInput.hbrBackground = nullBrush; + wcexInput.lpszClassName = TEXT("MissTosca_Input"); + + return + RegisterClassEx(&wcexUI) && + RegisterClassEx(&wcexConsole) && + RegisterClassEx(&wcexDisplay) && + RegisterClassEx(&wcexInput); + } + + static void Shutdown() + { + // TODO + } + + /* + This is the main UI window. It's the direct child of the control + window, it fills its whole extent and it contains the scrollbars. + When activated, it will move keyboard focus to the input window + */ +private: + HWND m_uiWindow; + LONG m_scrollHPos; + LONG m_scrollVPos; + + LRESULT UIWindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam) + { + switch(uMsg) + { + // Keep the keyboard focus on the input window + case WM_ACTIVATE: + switch(LOWORD(wParam)) + { + case WA_INACTIVE: + break; + + case WA_ACTIVE: + case WA_CLICKACTIVE: + if(!HIWORD(wParam)) + SetFocus(m_inputWindow); + } + + return 0; + + // Resized: rearrange children windows, adjust scrollbars + case WM_SIZE: + { + if(IsIconic(m_uiWindow)) + break; + + RECT rcClient; + GetWindowRect(m_uiWindow, &rcClient); + + if(m_smartSizing) + { + // we are not supposed to maintain aspect ratio. Container has to do that + m_consoleX = 0; + m_consoleY = 0; + m_consoleWidth = rcClient.right; + m_consoleHeight = rcClient.bottom; + } + else + { + // center horizontally, no horizontal scrollbar + if(rcClient.right >= m_consoleWidth) + m_consoleX = (m_consoleWidth - rcClient.right) / 2; + + // center vertically, no vertical scrollbar + if(rcClient.bottom >= m_consoleHeight) + m_consoleY = (m_consoleHeight - rcClient.right) / 2; + } + + SCROLLINFO scroll = { sizeof(scroll), SIF_ALL, 0 }; + + // update the horizontal scrollbar + scroll.nMax = m_consoleWidth; + scroll.nPage = rcClient.right; + scroll.nPos = 0 - m_consoleX; + SetScrollInfo(m_uiWindow, SB_HORZ, &scroll, TRUE); + + // update the vertical scrollbar + scroll.nMax = m_consoleHeight; + scroll.nPage = rcClient.bottom; + scroll.nPos = 0 - m_consoleY; + SetScrollInfo(m_uiWindow, SB_VERT, &scroll, TRUE); + + // move/resize the console window + MoveWindow(m_consoleWindow, m_consoleX, m_consoleY, m_consoleWidth, m_consoleHeight, TRUE); + } + + return 0; + + case WM_HSCROLL: + { + SCROLLINFO scroll = { sizeof(scroll), SIF_TRACKPOS }; + GetScrollInfo(m_uiWindow, SB_HORZ, &scroll); + m_consoleX = - scroll.nTrackPos; + MoveWindow(m_consoleWindow, m_consoleX, m_consoleY, m_consoleWidth, m_consoleHeight, TRUE); + } + + return 0; + + case WM_VSCROLL: + { + SCROLLINFO scroll = { sizeof(scroll), SIF_TRACKPOS }; + GetScrollInfo(m_uiWindow, SB_VERT, &scroll); + m_consoleY = - scroll.nTrackPos; + MoveWindow(m_consoleWindow, m_consoleX, m_consoleY, m_consoleWidth, m_consoleHeight, TRUE); + } + + return 0; + + default: + break; + } + + return DefWindowProc(m_uiWindow, uMsg, wParam, lParam); + } + + /* + This is the full-screen title bar. It's displayed at the top of the + main UI window while in full-screen mode, and it contains two toolbars + with the pin, minimize, restore and close buttons + */ + HWND m_fullScreenBarWindow; + + /* + This is the console window. It has the same extent as the display on + the remote computer, or it fills the UI window in smart resizing mode, + and it contains the input and display windows + */ +private: + HWND m_consoleWindow; + LONG m_consoleX; + LONG m_consoleY; + LONG m_consoleWidth; + LONG m_consoleHeight; + bool m_smartSizing; + + LRESULT ConsoleWindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam) + { + switch(uMsg) + { + case WM_SIZE: + { + RECT rcClient; + GetClientRect(m_consoleWindow, &rcClient); + + MoveWindow(m_inputWindow, 0, 0, rcClient.right, rcClient.bottom, TRUE); + MoveWindow(m_displayWindow, 0, 0, rcClient.right, rcClient.bottom, TRUE); + } + + return 0; + + default: + break; + } + + return DefWindowProc(m_consoleWindow, uMsg, wParam, lParam); + } + + /* + This is the display window. It represents the virtual display of the + remote computer. It completely fills its parent, the console window, + and it runs in its own thread for performance reasons + */ +private: + HWND m_displayWindow; + LONG m_displayBufferWidth; + LONG m_displayBufferHeight; + HDC m_displayBuffer; + void * m_displayBufferRaw; + int m_displayBufferSave; + int m_displayBufferBitDepth; + int m_displayBufferByteDepth; + int m_displayBufferStride; + RECT m_displayBufferClip; + CRITICAL_SECTION m_displayBufferMutex; + + LRESULT DisplayWindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam) + { + switch(uMsg) + { + case WM_DESTROY: + PostQuitMessage(0); + return 0; + + case WM_PRINTCLIENT: + if(wParam == 0) + break; + + case WM_PAINT: + { + HDC hdc = (HDC)wParam; + + EnterCriticalSection(&m_displayBufferMutex); + + if(hdc) + { + RECT rc; + GetClientRect(m_displayWindow, &rc); + BitBlt(hdc, 0, 0, rc.right, rc.bottom, m_displayBuffer, 0, 0, SRCCOPY); + } + else + { + PAINTSTRUCT ps; + hdc = BeginPaint(m_displayWindow, &ps); + + if(!m_smartSizing) + { + BitBlt + ( + hdc, + ps.rcPaint.left, + ps.rcPaint.top, + ps.rcPaint.right - ps.rcPaint.left, + ps.rcPaint.bottom - ps.rcPaint.top, + m_displayBuffer, + ps.rcPaint.left, + ps.rcPaint.top, + SRCCOPY + ); + } + else + { + // bleh. There has to be a better way + SetStretchBltMode(hdc, HALFTONE); + + StretchBlt + ( + hdc, + 0, + 0, + m_consoleWidth, + m_consoleHeight, + m_displayBuffer, + 0, + 0, + m_displayBufferWidth, + m_displayBufferHeight, + SRCCOPY + ); + } + + EndPaint(m_displayWindow, &ps); + } + + LeaveCriticalSection(&m_displayBufferMutex); + } + + return 0; + + default: + break; + } + + return DefWindowProc(m_displayWindow, uMsg, wParam, lParam); + } + + /* Screen repainting */ + void Display_RepaintRect(const RECT * lprc) + { + if(m_smartSizing) + return Display_RepaintAll(); + + RECT rcDamage; + IntersectRect(&rcDamage, lprc, &m_displayBufferClip); + InvalidateRect(m_displayWindow, &rcDamage, FALSE); + } + + void Display_RepaintArea(int x, int y, int cx, int cy) + { + if(m_smartSizing) + return Display_RepaintAll(); + + RECT rcDamage; + rcDamage.left = x; + rcDamage.top = y; + rcDamage.right = x + cx; + rcDamage.bottom = y + cy; + Display_RepaintRect(&rcDamage); + } + + void Display_RepaintPolygon(POINT * point, int npoints, int linewidth) + { + if(m_smartSizing) + return Display_RepaintAll(); + + RECT rcDamage; + + rcDamage.left = MAXLONG; + rcDamage.top = MAXLONG; + rcDamage.right = 0; + rcDamage.bottom = 0; + + for(int i = 0; i < npoints; ++ i) + { + if(point[i].x < rcDamage.left) + rcDamage.left = point[i].x; + + if(point[i].y < rcDamage.top) + rcDamage.top = point[i].y; + + if(point[i].x > rcDamage.right) + rcDamage.right = point[i].x; + + if(point[i].y > rcDamage.bottom) + rcDamage.bottom = point[i].y; + } + + InflateRect(&rcDamage, linewidth, linewidth); + Display_RepaintRect(&rcDamage); + } + + void Display_RepaintAll() + { + InvalidateRgn(m_displayWindow, NULL, FALSE); + } + +public: + void Display_SetClip(int x, int y, int cx, int cy) + { + m_displayBufferClip.left = x; + m_displayBufferClip.top = y; + m_displayBufferClip.right = x + cx + 1; + m_displayBufferClip.bottom = y + cy + 1; + + HRGN hrgn = CreateRectRgnIndirect(&m_displayBufferClip); + SelectClipRgn(m_displayBuffer, hrgn); + DeleteObject(hrgn); + } + + void Display_ResetClip() + { + m_displayBufferClip.left = 0; + m_displayBufferClip.top = 0; + m_displayBufferClip.right = m_displayBufferWidth; + m_displayBufferClip.bottom = m_displayBufferHeight; + SelectClipRgn(m_displayBuffer, NULL); + } + + void Display_PaintBitmap(int x, int y, int cx, int cy, int width, int height, uint8 * data) + { + GdiFlush(); + + int fromstride = alignup(width * m_displayBufferByteDepth, 4); + int sizex = cx * m_displayBufferByteDepth; + + const uint8 * src = data; + + uint8 * dst = + (uint8 *)m_displayBufferRaw + + (m_displayBufferHeight - y - cy) * m_displayBufferStride + + x * m_displayBufferByteDepth; + + for(int i = 0; i < cy; ++ i) + { + memcpy(dst, src, sizex); + src += fromstride; + dst += m_displayBufferStride; + } + + Display_RepaintArea(x, y, cx, cy); + } + + void Display_DestBlt(uint8 opcode, int x, int y, int cx, int cy) + { + int dcsave = SaveDC(m_displayBuffer); + SelectObject(m_displayBuffer, GetStockObject(BLACK_BRUSH)); + PatBlt(m_displayBuffer, x, y, cx, cy, MAKELONG(0, opcode)); + RestoreDC(m_displayBuffer, dcsave); + Display_RepaintArea(x, y, cx, cy); + } + + void Display_PatBlt(uint8 opcode, int x, int y, int cx, int cy, BRUSH * brush, int bgcolour, int fgcolour) + { + HBRUSH hbr = win32_create_brush(brush, fgcolour); + + int dcsave = SaveDC(m_displayBuffer); + + SetBkColor(m_displayBuffer, bgcolour); + SetTextColor(m_displayBuffer, fgcolour); + SetBrushOrgEx(m_displayBuffer, brush->xorigin, brush->yorigin, NULL); + SelectObject(m_displayBuffer, hbr); + + PatBlt(m_displayBuffer, x, y, cx, cy, MAKELONG(0, opcode)); + + RestoreDC(m_displayBuffer, dcsave); + + DeleteObject(hbr); + + Display_RepaintArea(x, y, cx, cy); + } + + void Display_ScreenBlt(uint8 opcode, int x, int y, int cx, int cy, int srcx, int srcy) + { + BitBlt(m_displayBuffer, x, y, cx, cy, m_displayBuffer, srcx, srcy, MAKELONG(0, opcode)); + Display_RepaintArea(x, y, cx, cy); + } + + void Display_MemBlt(uint8 opcode, int x, int y, int cx, int cy, HBITMAP src, int srcx, int srcy) + { + HDC hdcSrc = CreateCompatibleDC(m_displayBuffer); + HGDIOBJ hOld = SelectObject(hdcSrc, src); + + BitBlt(m_displayBuffer, x, y, cx, cy, hdcSrc, srcx, srcy, MAKELONG(0, opcode)); + + SelectObject(hdcSrc, hOld); + DeleteDC(hdcSrc); + + Display_RepaintArea(x, y, cx, cy); + } + + void Display_TriBlt(uint8 opcode, int x, int y, int cx, int cy, HBITMAP src, int srcx, int srcy, BRUSH * brush, int bgcolour, int fgcolour) + { + // TODO + HDC hdcSrc = CreateCompatibleDC(m_displayBuffer); + HGDIOBJ hOld = SelectObject(hdcSrc, src); + + //SELECT_BRUSH(brush, bgcolour, fgcolour); + + BitBlt(m_displayBuffer, x, y, cx, cy, hdcSrc, srcx, srcy, MAKELONG(0, opcode)); + + //RESET_BRUSH(); + + SelectObject(hdcSrc, hOld); + DeleteDC(hdcSrc); + + Display_RepaintArea(x, y, cx, cy); + } + + void Display_Line(uint8 opcode, int startx, int starty, int endx, int endy, PEN * pen) + { + HPEN hpen = CreatePen(pen->style, pen->width, pen->colour); + + int dcsave = SaveDC(m_displayBuffer); + + SetROP2(m_displayBuffer, opcode); + SelectObject(m_displayBuffer, hpen); + MoveToEx(m_displayBuffer, startx, starty, NULL); + + LineTo(m_displayBuffer, endx, endy); + + RestoreDC(m_displayBuffer, dcsave); + + DeleteObject(hpen); + + RECT rcDamage; + + if(startx < endx) + { + rcDamage.left = startx; + rcDamage.right = endx; + } + else + { + rcDamage.left = endx; + rcDamage.right = startx; + } + + if(starty < endy) + { + rcDamage.top = starty; + rcDamage.bottom = endy; + } + else + { + rcDamage.top = endy; + rcDamage.bottom = starty; + } + + InflateRect(&rcDamage, pen->width, pen->width); + Display_RepaintRect(&rcDamage); + } + + void Display_Rect(int x, int y, int cx, int cy, int colour) + { + HBRUSH hbr = CreateSolidBrush(colour); + + int dcsave = SaveDC(m_displayBuffer); + + SelectObject(m_displayBuffer, hbr); + SelectObject(m_displayBuffer, GetStockObject(NULL_PEN)); + + Rectangle(m_displayBuffer, x, y, x + cx + 1, y + cy + 1); + + RestoreDC(m_displayBuffer, dcsave); + + DeleteObject(hbr); + + Display_RepaintArea(x, y, cx, cy); + } + + void Display_Polygon(uint8 opcode, uint8 fillmode, POINT * point, int npoints, BRUSH * brush, int bgcolour, int fgcolour) + { + HBRUSH hbr = win32_create_brush(brush, fgcolour); + + int dcsave = SaveDC(m_displayBuffer); + + SetBkColor(m_displayBuffer, bgcolour); + SetTextColor(m_displayBuffer, fgcolour); + SetPolyFillMode(m_displayBuffer, fillmode); + SelectObject(m_displayBuffer, hbr); + + Polygon(m_displayBuffer, point, npoints); + + RestoreDC(m_displayBuffer, dcsave); + + Display_RepaintPolygon(point, npoints, 0); + } + + void Display_Polyline(uint8 opcode, POINT * points, int npoints, PEN * pen) + { + POINT last = points[0]; + + for(int i = 1; i < npoints; ++ i) + { + points[i].x += last.x; + points[i].y += last.y; + last = points[i]; + } + + HPEN hpen = CreatePen(pen->style, pen->width, pen->colour); + + int dcsave = SaveDC(m_displayBuffer); + + SetROP2(m_displayBuffer, opcode); + SelectObject(m_displayBuffer, hpen); + + Polyline(m_displayBuffer, points, npoints); + + RestoreDC(m_displayBuffer, dcsave); + + DeleteObject(hpen); + + Display_RepaintPolygon(points, npoints, pen->width); + } + + void Display_Ellypse(uint8 opcode, uint8 fillmode, int x, int y, int cx, int cy, BRUSH * brush, int bgcolour, int fgcolour) + { + // TODO + + Display_RepaintArea(x, y, cx, cy); + } + + // TBD: optimize text drawing + void Display_DrawGlyph(int mixmode, int x, int y, int cx, int cy, HGLYPH glyph, int srcx, int srcy, int bgcolour, int fgcolour) + { + HBITMAP hbmGlyph = (HBITMAP)glyph; + HDC hdcGlyph = CreateCompatibleDC(m_displayBuffer); + HGDIOBJ hOld = SelectObject(hdcGlyph, hbmGlyph); + + int dcsave = SaveDC(m_displayBuffer); + + switch(mixmode) + { + case MIX_TRANSPARENT: + { + /* + ROP is DSPDxax: + - where the glyph (S) is white, D is set to the foreground color (P) + - where the glyph (S) is black, D is left untouched + + This paints a transparent glyph in the specified color + */ + HBRUSH hbr = CreateSolidBrush(fgcolour); + SelectObject(m_displayBuffer, hbr); + BitBlt(m_displayBuffer, x, y, cx, cy, hdcGlyph, srcx, srcy, MAKELONG(0, 0xe2)); + DeleteObject(hbr); + } + + break; + + case MIX_OPAQUE: + { + /* Curiously, glyphs are inverted (white-on-black) */ + SetBkColor(m_displayBuffer, fgcolour); + SetTextColor(m_displayBuffer, bgcolour); + BitBlt(m_displayBuffer, x, y, cx, cy, hdcGlyph, srcx, srcy, SRCCOPY); + } + + break; + } + + RestoreDC(m_displayBuffer, dcsave); + + SelectObject(hdcGlyph, hOld); + DeleteDC(hdcGlyph); + + Display_RepaintArea(x, y, cx, cy); + } + + void Display_DoGlyph(uint8 font, uint8 flags, int mixmode, int& x, int& y, int bgcolour, int fgcolour, const uint8 * ttext, int& idx) + { + FONTGLYPH * glyph; + + glyph = cache_get_font(/*This*/NULL, font, ttext[idx]); + + if(!(flags & TEXT2_IMPLICIT_X)) + { + int xyoffset = ttext[++ idx]; + + if((xyoffset & 0x80)) + { + if (flags & TEXT2_VERTICAL) + y += ttext[idx + 1] | (ttext[idx + 2] << 8); + else + x += ttext[idx + 1] | (ttext[idx + 2] << 8); + + idx += 2; + } + else + { + if (flags & TEXT2_VERTICAL) + y += xyoffset; + else + x += xyoffset; + } + } + + if(glyph) + { + Display_DrawGlyph + ( + mixmode, + x + (short)glyph->offset, + y + (short)glyph->baseline, + glyph->width, + glyph->height, + glyph->pixmap, + 0, + 0, + bgcolour, + fgcolour + ); + + if(flags & TEXT2_IMPLICIT_X) + x += glyph->width; + } + } + + void Display_DrawText + ( + uint8 font, + uint8 flags, + uint8 opcode, + int mixmode, + int x, + int y, + int clipx, + int clipy, + int clipcx, + int clipcy, + int boxx, + int boxy, + int boxcx, + int boxcy, + BRUSH * brush, + int bgcolour, + int fgcolour, + uint8 * text, + uint8 length + ) + { + int i, j; + DATABLOB *entry; + + HBRUSH hbr = CreateSolidBrush(bgcolour); + HGDIOBJ holdbrush = SelectObject(m_displayBuffer, hbr); + HGDIOBJ holdpen = SelectObject(m_displayBuffer, GetStockObject(NULL_PEN)); + + if (boxcx > 1) + Rectangle(m_displayBuffer, boxx, boxy, boxx + boxcx + 1, boxy + boxcy + 1); + else if (mixmode == MIX_OPAQUE) + Rectangle(m_displayBuffer, clipx, clipy, clipx + clipcx + 1, clipy + clipcy + 1); + + SelectObject(m_displayBuffer, holdpen); + SelectObject(m_displayBuffer, holdbrush); + + DeleteObject(hbr); + + if(boxcx > 1) + Display_RepaintArea(boxx, boxy, boxcx, boxcy); + else + Display_RepaintArea(clipx, clipy, clipcx, clipcy); + + /* Paint text, character by character */ + for (i = 0; i < length;) + { + switch (text[i]) + { + case 0xff: + /* At least two bytes needs to follow */ + if (i + 3 > length) + { + warning("Skipping short 0xff command:"); + for (j = 0; j < length; j++) + fprintf(stderr, "%02x ", text[j]); + fprintf(stderr, "\n"); + i = length = 0; + break; + } + cache_put_text(NULL /* TODO */, text[i + 1], text, text[i + 2]); + i += 3; + length -= i; + /* this will move pointer from start to first character after FF command */ + text = &(text[i]); + i = 0; + break; + + case 0xfe: + /* At least one byte needs to follow */ + if (i + 2 > length) + { + warning("Skipping short 0xfe command:"); + for (j = 0; j < length; j++) + fprintf(stderr, "%02x ", text[j]); + fprintf(stderr, "\n"); + i = length = 0; + break; + } + entry = cache_get_text(/*This*/NULL, text[i + 1]); + if (entry->data != NULL) + { + if ((((uint8 *) (entry->data))[1] == 0) + && (!(flags & TEXT2_IMPLICIT_X)) && (i + 2 < length)) + { + if (flags & TEXT2_VERTICAL) + y += text[i + 2]; + else + x += text[i + 2]; + } + for (j = 0; j < entry->size; j++) + Display_DoGlyph(font, flags, mixmode, x, y, bgcolour, fgcolour, ((uint8 *) (entry->data)), j); + } + if (i + 2 < length) + i += 3; + else + i += 2; + length -= i; + /* this will move pointer from start to first character after FE command */ + text = &(text[i]); + i = 0; + break; + + default: + Display_DoGlyph(font, flags, mixmode, x, y, bgcolour, fgcolour, text, i); + i++; + break; + } + } + } + + void Display_SaveDesktop(uint32 offset, int x, int y, int cx, int cy) + { + GdiFlush(); + + uint8 * data = + (uint8 *)m_displayBufferRaw + + x * m_displayBufferByteDepth + + (m_displayBufferHeight - y - cy) * m_displayBufferStride; + + cache_put_desktop + ( + /*This*/NULL, + offset * m_displayBufferByteDepth, + cx, + cy, + m_displayBufferStride, + m_displayBufferByteDepth, + data + ); + } + + void Display_RestoreDesktop(uint32 offset, int x, int y, int cx, int cy) + { + int fromstride = cx * m_displayBufferByteDepth; + + const uint8 * src = cache_get_desktop(/*This*/NULL, offset, cx, cy, m_displayBufferByteDepth); + + uint8 * dst = + (uint8 *)m_displayBufferRaw + + x * m_displayBufferByteDepth + + (m_displayBufferHeight - y - cy) * m_displayBufferStride; + + GdiFlush(); + + for(int i = 0; i < cy; ++ i) + { + memcpy(dst, src, fromstride); + src += fromstride; + dst += m_displayBufferStride; + } + + Display_RepaintArea(x, y, cx, cy); + } + + + void Display_BeginUpdate() + { + EnterCriticalSection(&m_displayBufferMutex); + m_displayBufferSave = SaveDC(m_displayBuffer); + } + + void Display_EndUpdate() + { + RestoreDC(m_displayBuffer, m_displayBufferSave); + LeaveCriticalSection(&m_displayBufferMutex); + } + + /* + This is the input window. It receives the keyboard and mouse input from + the user, and it's the only window that can receive the keyboard focus. + It completely fills its parent, the console window, and it runs in its + own thread for performance reasons and because of technical reasons + involving keyboard hooks in full-screen mode + */ + HWND m_inputWindow; + HCURSOR m_inputCursor; + + LRESULT InputWindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam) + { + switch(uMsg) + { + case WM_DESTROY: + PostQuitMessage(0); + return 0; + + /* Keyboard stuff */ + // TODO: we need a good way to post output cross-thread + case WM_SYSKEYDOWN: + case WM_KEYDOWN: + //rdp_send_input(This, GetMessageTime(), RDP_INPUT_SCANCODE, RDP_KEYPRESS | (lparam & 0x1000000 ? KBD_FLAG_EXT : 0), LOBYTE(HIWORD(lparam)), 0); + break; + + case WM_SYSKEYUP: + case WM_KEYUP: + //rdp_send_input(This, GetMessageTime(), RDP_INPUT_SCANCODE, RDP_KEYRELEASE | (lparam & 0x1000000 ? KBD_FLAG_EXT : 0), LOBYTE(HIWORD(lparam)), 0); + break; + + /* Mouse stuff */ + // Cursor shape + case WM_SETCURSOR: + if(LOWORD(lParam) == HTCLIENT) + { + SetCursor(m_inputCursor); + return TRUE; + } + + break; + + // Movement + case WM_MOUSEMOVE: + //rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_MOVE, LOWORD(lparam), HIWORD(lparam)); + break; + + // Buttons + // TODO: X buttons + case WM_LBUTTONDOWN: + //rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON1 | MOUSE_FLAG_DOWN, LOWORD(lparam), HIWORD(lparam)); + break; + + case WM_RBUTTONDOWN: + //rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON2 | MOUSE_FLAG_DOWN, LOWORD(lparam), HIWORD(lparam)); + break; + + case WM_MBUTTONDOWN: + //rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON3 | MOUSE_FLAG_DOWN, LOWORD(lparam), HIWORD(lparam)); + break; + + case WM_LBUTTONUP: + //rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON1, LOWORD(lparam), HIWORD(lparam)); + break; + + case WM_RBUTTONUP: + //rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON2, LOWORD(lparam), HIWORD(lparam)); + break; + + case WM_MBUTTONUP: + //rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON3, LOWORD(lparam), HIWORD(lparam)); + break; + + // Wheel + case WM_MOUSEWHEEL: + //mstsc_mousewheel(This, (SHORT)HIWORD(wparam), lparam); + break; + } + + return DefWindowProc(m_inputWindow, uMsg, wParam, lParam); + } + +public: +}; + +#pragma warning(push) +#pragma warning(disable: 4584) + +/* The ActiveX control */ +class RdpClient SEALED_: + /* COM basics */ + public IUnknown, + public IDispatch, + + /* ActiveX stuff */ + public IConnectionPointContainer, + public IDataObject, + public IObjectSafety, + public IOleControl, + public IOleInPlaceActiveObject, + public IOleInPlaceObject, + public IOleObject, + public IOleWindow, + public IPersist, + public IPersistPropertyBag, + public IPersistStorage, + public IPersistStreamInit, + public IProvideClassInfo, + public IProvideClassInfo2, + public IQuickActivate, + public IViewObject, + public IViewObject2, + + // NOTE: the original has a vestigial, non-functional implementation of this, which we omit + // ISpecifyPropertyPages + + // Hidden interfaces, not available through QueryInterface + public IConnectionPoint, + + /* RDP client interface */ + public MSTSCLib::IMsRdpClient4, + public MSTSCLib::IMsRdpClientNonScriptable2 + + // NOTE: implemented by inner classes due to requiring distinct IDispatch implementations + // IMsRdpClientAdvancedSettings4 + // IMsRdpClientSecuredSettings +{ +private: + /* An endless amount of COM glue */ + // Reference counting + LONG m_refCount; + +#ifdef _DEBUG + DWORD m_apartmentThreadId; + + bool InsideApartment() const + { + return GetCurrentThreadId() == m_apartmentThreadId; + } +#endif + + // Aggregation support + IUnknown * m_punkOuter; + + class RdpClientInner: public IUnknown + { + private: + RdpClient * Outer() + { + return InnerToOuter(this); + } + + public: + virtual STDMETHODIMP IUnknown::QueryInterface(REFIID riid, void ** ppvObject) + { + return Outer()->queryInterface(riid, ppvObject); + } + + virtual STDMETHODIMP_(ULONG) IUnknown::AddRef() + { + return Outer()->addRef(); + } + + virtual STDMETHODIMP_(ULONG) IUnknown::Release() + { + return Outer()->release(); + } + + } + m_inner; + + // Persistence support + CLSID m_classId; + + // Late binding support + unsigned m_typeLibIndex; + ITypeLib * m_typeLib; + ITypeInfo * m_dispTypeInfo; + + // Event sinks + size_t m_EventSinksCount; + + union + { + MSTSCLib::IMsTscAxEvents * m_EventSinksStatic[1]; + MSTSCLib::IMsTscAxEvents ** m_EventSinks; + }; + + // OLE control glue + HWND m_controlWindow; + IOleClientSite * m_clientSite; + IOleInPlaceSite * m_inPlaceSite; + IOleAdviseHolder * m_adviseHolder; + LONG m_freezeEvents; + bool m_uiActive; + + // UrlMon security + DWORD m_SafetyOptions; + + bool IsSafeForScripting() const + { + return m_SafetyOptions & INTERFACESAFE_FOR_UNTRUSTED_CALLER; + } + + /* Glue to interface to rdesktop-core */ + RdpClientUI * m_clientUI; + RDPCLIENT m_protocolState; + HANDLE m_protocolThread; + HANDLE m_protocolThreadWaitingReconnection; + bool m_reconnectAborted; + bool m_actuallyConnected; + bool m_loggedIn; + + /* Properties */ + // Storage fields + // NOTE: keep sorted by alignment (pointers and handles, integers, enumerations, booleans) + BSTR m_Domain; + BSTR m_UserName; + BSTR m_DisconnectedText; + BSTR m_ConnectingText; + BSTR m_FullScreenTitle; + BSTR m_StartProgram; + BSTR m_WorkDir; + BSTR m_ConnectedStatusText; + BSTR m_ClearTextPassword; // FIXME! dangerous, shouldn't store in cleartext! + BSTR m_RdpdrLocalPrintingDocName; + BSTR m_RdpdrClipCleanTempDirString; + BSTR m_RdpdrClipPasteInfoString; + BSTR m_KeyboardLayoutString; + LPSTR m_Server; + LPSTR m_LoadBalanceInfo; + // TODO: plugin DLLs + HWND m_UIParentWindowHandle; + long m_DesktopWidth; + long m_DesktopHeight; + long m_StartConnected; + long m_ColorDepth; + long m_KeyboardHookMode; + long m_AudioRedirectionMode; + long m_TransportType; + long m_SasSequence; + long m_RDPPort; + long m_HotKeyFullScreen; + long m_HotKeyAltEsc; + long m_HotKeyAltShiftTab; + long m_HotKeyAltSpace; + long m_HotKeyAltTab; + long m_HotKeyCtrlAltDel; + long m_HotKeyCtrlEsc; + long m_orderDrawThresold; + long m_BitmapCacheSize; + long m_BitmapVirtualCacheSize; + long m_NumBitmapCaches; + long m_brushSupportLevel; + long m_minInputSendInterval; + long m_InputEventsAtOnce; + long m_maxEventCount; + long m_keepAliveInternal; + long m_shutdownTimeout; + long m_overallConnectionTimeout; + long m_singleConnectionTimeout; + long m_MinutesToIdleTimeout; + long m_BitmapVirtualCache16BppSize; + long m_BitmapVirtualCache24BppSize; + long m_PerformanceFlags; + long m_MaxReconnectAttempts; + unsigned int m_AuthenticationLevel; + + MSTSCLib::ExtendedDisconnectReasonCode m_ExtendedDisconnectReason; + + bool m_Connected; + bool m_Compress; + bool m_BitmapPersistence; + bool m_allowBackgroundInput; + bool m_ContainerHandledFullScreen; + bool m_DisableRdpdr; + bool m_SecuredSettingsEnabled; + bool m_FullScreen; + bool m_AcceleratorPassthrough; + bool m_ShadowBitmap; + bool m_EncryptionEnabled; + bool m_DedicatedTerminal; + bool m_DisableCtrlAltDel; + bool m_EnableWindowsKey; + bool m_DoubleClickDetect; + bool m_MaximizeShell; + bool m_ScaleBitmapCachesByBpp; + bool m_CachePersistenceActive; + bool m_ConnectToServerConsole; + bool m_SmartSizing; // FIXME: this can be set while the control is connected + bool m_DisplayConnectionBar; + bool m_PinConnectionBar; + bool m_GrabFocusOnConnect; + bool m_RedirectDrives; + bool m_RedirectPrinters; + bool m_RedirectPorts; + bool m_RedirectSmartCards; + bool m_NotifyTSPublicKey; + bool m_CanAutoReconnect; + bool m_EnableAutoReconnect; + bool m_ConnectionBarShowMinimizeButton; + bool m_ConnectionBarShowRestoreButton; + + // Generic getters/setters + HRESULT GetProperty(BSTR& prop, BSTR * retVal) const + { + assert(InsideApartment()); + + if(retVal == NULL) + return E_POINTER; + + *retVal = SysAllocStringLen(prop, SysStringLen(prop)); + + if(*retVal == NULL) + return E_OUTOFMEMORY; + + return S_OK; + } + + HRESULT GetProperty(LPSTR& prop, BSTR * retVal) const + { + assert(InsideApartment()); + + if(retVal == NULL) + return E_POINTER; + + *retVal = LpszToBstr(prop); + + if(*retVal == NULL) + return E_OUTOFMEMORY; + + return S_OK; + } + + HRESULT SetProperty(BSTR& prop, BSTR newValue) + { + assert(InsideApartment()); + + if(m_Connected) + return E_FAIL; + + SysFreeString(prop); + + UINT len = SysStringLen(newValue); + + if(len) + { + // no embedded NULs, please + if(len != lstrlenW(newValue)) + return E_INVALIDARG; + + prop = SysAllocStringLen(newValue, len); + + if(prop == NULL) + return E_OUTOFMEMORY; + } + else + prop = NULL; + + return S_OK; + } + + HRESULT ReplaceProperty(BSTR& prop, BSTR newValue) + { + assert(InsideApartment()); + assert((prop == NULL && newValue == NULL) || prop != newValue); + + SysFreeString(prop); + prop = newValue; + return S_OK; + } + + HRESULT SetProperty(LPSTR& prop, BSTR newValue) + { + assert(InsideApartment()); + + if(m_Connected) + return E_FAIL; + + delete[] prop; + + if(SysStringLen(newValue)) + { + prop = BstrToLpsz(newValue); + + if(prop == NULL) + return E_OUTOFMEMORY; + } + else + prop = NULL; + + return S_OK; + } + + HRESULT ReplaceProperty(LPSTR& prop, LPSTR newValue) + { + assert(InsideApartment()); + assert((prop == NULL && newValue == NULL) || prop != newValue); + + if(prop) + delete[] prop; + + prop = newValue; + return S_OK; + } + + template HRESULT SetProperty(bool& prop, const Type& newValue) + { + assert(InsideApartment()); + + if(m_Connected) + return E_FAIL; + + prop = !!newValue; + return S_OK; + } + + template HRESULT SetProperty(Type& prop, const Type& newValue) + { + assert(InsideApartment()); + + if(m_Connected) + return E_FAIL; + + prop = newValue; + return S_OK; + } + + template HRESULT GetProperty(const bool& prop, Type * retVal) const + { + assert(InsideApartment()); + + if(retVal == NULL) + return E_POINTER; + + *retVal = prop ? VARIANT_TRUE : VARIANT_FALSE; + return S_OK; + } + + template HRESULT GetProperty(const Type& prop, Type * retVal) const + { + assert(InsideApartment()); + + if(retVal == NULL) + return E_POINTER; + + *retVal = prop; + return S_OK; + } + + /* Events */ + MSTSCLib::IMsTscAxEvents ** GetSinks() const + { + if(m_EventSinksCount > 1) + return m_EventSinks; + else + return const_cast(m_EventSinksStatic); + } + + // Event freezing + void UnfreezeEvents() + { + // Just in case + } + + // Generic event riser & helpers + void InvokeSinks(DISPID eventId, VARIANTARG rgvarg[], unsigned int cArgs, VARIANTARG * retval) + { + assert(InsideApartment()); + + DISPPARAMS params; + + params.rgvarg = rgvarg; + params.rgdispidNamedArgs = NULL; + params.cArgs = cArgs; + params.cNamedArgs = 0; + + MSTSCLib::IMsTscAxEvents ** sinks = GetSinks(); + + for(size_t i = 0; i < m_EventSinksCount; ++ i) + sinks[i]->Invoke(eventId, IID_NULL, 0, DISPATCH_METHOD, ¶ms, retval, NULL, NULL); + } + + typedef void (RdpClient::* AsyncEventCallback) + ( + DISPID eventId, + VARIANTARG * rgvarg, + unsigned int cArgs, + VARIANTARG * retVal + ); + + void CleanupEventArgumentsCallback + ( + DISPID eventId, + VARIANTARG * rgvarg, + unsigned int cArgs, + VARIANTARG * retVal + ) + { + assert((rgvarg == NULL) == (cArgs == 0)); + + for(unsigned int i = 0; i < cArgs; ++ i) + VariantClear(&rgvarg[i]); + + if(retVal) + VariantClear(retVal); + } + + // synchronous call from inside the apartment that owns the object + void FireEventInsideApartment + ( + DISPID eventId, + VARIANTARG * rgvarg = NULL, + unsigned int cArgs = 0, + VARIANTARG * retval = NULL, + AsyncEventCallback callback = NULL + ) + { + assert(InsideApartment()); + + if(retval == NULL && callback) + { + VARIANTARG localRetval = { }; + retval = &localRetval; + } + + InvokeSinks(eventId, rgvarg, cArgs, retval); + + if(callback) + (this->*callback)(eventId, rgvarg, cArgs, retval); + } + + struct EventArguments + { + DISPID eventId; + VARIANTARG * rgvarg; + unsigned int cArgs; + VARIANTARG * retval; + AsyncEventCallback callback; + }; + + struct RedirectArguments + { + uint32 flags; + uint32 server_len; + wchar_t * server; + uint32 cookie_len; + char * cookie; + uint32 username_len; + wchar_t * username; + uint32 domain_len; + wchar_t * domain; + uint32 password_len; + wchar_t * password; + }; + + enum + { + RDPC_WM_ = WM_USER, + RDPC_WM_SYNC_EVENT, + RDPC_WM_ASYNC_EVENT, + RDPC_WM_DISCONNECT, + RDPC_WM_REQUEST_CLOSE, + RDPC_WM_REDIRECT, + }; + + static VOID CALLBACK DisconnectAPC(ULONG_PTR) + { + // no need to do anything. The interruption will be enough + } + + bool HandleEvent(UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT& result) + { + result = 0; + + switch(uMsg) + { + /* Regular event to be dispatched to the container's sink */ + case RDPC_WM_SYNC_EVENT: + assert(InSendMessage()); + + case RDPC_WM_ASYNC_EVENT: + { + const EventArguments * eventArgs = reinterpret_cast(lParam); + assert(eventArgs); + + FireEventInsideApartment + ( + eventArgs->eventId, + eventArgs->rgvarg, + eventArgs->cArgs, + eventArgs->retval, + eventArgs->callback + ); + + if(uMsg == RDPC_WM_ASYNC_EVENT) + delete eventArgs; + } + + break; + + /* The protocol thread is about to die: prepare for disconnection */ + case RDPC_WM_DISCONNECT: + { + assert(m_Connected); + assert(InsideApartment()); + assert(InSendMessage()); + + // Unblock the protocol thread and wait for it to terminate + ReplyMessage(0); + JoinProtocolThread(); + + // Finish disconnecting + PerformDisconnect(static_cast(wParam)); + } + + break; + + case RDPC_WM_REDIRECT: + { + assert(InSendMessage()); + assert(lParam); + assert(m_Connected); + assert(m_protocolState.redirect); + + RedirectArguments * redirectArgs = reinterpret_cast(lParam); + + // BUGBUG: this is extremely messy and more prone to out-of-memory than it should be + LPSTR lpszNewServer = NULL; + LPSTR lpszNewCookie = NULL; + BSTR strNewUsername = NULL; + BSTR strNewDomain = NULL; + BSTR strNewPassword = NULL; + HRESULT hr = S_OK; + + for(;;) + { + // Allocate the new properties + hr = E_OUTOFMEMORY; + + // FIXME: convert the hostname to Punycode, not the ANSI codepage + lpszNewServer = AllocLpsz(redirectArgs->server, redirectArgs->server_len / sizeof(OLECHAR)); + + if(lpszNewServer == NULL && redirectArgs->server_len) + break; + + lpszNewCookie = AllocLpsz(redirectArgs->cookie, redirectArgs->cookie_len); + + if(lpszNewCookie == NULL && redirectArgs->cookie_len) + break; + + strNewUsername = SysAllocStringLen(redirectArgs->username, redirectArgs->username_len / sizeof(OLECHAR)); + + if(strNewUsername == NULL && redirectArgs->username_len) + break; + + strNewDomain = SysAllocStringLen(redirectArgs->domain, redirectArgs->domain_len / sizeof(OLECHAR)); + + if(strNewDomain == NULL && redirectArgs->domain_len) + break; + + strNewPassword = SysAllocStringLen(redirectArgs->password, redirectArgs->password_len / sizeof(OLECHAR)); + + if(strNewPassword == NULL && redirectArgs->password_len) + break; + + hr = S_OK; + break; + } + + // Success + if(SUCCEEDED(hr)) + { + // set the new properties + ReplaceProperty(m_Server, lpszNewServer); + ReplaceProperty(m_LoadBalanceInfo, lpszNewCookie); + ReplaceProperty(m_UserName, strNewUsername); + ReplaceProperty(m_Domain, strNewDomain); + ReplaceProperty(m_ClearTextPassword, strNewPassword); + } + // Failure + else + { + // free the buffers + FreeLpsz(lpszNewServer); + FreeLpsz(lpszNewCookie); + SysFreeString(strNewUsername); + SysFreeString(strNewDomain); + SysFreeString(strNewPassword); + + // signal the error + m_protocolState.disconnect_reason = 262; + m_protocolState.redirect = False; + result = -1; + } + } + + break; + + // BUGBUG: this could potentially disconnect an unrelated connection established later... + case RDPC_WM_REQUEST_CLOSE: + { + assert(!InSendMessage()); + + if(m_Connected) + { + // Ask confirmation to the container in case we are logged in + if(m_loggedIn && !FireConfirmClose()) + break; + + // For reentrancy (OnConfirmClose could deviously call Disconnect) + if(m_protocolThread == NULL) + break; + + // Terminate the protocol thread. It will fire the Disconnected event on exit + TerminateProtocolThread(); + } + } + + break; + + default: + return false; + } + + // If the calling thread is blocked, unblock it ASAP + if(InSendMessage()) + ReplyMessage(result); + + return true; + } + + // synchronous call from outside the apartment + void FireEventOutsideApartment + ( + DISPID eventId, + VARIANTARG * rgvarg = NULL, + unsigned int cArgs = 0, + VARIANTARG * retval = NULL, + AsyncEventCallback callback = NULL + ) + { + assert(!InsideApartment()); + EventArguments syncEvent = { eventId, rgvarg, cArgs, retval, callback }; + SendMessage(m_controlWindow, RDPC_WM_SYNC_EVENT, 0, reinterpret_cast(&syncEvent)); + } + + // asynchronous call from outside the apartment + HRESULT FireEventOutsideApartmentAsync + ( + DISPID eventId, + VARIANTARG * rgvarg = NULL, + unsigned int cArgs = 0, + VARIANTARG * retval = NULL, + AsyncEventCallback callback = NULL + ) + { + assert(!InsideApartment()); + + EventArguments * asyncEvent = new EventArguments(); + + if(asyncEvent == NULL) + return E_OUTOFMEMORY; + + asyncEvent->eventId = eventId; + asyncEvent->rgvarg = rgvarg; + asyncEvent->cArgs = cArgs; + asyncEvent->retval = NULL; + + if(!PostMessage(m_controlWindow, RDPC_WM_ASYNC_EVENT, 0, reinterpret_cast(asyncEvent))) + { + delete asyncEvent; + return HRESULT_FROM_WIN32(GetLastError()); + } + + return S_OK; + } + + // Specific events + void FireConnecting() + { + // Source: protocol + FireEventOutsideApartment(1); + } + + void FireConnected() + { + // Source: protocol + FireEventOutsideApartment(2); + } + + void FireLoginComplete() + { + // Source: protocol + FireEventOutsideApartment(3); + } + + void FireDisconnected(long reason) + { + // Source: protocol. Special handling + SendMessage(m_controlWindow, RDPC_WM_DISCONNECT, reason, 0); + } + + void FireEnterFullScreenMode() + { + // Source: UI window + FireEventInsideApartment(5); + } + + void FireLeaveFullScreenMode() + { + // Source: UI window + FireEventInsideApartment(6); + } + + HRESULT FireChannelReceivedData(char (& chanName)[CHANNEL_NAME_LEN + 1], void * chanData, unsigned int chanDataSize) + { + // BUGBUG: what to do when we run out of memory? + + OLECHAR wchanName[ARRAYSIZE(chanName)]; + std::copy(chanName + 0, chanName + ARRAYSIZE(chanName), wchanName); + + BSTR bstrChanName = SysAllocString(wchanName); + + if(bstrChanName == NULL) + return E_OUTOFMEMORY; + + BSTR bstrChanData = SysAllocStringByteLen(NULL, chanDataSize); + + if(bstrChanData == NULL) + { + SysFreeString(bstrChanName); + return E_OUTOFMEMORY; + } + + CopyMemory(bstrChanData, chanData, chanDataSize); + + VARIANTARG args[2] = { }; + + args[1].vt = VT_BSTR; + args[1].bstrVal = bstrChanName; + + args[0].vt = VT_BSTR; + args[0].bstrVal = bstrChanData; + + // Source: protocol + HRESULT hr = FireEventOutsideApartmentAsync(7, args, ARRAYSIZE(args), NULL, &RdpClient::CleanupEventArgumentsCallback); + + if(FAILED(hr)) + CleanupEventArgumentsCallback(7, args, ARRAYSIZE(args), NULL); + + return hr; + } + + void FireRequestGoFullScreen() + { + // Source: UI window + FireEventInsideApartment(8); + } + + void FireRequestLeaveFullScreen() + { + // Source: UI window + FireEventInsideApartment(9); + } + + void FireFatalError(long errorCode) + { + VARIANTARG arg = { }; + + arg.vt = VT_I4; + arg.lVal = errorCode; + + // Source: protocol + FireEventOutsideApartment(10, &arg, 1); + } + + void FireFatalErrorFromApartment(long errorCode) + { + VARIANTARG arg = { }; + + arg.vt = VT_I4; + arg.lVal = errorCode; + + // Source: control + FireEventInsideApartment(10, &arg, 1); + } + + void FireWarning(long warningCode) + { + VARIANTARG arg = { }; + + arg.vt = VT_I4; + arg.lVal = warningCode; + + // Source: protocol + FireEventOutsideApartment(11, &arg, 1); + } + + void FireRemoteDesktopSizeChange(long width, long height) + { + VARIANTARG args[2] = { }; + + args[1].vt = VT_I4; + args[1].lVal = width; + + args[0].vt = VT_I4; + args[0].lVal = height; + + // Source: UI window + FireEventInsideApartment(12, args, ARRAYSIZE(args)); + } + + void FireIdleTimeoutNotification() + { + // Source: input thread + FireEventOutsideApartment(13); + } + + void FireRequestContainerMinimize() + { + // Source: UI window + FireEventInsideApartment(14); + } + + bool FireConfirmClose() + { + VARIANTARG retval = { }; + VARIANT_BOOL allowClose = VARIANT_TRUE; + + retval.vt = VT_BYREF | VT_BOOL; + retval.pboolVal = &allowClose; + + // Source: control + FireEventInsideApartment(15, NULL, 0, &retval); + + return allowClose != VARIANT_FALSE; + } + + HRESULT FireReceivedTSPublicKey(void * publicKey, unsigned int publicKeyLength) + { + assert(m_Connected); + + if(!m_NotifyTSPublicKey) + return S_OK; + + BSTR bstrPublicKey = SysAllocStringByteLen(NULL, publicKeyLength); + + if(bstrPublicKey == NULL) + return E_OUTOFMEMORY; + + CopyMemory(bstrPublicKey, publicKey, publicKeyLength); + + VARIANT_BOOL continueLogon = VARIANT_TRUE; + VARIANTARG arg = { }; + VARIANTARG retval = { }; + + arg.vt = VT_BSTR; + arg.bstrVal = bstrPublicKey; + + retval.vt = VT_BYREF | VT_BOOL; + retval.pboolVal = &continueLogon; + + // Source: protocol + FireEventOutsideApartment(16, &arg, 1, &retval); + + return continueLogon ? S_OK : S_FALSE; + } + + LONG FireAutoReconnecting(long disconnectReason, long attemptCount) + { + LONG continueStatus = MSTSCLib::autoReconnectContinueAutomatic; + VARIANTARG args[2] = { }; + VARIANTARG retval = { }; + + args[1].vt = VT_I4; + args[1].lVal = disconnectReason; + + args[0].vt = VT_I4; + args[0].lVal = attemptCount; + + retval.vt = VT_BYREF | VT_I4; + retval.plVal = &continueStatus; + + // Source: protocol + FireEventOutsideApartment(17, args, ARRAYSIZE(args), &retval); + + return continueStatus; + } + + void FireAuthenticationWarningDisplayed() + { + // Source: protocol + FireEventOutsideApartment(18); + } + + void FireAuthenticationWarningDismissed() + { + // Source: protocol + FireEventOutsideApartment(19); + } + + /* Actual IUnknown implementation */ + HRESULT queryInterface(REFIID riid, void ** ppvObject) + { + IUnknown * pvObject = NULL; + + using namespace MSTSCLib; + + if(riid == IID_IUnknown) + pvObject = static_cast(&m_inner); + else if(riid == IID_IConnectionPointContainer) + pvObject = static_cast(this); + else if(riid == IID_IDataObject) + pvObject = static_cast(this); + else if(riid == IID_IObjectSafety) + pvObject = static_cast(this); + else if(riid == IID_IOleControl) + pvObject = static_cast(this); + else if(riid == IID_IOleInPlaceActiveObject) + pvObject = static_cast(this); + else if(riid == IID_IOleInPlaceObject) + pvObject = static_cast(this); + else if(riid == IID_IOleObject) + pvObject = static_cast(this); + else if(riid == IID_IOleWindow) + pvObject = static_cast(this); + else if(riid == IID_IPersist) + pvObject = static_cast(this); + else if(riid == IID_IPersistPropertyBag) + pvObject = static_cast(this); + else if(riid == IID_IPersistStorage) + pvObject = static_cast(this); + else if(riid == IID_IPersistStreamInit) + pvObject = static_cast(this); + else if(riid == IID_IQuickActivate) + pvObject = static_cast(this); + else if(riid == IID_IViewObject) + pvObject = static_cast(this); + else if(riid == IID_IViewObject2) + pvObject = static_cast(this); + else if(riid == IID_IMsTscAx || riid == MSTSCLib_Redist::IID_IMsTscAx) + pvObject = static_cast(this); + else if(riid == IID_IMsRdpClient) + pvObject = static_cast(this); + else if(riid == IID_IMsRdpClient2) + pvObject = static_cast(this); + else if(riid == IID_IMsRdpClient3) + pvObject = static_cast(this); + else if(riid == IID_IMsRdpClient4) + pvObject = static_cast(this); + else if(riid == IID_IMsTscNonScriptable) + pvObject = static_cast(this); + else if(riid == IID_IMsRdpClientNonScriptable) + pvObject = static_cast(this); + else if(riid == IID_IMsRdpClientNonScriptable2) + pvObject = static_cast(this); + + *ppvObject = pvObject; + + if(pvObject) + { + pvObject->AddRef(); + return S_OK; + } + + return E_NOINTERFACE; + } + + ULONG addRef() + { + return InterlockedIncrement(&m_refCount); + } + + ULONG release() + { + LONG n = InterlockedDecrement(&m_refCount); + + if(n == 0) + delete this; + + return n; + } + + /* Constructor */ + RdpClient(REFCLSID classId, unsigned libIndex, IUnknown * punkOuter): + // COM/OLE internals + m_refCount(0), + m_punkOuter(punkOuter), + m_classId(classId), + m_typeLibIndex(libIndex), + m_typeLib(), + m_dispTypeInfo(), + m_controlWindow(NULL), + m_clientSite(), + m_inPlaceSite(), + m_adviseHolder(), + m_freezeEvents(0), + m_uiActive(false), + m_SafetyOptions(), + +#ifdef _DEBUG + m_apartmentThreadId(GetCurrentThreadId()), +#endif + + // rdesktop-core interface + m_protocolState(), + m_protocolThread(), + + // Properties + m_Server(), + m_Domain(), + m_UserName(), + m_DisconnectedText(), + m_ConnectingText(), + m_FullScreenTitle(), + m_StartProgram(), + m_WorkDir(), + m_LoadBalanceInfo(), + m_ConnectedStatusText(), + m_ClearTextPassword(), + m_RdpdrLocalPrintingDocName(), + m_RdpdrClipCleanTempDirString(), + m_RdpdrClipPasteInfoString(), + m_UIParentWindowHandle(), + m_DesktopWidth(), + m_DesktopHeight(), + m_StartConnected(), + m_ColorDepth(16), + m_KeyboardHookMode(2), + m_AudioRedirectionMode(0), + m_TransportType(1), // BUGBUG: ??? what's this ??? + m_SasSequence(0xAA03), // BUGBUG: ??? what's this ??? + m_RDPPort(3389), + m_HotKeyFullScreen(VK_CANCEL), + m_HotKeyAltEsc(VK_INSERT), + m_HotKeyAltShiftTab(VK_NEXT), + m_HotKeyAltSpace(VK_DELETE), + m_HotKeyAltTab(VK_PRIOR), + m_HotKeyCtrlAltDel(VK_END), + m_HotKeyCtrlEsc(VK_HOME), + m_orderDrawThresold(0), + m_BitmapCacheSize(1500), + m_BitmapVirtualCacheSize(10), + m_brushSupportLevel(), + m_minInputSendInterval(), + m_InputEventsAtOnce(), + m_maxEventCount(), + m_keepAliveInternal(0), + m_shutdownTimeout(10), + m_overallConnectionTimeout(120), + m_singleConnectionTimeout(30), + m_MinutesToIdleTimeout(0), + m_BitmapVirtualCache16BppSize(20), + m_BitmapVirtualCache24BppSize(30), + m_PerformanceFlags(), + m_MaxReconnectAttempts(20), + m_AuthenticationLevel(0), + m_ExtendedDisconnectReason(MSTSCLib::exDiscReasonNoInfo), + m_Connected(false), + m_Compress(true), + m_BitmapPersistence(true), + m_allowBackgroundInput(false), + m_ContainerHandledFullScreen(false), + m_DisableRdpdr(false), + m_SecuredSettingsEnabled(true), + m_FullScreen(false), + m_AcceleratorPassthrough(true), + m_ShadowBitmap(true), + m_EncryptionEnabled(true), + m_DedicatedTerminal(false), + m_DisableCtrlAltDel(true), + m_EnableWindowsKey(true), + m_DoubleClickDetect(false), + m_MaximizeShell(true), + m_ScaleBitmapCachesByBpp(false), + m_CachePersistenceActive(false), + m_ConnectToServerConsole(false), + m_SmartSizing(false), + m_DisplayConnectionBar(true), + m_PinConnectionBar(true), + m_GrabFocusOnConnect(true), + m_RedirectDrives(false), + m_RedirectPrinters(false), + m_RedirectPorts(false), + m_RedirectSmartCards(false), + m_NotifyTSPublicKey(false), + m_CanAutoReconnect(false), + m_EnableAutoReconnect(true), + m_ConnectionBarShowMinimizeButton(true), + m_ConnectionBarShowRestoreButton(true) + { + if(m_punkOuter == NULL) + m_punkOuter = &m_inner; + } + + /* Destructor */ + ~RdpClient() + { + assert(m_refCount == 0); + + if(m_Connected) + { + // Terminate the protocol thread + TerminateProtocolThread(); + + // Dispatch the RDPC_WM_DISCONNECT message sent by the dying thread + MSG msg; + PeekMessage(&msg, m_controlWindow, 0, 0, PM_NOREMOVE); + + assert(!m_Connected); + } + + DestroyControlWindow(); + + if(m_typeLib) + m_typeLib->Release(); + + if(m_dispTypeInfo) + m_dispTypeInfo->Release(); + + MSTSCLib::IMsTscAxEvents ** sinks = GetSinks(); + + for(size_t i = 0; i < m_EventSinksCount; ++ i) + sinks[i]->Release(); + + if(m_EventSinksCount > 1) + delete[] m_EventSinks; + + if(m_clientSite) + m_clientSite->Release(); + + if(m_inPlaceSite) + m_inPlaceSite->Release(); + + if(m_adviseHolder) + m_adviseHolder->Release(); + + SysFreeString(m_Domain); + SysFreeString(m_UserName); + SysFreeString(m_DisconnectedText); + SysFreeString(m_DisconnectedText); + SysFreeString(m_FullScreenTitle); + SysFreeString(m_StartProgram); + SysFreeString(m_WorkDir); + SysFreeString(m_ConnectedStatusText); + SysFreeString(m_ClearTextPassword); + SysFreeString(m_RdpdrLocalPrintingDocName); + SysFreeString(m_RdpdrClipCleanTempDirString); + SysFreeString(m_RdpdrClipPasteInfoString); + + FreeLpsz(m_LoadBalanceInfo); + FreeLpsz(m_Server); + + unlockServer(); + } + + /* Advanced settings wrapper */ + friend class AdvancedSettings; + + class AdvancedSettings SEALED_: public MSTSCLib::IMsRdpClientAdvancedSettings4 + { + private: + RdpClient * Outer() + { + return InnerToOuter(this); + } + + const RdpClient * Outer() const + { + return InnerToOuter(this); + } + + /* IDispatch type information */ + ITypeInfo * m_dispTypeInfo; + + HRESULT LoadDispTypeInfo() + { + if(m_dispTypeInfo) + return S_OK; + + HRESULT hr = Outer()->LoadTypeLibrary(); + + if(FAILED(hr)) + return hr; + + assert(MSTSCLib::IID_IMsRdpClientAdvancedSettings4 == MSTSCLib_Redist::IID_IMsRdpClientAdvancedSettings4); + + hr = Outer()->m_typeLib->GetTypeInfoOfGuid(MSTSCLib::IID_IMsRdpClientAdvancedSettings4, &m_dispTypeInfo); + + if(FAILED(hr)) + return hr; + + assert(m_dispTypeInfo); + return S_OK; + } + + HRESULT AcquireDispTypeInfo(ITypeInfo ** ppTI) + { + HRESULT hr = LoadDispTypeInfo(); + + if(FAILED(hr)) + return hr; + + m_dispTypeInfo->AddRef(); + *ppTI = m_dispTypeInfo; + return S_OK; + } + + public: + ~AdvancedSettings() + { + if(m_dispTypeInfo) + m_dispTypeInfo->Release(); + } + + /* IUnknown */ + virtual STDMETHODIMP IUnknown::QueryInterface(REFIID riid, void ** ppvObject) + { + using namespace MSTSCLib; + + if + ( + riid == IID_IUnknown || + riid == IID_IDispatch || + riid == IID_IMsTscAdvancedSettings || + riid == IID_IMsRdpClientAdvancedSettings || + riid == IID_IMsRdpClientAdvancedSettings2 || + riid == IID_IMsRdpClientAdvancedSettings3 || + riid == IID_IMsRdpClientAdvancedSettings4 + ) + { + *ppvObject = this; + Outer()->addRef(); + return S_OK; + } + else + { + *ppvObject = NULL; + return E_NOINTERFACE; + } + } + + virtual STDMETHODIMP_(ULONG) IUnknown::AddRef() + { + return Outer()->addRef(); + } + + virtual STDMETHODIMP_(ULONG) IUnknown::Release() + { + return Outer()->release(); + } + + /* IDispatch */ + virtual STDMETHODIMP IDispatch::GetTypeInfoCount(UINT * pctinfo) + { + *pctinfo = 1; + return S_OK; + } + + virtual STDMETHODIMP IDispatch::GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo ** ppTInfo) + { + if(iTInfo != 0) + return DISP_E_BADINDEX; + + return AcquireDispTypeInfo(ppTInfo); + } + + virtual STDMETHODIMP IDispatch::GetIDsOfNames(REFIID riid, LPOLESTR * rgszNames, UINT cNames, LCID lcid, DISPID * rgDispId) + { + HRESULT hr = LoadDispTypeInfo(); + + if(FAILED(hr)) + return hr; + + return m_dispTypeInfo->GetIDsOfNames(rgszNames, cNames, rgDispId); + } + + virtual STDMETHODIMP IDispatch::Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS * pDispParams, VARIANT * pVarResult, EXCEPINFO * pExcepInfo, UINT * puArgErr) + { + return m_dispTypeInfo->Invoke + ( + static_cast(this), + dispIdMember, + wFlags, + pDispParams, + pVarResult, + pExcepInfo, + puArgErr + ); + } + + /* IMsTscAdvancedSettings */ + virtual STDMETHODIMP IMsTscAdvancedSettings::put_Compress(long pcompress) + { + return Outer()->SetProperty(Outer()->m_Compress, pcompress); + } + + virtual STDMETHODIMP IMsTscAdvancedSettings::get_Compress(long * pcompress) const + { + return Outer()->GetProperty(Outer()->m_Compress, pcompress); + } + + virtual STDMETHODIMP IMsTscAdvancedSettings::put_BitmapPeristence(long pbitmapPeristence) + { + return Outer()->SetProperty(Outer()->m_BitmapPersistence, pbitmapPeristence); + } + + virtual STDMETHODIMP IMsTscAdvancedSettings::get_BitmapPeristence(long * pbitmapPeristence) const + { + return Outer()->GetProperty(Outer()->m_BitmapPersistence, pbitmapPeristence); + } + + virtual STDMETHODIMP IMsTscAdvancedSettings::put_allowBackgroundInput(long pallowBackgroundInput) + { + if(Outer()->IsSafeForScripting()) + return S_FALSE; + + return Outer()->SetProperty(Outer()->m_allowBackgroundInput, pallowBackgroundInput); + } + + virtual STDMETHODIMP IMsTscAdvancedSettings::get_allowBackgroundInput(long * pallowBackgroundInput) const + { + return Outer()->GetProperty(Outer()->m_allowBackgroundInput, pallowBackgroundInput); + } + + virtual STDMETHODIMP IMsTscAdvancedSettings::put_KeyBoardLayoutStr(BSTR rhs) + { + return Outer()->SetProperty(Outer()->m_KeyboardLayoutString, rhs); + } + + virtual STDMETHODIMP IMsTscAdvancedSettings::put_PluginDlls(BSTR rhs) + { + // TODO: split rhs into an array + + // Control marked safe for scripting: only allow filenames + if(Outer()->IsSafeForScripting()) + { + // TODO: validate entries + // TODO: replace each entry with a full path based on the Virtual Channel DLL path + } + + return E_NOTIMPL; // TODO + } + + virtual STDMETHODIMP IMsTscAdvancedSettings::put_IconFile(BSTR rhs) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IMsTscAdvancedSettings::put_IconIndex(long rhs) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IMsTscAdvancedSettings::put_ContainerHandledFullScreen(long pContainerHandledFullScreen) + { + if(Outer()->IsSafeForScripting()) + return S_FALSE; + + return Outer()->SetProperty(Outer()->m_ContainerHandledFullScreen, pContainerHandledFullScreen); + } + + virtual STDMETHODIMP IMsTscAdvancedSettings::get_ContainerHandledFullScreen(long * pContainerHandledFullScreen) const + { + return Outer()->GetProperty(Outer()->m_ContainerHandledFullScreen, pContainerHandledFullScreen); + } + + virtual STDMETHODIMP IMsTscAdvancedSettings::put_DisableRdpdr(long pDisableRdpdr) + { + return Outer()->SetProperty(Outer()->m_DisableRdpdr, pDisableRdpdr); + } + + virtual STDMETHODIMP IMsTscAdvancedSettings::get_DisableRdpdr(long * pDisableRdpdr) const + { + return Outer()->GetProperty(Outer()->m_DisableRdpdr, pDisableRdpdr); + } + + /* IMsRdpClientAdvancedSettings */ + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_SmoothScroll(long psmoothScroll) + { + return S_FALSE; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_SmoothScroll(long * psmoothScroll) const + { + return S_FALSE; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_AcceleratorPassthrough(long pacceleratorPassthrough) + { + return Outer()->SetProperty(Outer()->m_AcceleratorPassthrough, pacceleratorPassthrough); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_AcceleratorPassthrough(long * pacceleratorPassthrough) const + { + return Outer()->GetProperty(Outer()->m_AcceleratorPassthrough, pacceleratorPassthrough); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_ShadowBitmap(long pshadowBitmap) + { + return Outer()->SetProperty(Outer()->m_ShadowBitmap, pshadowBitmap); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_ShadowBitmap(long * pshadowBitmap) const + { + return Outer()->GetProperty(Outer()->m_ShadowBitmap, pshadowBitmap); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_TransportType(long ptransportType) + { + // Reserved + return Outer()->SetProperty(Outer()->m_TransportType, ptransportType); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_TransportType(long * ptransportType) const + { + // Reserved + return Outer()->GetProperty(Outer()->m_TransportType, ptransportType); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_SasSequence(long psasSequence) + { + // Reserved + return Outer()->SetProperty(Outer()->m_SasSequence, psasSequence); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_SasSequence(long * psasSequence) const + { + // Reserved + return Outer()->GetProperty(Outer()->m_SasSequence, psasSequence); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_EncryptionEnabled(long pencryptionEnabled) + { + return Outer()->SetProperty(Outer()->m_EncryptionEnabled, pencryptionEnabled); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_EncryptionEnabled(long * pencryptionEnabled) const + { + return Outer()->GetProperty(Outer()->m_EncryptionEnabled, pencryptionEnabled); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_DedicatedTerminal(long pdedicatedTerminal) + { + return Outer()->SetProperty(Outer()->m_DedicatedTerminal, pdedicatedTerminal); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_DedicatedTerminal(long * pdedicatedTerminal) const + { + return Outer()->GetProperty(Outer()->m_DedicatedTerminal, pdedicatedTerminal); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RDPPort(long prdpPort) + { + if(prdpPort == 0 || prdpPort > 65535) + return E_INVALIDARG; + + return Outer()->SetProperty(Outer()->m_RDPPort, prdpPort); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RDPPort(long * prdpPort) const + { + return Outer()->GetProperty(Outer()->m_RDPPort, prdpPort); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_EnableMouse(long penableMouse) + { + return S_FALSE; // TBD? implement? + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_EnableMouse(long * penableMouse) const + { + return S_FALSE; // TBD? implement? + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_DisableCtrlAltDel(long pdisableCtrlAltDel) + { + return Outer()->SetProperty(Outer()->m_DisableCtrlAltDel, pdisableCtrlAltDel); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_DisableCtrlAltDel(long * pdisableCtrlAltDel) const + { + return Outer()->GetProperty(Outer()->m_DisableCtrlAltDel, pdisableCtrlAltDel); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_EnableWindowsKey(long penableWindowsKey) + { + return Outer()->SetProperty(Outer()->m_EnableWindowsKey, penableWindowsKey); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_EnableWindowsKey(long * penableWindowsKey) const + { + return Outer()->GetProperty(Outer()->m_EnableWindowsKey, penableWindowsKey); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_DoubleClickDetect(long pdoubleClickDetect) + { + return Outer()->SetProperty(Outer()->m_DoubleClickDetect, pdoubleClickDetect); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_DoubleClickDetect(long * pdoubleClickDetect) const + { + return Outer()->GetProperty(Outer()->m_DoubleClickDetect, pdoubleClickDetect); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_MaximizeShell(long pmaximizeShell) + { + return Outer()->SetProperty(Outer()->m_MaximizeShell, pmaximizeShell); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_MaximizeShell(long * pmaximizeShell) const + { + return Outer()->GetProperty(Outer()->m_MaximizeShell, pmaximizeShell); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyFullScreen(long photKeyFullScreen) + { + return Outer()->SetProperty(Outer()->m_HotKeyFullScreen, photKeyFullScreen); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyFullScreen(long * photKeyFullScreen) const + { + return Outer()->GetProperty(Outer()->m_HotKeyFullScreen, photKeyFullScreen); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyCtrlEsc(long photKeyCtrlEsc) + { + return Outer()->SetProperty(Outer()->m_HotKeyCtrlEsc, photKeyCtrlEsc); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyCtrlEsc(long * photKeyCtrlEsc) const + { + return Outer()->GetProperty(Outer()->m_HotKeyCtrlEsc, photKeyCtrlEsc); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyAltEsc(long photKeyAltEsc) + { + return Outer()->SetProperty(Outer()->m_HotKeyAltEsc, photKeyAltEsc); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyAltEsc(long * photKeyAltEsc) const + { + return Outer()->GetProperty(Outer()->m_HotKeyAltEsc, photKeyAltEsc); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyAltTab(long photKeyAltTab) + { + return Outer()->SetProperty(Outer()->m_HotKeyAltTab, photKeyAltTab); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyAltTab(long * photKeyAltTab) const + { + return Outer()->GetProperty(Outer()->m_HotKeyAltTab, photKeyAltTab); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyAltShiftTab(long photKeyAltShiftTab) + { + return Outer()->SetProperty(Outer()->m_HotKeyAltShiftTab, photKeyAltShiftTab); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyAltShiftTab(long * photKeyAltShiftTab) const + { + return Outer()->GetProperty(Outer()->m_HotKeyAltShiftTab, photKeyAltShiftTab); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyAltSpace(long photKeyAltSpace) + { + return Outer()->SetProperty(Outer()->m_HotKeyAltSpace, photKeyAltSpace); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyAltSpace(long * photKeyAltSpace) const + { + return Outer()->GetProperty(Outer()->m_HotKeyAltSpace, photKeyAltSpace); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_HotKeyCtrlAltDel(long photKeyCtrlAltDel) + { + return Outer()->SetProperty(Outer()->m_HotKeyCtrlAltDel, photKeyCtrlAltDel); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_HotKeyCtrlAltDel(long * photKeyCtrlAltDel) const + { + return Outer()->GetProperty(Outer()->m_HotKeyCtrlAltDel, photKeyCtrlAltDel); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_orderDrawThreshold(long porderDrawThreshold) + { + return S_FALSE; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_orderDrawThreshold(long * porderDrawThreshold) const + { + return S_FALSE; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_BitmapCacheSize(long pbitmapCacheSize) + { + // NOTE: the upper bound of "32" for a field with a default value of 1500 seems to be a bug + if(pbitmapCacheSize < 0 || pbitmapCacheSize > 32) + return E_INVALIDARG; + + return Outer()->SetProperty(Outer()->m_BitmapCacheSize, pbitmapCacheSize); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_BitmapCacheSize(long * pbitmapCacheSize) const + { + return Outer()->GetProperty(Outer()->m_BitmapCacheSize, pbitmapCacheSize); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_BitmapVirtualCacheSize(long pbitmapVirtualCacheSize) + { + if(pbitmapVirtualCacheSize < 0 || pbitmapVirtualCacheSize > 32) + return E_INVALIDARG; + + return Outer()->SetProperty(Outer()->m_BitmapVirtualCacheSize, pbitmapVirtualCacheSize); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_BitmapVirtualCacheSize(long * pbitmapVirtualCacheSize) const + { + return Outer()->GetProperty(Outer()->m_BitmapVirtualCacheSize, pbitmapVirtualCacheSize); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_ScaleBitmapCachesByBPP(long pbScale) + { + return S_FALSE; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_ScaleBitmapCachesByBPP(long * pbScale) const + { + return S_FALSE; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_NumBitmapCaches(long pnumBitmapCaches) + { + return Outer()->SetProperty(Outer()->m_NumBitmapCaches, pnumBitmapCaches); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_NumBitmapCaches(long * pnumBitmapCaches) const + { + return Outer()->GetProperty(Outer()->m_NumBitmapCaches, pnumBitmapCaches); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_CachePersistenceActive(long pcachePersistenceActive) + { + return Outer()->SetProperty(Outer()->m_CachePersistenceActive, pcachePersistenceActive); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_CachePersistenceActive(long * pcachePersistenceActive) const + { + return Outer()->GetProperty(Outer()->m_CachePersistenceActive, pcachePersistenceActive); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_PersistCacheDirectory(BSTR rhs) + { + return S_FALSE; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_brushSupportLevel(long pbrushSupportLevel) + { + return Outer()->SetProperty(Outer()->m_brushSupportLevel, pbrushSupportLevel); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_brushSupportLevel(long * pbrushSupportLevel) const + { + return Outer()->GetProperty(Outer()->m_brushSupportLevel, pbrushSupportLevel); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_minInputSendInterval(long pminInputSendInterval) + { + // TODO + return S_FALSE; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_minInputSendInterval(long * pminInputSendInterval) const + { + // TODO + return S_FALSE; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_InputEventsAtOnce(long pinputEventsAtOnce) + { + // TODO + return S_FALSE; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_InputEventsAtOnce(long * pinputEventsAtOnce) const + { + // TODO + return S_FALSE; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_maxEventCount(long pmaxEventCount) + { + // TODO + return S_FALSE; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_maxEventCount(long * pmaxEventCount) const + { + // TODO + return S_FALSE; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_keepAliveInterval(long pkeepAliveInterval) + { + if(pkeepAliveInterval && pkeepAliveInterval < 10) + return E_INVALIDARG; + + return Outer()->SetProperty(Outer()->m_keepAliveInternal, pkeepAliveInterval); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_keepAliveInterval(long * pkeepAliveInterval) const + { + return Outer()->GetProperty(Outer()->m_keepAliveInternal, pkeepAliveInterval); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_shutdownTimeout(long pshutdownTimeout) + { + if(pshutdownTimeout >= 600) + return E_INVALIDARG; + + return Outer()->SetProperty(Outer()->m_shutdownTimeout, pshutdownTimeout); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_shutdownTimeout(long * pshutdownTimeout) const + { + return Outer()->GetProperty(Outer()->m_shutdownTimeout, pshutdownTimeout); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_overallConnectionTimeout(long poverallConnectionTimeout) + { + if(poverallConnectionTimeout < 0 || poverallConnectionTimeout >= 600) + return E_INVALIDARG; + + return Outer()->SetProperty(Outer()->m_overallConnectionTimeout, poverallConnectionTimeout); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_overallConnectionTimeout(long * poverallConnectionTimeout) const + { + return Outer()->GetProperty(Outer()->m_overallConnectionTimeout, poverallConnectionTimeout); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_singleConnectionTimeout(long psingleConnectionTimeout) + { + if(psingleConnectionTimeout >= 600) + return E_INVALIDARG; + + return Outer()->SetProperty(Outer()->m_singleConnectionTimeout, psingleConnectionTimeout); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_singleConnectionTimeout(long * psingleConnectionTimeout) const + { + return Outer()->GetProperty(Outer()->m_singleConnectionTimeout, psingleConnectionTimeout); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_KeyboardType(long pkeyboardType) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_KeyboardType(long * pkeyboardType) const + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_KeyboardSubType(long pkeyboardSubType) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_KeyboardSubType(long * pkeyboardSubType) const + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_KeyboardFunctionKey(long pkeyboardFunctionKey) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_KeyboardFunctionKey(long * pkeyboardFunctionKey) const + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_WinceFixedPalette(long pwinceFixedPalette) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_WinceFixedPalette(long * pwinceFixedPalette) const + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_ConnectToServerConsole(VARIANT_BOOL pConnectToConsole) + { + return Outer()->SetProperty(Outer()->m_ConnectToServerConsole, pConnectToConsole); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_ConnectToServerConsole(VARIANT_BOOL * pConnectToConsole) const + { + return Outer()->GetProperty(Outer()->m_ConnectToServerConsole, pConnectToConsole); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_BitmapPersistence(long pbitmapPersistence) + { + return put_BitmapPeristence(pbitmapPersistence); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_BitmapPersistence(long * pbitmapPersistence) const + { + return get_BitmapPeristence(pbitmapPersistence); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_MinutesToIdleTimeout(long pminutesToIdleTimeout) + { + if(pminutesToIdleTimeout > 240) + return E_INVALIDARG; + + return Outer()->SetProperty(Outer()->m_MinutesToIdleTimeout, pminutesToIdleTimeout); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_MinutesToIdleTimeout(long * pminutesToIdleTimeout) const + { + return Outer()->GetProperty(Outer()->m_MinutesToIdleTimeout, pminutesToIdleTimeout); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_SmartSizing(VARIANT_BOOL pfSmartSizing) + { + return Outer()->SetProperty(Outer()->m_SmartSizing, pfSmartSizing); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_SmartSizing(VARIANT_BOOL * pfSmartSizing) const + { + return Outer()->GetProperty(Outer()->m_SmartSizing, pfSmartSizing); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RdpdrLocalPrintingDocName(BSTR pLocalPrintingDocName) + { + return Outer()->SetProperty(Outer()->m_RdpdrLocalPrintingDocName, pLocalPrintingDocName); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RdpdrLocalPrintingDocName(BSTR * pLocalPrintingDocName) const + { + return Outer()->GetProperty(Outer()->m_RdpdrLocalPrintingDocName, pLocalPrintingDocName); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RdpdrClipCleanTempDirString(BSTR clipCleanTempDirString) + { + return Outer()->SetProperty(Outer()->m_RdpdrClipCleanTempDirString, clipCleanTempDirString); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RdpdrClipCleanTempDirString(BSTR * clipCleanTempDirString) const + { + return Outer()->GetProperty(Outer()->m_RdpdrClipCleanTempDirString, clipCleanTempDirString); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RdpdrClipPasteInfoString(BSTR clipPasteInfoString) + { + return Outer()->SetProperty(Outer()->m_RdpdrClipPasteInfoString, clipPasteInfoString); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RdpdrClipPasteInfoString(BSTR * clipPasteInfoString) const + { + return Outer()->GetProperty(Outer()->m_RdpdrClipPasteInfoString, clipPasteInfoString); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_ClearTextPassword(BSTR rhs) + { + return Outer()->put_ClearTextPassword(rhs); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_DisplayConnectionBar(VARIANT_BOOL pDisplayConnectionBar) + { + if(!pDisplayConnectionBar && Outer()->IsSafeForScripting()) + return E_FAIL; + + return Outer()->SetProperty(Outer()->m_DisplayConnectionBar, pDisplayConnectionBar); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_DisplayConnectionBar(VARIANT_BOOL * pDisplayConnectionBar) const + { + return Outer()->GetProperty(Outer()->m_DisplayConnectionBar, pDisplayConnectionBar); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_PinConnectionBar(VARIANT_BOOL pPinConnectionBar) + { + if(Outer()->IsSafeForScripting()) + return E_NOTIMPL; + + return Outer()->SetProperty(Outer()->m_PinConnectionBar, pPinConnectionBar); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_PinConnectionBar(VARIANT_BOOL * pPinConnectionBar) const + { + return Outer()->GetProperty(Outer()->m_PinConnectionBar, pPinConnectionBar); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_GrabFocusOnConnect(VARIANT_BOOL pfGrabFocusOnConnect) + { + return Outer()->SetProperty(Outer()->m_GrabFocusOnConnect, pfGrabFocusOnConnect); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_GrabFocusOnConnect(VARIANT_BOOL * pfGrabFocusOnConnect) const + { + return Outer()->GetProperty(Outer()->m_GrabFocusOnConnect, pfGrabFocusOnConnect); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_LoadBalanceInfo(BSTR pLBInfo) + { + return Outer()->SetProperty(Outer()->m_LoadBalanceInfo, pLBInfo); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_LoadBalanceInfo(BSTR * pLBInfo) const + { + return Outer()->GetProperty(Outer()->m_LoadBalanceInfo, pLBInfo); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RedirectDrives(VARIANT_BOOL pRedirectDrives) + { + return Outer()->SetProperty(Outer()->m_RedirectDrives, pRedirectDrives); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RedirectDrives(VARIANT_BOOL * pRedirectDrives) const + { + return Outer()->GetProperty(Outer()->m_RedirectDrives, pRedirectDrives); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RedirectPrinters(VARIANT_BOOL pRedirectPrinters) + { + return Outer()->SetProperty(Outer()->m_RedirectPrinters, pRedirectPrinters); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RedirectPrinters(VARIANT_BOOL * pRedirectPrinters) const + { + return Outer()->GetProperty(Outer()->m_RedirectPrinters, pRedirectPrinters); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RedirectPorts(VARIANT_BOOL pRedirectPorts) + { + return Outer()->SetProperty(Outer()->m_RedirectPorts, pRedirectPorts); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RedirectPorts(VARIANT_BOOL * pRedirectPorts) const + { + return Outer()->GetProperty(Outer()->m_RedirectPorts, pRedirectPorts); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_RedirectSmartCards(VARIANT_BOOL pRedirectSmartCards) + { + return Outer()->SetProperty(Outer()->m_RedirectSmartCards, pRedirectSmartCards); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_RedirectSmartCards(VARIANT_BOOL * pRedirectSmartCards) const + { + return Outer()->GetProperty(Outer()->m_RedirectSmartCards, pRedirectSmartCards); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_BitmapVirtualCache16BppSize(long pBitmapVirtualCache16BppSize) + { + if(pBitmapVirtualCache16BppSize < 0 || pBitmapVirtualCache16BppSize > 32) + return E_INVALIDARG; + + return Outer()->SetProperty(Outer()->m_BitmapVirtualCache16BppSize, pBitmapVirtualCache16BppSize); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_BitmapVirtualCache16BppSize(long * pBitmapVirtualCache16BppSize) const + { + return Outer()->GetProperty(Outer()->m_BitmapVirtualCache16BppSize, pBitmapVirtualCache16BppSize); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_BitmapVirtualCache24BppSize(long pBitmapVirtualCache24BppSize) + { + if(pBitmapVirtualCache24BppSize < 0 || pBitmapVirtualCache24BppSize > 32) + return E_INVALIDARG; + + return Outer()->SetProperty(Outer()->m_BitmapVirtualCache24BppSize, pBitmapVirtualCache24BppSize); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_BitmapVirtualCache24BppSize(long * pBitmapVirtualCache24BppSize) const + { + return Outer()->GetProperty(Outer()->m_BitmapVirtualCache24BppSize, pBitmapVirtualCache24BppSize); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_PerformanceFlags(long pDisableList) + { + return Outer()->SetProperty(Outer()->m_PerformanceFlags, pDisableList); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_PerformanceFlags(long * pDisableList) const + { + return Outer()->GetProperty(Outer()->m_PerformanceFlags, pDisableList); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_ConnectWithEndpoint(VARIANT * rhs) + { + // TBD? the Microsoft client implements this, but what does it mean? + return E_NOTIMPL; + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::put_NotifyTSPublicKey(VARIANT_BOOL pfNotify) + { + return Outer()->SetProperty(Outer()->m_NotifyTSPublicKey, pfNotify); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings::get_NotifyTSPublicKey(VARIANT_BOOL * pfNotify) const + { + return Outer()->GetProperty(Outer()->m_NotifyTSPublicKey, pfNotify); + } + + /* IMsRdpClientAdvancedSettings2 */ + virtual STDMETHODIMP IMsRdpClientAdvancedSettings2::get_CanAutoReconnect(VARIANT_BOOL * pfCanAutoReconnect) const + { + return E_NOTIMPL; // TODO + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings2::put_EnableAutoReconnect(VARIANT_BOOL pfEnableAutoReconnect) + { + return Outer()->SetProperty(Outer()->m_EnableAutoReconnect, pfEnableAutoReconnect); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings2::get_EnableAutoReconnect(VARIANT_BOOL * pfEnableAutoReconnect) const + { + return Outer()->GetProperty(Outer()->m_EnableAutoReconnect, pfEnableAutoReconnect); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings2::put_MaxReconnectAttempts(long pMaxReconnectAttempts) + { + if(pMaxReconnectAttempts < 0 || pMaxReconnectAttempts > 200) + return E_INVALIDARG; + + return Outer()->SetProperty(Outer()->m_MaxReconnectAttempts, pMaxReconnectAttempts); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings2::get_MaxReconnectAttempts(long * pMaxReconnectAttempts) const + { + return Outer()->GetProperty(Outer()->m_MaxReconnectAttempts, pMaxReconnectAttempts); + } + + /* IMsRdpClientAdvancedSettings3 */ + virtual STDMETHODIMP IMsRdpClientAdvancedSettings3::put_ConnectionBarShowMinimizeButton(VARIANT_BOOL pfShowMinimize) + { + return Outer()->SetProperty(Outer()->m_ConnectionBarShowMinimizeButton, pfShowMinimize); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings3::get_ConnectionBarShowMinimizeButton(VARIANT_BOOL * pfShowMinimize) const + { + return Outer()->GetProperty(Outer()->m_ConnectionBarShowMinimizeButton, pfShowMinimize); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings3::put_ConnectionBarShowRestoreButton(VARIANT_BOOL pfShowRestore) + { + return Outer()->SetProperty(Outer()->m_ConnectionBarShowRestoreButton, pfShowRestore); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings3::get_ConnectionBarShowRestoreButton(VARIANT_BOOL * pfShowRestore) const + { + return Outer()->GetProperty(Outer()->m_ConnectionBarShowRestoreButton, pfShowRestore); + } + + /* IMsRdpClientAdvancedSettings4 */ + virtual STDMETHODIMP IMsRdpClientAdvancedSettings4::put_AuthenticationLevel(unsigned int puiAuthLevel) + { + // TODO: this isn't implemented in rdesktop yet... + return Outer()->SetProperty(Outer()->m_AuthenticationLevel, puiAuthLevel); + } + + virtual STDMETHODIMP IMsRdpClientAdvancedSettings4::get_AuthenticationLevel(unsigned int * puiAuthLevel) const + { + return Outer()->GetProperty(Outer()->m_AuthenticationLevel, puiAuthLevel); + } + } + m_advancedSettings; + + template HRESULT GetAdvancedSettings(Interface ** ppAdvSettings) + { + addRef(); + *ppAdvSettings = &m_advancedSettings; + return S_OK; + } + + /* Secured settings wrapper */ + friend class SecuredSettings; + + class SecuredSettings SEALED_: public MSTSCLib::IMsRdpClientSecuredSettings + { + private: + RdpClient * Outer() + { + return InnerToOuter(this); + } + + const RdpClient * Outer() const + { + return InnerToOuter(this); + } + + /* IDispatch type information */ + ITypeInfo * m_dispTypeInfo; + + HRESULT LoadDispTypeInfo() + { + if(m_dispTypeInfo) + return S_OK; + + HRESULT hr = Outer()->LoadTypeLibrary(); + + if(FAILED(hr)) + return hr; + + assert(MSTSCLib::IID_IMsRdpClientSecuredSettings == MSTSCLib_Redist::IID_IMsRdpClientSecuredSettings); + + hr = Outer()->m_typeLib->GetTypeInfoOfGuid(MSTSCLib::IID_IMsRdpClientSecuredSettings, &m_dispTypeInfo); + + if(FAILED(hr)) + return hr; + + assert(m_dispTypeInfo); + return S_OK; + } + + HRESULT AcquireDispTypeInfo(ITypeInfo ** ppTI) + { + HRESULT hr = LoadDispTypeInfo(); + + if(FAILED(hr)) + return hr; + + m_dispTypeInfo->AddRef(); + *ppTI = m_dispTypeInfo; + return S_OK; + } + + public: + ~SecuredSettings() + { + if(m_dispTypeInfo) + m_dispTypeInfo->Release(); + } + + /* IUnknown */ + virtual STDMETHODIMP IUnknown::QueryInterface(REFIID riid, void ** ppvObject) + { + using namespace MSTSCLib; + + if + ( + riid == IID_IUnknown || + riid == IID_IDispatch || + riid == IID_IMsTscSecuredSettings || + riid == IID_IMsRdpClientSecuredSettings + ) + { + *ppvObject = this; + Outer()->addRef(); + return S_OK; + } + else + { + *ppvObject = NULL; + return E_NOINTERFACE; + } + } + + virtual STDMETHODIMP_(ULONG) IUnknown::AddRef() + { + return Outer()->addRef(); + } + + virtual STDMETHODIMP_(ULONG) IUnknown::Release() + { + return Outer()->release(); + } + + /* IDispatch */ + virtual STDMETHODIMP IDispatch::GetTypeInfoCount(UINT * pctinfo) + { + *pctinfo = 1; + return S_OK; + } + + virtual STDMETHODIMP IDispatch::GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo ** ppTInfo) + { + if(iTInfo != 0) + return DISP_E_BADINDEX; + + return AcquireDispTypeInfo(ppTInfo); + } + + virtual STDMETHODIMP IDispatch::GetIDsOfNames(REFIID riid, LPOLESTR * rgszNames, UINT cNames, LCID lcid, DISPID * rgDispId) + { + HRESULT hr = LoadDispTypeInfo(); + + if(FAILED(hr)) + return hr; + + return m_dispTypeInfo->GetIDsOfNames(rgszNames, cNames, rgDispId); + } + + virtual STDMETHODIMP IDispatch::Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS * pDispParams, VARIANT * pVarResult, EXCEPINFO * pExcepInfo, UINT * puArgErr) + { + return m_dispTypeInfo->Invoke + ( + static_cast(this), + dispIdMember, + wFlags, + pDispParams, + pVarResult, + pExcepInfo, + puArgErr + ); + } + + /* IMsTscSecuredSettings */ + virtual STDMETHODIMP IMsTscSecuredSettings::put_StartProgram(BSTR pStartProgram) + { + return Outer()->SetProperty(Outer()->m_StartProgram, pStartProgram); + } + + virtual STDMETHODIMP IMsTscSecuredSettings::get_StartProgram(BSTR * pStartProgram) const + { + return Outer()->GetProperty(Outer()->m_StartProgram, pStartProgram); + } + + virtual STDMETHODIMP IMsTscSecuredSettings::put_WorkDir(BSTR pWorkDir) + { + return Outer()->SetProperty(Outer()->m_WorkDir, pWorkDir); + } + + virtual STDMETHODIMP IMsTscSecuredSettings::get_WorkDir(BSTR * pWorkDir) const + { + return Outer()->GetProperty(Outer()->m_WorkDir, pWorkDir); + } + + virtual STDMETHODIMP IMsTscSecuredSettings::put_FullScreen(long pfFullScreen) + { + return Outer()->put_FullScreen(!!pfFullScreen); + } + + virtual STDMETHODIMP IMsTscSecuredSettings::get_FullScreen(long * pfFullScreen) const + { + return Outer()->GetProperty(Outer()->m_FullScreen, pfFullScreen); + } + + /* IMsRdpClientSecuredSettings */ + virtual STDMETHODIMP IMsRdpClientSecuredSettings::put_KeyboardHookMode(long pkeyboardHookMode) + { + if(pkeyboardHookMode < 0 || pkeyboardHookMode > 2) + return E_INVALIDARG; + + return Outer()->SetProperty(Outer()->m_KeyboardHookMode, pkeyboardHookMode); + } + + virtual STDMETHODIMP IMsRdpClientSecuredSettings::get_KeyboardHookMode(long * pkeyboardHookMode) const + { + return Outer()->GetProperty(Outer()->m_KeyboardHookMode, pkeyboardHookMode); + } + + virtual STDMETHODIMP IMsRdpClientSecuredSettings::put_AudioRedirectionMode(long pAudioRedirectionMode) + { + if(pAudioRedirectionMode < 0 || pAudioRedirectionMode > 2) + return E_INVALIDARG; + + return Outer()->SetProperty(Outer()->m_AudioRedirectionMode, pAudioRedirectionMode); + } + + virtual STDMETHODIMP IMsRdpClientSecuredSettings::get_AudioRedirectionMode(long * pAudioRedirectionMode) const + { + return Outer()->GetProperty(Outer()->m_AudioRedirectionMode, pAudioRedirectionMode); + } + } + m_securedSettings; + + template HRESULT GetSecuredSettings(Interface ** ppSecuredSettings) + { + if(!m_SecuredSettingsEnabled) + return E_FAIL; + + addRef(); + *ppSecuredSettings = &m_securedSettings; + return S_OK; + } + + /* Type library loading */ + HRESULT LoadTypeLibrary() + { + if(m_typeLib) + return S_OK; + + // Get the DLL name of the ActiveX control + WCHAR szPath[MAX_PATH + 1]; + DWORD cchPathLen = GetModuleFileNameW(GetCurrentModule(), szPath, ARRAYSIZE(szPath) - 1); + + if(cchPathLen == 0) + return HRESULT_FROM_WIN32(GetLastError()); + + if(cchPathLen > ((ARRAYSIZE(szPath) - 1) - 2)) + return E_FAIL; + + // Append the resource id of the type library + assert(m_typeLibIndex < 10); + + szPath[cchPathLen + 0] = L'\\'; + szPath[cchPathLen + 1] = static_cast(L'0' + m_typeLibIndex); + szPath[cchPathLen + 2] = 0; + + // Load the type library + HRESULT hr = LoadTypeLibEx(szPath, REGKIND_NONE, &m_typeLib); + + if(FAILED(hr)) + return hr; + + assert(m_typeLib); + return S_OK; + } + + /* IDispatch type information */ + HRESULT LoadDispTypeInfo() + { + if(m_dispTypeInfo) + return S_OK; + + HRESULT hr = LoadTypeLibrary(); + + if(FAILED(hr)) + return hr; + + assert(MSTSCLib::IID_IMsRdpClient4 == MSTSCLib_Redist::IID_IMsRdpClient4); + + hr = m_typeLib->GetTypeInfoOfGuid(MSTSCLib::IID_IMsRdpClient4, &m_dispTypeInfo); + + if(FAILED(hr)) + return hr; + + assert(m_dispTypeInfo); + return S_OK; + } + + HRESULT AcquireDispTypeInfo(ITypeInfo ** ppTI) + { + HRESULT hr = LoadDispTypeInfo(); + + if(FAILED(hr)) + return hr; + + m_dispTypeInfo->AddRef(); + *ppTI = m_dispTypeInfo; + return S_OK; + } + +public: + /* Helpers for our various embedded children */ + static RdpClient * InnerToOuter(RdpClientInner * innerThis) + { + return CONTAINING_RECORD(innerThis, RdpClient, m_inner); + } + + static RdpClient * InnerToOuter(AdvancedSettings * innerThis) + { + return CONTAINING_RECORD(innerThis, RdpClient, m_advancedSettings); + } + + static RdpClient * InnerToOuter(SecuredSettings * innerThis) + { + return CONTAINING_RECORD(innerThis, RdpClient, m_securedSettings); + } + + static RdpClient * InnerToOuter(RDPCLIENT * innerThis) + { + return CONTAINING_RECORD(innerThis, RdpClient, m_protocolState); + } + + static const RdpClient * InnerToOuter(const RdpClientInner * innerThis) + { + return CONTAINING_RECORD(innerThis, RdpClient, m_inner); + } + + static const RdpClient * InnerToOuter(const AdvancedSettings * innerThis) + { + return CONTAINING_RECORD(innerThis, RdpClient, m_advancedSettings); + } + + static const RdpClient * InnerToOuter(const SecuredSettings * innerThis) + { + return CONTAINING_RECORD(innerThis, RdpClient, m_securedSettings); + } + + static const RdpClient * InnerToOuter(const RDPCLIENT * innerThis) + { + return CONTAINING_RECORD(innerThis, RdpClient, m_protocolState); + } + + RdpClientUI * GetUI() const + { + assert(m_clientUI); + return m_clientUI; + } + + /* Glue for rdesktop-core */ +public: + static bool OnPublicKey(RDPCLIENT * This, unsigned char * key, unsigned int key_size) + { + return InnerToOuter(This)->OnPublicKey(key, key_size); + } + + static void OnLogon(RDPCLIENT * This) + { + return InnerToOuter(This)->OnLogon(); + } + + static bool OnRedirect + ( + RDPCLIENT * This, + uint32 flags, + uint32 server_len, + wchar_t * server, + uint32 cookie_len, + char * cookie, + uint32 username_len, + wchar_t * username, + uint32 domain_len, + wchar_t * domain, + uint32 password_len, + wchar_t * password + ) + { + return InnerToOuter(This)->OnRedirect + ( + flags, + server_len, + server, + cookie_len, + cookie, + username_len, + username, + domain_len, + domain, + password_len, + password + ); + } + +private: + bool OnPublicKey(unsigned char * key, unsigned int key_size) + { + HRESULT hr = FireReceivedTSPublicKey(key, key_size); + + if(FAILED(hr)) + { + m_protocolState.disconnect_reason = 262; + return false; + } + + return hr == S_OK; + } + + void OnLogon() + { + m_loggedIn = true; + FireLoginComplete(); + } + + bool OnRedirect + ( + uint32 flags, + uint32 server_len, + wchar_t * server, + uint32 cookie_len, + char * cookie, + uint32 username_len, + wchar_t * username, + uint32 domain_len, + wchar_t * domain, + uint32 password_len, + wchar_t * password + ) + { + assert(m_Connected); + assert(!InsideApartment()); + assert(IsWindow(m_controlWindow)); + + RedirectArguments redirectArgs = + { + flags, + server_len, + server, + cookie_len, + cookie, + username_len, + username, + domain_len, + domain, + password_len, + password + }; + + return SendMessage(m_controlWindow, RDPC_WM_REDIRECT, 0, reinterpret_cast(&redirectArgs)) == 0; + } + +private: + static DWORD WINAPI ProtocolLoopThreadProc(LPVOID lpParam) + { + static_cast(lpParam)->ProtocolLoop(); + return 0; + } + + static VOID CALLBACK ConnectionTimerAPC(LPVOID, DWORD, DWORD) + { + } + + // FIXME: various potential inconsistencies due to lack of detailed documentation of expected semantics + void ProtocolLoop() + { + HANDLE waitingReconnection = NULL; + + // Retrieve the local hostname to be passed to the server + WCHAR hostname[MAX_COMPUTERNAME_LENGTH + 1]; + DWORD hostnameLen = ARRAYSIZE(hostname); + + if(!GetComputerNameW(hostname, &hostnameLen)) + hostname[0] = 0; + + // Set some connection flags + uint32 flags = RDP_LOGON_NORMAL; + + if(m_Compress) + flags |= RDP_LOGON_COMPRESSION | RDP_LOGON_COMPRESSION2; + + if(m_AudioRedirectionMode == 1) + flags |= RDP_LOGON_LEAVE_AUDIO; + + if(m_ClearTextPassword) + flags |= RDP_LOGON_AUTO; + + // Notify the container that the connection process is beginning now + FireConnecting(); + + // Set the overall connection timer, if a timeout is set + // BUGBUG: the timeout semantics are ambiguous and have been most probably misinterpreted + HANDLE overallConnectionTimer = NULL; + LARGE_INTEGER overallTimeout; + + if(m_overallConnectionTimeout) + { + overallTimeout.QuadPart = - ((m_overallConnectionTimeout * 1000 * 1000 * 1000) / 100); + + overallConnectionTimer = CreateWaitableTimer(NULL, FALSE, NULL); + + if(overallConnectionTimer == NULL) + goto l_Disconnect; + } + + if(overallConnectionTimer) + SetWaitableTimer(overallConnectionTimer, &overallTimeout, 0, ConnectionTimerAPC, NULL, FALSE); + + // Initial connection + BOOL disconnected = rdp_connect + ( + &m_protocolState, + m_Server, + flags, + m_UserName, + m_Domain, + m_ClearTextPassword, + m_StartProgram, + m_WorkDir, + hostname, + m_LoadBalanceInfo + ); + + if(overallConnectionTimer) + CancelWaitableTimer(overallConnectionTimer); + + if(disconnected) + goto l_Disconnect; + + // TODO: set the disconnect reason for every instance in which we abort the loop + for(;;) + { + BOOL deactivated = False; + uint32 extendedDisconnectReason = 0; + + m_actuallyConnected = true; + + // Notify the container of the successful connection + FireConnected(); + + // Main protocol loop + m_loggedIn = false; + rdp_main_loop(&m_protocolState, &deactivated, &extendedDisconnectReason); + rdp_disconnect(&m_protocolState); + + m_actuallyConnected = false; + + // Redirection + // BUGBUG: redirection is very messy and probably this implementation is not "canonical" + if(m_protocolState.redirect) + { + m_protocolState.redirect = False; + rdp_reset_state(&m_protocolState); + + // TODO: reset connection parameters + // This has to be done in the main thread, so use SendMessage on the control window + + flags |= RDP_LOGON_AUTO; + + // retry + continue; + } + + // Disconnection + m_ExtendedDisconnectReason = static_cast(extendedDisconnectReason); + + // Clean disconnection + if(deactivated) + break; + + BOOL success; + + long autoReconnections = 0; + long totalReconnections = 0; + + // Reconnection + // BUGBUG: reconnection semantics may not be entirely accurate + do + { + ++ totalReconnections; + + // ask the container whether we should reconnect + long reconnectMode = FireAutoReconnecting(m_protocolState.disconnect_reason, totalReconnections); + + // do not reconnect + if(reconnectMode == MSTSCLib::autoReconnectContinueStop) + goto l_Disconnect; + + // the container will reconnect or abort manually + if(reconnectMode == MSTSCLib::autoReconnectContinueManual) + { + assert(!m_reconnectAborted); + assert(m_protocolThreadWaitingReconnection == NULL); + + if(waitingReconnection == NULL) + { + waitingReconnection = CreateEvent(NULL, TRUE, FALSE, NULL); + + if(waitingReconnection == NULL) + // TODO: fatal error + goto l_Disconnect; + } + + m_protocolThreadWaitingReconnection = waitingReconnection; + + WaitForSingleObject(waitingReconnection, INFINITE); + + m_protocolThreadWaitingReconnection = NULL; + + if(m_reconnectAborted) + { + // FIXME? do we set the disconnection status here? + goto l_Disconnect; + } + } + // reconnect automatically + else + { + // automatic reconnection is disabled + if(m_EnableAutoReconnect) + break; + + // too many consecutive automatic reconnections + if(autoReconnections == m_MaxReconnectAttempts) + break; + + ++ autoReconnections; + } + + if(overallConnectionTimer) + SetWaitableTimer(overallConnectionTimer, &overallTimeout, 0, ConnectionTimerAPC, NULL, FALSE); + + // Reconnection + success = rdp_reconnect + ( + &m_protocolState, + m_Server, + flags, + m_UserName, + m_Domain, + m_ClearTextPassword, + m_StartProgram, + m_WorkDir, + hostname, + m_LoadBalanceInfo + ); + + if(overallConnectionTimer) + CancelWaitableTimer(overallConnectionTimer); + } + while(!success); + } + +l_Disconnect: + // Disconnected + FireDisconnected(m_protocolState.disconnect_reason); + + if(overallConnectionTimer) + CloseHandle(overallConnectionTimer); + } + + void JoinProtocolThread() + { + assert(m_protocolThread); + WaitForSingleObject(m_protocolThread, INFINITE); + CloseHandle(m_protocolThread); + m_protocolThread = NULL; + } + + void TerminateProtocolThread() + { + assert(m_protocolThread); + + // wake it up if it's waiting for a manual reconnection + if(m_protocolThreadWaitingReconnection) + { + assert(!m_reconnectAborted); + m_reconnectAborted = true; + SetEvent(m_protocolThreadWaitingReconnection); + } + // otherwise, attempt to interrupt any current blocking operation + else + { + // shutdown(m_protocolState.tcp.sock, SD_BOTH); // TBD: maybe in the future? + QueueUserAPC(DisconnectAPC, m_protocolThread, 0); + } + + assert(m_protocolThreadWaitingReconnection == NULL); + } + + void PerformDisconnect(long reason) + { + assert(InsideApartment()); + assert(m_Connected); + + // TODO: notify virtual channels + + // TODO: do any other disconnection work here... + + // Put the control in the disconnected state + m_Connected = false; + m_loggedIn = false; + + // Notify the container + VARIANTARG arg = { }; + + arg.vt = VT_I4; + arg.lVal = reason; + + FireEventInsideApartment(4, &arg, 1); + } + +public: + /* Startup initialization */ + static BOOL Startup() + { + if(!RdpClientUI::Startup()) + return FALSE; + + WNDCLASSEX wcex = { sizeof(wcex) }; + + wcex.style = CS_HREDRAW | CS_VREDRAW; + wcex.lpfnWndProc = ControlWindowProc; + wcex.hInstance = GetCurrentModule(); + wcex.hCursor = LoadCursor(NULL, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); + wcex.lpszClassName = TEXT("MissTosca_Control"); + + return RegisterClassEx(&wcex);; + } + + static void Shutdown() + { + UnregisterClass(TEXT("MissTosca_Control"), GetCurrentModule()); + } + + /* Class factory */ + static HRESULT CreateInstance(REFCLSID rclsid, unsigned libIndex, IUnknown * punkOuter, REFIID riid, void ** ppObj) + { + RdpClient * obj = new RdpClient(rclsid, libIndex, punkOuter); + + if(obj == NULL) + return E_OUTOFMEMORY; + + HRESULT hr = obj->m_inner.QueryInterface(riid, ppObj); + + if(FAILED(hr)) + { + delete obj; + return hr; + } + + assert(obj->m_refCount == 1); + assert(*ppObj != NULL); + + return S_OK; + } + +private: + /* Connection point enumerator */ + class CEnumConnectionPoints: public IEnumConnectionPoints + { + private: + LONG m_refCount; + IConnectionPoint * m_cp; + bool m_done; + + public: + CEnumConnectionPoints(IConnectionPoint * cp): m_refCount(1), m_cp(cp), m_done(false) + { + assert(m_cp); + m_cp->AddRef(); + } + + CEnumConnectionPoints(const CEnumConnectionPoints& ecp): m_refCount(1), m_cp(ecp.m_cp), m_done(ecp.m_done) + { + assert(m_cp); + m_cp->AddRef(); + } + + ~CEnumConnectionPoints() + { + assert(m_cp); + m_cp->Release(); + } + + virtual STDMETHODIMP QueryInterface(REFIID riid, void ** ppvObject) + { + if(riid == IID_IUnknown || riid == IID_IEnumConnectionPoints) + { + *ppvObject = this; + return S_OK; + } + else + { + *ppvObject = NULL; + return E_NOINTERFACE; + } + } + + virtual STDMETHODIMP_(ULONG) AddRef() + { + return InterlockedIncrement(&m_refCount); + } + + virtual STDMETHODIMP_(ULONG) Release() + { + LONG n = InterlockedDecrement(&m_refCount); + + if(n == 0) + delete this; + + return n; + } + + virtual STDMETHODIMP Next(ULONG cConnections, LPCONNECTIONPOINT * ppCP, ULONG * pcFetched) + { + if(cConnections == 0 || m_done) + return S_FALSE; + + m_done = true; + m_cp->AddRef(); + *ppCP = m_cp; + *pcFetched = 1; + + return S_OK; + } + + virtual STDMETHODIMP Skip(ULONG cConnections) + { + if(cConnections == 0) + return S_OK; + + if(cConnections == 1 && !m_done) + { + m_done = true; + return S_OK; + } + + assert(cConnections > 1 || m_done); + + return S_FALSE; + } + + virtual STDMETHODIMP Reset() + { + m_done = false; + return S_OK; + } + + virtual STDMETHODIMP Clone(IEnumConnectionPoints ** ppEnum) + { + if(ppEnum == NULL) + return E_POINTER; + + *ppEnum = new CEnumConnectionPoints(*this); + + if(*ppEnum == NULL) + return E_OUTOFMEMORY; + + return S_OK; + } + }; + + /* Pay no attention, ActiveX glue... */ + LRESULT ControlWindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam) + { + switch(uMsg) + { + case WM_SIZE: + { + // TODO: resize UI + } + + return 0; + + case WM_PAINT: + { + LPCWSTR text = NULL; + + if(!m_Connected) + text = m_DisconnectedText; + else if(m_actuallyConnected) + text = m_ConnectedStatusText; + else + text = m_ConnectingText; + + RECT clientRect; + GetClientRect(m_controlWindow, &clientRect); + + PAINTSTRUCT ps; + HDC hdc = BeginPaint(m_controlWindow, &ps); + + SetBkColor(hdc, GetSysColor(COLOR_WINDOW)); + SetTextColor(hdc, GetSysColor(COLOR_WINDOWTEXT)); + SelectObject(hdc, GetStockObject(SYSTEM_FONT)); + + RECT textRect = clientRect; + + DrawTextW + ( + hdc, + text, + -1, + &textRect, + DT_CENTER | DT_EDITCONTROL | DT_END_ELLIPSIS | DT_NOPREFIX | DT_WORDBREAK | DT_CALCRECT + ); + + if(textRect.right > clientRect.right) + textRect.right = clientRect.right; + + if(textRect.bottom > clientRect.bottom) + textRect.bottom = clientRect.bottom; + + textRect.left = (clientRect.right - textRect.right) / 2; + textRect.right += textRect.left; + textRect.top = (clientRect.bottom - textRect.bottom) / 2; + textRect.bottom += textRect.top; + + DrawTextW + ( + hdc, + text, + -1, + &textRect, + DT_CENTER | DT_EDITCONTROL | DT_END_ELLIPSIS | DT_NOPREFIX | DT_WORDBREAK + ); + + EndPaint(m_controlWindow, &ps); + } + + return 0; + + default: + { + LRESULT result; + + if(HandleEvent(uMsg, wParam, lParam, result)) + return result; + } + + break; + } + + return DefWindowProc(m_controlWindow, uMsg, wParam, lParam); + } + + static LRESULT CALLBACK ControlWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) + { + if(uMsg == WM_CREATE) + { + SetWindowLongPtr + ( + hwnd, + GWLP_USERDATA, + (LONG_PTR)reinterpret_cast(lParam)->lpCreateParams + ); + } + + RdpClient * Self = reinterpret_cast(GetWindowLongPtr(hwnd, GWLP_USERDATA)); + assert(Self); + + return Self->ControlWindowProc(uMsg, wParam, lParam); + } + + HRESULT CreateControlWindow(HWND hwndParent) + { + m_controlWindow = CreateWindow + ( + TEXT("MissTosca_Control"), + NULL, + WS_CHILD | WS_CLIPCHILDREN, + CW_USEDEFAULT, + CW_USEDEFAULT, + CW_USEDEFAULT, + CW_USEDEFAULT, + hwndParent, + NULL, + GetCurrentModule(), + this + ); + + if(m_controlWindow == NULL) + return HRESULT_FROM_WIN32(GetLastError()); + + m_UIParentWindowHandle = m_controlWindow; + return S_OK; + } + + HRESULT DestroyControlWindow() + { + if(m_controlWindow == NULL) + return S_FALSE; + + HWND controlWindow = NULL; + std::swap(controlWindow, m_controlWindow); + DestroyWindow(controlWindow); + return S_OK; + } + + HRESULT Activate(LONG iVerb, IOleClientSite * pActiveSite, HWND hwndParent, LPCRECT lprcPosRect) + { + if(pActiveSite == NULL) + pActiveSite = m_clientSite; + + if(pActiveSite == NULL) + return E_FAIL; + + // TODO: store this until we are closed or deactivated + IOleInPlaceSite * site; + + HRESULT hr = pActiveSite->QueryInterface(&site); + + if(FAILED(hr)) + return hr; + + IOleInPlaceFrame * frame = NULL; + IOleInPlaceUIWindow * uiWindow = NULL; + + for(;;) + { + hr = site->CanInPlaceActivate(); + + if(hr == S_FALSE) + hr = E_FAIL; + + if(FAILED(hr)) + break; + + site->OnInPlaceActivate(); + + if(hwndParent == NULL) + { + hr = site->GetWindow(&hwndParent); + + if(FAILED(hr)) + break; + } + + RECT rcPos; + RECT rcClip; + OLEINPLACEFRAMEINFO frameInfo = { sizeof(frameInfo) }; + + site->GetWindowContext(&frame, &uiWindow, &rcPos, &rcClip, &frameInfo); + + if(lprcPosRect == NULL) + lprcPosRect = &rcPos; + + if(m_controlWindow) + ShowWindow(m_controlWindow, SW_SHOW); + else + { + hr = CreateControlWindow(hwndParent); + + if(FAILED(hr)) + break; + } + + SetObjectRects(lprcPosRect, &rcClip); + + // UI activation + if((iVerb == OLEIVERB_PRIMARY || iVerb == OLEIVERB_UIACTIVATE) && !m_uiActive) + { + m_uiActive = true; + + hr = site->OnUIActivate(); + + if(FAILED(hr)) + break; + + SetWindowPos + ( + m_controlWindow, + NULL, + lprcPosRect->left, + lprcPosRect->top, + lprcPosRect->right - lprcPosRect->left, + lprcPosRect->bottom - lprcPosRect->top, + SWP_SHOWWINDOW + ); + + if(frame) + { + frame->SetActiveObject(this, NULL); + frame->SetBorderSpace(NULL); + } + + if(uiWindow) + { + uiWindow->SetActiveObject(this, NULL); + uiWindow->SetBorderSpace(NULL); + } + } + + break; + } + + if(uiWindow) + uiWindow->Release(); + + if(frame) + frame->Release(); + + site->Release(); + + if(SUCCEEDED(hr)) + pActiveSite->ShowObject(); + + return hr; + } + +public: + /* IUnknown */ + /* + NOTE: this is the delegating implementation, to support aggregation. The actual + implementation is RdpClientInner, above + */ + virtual STDMETHODIMP IUnknown::QueryInterface(REFIID riid, void ** ppvObject) + { + return m_punkOuter->QueryInterface(riid, ppvObject); + } + + virtual STDMETHODIMP_(ULONG) IUnknown::AddRef() + { + return m_punkOuter->AddRef(); + } + + virtual STDMETHODIMP_(ULONG) IUnknown::Release() + { + return m_punkOuter->Release(); + } + + /* IDispatch */ + virtual STDMETHODIMP IDispatch::GetTypeInfoCount(UINT * pctinfo) + { + *pctinfo = 1; + return S_OK; + } + + virtual STDMETHODIMP IDispatch::GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo ** ppTInfo) + { + if(iTInfo != 0) + return DISP_E_BADINDEX; + + return AcquireDispTypeInfo(ppTInfo); + } + + virtual STDMETHODIMP IDispatch::GetIDsOfNames(REFIID riid, LPOLESTR * rgszNames, UINT cNames, LCID lcid, DISPID * rgDispId) + { + HRESULT hr = LoadDispTypeInfo(); + + if(FAILED(hr)) + return hr; + + return m_dispTypeInfo->GetIDsOfNames(rgszNames, cNames, rgDispId); + } + + virtual STDMETHODIMP IDispatch::Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS * pDispParams, VARIANT * pVarResult, EXCEPINFO * pExcepInfo, UINT * puArgErr) + { + HRESULT hr = LoadDispTypeInfo(); + + if(FAILED(hr)) + return hr; + + return m_dispTypeInfo->Invoke + ( + static_cast(this), + dispIdMember, + wFlags, + pDispParams, + pVarResult, + pExcepInfo, + puArgErr + ); + } + + /* IConnectionPoint */ + virtual STDMETHODIMP GetConnectionInterface(IID * pIID) + { + if(pIID == NULL) + return E_POINTER; + + *pIID = MSTSCLib::DIID_IMsTscAxEvents; + return S_OK; + } + + virtual STDMETHODIMP GetConnectionPointContainer(IConnectionPointContainer ** ppCPC) + { + if(ppCPC == NULL) + return E_POINTER; + + addRef(); + *ppCPC = this; + return S_OK; + } + + virtual STDMETHODIMP Advise(IUnknown * pUnkSink, DWORD * pdwCookie) + { + MSTSCLib::IMsTscAxEvents * sink; + + if(FAILED(pUnkSink->QueryInterface(&sink))) + return CONNECT_E_CANNOTCONNECT; + + MSTSCLib::IMsTscAxEvents ** sinks = GetSinks(); + DWORD cookie = 0; + + if(m_EventSinksCount) + { + bool found = false; + + for(size_t i = 0; i < m_EventSinksCount; ++ i) + { + found = (sinks[i] == NULL); + + if(found) + { + cookie = static_cast(i); + break; + } + } + + if(!found) + { + MSTSCLib::IMsTscAxEvents ** newSinks = new MSTSCLib::IMsTscAxEvents *[m_EventSinksCount + 1]; + + if(newSinks == NULL) + { + sink->Release(); + return E_OUTOFMEMORY; + } + + std::copy(sinks, sinks + m_EventSinksCount, newSinks); + + m_EventSinks = newSinks; + sinks = newSinks; + + cookie = static_cast(m_EventSinksCount); + } + } + + sinks[cookie] = sink; + *pdwCookie = cookie; + + return S_OK; + } + + virtual STDMETHODIMP Unadvise(DWORD dwCookie) + { + MSTSCLib::IMsTscAxEvents ** sinks = GetSinks(); + + if(dwCookie >= m_EventSinksCount || sinks[dwCookie] == NULL) + return CONNECT_E_NOCONNECTION; + + sinks[dwCookie]->Release(); + sinks[dwCookie] = NULL; + + // BUGBUG: the array currently grows forever. Trim it whenever possible + + return S_OK; + } + + virtual STDMETHODIMP EnumConnections(IEnumConnections ** ppEnum) + { + // I see no real value in this + return E_NOTIMPL; + } + + /* IConnectionPointContainer */ + virtual STDMETHODIMP IConnectionPointContainer::EnumConnectionPoints(IEnumConnectionPoints ** ppEnum) + { + *ppEnum = new CEnumConnectionPoints(this); + + if(*ppEnum == NULL) + return E_OUTOFMEMORY; + + return S_OK; + } + + virtual STDMETHODIMP IConnectionPointContainer::FindConnectionPoint(REFIID riid, IConnectionPoint ** ppCP) + { + if(riid != MSTSCLib::DIID_IMsTscAxEvents) + return CONNECT_E_NOCONNECTION; + + addRef(); + *ppCP = this; + + return S_OK; + } + + /* IDataObject */ // 0/9 + virtual STDMETHODIMP IDataObject::GetData(FORMATETC * pformatetcIn, STGMEDIUM * pmedium) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IDataObject::GetDataHere(FORMATETC * pformatetc, STGMEDIUM * pmedium) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IDataObject::QueryGetData(FORMATETC * pformatetc) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IDataObject::GetCanonicalFormatEtc(FORMATETC * pformatectIn, FORMATETC * pformatetcOut) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IDataObject::SetData(FORMATETC * pformatetc, STGMEDIUM * pmedium, BOOL fRelease) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IDataObject::EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC ** ppenumFormatEtc) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IDataObject::DAdvise(FORMATETC * pformatetc, DWORD advf, IAdviseSink * pAdvSink, DWORD * pdwConnection) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IDataObject::DUnadvise(DWORD dwConnection) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IDataObject::EnumDAdvise(IEnumSTATDATA ** ppenumAdvise) + { + return E_NOTIMPL; + } + + /* IObjectSafety */ + virtual STDMETHODIMP IObjectSafety::GetInterfaceSafetyOptions(REFIID riid, DWORD * pdwSupportedOptions, DWORD * pdwEnabledOptions) + { + if(pdwSupportedOptions == NULL || pdwEnabledOptions == NULL) + return E_POINTER; + + if(riid != IID_IDispatch) + return E_NOINTERFACE; + + *pdwSupportedOptions = INTERFACESAFE_FOR_UNTRUSTED_CALLER; + *pdwEnabledOptions = m_SafetyOptions; + return S_OK; + } + + virtual STDMETHODIMP IObjectSafety::SetInterfaceSafetyOptions(REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions) + { + if(riid != IID_IDispatch) + return E_NOINTERFACE; + + m_SafetyOptions = dwEnabledOptions & (dwOptionSetMask & INTERFACESAFE_FOR_UNTRUSTED_CALLER); + return S_OK; + } + + /* IOleControl */ // 3/4 + virtual STDMETHODIMP IOleControl::GetControlInfo(CONTROLINFO * pCI) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IOleControl::OnMnemonic(MSG * pMsg) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IOleControl::OnAmbientPropertyChange(DISPID dispID) + { + return S_OK; + } + + virtual STDMETHODIMP IOleControl::FreezeEvents(BOOL bFreeze) + { + if(bFreeze) + InterlockedIncrement(&m_freezeEvents); + else if(InterlockedDecrement(&m_freezeEvents) == 0) + UnfreezeEvents(); + + return S_OK; + } + + /* IOleInPlaceActiveObject */ // 3/5 + virtual STDMETHODIMP IOleInPlaceActiveObject::TranslateAccelerator(LPMSG lpmsg) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IOleInPlaceActiveObject::OnFrameWindowActivate(BOOL fActivate) + { + // TODO + return E_NOTIMPL; + } + + virtual STDMETHODIMP IOleInPlaceActiveObject::OnDocWindowActivate(BOOL fActivate) + { + // TODO + return E_NOTIMPL; + } + + virtual STDMETHODIMP IOleInPlaceActiveObject::ResizeBorder(LPCRECT prcBorder, IOleInPlaceUIWindow * pUIWindow, BOOL fFrameWindow) + { + return S_OK; + } + + virtual STDMETHODIMP IOleInPlaceActiveObject::EnableModeless(BOOL fEnable) + { + return S_OK; + } + + /* IOleInPlaceObject */ // 1/4 + virtual STDMETHODIMP IOleInPlaceObject::InPlaceDeactivate() + { + // TODO: UIDeactivate, destroy window, inplacesite->OnInPlaceDeactivate + return E_NOTIMPL; + } + + virtual STDMETHODIMP IOleInPlaceObject::UIDeactivate() + { + // TODO + return E_NOTIMPL; + } + + virtual STDMETHODIMP IOleInPlaceObject::SetObjectRects(LPCRECT lprcPosRect, LPCRECT lprcClipRect) + { + if(m_controlWindow == NULL) + return E_FAIL; + + MoveWindow + ( + m_controlWindow, + lprcPosRect->left, + lprcPosRect->top, + lprcPosRect->right - lprcPosRect->left, + lprcPosRect->bottom - lprcPosRect->top, + TRUE + ); + + SetWindowRgn(m_controlWindow, CreateRectRgnIndirect(lprcClipRect), TRUE); + + return E_NOTIMPL; + } + + virtual STDMETHODIMP IOleInPlaceObject::ReactivateAndUndo() + { + return E_NOTIMPL; + } + + /* IOleObject */ // 18/21 + virtual STDMETHODIMP IOleObject::SetClientSite(IOleClientSite * pClientSite) + { + if(m_clientSite) + m_clientSite->Release(); + + m_clientSite = pClientSite; + + if(m_clientSite) + m_clientSite->AddRef(); + + return S_OK; + } + + virtual STDMETHODIMP IOleObject::GetClientSite(IOleClientSite ** ppClientSite) + { + if(ppClientSite == NULL) + return E_POINTER; + + if(m_clientSite) + m_clientSite->AddRef(); + + *ppClientSite = m_clientSite; + return S_OK; + } + + virtual STDMETHODIMP IOleObject::SetHostNames(LPCOLESTR szContainerApp, LPCOLESTR szContainerObj) + { + return S_OK; + } + + virtual STDMETHODIMP IOleObject::Close(DWORD dwSaveOption) + { + // TODO: deactivate, destroy window, release in-place site, release advise sink + return E_NOTIMPL; // TODO + } + + virtual STDMETHODIMP IOleObject::SetMoniker(DWORD dwWhichMoniker, IMoniker * pmk) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IOleObject::GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker ** ppmk) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IOleObject::InitFromData(IDataObject * pDataObject, BOOL fCreation, DWORD dwReserved) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IOleObject::GetClipboardData(DWORD dwReserved, IDataObject ** ppDataObject) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IOleObject::DoVerb(LONG iVerb, LPMSG lpmsg, IOleClientSite * pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect) + { + HRESULT hr; + + switch(iVerb) + { + case OLEIVERB_PRIMARY: + case OLEIVERB_SHOW: + case OLEIVERB_UIACTIVATE: + case OLEIVERB_INPLACEACTIVATE: + hr = S_OK; + break; + + default: + if(iVerb > 0) + hr = OLEOBJ_S_INVALIDVERB; + else + hr = E_NOTIMPL; + } + + if(FAILED(hr)) + return hr; + + HRESULT hrActivate = Activate(iVerb, pActiveSite, hwndParent, lprcPosRect); + + if(FAILED(hrActivate)) + hr = hrActivate; + + return hr; + } + + virtual STDMETHODIMP IOleObject::EnumVerbs(IEnumOLEVERB ** ppEnumOleVerb) + { + return OleRegEnumVerbs(m_classId, ppEnumOleVerb); + } + + virtual STDMETHODIMP IOleObject::Update() + { + return S_OK; + } + + virtual STDMETHODIMP IOleObject::IsUpToDate() + { + return S_OK; + } + + virtual STDMETHODIMP IOleObject::GetUserClassID(CLSID * pClsid) + { + *pClsid = m_classId; + return S_OK; + } + + virtual STDMETHODIMP IOleObject::GetUserType(DWORD dwFormOfType, LPOLESTR * pszUserType) + { + return OleRegGetUserType(m_classId, dwFormOfType, pszUserType); + } + + virtual STDMETHODIMP IOleObject::SetExtent(DWORD dwDrawAspect, SIZEL * psizel) + { + // TODO: resize + return E_NOTIMPL; + } + + virtual STDMETHODIMP IOleObject::GetExtent(DWORD dwDrawAspect, SIZEL * psizel) + { + // TODO: return size + return E_NOTIMPL; + } + + HRESULT NeedAdviseHolder() + { + if(m_adviseHolder) + return S_OK; + + return CreateOleAdviseHolder(&m_adviseHolder); + } + + virtual STDMETHODIMP IOleObject::Advise(IAdviseSink * pAdvSink, DWORD * pdwConnection) + { + HRESULT hr = NeedAdviseHolder(); + + if(FAILED(hr)) + return hr; + + return m_adviseHolder->Advise(pAdvSink, pdwConnection); + } + + virtual STDMETHODIMP IOleObject::Unadvise(DWORD dwConnection) + { + HRESULT hr = NeedAdviseHolder(); + + if(FAILED(hr)) + return hr; + + return m_adviseHolder->Unadvise(dwConnection); + } + + virtual STDMETHODIMP IOleObject::EnumAdvise(IEnumSTATDATA ** ppenumAdvise) + { + HRESULT hr = NeedAdviseHolder(); + + if(FAILED(hr)) + return hr; + + return m_adviseHolder->EnumAdvise(ppenumAdvise); + } + + virtual STDMETHODIMP IOleObject::GetMiscStatus(DWORD dwAspect, DWORD * pdwStatus) + { + return OleRegGetMiscStatus(m_classId, dwAspect, pdwStatus); + } + + virtual STDMETHODIMP IOleObject::SetColorScheme(LOGPALETTE * pLogpal) + { + return E_NOTIMPL; + } + + /* IOleWindow */ + virtual STDMETHODIMP IOleWindow::GetWindow(HWND * phwnd) + { + if(phwnd == NULL) + return E_POINTER; + + if(m_controlWindow == NULL) + return E_FAIL; + + *phwnd = m_controlWindow; + return S_OK; + } + + virtual STDMETHODIMP IOleWindow::ContextSensitiveHelp(BOOL fEnterMode) + { + return E_NOTIMPL; + } + + /* IPersist */ + virtual STDMETHODIMP IPersist::GetClassID(CLSID * pClassID) + { + *pClassID = m_classId; + return S_OK; + } + + /* IPersistPropertyBag */ // 0/3 + virtual STDMETHODIMP IPersistPropertyBag::InitNew() + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IPersistPropertyBag::Load(IPropertyBag * pPropBag, IErrorLog * pErrorLog) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IPersistPropertyBag::Save(IPropertyBag * pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties) + { + return E_NOTIMPL; + } + + /* IPersistStorage */ // 0/6 + virtual STDMETHODIMP IPersistStorage::IsDirty() + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IPersistStorage::InitNew(IStorage * pStg) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IPersistStorage::Load(IStorage * pStg) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IPersistStorage::Save(IStorage * pStgSave, BOOL fSameAsLoad) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IPersistStorage::SaveCompleted(IStorage * pStgNew) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IPersistStorage::HandsOffStorage() + { + return E_NOTIMPL; + } + + /* IPersistStreamInit */ // 0/5 + virtual STDMETHODIMP IPersistStreamInit::IsDirty() + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IPersistStreamInit::Load(LPSTREAM pStm) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IPersistStreamInit::Save(LPSTREAM pStm, BOOL fClearDirty) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IPersistStreamInit::GetSizeMax(ULARGE_INTEGER * pCbSize) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IPersistStreamInit::InitNew() + { + return E_NOTIMPL; + } + + /* IProvideClassInfo */ + virtual STDMETHODIMP IProvideClassInfo::GetClassInfo(ITypeInfo ** ppTI) + { + HRESULT hr = LoadTypeLibrary(); + + if(FAILED(hr)) + return hr; + + return m_typeLib->GetTypeInfoOfGuid(m_classId, ppTI); + } + + /* IProvideClassInfo2 */ + virtual STDMETHODIMP IProvideClassInfo2::GetGUID(DWORD dwGuidKind, GUID * pGUID) + { + if(dwGuidKind != GUIDKIND_DEFAULT_SOURCE_DISP_IID) + return E_INVALIDARG; + + *pGUID = MSTSCLib::DIID_IMsTscAxEvents; + return S_OK; + } + + /* IQuickActivate */ + virtual STDMETHODIMP IQuickActivate::QuickActivate(QACONTAINER * pQaContainer, QACONTROL * pQaControl) + { + if(pQaContainer == NULL || pQaControl == NULL) + return E_POINTER; + + if(pQaContainer->cbSize < sizeof(*pQaContainer) || pQaControl->cbSize < sizeof(*pQaControl)) + return E_INVALIDARG; + + ULONG cb = pQaControl->cbSize; + ZeroMemory(pQaControl, cb); + pQaControl->cbSize = cb; + + SetClientSite(pQaContainer->pClientSite); + + if(pQaContainer->pAdviseSink) + SetAdvise(DVASPECT_CONTENT, 0, pQaContainer->pAdviseSink); + + if(pQaContainer->pUnkEventSink) + Advise(pQaContainer->pUnkEventSink, &pQaControl->dwEventCookie); + + GetMiscStatus(DVASPECT_CONTENT, &pQaControl->dwMiscStatus); + + return E_NOTIMPL; + } + + virtual STDMETHODIMP IQuickActivate::SetContentExtent(LPSIZEL pSizel) + { + return SetExtent(DVASPECT_CONTENT, pSizel); + } + + virtual STDMETHODIMP IQuickActivate::GetContentExtent(LPSIZEL pSizel) + { + return GetExtent(DVASPECT_CONTENT, pSizel); + } + + /* IViewObject */ // 3/6 + virtual STDMETHODIMP IViewObject::Draw(DWORD dwDrawAspect, LONG lindex, void * pvAspect, DVTARGETDEVICE * ptd, HDC hdcTargetDev, HDC hdcDraw, LPCRECTL lprcBounds, LPCRECTL lprcWBounds, BOOL (STDMETHODCALLTYPE * pfnContinue)(ULONG_PTR dwContinue), ULONG_PTR dwContinue) + { + return E_NOTIMPL; // TODO + } + + virtual STDMETHODIMP IViewObject::GetColorSet(DWORD dwDrawAspect, LONG lindex, void * pvAspect, DVTARGETDEVICE * ptd, HDC hicTargetDev, LOGPALETTE ** ppColorSet) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IViewObject::Freeze(DWORD dwDrawAspect, LONG lindex, void * pvAspect, DWORD * pdwFreeze) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IViewObject::Unfreeze(DWORD dwFreeze) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IViewObject::SetAdvise(DWORD aspects, DWORD advf, IAdviseSink * pAdvSink) + { + return E_NOTIMPL; // TODO + } + + virtual STDMETHODIMP IViewObject::GetAdvise(DWORD * pAspects, DWORD * pAdvf, IAdviseSink ** ppAdvSink) + { + return E_NOTIMPL; // TODO + } + + /* IViewObject2 */ // 0/1 + virtual STDMETHODIMP IViewObject2::GetExtent(DWORD dwDrawAspect, LONG lindex, DVTARGETDEVICE * ptd, LPSIZEL lpsizel) + { + return E_NOTIMPL; // TODO + } + + /* IMsTscAx */ // 23/30 + virtual STDMETHODIMP IMsTscAx::put_Server(BSTR pServer) + { + // FIXME: convert the hostname to Punycode, not the ANSI codepage + return SetProperty(m_Server, pServer); + } + + virtual STDMETHODIMP IMsTscAx::get_Server(BSTR * pServer) const + { + return GetProperty(m_Server, pServer); + } + + virtual STDMETHODIMP IMsTscAx::put_Domain(BSTR pDomain) + { + return SetProperty(m_Domain, pDomain); + } + + virtual STDMETHODIMP IMsTscAx::get_Domain(BSTR * pDomain) const + { + return GetProperty(m_Domain, pDomain); + } + + virtual STDMETHODIMP IMsTscAx::put_UserName(BSTR pUserName) + { + return SetProperty(m_UserName, pUserName); + } + + virtual STDMETHODIMP IMsTscAx::get_UserName(BSTR * pUserName) const + { + return GetProperty(m_UserName, pUserName); + } + + virtual STDMETHODIMP IMsTscAx::put_DisconnectedText(BSTR pDisconnectedText) + { + return SetProperty(m_DisconnectedText, pDisconnectedText); + } + + virtual STDMETHODIMP IMsTscAx::get_DisconnectedText(BSTR * pDisconnectedText) const + { + return GetProperty(m_DisconnectedText, pDisconnectedText); + } + + virtual STDMETHODIMP IMsTscAx::put_ConnectingText(BSTR pConnectingText) + { + return SetProperty(m_ConnectingText, pConnectingText); + } + + virtual STDMETHODIMP IMsTscAx::get_ConnectingText(BSTR * pConnectingText) const + { + return GetProperty(m_ConnectingText, pConnectingText); + } + + virtual STDMETHODIMP IMsTscAx::get_Connected(short * pIsConnected) const + { + return GetProperty(m_Connected, pIsConnected); + } + + virtual STDMETHODIMP IMsTscAx::put_DesktopWidth(long pVal) + { + if(pVal < 200 || pVal > 1600) + return E_INVALIDARG; + + return SetProperty(m_DesktopWidth, pVal); + } + + virtual STDMETHODIMP IMsTscAx::get_DesktopWidth(long * pVal) const + { + return GetProperty(m_DesktopWidth, pVal); + } + + virtual STDMETHODIMP IMsTscAx::put_DesktopHeight(long pVal) + { + if(pVal < 200 || pVal > 1200) + return E_INVALIDARG; + + return SetProperty(m_DesktopHeight, pVal); + } + + virtual STDMETHODIMP IMsTscAx::get_DesktopHeight(long * pVal) const + { + return GetProperty(m_DesktopHeight, pVal); + } + + virtual STDMETHODIMP IMsTscAx::put_StartConnected(long pfStartConnected) + { + return SetProperty(m_StartConnected, pfStartConnected); + } + + virtual STDMETHODIMP IMsTscAx::get_StartConnected(long * pfStartConnected) const + { + return GetProperty(m_StartConnected, pfStartConnected); + } + + virtual STDMETHODIMP IMsTscAx::get_HorizontalScrollBarVisible(long * pfHScrollVisible) const + { + return E_NOTIMPL; // TODO + } + + virtual STDMETHODIMP IMsTscAx::get_VerticalScrollBarVisible(long * pfVScrollVisible) const + { + return E_NOTIMPL; // TODO + } + + virtual STDMETHODIMP IMsTscAx::put_FullScreenTitle(BSTR rhs) + { + // TODO + return E_NOTIMPL; + } + + virtual STDMETHODIMP IMsTscAx::get_CipherStrength(long * pCipherStrength) const + { + if(pCipherStrength == NULL) + return E_INVALIDARG; + + *pCipherStrength = 128; // BUGBUG: a later version may change this. Use a compile-time constant + return S_OK; + } + + virtual STDMETHODIMP IMsTscAx::get_Version(BSTR * pVersion) const + { + if(pVersion == NULL) + return E_INVALIDARG; + + BSTR version = SysAllocString(L"5.2.3790.1830"); // BUGBUG: don't use hardcoded string + + if(version == NULL) + return E_OUTOFMEMORY; + + *pVersion = version; + return S_OK; + } + + virtual STDMETHODIMP IMsTscAx::get_SecuredSettingsEnabled(long * pSecuredSettingsEnabled) const + { + // TODO: initialize m_SecuredSettingsEnabled as soon as we have an OLE client site + return GetProperty(m_SecuredSettingsEnabled, pSecuredSettingsEnabled); + } + + virtual STDMETHODIMP IMsTscAx::get_SecuredSettings(MSTSCLib::IMsTscSecuredSettings ** ppSecuredSettings) const + { + return GetSecuredSettings(ppSecuredSettings); + } + + virtual STDMETHODIMP IMsTscAx::get_AdvancedSettings(MSTSCLib::IMsTscAdvancedSettings ** ppAdvSettings) const + { + return GetAdvancedSettings(ppAdvSettings); + } + + virtual STDMETHODIMP IMsTscAx::get_Debugger(MSTSCLib::IMsTscDebug ** ppDebugger) const + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IMsTscAx::Connect() + { + if(m_Connected) + { + // Protocol thread waiting for a manual reconnection: wake it up + if(m_protocolThreadWaitingReconnection) + { + SetEvent(m_protocolThreadWaitingReconnection); + return S_OK; + } + + return E_FAIL; + } + + m_Connected = true; + + HRESULT hr; + + if(m_controlWindow == NULL) + { + hr = CreateControlWindow(NULL); + + if(FAILED(hr)) + return hr; + } + + for(;;) + { + // TODO: initialize plugin DLLs/channels + + m_clientUI = new RdpClientUI(); + + if(m_clientUI == NULL) + { + hr = E_OUTOFMEMORY; + break; + } + + m_clientUI->Initialize(m_controlWindow); + + m_protocolState.licence_username = BstrToLpsz(m_UserName); + + if(m_protocolState.licence_username == NULL) + { + hr = E_OUTOFMEMORY; + break; + } + + DWORD dwSize = ARRAYSIZE(m_protocolState.licence_hostname); + + if(!GetComputerNameA(m_protocolState.licence_hostname, &dwSize)) + { + hr = HRESULT_FROM_WIN32(GetLastError()); + break; + } + + // Keyboard layout + // BUGBUG: not too sure about the semantics + long keyboardLayout = -1; + WCHAR * endPtr = NULL; + + if(m_KeyboardLayoutString) + keyboardLayout = wcstol(m_KeyboardLayoutString, &endPtr, 0); + + // no keyboard layout specified or invalid keyboard layout: use current keyboard layout + if(endPtr == NULL || *endPtr == 0 || keyboardLayout == -1) + keyboardLayout = PtrToLong(GetKeyboardLayout(0)); // FIXME? use LOWORD()? + + m_protocolState.keylayout = keyboardLayout; + + // in case of failure, assume English (US) + if(m_protocolState.keylayout == 0) + m_protocolState.keylayout = MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US); + + // Physical keyboard information + m_protocolState.keyboard_type = GetKeyboardType(0); + m_protocolState.keyboard_subtype = GetKeyboardType(1); + m_protocolState.keyboard_functionkeys = GetKeyboardType(2); + + // in case of failure, assume an IBM Enhanced keyboard with 12 function keys + if(m_protocolState.keyboard_type == 0 || m_protocolState.keyboard_functionkeys == 0) + { + m_protocolState.keyboard_type = 4; + m_protocolState.keyboard_subtype = 0; + m_protocolState.keyboard_functionkeys = 12; + } + + // More initialization + m_protocolState.width = m_DesktopWidth; + m_protocolState.height = m_DesktopHeight; + m_protocolState.server_depth = m_ColorDepth; + m_protocolState.bitmap_compression = m_Compress ? TRUE : FALSE; + m_protocolState.bitmap_cache = True; // TODO + m_protocolState.bitmap_cache_persist_enable = False; // TODO + m_protocolState.bitmap_cache_precache = True; // FIXME? + m_protocolState.encryption = m_EncryptionEnabled ? TRUE : FALSE; // TBD: detect automatically + m_protocolState.packet_encryption = m_EncryptionEnabled ? TRUE : FALSE; + m_protocolState.desktop_save = True; // FIXME? tie to bitmap cache setting? + m_protocolState.polygon_ellipse_orders = True; + m_protocolState.use_rdp5 = True; // TBD: detect automatically + m_protocolState.console_session = m_ConnectToServerConsole ? TRUE : FALSE; + m_protocolState.rdp5_performanceflags = m_PerformanceFlags; + m_protocolState.tcp_port_rdp = m_RDPPort; + m_protocolState.rdp.current_status = 1; + + // TODO: cache tuning based on the provided parameters + + m_protocolState.cache.bmpcache_lru[0] = -1; + m_protocolState.cache.bmpcache_lru[1] = -1; + m_protocolState.cache.bmpcache_lru[2] = -1; + m_protocolState.cache.bmpcache_mru[0] = -1; + m_protocolState.cache.bmpcache_mru[1] = -1; + m_protocolState.cache.bmpcache_mru[2] = -1; + + DWORD dwIgnore; + m_protocolThread = CreateThread(NULL, 0, ProtocolLoopThreadProc, this, 0, &dwIgnore); + + hr = S_OK; + break; + } + + if(FAILED(hr)) + m_Connected = false; + + return hr; + } + + virtual STDMETHODIMP IMsTscAx::Disconnect() + { + if(!m_Connected) + return E_FAIL; + + // Terminate the protocol thread. On exit, it will fire the Disconnected event + TerminateProtocolThread(); + return S_OK; + } + + virtual STDMETHODIMP IMsTscAx::CreateVirtualChannels(BSTR newVal) + { + UINT strLength = SysStringLen(newVal); + + if(strLength < 1 || strLength > 300) + return E_INVALIDARG; + + return E_NOTIMPL; // TODO + } + + virtual STDMETHODIMP IMsTscAx::SendOnVirtualChannel(BSTR chanName, BSTR ChanData) + { + return E_NOTIMPL; // TODO + } + + /* IMsRdpClient */ // 6/10 + virtual STDMETHODIMP IMsRdpClient::put_ColorDepth(long pcolorDepth) + { + switch(pcolorDepth) + { + case 8: + case 15: + case 16: + case 24: + case 32: + break; + + default: + return E_INVALIDARG; + } + + return SetProperty(m_ColorDepth, pcolorDepth); + } + + virtual STDMETHODIMP IMsRdpClient::get_ColorDepth(long * pcolorDepth) const + { + return GetProperty(m_ColorDepth, pcolorDepth); + } + + virtual STDMETHODIMP IMsRdpClient::get_AdvancedSettings2(MSTSCLib::IMsRdpClientAdvancedSettings ** ppAdvSettings) const + { + return GetAdvancedSettings(ppAdvSettings); + } + + virtual STDMETHODIMP IMsRdpClient::get_SecuredSettings2(MSTSCLib::IMsRdpClientSecuredSettings ** ppSecuredSettings) const + { + return GetSecuredSettings(ppSecuredSettings); + } + + virtual STDMETHODIMP IMsRdpClient::get_ExtendedDisconnectReason(MSTSCLib::ExtendedDisconnectReasonCode * pExtendedDisconnectReason) const + { + return GetProperty(m_ExtendedDisconnectReason, pExtendedDisconnectReason); + } + + virtual STDMETHODIMP IMsRdpClient::put_FullScreen(VARIANT_BOOL pfFullScreen) + { + if(!m_Connected) + return E_FAIL; + + if(pfFullScreen && !m_SecuredSettingsEnabled) + return E_FAIL; + + // TODO + return E_NOTIMPL; + } + + virtual STDMETHODIMP IMsRdpClient::get_FullScreen(VARIANT_BOOL * pfFullScreen) const + { + return GetProperty(m_FullScreen, pfFullScreen); + } + + virtual STDMETHODIMP IMsRdpClient::SetVirtualChannelOptions(BSTR chanName, long chanOptions) + { + return E_NOTIMPL; // TODO + } + + virtual STDMETHODIMP IMsRdpClient::GetVirtualChannelOptions(BSTR chanName, long * pChanOptions) + { + return E_NOTIMPL; // TODO + } + + virtual STDMETHODIMP IMsRdpClient::RequestClose(MSTSCLib::ControlCloseStatus * pCloseStatus) + { + if(pCloseStatus == NULL) + return E_POINTER; + + if(!m_Connected) + { + *pCloseStatus = MSTSCLib::controlCloseCanProceed; + return S_OK; + } + + *pCloseStatus = MSTSCLib::controlCloseWaitForEvents; + + if(!PostMessage(m_controlWindow, RDPC_WM_REQUEST_CLOSE, 0, 0)) + return HRESULT_FROM_WIN32(GetLastError()); + + return S_OK; + } + + /* IMsRdpClient2 */ + virtual STDMETHODIMP IMsRdpClient2::get_AdvancedSettings3(MSTSCLib::IMsRdpClientAdvancedSettings2 ** ppAdvSettings) const + { + return GetAdvancedSettings(ppAdvSettings); + } + + virtual STDMETHODIMP IMsRdpClient2::put_ConnectedStatusText(BSTR pConnectedStatusText) + { + return SetProperty(m_ConnectedStatusText, pConnectedStatusText); + } + + virtual STDMETHODIMP IMsRdpClient2::get_ConnectedStatusText(BSTR * pConnectedStatusText) const + { + return GetProperty(m_ConnectedStatusText, pConnectedStatusText); + } + + /* IMsRdpClient3 */ + virtual STDMETHODIMP IMsRdpClient3::get_AdvancedSettings4(MSTSCLib::IMsRdpClientAdvancedSettings3 ** ppAdvSettings) const + { + return GetAdvancedSettings(ppAdvSettings); + } + + /* IMsRdpClient4 */ + virtual STDMETHODIMP IMsRdpClient4::get_AdvancedSettings5(MSTSCLib::IMsRdpClientAdvancedSettings4 ** ppAdvSettings5) const + { + return GetAdvancedSettings(ppAdvSettings5); + } + + /* IMsTscNonScriptable */ + virtual STDMETHODIMP IMsTscNonScriptable::put_ClearTextPassword(BSTR rhs) + { + return SetProperty(m_ClearTextPassword, rhs); + } + + virtual STDMETHODIMP IMsTscNonScriptable::put_PortablePassword(BSTR pPortablePass) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IMsTscNonScriptable::get_PortablePassword(BSTR * pPortablePass) const + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IMsTscNonScriptable::put_PortableSalt(BSTR pPortableSalt) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IMsTscNonScriptable::get_PortableSalt(BSTR * pPortableSalt) const + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IMsTscNonScriptable::put_BinaryPassword(BSTR pBinaryPassword) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IMsTscNonScriptable::get_BinaryPassword(BSTR * pBinaryPassword) const + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IMsTscNonScriptable::put_BinarySalt(BSTR pSalt) + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IMsTscNonScriptable::get_BinarySalt(BSTR * pSalt) const + { + return E_NOTIMPL; + } + + virtual STDMETHODIMP IMsTscNonScriptable::ResetPassword() + { + return SetProperty(m_ClearTextPassword, NULL); + } + + /* IMsRdpClientNonScriptable */ // 0/2 + virtual STDMETHODIMP IMsRdpClientNonScriptable::NotifyRedirectDeviceChange(MSTSCLib::UINT_PTR wParam, MSTSCLib::LONG_PTR lParam) + { + return E_NOTIMPL; // TODO + } + + virtual STDMETHODIMP IMsRdpClientNonScriptable::SendKeys(long numKeys, VARIANT_BOOL * pbArrayKeyUp, long * plKeyData) + { + // NOTE: the keys must be sent in a single, atomic sequence + // TODO: acquire the write lock + return E_NOTIMPL; // TODO + } + + /* IMsRdpClientNonScriptable2 */ + virtual STDMETHODIMP IMsRdpClientNonScriptable2::put_UIParentWindowHandle(HWND phwndUIParentWindowHandle) + { + return SetProperty(m_UIParentWindowHandle, phwndUIParentWindowHandle); + } + + virtual STDMETHODIMP IMsRdpClientNonScriptable2::get_UIParentWindowHandle(HWND * phwndUIParentWindowHandle) const + { + return GetProperty(m_UIParentWindowHandle, phwndUIParentWindowHandle); + } +}; + +#pragma warning(pop) + +/* More glue to interface to the rdesktop code */ +extern "C" +{ + +/* Orders */ +/* support routines */ +void ui_begin_update(RDPCLIENT * This) +{ + RdpClient::InnerToOuter(This)->GetUI()->Display_BeginUpdate(); +} + +void ui_end_update(RDPCLIENT * This) +{ + RdpClient::InnerToOuter(This)->GetUI()->Display_EndUpdate(); +} + +void ui_set_clip(RDPCLIENT * This, int x, int y, int cx, int cy) +{ + RdpClient::InnerToOuter(This)->GetUI()->Display_SetClip(x, y, cx, cy); +} + +void ui_reset_clip(RDPCLIENT * This) +{ + RdpClient::InnerToOuter(This)->GetUI()->Display_ResetClip(); +} + +/* blits */ +void ui_destblt(RDPCLIENT * This, uint8 opcode, int x, int y, int cx, int cy) +{ + RdpClient::InnerToOuter(This)->GetUI()->Display_DestBlt(opcode, x, y, cx, cy); +} + +void ui_memblt(RDPCLIENT * This, uint8 opcode, int x, int y, int cx, int cy, HBITMAP src, int srcx, int srcy) +{ + RdpClient::InnerToOuter(This)->GetUI()->Display_MemBlt(opcode, x, y, cx, cy, src, srcx, srcy); +} + +void ui_patblt(RDPCLIENT * This, uint8 opcode, int x, int y, int cx, int cy, BRUSH * brush, int bgcolour, int fgcolour) +{ + RdpClient::InnerToOuter(This)->GetUI()->Display_PatBlt(opcode, x, y, cx, cy, brush, bgcolour, fgcolour); +} + +void ui_screenblt(RDPCLIENT * This, uint8 opcode, int x, int y, int cx, int cy, int srcx, int srcy) +{ + RdpClient::InnerToOuter(This)->GetUI()->Display_ScreenBlt(opcode, x, y, cx, cy, srcx, srcy); +} + +void ui_triblt(RDPCLIENT * This, uint8 opcode, int x, int y, int cx, int cy, HBITMAP src, int srcx, int srcy, BRUSH * brush, int bgcolour, int fgcolour) +{ + RdpClient::InnerToOuter(This)->GetUI()->Display_TriBlt(opcode, x, y, cx, cy, src, srcx, srcy, brush, bgcolour, fgcolour); +} + +void ui_paint_bitmap(RDPCLIENT * This, int x, int y, int cx, int cy, int width, int height, uint8 * data) +{ + RdpClient::InnerToOuter(This)->GetUI()->Display_PaintBitmap(x, y, cx, cy, width, height, data); +} + +/* shapes */ +void ui_ellipse(RDPCLIENT * This, uint8 opcode, uint8 fillmode, int x, int y, int cx, int cy, BRUSH * brush, int bgcolour, int fgcolour) +{ + // TODO +// RdpClient::InnerToOuter(This)->GetUI()->Display_Ellipse(opcode, fillmode, x, y, cx, cy, brush, bgcolour, fgcolour); +} + +void ui_line(RDPCLIENT * This, uint8 opcode, int startx, int starty, int endx, int endy, PEN * pen) +{ + RdpClient::InnerToOuter(This)->GetUI()->Display_Line(opcode, startx, starty, endx, endy, pen); +} + +void ui_polygon(RDPCLIENT * This, uint8 opcode, uint8 fillmode, POINT * point, int npoints, BRUSH * brush, int bgcolour, int fgcolour) +{ + RdpClient::InnerToOuter(This)->GetUI()->Display_Polygon(opcode, fillmode, point, npoints, brush, bgcolour, fgcolour); +} + +void ui_polyline(RDPCLIENT * This, uint8 opcode, POINT * points, int npoints, PEN * pen) +{ + RdpClient::InnerToOuter(This)->GetUI()->Display_Polyline(opcode, points, npoints, pen); +} + +void ui_rect(RDPCLIENT * This, int x, int y, int cx, int cy, int colour) +{ + RdpClient::InnerToOuter(This)->GetUI()->Display_Rect(x, y, cx, cy, colour); +} + +/* text */ +void ui_draw_text +( + RDPCLIENT * This, + uint8 font, + uint8 flags, + uint8 opcode, + int mixmode, + int x, + int y, + int clipx, + int clipy, + int clipcx, + int clipcy, + int boxx, + int boxy, + int boxcx, + int boxcy, + BRUSH * brush, + int bgcolour, + int fgcolour, + uint8 * text, + uint8 length +) +{ + RdpClient::InnerToOuter(This)->GetUI()->Display_DrawText + ( + font, + flags, + opcode, + mixmode, + x, + y, + clipx, + clipy, + clipcx, + clipcy, + boxx, + boxy, + boxcx, + boxcy, + brush, + bgcolour, + fgcolour, + text, + length + ); +} + +/* desktop save/restore */ +void ui_desktop_save(RDPCLIENT * This, uint32 offset, int x, int y, int cx, int cy) +{ + RdpClient::InnerToOuter(This)->GetUI()->Display_SaveDesktop(offset, x, y, cx, cy); +} + +void ui_desktop_restore(RDPCLIENT * This, uint32 offset, int x, int y, int cx, int cy) +{ + RdpClient::InnerToOuter(This)->GetUI()->Display_RestoreDesktop(offset, x, y, cx, cy); +} + +/* Resources */ +/* bitmaps */ +HBITMAP ui_create_bitmap(RDPCLIENT * This, int width, int height, uint8 * data) +{ + return win32_create_dib(width, height, This->server_depth, data); +} + +void ui_destroy_bitmap(RDPCLIENT *, HBITMAP bmp) +{ + DeleteObject(bmp); +} + +/* palettes */ +HCOLOURMAP ui_create_colourmap(RDPCLIENT *, COLOURMAP * colours) +{ + return NULL; +} + +void ui_set_colourmap(RDPCLIENT * This, HCOLOURMAP map) +{ + // TODO +} + +/* cursors */ +HCURSOR ui_create_cursor(RDPCLIENT * This, unsigned int x, unsigned int y, int width, int height, uint8 * andmask, uint8 * xormask) +{ + uint8 * andbuf = NULL; + uint8 * xorbuf = NULL; + + uint8 * andbits = win32_convert_scanlines(width, - height, 1, 2, 4, andmask, &andbuf); + uint8 * xorbits = win32_convert_scanlines(width, height, 24, 2, 4, xormask, &xorbuf); + + HBITMAP hbmMask = CreateBitmap(width, height, 1, 1, andbits); + HBITMAP hbmColor = win32_create_dib(width, height, 24, xorbits); + + ICONINFO iconinfo; + iconinfo.fIcon = FALSE; + iconinfo.xHotspot = x; + iconinfo.yHotspot = y; + iconinfo.hbmMask = hbmMask; + iconinfo.hbmColor = hbmColor; + + HICON icon = CreateIconIndirect(&iconinfo); + + if(icon == NULL) + error("CreateIconIndirect %dx%d failed\n", width, height); + + if(andbuf) + delete[] andbuf; + + if(xorbuf) + delete[] xorbuf; + + DeleteObject(hbmMask); + DeleteObject(hbmColor); + + return icon; +} + +void ui_destroy_cursor(RDPCLIENT *, HCURSOR cursor) +{ + DestroyIcon(cursor); +} + +/* glyphs */ +HGLYPH ui_create_glyph(RDPCLIENT * This, int width, int height, const uint8 * data) +{ + uint8 * databuf = NULL; + uint8 * databits = win32_convert_scanlines(width, height, 1, 1, 2, data, &databuf); + + HBITMAP hbm = CreateBitmap(width, height, 1, 1, databits); + + if(databuf) + delete[] databuf; + + const uint8 * p = data; + int stride = alignup(alignup(width, 8) / 8, 1); + +#ifdef _DEBUG + printf("glyph %p\n", hbm); + + for(int i = 0; i < height; ++ i, p += stride) + { + for(int j = 0; j < width; ++ j) + { + int B = p[j / 8]; + int b = 8 - j % 8 - 1; + + if(B & (1 << b)) + fputs("##", stdout); + else + fputs("..", stdout); + } + + fputc('\n', stdout); + } + + fputc('\n', stdout); +#endif + + return hbm; +} + +void ui_destroy_glyph(RDPCLIENT *, HGLYPH glyph) +{ + DeleteObject(glyph); +} + +/* Input window */ +void ui_move_pointer(RDPCLIENT * This, int x, int y) +{ + // TODO +} + +void ui_set_cursor(RDPCLIENT * This, HCURSOR cursor) +{ + // TODO +} + +void ui_set_null_cursor(RDPCLIENT * This) +{ + // TODO +} + +/* Miscellaneous */ +void ui_resize_window(RDPCLIENT * This) +{ +} + +void ui_bell(RDPCLIENT *) +{ + MessageBeep(0); +} + +int ui_select(RDPCLIENT * This, SOCKET rdp_socket) +{ + return SleepEx(0, TRUE) == WAIT_IO_COMPLETION; +} + +/* Events */ +BOOL event_pubkey(RDPCLIENT * This, unsigned char * key, unsigned int key_size) +{ + if(!RdpClient::OnPublicKey(This, key, key_size)) + return FALSE; + else + return TRUE; +} + +void event_logon(RDPCLIENT * This) +{ + RdpClient::OnLogon(This); +} + +BOOL event_redirect(RDPCLIENT * This, uint32 flags, uint32 server_len, wchar_t * server, uint32 cookie_len, char * cookie, uint32 username_len, wchar_t * username, uint32 domain_len, wchar_t * domain, uint32 password_len, wchar_t * password) +{ + if + ( + !RdpClient::OnRedirect + ( + This, + flags, + server_len, + server, + cookie_len, + cookie, + username_len, + username, + domain_len, + domain, + password_len, + password + ) + ) + return FALSE; + else + return TRUE; +} + +} + +class ClassFactory: public IClassFactory +{ +private: + LONG m_refCount; + CLSID m_classId; + unsigned m_libIndex; + +public: + ClassFactory(REFCLSID rclsid, unsigned libIndex): + m_refCount(1), + m_classId(rclsid) + { + lockServer(); + } + + ~ClassFactory() + { + unlockServer(); + } + + virtual STDMETHODIMP QueryInterface(REFIID riid, void ** ppvObject) + { + if(riid == IID_IUnknown || riid == IID_IClassFactory) + { + *ppvObject = this; + return S_OK; + } + else + { + *ppvObject = NULL; + return E_NOINTERFACE; + } + } + + virtual STDMETHODIMP_(ULONG) AddRef() + { + return InterlockedIncrement(&m_refCount); + } + + virtual STDMETHODIMP_(ULONG) Release() + { + LONG n = InterlockedDecrement(&m_refCount); + + if(n == 0) + delete this; + + return n; + } + + virtual STDMETHODIMP CreateInstance(IUnknown * pUnkOuter, REFIID riid, void ** ppvObject) + { + if(pUnkOuter && riid != IID_IUnknown) + return CLASS_E_NOAGGREGATION; + + return RdpClient::CreateInstance(m_classId, m_libIndex, pUnkOuter, riid, ppvObject); + } + + virtual STDMETHODIMP LockServer(BOOL fLock) + { + if(fLock) + lockServer(); + else + unlockServer(); + + return S_OK; + } +}; + +extern "C" +{ + +STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID * ppv) +{ + unsigned libindex; + + if + ( + rclsid == MSTSCLib::CLSID_MsTscAx || + rclsid == MSTSCLib::CLSID_MsRdpClient || + rclsid == MSTSCLib::CLSID_MsRdpClient2 || + rclsid == MSTSCLib::CLSID_MsRdpClient3 || + rclsid == MSTSCLib::CLSID_MsRdpClient4 + ) + libindex = 1; + else if + ( + rclsid == MSTSCLib_Redist::CLSID_MsTscAx || + rclsid == MSTSCLib_Redist::CLSID_MsRdpClient || + rclsid == MSTSCLib_Redist::CLSID_MsRdpClient2 || + rclsid == MSTSCLib_Redist::CLSID_MsRdpClient3 // || + // rclsid != MSTSCLib::CLSID_MsRdpClient4 + ) + libindex = 2; + else + return CLASS_E_CLASSNOTAVAILABLE; + + ClassFactory * p = new ClassFactory(rclsid, libindex); + + if(p == NULL) + return E_OUTOFMEMORY; + + HRESULT hr = p->QueryInterface(riid, ppv); + + p->Release(); + + if(FAILED(hr)) + return hr; + + return S_OK; +} + +STDAPI DllCanUnloadNow(void) +{ + return canUnloadServer() ? S_OK : S_FALSE; +} + +STDAPI_(ULONG) DllGetTscCtlVer(void) +{ + // BUGBUG: don't hardcode this + return 0x05020ECE; // 5.2.3790 +} + +DWORD WINAPI DllMain(HINSTANCE hInstance, DWORD fdwReason, LPVOID lpvReserved) +{ + assert(hInstance == GetCurrentModule()); + + switch(fdwReason) + { + case DLL_PROCESS_ATTACH: + { + DisableThreadLibraryCalls(hInstance); + + if(!RdpClient::Startup()) + return FALSE; + } + + break; + + case DLL_PROCESS_DETACH: + { + // Process is terminating, no need to clean up + if(lpvReserved) + break; + + RdpClient::Shutdown(); + } + + break; + } + + return TRUE; +} + +} + +// EOF diff --git a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib.idl b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib.idl index d1ec277ab57..9c78f8575f9 100644 --- a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib.idl +++ b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib.idl @@ -1,561 +1,561 @@ -[ -#ifdef MSTSCLIB_REDIST_ - uuid(AF586AAE-B62A-420E-B796-294E7EE64C70), -#else - uuid(8C11EFA1-92C3-11D1-BC1E-00C04FA31489), -#endif - version(1.0) -] -library MSTSCLib -{ - importlib("stdole32.tlb"); - - dispinterface IMsTscAxEvents; - - interface IMsTscAx; - interface IMsRdpClient; - interface IMsRdpClient2; - interface IMsRdpClient3; - interface IMsRdpClient4; - - interface IMsTscNonScriptable; - interface IMsRdpClientNonScriptable; - interface IMsRdpClientNonScriptable2; - - interface IMsTscAdvancedSettings; - interface IMsRdpClientAdvancedSettings; - interface IMsRdpClientAdvancedSettings2; - interface IMsRdpClientAdvancedSettings3; - interface IMsRdpClientAdvancedSettings4; - - interface IMsTscSecuredSettings; - interface IMsRdpClientSecuredSettings; - - interface IMsTscDebug; - - typedef [public] enum __MIDL___MIDL_itf_mstsax_0275_0001 - { - autoReconnectContinueAutomatic = 0, - autoReconnectContinueStop = 1, - autoReconnectContinueManual = 2 - } - AutoReconnectContinueState; - - typedef [public] enum __MIDL_IMsRdpClient_0001 - { - exDiscReasonNoInfo = 0, - exDiscReasonAPIInitiatedDisconnect = 1, - exDiscReasonAPIInitiatedLogoff = 2, - exDiscReasonServerIdleTimeout = 3, - exDiscReasonServerLogonTimeout = 4, - exDiscReasonReplacedByOtherConnection = 5, - exDiscReasonOutOfMemory = 6, - exDiscReasonServerDeniedConnection = 7, - exDiscReasonServerDeniedConnectionFips = 8, - exDiscReasonLicenseInternal = 256, - exDiscReasonLicenseNoLicenseServer = 257, - exDiscReasonLicenseNoLicense = 258, - exDiscReasonLicenseErrClientMsg = 259, - exDiscReasonLicenseHwidDoesntMatchLicense = 260, - exDiscReasonLicenseErrClientLicense = 261, - exDiscReasonLicenseCantFinishProtocol = 262, - exDiscReasonLicenseClientEndedProtocol = 263, - exDiscReasonLicenseErrClientEncryption = 264, - exDiscReasonLicenseCantUpgradeLicense = 265, - exDiscReasonLicenseNoRemoteConnections = 266, - exDiscReasonProtocolRangeStart = 4096, - exDiscReasonProtocolRangeEnd = 32767 - } - ExtendedDisconnectReasonCode; - - typedef [public] enum __MIDL_IMsRdpClient_0002 - { - controlCloseCanProceed = 0, - controlCloseWaitForEvents = 1 - } - ControlCloseStatus; - - typedef [public] unsigned __int3264 UINT_PTR; - typedef [public] __int3264 LONG_PTR; - - [uuid(336D5562-EFA8-482E-8CB3-C5C0FC7A7DB6)] - dispinterface IMsTscAxEvents - { - properties: - - methods: - [id(0x00000001)] void OnConnecting(); - [id(0x00000002)] void OnConnected(); - [id(0x00000003)] void OnLoginComplete(); - [id(0x00000004)] void OnDisconnected([in] long discReason); - [id(0x00000005)] void OnEnterFullScreenMode(); - [id(0x00000006)] void OnLeaveFullScreenMode(); - [id(0x00000007)] void OnChannelReceivedData([in] BSTR chanName, [in] BSTR data); - [id(0x00000008)] void OnRequestGoFullScreen(); - [id(0x00000009)] void OnRequestLeaveFullScreen(); - [id(0x0000000a)] void OnFatalError([in] long errorCode); - [id(0x0000000b)] void OnWarning([in] long warningCode); - [id(0x0000000c)] void OnRemoteDesktopSizeChange([in] long width, [in] long height); - [id(0x0000000d)] void OnIdleTimeoutNotification(); - [id(0x0000000e)] void OnRequestContainerMinimize(); - [id(0x0000000f)] void OnConfirmClose([out, retval] VARIANT_BOOL * pfAllowClose); - [id(0x00000010)] void OnReceivedTSPublicKey([in] BSTR publicKey, [out, retval] VARIANT_BOOL * pfContinueLogon); - [id(0x00000011)] void OnAutoReconnecting([in] long disconnectReason, [in] long attemptCount, [out, retval] AutoReconnectContinueState * pArcContinueStatus); - [id(0x00000012)] void OnAuthenticationWarningDisplayed(); - [id(0x00000013)] void OnAuthenticationWarningDismissed(); - }; - - [ -#ifdef MSTSCLIB_REDIST_ - uuid(327BB5CD-834E-4400-AEF2-B30E15E5D682), -#else - uuid(8C11EFAE-92C3-11D1-BC1E-00C04FA31489), -#endif - dual, - oleautomation - ] - interface IMsTscAx: IDispatch - { - [id(0x00000001), propput] HRESULT Server([in] BSTR pServer); - [id(0x00000001), propget] HRESULT Server([out, retval] BSTR * pServer); - [id(0x00000002), propput] HRESULT Domain([in] BSTR pDomain); - [id(0x00000002), propget] HRESULT Domain([out, retval] BSTR * pDomain); - [id(0x00000003), propput] HRESULT UserName([in] BSTR pUserName); - [id(0x00000003), propget] HRESULT UserName([out, retval] BSTR * pUserName); - [id(0x00000004), propput] HRESULT DisconnectedText([in] BSTR pDisconnectedText); - [id(0x00000004), propget] HRESULT DisconnectedText([out, retval] BSTR * pDisconnectedText); - [id(0x00000005), propput] HRESULT ConnectingText([in] BSTR pConnectingText); - [id(0x00000005), propget] HRESULT ConnectingText([out, retval] BSTR * pConnectingText); - [id(0x00000006), propget] HRESULT Connected([out, retval] short * pIsConnected); - [id(0x0000000c), propput] HRESULT DesktopWidth([in] long pVal); - [id(0x0000000c), propget] HRESULT DesktopWidth([out, retval] long * pVal); - [id(0x0000000d), propput] HRESULT DesktopHeight([in] long pVal); - [id(0x0000000d), propget] HRESULT DesktopHeight([out, retval] long * pVal); - [id(0x00000010), propput] HRESULT StartConnected([in] long pfStartConnected); - [id(0x00000010), propget] HRESULT StartConnected([out, retval] long * pfStartConnected); - [id(0x00000011), propget] HRESULT HorizontalScrollBarVisible([out, retval] long * pfHScrollVisible); - [id(0x00000012), propget] HRESULT VerticalScrollBarVisible([out, retval] long * pfVScrollVisible); - [id(0x00000013), propput] HRESULT FullScreenTitle([in] BSTR rhs); - [id(0x00000014), propget] HRESULT CipherStrength([out, retval] long * pCipherStrength); - [id(0x00000015), propget] HRESULT Version([out, retval] BSTR * pVersion); - [id(0x00000016), propget] HRESULT SecuredSettingsEnabled([out, retval] long * pSecuredSettingsEnabled); - [id(0x00000061), propget] HRESULT SecuredSettings([out, retval] IMsTscSecuredSettings ** ppSecuredSettings); - [id(0x00000062), propget] HRESULT AdvancedSettings([out, retval] IMsTscAdvancedSettings ** ppAdvSettings); - [id(0x00000063), propget, hidden] HRESULT Debugger([out, retval] IMsTscDebug ** ppDebugger); - [id(0x0000001e)] HRESULT Connect(); - [id(0x0000001f)] HRESULT Disconnect(); - [id(0x00000021)] HRESULT CreateVirtualChannels([in] BSTR newVal); - [id(0x00000022)] HRESULT SendOnVirtualChannel([in] BSTR chanName, [in] BSTR ChanData); - }; - - [ - uuid(92B4A539-7115-4B7C-A5A9-E5D9EFC2780A), - dual, - oleautomation - ] - interface IMsRdpClient: IMsTscAx - { - [id(0x00000064), propput] HRESULT ColorDepth([in] long pcolorDepth); - [id(0x00000064), propget] HRESULT ColorDepth([out, retval] long * pcolorDepth); - [id(0x00000065), propget] HRESULT AdvancedSettings2([out, retval] IMsRdpClientAdvancedSettings ** ppAdvSettings); - [id(0x00000066), propget] HRESULT SecuredSettings2([out, retval] IMsRdpClientSecuredSettings ** ppSecuredSettings); - [id(0x00000067), propget] HRESULT ExtendedDisconnectReason([out, retval] ExtendedDisconnectReasonCode * pExtendedDisconnectReason); - [id(0x00000068), propput] HRESULT FullScreen([in] VARIANT_BOOL pfFullScreen); - [id(0x00000068), propget] HRESULT FullScreen([out, retval] VARIANT_BOOL * pfFullScreen); - [id(0x00000023)] HRESULT SetVirtualChannelOptions([in] BSTR chanName, [in] long chanOptions); - [id(0x00000024)] HRESULT GetVirtualChannelOptions([in] BSTR chanName, [out, retval] long * pChanOptions); - [id(0x00000025)] HRESULT RequestClose([out, retval] ControlCloseStatus * pCloseStatus); - }; - - [ - uuid(E7E17DC4-3B71-4BA7-A8E6-281FFADCA28F), - dual, - oleautomation - ] - interface IMsRdpClient2: IMsRdpClient - { - [id(0x000000c8), propget] HRESULT AdvancedSettings3([out, retval] IMsRdpClientAdvancedSettings2 ** ppAdvSettings); - [id(0x000000c9), propput] HRESULT ConnectedStatusText([in] BSTR pConnectedStatusText); - [id(0x000000c9), propget] HRESULT ConnectedStatusText([out, retval] BSTR * pConnectedStatusText); - }; - - [ - uuid(91B7CBC5-A72E-4FA0-9300-D647D7E897FF), - dual, - oleautomation - ] - interface IMsRdpClient3: IMsRdpClient2 - { - [id(0x0000012c), propget] HRESULT AdvancedSettings4([out, retval] IMsRdpClientAdvancedSettings3 ** ppAdvSettings); - }; - - [ - uuid(095E0738-D97D-488B-B9F6-DD0E8D66C0DE), - dual, - oleautomation - ] - interface IMsRdpClient4: IMsRdpClient3 - { - [id(0x00000190), propget] HRESULT AdvancedSettings5([out, retval] IMsRdpClientAdvancedSettings4 ** ppAdvSettings5); - }; - - [uuid(C1E6743A-41C1-4A74-832A-0DD06C1C7A0E)] - interface IMsTscNonScriptable: IUnknown - { - [propput] HRESULT ClearTextPassword([in] BSTR rhs); - [propput] HRESULT PortablePassword([in] BSTR pPortablePass); - [propget] HRESULT PortablePassword([out, retval] BSTR * pPortablePass); - [propput] HRESULT PortableSalt([in] BSTR pPortableSalt); - [propget] HRESULT PortableSalt([out, retval] BSTR * pPortableSalt); - [propput] HRESULT BinaryPassword([in] BSTR pBinaryPassword); - [propget] HRESULT BinaryPassword([out, retval] BSTR * pBinaryPassword); - [propput] HRESULT BinarySalt([in] BSTR pSalt); - [propget] HRESULT BinarySalt([out, retval] BSTR * pSalt); - HRESULT ResetPassword(); - }; - - [uuid(2F079C4C-87B2-4AFD-97AB-20CDB43038AE)] - interface IMsRdpClientNonScriptable: IMsTscNonScriptable - { - HRESULT NotifyRedirectDeviceChange([in] UINT_PTR wParam, [in] LONG_PTR lParam); - HRESULT SendKeys([in] long numKeys, [in] VARIANT_BOOL * pbArrayKeyUp, [in] long * plKeyData); - }; - - [uuid(17A5E535-4072-4FA4-AF32-C8D0D47345E9)] - interface IMsRdpClientNonScriptable2: IMsRdpClientNonScriptable - { - [propput] HRESULT UIParentWindowHandle([in] HWND phwndUIParentWindowHandle); - [propget] HRESULT UIParentWindowHandle([out, retval] HWND * phwndUIParentWindowHandle); - }; - - [ - uuid(809945CC-4B3B-4A92-A6B0-DBF9B5F2EF2D), - dual, - oleautomation - ] - interface IMsTscAdvancedSettings: IDispatch - { - [id(0x00000079), propput] HRESULT Compress([in] long pcompress); - [id(0x00000079), propget] HRESULT Compress([out, retval] long * pcompress); - [id(0x0000007a), propput] HRESULT BitmapPeristence([in] long pbitmapPeristence); - [id(0x0000007a), propget] HRESULT BitmapPeristence([out, retval] long * pbitmapPeristence); - [id(0x000000a1), propput] HRESULT allowBackgroundInput([in] long pallowBackgroundInput); - [id(0x000000a1), propget] HRESULT allowBackgroundInput([out, retval] long * pallowBackgroundInput); - [id(0x000000a2), propput] HRESULT KeyBoardLayoutStr([in] BSTR rhs); - [id(0x000000aa), propput] HRESULT PluginDlls([in] BSTR rhs); - [id(0x000000ab), propput] HRESULT IconFile([in] BSTR rhs); - [id(0x000000ac), propput] HRESULT IconIndex([in] long rhs); - [id(0x000000ad), propput] HRESULT ContainerHandledFullScreen([in] long pContainerHandledFullScreen); - [id(0x000000ad), propget] HRESULT ContainerHandledFullScreen([out, retval] long * pContainerHandledFullScreen); - [id(0x000000ae), propput] HRESULT DisableRdpdr([in] long pDisableRdpdr); - [id(0x000000ae), propget] HRESULT DisableRdpdr([out, retval] long * pDisableRdpdr); - }; - - [ - uuid(3C65B4AB-12B3-465B-ACD4-B8DAD3BFF9E2), - dual, - oleautomation - ] - interface IMsRdpClientAdvancedSettings: IMsTscAdvancedSettings - { - [id(0x00000065), propput] HRESULT SmoothScroll([in] long psmoothScroll); - [id(0x00000065), propget] HRESULT SmoothScroll([out, retval] long * psmoothScroll); - [id(0x00000066), propput] HRESULT AcceleratorPassthrough([in] long pacceleratorPassthrough); - [id(0x00000066), propget] HRESULT AcceleratorPassthrough([out, retval] long * pacceleratorPassthrough); - [id(0x00000067), propput] HRESULT ShadowBitmap([in] long pshadowBitmap); - [id(0x00000067), propget] HRESULT ShadowBitmap([out, retval] long * pshadowBitmap); - [id(0x00000068), propput] HRESULT TransportType([in] long ptransportType); - [id(0x00000068), propget] HRESULT TransportType([out, retval] long * ptransportType); - [id(0x00000069), propput] HRESULT SasSequence([in] long psasSequence); - [id(0x00000069), propget] HRESULT SasSequence([out, retval] long * psasSequence); - [id(0x0000006a), propput] HRESULT EncryptionEnabled([in] long pencryptionEnabled); - [id(0x0000006a), propget] HRESULT EncryptionEnabled([out, retval] long * pencryptionEnabled); - [id(0x0000006b), propput] HRESULT DedicatedTerminal([in] long pdedicatedTerminal); - [id(0x0000006b), propget] HRESULT DedicatedTerminal([out, retval] long * pdedicatedTerminal); - [id(0x0000006c), propput] HRESULT RDPPort([in] long prdpPort); - [id(0x0000006c), propget] HRESULT RDPPort([out, retval] long * prdpPort); - [id(0x0000006d), propput] HRESULT EnableMouse([in] long penableMouse); - [id(0x0000006d), propget] HRESULT EnableMouse([out, retval] long * penableMouse); - [id(0x0000006e), propput] HRESULT DisableCtrlAltDel([in] long pdisableCtrlAltDel); - [id(0x0000006e), propget] HRESULT DisableCtrlAltDel([out, retval] long * pdisableCtrlAltDel); - [id(0x0000006f), propput] HRESULT EnableWindowsKey([in] long penableWindowsKey); - [id(0x0000006f), propget] HRESULT EnableWindowsKey([out, retval] long * penableWindowsKey); - [id(0x00000070), propput] HRESULT DoubleClickDetect([in] long pdoubleClickDetect); - [id(0x00000070), propget] HRESULT DoubleClickDetect([out, retval] long * pdoubleClickDetect); - [id(0x00000071), propput] HRESULT MaximizeShell([in] long pmaximizeShell); - [id(0x00000071), propget] HRESULT MaximizeShell([out, retval] long * pmaximizeShell); - [id(0x00000072), propput] HRESULT HotKeyFullScreen([in] long photKeyFullScreen); - [id(0x00000072), propget] HRESULT HotKeyFullScreen([out, retval] long * photKeyFullScreen); - [id(0x00000073), propput] HRESULT HotKeyCtrlEsc([in] long photKeyCtrlEsc); - [id(0x00000073), propget] HRESULT HotKeyCtrlEsc([out, retval] long * photKeyCtrlEsc); - [id(0x00000074), propput] HRESULT HotKeyAltEsc([in] long photKeyAltEsc); - [id(0x00000074), propget] HRESULT HotKeyAltEsc([out, retval] long * photKeyAltEsc); - [id(0x00000075), propput] HRESULT HotKeyAltTab([in] long photKeyAltTab); - [id(0x00000075), propget] HRESULT HotKeyAltTab([out, retval] long * photKeyAltTab); - [id(0x00000076), propput] HRESULT HotKeyAltShiftTab([in] long photKeyAltShiftTab); - [id(0x00000076), propget] HRESULT HotKeyAltShiftTab([out, retval] long * photKeyAltShiftTab); - [id(0x00000077), propput] HRESULT HotKeyAltSpace([in] long photKeyAltSpace); - [id(0x00000077), propget] HRESULT HotKeyAltSpace([out, retval] long * photKeyAltSpace); - [id(0x00000078), propput] HRESULT HotKeyCtrlAltDel([in] long photKeyCtrlAltDel); - [id(0x00000078), propget] HRESULT HotKeyCtrlAltDel([out, retval] long * photKeyCtrlAltDel); - [id(0x0000007b), propput] HRESULT orderDrawThreshold([in] long porderDrawThreshold); - [id(0x0000007b), propget] HRESULT orderDrawThreshold([out, retval] long * porderDrawThreshold); - [id(0x0000007c), propput] HRESULT BitmapCacheSize([in] long pbitmapCacheSize); - [id(0x0000007c), propget] HRESULT BitmapCacheSize([out, retval] long * pbitmapCacheSize); - [id(0x0000007d), propput] HRESULT BitmapVirtualCacheSize([in] long pbitmapVirtualCacheSize); - [id(0x0000007d), propget] HRESULT BitmapVirtualCacheSize([out, retval] long * pbitmapVirtualCacheSize); - [id(0x000000af), propput] HRESULT ScaleBitmapCachesByBPP([in] long pbScale); - [id(0x000000af), propget] HRESULT ScaleBitmapCachesByBPP([out, retval] long * pbScale); - [id(0x0000007e), propput] HRESULT NumBitmapCaches([in] long pnumBitmapCaches); - [id(0x0000007e), propget] HRESULT NumBitmapCaches([out, retval] long * pnumBitmapCaches); - [id(0x0000007f), propput] HRESULT CachePersistenceActive([in] long pcachePersistenceActive); - [id(0x0000007f), propget] HRESULT CachePersistenceActive([out, retval] long * pcachePersistenceActive); - [id(0x0000008a), propput] HRESULT PersistCacheDirectory([in] BSTR rhs); - [id(0x0000009c), propput] HRESULT brushSupportLevel([in] long pbrushSupportLevel); - [id(0x0000009c), propget] HRESULT brushSupportLevel([out, retval] long * pbrushSupportLevel); - [id(0x0000009d), propput] HRESULT minInputSendInterval([in] long pminInputSendInterval); - [id(0x0000009d), propget] HRESULT minInputSendInterval([out, retval] long * pminInputSendInterval); - [id(0x0000009e), propput] HRESULT InputEventsAtOnce([in] long pinputEventsAtOnce); - [id(0x0000009e), propget] HRESULT InputEventsAtOnce([out, retval] long * pinputEventsAtOnce); - [id(0x0000009f), propput] HRESULT maxEventCount([in] long pmaxEventCount); - [id(0x0000009f), propget] HRESULT maxEventCount([out, retval] long * pmaxEventCount); - [id(0x000000a0), propput] HRESULT keepAliveInterval([in] long pkeepAliveInterval); - [id(0x000000a0), propget] HRESULT keepAliveInterval([out, retval] long * pkeepAliveInterval); - [id(0x000000a3), propput] HRESULT shutdownTimeout([in] long pshutdownTimeout); - [id(0x000000a3), propget] HRESULT shutdownTimeout([out, retval] long * pshutdownTimeout); - [id(0x000000a4), propput] HRESULT overallConnectionTimeout([in] long poverallConnectionTimeout); - [id(0x000000a4), propget] HRESULT overallConnectionTimeout([out, retval] long * poverallConnectionTimeout); - [id(0x000000a5), propput] HRESULT singleConnectionTimeout([in] long psingleConnectionTimeout); - [id(0x000000a5), propget] HRESULT singleConnectionTimeout([out, retval] long * psingleConnectionTimeout); - [id(0x000000a6), propput] HRESULT KeyboardType([in] long pkeyboardType); - [id(0x000000a6), propget] HRESULT KeyboardType([out, retval] long * pkeyboardType); - [id(0x000000a7), propput] HRESULT KeyboardSubType([in] long pkeyboardSubType); - [id(0x000000a7), propget] HRESULT KeyboardSubType([out, retval] long * pkeyboardSubType); - [id(0x000000a8), propput] HRESULT KeyboardFunctionKey([in] long pkeyboardFunctionKey); - [id(0x000000a8), propget] HRESULT KeyboardFunctionKey([out, retval] long * pkeyboardFunctionKey); - [id(0x000000a9), propput] HRESULT WinceFixedPalette([in] long pwinceFixedPalette); - [id(0x000000a9), propget] HRESULT WinceFixedPalette([out, retval] long * pwinceFixedPalette); - [id(0x000000b2), propput] HRESULT ConnectToServerConsole([in] VARIANT_BOOL pConnectToConsole); - [id(0x000000b2), propget] HRESULT ConnectToServerConsole([out, retval] VARIANT_BOOL * pConnectToConsole); - [id(0x000000b6), propput] HRESULT BitmapPersistence([in] long pbitmapPersistence); - [id(0x000000b6), propget] HRESULT BitmapPersistence([out, retval] long * pbitmapPersistence); - [id(0x000000b7), propput] HRESULT MinutesToIdleTimeout([in] long pminutesToIdleTimeout); - [id(0x000000b7), propget] HRESULT MinutesToIdleTimeout([out, retval] long * pminutesToIdleTimeout); - [id(0x000000b8), propput] HRESULT SmartSizing([in] VARIANT_BOOL pfSmartSizing); - [id(0x000000b8), propget] HRESULT SmartSizing([out, retval] VARIANT_BOOL * pfSmartSizing); - [id(0x000000b9), propput] HRESULT RdpdrLocalPrintingDocName([in] BSTR pLocalPrintingDocName); - [id(0x000000b9), propget] HRESULT RdpdrLocalPrintingDocName([out, retval] BSTR * pLocalPrintingDocName); - [id(0x000000c9), propput] HRESULT RdpdrClipCleanTempDirString([in] BSTR clipCleanTempDirString); - [id(0x000000c9), propget] HRESULT RdpdrClipCleanTempDirString([out, retval] BSTR * clipCleanTempDirString); - [id(0x000000ca), propput] HRESULT RdpdrClipPasteInfoString([in] BSTR clipPasteInfoString); - [id(0x000000ca), propget] HRESULT RdpdrClipPasteInfoString([out, retval] BSTR * clipPasteInfoString); - [id(0x000000ba), propput] HRESULT ClearTextPassword([in] BSTR rhs); - [id(0x000000bb), propput] HRESULT DisplayConnectionBar([in] VARIANT_BOOL pDisplayConnectionBar); - [id(0x000000bb), propget] HRESULT DisplayConnectionBar([out, retval] VARIANT_BOOL * pDisplayConnectionBar); - [id(0x000000bc), propput] HRESULT PinConnectionBar([in] VARIANT_BOOL pPinConnectionBar); - [id(0x000000bc), propget] HRESULT PinConnectionBar([out, retval] VARIANT_BOOL * pPinConnectionBar); - [id(0x000000bd), propput] HRESULT GrabFocusOnConnect([in] VARIANT_BOOL pfGrabFocusOnConnect); - [id(0x000000bd), propget] HRESULT GrabFocusOnConnect([out, retval] VARIANT_BOOL * pfGrabFocusOnConnect); - [id(0x000000be), propput] HRESULT LoadBalanceInfo([in] BSTR pLBInfo); - [id(0x000000be), propget] HRESULT LoadBalanceInfo([out, retval] BSTR * pLBInfo); - [id(0x000000bf), propput] HRESULT RedirectDrives([in] VARIANT_BOOL pRedirectDrives); - [id(0x000000bf), propget] HRESULT RedirectDrives([out, retval] VARIANT_BOOL * pRedirectDrives); - [id(0x000000c0), propput] HRESULT RedirectPrinters([in] VARIANT_BOOL pRedirectPrinters); - [id(0x000000c0), propget] HRESULT RedirectPrinters([out, retval] VARIANT_BOOL * pRedirectPrinters); - [id(0x000000c1), propput] HRESULT RedirectPorts([in] VARIANT_BOOL pRedirectPorts); - [id(0x000000c1), propget] HRESULT RedirectPorts([out, retval] VARIANT_BOOL * pRedirectPorts); - [id(0x000000c2), propput] HRESULT RedirectSmartCards([in] VARIANT_BOOL pRedirectSmartCards); - [id(0x000000c2), propget] HRESULT RedirectSmartCards([out, retval] VARIANT_BOOL * pRedirectSmartCards); - [id(0x000000c3), propput] HRESULT BitmapVirtualCache16BppSize([in] long pBitmapVirtualCache16BppSize); - [id(0x000000c3), propget] HRESULT BitmapVirtualCache16BppSize([out, retval] long * pBitmapVirtualCache16BppSize); - [id(0x000000c4), propput] HRESULT BitmapVirtualCache24BppSize([in] long pBitmapVirtualCache24BppSize); - [id(0x000000c4), propget] HRESULT BitmapVirtualCache24BppSize([out, retval] long * pBitmapVirtualCache24BppSize); - [id(0x000000c8), propput] HRESULT PerformanceFlags([in] long pDisableList); - [id(0x000000c8), propget] HRESULT PerformanceFlags([out, retval] long * pDisableList); - [id(0x000000cb), propput] HRESULT ConnectWithEndpoint([in] VARIANT * rhs); - [id(0x000000cc), propput] HRESULT NotifyTSPublicKey([in] VARIANT_BOOL pfNotify); - [id(0x000000cc), propget] HRESULT NotifyTSPublicKey([out, retval] VARIANT_BOOL * pfNotify); - }; - - [ - uuid(9AC42117-2B76-4320-AA44-0E616AB8437B), - dual, - oleautomation - ] - interface IMsRdpClientAdvancedSettings2: IMsRdpClientAdvancedSettings - { - [id(0x000000cd), propget] HRESULT CanAutoReconnect([out, retval] VARIANT_BOOL * pfCanAutoReconnect); - [id(0x000000ce), propput] HRESULT EnableAutoReconnect([in] VARIANT_BOOL pfEnableAutoReconnect); - [id(0x000000ce), propget] HRESULT EnableAutoReconnect([out, retval] VARIANT_BOOL * pfEnableAutoReconnect); - [id(0x000000cf), propput] HRESULT MaxReconnectAttempts([in] long pMaxReconnectAttempts); - [id(0x000000cf), propget] HRESULT MaxReconnectAttempts([out, retval] long * pMaxReconnectAttempts); - }; - - [ - uuid(19CD856B-C542-4C53-ACEE-F127E3BE1A59), - dual, - oleautomation - ] - interface IMsRdpClientAdvancedSettings3: IMsRdpClientAdvancedSettings2 - { - [id(0x000000d2), propput] HRESULT ConnectionBarShowMinimizeButton([in] VARIANT_BOOL pfShowMinimize); - [id(0x000000d2), propget] HRESULT ConnectionBarShowMinimizeButton([out, retval] VARIANT_BOOL * pfShowMinimize); - [id(0x000000d3), propput] HRESULT ConnectionBarShowRestoreButton([in] VARIANT_BOOL pfShowRestore); - [id(0x000000d3), propget] HRESULT ConnectionBarShowRestoreButton([out, retval] VARIANT_BOOL * pfShowRestore); - }; - - [ - uuid(FBA7F64E-7345-4405-AE50-FA4A763DC0DE), - dual, - oleautomation - ] - interface IMsRdpClientAdvancedSettings4: IMsRdpClientAdvancedSettings3 - { - [id(0x000000d4), propput] HRESULT AuthenticationLevel([in] unsigned int puiAuthLevel); - [id(0x000000d4), propget] HRESULT AuthenticationLevel([out, retval] unsigned int * puiAuthLevel); - }; - - [ - uuid(C9D65442-A0F9-45B2-8F73-D61D2DB8CBB6), - dual, - oleautomation - ] - interface IMsTscSecuredSettings: IDispatch - { - [id(0x00000001), propput] HRESULT StartProgram([in] BSTR pStartProgram); - [id(0x00000001), propget] HRESULT StartProgram([out, retval] BSTR * pStartProgram); - [id(0x00000002), propput] HRESULT WorkDir([in] BSTR pWorkDir); - [id(0x00000002), propget] HRESULT WorkDir([out, retval] BSTR * pWorkDir); - [id(0x00000003), propput] HRESULT FullScreen([in] long pfFullScreen); - [id(0x00000003), propget] HRESULT FullScreen([out, retval] long * pfFullScreen); - }; - - [ - uuid(605BEFCF-39C1-45CC-A811-068FB7BE346D), - dual, - oleautomation - ] - interface IMsRdpClientSecuredSettings: IMsTscSecuredSettings - { - [id(0x00000004), propput] HRESULT KeyboardHookMode([in] long pkeyboardHookMode); - [id(0x00000004), propget] HRESULT KeyboardHookMode([out, retval] long * pkeyboardHookMode); - [id(0x00000005), propput] HRESULT AudioRedirectionMode([in] long pAudioRedirectionMode); - [id(0x00000005), propget] HRESULT AudioRedirectionMode([out, retval] long * pAudioRedirectionMode); - }; - - [ - uuid(209D0EB9-6254-47B1-9033-A98DAE55BB27), - hidden, - dual, - oleautomation - ] - interface IMsTscDebug: IDispatch - { - [id(0x000000c8), propput] HRESULT HatchBitmapPDU([in] long phatchBitmapPDU); - [id(0x000000c8), propget] HRESULT HatchBitmapPDU([out, retval] long * phatchBitmapPDU); - [id(0x000000c9), propput] HRESULT HatchSSBOrder([in] long phatchSSBOrder); - [id(0x000000c9), propget] HRESULT HatchSSBOrder([out, retval] long * phatchSSBOrder); - [id(0x000000ca), propput] HRESULT HatchMembltOrder([in] long phatchMembltOrder); - [id(0x000000ca), propget] HRESULT HatchMembltOrder([out, retval] long * phatchMembltOrder); - [id(0x000000cb), propput] HRESULT HatchIndexPDU([in] long phatchIndexPDU); - [id(0x000000cb), propget] HRESULT HatchIndexPDU([out, retval] long * phatchIndexPDU); - [id(0x000000cc), propput] HRESULT LabelMemblt([in] long plabelMemblt); - [id(0x000000cc), propget] HRESULT LabelMemblt([out, retval] long * plabelMemblt); - [id(0x000000cd), propput] HRESULT BitmapCacheMonitor([in] long pbitmapCacheMonitor); - [id(0x000000cd), propget] HRESULT BitmapCacheMonitor([out, retval] long * pbitmapCacheMonitor); - [id(0x000000ce), propput] HRESULT MallocFailuresPercent([in] long pmallocFailuresPercent); - [id(0x000000ce), propget] HRESULT MallocFailuresPercent([out, retval] long * pmallocFailuresPercent); - [id(0x000000cf), propput] HRESULT MallocHugeFailuresPercent([in] long pmallocHugeFailuresPercent); - [id(0x000000cf), propget] HRESULT MallocHugeFailuresPercent([out, retval] long * pmallocHugeFailuresPercent); - [id(0x000000d0), propput] HRESULT NetThroughput([in] long NetThroughput); - [id(0x000000d0), propget] HRESULT NetThroughput([out, retval] long * NetThroughput); - [id(0x000000d1), propput] HRESULT CLXCmdLine([in] BSTR pCLXCmdLine); - [id(0x000000d1), propget] HRESULT CLXCmdLine([out, retval] BSTR * pCLXCmdLine); - [id(0x000000d2), propput] HRESULT CLXDll([in] BSTR pCLXDll); - [id(0x000000d2), propget] HRESULT CLXDll([out, retval] BSTR * pCLXDll); - }; - - [ -#ifdef MSTSCLIB_REDIST_ - uuid(1FB464C8-09BB-4017-A2F5-EB742F04392F) -#else - uuid(A41A4187-5A86-4E26-B40A-856F9035D9CB) -#endif - ] - coclass MsTscAx - { - interface IMsRdpClient; - [default] interface IMsTscAx; - [default, source] dispinterface IMsTscAxEvents; - interface IMsTscNonScriptable; - interface IMsRdpClientNonScriptable; - }; - - [ -#ifdef MSTSCLIB_REDIST_ - uuid(791FA017-2DE3-492E-ACC5-53C67A2B94D0) -#else - uuid(7CACBD7B-0D99-468F-AC33-22E495C0AFE5) -#endif - ] - coclass MsRdpClient - { - [default] interface IMsRdpClient; - interface IMsTscAx; - [default, source] dispinterface IMsTscAxEvents; - interface IMsTscNonScriptable; - interface IMsRdpClientNonScriptable; - }; - - [ -#ifdef MSTSCLIB_REDIST_ - uuid(9059F30F-4EB1-4BD2-9FDC-36F43A218F4A) -#else - uuid(3523C2FB-4031-44E4-9A3B-F1E94986EE7F) -#endif - ] - coclass MsRdpClient2 - { - [default] interface IMsRdpClient2; - interface IMsRdpClient; - interface IMsTscAx; - [default, source] dispinterface IMsTscAxEvents; - interface IMsTscNonScriptable; - interface IMsRdpClientNonScriptable; - }; - - [ -#ifdef MSTSCLIB_REDIST_ - uuid(7584C670-2274-4EFB-B00B-D6AABA6D3850) -#else - uuid(ACE575FD-1FCF-4074-9401-EBAB990FA9DE) -#endif - ] - coclass MsRdpClient3 - { - [default] interface IMsRdpClient3; - interface IMsRdpClient2; - interface IMsRdpClient; - interface IMsTscAx; - [default, source] dispinterface IMsTscAxEvents; - interface IMsTscNonScriptable; - interface IMsRdpClientNonScriptable; - }; - - [uuid(6AE29350-321B-42BE-BBE5-12FB5270C0DE)] - coclass MsRdpClient4 - { - [default] interface IMsRdpClient4; - interface IMsRdpClient3; - interface IMsRdpClient2; - interface IMsRdpClient; - interface IMsTscAx; - [default, source] dispinterface IMsTscAxEvents; - interface IMsTscNonScriptable; - interface IMsRdpClientNonScriptable; - interface IMsRdpClientNonScriptable2; - }; - -}; - -// EOF +[ +#ifdef MSTSCLIB_REDIST_ + uuid(AF586AAE-B62A-420E-B796-294E7EE64C70), +#else + uuid(8C11EFA1-92C3-11D1-BC1E-00C04FA31489), +#endif + version(1.0) +] +library MSTSCLib +{ + importlib("stdole32.tlb"); + + dispinterface IMsTscAxEvents; + + interface IMsTscAx; + interface IMsRdpClient; + interface IMsRdpClient2; + interface IMsRdpClient3; + interface IMsRdpClient4; + + interface IMsTscNonScriptable; + interface IMsRdpClientNonScriptable; + interface IMsRdpClientNonScriptable2; + + interface IMsTscAdvancedSettings; + interface IMsRdpClientAdvancedSettings; + interface IMsRdpClientAdvancedSettings2; + interface IMsRdpClientAdvancedSettings3; + interface IMsRdpClientAdvancedSettings4; + + interface IMsTscSecuredSettings; + interface IMsRdpClientSecuredSettings; + + interface IMsTscDebug; + + typedef [public] enum __MIDL___MIDL_itf_mstsax_0275_0001 + { + autoReconnectContinueAutomatic = 0, + autoReconnectContinueStop = 1, + autoReconnectContinueManual = 2 + } + AutoReconnectContinueState; + + typedef [public] enum __MIDL_IMsRdpClient_0001 + { + exDiscReasonNoInfo = 0, + exDiscReasonAPIInitiatedDisconnect = 1, + exDiscReasonAPIInitiatedLogoff = 2, + exDiscReasonServerIdleTimeout = 3, + exDiscReasonServerLogonTimeout = 4, + exDiscReasonReplacedByOtherConnection = 5, + exDiscReasonOutOfMemory = 6, + exDiscReasonServerDeniedConnection = 7, + exDiscReasonServerDeniedConnectionFips = 8, + exDiscReasonLicenseInternal = 256, + exDiscReasonLicenseNoLicenseServer = 257, + exDiscReasonLicenseNoLicense = 258, + exDiscReasonLicenseErrClientMsg = 259, + exDiscReasonLicenseHwidDoesntMatchLicense = 260, + exDiscReasonLicenseErrClientLicense = 261, + exDiscReasonLicenseCantFinishProtocol = 262, + exDiscReasonLicenseClientEndedProtocol = 263, + exDiscReasonLicenseErrClientEncryption = 264, + exDiscReasonLicenseCantUpgradeLicense = 265, + exDiscReasonLicenseNoRemoteConnections = 266, + exDiscReasonProtocolRangeStart = 4096, + exDiscReasonProtocolRangeEnd = 32767 + } + ExtendedDisconnectReasonCode; + + typedef [public] enum __MIDL_IMsRdpClient_0002 + { + controlCloseCanProceed = 0, + controlCloseWaitForEvents = 1 + } + ControlCloseStatus; + + typedef [public] unsigned __int3264 UINT_PTR; + typedef [public] __int3264 LONG_PTR; + + [uuid(336D5562-EFA8-482E-8CB3-C5C0FC7A7DB6)] + dispinterface IMsTscAxEvents + { + properties: + + methods: + [id(0x00000001)] void OnConnecting(); + [id(0x00000002)] void OnConnected(); + [id(0x00000003)] void OnLoginComplete(); + [id(0x00000004)] void OnDisconnected([in] long discReason); + [id(0x00000005)] void OnEnterFullScreenMode(); + [id(0x00000006)] void OnLeaveFullScreenMode(); + [id(0x00000007)] void OnChannelReceivedData([in] BSTR chanName, [in] BSTR data); + [id(0x00000008)] void OnRequestGoFullScreen(); + [id(0x00000009)] void OnRequestLeaveFullScreen(); + [id(0x0000000a)] void OnFatalError([in] long errorCode); + [id(0x0000000b)] void OnWarning([in] long warningCode); + [id(0x0000000c)] void OnRemoteDesktopSizeChange([in] long width, [in] long height); + [id(0x0000000d)] void OnIdleTimeoutNotification(); + [id(0x0000000e)] void OnRequestContainerMinimize(); + [id(0x0000000f)] void OnConfirmClose([out, retval] VARIANT_BOOL * pfAllowClose); + [id(0x00000010)] void OnReceivedTSPublicKey([in] BSTR publicKey, [out, retval] VARIANT_BOOL * pfContinueLogon); + [id(0x00000011)] void OnAutoReconnecting([in] long disconnectReason, [in] long attemptCount, [out, retval] AutoReconnectContinueState * pArcContinueStatus); + [id(0x00000012)] void OnAuthenticationWarningDisplayed(); + [id(0x00000013)] void OnAuthenticationWarningDismissed(); + }; + + [ +#ifdef MSTSCLIB_REDIST_ + uuid(327BB5CD-834E-4400-AEF2-B30E15E5D682), +#else + uuid(8C11EFAE-92C3-11D1-BC1E-00C04FA31489), +#endif + dual, + oleautomation + ] + interface IMsTscAx: IDispatch + { + [id(0x00000001), propput] HRESULT Server([in] BSTR pServer); + [id(0x00000001), propget] HRESULT Server([out, retval] BSTR * pServer); + [id(0x00000002), propput] HRESULT Domain([in] BSTR pDomain); + [id(0x00000002), propget] HRESULT Domain([out, retval] BSTR * pDomain); + [id(0x00000003), propput] HRESULT UserName([in] BSTR pUserName); + [id(0x00000003), propget] HRESULT UserName([out, retval] BSTR * pUserName); + [id(0x00000004), propput] HRESULT DisconnectedText([in] BSTR pDisconnectedText); + [id(0x00000004), propget] HRESULT DisconnectedText([out, retval] BSTR * pDisconnectedText); + [id(0x00000005), propput] HRESULT ConnectingText([in] BSTR pConnectingText); + [id(0x00000005), propget] HRESULT ConnectingText([out, retval] BSTR * pConnectingText); + [id(0x00000006), propget] HRESULT Connected([out, retval] short * pIsConnected); + [id(0x0000000c), propput] HRESULT DesktopWidth([in] long pVal); + [id(0x0000000c), propget] HRESULT DesktopWidth([out, retval] long * pVal); + [id(0x0000000d), propput] HRESULT DesktopHeight([in] long pVal); + [id(0x0000000d), propget] HRESULT DesktopHeight([out, retval] long * pVal); + [id(0x00000010), propput] HRESULT StartConnected([in] long pfStartConnected); + [id(0x00000010), propget] HRESULT StartConnected([out, retval] long * pfStartConnected); + [id(0x00000011), propget] HRESULT HorizontalScrollBarVisible([out, retval] long * pfHScrollVisible); + [id(0x00000012), propget] HRESULT VerticalScrollBarVisible([out, retval] long * pfVScrollVisible); + [id(0x00000013), propput] HRESULT FullScreenTitle([in] BSTR rhs); + [id(0x00000014), propget] HRESULT CipherStrength([out, retval] long * pCipherStrength); + [id(0x00000015), propget] HRESULT Version([out, retval] BSTR * pVersion); + [id(0x00000016), propget] HRESULT SecuredSettingsEnabled([out, retval] long * pSecuredSettingsEnabled); + [id(0x00000061), propget] HRESULT SecuredSettings([out, retval] IMsTscSecuredSettings ** ppSecuredSettings); + [id(0x00000062), propget] HRESULT AdvancedSettings([out, retval] IMsTscAdvancedSettings ** ppAdvSettings); + [id(0x00000063), propget, hidden] HRESULT Debugger([out, retval] IMsTscDebug ** ppDebugger); + [id(0x0000001e)] HRESULT Connect(); + [id(0x0000001f)] HRESULT Disconnect(); + [id(0x00000021)] HRESULT CreateVirtualChannels([in] BSTR newVal); + [id(0x00000022)] HRESULT SendOnVirtualChannel([in] BSTR chanName, [in] BSTR ChanData); + }; + + [ + uuid(92B4A539-7115-4B7C-A5A9-E5D9EFC2780A), + dual, + oleautomation + ] + interface IMsRdpClient: IMsTscAx + { + [id(0x00000064), propput] HRESULT ColorDepth([in] long pcolorDepth); + [id(0x00000064), propget] HRESULT ColorDepth([out, retval] long * pcolorDepth); + [id(0x00000065), propget] HRESULT AdvancedSettings2([out, retval] IMsRdpClientAdvancedSettings ** ppAdvSettings); + [id(0x00000066), propget] HRESULT SecuredSettings2([out, retval] IMsRdpClientSecuredSettings ** ppSecuredSettings); + [id(0x00000067), propget] HRESULT ExtendedDisconnectReason([out, retval] ExtendedDisconnectReasonCode * pExtendedDisconnectReason); + [id(0x00000068), propput] HRESULT FullScreen([in] VARIANT_BOOL pfFullScreen); + [id(0x00000068), propget] HRESULT FullScreen([out, retval] VARIANT_BOOL * pfFullScreen); + [id(0x00000023)] HRESULT SetVirtualChannelOptions([in] BSTR chanName, [in] long chanOptions); + [id(0x00000024)] HRESULT GetVirtualChannelOptions([in] BSTR chanName, [out, retval] long * pChanOptions); + [id(0x00000025)] HRESULT RequestClose([out, retval] ControlCloseStatus * pCloseStatus); + }; + + [ + uuid(E7E17DC4-3B71-4BA7-A8E6-281FFADCA28F), + dual, + oleautomation + ] + interface IMsRdpClient2: IMsRdpClient + { + [id(0x000000c8), propget] HRESULT AdvancedSettings3([out, retval] IMsRdpClientAdvancedSettings2 ** ppAdvSettings); + [id(0x000000c9), propput] HRESULT ConnectedStatusText([in] BSTR pConnectedStatusText); + [id(0x000000c9), propget] HRESULT ConnectedStatusText([out, retval] BSTR * pConnectedStatusText); + }; + + [ + uuid(91B7CBC5-A72E-4FA0-9300-D647D7E897FF), + dual, + oleautomation + ] + interface IMsRdpClient3: IMsRdpClient2 + { + [id(0x0000012c), propget] HRESULT AdvancedSettings4([out, retval] IMsRdpClientAdvancedSettings3 ** ppAdvSettings); + }; + + [ + uuid(095E0738-D97D-488B-B9F6-DD0E8D66C0DE), + dual, + oleautomation + ] + interface IMsRdpClient4: IMsRdpClient3 + { + [id(0x00000190), propget] HRESULT AdvancedSettings5([out, retval] IMsRdpClientAdvancedSettings4 ** ppAdvSettings5); + }; + + [uuid(C1E6743A-41C1-4A74-832A-0DD06C1C7A0E)] + interface IMsTscNonScriptable: IUnknown + { + [propput] HRESULT ClearTextPassword([in] BSTR rhs); + [propput] HRESULT PortablePassword([in] BSTR pPortablePass); + [propget] HRESULT PortablePassword([out, retval] BSTR * pPortablePass); + [propput] HRESULT PortableSalt([in] BSTR pPortableSalt); + [propget] HRESULT PortableSalt([out, retval] BSTR * pPortableSalt); + [propput] HRESULT BinaryPassword([in] BSTR pBinaryPassword); + [propget] HRESULT BinaryPassword([out, retval] BSTR * pBinaryPassword); + [propput] HRESULT BinarySalt([in] BSTR pSalt); + [propget] HRESULT BinarySalt([out, retval] BSTR * pSalt); + HRESULT ResetPassword(); + }; + + [uuid(2F079C4C-87B2-4AFD-97AB-20CDB43038AE)] + interface IMsRdpClientNonScriptable: IMsTscNonScriptable + { + HRESULT NotifyRedirectDeviceChange([in] UINT_PTR wParam, [in] LONG_PTR lParam); + HRESULT SendKeys([in] long numKeys, [in] VARIANT_BOOL * pbArrayKeyUp, [in] long * plKeyData); + }; + + [uuid(17A5E535-4072-4FA4-AF32-C8D0D47345E9)] + interface IMsRdpClientNonScriptable2: IMsRdpClientNonScriptable + { + [propput] HRESULT UIParentWindowHandle([in] HWND phwndUIParentWindowHandle); + [propget] HRESULT UIParentWindowHandle([out, retval] HWND * phwndUIParentWindowHandle); + }; + + [ + uuid(809945CC-4B3B-4A92-A6B0-DBF9B5F2EF2D), + dual, + oleautomation + ] + interface IMsTscAdvancedSettings: IDispatch + { + [id(0x00000079), propput] HRESULT Compress([in] long pcompress); + [id(0x00000079), propget] HRESULT Compress([out, retval] long * pcompress); + [id(0x0000007a), propput] HRESULT BitmapPeristence([in] long pbitmapPeristence); + [id(0x0000007a), propget] HRESULT BitmapPeristence([out, retval] long * pbitmapPeristence); + [id(0x000000a1), propput] HRESULT allowBackgroundInput([in] long pallowBackgroundInput); + [id(0x000000a1), propget] HRESULT allowBackgroundInput([out, retval] long * pallowBackgroundInput); + [id(0x000000a2), propput] HRESULT KeyBoardLayoutStr([in] BSTR rhs); + [id(0x000000aa), propput] HRESULT PluginDlls([in] BSTR rhs); + [id(0x000000ab), propput] HRESULT IconFile([in] BSTR rhs); + [id(0x000000ac), propput] HRESULT IconIndex([in] long rhs); + [id(0x000000ad), propput] HRESULT ContainerHandledFullScreen([in] long pContainerHandledFullScreen); + [id(0x000000ad), propget] HRESULT ContainerHandledFullScreen([out, retval] long * pContainerHandledFullScreen); + [id(0x000000ae), propput] HRESULT DisableRdpdr([in] long pDisableRdpdr); + [id(0x000000ae), propget] HRESULT DisableRdpdr([out, retval] long * pDisableRdpdr); + }; + + [ + uuid(3C65B4AB-12B3-465B-ACD4-B8DAD3BFF9E2), + dual, + oleautomation + ] + interface IMsRdpClientAdvancedSettings: IMsTscAdvancedSettings + { + [id(0x00000065), propput] HRESULT SmoothScroll([in] long psmoothScroll); + [id(0x00000065), propget] HRESULT SmoothScroll([out, retval] long * psmoothScroll); + [id(0x00000066), propput] HRESULT AcceleratorPassthrough([in] long pacceleratorPassthrough); + [id(0x00000066), propget] HRESULT AcceleratorPassthrough([out, retval] long * pacceleratorPassthrough); + [id(0x00000067), propput] HRESULT ShadowBitmap([in] long pshadowBitmap); + [id(0x00000067), propget] HRESULT ShadowBitmap([out, retval] long * pshadowBitmap); + [id(0x00000068), propput] HRESULT TransportType([in] long ptransportType); + [id(0x00000068), propget] HRESULT TransportType([out, retval] long * ptransportType); + [id(0x00000069), propput] HRESULT SasSequence([in] long psasSequence); + [id(0x00000069), propget] HRESULT SasSequence([out, retval] long * psasSequence); + [id(0x0000006a), propput] HRESULT EncryptionEnabled([in] long pencryptionEnabled); + [id(0x0000006a), propget] HRESULT EncryptionEnabled([out, retval] long * pencryptionEnabled); + [id(0x0000006b), propput] HRESULT DedicatedTerminal([in] long pdedicatedTerminal); + [id(0x0000006b), propget] HRESULT DedicatedTerminal([out, retval] long * pdedicatedTerminal); + [id(0x0000006c), propput] HRESULT RDPPort([in] long prdpPort); + [id(0x0000006c), propget] HRESULT RDPPort([out, retval] long * prdpPort); + [id(0x0000006d), propput] HRESULT EnableMouse([in] long penableMouse); + [id(0x0000006d), propget] HRESULT EnableMouse([out, retval] long * penableMouse); + [id(0x0000006e), propput] HRESULT DisableCtrlAltDel([in] long pdisableCtrlAltDel); + [id(0x0000006e), propget] HRESULT DisableCtrlAltDel([out, retval] long * pdisableCtrlAltDel); + [id(0x0000006f), propput] HRESULT EnableWindowsKey([in] long penableWindowsKey); + [id(0x0000006f), propget] HRESULT EnableWindowsKey([out, retval] long * penableWindowsKey); + [id(0x00000070), propput] HRESULT DoubleClickDetect([in] long pdoubleClickDetect); + [id(0x00000070), propget] HRESULT DoubleClickDetect([out, retval] long * pdoubleClickDetect); + [id(0x00000071), propput] HRESULT MaximizeShell([in] long pmaximizeShell); + [id(0x00000071), propget] HRESULT MaximizeShell([out, retval] long * pmaximizeShell); + [id(0x00000072), propput] HRESULT HotKeyFullScreen([in] long photKeyFullScreen); + [id(0x00000072), propget] HRESULT HotKeyFullScreen([out, retval] long * photKeyFullScreen); + [id(0x00000073), propput] HRESULT HotKeyCtrlEsc([in] long photKeyCtrlEsc); + [id(0x00000073), propget] HRESULT HotKeyCtrlEsc([out, retval] long * photKeyCtrlEsc); + [id(0x00000074), propput] HRESULT HotKeyAltEsc([in] long photKeyAltEsc); + [id(0x00000074), propget] HRESULT HotKeyAltEsc([out, retval] long * photKeyAltEsc); + [id(0x00000075), propput] HRESULT HotKeyAltTab([in] long photKeyAltTab); + [id(0x00000075), propget] HRESULT HotKeyAltTab([out, retval] long * photKeyAltTab); + [id(0x00000076), propput] HRESULT HotKeyAltShiftTab([in] long photKeyAltShiftTab); + [id(0x00000076), propget] HRESULT HotKeyAltShiftTab([out, retval] long * photKeyAltShiftTab); + [id(0x00000077), propput] HRESULT HotKeyAltSpace([in] long photKeyAltSpace); + [id(0x00000077), propget] HRESULT HotKeyAltSpace([out, retval] long * photKeyAltSpace); + [id(0x00000078), propput] HRESULT HotKeyCtrlAltDel([in] long photKeyCtrlAltDel); + [id(0x00000078), propget] HRESULT HotKeyCtrlAltDel([out, retval] long * photKeyCtrlAltDel); + [id(0x0000007b), propput] HRESULT orderDrawThreshold([in] long porderDrawThreshold); + [id(0x0000007b), propget] HRESULT orderDrawThreshold([out, retval] long * porderDrawThreshold); + [id(0x0000007c), propput] HRESULT BitmapCacheSize([in] long pbitmapCacheSize); + [id(0x0000007c), propget] HRESULT BitmapCacheSize([out, retval] long * pbitmapCacheSize); + [id(0x0000007d), propput] HRESULT BitmapVirtualCacheSize([in] long pbitmapVirtualCacheSize); + [id(0x0000007d), propget] HRESULT BitmapVirtualCacheSize([out, retval] long * pbitmapVirtualCacheSize); + [id(0x000000af), propput] HRESULT ScaleBitmapCachesByBPP([in] long pbScale); + [id(0x000000af), propget] HRESULT ScaleBitmapCachesByBPP([out, retval] long * pbScale); + [id(0x0000007e), propput] HRESULT NumBitmapCaches([in] long pnumBitmapCaches); + [id(0x0000007e), propget] HRESULT NumBitmapCaches([out, retval] long * pnumBitmapCaches); + [id(0x0000007f), propput] HRESULT CachePersistenceActive([in] long pcachePersistenceActive); + [id(0x0000007f), propget] HRESULT CachePersistenceActive([out, retval] long * pcachePersistenceActive); + [id(0x0000008a), propput] HRESULT PersistCacheDirectory([in] BSTR rhs); + [id(0x0000009c), propput] HRESULT brushSupportLevel([in] long pbrushSupportLevel); + [id(0x0000009c), propget] HRESULT brushSupportLevel([out, retval] long * pbrushSupportLevel); + [id(0x0000009d), propput] HRESULT minInputSendInterval([in] long pminInputSendInterval); + [id(0x0000009d), propget] HRESULT minInputSendInterval([out, retval] long * pminInputSendInterval); + [id(0x0000009e), propput] HRESULT InputEventsAtOnce([in] long pinputEventsAtOnce); + [id(0x0000009e), propget] HRESULT InputEventsAtOnce([out, retval] long * pinputEventsAtOnce); + [id(0x0000009f), propput] HRESULT maxEventCount([in] long pmaxEventCount); + [id(0x0000009f), propget] HRESULT maxEventCount([out, retval] long * pmaxEventCount); + [id(0x000000a0), propput] HRESULT keepAliveInterval([in] long pkeepAliveInterval); + [id(0x000000a0), propget] HRESULT keepAliveInterval([out, retval] long * pkeepAliveInterval); + [id(0x000000a3), propput] HRESULT shutdownTimeout([in] long pshutdownTimeout); + [id(0x000000a3), propget] HRESULT shutdownTimeout([out, retval] long * pshutdownTimeout); + [id(0x000000a4), propput] HRESULT overallConnectionTimeout([in] long poverallConnectionTimeout); + [id(0x000000a4), propget] HRESULT overallConnectionTimeout([out, retval] long * poverallConnectionTimeout); + [id(0x000000a5), propput] HRESULT singleConnectionTimeout([in] long psingleConnectionTimeout); + [id(0x000000a5), propget] HRESULT singleConnectionTimeout([out, retval] long * psingleConnectionTimeout); + [id(0x000000a6), propput] HRESULT KeyboardType([in] long pkeyboardType); + [id(0x000000a6), propget] HRESULT KeyboardType([out, retval] long * pkeyboardType); + [id(0x000000a7), propput] HRESULT KeyboardSubType([in] long pkeyboardSubType); + [id(0x000000a7), propget] HRESULT KeyboardSubType([out, retval] long * pkeyboardSubType); + [id(0x000000a8), propput] HRESULT KeyboardFunctionKey([in] long pkeyboardFunctionKey); + [id(0x000000a8), propget] HRESULT KeyboardFunctionKey([out, retval] long * pkeyboardFunctionKey); + [id(0x000000a9), propput] HRESULT WinceFixedPalette([in] long pwinceFixedPalette); + [id(0x000000a9), propget] HRESULT WinceFixedPalette([out, retval] long * pwinceFixedPalette); + [id(0x000000b2), propput] HRESULT ConnectToServerConsole([in] VARIANT_BOOL pConnectToConsole); + [id(0x000000b2), propget] HRESULT ConnectToServerConsole([out, retval] VARIANT_BOOL * pConnectToConsole); + [id(0x000000b6), propput] HRESULT BitmapPersistence([in] long pbitmapPersistence); + [id(0x000000b6), propget] HRESULT BitmapPersistence([out, retval] long * pbitmapPersistence); + [id(0x000000b7), propput] HRESULT MinutesToIdleTimeout([in] long pminutesToIdleTimeout); + [id(0x000000b7), propget] HRESULT MinutesToIdleTimeout([out, retval] long * pminutesToIdleTimeout); + [id(0x000000b8), propput] HRESULT SmartSizing([in] VARIANT_BOOL pfSmartSizing); + [id(0x000000b8), propget] HRESULT SmartSizing([out, retval] VARIANT_BOOL * pfSmartSizing); + [id(0x000000b9), propput] HRESULT RdpdrLocalPrintingDocName([in] BSTR pLocalPrintingDocName); + [id(0x000000b9), propget] HRESULT RdpdrLocalPrintingDocName([out, retval] BSTR * pLocalPrintingDocName); + [id(0x000000c9), propput] HRESULT RdpdrClipCleanTempDirString([in] BSTR clipCleanTempDirString); + [id(0x000000c9), propget] HRESULT RdpdrClipCleanTempDirString([out, retval] BSTR * clipCleanTempDirString); + [id(0x000000ca), propput] HRESULT RdpdrClipPasteInfoString([in] BSTR clipPasteInfoString); + [id(0x000000ca), propget] HRESULT RdpdrClipPasteInfoString([out, retval] BSTR * clipPasteInfoString); + [id(0x000000ba), propput] HRESULT ClearTextPassword([in] BSTR rhs); + [id(0x000000bb), propput] HRESULT DisplayConnectionBar([in] VARIANT_BOOL pDisplayConnectionBar); + [id(0x000000bb), propget] HRESULT DisplayConnectionBar([out, retval] VARIANT_BOOL * pDisplayConnectionBar); + [id(0x000000bc), propput] HRESULT PinConnectionBar([in] VARIANT_BOOL pPinConnectionBar); + [id(0x000000bc), propget] HRESULT PinConnectionBar([out, retval] VARIANT_BOOL * pPinConnectionBar); + [id(0x000000bd), propput] HRESULT GrabFocusOnConnect([in] VARIANT_BOOL pfGrabFocusOnConnect); + [id(0x000000bd), propget] HRESULT GrabFocusOnConnect([out, retval] VARIANT_BOOL * pfGrabFocusOnConnect); + [id(0x000000be), propput] HRESULT LoadBalanceInfo([in] BSTR pLBInfo); + [id(0x000000be), propget] HRESULT LoadBalanceInfo([out, retval] BSTR * pLBInfo); + [id(0x000000bf), propput] HRESULT RedirectDrives([in] VARIANT_BOOL pRedirectDrives); + [id(0x000000bf), propget] HRESULT RedirectDrives([out, retval] VARIANT_BOOL * pRedirectDrives); + [id(0x000000c0), propput] HRESULT RedirectPrinters([in] VARIANT_BOOL pRedirectPrinters); + [id(0x000000c0), propget] HRESULT RedirectPrinters([out, retval] VARIANT_BOOL * pRedirectPrinters); + [id(0x000000c1), propput] HRESULT RedirectPorts([in] VARIANT_BOOL pRedirectPorts); + [id(0x000000c1), propget] HRESULT RedirectPorts([out, retval] VARIANT_BOOL * pRedirectPorts); + [id(0x000000c2), propput] HRESULT RedirectSmartCards([in] VARIANT_BOOL pRedirectSmartCards); + [id(0x000000c2), propget] HRESULT RedirectSmartCards([out, retval] VARIANT_BOOL * pRedirectSmartCards); + [id(0x000000c3), propput] HRESULT BitmapVirtualCache16BppSize([in] long pBitmapVirtualCache16BppSize); + [id(0x000000c3), propget] HRESULT BitmapVirtualCache16BppSize([out, retval] long * pBitmapVirtualCache16BppSize); + [id(0x000000c4), propput] HRESULT BitmapVirtualCache24BppSize([in] long pBitmapVirtualCache24BppSize); + [id(0x000000c4), propget] HRESULT BitmapVirtualCache24BppSize([out, retval] long * pBitmapVirtualCache24BppSize); + [id(0x000000c8), propput] HRESULT PerformanceFlags([in] long pDisableList); + [id(0x000000c8), propget] HRESULT PerformanceFlags([out, retval] long * pDisableList); + [id(0x000000cb), propput] HRESULT ConnectWithEndpoint([in] VARIANT * rhs); + [id(0x000000cc), propput] HRESULT NotifyTSPublicKey([in] VARIANT_BOOL pfNotify); + [id(0x000000cc), propget] HRESULT NotifyTSPublicKey([out, retval] VARIANT_BOOL * pfNotify); + }; + + [ + uuid(9AC42117-2B76-4320-AA44-0E616AB8437B), + dual, + oleautomation + ] + interface IMsRdpClientAdvancedSettings2: IMsRdpClientAdvancedSettings + { + [id(0x000000cd), propget] HRESULT CanAutoReconnect([out, retval] VARIANT_BOOL * pfCanAutoReconnect); + [id(0x000000ce), propput] HRESULT EnableAutoReconnect([in] VARIANT_BOOL pfEnableAutoReconnect); + [id(0x000000ce), propget] HRESULT EnableAutoReconnect([out, retval] VARIANT_BOOL * pfEnableAutoReconnect); + [id(0x000000cf), propput] HRESULT MaxReconnectAttempts([in] long pMaxReconnectAttempts); + [id(0x000000cf), propget] HRESULT MaxReconnectAttempts([out, retval] long * pMaxReconnectAttempts); + }; + + [ + uuid(19CD856B-C542-4C53-ACEE-F127E3BE1A59), + dual, + oleautomation + ] + interface IMsRdpClientAdvancedSettings3: IMsRdpClientAdvancedSettings2 + { + [id(0x000000d2), propput] HRESULT ConnectionBarShowMinimizeButton([in] VARIANT_BOOL pfShowMinimize); + [id(0x000000d2), propget] HRESULT ConnectionBarShowMinimizeButton([out, retval] VARIANT_BOOL * pfShowMinimize); + [id(0x000000d3), propput] HRESULT ConnectionBarShowRestoreButton([in] VARIANT_BOOL pfShowRestore); + [id(0x000000d3), propget] HRESULT ConnectionBarShowRestoreButton([out, retval] VARIANT_BOOL * pfShowRestore); + }; + + [ + uuid(FBA7F64E-7345-4405-AE50-FA4A763DC0DE), + dual, + oleautomation + ] + interface IMsRdpClientAdvancedSettings4: IMsRdpClientAdvancedSettings3 + { + [id(0x000000d4), propput] HRESULT AuthenticationLevel([in] unsigned int puiAuthLevel); + [id(0x000000d4), propget] HRESULT AuthenticationLevel([out, retval] unsigned int * puiAuthLevel); + }; + + [ + uuid(C9D65442-A0F9-45B2-8F73-D61D2DB8CBB6), + dual, + oleautomation + ] + interface IMsTscSecuredSettings: IDispatch + { + [id(0x00000001), propput] HRESULT StartProgram([in] BSTR pStartProgram); + [id(0x00000001), propget] HRESULT StartProgram([out, retval] BSTR * pStartProgram); + [id(0x00000002), propput] HRESULT WorkDir([in] BSTR pWorkDir); + [id(0x00000002), propget] HRESULT WorkDir([out, retval] BSTR * pWorkDir); + [id(0x00000003), propput] HRESULT FullScreen([in] long pfFullScreen); + [id(0x00000003), propget] HRESULT FullScreen([out, retval] long * pfFullScreen); + }; + + [ + uuid(605BEFCF-39C1-45CC-A811-068FB7BE346D), + dual, + oleautomation + ] + interface IMsRdpClientSecuredSettings: IMsTscSecuredSettings + { + [id(0x00000004), propput] HRESULT KeyboardHookMode([in] long pkeyboardHookMode); + [id(0x00000004), propget] HRESULT KeyboardHookMode([out, retval] long * pkeyboardHookMode); + [id(0x00000005), propput] HRESULT AudioRedirectionMode([in] long pAudioRedirectionMode); + [id(0x00000005), propget] HRESULT AudioRedirectionMode([out, retval] long * pAudioRedirectionMode); + }; + + [ + uuid(209D0EB9-6254-47B1-9033-A98DAE55BB27), + hidden, + dual, + oleautomation + ] + interface IMsTscDebug: IDispatch + { + [id(0x000000c8), propput] HRESULT HatchBitmapPDU([in] long phatchBitmapPDU); + [id(0x000000c8), propget] HRESULT HatchBitmapPDU([out, retval] long * phatchBitmapPDU); + [id(0x000000c9), propput] HRESULT HatchSSBOrder([in] long phatchSSBOrder); + [id(0x000000c9), propget] HRESULT HatchSSBOrder([out, retval] long * phatchSSBOrder); + [id(0x000000ca), propput] HRESULT HatchMembltOrder([in] long phatchMembltOrder); + [id(0x000000ca), propget] HRESULT HatchMembltOrder([out, retval] long * phatchMembltOrder); + [id(0x000000cb), propput] HRESULT HatchIndexPDU([in] long phatchIndexPDU); + [id(0x000000cb), propget] HRESULT HatchIndexPDU([out, retval] long * phatchIndexPDU); + [id(0x000000cc), propput] HRESULT LabelMemblt([in] long plabelMemblt); + [id(0x000000cc), propget] HRESULT LabelMemblt([out, retval] long * plabelMemblt); + [id(0x000000cd), propput] HRESULT BitmapCacheMonitor([in] long pbitmapCacheMonitor); + [id(0x000000cd), propget] HRESULT BitmapCacheMonitor([out, retval] long * pbitmapCacheMonitor); + [id(0x000000ce), propput] HRESULT MallocFailuresPercent([in] long pmallocFailuresPercent); + [id(0x000000ce), propget] HRESULT MallocFailuresPercent([out, retval] long * pmallocFailuresPercent); + [id(0x000000cf), propput] HRESULT MallocHugeFailuresPercent([in] long pmallocHugeFailuresPercent); + [id(0x000000cf), propget] HRESULT MallocHugeFailuresPercent([out, retval] long * pmallocHugeFailuresPercent); + [id(0x000000d0), propput] HRESULT NetThroughput([in] long NetThroughput); + [id(0x000000d0), propget] HRESULT NetThroughput([out, retval] long * NetThroughput); + [id(0x000000d1), propput] HRESULT CLXCmdLine([in] BSTR pCLXCmdLine); + [id(0x000000d1), propget] HRESULT CLXCmdLine([out, retval] BSTR * pCLXCmdLine); + [id(0x000000d2), propput] HRESULT CLXDll([in] BSTR pCLXDll); + [id(0x000000d2), propget] HRESULT CLXDll([out, retval] BSTR * pCLXDll); + }; + + [ +#ifdef MSTSCLIB_REDIST_ + uuid(1FB464C8-09BB-4017-A2F5-EB742F04392F) +#else + uuid(A41A4187-5A86-4E26-B40A-856F9035D9CB) +#endif + ] + coclass MsTscAx + { + interface IMsRdpClient; + [default] interface IMsTscAx; + [default, source] dispinterface IMsTscAxEvents; + interface IMsTscNonScriptable; + interface IMsRdpClientNonScriptable; + }; + + [ +#ifdef MSTSCLIB_REDIST_ + uuid(791FA017-2DE3-492E-ACC5-53C67A2B94D0) +#else + uuid(7CACBD7B-0D99-468F-AC33-22E495C0AFE5) +#endif + ] + coclass MsRdpClient + { + [default] interface IMsRdpClient; + interface IMsTscAx; + [default, source] dispinterface IMsTscAxEvents; + interface IMsTscNonScriptable; + interface IMsRdpClientNonScriptable; + }; + + [ +#ifdef MSTSCLIB_REDIST_ + uuid(9059F30F-4EB1-4BD2-9FDC-36F43A218F4A) +#else + uuid(3523C2FB-4031-44E4-9A3B-F1E94986EE7F) +#endif + ] + coclass MsRdpClient2 + { + [default] interface IMsRdpClient2; + interface IMsRdpClient; + interface IMsTscAx; + [default, source] dispinterface IMsTscAxEvents; + interface IMsTscNonScriptable; + interface IMsRdpClientNonScriptable; + }; + + [ +#ifdef MSTSCLIB_REDIST_ + uuid(7584C670-2274-4EFB-B00B-D6AABA6D3850) +#else + uuid(ACE575FD-1FCF-4074-9401-EBAB990FA9DE) +#endif + ] + coclass MsRdpClient3 + { + [default] interface IMsRdpClient3; + interface IMsRdpClient2; + interface IMsRdpClient; + interface IMsTscAx; + [default, source] dispinterface IMsTscAxEvents; + interface IMsTscNonScriptable; + interface IMsRdpClientNonScriptable; + }; + + [uuid(6AE29350-321B-42BE-BBE5-12FB5270C0DE)] + coclass MsRdpClient4 + { + [default] interface IMsRdpClient4; + interface IMsRdpClient3; + interface IMsRdpClient2; + interface IMsRdpClient; + interface IMsTscAx; + [default, source] dispinterface IMsTscAxEvents; + interface IMsTscNonScriptable; + interface IMsRdpClientNonScriptable; + interface IMsRdpClientNonScriptable2; + }; + +}; + +// EOF diff --git a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib.rc b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib.rc index a187007a61b..fa268c7e9ea 100644 --- a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib.rc +++ b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib.rc @@ -1,3 +1,3 @@ -#define TYPELIB_RESOURCEID__ 1 -#include "./typelib.rh" -// EOF +#define TYPELIB_RESOURCEID__ 1 +#include "./typelib.rh" +// EOF diff --git a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_h.h b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_h.h index c49476ba32f..b2166643f30 100644 --- a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_h.h +++ b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_h.h @@ -1,8946 +1,8946 @@ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 7.00.0493 */ -/* at Sun Aug 13 16:46:06 2006 - */ -/* Compiler settings for .\mstsclib.idl: - Oicf, W1, Zp8, env=Win32 (32b run) - protocol : dce , ms_ext, c_ext, robust - error checks: allocation ref bounds_check enum stub_data - VC __declspec() decoration level: - __declspec(uuid()), __declspec(selectany), __declspec(novtable) - DECLSPEC_UUID(), MIDL_INTERFACE() -*/ -//@@MIDL_FILE_HEADING( ) - -#pragma warning( disable: 4049 ) /* more than 64k source lines */ - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 475 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif // __RPCNDR_H_VERSION__ - - -#ifndef __mstsclib_h_h__ -#define __mstsclib_h_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __IMsTscAxEvents_FWD_DEFINED__ -#define __IMsTscAxEvents_FWD_DEFINED__ -typedef interface IMsTscAxEvents IMsTscAxEvents; -#endif /* __IMsTscAxEvents_FWD_DEFINED__ */ - - -#ifndef __IMsTscAx_FWD_DEFINED__ -#define __IMsTscAx_FWD_DEFINED__ -typedef interface IMsTscAx IMsTscAx; -#endif /* __IMsTscAx_FWD_DEFINED__ */ - - -#ifndef __IMsRdpClient_FWD_DEFINED__ -#define __IMsRdpClient_FWD_DEFINED__ -typedef interface IMsRdpClient IMsRdpClient; -#endif /* __IMsRdpClient_FWD_DEFINED__ */ - - -#ifndef __IMsRdpClient2_FWD_DEFINED__ -#define __IMsRdpClient2_FWD_DEFINED__ -typedef interface IMsRdpClient2 IMsRdpClient2; -#endif /* __IMsRdpClient2_FWD_DEFINED__ */ - - -#ifndef __IMsRdpClient3_FWD_DEFINED__ -#define __IMsRdpClient3_FWD_DEFINED__ -typedef interface IMsRdpClient3 IMsRdpClient3; -#endif /* __IMsRdpClient3_FWD_DEFINED__ */ - - -#ifndef __IMsRdpClient4_FWD_DEFINED__ -#define __IMsRdpClient4_FWD_DEFINED__ -typedef interface IMsRdpClient4 IMsRdpClient4; -#endif /* __IMsRdpClient4_FWD_DEFINED__ */ - - -#ifndef __IMsTscNonScriptable_FWD_DEFINED__ -#define __IMsTscNonScriptable_FWD_DEFINED__ -typedef interface IMsTscNonScriptable IMsTscNonScriptable; -#endif /* __IMsTscNonScriptable_FWD_DEFINED__ */ - - -#ifndef __IMsRdpClientNonScriptable_FWD_DEFINED__ -#define __IMsRdpClientNonScriptable_FWD_DEFINED__ -typedef interface IMsRdpClientNonScriptable IMsRdpClientNonScriptable; -#endif /* __IMsRdpClientNonScriptable_FWD_DEFINED__ */ - - -#ifndef __IMsRdpClientNonScriptable2_FWD_DEFINED__ -#define __IMsRdpClientNonScriptable2_FWD_DEFINED__ -typedef interface IMsRdpClientNonScriptable2 IMsRdpClientNonScriptable2; -#endif /* __IMsRdpClientNonScriptable2_FWD_DEFINED__ */ - - -#ifndef __IMsTscAdvancedSettings_FWD_DEFINED__ -#define __IMsTscAdvancedSettings_FWD_DEFINED__ -typedef interface IMsTscAdvancedSettings IMsTscAdvancedSettings; -#endif /* __IMsTscAdvancedSettings_FWD_DEFINED__ */ - - -#ifndef __IMsRdpClientAdvancedSettings_FWD_DEFINED__ -#define __IMsRdpClientAdvancedSettings_FWD_DEFINED__ -typedef interface IMsRdpClientAdvancedSettings IMsRdpClientAdvancedSettings; -#endif /* __IMsRdpClientAdvancedSettings_FWD_DEFINED__ */ - - -#ifndef __IMsRdpClientAdvancedSettings2_FWD_DEFINED__ -#define __IMsRdpClientAdvancedSettings2_FWD_DEFINED__ -typedef interface IMsRdpClientAdvancedSettings2 IMsRdpClientAdvancedSettings2; -#endif /* __IMsRdpClientAdvancedSettings2_FWD_DEFINED__ */ - - -#ifndef __IMsRdpClientAdvancedSettings3_FWD_DEFINED__ -#define __IMsRdpClientAdvancedSettings3_FWD_DEFINED__ -typedef interface IMsRdpClientAdvancedSettings3 IMsRdpClientAdvancedSettings3; -#endif /* __IMsRdpClientAdvancedSettings3_FWD_DEFINED__ */ - - -#ifndef __IMsRdpClientAdvancedSettings4_FWD_DEFINED__ -#define __IMsRdpClientAdvancedSettings4_FWD_DEFINED__ -typedef interface IMsRdpClientAdvancedSettings4 IMsRdpClientAdvancedSettings4; -#endif /* __IMsRdpClientAdvancedSettings4_FWD_DEFINED__ */ - - -#ifndef __IMsTscSecuredSettings_FWD_DEFINED__ -#define __IMsTscSecuredSettings_FWD_DEFINED__ -typedef interface IMsTscSecuredSettings IMsTscSecuredSettings; -#endif /* __IMsTscSecuredSettings_FWD_DEFINED__ */ - - -#ifndef __IMsRdpClientSecuredSettings_FWD_DEFINED__ -#define __IMsRdpClientSecuredSettings_FWD_DEFINED__ -typedef interface IMsRdpClientSecuredSettings IMsRdpClientSecuredSettings; -#endif /* __IMsRdpClientSecuredSettings_FWD_DEFINED__ */ - - -#ifndef __IMsTscDebug_FWD_DEFINED__ -#define __IMsTscDebug_FWD_DEFINED__ -typedef interface IMsTscDebug IMsTscDebug; -#endif /* __IMsTscDebug_FWD_DEFINED__ */ - - -#ifndef __MsTscAx_FWD_DEFINED__ -#define __MsTscAx_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class MsTscAx MsTscAx; -#else -typedef struct MsTscAx MsTscAx; -#endif /* __cplusplus */ - -#endif /* __MsTscAx_FWD_DEFINED__ */ - - -#ifndef __MsRdpClient_FWD_DEFINED__ -#define __MsRdpClient_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class MsRdpClient MsRdpClient; -#else -typedef struct MsRdpClient MsRdpClient; -#endif /* __cplusplus */ - -#endif /* __MsRdpClient_FWD_DEFINED__ */ - - -#ifndef __MsRdpClient2_FWD_DEFINED__ -#define __MsRdpClient2_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class MsRdpClient2 MsRdpClient2; -#else -typedef struct MsRdpClient2 MsRdpClient2; -#endif /* __cplusplus */ - -#endif /* __MsRdpClient2_FWD_DEFINED__ */ - - -#ifndef __MsRdpClient3_FWD_DEFINED__ -#define __MsRdpClient3_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class MsRdpClient3 MsRdpClient3; -#else -typedef struct MsRdpClient3 MsRdpClient3; -#endif /* __cplusplus */ - -#endif /* __MsRdpClient3_FWD_DEFINED__ */ - - -#ifndef __MsRdpClient4_FWD_DEFINED__ -#define __MsRdpClient4_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class MsRdpClient4 MsRdpClient4; -#else -typedef struct MsRdpClient4 MsRdpClient4; -#endif /* __cplusplus */ - -#endif /* __MsRdpClient4_FWD_DEFINED__ */ - - -#ifdef __cplusplus -extern "C"{ -#endif - - - -#ifndef __MSTSCLib_LIBRARY_DEFINED__ -#define __MSTSCLib_LIBRARY_DEFINED__ - -/* library MSTSCLib */ -/* [version][uuid] */ - - - - - - - - - - - - - - - - - - -typedef /* [public][public][public] */ -enum __MIDL___MIDL_itf_mstsax_0275_0001 - { autoReconnectContinueAutomatic = 0, - autoReconnectContinueStop = 1, - autoReconnectContinueManual = 2 - } AutoReconnectContinueState; - -typedef /* [public][public][public] */ -enum __MIDL_IMsRdpClient_0001 - { exDiscReasonNoInfo = 0, - exDiscReasonAPIInitiatedDisconnect = 1, - exDiscReasonAPIInitiatedLogoff = 2, - exDiscReasonServerIdleTimeout = 3, - exDiscReasonServerLogonTimeout = 4, - exDiscReasonReplacedByOtherConnection = 5, - exDiscReasonOutOfMemory = 6, - exDiscReasonServerDeniedConnection = 7, - exDiscReasonServerDeniedConnectionFips = 8, - exDiscReasonLicenseInternal = 256, - exDiscReasonLicenseNoLicenseServer = 257, - exDiscReasonLicenseNoLicense = 258, - exDiscReasonLicenseErrClientMsg = 259, - exDiscReasonLicenseHwidDoesntMatchLicense = 260, - exDiscReasonLicenseErrClientLicense = 261, - exDiscReasonLicenseCantFinishProtocol = 262, - exDiscReasonLicenseClientEndedProtocol = 263, - exDiscReasonLicenseErrClientEncryption = 264, - exDiscReasonLicenseCantUpgradeLicense = 265, - exDiscReasonLicenseNoRemoteConnections = 266, - exDiscReasonProtocolRangeStart = 4096, - exDiscReasonProtocolRangeEnd = 32767 - } ExtendedDisconnectReasonCode; - -typedef /* [public][public][public] */ -enum __MIDL_IMsRdpClient_0002 - { controlCloseCanProceed = 0, - controlCloseWaitForEvents = 1 - } ControlCloseStatus; - -typedef /* [custom][public] */ unsigned __int3264 UINT_PTR; - -typedef /* [custom][public] */ __int3264 LONG_PTR; - - -EXTERN_C const IID LIBID_MSTSCLib; - -#ifndef __IMsTscAxEvents_DISPINTERFACE_DEFINED__ -#define __IMsTscAxEvents_DISPINTERFACE_DEFINED__ - -/* dispinterface IMsTscAxEvents */ -/* [uuid] */ - - -EXTERN_C const IID DIID_IMsTscAxEvents; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("336D5562-EFA8-482E-8CB3-C5C0FC7A7DB6") - IMsTscAxEvents : public IDispatch - { - }; - -#else /* C style interface */ - - typedef struct IMsTscAxEventsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsTscAxEvents * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsTscAxEvents * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsTscAxEvents * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsTscAxEvents * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsTscAxEvents * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsTscAxEvents * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsTscAxEvents * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - END_INTERFACE - } IMsTscAxEventsVtbl; - - interface IMsTscAxEvents - { - CONST_VTBL struct IMsTscAxEventsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsTscAxEvents_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsTscAxEvents_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsTscAxEvents_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsTscAxEvents_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsTscAxEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsTscAxEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsTscAxEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - -#endif /* __IMsTscAxEvents_DISPINTERFACE_DEFINED__ */ - - -#ifndef __IMsTscAx_INTERFACE_DEFINED__ -#define __IMsTscAx_INTERFACE_DEFINED__ - -/* interface IMsTscAx */ -/* [object][oleautomation][dual][uuid] */ - - -EXTERN_C const IID IID_IMsTscAx; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("8C11EFAE-92C3-11D1-BC1E-00C04FA31489") - IMsTscAx : public IDispatch - { - public: - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Server( - /* [in] */ BSTR pServer) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Server( - /* [retval][out] */ BSTR *pServer) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Domain( - /* [in] */ BSTR pDomain) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Domain( - /* [retval][out] */ BSTR *pDomain) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_UserName( - /* [in] */ BSTR pUserName) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_UserName( - /* [retval][out] */ BSTR *pUserName) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DisconnectedText( - /* [in] */ BSTR pDisconnectedText) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DisconnectedText( - /* [retval][out] */ BSTR *pDisconnectedText) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectingText( - /* [in] */ BSTR pConnectingText) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ConnectingText( - /* [retval][out] */ BSTR *pConnectingText) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Connected( - /* [retval][out] */ short *pIsConnected) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DesktopWidth( - /* [in] */ long pVal) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DesktopWidth( - /* [retval][out] */ long *pVal) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DesktopHeight( - /* [in] */ long pVal) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DesktopHeight( - /* [retval][out] */ long *pVal) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_StartConnected( - /* [in] */ long pfStartConnected) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_StartConnected( - /* [retval][out] */ long *pfStartConnected) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HorizontalScrollBarVisible( - /* [retval][out] */ long *pfHScrollVisible) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_VerticalScrollBarVisible( - /* [retval][out] */ long *pfVScrollVisible) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_FullScreenTitle( - /* [in] */ BSTR rhs) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CipherStrength( - /* [retval][out] */ long *pCipherStrength) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Version( - /* [retval][out] */ BSTR *pVersion) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SecuredSettingsEnabled( - /* [retval][out] */ long *pSecuredSettingsEnabled) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SecuredSettings( - /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AdvancedSettings( - /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings) = 0; - - virtual /* [hidden][propget][id] */ HRESULT STDMETHODCALLTYPE get_Debugger( - /* [retval][out] */ IMsTscDebug **ppDebugger) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE Connect( void) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE Disconnect( void) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE CreateVirtualChannels( - /* [in] */ BSTR newVal) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE SendOnVirtualChannel( - /* [in] */ BSTR chanName, - /* [in] */ BSTR ChanData) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsTscAxVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsTscAx * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsTscAx * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsTscAx * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsTscAx * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsTscAx * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsTscAx * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsTscAx * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Server )( - IMsTscAx * This, - /* [in] */ BSTR pServer); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Server )( - IMsTscAx * This, - /* [retval][out] */ BSTR *pServer); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Domain )( - IMsTscAx * This, - /* [in] */ BSTR pDomain); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Domain )( - IMsTscAx * This, - /* [retval][out] */ BSTR *pDomain); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UserName )( - IMsTscAx * This, - /* [in] */ BSTR pUserName); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )( - IMsTscAx * This, - /* [retval][out] */ BSTR *pUserName); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisconnectedText )( - IMsTscAx * This, - /* [in] */ BSTR pDisconnectedText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisconnectedText )( - IMsTscAx * This, - /* [retval][out] */ BSTR *pDisconnectedText); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectingText )( - IMsTscAx * This, - /* [in] */ BSTR pConnectingText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectingText )( - IMsTscAx * This, - /* [retval][out] */ BSTR *pConnectingText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Connected )( - IMsTscAx * This, - /* [retval][out] */ short *pIsConnected); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopWidth )( - IMsTscAx * This, - /* [in] */ long pVal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopWidth )( - IMsTscAx * This, - /* [retval][out] */ long *pVal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopHeight )( - IMsTscAx * This, - /* [in] */ long pVal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopHeight )( - IMsTscAx * This, - /* [retval][out] */ long *pVal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartConnected )( - IMsTscAx * This, - /* [in] */ long pfStartConnected); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartConnected )( - IMsTscAx * This, - /* [retval][out] */ long *pfStartConnected); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalScrollBarVisible )( - IMsTscAx * This, - /* [retval][out] */ long *pfHScrollVisible); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalScrollBarVisible )( - IMsTscAx * This, - /* [retval][out] */ long *pfVScrollVisible); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreenTitle )( - IMsTscAx * This, - /* [in] */ BSTR rhs); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CipherStrength )( - IMsTscAx * This, - /* [retval][out] */ long *pCipherStrength); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )( - IMsTscAx * This, - /* [retval][out] */ BSTR *pVersion); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettingsEnabled )( - IMsTscAx * This, - /* [retval][out] */ long *pSecuredSettingsEnabled); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings )( - IMsTscAx * This, - /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings )( - IMsTscAx * This, - /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings); - - /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Debugger )( - IMsTscAx * This, - /* [retval][out] */ IMsTscDebug **ppDebugger); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Connect )( - IMsTscAx * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( - IMsTscAx * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateVirtualChannels )( - IMsTscAx * This, - /* [in] */ BSTR newVal); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *SendOnVirtualChannel )( - IMsTscAx * This, - /* [in] */ BSTR chanName, - /* [in] */ BSTR ChanData); - - END_INTERFACE - } IMsTscAxVtbl; - - interface IMsTscAx - { - CONST_VTBL struct IMsTscAxVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsTscAx_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsTscAx_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsTscAx_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsTscAx_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsTscAx_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsTscAx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsTscAx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IMsTscAx_put_Server(This,pServer) \ - ( (This)->lpVtbl -> put_Server(This,pServer) ) - -#define IMsTscAx_get_Server(This,pServer) \ - ( (This)->lpVtbl -> get_Server(This,pServer) ) - -#define IMsTscAx_put_Domain(This,pDomain) \ - ( (This)->lpVtbl -> put_Domain(This,pDomain) ) - -#define IMsTscAx_get_Domain(This,pDomain) \ - ( (This)->lpVtbl -> get_Domain(This,pDomain) ) - -#define IMsTscAx_put_UserName(This,pUserName) \ - ( (This)->lpVtbl -> put_UserName(This,pUserName) ) - -#define IMsTscAx_get_UserName(This,pUserName) \ - ( (This)->lpVtbl -> get_UserName(This,pUserName) ) - -#define IMsTscAx_put_DisconnectedText(This,pDisconnectedText) \ - ( (This)->lpVtbl -> put_DisconnectedText(This,pDisconnectedText) ) - -#define IMsTscAx_get_DisconnectedText(This,pDisconnectedText) \ - ( (This)->lpVtbl -> get_DisconnectedText(This,pDisconnectedText) ) - -#define IMsTscAx_put_ConnectingText(This,pConnectingText) \ - ( (This)->lpVtbl -> put_ConnectingText(This,pConnectingText) ) - -#define IMsTscAx_get_ConnectingText(This,pConnectingText) \ - ( (This)->lpVtbl -> get_ConnectingText(This,pConnectingText) ) - -#define IMsTscAx_get_Connected(This,pIsConnected) \ - ( (This)->lpVtbl -> get_Connected(This,pIsConnected) ) - -#define IMsTscAx_put_DesktopWidth(This,pVal) \ - ( (This)->lpVtbl -> put_DesktopWidth(This,pVal) ) - -#define IMsTscAx_get_DesktopWidth(This,pVal) \ - ( (This)->lpVtbl -> get_DesktopWidth(This,pVal) ) - -#define IMsTscAx_put_DesktopHeight(This,pVal) \ - ( (This)->lpVtbl -> put_DesktopHeight(This,pVal) ) - -#define IMsTscAx_get_DesktopHeight(This,pVal) \ - ( (This)->lpVtbl -> get_DesktopHeight(This,pVal) ) - -#define IMsTscAx_put_StartConnected(This,pfStartConnected) \ - ( (This)->lpVtbl -> put_StartConnected(This,pfStartConnected) ) - -#define IMsTscAx_get_StartConnected(This,pfStartConnected) \ - ( (This)->lpVtbl -> get_StartConnected(This,pfStartConnected) ) - -#define IMsTscAx_get_HorizontalScrollBarVisible(This,pfHScrollVisible) \ - ( (This)->lpVtbl -> get_HorizontalScrollBarVisible(This,pfHScrollVisible) ) - -#define IMsTscAx_get_VerticalScrollBarVisible(This,pfVScrollVisible) \ - ( (This)->lpVtbl -> get_VerticalScrollBarVisible(This,pfVScrollVisible) ) - -#define IMsTscAx_put_FullScreenTitle(This,rhs) \ - ( (This)->lpVtbl -> put_FullScreenTitle(This,rhs) ) - -#define IMsTscAx_get_CipherStrength(This,pCipherStrength) \ - ( (This)->lpVtbl -> get_CipherStrength(This,pCipherStrength) ) - -#define IMsTscAx_get_Version(This,pVersion) \ - ( (This)->lpVtbl -> get_Version(This,pVersion) ) - -#define IMsTscAx_get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) \ - ( (This)->lpVtbl -> get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) ) - -#define IMsTscAx_get_SecuredSettings(This,ppSecuredSettings) \ - ( (This)->lpVtbl -> get_SecuredSettings(This,ppSecuredSettings) ) - -#define IMsTscAx_get_AdvancedSettings(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings(This,ppAdvSettings) ) - -#define IMsTscAx_get_Debugger(This,ppDebugger) \ - ( (This)->lpVtbl -> get_Debugger(This,ppDebugger) ) - -#define IMsTscAx_Connect(This) \ - ( (This)->lpVtbl -> Connect(This) ) - -#define IMsTscAx_Disconnect(This) \ - ( (This)->lpVtbl -> Disconnect(This) ) - -#define IMsTscAx_CreateVirtualChannels(This,newVal) \ - ( (This)->lpVtbl -> CreateVirtualChannels(This,newVal) ) - -#define IMsTscAx_SendOnVirtualChannel(This,chanName,ChanData) \ - ( (This)->lpVtbl -> SendOnVirtualChannel(This,chanName,ChanData) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMsTscAx_INTERFACE_DEFINED__ */ - - -#ifndef __IMsRdpClient_INTERFACE_DEFINED__ -#define __IMsRdpClient_INTERFACE_DEFINED__ - -/* interface IMsRdpClient */ -/* [object][oleautomation][dual][uuid] */ - - -EXTERN_C const IID IID_IMsRdpClient; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("92B4A539-7115-4B7C-A5A9-E5D9EFC2780A") - IMsRdpClient : public IMsTscAx - { - public: - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ColorDepth( - /* [in] */ long pcolorDepth) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ColorDepth( - /* [retval][out] */ long *pcolorDepth) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AdvancedSettings2( - /* [retval][out] */ IMsRdpClientAdvancedSettings **ppAdvSettings) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SecuredSettings2( - /* [retval][out] */ IMsRdpClientSecuredSettings **ppSecuredSettings) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtendedDisconnectReason( - /* [retval][out] */ ExtendedDisconnectReasonCode *pExtendedDisconnectReason) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_FullScreen( - /* [in] */ VARIANT_BOOL pfFullScreen) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_FullScreen( - /* [retval][out] */ VARIANT_BOOL *pfFullScreen) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetVirtualChannelOptions( - /* [in] */ BSTR chanName, - /* [in] */ long chanOptions) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetVirtualChannelOptions( - /* [in] */ BSTR chanName, - /* [retval][out] */ long *pChanOptions) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE RequestClose( - /* [retval][out] */ ControlCloseStatus *pCloseStatus) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsRdpClientVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsRdpClient * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsRdpClient * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsRdpClient * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsRdpClient * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsRdpClient * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsRdpClient * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsRdpClient * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Server )( - IMsRdpClient * This, - /* [in] */ BSTR pServer); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Server )( - IMsRdpClient * This, - /* [retval][out] */ BSTR *pServer); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Domain )( - IMsRdpClient * This, - /* [in] */ BSTR pDomain); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Domain )( - IMsRdpClient * This, - /* [retval][out] */ BSTR *pDomain); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UserName )( - IMsRdpClient * This, - /* [in] */ BSTR pUserName); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )( - IMsRdpClient * This, - /* [retval][out] */ BSTR *pUserName); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisconnectedText )( - IMsRdpClient * This, - /* [in] */ BSTR pDisconnectedText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisconnectedText )( - IMsRdpClient * This, - /* [retval][out] */ BSTR *pDisconnectedText); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectingText )( - IMsRdpClient * This, - /* [in] */ BSTR pConnectingText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectingText )( - IMsRdpClient * This, - /* [retval][out] */ BSTR *pConnectingText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Connected )( - IMsRdpClient * This, - /* [retval][out] */ short *pIsConnected); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopWidth )( - IMsRdpClient * This, - /* [in] */ long pVal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopWidth )( - IMsRdpClient * This, - /* [retval][out] */ long *pVal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopHeight )( - IMsRdpClient * This, - /* [in] */ long pVal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopHeight )( - IMsRdpClient * This, - /* [retval][out] */ long *pVal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartConnected )( - IMsRdpClient * This, - /* [in] */ long pfStartConnected); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartConnected )( - IMsRdpClient * This, - /* [retval][out] */ long *pfStartConnected); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalScrollBarVisible )( - IMsRdpClient * This, - /* [retval][out] */ long *pfHScrollVisible); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalScrollBarVisible )( - IMsRdpClient * This, - /* [retval][out] */ long *pfVScrollVisible); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreenTitle )( - IMsRdpClient * This, - /* [in] */ BSTR rhs); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CipherStrength )( - IMsRdpClient * This, - /* [retval][out] */ long *pCipherStrength); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )( - IMsRdpClient * This, - /* [retval][out] */ BSTR *pVersion); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettingsEnabled )( - IMsRdpClient * This, - /* [retval][out] */ long *pSecuredSettingsEnabled); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings )( - IMsRdpClient * This, - /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings )( - IMsRdpClient * This, - /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings); - - /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Debugger )( - IMsRdpClient * This, - /* [retval][out] */ IMsTscDebug **ppDebugger); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Connect )( - IMsRdpClient * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( - IMsRdpClient * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateVirtualChannels )( - IMsRdpClient * This, - /* [in] */ BSTR newVal); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *SendOnVirtualChannel )( - IMsRdpClient * This, - /* [in] */ BSTR chanName, - /* [in] */ BSTR ChanData); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ColorDepth )( - IMsRdpClient * This, - /* [in] */ long pcolorDepth); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ColorDepth )( - IMsRdpClient * This, - /* [retval][out] */ long *pcolorDepth); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings2 )( - IMsRdpClient * This, - /* [retval][out] */ IMsRdpClientAdvancedSettings **ppAdvSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings2 )( - IMsRdpClient * This, - /* [retval][out] */ IMsRdpClientSecuredSettings **ppSecuredSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtendedDisconnectReason )( - IMsRdpClient * This, - /* [retval][out] */ ExtendedDisconnectReasonCode *pExtendedDisconnectReason); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )( - IMsRdpClient * This, - /* [in] */ VARIANT_BOOL pfFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )( - IMsRdpClient * This, - /* [retval][out] */ VARIANT_BOOL *pfFullScreen); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetVirtualChannelOptions )( - IMsRdpClient * This, - /* [in] */ BSTR chanName, - /* [in] */ long chanOptions); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetVirtualChannelOptions )( - IMsRdpClient * This, - /* [in] */ BSTR chanName, - /* [retval][out] */ long *pChanOptions); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *RequestClose )( - IMsRdpClient * This, - /* [retval][out] */ ControlCloseStatus *pCloseStatus); - - END_INTERFACE - } IMsRdpClientVtbl; - - interface IMsRdpClient - { - CONST_VTBL struct IMsRdpClientVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsRdpClient_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsRdpClient_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsRdpClient_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsRdpClient_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsRdpClient_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsRdpClient_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsRdpClient_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IMsRdpClient_put_Server(This,pServer) \ - ( (This)->lpVtbl -> put_Server(This,pServer) ) - -#define IMsRdpClient_get_Server(This,pServer) \ - ( (This)->lpVtbl -> get_Server(This,pServer) ) - -#define IMsRdpClient_put_Domain(This,pDomain) \ - ( (This)->lpVtbl -> put_Domain(This,pDomain) ) - -#define IMsRdpClient_get_Domain(This,pDomain) \ - ( (This)->lpVtbl -> get_Domain(This,pDomain) ) - -#define IMsRdpClient_put_UserName(This,pUserName) \ - ( (This)->lpVtbl -> put_UserName(This,pUserName) ) - -#define IMsRdpClient_get_UserName(This,pUserName) \ - ( (This)->lpVtbl -> get_UserName(This,pUserName) ) - -#define IMsRdpClient_put_DisconnectedText(This,pDisconnectedText) \ - ( (This)->lpVtbl -> put_DisconnectedText(This,pDisconnectedText) ) - -#define IMsRdpClient_get_DisconnectedText(This,pDisconnectedText) \ - ( (This)->lpVtbl -> get_DisconnectedText(This,pDisconnectedText) ) - -#define IMsRdpClient_put_ConnectingText(This,pConnectingText) \ - ( (This)->lpVtbl -> put_ConnectingText(This,pConnectingText) ) - -#define IMsRdpClient_get_ConnectingText(This,pConnectingText) \ - ( (This)->lpVtbl -> get_ConnectingText(This,pConnectingText) ) - -#define IMsRdpClient_get_Connected(This,pIsConnected) \ - ( (This)->lpVtbl -> get_Connected(This,pIsConnected) ) - -#define IMsRdpClient_put_DesktopWidth(This,pVal) \ - ( (This)->lpVtbl -> put_DesktopWidth(This,pVal) ) - -#define IMsRdpClient_get_DesktopWidth(This,pVal) \ - ( (This)->lpVtbl -> get_DesktopWidth(This,pVal) ) - -#define IMsRdpClient_put_DesktopHeight(This,pVal) \ - ( (This)->lpVtbl -> put_DesktopHeight(This,pVal) ) - -#define IMsRdpClient_get_DesktopHeight(This,pVal) \ - ( (This)->lpVtbl -> get_DesktopHeight(This,pVal) ) - -#define IMsRdpClient_put_StartConnected(This,pfStartConnected) \ - ( (This)->lpVtbl -> put_StartConnected(This,pfStartConnected) ) - -#define IMsRdpClient_get_StartConnected(This,pfStartConnected) \ - ( (This)->lpVtbl -> get_StartConnected(This,pfStartConnected) ) - -#define IMsRdpClient_get_HorizontalScrollBarVisible(This,pfHScrollVisible) \ - ( (This)->lpVtbl -> get_HorizontalScrollBarVisible(This,pfHScrollVisible) ) - -#define IMsRdpClient_get_VerticalScrollBarVisible(This,pfVScrollVisible) \ - ( (This)->lpVtbl -> get_VerticalScrollBarVisible(This,pfVScrollVisible) ) - -#define IMsRdpClient_put_FullScreenTitle(This,rhs) \ - ( (This)->lpVtbl -> put_FullScreenTitle(This,rhs) ) - -#define IMsRdpClient_get_CipherStrength(This,pCipherStrength) \ - ( (This)->lpVtbl -> get_CipherStrength(This,pCipherStrength) ) - -#define IMsRdpClient_get_Version(This,pVersion) \ - ( (This)->lpVtbl -> get_Version(This,pVersion) ) - -#define IMsRdpClient_get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) \ - ( (This)->lpVtbl -> get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) ) - -#define IMsRdpClient_get_SecuredSettings(This,ppSecuredSettings) \ - ( (This)->lpVtbl -> get_SecuredSettings(This,ppSecuredSettings) ) - -#define IMsRdpClient_get_AdvancedSettings(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings(This,ppAdvSettings) ) - -#define IMsRdpClient_get_Debugger(This,ppDebugger) \ - ( (This)->lpVtbl -> get_Debugger(This,ppDebugger) ) - -#define IMsRdpClient_Connect(This) \ - ( (This)->lpVtbl -> Connect(This) ) - -#define IMsRdpClient_Disconnect(This) \ - ( (This)->lpVtbl -> Disconnect(This) ) - -#define IMsRdpClient_CreateVirtualChannels(This,newVal) \ - ( (This)->lpVtbl -> CreateVirtualChannels(This,newVal) ) - -#define IMsRdpClient_SendOnVirtualChannel(This,chanName,ChanData) \ - ( (This)->lpVtbl -> SendOnVirtualChannel(This,chanName,ChanData) ) - - -#define IMsRdpClient_put_ColorDepth(This,pcolorDepth) \ - ( (This)->lpVtbl -> put_ColorDepth(This,pcolorDepth) ) - -#define IMsRdpClient_get_ColorDepth(This,pcolorDepth) \ - ( (This)->lpVtbl -> get_ColorDepth(This,pcolorDepth) ) - -#define IMsRdpClient_get_AdvancedSettings2(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings2(This,ppAdvSettings) ) - -#define IMsRdpClient_get_SecuredSettings2(This,ppSecuredSettings) \ - ( (This)->lpVtbl -> get_SecuredSettings2(This,ppSecuredSettings) ) - -#define IMsRdpClient_get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) \ - ( (This)->lpVtbl -> get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) ) - -#define IMsRdpClient_put_FullScreen(This,pfFullScreen) \ - ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) ) - -#define IMsRdpClient_get_FullScreen(This,pfFullScreen) \ - ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) ) - -#define IMsRdpClient_SetVirtualChannelOptions(This,chanName,chanOptions) \ - ( (This)->lpVtbl -> SetVirtualChannelOptions(This,chanName,chanOptions) ) - -#define IMsRdpClient_GetVirtualChannelOptions(This,chanName,pChanOptions) \ - ( (This)->lpVtbl -> GetVirtualChannelOptions(This,chanName,pChanOptions) ) - -#define IMsRdpClient_RequestClose(This,pCloseStatus) \ - ( (This)->lpVtbl -> RequestClose(This,pCloseStatus) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMsRdpClient_INTERFACE_DEFINED__ */ - - -#ifndef __IMsRdpClient2_INTERFACE_DEFINED__ -#define __IMsRdpClient2_INTERFACE_DEFINED__ - -/* interface IMsRdpClient2 */ -/* [object][oleautomation][dual][uuid] */ - - -EXTERN_C const IID IID_IMsRdpClient2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("E7E17DC4-3B71-4BA7-A8E6-281FFADCA28F") - IMsRdpClient2 : public IMsRdpClient - { - public: - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AdvancedSettings3( - /* [retval][out] */ IMsRdpClientAdvancedSettings2 **ppAdvSettings) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectedStatusText( - /* [in] */ BSTR pConnectedStatusText) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ConnectedStatusText( - /* [retval][out] */ BSTR *pConnectedStatusText) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsRdpClient2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsRdpClient2 * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsRdpClient2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsRdpClient2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsRdpClient2 * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsRdpClient2 * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsRdpClient2 * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsRdpClient2 * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Server )( - IMsRdpClient2 * This, - /* [in] */ BSTR pServer); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Server )( - IMsRdpClient2 * This, - /* [retval][out] */ BSTR *pServer); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Domain )( - IMsRdpClient2 * This, - /* [in] */ BSTR pDomain); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Domain )( - IMsRdpClient2 * This, - /* [retval][out] */ BSTR *pDomain); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UserName )( - IMsRdpClient2 * This, - /* [in] */ BSTR pUserName); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )( - IMsRdpClient2 * This, - /* [retval][out] */ BSTR *pUserName); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisconnectedText )( - IMsRdpClient2 * This, - /* [in] */ BSTR pDisconnectedText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisconnectedText )( - IMsRdpClient2 * This, - /* [retval][out] */ BSTR *pDisconnectedText); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectingText )( - IMsRdpClient2 * This, - /* [in] */ BSTR pConnectingText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectingText )( - IMsRdpClient2 * This, - /* [retval][out] */ BSTR *pConnectingText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Connected )( - IMsRdpClient2 * This, - /* [retval][out] */ short *pIsConnected); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopWidth )( - IMsRdpClient2 * This, - /* [in] */ long pVal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopWidth )( - IMsRdpClient2 * This, - /* [retval][out] */ long *pVal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopHeight )( - IMsRdpClient2 * This, - /* [in] */ long pVal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopHeight )( - IMsRdpClient2 * This, - /* [retval][out] */ long *pVal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartConnected )( - IMsRdpClient2 * This, - /* [in] */ long pfStartConnected); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartConnected )( - IMsRdpClient2 * This, - /* [retval][out] */ long *pfStartConnected); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalScrollBarVisible )( - IMsRdpClient2 * This, - /* [retval][out] */ long *pfHScrollVisible); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalScrollBarVisible )( - IMsRdpClient2 * This, - /* [retval][out] */ long *pfVScrollVisible); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreenTitle )( - IMsRdpClient2 * This, - /* [in] */ BSTR rhs); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CipherStrength )( - IMsRdpClient2 * This, - /* [retval][out] */ long *pCipherStrength); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )( - IMsRdpClient2 * This, - /* [retval][out] */ BSTR *pVersion); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettingsEnabled )( - IMsRdpClient2 * This, - /* [retval][out] */ long *pSecuredSettingsEnabled); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings )( - IMsRdpClient2 * This, - /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings )( - IMsRdpClient2 * This, - /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings); - - /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Debugger )( - IMsRdpClient2 * This, - /* [retval][out] */ IMsTscDebug **ppDebugger); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Connect )( - IMsRdpClient2 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( - IMsRdpClient2 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateVirtualChannels )( - IMsRdpClient2 * This, - /* [in] */ BSTR newVal); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *SendOnVirtualChannel )( - IMsRdpClient2 * This, - /* [in] */ BSTR chanName, - /* [in] */ BSTR ChanData); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ColorDepth )( - IMsRdpClient2 * This, - /* [in] */ long pcolorDepth); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ColorDepth )( - IMsRdpClient2 * This, - /* [retval][out] */ long *pcolorDepth); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings2 )( - IMsRdpClient2 * This, - /* [retval][out] */ IMsRdpClientAdvancedSettings **ppAdvSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings2 )( - IMsRdpClient2 * This, - /* [retval][out] */ IMsRdpClientSecuredSettings **ppSecuredSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtendedDisconnectReason )( - IMsRdpClient2 * This, - /* [retval][out] */ ExtendedDisconnectReasonCode *pExtendedDisconnectReason); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )( - IMsRdpClient2 * This, - /* [in] */ VARIANT_BOOL pfFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )( - IMsRdpClient2 * This, - /* [retval][out] */ VARIANT_BOOL *pfFullScreen); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetVirtualChannelOptions )( - IMsRdpClient2 * This, - /* [in] */ BSTR chanName, - /* [in] */ long chanOptions); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetVirtualChannelOptions )( - IMsRdpClient2 * This, - /* [in] */ BSTR chanName, - /* [retval][out] */ long *pChanOptions); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *RequestClose )( - IMsRdpClient2 * This, - /* [retval][out] */ ControlCloseStatus *pCloseStatus); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings3 )( - IMsRdpClient2 * This, - /* [retval][out] */ IMsRdpClientAdvancedSettings2 **ppAdvSettings); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectedStatusText )( - IMsRdpClient2 * This, - /* [in] */ BSTR pConnectedStatusText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectedStatusText )( - IMsRdpClient2 * This, - /* [retval][out] */ BSTR *pConnectedStatusText); - - END_INTERFACE - } IMsRdpClient2Vtbl; - - interface IMsRdpClient2 - { - CONST_VTBL struct IMsRdpClient2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsRdpClient2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsRdpClient2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsRdpClient2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsRdpClient2_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsRdpClient2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsRdpClient2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsRdpClient2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IMsRdpClient2_put_Server(This,pServer) \ - ( (This)->lpVtbl -> put_Server(This,pServer) ) - -#define IMsRdpClient2_get_Server(This,pServer) \ - ( (This)->lpVtbl -> get_Server(This,pServer) ) - -#define IMsRdpClient2_put_Domain(This,pDomain) \ - ( (This)->lpVtbl -> put_Domain(This,pDomain) ) - -#define IMsRdpClient2_get_Domain(This,pDomain) \ - ( (This)->lpVtbl -> get_Domain(This,pDomain) ) - -#define IMsRdpClient2_put_UserName(This,pUserName) \ - ( (This)->lpVtbl -> put_UserName(This,pUserName) ) - -#define IMsRdpClient2_get_UserName(This,pUserName) \ - ( (This)->lpVtbl -> get_UserName(This,pUserName) ) - -#define IMsRdpClient2_put_DisconnectedText(This,pDisconnectedText) \ - ( (This)->lpVtbl -> put_DisconnectedText(This,pDisconnectedText) ) - -#define IMsRdpClient2_get_DisconnectedText(This,pDisconnectedText) \ - ( (This)->lpVtbl -> get_DisconnectedText(This,pDisconnectedText) ) - -#define IMsRdpClient2_put_ConnectingText(This,pConnectingText) \ - ( (This)->lpVtbl -> put_ConnectingText(This,pConnectingText) ) - -#define IMsRdpClient2_get_ConnectingText(This,pConnectingText) \ - ( (This)->lpVtbl -> get_ConnectingText(This,pConnectingText) ) - -#define IMsRdpClient2_get_Connected(This,pIsConnected) \ - ( (This)->lpVtbl -> get_Connected(This,pIsConnected) ) - -#define IMsRdpClient2_put_DesktopWidth(This,pVal) \ - ( (This)->lpVtbl -> put_DesktopWidth(This,pVal) ) - -#define IMsRdpClient2_get_DesktopWidth(This,pVal) \ - ( (This)->lpVtbl -> get_DesktopWidth(This,pVal) ) - -#define IMsRdpClient2_put_DesktopHeight(This,pVal) \ - ( (This)->lpVtbl -> put_DesktopHeight(This,pVal) ) - -#define IMsRdpClient2_get_DesktopHeight(This,pVal) \ - ( (This)->lpVtbl -> get_DesktopHeight(This,pVal) ) - -#define IMsRdpClient2_put_StartConnected(This,pfStartConnected) \ - ( (This)->lpVtbl -> put_StartConnected(This,pfStartConnected) ) - -#define IMsRdpClient2_get_StartConnected(This,pfStartConnected) \ - ( (This)->lpVtbl -> get_StartConnected(This,pfStartConnected) ) - -#define IMsRdpClient2_get_HorizontalScrollBarVisible(This,pfHScrollVisible) \ - ( (This)->lpVtbl -> get_HorizontalScrollBarVisible(This,pfHScrollVisible) ) - -#define IMsRdpClient2_get_VerticalScrollBarVisible(This,pfVScrollVisible) \ - ( (This)->lpVtbl -> get_VerticalScrollBarVisible(This,pfVScrollVisible) ) - -#define IMsRdpClient2_put_FullScreenTitle(This,rhs) \ - ( (This)->lpVtbl -> put_FullScreenTitle(This,rhs) ) - -#define IMsRdpClient2_get_CipherStrength(This,pCipherStrength) \ - ( (This)->lpVtbl -> get_CipherStrength(This,pCipherStrength) ) - -#define IMsRdpClient2_get_Version(This,pVersion) \ - ( (This)->lpVtbl -> get_Version(This,pVersion) ) - -#define IMsRdpClient2_get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) \ - ( (This)->lpVtbl -> get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) ) - -#define IMsRdpClient2_get_SecuredSettings(This,ppSecuredSettings) \ - ( (This)->lpVtbl -> get_SecuredSettings(This,ppSecuredSettings) ) - -#define IMsRdpClient2_get_AdvancedSettings(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings(This,ppAdvSettings) ) - -#define IMsRdpClient2_get_Debugger(This,ppDebugger) \ - ( (This)->lpVtbl -> get_Debugger(This,ppDebugger) ) - -#define IMsRdpClient2_Connect(This) \ - ( (This)->lpVtbl -> Connect(This) ) - -#define IMsRdpClient2_Disconnect(This) \ - ( (This)->lpVtbl -> Disconnect(This) ) - -#define IMsRdpClient2_CreateVirtualChannels(This,newVal) \ - ( (This)->lpVtbl -> CreateVirtualChannels(This,newVal) ) - -#define IMsRdpClient2_SendOnVirtualChannel(This,chanName,ChanData) \ - ( (This)->lpVtbl -> SendOnVirtualChannel(This,chanName,ChanData) ) - - -#define IMsRdpClient2_put_ColorDepth(This,pcolorDepth) \ - ( (This)->lpVtbl -> put_ColorDepth(This,pcolorDepth) ) - -#define IMsRdpClient2_get_ColorDepth(This,pcolorDepth) \ - ( (This)->lpVtbl -> get_ColorDepth(This,pcolorDepth) ) - -#define IMsRdpClient2_get_AdvancedSettings2(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings2(This,ppAdvSettings) ) - -#define IMsRdpClient2_get_SecuredSettings2(This,ppSecuredSettings) \ - ( (This)->lpVtbl -> get_SecuredSettings2(This,ppSecuredSettings) ) - -#define IMsRdpClient2_get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) \ - ( (This)->lpVtbl -> get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) ) - -#define IMsRdpClient2_put_FullScreen(This,pfFullScreen) \ - ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) ) - -#define IMsRdpClient2_get_FullScreen(This,pfFullScreen) \ - ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) ) - -#define IMsRdpClient2_SetVirtualChannelOptions(This,chanName,chanOptions) \ - ( (This)->lpVtbl -> SetVirtualChannelOptions(This,chanName,chanOptions) ) - -#define IMsRdpClient2_GetVirtualChannelOptions(This,chanName,pChanOptions) \ - ( (This)->lpVtbl -> GetVirtualChannelOptions(This,chanName,pChanOptions) ) - -#define IMsRdpClient2_RequestClose(This,pCloseStatus) \ - ( (This)->lpVtbl -> RequestClose(This,pCloseStatus) ) - - -#define IMsRdpClient2_get_AdvancedSettings3(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings3(This,ppAdvSettings) ) - -#define IMsRdpClient2_put_ConnectedStatusText(This,pConnectedStatusText) \ - ( (This)->lpVtbl -> put_ConnectedStatusText(This,pConnectedStatusText) ) - -#define IMsRdpClient2_get_ConnectedStatusText(This,pConnectedStatusText) \ - ( (This)->lpVtbl -> get_ConnectedStatusText(This,pConnectedStatusText) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMsRdpClient2_INTERFACE_DEFINED__ */ - - -#ifndef __IMsRdpClient3_INTERFACE_DEFINED__ -#define __IMsRdpClient3_INTERFACE_DEFINED__ - -/* interface IMsRdpClient3 */ -/* [object][oleautomation][dual][uuid] */ - - -EXTERN_C const IID IID_IMsRdpClient3; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("91B7CBC5-A72E-4FA0-9300-D647D7E897FF") - IMsRdpClient3 : public IMsRdpClient2 - { - public: - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AdvancedSettings4( - /* [retval][out] */ IMsRdpClientAdvancedSettings3 **ppAdvSettings) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsRdpClient3Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsRdpClient3 * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsRdpClient3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsRdpClient3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsRdpClient3 * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsRdpClient3 * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsRdpClient3 * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsRdpClient3 * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Server )( - IMsRdpClient3 * This, - /* [in] */ BSTR pServer); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Server )( - IMsRdpClient3 * This, - /* [retval][out] */ BSTR *pServer); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Domain )( - IMsRdpClient3 * This, - /* [in] */ BSTR pDomain); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Domain )( - IMsRdpClient3 * This, - /* [retval][out] */ BSTR *pDomain); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UserName )( - IMsRdpClient3 * This, - /* [in] */ BSTR pUserName); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )( - IMsRdpClient3 * This, - /* [retval][out] */ BSTR *pUserName); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisconnectedText )( - IMsRdpClient3 * This, - /* [in] */ BSTR pDisconnectedText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisconnectedText )( - IMsRdpClient3 * This, - /* [retval][out] */ BSTR *pDisconnectedText); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectingText )( - IMsRdpClient3 * This, - /* [in] */ BSTR pConnectingText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectingText )( - IMsRdpClient3 * This, - /* [retval][out] */ BSTR *pConnectingText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Connected )( - IMsRdpClient3 * This, - /* [retval][out] */ short *pIsConnected); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopWidth )( - IMsRdpClient3 * This, - /* [in] */ long pVal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopWidth )( - IMsRdpClient3 * This, - /* [retval][out] */ long *pVal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopHeight )( - IMsRdpClient3 * This, - /* [in] */ long pVal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopHeight )( - IMsRdpClient3 * This, - /* [retval][out] */ long *pVal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartConnected )( - IMsRdpClient3 * This, - /* [in] */ long pfStartConnected); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartConnected )( - IMsRdpClient3 * This, - /* [retval][out] */ long *pfStartConnected); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalScrollBarVisible )( - IMsRdpClient3 * This, - /* [retval][out] */ long *pfHScrollVisible); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalScrollBarVisible )( - IMsRdpClient3 * This, - /* [retval][out] */ long *pfVScrollVisible); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreenTitle )( - IMsRdpClient3 * This, - /* [in] */ BSTR rhs); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CipherStrength )( - IMsRdpClient3 * This, - /* [retval][out] */ long *pCipherStrength); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )( - IMsRdpClient3 * This, - /* [retval][out] */ BSTR *pVersion); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettingsEnabled )( - IMsRdpClient3 * This, - /* [retval][out] */ long *pSecuredSettingsEnabled); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings )( - IMsRdpClient3 * This, - /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings )( - IMsRdpClient3 * This, - /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings); - - /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Debugger )( - IMsRdpClient3 * This, - /* [retval][out] */ IMsTscDebug **ppDebugger); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Connect )( - IMsRdpClient3 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( - IMsRdpClient3 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateVirtualChannels )( - IMsRdpClient3 * This, - /* [in] */ BSTR newVal); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *SendOnVirtualChannel )( - IMsRdpClient3 * This, - /* [in] */ BSTR chanName, - /* [in] */ BSTR ChanData); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ColorDepth )( - IMsRdpClient3 * This, - /* [in] */ long pcolorDepth); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ColorDepth )( - IMsRdpClient3 * This, - /* [retval][out] */ long *pcolorDepth); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings2 )( - IMsRdpClient3 * This, - /* [retval][out] */ IMsRdpClientAdvancedSettings **ppAdvSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings2 )( - IMsRdpClient3 * This, - /* [retval][out] */ IMsRdpClientSecuredSettings **ppSecuredSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtendedDisconnectReason )( - IMsRdpClient3 * This, - /* [retval][out] */ ExtendedDisconnectReasonCode *pExtendedDisconnectReason); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )( - IMsRdpClient3 * This, - /* [in] */ VARIANT_BOOL pfFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )( - IMsRdpClient3 * This, - /* [retval][out] */ VARIANT_BOOL *pfFullScreen); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetVirtualChannelOptions )( - IMsRdpClient3 * This, - /* [in] */ BSTR chanName, - /* [in] */ long chanOptions); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetVirtualChannelOptions )( - IMsRdpClient3 * This, - /* [in] */ BSTR chanName, - /* [retval][out] */ long *pChanOptions); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *RequestClose )( - IMsRdpClient3 * This, - /* [retval][out] */ ControlCloseStatus *pCloseStatus); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings3 )( - IMsRdpClient3 * This, - /* [retval][out] */ IMsRdpClientAdvancedSettings2 **ppAdvSettings); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectedStatusText )( - IMsRdpClient3 * This, - /* [in] */ BSTR pConnectedStatusText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectedStatusText )( - IMsRdpClient3 * This, - /* [retval][out] */ BSTR *pConnectedStatusText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings4 )( - IMsRdpClient3 * This, - /* [retval][out] */ IMsRdpClientAdvancedSettings3 **ppAdvSettings); - - END_INTERFACE - } IMsRdpClient3Vtbl; - - interface IMsRdpClient3 - { - CONST_VTBL struct IMsRdpClient3Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsRdpClient3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsRdpClient3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsRdpClient3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsRdpClient3_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsRdpClient3_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsRdpClient3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsRdpClient3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IMsRdpClient3_put_Server(This,pServer) \ - ( (This)->lpVtbl -> put_Server(This,pServer) ) - -#define IMsRdpClient3_get_Server(This,pServer) \ - ( (This)->lpVtbl -> get_Server(This,pServer) ) - -#define IMsRdpClient3_put_Domain(This,pDomain) \ - ( (This)->lpVtbl -> put_Domain(This,pDomain) ) - -#define IMsRdpClient3_get_Domain(This,pDomain) \ - ( (This)->lpVtbl -> get_Domain(This,pDomain) ) - -#define IMsRdpClient3_put_UserName(This,pUserName) \ - ( (This)->lpVtbl -> put_UserName(This,pUserName) ) - -#define IMsRdpClient3_get_UserName(This,pUserName) \ - ( (This)->lpVtbl -> get_UserName(This,pUserName) ) - -#define IMsRdpClient3_put_DisconnectedText(This,pDisconnectedText) \ - ( (This)->lpVtbl -> put_DisconnectedText(This,pDisconnectedText) ) - -#define IMsRdpClient3_get_DisconnectedText(This,pDisconnectedText) \ - ( (This)->lpVtbl -> get_DisconnectedText(This,pDisconnectedText) ) - -#define IMsRdpClient3_put_ConnectingText(This,pConnectingText) \ - ( (This)->lpVtbl -> put_ConnectingText(This,pConnectingText) ) - -#define IMsRdpClient3_get_ConnectingText(This,pConnectingText) \ - ( (This)->lpVtbl -> get_ConnectingText(This,pConnectingText) ) - -#define IMsRdpClient3_get_Connected(This,pIsConnected) \ - ( (This)->lpVtbl -> get_Connected(This,pIsConnected) ) - -#define IMsRdpClient3_put_DesktopWidth(This,pVal) \ - ( (This)->lpVtbl -> put_DesktopWidth(This,pVal) ) - -#define IMsRdpClient3_get_DesktopWidth(This,pVal) \ - ( (This)->lpVtbl -> get_DesktopWidth(This,pVal) ) - -#define IMsRdpClient3_put_DesktopHeight(This,pVal) \ - ( (This)->lpVtbl -> put_DesktopHeight(This,pVal) ) - -#define IMsRdpClient3_get_DesktopHeight(This,pVal) \ - ( (This)->lpVtbl -> get_DesktopHeight(This,pVal) ) - -#define IMsRdpClient3_put_StartConnected(This,pfStartConnected) \ - ( (This)->lpVtbl -> put_StartConnected(This,pfStartConnected) ) - -#define IMsRdpClient3_get_StartConnected(This,pfStartConnected) \ - ( (This)->lpVtbl -> get_StartConnected(This,pfStartConnected) ) - -#define IMsRdpClient3_get_HorizontalScrollBarVisible(This,pfHScrollVisible) \ - ( (This)->lpVtbl -> get_HorizontalScrollBarVisible(This,pfHScrollVisible) ) - -#define IMsRdpClient3_get_VerticalScrollBarVisible(This,pfVScrollVisible) \ - ( (This)->lpVtbl -> get_VerticalScrollBarVisible(This,pfVScrollVisible) ) - -#define IMsRdpClient3_put_FullScreenTitle(This,rhs) \ - ( (This)->lpVtbl -> put_FullScreenTitle(This,rhs) ) - -#define IMsRdpClient3_get_CipherStrength(This,pCipherStrength) \ - ( (This)->lpVtbl -> get_CipherStrength(This,pCipherStrength) ) - -#define IMsRdpClient3_get_Version(This,pVersion) \ - ( (This)->lpVtbl -> get_Version(This,pVersion) ) - -#define IMsRdpClient3_get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) \ - ( (This)->lpVtbl -> get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) ) - -#define IMsRdpClient3_get_SecuredSettings(This,ppSecuredSettings) \ - ( (This)->lpVtbl -> get_SecuredSettings(This,ppSecuredSettings) ) - -#define IMsRdpClient3_get_AdvancedSettings(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings(This,ppAdvSettings) ) - -#define IMsRdpClient3_get_Debugger(This,ppDebugger) \ - ( (This)->lpVtbl -> get_Debugger(This,ppDebugger) ) - -#define IMsRdpClient3_Connect(This) \ - ( (This)->lpVtbl -> Connect(This) ) - -#define IMsRdpClient3_Disconnect(This) \ - ( (This)->lpVtbl -> Disconnect(This) ) - -#define IMsRdpClient3_CreateVirtualChannels(This,newVal) \ - ( (This)->lpVtbl -> CreateVirtualChannels(This,newVal) ) - -#define IMsRdpClient3_SendOnVirtualChannel(This,chanName,ChanData) \ - ( (This)->lpVtbl -> SendOnVirtualChannel(This,chanName,ChanData) ) - - -#define IMsRdpClient3_put_ColorDepth(This,pcolorDepth) \ - ( (This)->lpVtbl -> put_ColorDepth(This,pcolorDepth) ) - -#define IMsRdpClient3_get_ColorDepth(This,pcolorDepth) \ - ( (This)->lpVtbl -> get_ColorDepth(This,pcolorDepth) ) - -#define IMsRdpClient3_get_AdvancedSettings2(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings2(This,ppAdvSettings) ) - -#define IMsRdpClient3_get_SecuredSettings2(This,ppSecuredSettings) \ - ( (This)->lpVtbl -> get_SecuredSettings2(This,ppSecuredSettings) ) - -#define IMsRdpClient3_get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) \ - ( (This)->lpVtbl -> get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) ) - -#define IMsRdpClient3_put_FullScreen(This,pfFullScreen) \ - ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) ) - -#define IMsRdpClient3_get_FullScreen(This,pfFullScreen) \ - ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) ) - -#define IMsRdpClient3_SetVirtualChannelOptions(This,chanName,chanOptions) \ - ( (This)->lpVtbl -> SetVirtualChannelOptions(This,chanName,chanOptions) ) - -#define IMsRdpClient3_GetVirtualChannelOptions(This,chanName,pChanOptions) \ - ( (This)->lpVtbl -> GetVirtualChannelOptions(This,chanName,pChanOptions) ) - -#define IMsRdpClient3_RequestClose(This,pCloseStatus) \ - ( (This)->lpVtbl -> RequestClose(This,pCloseStatus) ) - - -#define IMsRdpClient3_get_AdvancedSettings3(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings3(This,ppAdvSettings) ) - -#define IMsRdpClient3_put_ConnectedStatusText(This,pConnectedStatusText) \ - ( (This)->lpVtbl -> put_ConnectedStatusText(This,pConnectedStatusText) ) - -#define IMsRdpClient3_get_ConnectedStatusText(This,pConnectedStatusText) \ - ( (This)->lpVtbl -> get_ConnectedStatusText(This,pConnectedStatusText) ) - - -#define IMsRdpClient3_get_AdvancedSettings4(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings4(This,ppAdvSettings) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMsRdpClient3_INTERFACE_DEFINED__ */ - - -#ifndef __IMsRdpClient4_INTERFACE_DEFINED__ -#define __IMsRdpClient4_INTERFACE_DEFINED__ - -/* interface IMsRdpClient4 */ -/* [object][oleautomation][dual][uuid] */ - - -EXTERN_C const IID IID_IMsRdpClient4; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("095E0738-D97D-488B-B9F6-DD0E8D66C0DE") - IMsRdpClient4 : public IMsRdpClient3 - { - public: - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AdvancedSettings5( - /* [retval][out] */ IMsRdpClientAdvancedSettings4 **ppAdvSettings5) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsRdpClient4Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsRdpClient4 * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsRdpClient4 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsRdpClient4 * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsRdpClient4 * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsRdpClient4 * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsRdpClient4 * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsRdpClient4 * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Server )( - IMsRdpClient4 * This, - /* [in] */ BSTR pServer); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Server )( - IMsRdpClient4 * This, - /* [retval][out] */ BSTR *pServer); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Domain )( - IMsRdpClient4 * This, - /* [in] */ BSTR pDomain); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Domain )( - IMsRdpClient4 * This, - /* [retval][out] */ BSTR *pDomain); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UserName )( - IMsRdpClient4 * This, - /* [in] */ BSTR pUserName); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )( - IMsRdpClient4 * This, - /* [retval][out] */ BSTR *pUserName); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisconnectedText )( - IMsRdpClient4 * This, - /* [in] */ BSTR pDisconnectedText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisconnectedText )( - IMsRdpClient4 * This, - /* [retval][out] */ BSTR *pDisconnectedText); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectingText )( - IMsRdpClient4 * This, - /* [in] */ BSTR pConnectingText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectingText )( - IMsRdpClient4 * This, - /* [retval][out] */ BSTR *pConnectingText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Connected )( - IMsRdpClient4 * This, - /* [retval][out] */ short *pIsConnected); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopWidth )( - IMsRdpClient4 * This, - /* [in] */ long pVal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopWidth )( - IMsRdpClient4 * This, - /* [retval][out] */ long *pVal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopHeight )( - IMsRdpClient4 * This, - /* [in] */ long pVal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopHeight )( - IMsRdpClient4 * This, - /* [retval][out] */ long *pVal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartConnected )( - IMsRdpClient4 * This, - /* [in] */ long pfStartConnected); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartConnected )( - IMsRdpClient4 * This, - /* [retval][out] */ long *pfStartConnected); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalScrollBarVisible )( - IMsRdpClient4 * This, - /* [retval][out] */ long *pfHScrollVisible); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalScrollBarVisible )( - IMsRdpClient4 * This, - /* [retval][out] */ long *pfVScrollVisible); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreenTitle )( - IMsRdpClient4 * This, - /* [in] */ BSTR rhs); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CipherStrength )( - IMsRdpClient4 * This, - /* [retval][out] */ long *pCipherStrength); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )( - IMsRdpClient4 * This, - /* [retval][out] */ BSTR *pVersion); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettingsEnabled )( - IMsRdpClient4 * This, - /* [retval][out] */ long *pSecuredSettingsEnabled); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings )( - IMsRdpClient4 * This, - /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings )( - IMsRdpClient4 * This, - /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings); - - /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Debugger )( - IMsRdpClient4 * This, - /* [retval][out] */ IMsTscDebug **ppDebugger); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Connect )( - IMsRdpClient4 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( - IMsRdpClient4 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateVirtualChannels )( - IMsRdpClient4 * This, - /* [in] */ BSTR newVal); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *SendOnVirtualChannel )( - IMsRdpClient4 * This, - /* [in] */ BSTR chanName, - /* [in] */ BSTR ChanData); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ColorDepth )( - IMsRdpClient4 * This, - /* [in] */ long pcolorDepth); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ColorDepth )( - IMsRdpClient4 * This, - /* [retval][out] */ long *pcolorDepth); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings2 )( - IMsRdpClient4 * This, - /* [retval][out] */ IMsRdpClientAdvancedSettings **ppAdvSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings2 )( - IMsRdpClient4 * This, - /* [retval][out] */ IMsRdpClientSecuredSettings **ppSecuredSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtendedDisconnectReason )( - IMsRdpClient4 * This, - /* [retval][out] */ ExtendedDisconnectReasonCode *pExtendedDisconnectReason); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )( - IMsRdpClient4 * This, - /* [in] */ VARIANT_BOOL pfFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )( - IMsRdpClient4 * This, - /* [retval][out] */ VARIANT_BOOL *pfFullScreen); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetVirtualChannelOptions )( - IMsRdpClient4 * This, - /* [in] */ BSTR chanName, - /* [in] */ long chanOptions); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetVirtualChannelOptions )( - IMsRdpClient4 * This, - /* [in] */ BSTR chanName, - /* [retval][out] */ long *pChanOptions); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *RequestClose )( - IMsRdpClient4 * This, - /* [retval][out] */ ControlCloseStatus *pCloseStatus); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings3 )( - IMsRdpClient4 * This, - /* [retval][out] */ IMsRdpClientAdvancedSettings2 **ppAdvSettings); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectedStatusText )( - IMsRdpClient4 * This, - /* [in] */ BSTR pConnectedStatusText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectedStatusText )( - IMsRdpClient4 * This, - /* [retval][out] */ BSTR *pConnectedStatusText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings4 )( - IMsRdpClient4 * This, - /* [retval][out] */ IMsRdpClientAdvancedSettings3 **ppAdvSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings5 )( - IMsRdpClient4 * This, - /* [retval][out] */ IMsRdpClientAdvancedSettings4 **ppAdvSettings5); - - END_INTERFACE - } IMsRdpClient4Vtbl; - - interface IMsRdpClient4 - { - CONST_VTBL struct IMsRdpClient4Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsRdpClient4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsRdpClient4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsRdpClient4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsRdpClient4_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsRdpClient4_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsRdpClient4_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsRdpClient4_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IMsRdpClient4_put_Server(This,pServer) \ - ( (This)->lpVtbl -> put_Server(This,pServer) ) - -#define IMsRdpClient4_get_Server(This,pServer) \ - ( (This)->lpVtbl -> get_Server(This,pServer) ) - -#define IMsRdpClient4_put_Domain(This,pDomain) \ - ( (This)->lpVtbl -> put_Domain(This,pDomain) ) - -#define IMsRdpClient4_get_Domain(This,pDomain) \ - ( (This)->lpVtbl -> get_Domain(This,pDomain) ) - -#define IMsRdpClient4_put_UserName(This,pUserName) \ - ( (This)->lpVtbl -> put_UserName(This,pUserName) ) - -#define IMsRdpClient4_get_UserName(This,pUserName) \ - ( (This)->lpVtbl -> get_UserName(This,pUserName) ) - -#define IMsRdpClient4_put_DisconnectedText(This,pDisconnectedText) \ - ( (This)->lpVtbl -> put_DisconnectedText(This,pDisconnectedText) ) - -#define IMsRdpClient4_get_DisconnectedText(This,pDisconnectedText) \ - ( (This)->lpVtbl -> get_DisconnectedText(This,pDisconnectedText) ) - -#define IMsRdpClient4_put_ConnectingText(This,pConnectingText) \ - ( (This)->lpVtbl -> put_ConnectingText(This,pConnectingText) ) - -#define IMsRdpClient4_get_ConnectingText(This,pConnectingText) \ - ( (This)->lpVtbl -> get_ConnectingText(This,pConnectingText) ) - -#define IMsRdpClient4_get_Connected(This,pIsConnected) \ - ( (This)->lpVtbl -> get_Connected(This,pIsConnected) ) - -#define IMsRdpClient4_put_DesktopWidth(This,pVal) \ - ( (This)->lpVtbl -> put_DesktopWidth(This,pVal) ) - -#define IMsRdpClient4_get_DesktopWidth(This,pVal) \ - ( (This)->lpVtbl -> get_DesktopWidth(This,pVal) ) - -#define IMsRdpClient4_put_DesktopHeight(This,pVal) \ - ( (This)->lpVtbl -> put_DesktopHeight(This,pVal) ) - -#define IMsRdpClient4_get_DesktopHeight(This,pVal) \ - ( (This)->lpVtbl -> get_DesktopHeight(This,pVal) ) - -#define IMsRdpClient4_put_StartConnected(This,pfStartConnected) \ - ( (This)->lpVtbl -> put_StartConnected(This,pfStartConnected) ) - -#define IMsRdpClient4_get_StartConnected(This,pfStartConnected) \ - ( (This)->lpVtbl -> get_StartConnected(This,pfStartConnected) ) - -#define IMsRdpClient4_get_HorizontalScrollBarVisible(This,pfHScrollVisible) \ - ( (This)->lpVtbl -> get_HorizontalScrollBarVisible(This,pfHScrollVisible) ) - -#define IMsRdpClient4_get_VerticalScrollBarVisible(This,pfVScrollVisible) \ - ( (This)->lpVtbl -> get_VerticalScrollBarVisible(This,pfVScrollVisible) ) - -#define IMsRdpClient4_put_FullScreenTitle(This,rhs) \ - ( (This)->lpVtbl -> put_FullScreenTitle(This,rhs) ) - -#define IMsRdpClient4_get_CipherStrength(This,pCipherStrength) \ - ( (This)->lpVtbl -> get_CipherStrength(This,pCipherStrength) ) - -#define IMsRdpClient4_get_Version(This,pVersion) \ - ( (This)->lpVtbl -> get_Version(This,pVersion) ) - -#define IMsRdpClient4_get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) \ - ( (This)->lpVtbl -> get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) ) - -#define IMsRdpClient4_get_SecuredSettings(This,ppSecuredSettings) \ - ( (This)->lpVtbl -> get_SecuredSettings(This,ppSecuredSettings) ) - -#define IMsRdpClient4_get_AdvancedSettings(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings(This,ppAdvSettings) ) - -#define IMsRdpClient4_get_Debugger(This,ppDebugger) \ - ( (This)->lpVtbl -> get_Debugger(This,ppDebugger) ) - -#define IMsRdpClient4_Connect(This) \ - ( (This)->lpVtbl -> Connect(This) ) - -#define IMsRdpClient4_Disconnect(This) \ - ( (This)->lpVtbl -> Disconnect(This) ) - -#define IMsRdpClient4_CreateVirtualChannels(This,newVal) \ - ( (This)->lpVtbl -> CreateVirtualChannels(This,newVal) ) - -#define IMsRdpClient4_SendOnVirtualChannel(This,chanName,ChanData) \ - ( (This)->lpVtbl -> SendOnVirtualChannel(This,chanName,ChanData) ) - - -#define IMsRdpClient4_put_ColorDepth(This,pcolorDepth) \ - ( (This)->lpVtbl -> put_ColorDepth(This,pcolorDepth) ) - -#define IMsRdpClient4_get_ColorDepth(This,pcolorDepth) \ - ( (This)->lpVtbl -> get_ColorDepth(This,pcolorDepth) ) - -#define IMsRdpClient4_get_AdvancedSettings2(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings2(This,ppAdvSettings) ) - -#define IMsRdpClient4_get_SecuredSettings2(This,ppSecuredSettings) \ - ( (This)->lpVtbl -> get_SecuredSettings2(This,ppSecuredSettings) ) - -#define IMsRdpClient4_get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) \ - ( (This)->lpVtbl -> get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) ) - -#define IMsRdpClient4_put_FullScreen(This,pfFullScreen) \ - ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) ) - -#define IMsRdpClient4_get_FullScreen(This,pfFullScreen) \ - ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) ) - -#define IMsRdpClient4_SetVirtualChannelOptions(This,chanName,chanOptions) \ - ( (This)->lpVtbl -> SetVirtualChannelOptions(This,chanName,chanOptions) ) - -#define IMsRdpClient4_GetVirtualChannelOptions(This,chanName,pChanOptions) \ - ( (This)->lpVtbl -> GetVirtualChannelOptions(This,chanName,pChanOptions) ) - -#define IMsRdpClient4_RequestClose(This,pCloseStatus) \ - ( (This)->lpVtbl -> RequestClose(This,pCloseStatus) ) - - -#define IMsRdpClient4_get_AdvancedSettings3(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings3(This,ppAdvSettings) ) - -#define IMsRdpClient4_put_ConnectedStatusText(This,pConnectedStatusText) \ - ( (This)->lpVtbl -> put_ConnectedStatusText(This,pConnectedStatusText) ) - -#define IMsRdpClient4_get_ConnectedStatusText(This,pConnectedStatusText) \ - ( (This)->lpVtbl -> get_ConnectedStatusText(This,pConnectedStatusText) ) - - -#define IMsRdpClient4_get_AdvancedSettings4(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings4(This,ppAdvSettings) ) - - -#define IMsRdpClient4_get_AdvancedSettings5(This,ppAdvSettings5) \ - ( (This)->lpVtbl -> get_AdvancedSettings5(This,ppAdvSettings5) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMsRdpClient4_INTERFACE_DEFINED__ */ - - -#ifndef __IMsTscNonScriptable_INTERFACE_DEFINED__ -#define __IMsTscNonScriptable_INTERFACE_DEFINED__ - -/* interface IMsTscNonScriptable */ -/* [object][uuid] */ - - -EXTERN_C const IID IID_IMsTscNonScriptable; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("C1E6743A-41C1-4A74-832A-0DD06C1C7A0E") - IMsTscNonScriptable : public IUnknown - { - public: - virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ClearTextPassword( - /* [in] */ BSTR rhs) = 0; - - virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PortablePassword( - /* [in] */ BSTR pPortablePass) = 0; - - virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PortablePassword( - /* [retval][out] */ BSTR *pPortablePass) = 0; - - virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PortableSalt( - /* [in] */ BSTR pPortableSalt) = 0; - - virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PortableSalt( - /* [retval][out] */ BSTR *pPortableSalt) = 0; - - virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_BinaryPassword( - /* [in] */ BSTR pBinaryPassword) = 0; - - virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BinaryPassword( - /* [retval][out] */ BSTR *pBinaryPassword) = 0; - - virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_BinarySalt( - /* [in] */ BSTR pSalt) = 0; - - virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BinarySalt( - /* [retval][out] */ BSTR *pSalt) = 0; - - virtual HRESULT STDMETHODCALLTYPE ResetPassword( void) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsTscNonScriptableVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsTscNonScriptable * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsTscNonScriptable * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsTscNonScriptable * This); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( - IMsTscNonScriptable * This, - /* [in] */ BSTR rhs); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortablePassword )( - IMsTscNonScriptable * This, - /* [in] */ BSTR pPortablePass); - - /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortablePassword )( - IMsTscNonScriptable * This, - /* [retval][out] */ BSTR *pPortablePass); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortableSalt )( - IMsTscNonScriptable * This, - /* [in] */ BSTR pPortableSalt); - - /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortableSalt )( - IMsTscNonScriptable * This, - /* [retval][out] */ BSTR *pPortableSalt); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinaryPassword )( - IMsTscNonScriptable * This, - /* [in] */ BSTR pBinaryPassword); - - /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinaryPassword )( - IMsTscNonScriptable * This, - /* [retval][out] */ BSTR *pBinaryPassword); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinarySalt )( - IMsTscNonScriptable * This, - /* [in] */ BSTR pSalt); - - /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinarySalt )( - IMsTscNonScriptable * This, - /* [retval][out] */ BSTR *pSalt); - - HRESULT ( STDMETHODCALLTYPE *ResetPassword )( - IMsTscNonScriptable * This); - - END_INTERFACE - } IMsTscNonScriptableVtbl; - - interface IMsTscNonScriptable - { - CONST_VTBL struct IMsTscNonScriptableVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsTscNonScriptable_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsTscNonScriptable_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsTscNonScriptable_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsTscNonScriptable_put_ClearTextPassword(This,rhs) \ - ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) - -#define IMsTscNonScriptable_put_PortablePassword(This,pPortablePass) \ - ( (This)->lpVtbl -> put_PortablePassword(This,pPortablePass) ) - -#define IMsTscNonScriptable_get_PortablePassword(This,pPortablePass) \ - ( (This)->lpVtbl -> get_PortablePassword(This,pPortablePass) ) - -#define IMsTscNonScriptable_put_PortableSalt(This,pPortableSalt) \ - ( (This)->lpVtbl -> put_PortableSalt(This,pPortableSalt) ) - -#define IMsTscNonScriptable_get_PortableSalt(This,pPortableSalt) \ - ( (This)->lpVtbl -> get_PortableSalt(This,pPortableSalt) ) - -#define IMsTscNonScriptable_put_BinaryPassword(This,pBinaryPassword) \ - ( (This)->lpVtbl -> put_BinaryPassword(This,pBinaryPassword) ) - -#define IMsTscNonScriptable_get_BinaryPassword(This,pBinaryPassword) \ - ( (This)->lpVtbl -> get_BinaryPassword(This,pBinaryPassword) ) - -#define IMsTscNonScriptable_put_BinarySalt(This,pSalt) \ - ( (This)->lpVtbl -> put_BinarySalt(This,pSalt) ) - -#define IMsTscNonScriptable_get_BinarySalt(This,pSalt) \ - ( (This)->lpVtbl -> get_BinarySalt(This,pSalt) ) - -#define IMsTscNonScriptable_ResetPassword(This) \ - ( (This)->lpVtbl -> ResetPassword(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMsTscNonScriptable_INTERFACE_DEFINED__ */ - - -#ifndef __IMsRdpClientNonScriptable_INTERFACE_DEFINED__ -#define __IMsRdpClientNonScriptable_INTERFACE_DEFINED__ - -/* interface IMsRdpClientNonScriptable */ -/* [object][uuid] */ - - -EXTERN_C const IID IID_IMsRdpClientNonScriptable; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2F079C4C-87B2-4AFD-97AB-20CDB43038AE") - IMsRdpClientNonScriptable : public IMsTscNonScriptable - { - public: - virtual HRESULT STDMETHODCALLTYPE NotifyRedirectDeviceChange( - /* [in] */ UINT_PTR wParam, - /* [in] */ LONG_PTR lParam) = 0; - - virtual HRESULT STDMETHODCALLTYPE SendKeys( - /* [in] */ long numKeys, - /* [in] */ VARIANT_BOOL *pbArrayKeyUp, - /* [in] */ long *plKeyData) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsRdpClientNonScriptableVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsRdpClientNonScriptable * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsRdpClientNonScriptable * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsRdpClientNonScriptable * This); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( - IMsRdpClientNonScriptable * This, - /* [in] */ BSTR rhs); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortablePassword )( - IMsRdpClientNonScriptable * This, - /* [in] */ BSTR pPortablePass); - - /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortablePassword )( - IMsRdpClientNonScriptable * This, - /* [retval][out] */ BSTR *pPortablePass); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortableSalt )( - IMsRdpClientNonScriptable * This, - /* [in] */ BSTR pPortableSalt); - - /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortableSalt )( - IMsRdpClientNonScriptable * This, - /* [retval][out] */ BSTR *pPortableSalt); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinaryPassword )( - IMsRdpClientNonScriptable * This, - /* [in] */ BSTR pBinaryPassword); - - /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinaryPassword )( - IMsRdpClientNonScriptable * This, - /* [retval][out] */ BSTR *pBinaryPassword); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinarySalt )( - IMsRdpClientNonScriptable * This, - /* [in] */ BSTR pSalt); - - /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinarySalt )( - IMsRdpClientNonScriptable * This, - /* [retval][out] */ BSTR *pSalt); - - HRESULT ( STDMETHODCALLTYPE *ResetPassword )( - IMsRdpClientNonScriptable * This); - - HRESULT ( STDMETHODCALLTYPE *NotifyRedirectDeviceChange )( - IMsRdpClientNonScriptable * This, - /* [in] */ UINT_PTR wParam, - /* [in] */ LONG_PTR lParam); - - HRESULT ( STDMETHODCALLTYPE *SendKeys )( - IMsRdpClientNonScriptable * This, - /* [in] */ long numKeys, - /* [in] */ VARIANT_BOOL *pbArrayKeyUp, - /* [in] */ long *plKeyData); - - END_INTERFACE - } IMsRdpClientNonScriptableVtbl; - - interface IMsRdpClientNonScriptable - { - CONST_VTBL struct IMsRdpClientNonScriptableVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsRdpClientNonScriptable_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsRdpClientNonScriptable_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsRdpClientNonScriptable_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsRdpClientNonScriptable_put_ClearTextPassword(This,rhs) \ - ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) - -#define IMsRdpClientNonScriptable_put_PortablePassword(This,pPortablePass) \ - ( (This)->lpVtbl -> put_PortablePassword(This,pPortablePass) ) - -#define IMsRdpClientNonScriptable_get_PortablePassword(This,pPortablePass) \ - ( (This)->lpVtbl -> get_PortablePassword(This,pPortablePass) ) - -#define IMsRdpClientNonScriptable_put_PortableSalt(This,pPortableSalt) \ - ( (This)->lpVtbl -> put_PortableSalt(This,pPortableSalt) ) - -#define IMsRdpClientNonScriptable_get_PortableSalt(This,pPortableSalt) \ - ( (This)->lpVtbl -> get_PortableSalt(This,pPortableSalt) ) - -#define IMsRdpClientNonScriptable_put_BinaryPassword(This,pBinaryPassword) \ - ( (This)->lpVtbl -> put_BinaryPassword(This,pBinaryPassword) ) - -#define IMsRdpClientNonScriptable_get_BinaryPassword(This,pBinaryPassword) \ - ( (This)->lpVtbl -> get_BinaryPassword(This,pBinaryPassword) ) - -#define IMsRdpClientNonScriptable_put_BinarySalt(This,pSalt) \ - ( (This)->lpVtbl -> put_BinarySalt(This,pSalt) ) - -#define IMsRdpClientNonScriptable_get_BinarySalt(This,pSalt) \ - ( (This)->lpVtbl -> get_BinarySalt(This,pSalt) ) - -#define IMsRdpClientNonScriptable_ResetPassword(This) \ - ( (This)->lpVtbl -> ResetPassword(This) ) - - -#define IMsRdpClientNonScriptable_NotifyRedirectDeviceChange(This,wParam,lParam) \ - ( (This)->lpVtbl -> NotifyRedirectDeviceChange(This,wParam,lParam) ) - -#define IMsRdpClientNonScriptable_SendKeys(This,numKeys,pbArrayKeyUp,plKeyData) \ - ( (This)->lpVtbl -> SendKeys(This,numKeys,pbArrayKeyUp,plKeyData) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMsRdpClientNonScriptable_INTERFACE_DEFINED__ */ - - -#ifndef __IMsRdpClientNonScriptable2_INTERFACE_DEFINED__ -#define __IMsRdpClientNonScriptable2_INTERFACE_DEFINED__ - -/* interface IMsRdpClientNonScriptable2 */ -/* [object][uuid] */ - - -EXTERN_C const IID IID_IMsRdpClientNonScriptable2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("17A5E535-4072-4FA4-AF32-C8D0D47345E9") - IMsRdpClientNonScriptable2 : public IMsRdpClientNonScriptable - { - public: - virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_UIParentWindowHandle( - /* [in] */ HWND phwndUIParentWindowHandle) = 0; - - virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_UIParentWindowHandle( - /* [retval][out] */ HWND *phwndUIParentWindowHandle) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsRdpClientNonScriptable2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsRdpClientNonScriptable2 * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsRdpClientNonScriptable2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsRdpClientNonScriptable2 * This); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( - IMsRdpClientNonScriptable2 * This, - /* [in] */ BSTR rhs); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortablePassword )( - IMsRdpClientNonScriptable2 * This, - /* [in] */ BSTR pPortablePass); - - /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortablePassword )( - IMsRdpClientNonScriptable2 * This, - /* [retval][out] */ BSTR *pPortablePass); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortableSalt )( - IMsRdpClientNonScriptable2 * This, - /* [in] */ BSTR pPortableSalt); - - /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortableSalt )( - IMsRdpClientNonScriptable2 * This, - /* [retval][out] */ BSTR *pPortableSalt); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinaryPassword )( - IMsRdpClientNonScriptable2 * This, - /* [in] */ BSTR pBinaryPassword); - - /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinaryPassword )( - IMsRdpClientNonScriptable2 * This, - /* [retval][out] */ BSTR *pBinaryPassword); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinarySalt )( - IMsRdpClientNonScriptable2 * This, - /* [in] */ BSTR pSalt); - - /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinarySalt )( - IMsRdpClientNonScriptable2 * This, - /* [retval][out] */ BSTR *pSalt); - - HRESULT ( STDMETHODCALLTYPE *ResetPassword )( - IMsRdpClientNonScriptable2 * This); - - HRESULT ( STDMETHODCALLTYPE *NotifyRedirectDeviceChange )( - IMsRdpClientNonScriptable2 * This, - /* [in] */ UINT_PTR wParam, - /* [in] */ LONG_PTR lParam); - - HRESULT ( STDMETHODCALLTYPE *SendKeys )( - IMsRdpClientNonScriptable2 * This, - /* [in] */ long numKeys, - /* [in] */ VARIANT_BOOL *pbArrayKeyUp, - /* [in] */ long *plKeyData); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_UIParentWindowHandle )( - IMsRdpClientNonScriptable2 * This, - /* [in] */ HWND phwndUIParentWindowHandle); - - /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_UIParentWindowHandle )( - IMsRdpClientNonScriptable2 * This, - /* [retval][out] */ HWND *phwndUIParentWindowHandle); - - END_INTERFACE - } IMsRdpClientNonScriptable2Vtbl; - - interface IMsRdpClientNonScriptable2 - { - CONST_VTBL struct IMsRdpClientNonScriptable2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsRdpClientNonScriptable2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsRdpClientNonScriptable2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsRdpClientNonScriptable2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsRdpClientNonScriptable2_put_ClearTextPassword(This,rhs) \ - ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) - -#define IMsRdpClientNonScriptable2_put_PortablePassword(This,pPortablePass) \ - ( (This)->lpVtbl -> put_PortablePassword(This,pPortablePass) ) - -#define IMsRdpClientNonScriptable2_get_PortablePassword(This,pPortablePass) \ - ( (This)->lpVtbl -> get_PortablePassword(This,pPortablePass) ) - -#define IMsRdpClientNonScriptable2_put_PortableSalt(This,pPortableSalt) \ - ( (This)->lpVtbl -> put_PortableSalt(This,pPortableSalt) ) - -#define IMsRdpClientNonScriptable2_get_PortableSalt(This,pPortableSalt) \ - ( (This)->lpVtbl -> get_PortableSalt(This,pPortableSalt) ) - -#define IMsRdpClientNonScriptable2_put_BinaryPassword(This,pBinaryPassword) \ - ( (This)->lpVtbl -> put_BinaryPassword(This,pBinaryPassword) ) - -#define IMsRdpClientNonScriptable2_get_BinaryPassword(This,pBinaryPassword) \ - ( (This)->lpVtbl -> get_BinaryPassword(This,pBinaryPassword) ) - -#define IMsRdpClientNonScriptable2_put_BinarySalt(This,pSalt) \ - ( (This)->lpVtbl -> put_BinarySalt(This,pSalt) ) - -#define IMsRdpClientNonScriptable2_get_BinarySalt(This,pSalt) \ - ( (This)->lpVtbl -> get_BinarySalt(This,pSalt) ) - -#define IMsRdpClientNonScriptable2_ResetPassword(This) \ - ( (This)->lpVtbl -> ResetPassword(This) ) - - -#define IMsRdpClientNonScriptable2_NotifyRedirectDeviceChange(This,wParam,lParam) \ - ( (This)->lpVtbl -> NotifyRedirectDeviceChange(This,wParam,lParam) ) - -#define IMsRdpClientNonScriptable2_SendKeys(This,numKeys,pbArrayKeyUp,plKeyData) \ - ( (This)->lpVtbl -> SendKeys(This,numKeys,pbArrayKeyUp,plKeyData) ) - - -#define IMsRdpClientNonScriptable2_put_UIParentWindowHandle(This,phwndUIParentWindowHandle) \ - ( (This)->lpVtbl -> put_UIParentWindowHandle(This,phwndUIParentWindowHandle) ) - -#define IMsRdpClientNonScriptable2_get_UIParentWindowHandle(This,phwndUIParentWindowHandle) \ - ( (This)->lpVtbl -> get_UIParentWindowHandle(This,phwndUIParentWindowHandle) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMsRdpClientNonScriptable2_INTERFACE_DEFINED__ */ - - -#ifndef __IMsTscAdvancedSettings_INTERFACE_DEFINED__ -#define __IMsTscAdvancedSettings_INTERFACE_DEFINED__ - -/* interface IMsTscAdvancedSettings */ -/* [object][oleautomation][dual][uuid] */ - - -EXTERN_C const IID IID_IMsTscAdvancedSettings; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("809945CC-4B3B-4A92-A6B0-DBF9B5F2EF2D") - IMsTscAdvancedSettings : public IDispatch - { - public: - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Compress( - /* [in] */ long pcompress) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Compress( - /* [retval][out] */ long *pcompress) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapPeristence( - /* [in] */ long pbitmapPeristence) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapPeristence( - /* [retval][out] */ long *pbitmapPeristence) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_allowBackgroundInput( - /* [in] */ long pallowBackgroundInput) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_allowBackgroundInput( - /* [retval][out] */ long *pallowBackgroundInput) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_KeyBoardLayoutStr( - /* [in] */ BSTR rhs) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_PluginDlls( - /* [in] */ BSTR rhs) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_IconFile( - /* [in] */ BSTR rhs) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_IconIndex( - /* [in] */ long rhs) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ContainerHandledFullScreen( - /* [in] */ long pContainerHandledFullScreen) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ContainerHandledFullScreen( - /* [retval][out] */ long *pContainerHandledFullScreen) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DisableRdpdr( - /* [in] */ long pDisableRdpdr) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DisableRdpdr( - /* [retval][out] */ long *pDisableRdpdr) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsTscAdvancedSettingsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsTscAdvancedSettings * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsTscAdvancedSettings * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsTscAdvancedSettings * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsTscAdvancedSettings * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsTscAdvancedSettings * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsTscAdvancedSettings * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsTscAdvancedSettings * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Compress )( - IMsTscAdvancedSettings * This, - /* [in] */ long pcompress); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Compress )( - IMsTscAdvancedSettings * This, - /* [retval][out] */ long *pcompress); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPeristence )( - IMsTscAdvancedSettings * This, - /* [in] */ long pbitmapPeristence); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPeristence )( - IMsTscAdvancedSettings * This, - /* [retval][out] */ long *pbitmapPeristence); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_allowBackgroundInput )( - IMsTscAdvancedSettings * This, - /* [in] */ long pallowBackgroundInput); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_allowBackgroundInput )( - IMsTscAdvancedSettings * This, - /* [retval][out] */ long *pallowBackgroundInput); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyBoardLayoutStr )( - IMsTscAdvancedSettings * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PluginDlls )( - IMsTscAdvancedSettings * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconFile )( - IMsTscAdvancedSettings * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconIndex )( - IMsTscAdvancedSettings * This, - /* [in] */ long rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerHandledFullScreen )( - IMsTscAdvancedSettings * This, - /* [in] */ long pContainerHandledFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerHandledFullScreen )( - IMsTscAdvancedSettings * This, - /* [retval][out] */ long *pContainerHandledFullScreen); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableRdpdr )( - IMsTscAdvancedSettings * This, - /* [in] */ long pDisableRdpdr); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableRdpdr )( - IMsTscAdvancedSettings * This, - /* [retval][out] */ long *pDisableRdpdr); - - END_INTERFACE - } IMsTscAdvancedSettingsVtbl; - - interface IMsTscAdvancedSettings - { - CONST_VTBL struct IMsTscAdvancedSettingsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsTscAdvancedSettings_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsTscAdvancedSettings_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsTscAdvancedSettings_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsTscAdvancedSettings_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsTscAdvancedSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsTscAdvancedSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsTscAdvancedSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IMsTscAdvancedSettings_put_Compress(This,pcompress) \ - ( (This)->lpVtbl -> put_Compress(This,pcompress) ) - -#define IMsTscAdvancedSettings_get_Compress(This,pcompress) \ - ( (This)->lpVtbl -> get_Compress(This,pcompress) ) - -#define IMsTscAdvancedSettings_put_BitmapPeristence(This,pbitmapPeristence) \ - ( (This)->lpVtbl -> put_BitmapPeristence(This,pbitmapPeristence) ) - -#define IMsTscAdvancedSettings_get_BitmapPeristence(This,pbitmapPeristence) \ - ( (This)->lpVtbl -> get_BitmapPeristence(This,pbitmapPeristence) ) - -#define IMsTscAdvancedSettings_put_allowBackgroundInput(This,pallowBackgroundInput) \ - ( (This)->lpVtbl -> put_allowBackgroundInput(This,pallowBackgroundInput) ) - -#define IMsTscAdvancedSettings_get_allowBackgroundInput(This,pallowBackgroundInput) \ - ( (This)->lpVtbl -> get_allowBackgroundInput(This,pallowBackgroundInput) ) - -#define IMsTscAdvancedSettings_put_KeyBoardLayoutStr(This,rhs) \ - ( (This)->lpVtbl -> put_KeyBoardLayoutStr(This,rhs) ) - -#define IMsTscAdvancedSettings_put_PluginDlls(This,rhs) \ - ( (This)->lpVtbl -> put_PluginDlls(This,rhs) ) - -#define IMsTscAdvancedSettings_put_IconFile(This,rhs) \ - ( (This)->lpVtbl -> put_IconFile(This,rhs) ) - -#define IMsTscAdvancedSettings_put_IconIndex(This,rhs) \ - ( (This)->lpVtbl -> put_IconIndex(This,rhs) ) - -#define IMsTscAdvancedSettings_put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ - ( (This)->lpVtbl -> put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) - -#define IMsTscAdvancedSettings_get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ - ( (This)->lpVtbl -> get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) - -#define IMsTscAdvancedSettings_put_DisableRdpdr(This,pDisableRdpdr) \ - ( (This)->lpVtbl -> put_DisableRdpdr(This,pDisableRdpdr) ) - -#define IMsTscAdvancedSettings_get_DisableRdpdr(This,pDisableRdpdr) \ - ( (This)->lpVtbl -> get_DisableRdpdr(This,pDisableRdpdr) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMsTscAdvancedSettings_INTERFACE_DEFINED__ */ - - -#ifndef __IMsRdpClientAdvancedSettings_INTERFACE_DEFINED__ -#define __IMsRdpClientAdvancedSettings_INTERFACE_DEFINED__ - -/* interface IMsRdpClientAdvancedSettings */ -/* [object][oleautomation][dual][uuid] */ - - -EXTERN_C const IID IID_IMsRdpClientAdvancedSettings; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("3C65B4AB-12B3-465B-ACD4-B8DAD3BFF9E2") - IMsRdpClientAdvancedSettings : public IMsTscAdvancedSettings - { - public: - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_SmoothScroll( - /* [in] */ long psmoothScroll) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SmoothScroll( - /* [retval][out] */ long *psmoothScroll) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_AcceleratorPassthrough( - /* [in] */ long pacceleratorPassthrough) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AcceleratorPassthrough( - /* [retval][out] */ long *pacceleratorPassthrough) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ShadowBitmap( - /* [in] */ long pshadowBitmap) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ShadowBitmap( - /* [retval][out] */ long *pshadowBitmap) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_TransportType( - /* [in] */ long ptransportType) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_TransportType( - /* [retval][out] */ long *ptransportType) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_SasSequence( - /* [in] */ long psasSequence) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SasSequence( - /* [retval][out] */ long *psasSequence) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_EncryptionEnabled( - /* [in] */ long pencryptionEnabled) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_EncryptionEnabled( - /* [retval][out] */ long *pencryptionEnabled) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DedicatedTerminal( - /* [in] */ long pdedicatedTerminal) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DedicatedTerminal( - /* [retval][out] */ long *pdedicatedTerminal) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RDPPort( - /* [in] */ long prdpPort) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RDPPort( - /* [retval][out] */ long *prdpPort) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_EnableMouse( - /* [in] */ long penableMouse) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_EnableMouse( - /* [retval][out] */ long *penableMouse) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DisableCtrlAltDel( - /* [in] */ long pdisableCtrlAltDel) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DisableCtrlAltDel( - /* [retval][out] */ long *pdisableCtrlAltDel) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_EnableWindowsKey( - /* [in] */ long penableWindowsKey) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_EnableWindowsKey( - /* [retval][out] */ long *penableWindowsKey) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DoubleClickDetect( - /* [in] */ long pdoubleClickDetect) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DoubleClickDetect( - /* [retval][out] */ long *pdoubleClickDetect) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_MaximizeShell( - /* [in] */ long pmaximizeShell) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_MaximizeShell( - /* [retval][out] */ long *pmaximizeShell) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyFullScreen( - /* [in] */ long photKeyFullScreen) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyFullScreen( - /* [retval][out] */ long *photKeyFullScreen) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyCtrlEsc( - /* [in] */ long photKeyCtrlEsc) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyCtrlEsc( - /* [retval][out] */ long *photKeyCtrlEsc) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyAltEsc( - /* [in] */ long photKeyAltEsc) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyAltEsc( - /* [retval][out] */ long *photKeyAltEsc) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyAltTab( - /* [in] */ long photKeyAltTab) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyAltTab( - /* [retval][out] */ long *photKeyAltTab) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyAltShiftTab( - /* [in] */ long photKeyAltShiftTab) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyAltShiftTab( - /* [retval][out] */ long *photKeyAltShiftTab) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyAltSpace( - /* [in] */ long photKeyAltSpace) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyAltSpace( - /* [retval][out] */ long *photKeyAltSpace) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyCtrlAltDel( - /* [in] */ long photKeyCtrlAltDel) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyCtrlAltDel( - /* [retval][out] */ long *photKeyCtrlAltDel) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_orderDrawThreshold( - /* [in] */ long porderDrawThreshold) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_orderDrawThreshold( - /* [retval][out] */ long *porderDrawThreshold) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapCacheSize( - /* [in] */ long pbitmapCacheSize) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapCacheSize( - /* [retval][out] */ long *pbitmapCacheSize) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapVirtualCacheSize( - /* [in] */ long pbitmapVirtualCacheSize) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapVirtualCacheSize( - /* [retval][out] */ long *pbitmapVirtualCacheSize) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ScaleBitmapCachesByBPP( - /* [in] */ long pbScale) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ScaleBitmapCachesByBPP( - /* [retval][out] */ long *pbScale) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_NumBitmapCaches( - /* [in] */ long pnumBitmapCaches) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_NumBitmapCaches( - /* [retval][out] */ long *pnumBitmapCaches) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_CachePersistenceActive( - /* [in] */ long pcachePersistenceActive) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CachePersistenceActive( - /* [retval][out] */ long *pcachePersistenceActive) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_PersistCacheDirectory( - /* [in] */ BSTR rhs) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_brushSupportLevel( - /* [in] */ long pbrushSupportLevel) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_brushSupportLevel( - /* [retval][out] */ long *pbrushSupportLevel) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_minInputSendInterval( - /* [in] */ long pminInputSendInterval) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_minInputSendInterval( - /* [retval][out] */ long *pminInputSendInterval) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_InputEventsAtOnce( - /* [in] */ long pinputEventsAtOnce) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_InputEventsAtOnce( - /* [retval][out] */ long *pinputEventsAtOnce) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_maxEventCount( - /* [in] */ long pmaxEventCount) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_maxEventCount( - /* [retval][out] */ long *pmaxEventCount) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_keepAliveInterval( - /* [in] */ long pkeepAliveInterval) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_keepAliveInterval( - /* [retval][out] */ long *pkeepAliveInterval) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_shutdownTimeout( - /* [in] */ long pshutdownTimeout) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_shutdownTimeout( - /* [retval][out] */ long *pshutdownTimeout) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_overallConnectionTimeout( - /* [in] */ long poverallConnectionTimeout) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_overallConnectionTimeout( - /* [retval][out] */ long *poverallConnectionTimeout) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_singleConnectionTimeout( - /* [in] */ long psingleConnectionTimeout) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_singleConnectionTimeout( - /* [retval][out] */ long *psingleConnectionTimeout) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_KeyboardType( - /* [in] */ long pkeyboardType) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_KeyboardType( - /* [retval][out] */ long *pkeyboardType) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_KeyboardSubType( - /* [in] */ long pkeyboardSubType) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_KeyboardSubType( - /* [retval][out] */ long *pkeyboardSubType) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_KeyboardFunctionKey( - /* [in] */ long pkeyboardFunctionKey) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_KeyboardFunctionKey( - /* [retval][out] */ long *pkeyboardFunctionKey) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_WinceFixedPalette( - /* [in] */ long pwinceFixedPalette) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_WinceFixedPalette( - /* [retval][out] */ long *pwinceFixedPalette) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectToServerConsole( - /* [in] */ VARIANT_BOOL pConnectToConsole) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ConnectToServerConsole( - /* [retval][out] */ VARIANT_BOOL *pConnectToConsole) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapPersistence( - /* [in] */ long pbitmapPersistence) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapPersistence( - /* [retval][out] */ long *pbitmapPersistence) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_MinutesToIdleTimeout( - /* [in] */ long pminutesToIdleTimeout) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_MinutesToIdleTimeout( - /* [retval][out] */ long *pminutesToIdleTimeout) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_SmartSizing( - /* [in] */ VARIANT_BOOL pfSmartSizing) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SmartSizing( - /* [retval][out] */ VARIANT_BOOL *pfSmartSizing) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RdpdrLocalPrintingDocName( - /* [in] */ BSTR pLocalPrintingDocName) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RdpdrLocalPrintingDocName( - /* [retval][out] */ BSTR *pLocalPrintingDocName) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RdpdrClipCleanTempDirString( - /* [in] */ BSTR clipCleanTempDirString) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RdpdrClipCleanTempDirString( - /* [retval][out] */ BSTR *clipCleanTempDirString) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RdpdrClipPasteInfoString( - /* [in] */ BSTR clipPasteInfoString) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RdpdrClipPasteInfoString( - /* [retval][out] */ BSTR *clipPasteInfoString) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ClearTextPassword( - /* [in] */ BSTR rhs) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DisplayConnectionBar( - /* [in] */ VARIANT_BOOL pDisplayConnectionBar) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DisplayConnectionBar( - /* [retval][out] */ VARIANT_BOOL *pDisplayConnectionBar) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_PinConnectionBar( - /* [in] */ VARIANT_BOOL pPinConnectionBar) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_PinConnectionBar( - /* [retval][out] */ VARIANT_BOOL *pPinConnectionBar) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_GrabFocusOnConnect( - /* [in] */ VARIANT_BOOL pfGrabFocusOnConnect) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_GrabFocusOnConnect( - /* [retval][out] */ VARIANT_BOOL *pfGrabFocusOnConnect) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_LoadBalanceInfo( - /* [in] */ BSTR pLBInfo) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_LoadBalanceInfo( - /* [retval][out] */ BSTR *pLBInfo) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RedirectDrives( - /* [in] */ VARIANT_BOOL pRedirectDrives) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RedirectDrives( - /* [retval][out] */ VARIANT_BOOL *pRedirectDrives) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RedirectPrinters( - /* [in] */ VARIANT_BOOL pRedirectPrinters) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RedirectPrinters( - /* [retval][out] */ VARIANT_BOOL *pRedirectPrinters) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RedirectPorts( - /* [in] */ VARIANT_BOOL pRedirectPorts) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RedirectPorts( - /* [retval][out] */ VARIANT_BOOL *pRedirectPorts) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RedirectSmartCards( - /* [in] */ VARIANT_BOOL pRedirectSmartCards) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RedirectSmartCards( - /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapVirtualCache16BppSize( - /* [in] */ long pBitmapVirtualCache16BppSize) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapVirtualCache16BppSize( - /* [retval][out] */ long *pBitmapVirtualCache16BppSize) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapVirtualCache24BppSize( - /* [in] */ long pBitmapVirtualCache24BppSize) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapVirtualCache24BppSize( - /* [retval][out] */ long *pBitmapVirtualCache24BppSize) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_PerformanceFlags( - /* [in] */ long pDisableList) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_PerformanceFlags( - /* [retval][out] */ long *pDisableList) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectWithEndpoint( - /* [in] */ VARIANT *rhs) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_NotifyTSPublicKey( - /* [in] */ VARIANT_BOOL pfNotify) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_NotifyTSPublicKey( - /* [retval][out] */ VARIANT_BOOL *pfNotify) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsRdpClientAdvancedSettingsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsRdpClientAdvancedSettings * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsRdpClientAdvancedSettings * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsRdpClientAdvancedSettings * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Compress )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pcompress); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Compress )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pcompress); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPeristence )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pbitmapPeristence); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPeristence )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pbitmapPeristence); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_allowBackgroundInput )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pallowBackgroundInput); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_allowBackgroundInput )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pallowBackgroundInput); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyBoardLayoutStr )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PluginDlls )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconFile )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconIndex )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerHandledFullScreen )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pContainerHandledFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerHandledFullScreen )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pContainerHandledFullScreen); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableRdpdr )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pDisableRdpdr); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableRdpdr )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pDisableRdpdr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmoothScroll )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long psmoothScroll); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmoothScroll )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *psmoothScroll); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AcceleratorPassthrough )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pacceleratorPassthrough); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AcceleratorPassthrough )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pacceleratorPassthrough); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShadowBitmap )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pshadowBitmap); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShadowBitmap )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pshadowBitmap); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TransportType )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long ptransportType); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TransportType )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *ptransportType); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SasSequence )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long psasSequence); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SasSequence )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *psasSequence); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EncryptionEnabled )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pencryptionEnabled); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EncryptionEnabled )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pencryptionEnabled); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DedicatedTerminal )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pdedicatedTerminal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DedicatedTerminal )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pdedicatedTerminal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RDPPort )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long prdpPort); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RDPPort )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *prdpPort); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableMouse )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long penableMouse); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableMouse )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *penableMouse); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableCtrlAltDel )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pdisableCtrlAltDel); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableCtrlAltDel )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pdisableCtrlAltDel); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableWindowsKey )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long penableWindowsKey); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableWindowsKey )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *penableWindowsKey); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DoubleClickDetect )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pdoubleClickDetect); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DoubleClickDetect )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pdoubleClickDetect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaximizeShell )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pmaximizeShell); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaximizeShell )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pmaximizeShell); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyFullScreen )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long photKeyFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyFullScreen )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *photKeyFullScreen); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlEsc )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long photKeyCtrlEsc); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlEsc )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *photKeyCtrlEsc); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltEsc )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long photKeyAltEsc); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltEsc )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *photKeyAltEsc); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltTab )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long photKeyAltTab); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltTab )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *photKeyAltTab); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltShiftTab )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long photKeyAltShiftTab); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltShiftTab )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *photKeyAltShiftTab); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltSpace )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long photKeyAltSpace); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltSpace )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *photKeyAltSpace); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlAltDel )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long photKeyCtrlAltDel); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlAltDel )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *photKeyCtrlAltDel); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_orderDrawThreshold )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long porderDrawThreshold); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_orderDrawThreshold )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *porderDrawThreshold); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapCacheSize )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pbitmapCacheSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapCacheSize )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pbitmapCacheSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCacheSize )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pbitmapVirtualCacheSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCacheSize )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pbitmapVirtualCacheSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleBitmapCachesByBPP )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pbScale); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleBitmapCachesByBPP )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pbScale); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NumBitmapCaches )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pnumBitmapCaches); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumBitmapCaches )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pnumBitmapCaches); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CachePersistenceActive )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pcachePersistenceActive); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CachePersistenceActive )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pcachePersistenceActive); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PersistCacheDirectory )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_brushSupportLevel )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pbrushSupportLevel); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_brushSupportLevel )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pbrushSupportLevel); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_minInputSendInterval )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pminInputSendInterval); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_minInputSendInterval )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pminInputSendInterval); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InputEventsAtOnce )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pinputEventsAtOnce); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InputEventsAtOnce )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pinputEventsAtOnce); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_maxEventCount )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pmaxEventCount); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_maxEventCount )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pmaxEventCount); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_keepAliveInterval )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pkeepAliveInterval); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_keepAliveInterval )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pkeepAliveInterval); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_shutdownTimeout )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pshutdownTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_shutdownTimeout )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pshutdownTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_overallConnectionTimeout )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long poverallConnectionTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_overallConnectionTimeout )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *poverallConnectionTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_singleConnectionTimeout )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long psingleConnectionTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_singleConnectionTimeout )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *psingleConnectionTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardType )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pkeyboardType); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardType )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pkeyboardType); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardSubType )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pkeyboardSubType); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardSubType )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pkeyboardSubType); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardFunctionKey )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pkeyboardFunctionKey); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardFunctionKey )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pkeyboardFunctionKey); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WinceFixedPalette )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pwinceFixedPalette); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WinceFixedPalette )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pwinceFixedPalette); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectToServerConsole )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ VARIANT_BOOL pConnectToConsole); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectToServerConsole )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ VARIANT_BOOL *pConnectToConsole); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPersistence )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pbitmapPersistence); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPersistence )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pbitmapPersistence); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MinutesToIdleTimeout )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pminutesToIdleTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MinutesToIdleTimeout )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pminutesToIdleTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmartSizing )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ VARIANT_BOOL pfSmartSizing); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmartSizing )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ VARIANT_BOOL *pfSmartSizing); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrLocalPrintingDocName )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ BSTR pLocalPrintingDocName); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrLocalPrintingDocName )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ BSTR *pLocalPrintingDocName); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipCleanTempDirString )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ BSTR clipCleanTempDirString); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipCleanTempDirString )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ BSTR *clipCleanTempDirString); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipPasteInfoString )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ BSTR clipPasteInfoString); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipPasteInfoString )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ BSTR *clipPasteInfoString); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisplayConnectionBar )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ VARIANT_BOOL pDisplayConnectionBar); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisplayConnectionBar )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ VARIANT_BOOL *pDisplayConnectionBar); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PinConnectionBar )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ VARIANT_BOOL pPinConnectionBar); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PinConnectionBar )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ VARIANT_BOOL *pPinConnectionBar); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GrabFocusOnConnect )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ VARIANT_BOOL pfGrabFocusOnConnect); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GrabFocusOnConnect )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ VARIANT_BOOL *pfGrabFocusOnConnect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LoadBalanceInfo )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ BSTR pLBInfo); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LoadBalanceInfo )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ BSTR *pLBInfo); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectDrives )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ VARIANT_BOOL pRedirectDrives); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectDrives )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectDrives); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPrinters )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ VARIANT_BOOL pRedirectPrinters); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPrinters )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectPrinters); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPorts )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ VARIANT_BOOL pRedirectPorts); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPorts )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectPorts); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectSmartCards )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ VARIANT_BOOL pRedirectSmartCards); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectSmartCards )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache16BppSize )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pBitmapVirtualCache16BppSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache16BppSize )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pBitmapVirtualCache16BppSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache24BppSize )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pBitmapVirtualCache24BppSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache24BppSize )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pBitmapVirtualCache24BppSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PerformanceFlags )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pDisableList); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PerformanceFlags )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pDisableList); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectWithEndpoint )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ VARIANT *rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NotifyTSPublicKey )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ VARIANT_BOOL pfNotify); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NotifyTSPublicKey )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ VARIANT_BOOL *pfNotify); - - END_INTERFACE - } IMsRdpClientAdvancedSettingsVtbl; - - interface IMsRdpClientAdvancedSettings - { - CONST_VTBL struct IMsRdpClientAdvancedSettingsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsRdpClientAdvancedSettings_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsRdpClientAdvancedSettings_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsRdpClientAdvancedSettings_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsRdpClientAdvancedSettings_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsRdpClientAdvancedSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsRdpClientAdvancedSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsRdpClientAdvancedSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IMsRdpClientAdvancedSettings_put_Compress(This,pcompress) \ - ( (This)->lpVtbl -> put_Compress(This,pcompress) ) - -#define IMsRdpClientAdvancedSettings_get_Compress(This,pcompress) \ - ( (This)->lpVtbl -> get_Compress(This,pcompress) ) - -#define IMsRdpClientAdvancedSettings_put_BitmapPeristence(This,pbitmapPeristence) \ - ( (This)->lpVtbl -> put_BitmapPeristence(This,pbitmapPeristence) ) - -#define IMsRdpClientAdvancedSettings_get_BitmapPeristence(This,pbitmapPeristence) \ - ( (This)->lpVtbl -> get_BitmapPeristence(This,pbitmapPeristence) ) - -#define IMsRdpClientAdvancedSettings_put_allowBackgroundInput(This,pallowBackgroundInput) \ - ( (This)->lpVtbl -> put_allowBackgroundInput(This,pallowBackgroundInput) ) - -#define IMsRdpClientAdvancedSettings_get_allowBackgroundInput(This,pallowBackgroundInput) \ - ( (This)->lpVtbl -> get_allowBackgroundInput(This,pallowBackgroundInput) ) - -#define IMsRdpClientAdvancedSettings_put_KeyBoardLayoutStr(This,rhs) \ - ( (This)->lpVtbl -> put_KeyBoardLayoutStr(This,rhs) ) - -#define IMsRdpClientAdvancedSettings_put_PluginDlls(This,rhs) \ - ( (This)->lpVtbl -> put_PluginDlls(This,rhs) ) - -#define IMsRdpClientAdvancedSettings_put_IconFile(This,rhs) \ - ( (This)->lpVtbl -> put_IconFile(This,rhs) ) - -#define IMsRdpClientAdvancedSettings_put_IconIndex(This,rhs) \ - ( (This)->lpVtbl -> put_IconIndex(This,rhs) ) - -#define IMsRdpClientAdvancedSettings_put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ - ( (This)->lpVtbl -> put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) - -#define IMsRdpClientAdvancedSettings_get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ - ( (This)->lpVtbl -> get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) - -#define IMsRdpClientAdvancedSettings_put_DisableRdpdr(This,pDisableRdpdr) \ - ( (This)->lpVtbl -> put_DisableRdpdr(This,pDisableRdpdr) ) - -#define IMsRdpClientAdvancedSettings_get_DisableRdpdr(This,pDisableRdpdr) \ - ( (This)->lpVtbl -> get_DisableRdpdr(This,pDisableRdpdr) ) - - -#define IMsRdpClientAdvancedSettings_put_SmoothScroll(This,psmoothScroll) \ - ( (This)->lpVtbl -> put_SmoothScroll(This,psmoothScroll) ) - -#define IMsRdpClientAdvancedSettings_get_SmoothScroll(This,psmoothScroll) \ - ( (This)->lpVtbl -> get_SmoothScroll(This,psmoothScroll) ) - -#define IMsRdpClientAdvancedSettings_put_AcceleratorPassthrough(This,pacceleratorPassthrough) \ - ( (This)->lpVtbl -> put_AcceleratorPassthrough(This,pacceleratorPassthrough) ) - -#define IMsRdpClientAdvancedSettings_get_AcceleratorPassthrough(This,pacceleratorPassthrough) \ - ( (This)->lpVtbl -> get_AcceleratorPassthrough(This,pacceleratorPassthrough) ) - -#define IMsRdpClientAdvancedSettings_put_ShadowBitmap(This,pshadowBitmap) \ - ( (This)->lpVtbl -> put_ShadowBitmap(This,pshadowBitmap) ) - -#define IMsRdpClientAdvancedSettings_get_ShadowBitmap(This,pshadowBitmap) \ - ( (This)->lpVtbl -> get_ShadowBitmap(This,pshadowBitmap) ) - -#define IMsRdpClientAdvancedSettings_put_TransportType(This,ptransportType) \ - ( (This)->lpVtbl -> put_TransportType(This,ptransportType) ) - -#define IMsRdpClientAdvancedSettings_get_TransportType(This,ptransportType) \ - ( (This)->lpVtbl -> get_TransportType(This,ptransportType) ) - -#define IMsRdpClientAdvancedSettings_put_SasSequence(This,psasSequence) \ - ( (This)->lpVtbl -> put_SasSequence(This,psasSequence) ) - -#define IMsRdpClientAdvancedSettings_get_SasSequence(This,psasSequence) \ - ( (This)->lpVtbl -> get_SasSequence(This,psasSequence) ) - -#define IMsRdpClientAdvancedSettings_put_EncryptionEnabled(This,pencryptionEnabled) \ - ( (This)->lpVtbl -> put_EncryptionEnabled(This,pencryptionEnabled) ) - -#define IMsRdpClientAdvancedSettings_get_EncryptionEnabled(This,pencryptionEnabled) \ - ( (This)->lpVtbl -> get_EncryptionEnabled(This,pencryptionEnabled) ) - -#define IMsRdpClientAdvancedSettings_put_DedicatedTerminal(This,pdedicatedTerminal) \ - ( (This)->lpVtbl -> put_DedicatedTerminal(This,pdedicatedTerminal) ) - -#define IMsRdpClientAdvancedSettings_get_DedicatedTerminal(This,pdedicatedTerminal) \ - ( (This)->lpVtbl -> get_DedicatedTerminal(This,pdedicatedTerminal) ) - -#define IMsRdpClientAdvancedSettings_put_RDPPort(This,prdpPort) \ - ( (This)->lpVtbl -> put_RDPPort(This,prdpPort) ) - -#define IMsRdpClientAdvancedSettings_get_RDPPort(This,prdpPort) \ - ( (This)->lpVtbl -> get_RDPPort(This,prdpPort) ) - -#define IMsRdpClientAdvancedSettings_put_EnableMouse(This,penableMouse) \ - ( (This)->lpVtbl -> put_EnableMouse(This,penableMouse) ) - -#define IMsRdpClientAdvancedSettings_get_EnableMouse(This,penableMouse) \ - ( (This)->lpVtbl -> get_EnableMouse(This,penableMouse) ) - -#define IMsRdpClientAdvancedSettings_put_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ - ( (This)->lpVtbl -> put_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings_get_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ - ( (This)->lpVtbl -> get_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings_put_EnableWindowsKey(This,penableWindowsKey) \ - ( (This)->lpVtbl -> put_EnableWindowsKey(This,penableWindowsKey) ) - -#define IMsRdpClientAdvancedSettings_get_EnableWindowsKey(This,penableWindowsKey) \ - ( (This)->lpVtbl -> get_EnableWindowsKey(This,penableWindowsKey) ) - -#define IMsRdpClientAdvancedSettings_put_DoubleClickDetect(This,pdoubleClickDetect) \ - ( (This)->lpVtbl -> put_DoubleClickDetect(This,pdoubleClickDetect) ) - -#define IMsRdpClientAdvancedSettings_get_DoubleClickDetect(This,pdoubleClickDetect) \ - ( (This)->lpVtbl -> get_DoubleClickDetect(This,pdoubleClickDetect) ) - -#define IMsRdpClientAdvancedSettings_put_MaximizeShell(This,pmaximizeShell) \ - ( (This)->lpVtbl -> put_MaximizeShell(This,pmaximizeShell) ) - -#define IMsRdpClientAdvancedSettings_get_MaximizeShell(This,pmaximizeShell) \ - ( (This)->lpVtbl -> get_MaximizeShell(This,pmaximizeShell) ) - -#define IMsRdpClientAdvancedSettings_put_HotKeyFullScreen(This,photKeyFullScreen) \ - ( (This)->lpVtbl -> put_HotKeyFullScreen(This,photKeyFullScreen) ) - -#define IMsRdpClientAdvancedSettings_get_HotKeyFullScreen(This,photKeyFullScreen) \ - ( (This)->lpVtbl -> get_HotKeyFullScreen(This,photKeyFullScreen) ) - -#define IMsRdpClientAdvancedSettings_put_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ - ( (This)->lpVtbl -> put_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) - -#define IMsRdpClientAdvancedSettings_get_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ - ( (This)->lpVtbl -> get_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) - -#define IMsRdpClientAdvancedSettings_put_HotKeyAltEsc(This,photKeyAltEsc) \ - ( (This)->lpVtbl -> put_HotKeyAltEsc(This,photKeyAltEsc) ) - -#define IMsRdpClientAdvancedSettings_get_HotKeyAltEsc(This,photKeyAltEsc) \ - ( (This)->lpVtbl -> get_HotKeyAltEsc(This,photKeyAltEsc) ) - -#define IMsRdpClientAdvancedSettings_put_HotKeyAltTab(This,photKeyAltTab) \ - ( (This)->lpVtbl -> put_HotKeyAltTab(This,photKeyAltTab) ) - -#define IMsRdpClientAdvancedSettings_get_HotKeyAltTab(This,photKeyAltTab) \ - ( (This)->lpVtbl -> get_HotKeyAltTab(This,photKeyAltTab) ) - -#define IMsRdpClientAdvancedSettings_put_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ - ( (This)->lpVtbl -> put_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) - -#define IMsRdpClientAdvancedSettings_get_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ - ( (This)->lpVtbl -> get_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) - -#define IMsRdpClientAdvancedSettings_put_HotKeyAltSpace(This,photKeyAltSpace) \ - ( (This)->lpVtbl -> put_HotKeyAltSpace(This,photKeyAltSpace) ) - -#define IMsRdpClientAdvancedSettings_get_HotKeyAltSpace(This,photKeyAltSpace) \ - ( (This)->lpVtbl -> get_HotKeyAltSpace(This,photKeyAltSpace) ) - -#define IMsRdpClientAdvancedSettings_put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ - ( (This)->lpVtbl -> put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings_get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ - ( (This)->lpVtbl -> get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings_put_orderDrawThreshold(This,porderDrawThreshold) \ - ( (This)->lpVtbl -> put_orderDrawThreshold(This,porderDrawThreshold) ) - -#define IMsRdpClientAdvancedSettings_get_orderDrawThreshold(This,porderDrawThreshold) \ - ( (This)->lpVtbl -> get_orderDrawThreshold(This,porderDrawThreshold) ) - -#define IMsRdpClientAdvancedSettings_put_BitmapCacheSize(This,pbitmapCacheSize) \ - ( (This)->lpVtbl -> put_BitmapCacheSize(This,pbitmapCacheSize) ) - -#define IMsRdpClientAdvancedSettings_get_BitmapCacheSize(This,pbitmapCacheSize) \ - ( (This)->lpVtbl -> get_BitmapCacheSize(This,pbitmapCacheSize) ) - -#define IMsRdpClientAdvancedSettings_put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ - ( (This)->lpVtbl -> put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) - -#define IMsRdpClientAdvancedSettings_get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ - ( (This)->lpVtbl -> get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) - -#define IMsRdpClientAdvancedSettings_put_ScaleBitmapCachesByBPP(This,pbScale) \ - ( (This)->lpVtbl -> put_ScaleBitmapCachesByBPP(This,pbScale) ) - -#define IMsRdpClientAdvancedSettings_get_ScaleBitmapCachesByBPP(This,pbScale) \ - ( (This)->lpVtbl -> get_ScaleBitmapCachesByBPP(This,pbScale) ) - -#define IMsRdpClientAdvancedSettings_put_NumBitmapCaches(This,pnumBitmapCaches) \ - ( (This)->lpVtbl -> put_NumBitmapCaches(This,pnumBitmapCaches) ) - -#define IMsRdpClientAdvancedSettings_get_NumBitmapCaches(This,pnumBitmapCaches) \ - ( (This)->lpVtbl -> get_NumBitmapCaches(This,pnumBitmapCaches) ) - -#define IMsRdpClientAdvancedSettings_put_CachePersistenceActive(This,pcachePersistenceActive) \ - ( (This)->lpVtbl -> put_CachePersistenceActive(This,pcachePersistenceActive) ) - -#define IMsRdpClientAdvancedSettings_get_CachePersistenceActive(This,pcachePersistenceActive) \ - ( (This)->lpVtbl -> get_CachePersistenceActive(This,pcachePersistenceActive) ) - -#define IMsRdpClientAdvancedSettings_put_PersistCacheDirectory(This,rhs) \ - ( (This)->lpVtbl -> put_PersistCacheDirectory(This,rhs) ) - -#define IMsRdpClientAdvancedSettings_put_brushSupportLevel(This,pbrushSupportLevel) \ - ( (This)->lpVtbl -> put_brushSupportLevel(This,pbrushSupportLevel) ) - -#define IMsRdpClientAdvancedSettings_get_brushSupportLevel(This,pbrushSupportLevel) \ - ( (This)->lpVtbl -> get_brushSupportLevel(This,pbrushSupportLevel) ) - -#define IMsRdpClientAdvancedSettings_put_minInputSendInterval(This,pminInputSendInterval) \ - ( (This)->lpVtbl -> put_minInputSendInterval(This,pminInputSendInterval) ) - -#define IMsRdpClientAdvancedSettings_get_minInputSendInterval(This,pminInputSendInterval) \ - ( (This)->lpVtbl -> get_minInputSendInterval(This,pminInputSendInterval) ) - -#define IMsRdpClientAdvancedSettings_put_InputEventsAtOnce(This,pinputEventsAtOnce) \ - ( (This)->lpVtbl -> put_InputEventsAtOnce(This,pinputEventsAtOnce) ) - -#define IMsRdpClientAdvancedSettings_get_InputEventsAtOnce(This,pinputEventsAtOnce) \ - ( (This)->lpVtbl -> get_InputEventsAtOnce(This,pinputEventsAtOnce) ) - -#define IMsRdpClientAdvancedSettings_put_maxEventCount(This,pmaxEventCount) \ - ( (This)->lpVtbl -> put_maxEventCount(This,pmaxEventCount) ) - -#define IMsRdpClientAdvancedSettings_get_maxEventCount(This,pmaxEventCount) \ - ( (This)->lpVtbl -> get_maxEventCount(This,pmaxEventCount) ) - -#define IMsRdpClientAdvancedSettings_put_keepAliveInterval(This,pkeepAliveInterval) \ - ( (This)->lpVtbl -> put_keepAliveInterval(This,pkeepAliveInterval) ) - -#define IMsRdpClientAdvancedSettings_get_keepAliveInterval(This,pkeepAliveInterval) \ - ( (This)->lpVtbl -> get_keepAliveInterval(This,pkeepAliveInterval) ) - -#define IMsRdpClientAdvancedSettings_put_shutdownTimeout(This,pshutdownTimeout) \ - ( (This)->lpVtbl -> put_shutdownTimeout(This,pshutdownTimeout) ) - -#define IMsRdpClientAdvancedSettings_get_shutdownTimeout(This,pshutdownTimeout) \ - ( (This)->lpVtbl -> get_shutdownTimeout(This,pshutdownTimeout) ) - -#define IMsRdpClientAdvancedSettings_put_overallConnectionTimeout(This,poverallConnectionTimeout) \ - ( (This)->lpVtbl -> put_overallConnectionTimeout(This,poverallConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings_get_overallConnectionTimeout(This,poverallConnectionTimeout) \ - ( (This)->lpVtbl -> get_overallConnectionTimeout(This,poverallConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings_put_singleConnectionTimeout(This,psingleConnectionTimeout) \ - ( (This)->lpVtbl -> put_singleConnectionTimeout(This,psingleConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings_get_singleConnectionTimeout(This,psingleConnectionTimeout) \ - ( (This)->lpVtbl -> get_singleConnectionTimeout(This,psingleConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings_put_KeyboardType(This,pkeyboardType) \ - ( (This)->lpVtbl -> put_KeyboardType(This,pkeyboardType) ) - -#define IMsRdpClientAdvancedSettings_get_KeyboardType(This,pkeyboardType) \ - ( (This)->lpVtbl -> get_KeyboardType(This,pkeyboardType) ) - -#define IMsRdpClientAdvancedSettings_put_KeyboardSubType(This,pkeyboardSubType) \ - ( (This)->lpVtbl -> put_KeyboardSubType(This,pkeyboardSubType) ) - -#define IMsRdpClientAdvancedSettings_get_KeyboardSubType(This,pkeyboardSubType) \ - ( (This)->lpVtbl -> get_KeyboardSubType(This,pkeyboardSubType) ) - -#define IMsRdpClientAdvancedSettings_put_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ - ( (This)->lpVtbl -> put_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) - -#define IMsRdpClientAdvancedSettings_get_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ - ( (This)->lpVtbl -> get_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) - -#define IMsRdpClientAdvancedSettings_put_WinceFixedPalette(This,pwinceFixedPalette) \ - ( (This)->lpVtbl -> put_WinceFixedPalette(This,pwinceFixedPalette) ) - -#define IMsRdpClientAdvancedSettings_get_WinceFixedPalette(This,pwinceFixedPalette) \ - ( (This)->lpVtbl -> get_WinceFixedPalette(This,pwinceFixedPalette) ) - -#define IMsRdpClientAdvancedSettings_put_ConnectToServerConsole(This,pConnectToConsole) \ - ( (This)->lpVtbl -> put_ConnectToServerConsole(This,pConnectToConsole) ) - -#define IMsRdpClientAdvancedSettings_get_ConnectToServerConsole(This,pConnectToConsole) \ - ( (This)->lpVtbl -> get_ConnectToServerConsole(This,pConnectToConsole) ) - -#define IMsRdpClientAdvancedSettings_put_BitmapPersistence(This,pbitmapPersistence) \ - ( (This)->lpVtbl -> put_BitmapPersistence(This,pbitmapPersistence) ) - -#define IMsRdpClientAdvancedSettings_get_BitmapPersistence(This,pbitmapPersistence) \ - ( (This)->lpVtbl -> get_BitmapPersistence(This,pbitmapPersistence) ) - -#define IMsRdpClientAdvancedSettings_put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ - ( (This)->lpVtbl -> put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) - -#define IMsRdpClientAdvancedSettings_get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ - ( (This)->lpVtbl -> get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) - -#define IMsRdpClientAdvancedSettings_put_SmartSizing(This,pfSmartSizing) \ - ( (This)->lpVtbl -> put_SmartSizing(This,pfSmartSizing) ) - -#define IMsRdpClientAdvancedSettings_get_SmartSizing(This,pfSmartSizing) \ - ( (This)->lpVtbl -> get_SmartSizing(This,pfSmartSizing) ) - -#define IMsRdpClientAdvancedSettings_put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ - ( (This)->lpVtbl -> put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) - -#define IMsRdpClientAdvancedSettings_get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ - ( (This)->lpVtbl -> get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) - -#define IMsRdpClientAdvancedSettings_put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ - ( (This)->lpVtbl -> put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) - -#define IMsRdpClientAdvancedSettings_get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ - ( (This)->lpVtbl -> get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) - -#define IMsRdpClientAdvancedSettings_put_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ - ( (This)->lpVtbl -> put_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) - -#define IMsRdpClientAdvancedSettings_get_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ - ( (This)->lpVtbl -> get_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) - -#define IMsRdpClientAdvancedSettings_put_ClearTextPassword(This,rhs) \ - ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) - -#define IMsRdpClientAdvancedSettings_put_DisplayConnectionBar(This,pDisplayConnectionBar) \ - ( (This)->lpVtbl -> put_DisplayConnectionBar(This,pDisplayConnectionBar) ) - -#define IMsRdpClientAdvancedSettings_get_DisplayConnectionBar(This,pDisplayConnectionBar) \ - ( (This)->lpVtbl -> get_DisplayConnectionBar(This,pDisplayConnectionBar) ) - -#define IMsRdpClientAdvancedSettings_put_PinConnectionBar(This,pPinConnectionBar) \ - ( (This)->lpVtbl -> put_PinConnectionBar(This,pPinConnectionBar) ) - -#define IMsRdpClientAdvancedSettings_get_PinConnectionBar(This,pPinConnectionBar) \ - ( (This)->lpVtbl -> get_PinConnectionBar(This,pPinConnectionBar) ) - -#define IMsRdpClientAdvancedSettings_put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ - ( (This)->lpVtbl -> put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) - -#define IMsRdpClientAdvancedSettings_get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ - ( (This)->lpVtbl -> get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) - -#define IMsRdpClientAdvancedSettings_put_LoadBalanceInfo(This,pLBInfo) \ - ( (This)->lpVtbl -> put_LoadBalanceInfo(This,pLBInfo) ) - -#define IMsRdpClientAdvancedSettings_get_LoadBalanceInfo(This,pLBInfo) \ - ( (This)->lpVtbl -> get_LoadBalanceInfo(This,pLBInfo) ) - -#define IMsRdpClientAdvancedSettings_put_RedirectDrives(This,pRedirectDrives) \ - ( (This)->lpVtbl -> put_RedirectDrives(This,pRedirectDrives) ) - -#define IMsRdpClientAdvancedSettings_get_RedirectDrives(This,pRedirectDrives) \ - ( (This)->lpVtbl -> get_RedirectDrives(This,pRedirectDrives) ) - -#define IMsRdpClientAdvancedSettings_put_RedirectPrinters(This,pRedirectPrinters) \ - ( (This)->lpVtbl -> put_RedirectPrinters(This,pRedirectPrinters) ) - -#define IMsRdpClientAdvancedSettings_get_RedirectPrinters(This,pRedirectPrinters) \ - ( (This)->lpVtbl -> get_RedirectPrinters(This,pRedirectPrinters) ) - -#define IMsRdpClientAdvancedSettings_put_RedirectPorts(This,pRedirectPorts) \ - ( (This)->lpVtbl -> put_RedirectPorts(This,pRedirectPorts) ) - -#define IMsRdpClientAdvancedSettings_get_RedirectPorts(This,pRedirectPorts) \ - ( (This)->lpVtbl -> get_RedirectPorts(This,pRedirectPorts) ) - -#define IMsRdpClientAdvancedSettings_put_RedirectSmartCards(This,pRedirectSmartCards) \ - ( (This)->lpVtbl -> put_RedirectSmartCards(This,pRedirectSmartCards) ) - -#define IMsRdpClientAdvancedSettings_get_RedirectSmartCards(This,pRedirectSmartCards) \ - ( (This)->lpVtbl -> get_RedirectSmartCards(This,pRedirectSmartCards) ) - -#define IMsRdpClientAdvancedSettings_put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ - ( (This)->lpVtbl -> put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) - -#define IMsRdpClientAdvancedSettings_get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ - ( (This)->lpVtbl -> get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) - -#define IMsRdpClientAdvancedSettings_put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ - ( (This)->lpVtbl -> put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) - -#define IMsRdpClientAdvancedSettings_get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ - ( (This)->lpVtbl -> get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) - -#define IMsRdpClientAdvancedSettings_put_PerformanceFlags(This,pDisableList) \ - ( (This)->lpVtbl -> put_PerformanceFlags(This,pDisableList) ) - -#define IMsRdpClientAdvancedSettings_get_PerformanceFlags(This,pDisableList) \ - ( (This)->lpVtbl -> get_PerformanceFlags(This,pDisableList) ) - -#define IMsRdpClientAdvancedSettings_put_ConnectWithEndpoint(This,rhs) \ - ( (This)->lpVtbl -> put_ConnectWithEndpoint(This,rhs) ) - -#define IMsRdpClientAdvancedSettings_put_NotifyTSPublicKey(This,pfNotify) \ - ( (This)->lpVtbl -> put_NotifyTSPublicKey(This,pfNotify) ) - -#define IMsRdpClientAdvancedSettings_get_NotifyTSPublicKey(This,pfNotify) \ - ( (This)->lpVtbl -> get_NotifyTSPublicKey(This,pfNotify) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_get_RedirectSmartCards_Proxy( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards); - - -void __RPC_STUB IMsRdpClientAdvancedSettings_get_RedirectSmartCards_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_put_BitmapVirtualCache16BppSize_Proxy( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pBitmapVirtualCache16BppSize); - - -void __RPC_STUB IMsRdpClientAdvancedSettings_put_BitmapVirtualCache16BppSize_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_get_BitmapVirtualCache16BppSize_Proxy( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pBitmapVirtualCache16BppSize); - - -void __RPC_STUB IMsRdpClientAdvancedSettings_get_BitmapVirtualCache16BppSize_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_put_BitmapVirtualCache24BppSize_Proxy( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pBitmapVirtualCache24BppSize); - - -void __RPC_STUB IMsRdpClientAdvancedSettings_put_BitmapVirtualCache24BppSize_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_get_BitmapVirtualCache24BppSize_Proxy( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pBitmapVirtualCache24BppSize); - - -void __RPC_STUB IMsRdpClientAdvancedSettings_get_BitmapVirtualCache24BppSize_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_put_PerformanceFlags_Proxy( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pDisableList); - - -void __RPC_STUB IMsRdpClientAdvancedSettings_put_PerformanceFlags_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_get_PerformanceFlags_Proxy( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pDisableList); - - -void __RPC_STUB IMsRdpClientAdvancedSettings_get_PerformanceFlags_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_put_ConnectWithEndpoint_Proxy( - IMsRdpClientAdvancedSettings * This, - /* [in] */ VARIANT *rhs); - - -void __RPC_STUB IMsRdpClientAdvancedSettings_put_ConnectWithEndpoint_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_put_NotifyTSPublicKey_Proxy( - IMsRdpClientAdvancedSettings * This, - /* [in] */ VARIANT_BOOL pfNotify); - - -void __RPC_STUB IMsRdpClientAdvancedSettings_put_NotifyTSPublicKey_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_get_NotifyTSPublicKey_Proxy( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ VARIANT_BOOL *pfNotify); - - -void __RPC_STUB IMsRdpClientAdvancedSettings_get_NotifyTSPublicKey_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IMsRdpClientAdvancedSettings_INTERFACE_DEFINED__ */ - - -#ifndef __IMsRdpClientAdvancedSettings2_INTERFACE_DEFINED__ -#define __IMsRdpClientAdvancedSettings2_INTERFACE_DEFINED__ - -/* interface IMsRdpClientAdvancedSettings2 */ -/* [object][oleautomation][dual][uuid] */ - - -EXTERN_C const IID IID_IMsRdpClientAdvancedSettings2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9AC42117-2B76-4320-AA44-0E616AB8437B") - IMsRdpClientAdvancedSettings2 : public IMsRdpClientAdvancedSettings - { - public: - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CanAutoReconnect( - /* [retval][out] */ VARIANT_BOOL *pfCanAutoReconnect) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_EnableAutoReconnect( - /* [in] */ VARIANT_BOOL pfEnableAutoReconnect) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_EnableAutoReconnect( - /* [retval][out] */ VARIANT_BOOL *pfEnableAutoReconnect) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_MaxReconnectAttempts( - /* [in] */ long pMaxReconnectAttempts) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_MaxReconnectAttempts( - /* [retval][out] */ long *pMaxReconnectAttempts) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsRdpClientAdvancedSettings2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsRdpClientAdvancedSettings2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsRdpClientAdvancedSettings2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsRdpClientAdvancedSettings2 * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Compress )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pcompress); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Compress )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pcompress); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPeristence )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pbitmapPeristence); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPeristence )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pbitmapPeristence); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_allowBackgroundInput )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pallowBackgroundInput); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_allowBackgroundInput )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pallowBackgroundInput); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyBoardLayoutStr )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PluginDlls )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconFile )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconIndex )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerHandledFullScreen )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pContainerHandledFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerHandledFullScreen )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pContainerHandledFullScreen); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableRdpdr )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pDisableRdpdr); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableRdpdr )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pDisableRdpdr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmoothScroll )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long psmoothScroll); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmoothScroll )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *psmoothScroll); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AcceleratorPassthrough )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pacceleratorPassthrough); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AcceleratorPassthrough )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pacceleratorPassthrough); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShadowBitmap )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pshadowBitmap); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShadowBitmap )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pshadowBitmap); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TransportType )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long ptransportType); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TransportType )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *ptransportType); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SasSequence )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long psasSequence); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SasSequence )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *psasSequence); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EncryptionEnabled )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pencryptionEnabled); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EncryptionEnabled )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pencryptionEnabled); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DedicatedTerminal )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pdedicatedTerminal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DedicatedTerminal )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pdedicatedTerminal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RDPPort )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long prdpPort); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RDPPort )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *prdpPort); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableMouse )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long penableMouse); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableMouse )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *penableMouse); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableCtrlAltDel )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pdisableCtrlAltDel); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableCtrlAltDel )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pdisableCtrlAltDel); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableWindowsKey )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long penableWindowsKey); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableWindowsKey )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *penableWindowsKey); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DoubleClickDetect )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pdoubleClickDetect); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DoubleClickDetect )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pdoubleClickDetect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaximizeShell )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pmaximizeShell); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaximizeShell )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pmaximizeShell); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyFullScreen )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long photKeyFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyFullScreen )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *photKeyFullScreen); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlEsc )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long photKeyCtrlEsc); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlEsc )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *photKeyCtrlEsc); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltEsc )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long photKeyAltEsc); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltEsc )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *photKeyAltEsc); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltTab )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long photKeyAltTab); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltTab )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *photKeyAltTab); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltShiftTab )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long photKeyAltShiftTab); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltShiftTab )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *photKeyAltShiftTab); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltSpace )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long photKeyAltSpace); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltSpace )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *photKeyAltSpace); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlAltDel )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long photKeyCtrlAltDel); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlAltDel )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *photKeyCtrlAltDel); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_orderDrawThreshold )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long porderDrawThreshold); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_orderDrawThreshold )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *porderDrawThreshold); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapCacheSize )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pbitmapCacheSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapCacheSize )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pbitmapCacheSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCacheSize )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pbitmapVirtualCacheSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCacheSize )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pbitmapVirtualCacheSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleBitmapCachesByBPP )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pbScale); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleBitmapCachesByBPP )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pbScale); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NumBitmapCaches )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pnumBitmapCaches); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumBitmapCaches )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pnumBitmapCaches); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CachePersistenceActive )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pcachePersistenceActive); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CachePersistenceActive )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pcachePersistenceActive); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PersistCacheDirectory )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_brushSupportLevel )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pbrushSupportLevel); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_brushSupportLevel )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pbrushSupportLevel); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_minInputSendInterval )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pminInputSendInterval); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_minInputSendInterval )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pminInputSendInterval); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InputEventsAtOnce )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pinputEventsAtOnce); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InputEventsAtOnce )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pinputEventsAtOnce); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_maxEventCount )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pmaxEventCount); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_maxEventCount )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pmaxEventCount); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_keepAliveInterval )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pkeepAliveInterval); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_keepAliveInterval )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pkeepAliveInterval); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_shutdownTimeout )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pshutdownTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_shutdownTimeout )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pshutdownTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_overallConnectionTimeout )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long poverallConnectionTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_overallConnectionTimeout )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *poverallConnectionTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_singleConnectionTimeout )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long psingleConnectionTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_singleConnectionTimeout )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *psingleConnectionTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardType )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pkeyboardType); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardType )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pkeyboardType); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardSubType )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pkeyboardSubType); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardSubType )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pkeyboardSubType); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardFunctionKey )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pkeyboardFunctionKey); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardFunctionKey )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pkeyboardFunctionKey); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WinceFixedPalette )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pwinceFixedPalette); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WinceFixedPalette )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pwinceFixedPalette); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectToServerConsole )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ VARIANT_BOOL pConnectToConsole); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectToServerConsole )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pConnectToConsole); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPersistence )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pbitmapPersistence); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPersistence )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pbitmapPersistence); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MinutesToIdleTimeout )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pminutesToIdleTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MinutesToIdleTimeout )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pminutesToIdleTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmartSizing )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ VARIANT_BOOL pfSmartSizing); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmartSizing )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pfSmartSizing); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrLocalPrintingDocName )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ BSTR pLocalPrintingDocName); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrLocalPrintingDocName )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ BSTR *pLocalPrintingDocName); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipCleanTempDirString )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ BSTR clipCleanTempDirString); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipCleanTempDirString )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ BSTR *clipCleanTempDirString); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipPasteInfoString )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ BSTR clipPasteInfoString); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipPasteInfoString )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ BSTR *clipPasteInfoString); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisplayConnectionBar )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ VARIANT_BOOL pDisplayConnectionBar); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisplayConnectionBar )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pDisplayConnectionBar); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PinConnectionBar )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ VARIANT_BOOL pPinConnectionBar); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PinConnectionBar )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pPinConnectionBar); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GrabFocusOnConnect )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ VARIANT_BOOL pfGrabFocusOnConnect); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GrabFocusOnConnect )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pfGrabFocusOnConnect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LoadBalanceInfo )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ BSTR pLBInfo); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LoadBalanceInfo )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ BSTR *pLBInfo); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectDrives )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ VARIANT_BOOL pRedirectDrives); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectDrives )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectDrives); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPrinters )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ VARIANT_BOOL pRedirectPrinters); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPrinters )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectPrinters); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPorts )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ VARIANT_BOOL pRedirectPorts); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPorts )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectPorts); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectSmartCards )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ VARIANT_BOOL pRedirectSmartCards); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectSmartCards )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache16BppSize )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pBitmapVirtualCache16BppSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache16BppSize )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pBitmapVirtualCache16BppSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache24BppSize )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pBitmapVirtualCache24BppSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache24BppSize )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pBitmapVirtualCache24BppSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PerformanceFlags )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pDisableList); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PerformanceFlags )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pDisableList); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectWithEndpoint )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ VARIANT *rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NotifyTSPublicKey )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ VARIANT_BOOL pfNotify); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NotifyTSPublicKey )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pfNotify); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CanAutoReconnect )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pfCanAutoReconnect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableAutoReconnect )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ VARIANT_BOOL pfEnableAutoReconnect); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableAutoReconnect )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pfEnableAutoReconnect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaxReconnectAttempts )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pMaxReconnectAttempts); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaxReconnectAttempts )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pMaxReconnectAttempts); - - END_INTERFACE - } IMsRdpClientAdvancedSettings2Vtbl; - - interface IMsRdpClientAdvancedSettings2 - { - CONST_VTBL struct IMsRdpClientAdvancedSettings2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsRdpClientAdvancedSettings2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsRdpClientAdvancedSettings2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsRdpClientAdvancedSettings2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsRdpClientAdvancedSettings2_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsRdpClientAdvancedSettings2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsRdpClientAdvancedSettings2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsRdpClientAdvancedSettings2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IMsRdpClientAdvancedSettings2_put_Compress(This,pcompress) \ - ( (This)->lpVtbl -> put_Compress(This,pcompress) ) - -#define IMsRdpClientAdvancedSettings2_get_Compress(This,pcompress) \ - ( (This)->lpVtbl -> get_Compress(This,pcompress) ) - -#define IMsRdpClientAdvancedSettings2_put_BitmapPeristence(This,pbitmapPeristence) \ - ( (This)->lpVtbl -> put_BitmapPeristence(This,pbitmapPeristence) ) - -#define IMsRdpClientAdvancedSettings2_get_BitmapPeristence(This,pbitmapPeristence) \ - ( (This)->lpVtbl -> get_BitmapPeristence(This,pbitmapPeristence) ) - -#define IMsRdpClientAdvancedSettings2_put_allowBackgroundInput(This,pallowBackgroundInput) \ - ( (This)->lpVtbl -> put_allowBackgroundInput(This,pallowBackgroundInput) ) - -#define IMsRdpClientAdvancedSettings2_get_allowBackgroundInput(This,pallowBackgroundInput) \ - ( (This)->lpVtbl -> get_allowBackgroundInput(This,pallowBackgroundInput) ) - -#define IMsRdpClientAdvancedSettings2_put_KeyBoardLayoutStr(This,rhs) \ - ( (This)->lpVtbl -> put_KeyBoardLayoutStr(This,rhs) ) - -#define IMsRdpClientAdvancedSettings2_put_PluginDlls(This,rhs) \ - ( (This)->lpVtbl -> put_PluginDlls(This,rhs) ) - -#define IMsRdpClientAdvancedSettings2_put_IconFile(This,rhs) \ - ( (This)->lpVtbl -> put_IconFile(This,rhs) ) - -#define IMsRdpClientAdvancedSettings2_put_IconIndex(This,rhs) \ - ( (This)->lpVtbl -> put_IconIndex(This,rhs) ) - -#define IMsRdpClientAdvancedSettings2_put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ - ( (This)->lpVtbl -> put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) - -#define IMsRdpClientAdvancedSettings2_get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ - ( (This)->lpVtbl -> get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) - -#define IMsRdpClientAdvancedSettings2_put_DisableRdpdr(This,pDisableRdpdr) \ - ( (This)->lpVtbl -> put_DisableRdpdr(This,pDisableRdpdr) ) - -#define IMsRdpClientAdvancedSettings2_get_DisableRdpdr(This,pDisableRdpdr) \ - ( (This)->lpVtbl -> get_DisableRdpdr(This,pDisableRdpdr) ) - - -#define IMsRdpClientAdvancedSettings2_put_SmoothScroll(This,psmoothScroll) \ - ( (This)->lpVtbl -> put_SmoothScroll(This,psmoothScroll) ) - -#define IMsRdpClientAdvancedSettings2_get_SmoothScroll(This,psmoothScroll) \ - ( (This)->lpVtbl -> get_SmoothScroll(This,psmoothScroll) ) - -#define IMsRdpClientAdvancedSettings2_put_AcceleratorPassthrough(This,pacceleratorPassthrough) \ - ( (This)->lpVtbl -> put_AcceleratorPassthrough(This,pacceleratorPassthrough) ) - -#define IMsRdpClientAdvancedSettings2_get_AcceleratorPassthrough(This,pacceleratorPassthrough) \ - ( (This)->lpVtbl -> get_AcceleratorPassthrough(This,pacceleratorPassthrough) ) - -#define IMsRdpClientAdvancedSettings2_put_ShadowBitmap(This,pshadowBitmap) \ - ( (This)->lpVtbl -> put_ShadowBitmap(This,pshadowBitmap) ) - -#define IMsRdpClientAdvancedSettings2_get_ShadowBitmap(This,pshadowBitmap) \ - ( (This)->lpVtbl -> get_ShadowBitmap(This,pshadowBitmap) ) - -#define IMsRdpClientAdvancedSettings2_put_TransportType(This,ptransportType) \ - ( (This)->lpVtbl -> put_TransportType(This,ptransportType) ) - -#define IMsRdpClientAdvancedSettings2_get_TransportType(This,ptransportType) \ - ( (This)->lpVtbl -> get_TransportType(This,ptransportType) ) - -#define IMsRdpClientAdvancedSettings2_put_SasSequence(This,psasSequence) \ - ( (This)->lpVtbl -> put_SasSequence(This,psasSequence) ) - -#define IMsRdpClientAdvancedSettings2_get_SasSequence(This,psasSequence) \ - ( (This)->lpVtbl -> get_SasSequence(This,psasSequence) ) - -#define IMsRdpClientAdvancedSettings2_put_EncryptionEnabled(This,pencryptionEnabled) \ - ( (This)->lpVtbl -> put_EncryptionEnabled(This,pencryptionEnabled) ) - -#define IMsRdpClientAdvancedSettings2_get_EncryptionEnabled(This,pencryptionEnabled) \ - ( (This)->lpVtbl -> get_EncryptionEnabled(This,pencryptionEnabled) ) - -#define IMsRdpClientAdvancedSettings2_put_DedicatedTerminal(This,pdedicatedTerminal) \ - ( (This)->lpVtbl -> put_DedicatedTerminal(This,pdedicatedTerminal) ) - -#define IMsRdpClientAdvancedSettings2_get_DedicatedTerminal(This,pdedicatedTerminal) \ - ( (This)->lpVtbl -> get_DedicatedTerminal(This,pdedicatedTerminal) ) - -#define IMsRdpClientAdvancedSettings2_put_RDPPort(This,prdpPort) \ - ( (This)->lpVtbl -> put_RDPPort(This,prdpPort) ) - -#define IMsRdpClientAdvancedSettings2_get_RDPPort(This,prdpPort) \ - ( (This)->lpVtbl -> get_RDPPort(This,prdpPort) ) - -#define IMsRdpClientAdvancedSettings2_put_EnableMouse(This,penableMouse) \ - ( (This)->lpVtbl -> put_EnableMouse(This,penableMouse) ) - -#define IMsRdpClientAdvancedSettings2_get_EnableMouse(This,penableMouse) \ - ( (This)->lpVtbl -> get_EnableMouse(This,penableMouse) ) - -#define IMsRdpClientAdvancedSettings2_put_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ - ( (This)->lpVtbl -> put_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings2_get_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ - ( (This)->lpVtbl -> get_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings2_put_EnableWindowsKey(This,penableWindowsKey) \ - ( (This)->lpVtbl -> put_EnableWindowsKey(This,penableWindowsKey) ) - -#define IMsRdpClientAdvancedSettings2_get_EnableWindowsKey(This,penableWindowsKey) \ - ( (This)->lpVtbl -> get_EnableWindowsKey(This,penableWindowsKey) ) - -#define IMsRdpClientAdvancedSettings2_put_DoubleClickDetect(This,pdoubleClickDetect) \ - ( (This)->lpVtbl -> put_DoubleClickDetect(This,pdoubleClickDetect) ) - -#define IMsRdpClientAdvancedSettings2_get_DoubleClickDetect(This,pdoubleClickDetect) \ - ( (This)->lpVtbl -> get_DoubleClickDetect(This,pdoubleClickDetect) ) - -#define IMsRdpClientAdvancedSettings2_put_MaximizeShell(This,pmaximizeShell) \ - ( (This)->lpVtbl -> put_MaximizeShell(This,pmaximizeShell) ) - -#define IMsRdpClientAdvancedSettings2_get_MaximizeShell(This,pmaximizeShell) \ - ( (This)->lpVtbl -> get_MaximizeShell(This,pmaximizeShell) ) - -#define IMsRdpClientAdvancedSettings2_put_HotKeyFullScreen(This,photKeyFullScreen) \ - ( (This)->lpVtbl -> put_HotKeyFullScreen(This,photKeyFullScreen) ) - -#define IMsRdpClientAdvancedSettings2_get_HotKeyFullScreen(This,photKeyFullScreen) \ - ( (This)->lpVtbl -> get_HotKeyFullScreen(This,photKeyFullScreen) ) - -#define IMsRdpClientAdvancedSettings2_put_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ - ( (This)->lpVtbl -> put_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) - -#define IMsRdpClientAdvancedSettings2_get_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ - ( (This)->lpVtbl -> get_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) - -#define IMsRdpClientAdvancedSettings2_put_HotKeyAltEsc(This,photKeyAltEsc) \ - ( (This)->lpVtbl -> put_HotKeyAltEsc(This,photKeyAltEsc) ) - -#define IMsRdpClientAdvancedSettings2_get_HotKeyAltEsc(This,photKeyAltEsc) \ - ( (This)->lpVtbl -> get_HotKeyAltEsc(This,photKeyAltEsc) ) - -#define IMsRdpClientAdvancedSettings2_put_HotKeyAltTab(This,photKeyAltTab) \ - ( (This)->lpVtbl -> put_HotKeyAltTab(This,photKeyAltTab) ) - -#define IMsRdpClientAdvancedSettings2_get_HotKeyAltTab(This,photKeyAltTab) \ - ( (This)->lpVtbl -> get_HotKeyAltTab(This,photKeyAltTab) ) - -#define IMsRdpClientAdvancedSettings2_put_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ - ( (This)->lpVtbl -> put_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) - -#define IMsRdpClientAdvancedSettings2_get_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ - ( (This)->lpVtbl -> get_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) - -#define IMsRdpClientAdvancedSettings2_put_HotKeyAltSpace(This,photKeyAltSpace) \ - ( (This)->lpVtbl -> put_HotKeyAltSpace(This,photKeyAltSpace) ) - -#define IMsRdpClientAdvancedSettings2_get_HotKeyAltSpace(This,photKeyAltSpace) \ - ( (This)->lpVtbl -> get_HotKeyAltSpace(This,photKeyAltSpace) ) - -#define IMsRdpClientAdvancedSettings2_put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ - ( (This)->lpVtbl -> put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings2_get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ - ( (This)->lpVtbl -> get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings2_put_orderDrawThreshold(This,porderDrawThreshold) \ - ( (This)->lpVtbl -> put_orderDrawThreshold(This,porderDrawThreshold) ) - -#define IMsRdpClientAdvancedSettings2_get_orderDrawThreshold(This,porderDrawThreshold) \ - ( (This)->lpVtbl -> get_orderDrawThreshold(This,porderDrawThreshold) ) - -#define IMsRdpClientAdvancedSettings2_put_BitmapCacheSize(This,pbitmapCacheSize) \ - ( (This)->lpVtbl -> put_BitmapCacheSize(This,pbitmapCacheSize) ) - -#define IMsRdpClientAdvancedSettings2_get_BitmapCacheSize(This,pbitmapCacheSize) \ - ( (This)->lpVtbl -> get_BitmapCacheSize(This,pbitmapCacheSize) ) - -#define IMsRdpClientAdvancedSettings2_put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ - ( (This)->lpVtbl -> put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) - -#define IMsRdpClientAdvancedSettings2_get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ - ( (This)->lpVtbl -> get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) - -#define IMsRdpClientAdvancedSettings2_put_ScaleBitmapCachesByBPP(This,pbScale) \ - ( (This)->lpVtbl -> put_ScaleBitmapCachesByBPP(This,pbScale) ) - -#define IMsRdpClientAdvancedSettings2_get_ScaleBitmapCachesByBPP(This,pbScale) \ - ( (This)->lpVtbl -> get_ScaleBitmapCachesByBPP(This,pbScale) ) - -#define IMsRdpClientAdvancedSettings2_put_NumBitmapCaches(This,pnumBitmapCaches) \ - ( (This)->lpVtbl -> put_NumBitmapCaches(This,pnumBitmapCaches) ) - -#define IMsRdpClientAdvancedSettings2_get_NumBitmapCaches(This,pnumBitmapCaches) \ - ( (This)->lpVtbl -> get_NumBitmapCaches(This,pnumBitmapCaches) ) - -#define IMsRdpClientAdvancedSettings2_put_CachePersistenceActive(This,pcachePersistenceActive) \ - ( (This)->lpVtbl -> put_CachePersistenceActive(This,pcachePersistenceActive) ) - -#define IMsRdpClientAdvancedSettings2_get_CachePersistenceActive(This,pcachePersistenceActive) \ - ( (This)->lpVtbl -> get_CachePersistenceActive(This,pcachePersistenceActive) ) - -#define IMsRdpClientAdvancedSettings2_put_PersistCacheDirectory(This,rhs) \ - ( (This)->lpVtbl -> put_PersistCacheDirectory(This,rhs) ) - -#define IMsRdpClientAdvancedSettings2_put_brushSupportLevel(This,pbrushSupportLevel) \ - ( (This)->lpVtbl -> put_brushSupportLevel(This,pbrushSupportLevel) ) - -#define IMsRdpClientAdvancedSettings2_get_brushSupportLevel(This,pbrushSupportLevel) \ - ( (This)->lpVtbl -> get_brushSupportLevel(This,pbrushSupportLevel) ) - -#define IMsRdpClientAdvancedSettings2_put_minInputSendInterval(This,pminInputSendInterval) \ - ( (This)->lpVtbl -> put_minInputSendInterval(This,pminInputSendInterval) ) - -#define IMsRdpClientAdvancedSettings2_get_minInputSendInterval(This,pminInputSendInterval) \ - ( (This)->lpVtbl -> get_minInputSendInterval(This,pminInputSendInterval) ) - -#define IMsRdpClientAdvancedSettings2_put_InputEventsAtOnce(This,pinputEventsAtOnce) \ - ( (This)->lpVtbl -> put_InputEventsAtOnce(This,pinputEventsAtOnce) ) - -#define IMsRdpClientAdvancedSettings2_get_InputEventsAtOnce(This,pinputEventsAtOnce) \ - ( (This)->lpVtbl -> get_InputEventsAtOnce(This,pinputEventsAtOnce) ) - -#define IMsRdpClientAdvancedSettings2_put_maxEventCount(This,pmaxEventCount) \ - ( (This)->lpVtbl -> put_maxEventCount(This,pmaxEventCount) ) - -#define IMsRdpClientAdvancedSettings2_get_maxEventCount(This,pmaxEventCount) \ - ( (This)->lpVtbl -> get_maxEventCount(This,pmaxEventCount) ) - -#define IMsRdpClientAdvancedSettings2_put_keepAliveInterval(This,pkeepAliveInterval) \ - ( (This)->lpVtbl -> put_keepAliveInterval(This,pkeepAliveInterval) ) - -#define IMsRdpClientAdvancedSettings2_get_keepAliveInterval(This,pkeepAliveInterval) \ - ( (This)->lpVtbl -> get_keepAliveInterval(This,pkeepAliveInterval) ) - -#define IMsRdpClientAdvancedSettings2_put_shutdownTimeout(This,pshutdownTimeout) \ - ( (This)->lpVtbl -> put_shutdownTimeout(This,pshutdownTimeout) ) - -#define IMsRdpClientAdvancedSettings2_get_shutdownTimeout(This,pshutdownTimeout) \ - ( (This)->lpVtbl -> get_shutdownTimeout(This,pshutdownTimeout) ) - -#define IMsRdpClientAdvancedSettings2_put_overallConnectionTimeout(This,poverallConnectionTimeout) \ - ( (This)->lpVtbl -> put_overallConnectionTimeout(This,poverallConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings2_get_overallConnectionTimeout(This,poverallConnectionTimeout) \ - ( (This)->lpVtbl -> get_overallConnectionTimeout(This,poverallConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings2_put_singleConnectionTimeout(This,psingleConnectionTimeout) \ - ( (This)->lpVtbl -> put_singleConnectionTimeout(This,psingleConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings2_get_singleConnectionTimeout(This,psingleConnectionTimeout) \ - ( (This)->lpVtbl -> get_singleConnectionTimeout(This,psingleConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings2_put_KeyboardType(This,pkeyboardType) \ - ( (This)->lpVtbl -> put_KeyboardType(This,pkeyboardType) ) - -#define IMsRdpClientAdvancedSettings2_get_KeyboardType(This,pkeyboardType) \ - ( (This)->lpVtbl -> get_KeyboardType(This,pkeyboardType) ) - -#define IMsRdpClientAdvancedSettings2_put_KeyboardSubType(This,pkeyboardSubType) \ - ( (This)->lpVtbl -> put_KeyboardSubType(This,pkeyboardSubType) ) - -#define IMsRdpClientAdvancedSettings2_get_KeyboardSubType(This,pkeyboardSubType) \ - ( (This)->lpVtbl -> get_KeyboardSubType(This,pkeyboardSubType) ) - -#define IMsRdpClientAdvancedSettings2_put_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ - ( (This)->lpVtbl -> put_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) - -#define IMsRdpClientAdvancedSettings2_get_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ - ( (This)->lpVtbl -> get_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) - -#define IMsRdpClientAdvancedSettings2_put_WinceFixedPalette(This,pwinceFixedPalette) \ - ( (This)->lpVtbl -> put_WinceFixedPalette(This,pwinceFixedPalette) ) - -#define IMsRdpClientAdvancedSettings2_get_WinceFixedPalette(This,pwinceFixedPalette) \ - ( (This)->lpVtbl -> get_WinceFixedPalette(This,pwinceFixedPalette) ) - -#define IMsRdpClientAdvancedSettings2_put_ConnectToServerConsole(This,pConnectToConsole) \ - ( (This)->lpVtbl -> put_ConnectToServerConsole(This,pConnectToConsole) ) - -#define IMsRdpClientAdvancedSettings2_get_ConnectToServerConsole(This,pConnectToConsole) \ - ( (This)->lpVtbl -> get_ConnectToServerConsole(This,pConnectToConsole) ) - -#define IMsRdpClientAdvancedSettings2_put_BitmapPersistence(This,pbitmapPersistence) \ - ( (This)->lpVtbl -> put_BitmapPersistence(This,pbitmapPersistence) ) - -#define IMsRdpClientAdvancedSettings2_get_BitmapPersistence(This,pbitmapPersistence) \ - ( (This)->lpVtbl -> get_BitmapPersistence(This,pbitmapPersistence) ) - -#define IMsRdpClientAdvancedSettings2_put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ - ( (This)->lpVtbl -> put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) - -#define IMsRdpClientAdvancedSettings2_get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ - ( (This)->lpVtbl -> get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) - -#define IMsRdpClientAdvancedSettings2_put_SmartSizing(This,pfSmartSizing) \ - ( (This)->lpVtbl -> put_SmartSizing(This,pfSmartSizing) ) - -#define IMsRdpClientAdvancedSettings2_get_SmartSizing(This,pfSmartSizing) \ - ( (This)->lpVtbl -> get_SmartSizing(This,pfSmartSizing) ) - -#define IMsRdpClientAdvancedSettings2_put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ - ( (This)->lpVtbl -> put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) - -#define IMsRdpClientAdvancedSettings2_get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ - ( (This)->lpVtbl -> get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) - -#define IMsRdpClientAdvancedSettings2_put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ - ( (This)->lpVtbl -> put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) - -#define IMsRdpClientAdvancedSettings2_get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ - ( (This)->lpVtbl -> get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) - -#define IMsRdpClientAdvancedSettings2_put_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ - ( (This)->lpVtbl -> put_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) - -#define IMsRdpClientAdvancedSettings2_get_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ - ( (This)->lpVtbl -> get_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) - -#define IMsRdpClientAdvancedSettings2_put_ClearTextPassword(This,rhs) \ - ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) - -#define IMsRdpClientAdvancedSettings2_put_DisplayConnectionBar(This,pDisplayConnectionBar) \ - ( (This)->lpVtbl -> put_DisplayConnectionBar(This,pDisplayConnectionBar) ) - -#define IMsRdpClientAdvancedSettings2_get_DisplayConnectionBar(This,pDisplayConnectionBar) \ - ( (This)->lpVtbl -> get_DisplayConnectionBar(This,pDisplayConnectionBar) ) - -#define IMsRdpClientAdvancedSettings2_put_PinConnectionBar(This,pPinConnectionBar) \ - ( (This)->lpVtbl -> put_PinConnectionBar(This,pPinConnectionBar) ) - -#define IMsRdpClientAdvancedSettings2_get_PinConnectionBar(This,pPinConnectionBar) \ - ( (This)->lpVtbl -> get_PinConnectionBar(This,pPinConnectionBar) ) - -#define IMsRdpClientAdvancedSettings2_put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ - ( (This)->lpVtbl -> put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) - -#define IMsRdpClientAdvancedSettings2_get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ - ( (This)->lpVtbl -> get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) - -#define IMsRdpClientAdvancedSettings2_put_LoadBalanceInfo(This,pLBInfo) \ - ( (This)->lpVtbl -> put_LoadBalanceInfo(This,pLBInfo) ) - -#define IMsRdpClientAdvancedSettings2_get_LoadBalanceInfo(This,pLBInfo) \ - ( (This)->lpVtbl -> get_LoadBalanceInfo(This,pLBInfo) ) - -#define IMsRdpClientAdvancedSettings2_put_RedirectDrives(This,pRedirectDrives) \ - ( (This)->lpVtbl -> put_RedirectDrives(This,pRedirectDrives) ) - -#define IMsRdpClientAdvancedSettings2_get_RedirectDrives(This,pRedirectDrives) \ - ( (This)->lpVtbl -> get_RedirectDrives(This,pRedirectDrives) ) - -#define IMsRdpClientAdvancedSettings2_put_RedirectPrinters(This,pRedirectPrinters) \ - ( (This)->lpVtbl -> put_RedirectPrinters(This,pRedirectPrinters) ) - -#define IMsRdpClientAdvancedSettings2_get_RedirectPrinters(This,pRedirectPrinters) \ - ( (This)->lpVtbl -> get_RedirectPrinters(This,pRedirectPrinters) ) - -#define IMsRdpClientAdvancedSettings2_put_RedirectPorts(This,pRedirectPorts) \ - ( (This)->lpVtbl -> put_RedirectPorts(This,pRedirectPorts) ) - -#define IMsRdpClientAdvancedSettings2_get_RedirectPorts(This,pRedirectPorts) \ - ( (This)->lpVtbl -> get_RedirectPorts(This,pRedirectPorts) ) - -#define IMsRdpClientAdvancedSettings2_put_RedirectSmartCards(This,pRedirectSmartCards) \ - ( (This)->lpVtbl -> put_RedirectSmartCards(This,pRedirectSmartCards) ) - -#define IMsRdpClientAdvancedSettings2_get_RedirectSmartCards(This,pRedirectSmartCards) \ - ( (This)->lpVtbl -> get_RedirectSmartCards(This,pRedirectSmartCards) ) - -#define IMsRdpClientAdvancedSettings2_put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ - ( (This)->lpVtbl -> put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) - -#define IMsRdpClientAdvancedSettings2_get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ - ( (This)->lpVtbl -> get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) - -#define IMsRdpClientAdvancedSettings2_put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ - ( (This)->lpVtbl -> put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) - -#define IMsRdpClientAdvancedSettings2_get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ - ( (This)->lpVtbl -> get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) - -#define IMsRdpClientAdvancedSettings2_put_PerformanceFlags(This,pDisableList) \ - ( (This)->lpVtbl -> put_PerformanceFlags(This,pDisableList) ) - -#define IMsRdpClientAdvancedSettings2_get_PerformanceFlags(This,pDisableList) \ - ( (This)->lpVtbl -> get_PerformanceFlags(This,pDisableList) ) - -#define IMsRdpClientAdvancedSettings2_put_ConnectWithEndpoint(This,rhs) \ - ( (This)->lpVtbl -> put_ConnectWithEndpoint(This,rhs) ) - -#define IMsRdpClientAdvancedSettings2_put_NotifyTSPublicKey(This,pfNotify) \ - ( (This)->lpVtbl -> put_NotifyTSPublicKey(This,pfNotify) ) - -#define IMsRdpClientAdvancedSettings2_get_NotifyTSPublicKey(This,pfNotify) \ - ( (This)->lpVtbl -> get_NotifyTSPublicKey(This,pfNotify) ) - - -#define IMsRdpClientAdvancedSettings2_get_CanAutoReconnect(This,pfCanAutoReconnect) \ - ( (This)->lpVtbl -> get_CanAutoReconnect(This,pfCanAutoReconnect) ) - -#define IMsRdpClientAdvancedSettings2_put_EnableAutoReconnect(This,pfEnableAutoReconnect) \ - ( (This)->lpVtbl -> put_EnableAutoReconnect(This,pfEnableAutoReconnect) ) - -#define IMsRdpClientAdvancedSettings2_get_EnableAutoReconnect(This,pfEnableAutoReconnect) \ - ( (This)->lpVtbl -> get_EnableAutoReconnect(This,pfEnableAutoReconnect) ) - -#define IMsRdpClientAdvancedSettings2_put_MaxReconnectAttempts(This,pMaxReconnectAttempts) \ - ( (This)->lpVtbl -> put_MaxReconnectAttempts(This,pMaxReconnectAttempts) ) - -#define IMsRdpClientAdvancedSettings2_get_MaxReconnectAttempts(This,pMaxReconnectAttempts) \ - ( (This)->lpVtbl -> get_MaxReconnectAttempts(This,pMaxReconnectAttempts) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings2_get_CanAutoReconnect_Proxy( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pfCanAutoReconnect); - - -void __RPC_STUB IMsRdpClientAdvancedSettings2_get_CanAutoReconnect_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings2_put_EnableAutoReconnect_Proxy( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ VARIANT_BOOL pfEnableAutoReconnect); - - -void __RPC_STUB IMsRdpClientAdvancedSettings2_put_EnableAutoReconnect_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings2_get_EnableAutoReconnect_Proxy( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pfEnableAutoReconnect); - - -void __RPC_STUB IMsRdpClientAdvancedSettings2_get_EnableAutoReconnect_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings2_put_MaxReconnectAttempts_Proxy( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pMaxReconnectAttempts); - - -void __RPC_STUB IMsRdpClientAdvancedSettings2_put_MaxReconnectAttempts_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings2_get_MaxReconnectAttempts_Proxy( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pMaxReconnectAttempts); - - -void __RPC_STUB IMsRdpClientAdvancedSettings2_get_MaxReconnectAttempts_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IMsRdpClientAdvancedSettings2_INTERFACE_DEFINED__ */ - - -#ifndef __IMsRdpClientAdvancedSettings3_INTERFACE_DEFINED__ -#define __IMsRdpClientAdvancedSettings3_INTERFACE_DEFINED__ - -/* interface IMsRdpClientAdvancedSettings3 */ -/* [object][oleautomation][dual][uuid] */ - - -EXTERN_C const IID IID_IMsRdpClientAdvancedSettings3; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("19CD856B-C542-4C53-ACEE-F127E3BE1A59") - IMsRdpClientAdvancedSettings3 : public IMsRdpClientAdvancedSettings2 - { - public: - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectionBarShowMinimizeButton( - /* [in] */ VARIANT_BOOL pfShowMinimize) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ConnectionBarShowMinimizeButton( - /* [retval][out] */ VARIANT_BOOL *pfShowMinimize) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectionBarShowRestoreButton( - /* [in] */ VARIANT_BOOL pfShowRestore) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ConnectionBarShowRestoreButton( - /* [retval][out] */ VARIANT_BOOL *pfShowRestore) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsRdpClientAdvancedSettings3Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsRdpClientAdvancedSettings3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsRdpClientAdvancedSettings3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsRdpClientAdvancedSettings3 * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Compress )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pcompress); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Compress )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pcompress); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPeristence )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pbitmapPeristence); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPeristence )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pbitmapPeristence); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_allowBackgroundInput )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pallowBackgroundInput); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_allowBackgroundInput )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pallowBackgroundInput); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyBoardLayoutStr )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PluginDlls )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconFile )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconIndex )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerHandledFullScreen )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pContainerHandledFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerHandledFullScreen )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pContainerHandledFullScreen); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableRdpdr )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pDisableRdpdr); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableRdpdr )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pDisableRdpdr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmoothScroll )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long psmoothScroll); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmoothScroll )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *psmoothScroll); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AcceleratorPassthrough )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pacceleratorPassthrough); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AcceleratorPassthrough )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pacceleratorPassthrough); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShadowBitmap )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pshadowBitmap); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShadowBitmap )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pshadowBitmap); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TransportType )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long ptransportType); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TransportType )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *ptransportType); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SasSequence )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long psasSequence); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SasSequence )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *psasSequence); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EncryptionEnabled )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pencryptionEnabled); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EncryptionEnabled )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pencryptionEnabled); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DedicatedTerminal )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pdedicatedTerminal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DedicatedTerminal )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pdedicatedTerminal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RDPPort )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long prdpPort); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RDPPort )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *prdpPort); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableMouse )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long penableMouse); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableMouse )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *penableMouse); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableCtrlAltDel )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pdisableCtrlAltDel); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableCtrlAltDel )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pdisableCtrlAltDel); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableWindowsKey )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long penableWindowsKey); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableWindowsKey )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *penableWindowsKey); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DoubleClickDetect )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pdoubleClickDetect); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DoubleClickDetect )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pdoubleClickDetect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaximizeShell )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pmaximizeShell); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaximizeShell )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pmaximizeShell); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyFullScreen )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long photKeyFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyFullScreen )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *photKeyFullScreen); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlEsc )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long photKeyCtrlEsc); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlEsc )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *photKeyCtrlEsc); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltEsc )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long photKeyAltEsc); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltEsc )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *photKeyAltEsc); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltTab )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long photKeyAltTab); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltTab )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *photKeyAltTab); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltShiftTab )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long photKeyAltShiftTab); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltShiftTab )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *photKeyAltShiftTab); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltSpace )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long photKeyAltSpace); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltSpace )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *photKeyAltSpace); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlAltDel )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long photKeyCtrlAltDel); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlAltDel )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *photKeyCtrlAltDel); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_orderDrawThreshold )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long porderDrawThreshold); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_orderDrawThreshold )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *porderDrawThreshold); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapCacheSize )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pbitmapCacheSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapCacheSize )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pbitmapCacheSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCacheSize )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pbitmapVirtualCacheSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCacheSize )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pbitmapVirtualCacheSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleBitmapCachesByBPP )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pbScale); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleBitmapCachesByBPP )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pbScale); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NumBitmapCaches )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pnumBitmapCaches); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumBitmapCaches )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pnumBitmapCaches); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CachePersistenceActive )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pcachePersistenceActive); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CachePersistenceActive )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pcachePersistenceActive); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PersistCacheDirectory )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_brushSupportLevel )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pbrushSupportLevel); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_brushSupportLevel )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pbrushSupportLevel); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_minInputSendInterval )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pminInputSendInterval); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_minInputSendInterval )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pminInputSendInterval); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InputEventsAtOnce )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pinputEventsAtOnce); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InputEventsAtOnce )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pinputEventsAtOnce); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_maxEventCount )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pmaxEventCount); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_maxEventCount )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pmaxEventCount); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_keepAliveInterval )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pkeepAliveInterval); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_keepAliveInterval )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pkeepAliveInterval); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_shutdownTimeout )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pshutdownTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_shutdownTimeout )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pshutdownTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_overallConnectionTimeout )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long poverallConnectionTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_overallConnectionTimeout )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *poverallConnectionTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_singleConnectionTimeout )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long psingleConnectionTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_singleConnectionTimeout )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *psingleConnectionTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardType )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pkeyboardType); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardType )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pkeyboardType); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardSubType )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pkeyboardSubType); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardSubType )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pkeyboardSubType); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardFunctionKey )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pkeyboardFunctionKey); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardFunctionKey )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pkeyboardFunctionKey); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WinceFixedPalette )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pwinceFixedPalette); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WinceFixedPalette )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pwinceFixedPalette); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectToServerConsole )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pConnectToConsole); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectToServerConsole )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pConnectToConsole); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPersistence )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pbitmapPersistence); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPersistence )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pbitmapPersistence); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MinutesToIdleTimeout )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pminutesToIdleTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MinutesToIdleTimeout )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pminutesToIdleTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmartSizing )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pfSmartSizing); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmartSizing )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pfSmartSizing); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrLocalPrintingDocName )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ BSTR pLocalPrintingDocName); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrLocalPrintingDocName )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ BSTR *pLocalPrintingDocName); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipCleanTempDirString )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ BSTR clipCleanTempDirString); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipCleanTempDirString )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ BSTR *clipCleanTempDirString); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipPasteInfoString )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ BSTR clipPasteInfoString); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipPasteInfoString )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ BSTR *clipPasteInfoString); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisplayConnectionBar )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pDisplayConnectionBar); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisplayConnectionBar )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pDisplayConnectionBar); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PinConnectionBar )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pPinConnectionBar); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PinConnectionBar )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pPinConnectionBar); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GrabFocusOnConnect )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pfGrabFocusOnConnect); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GrabFocusOnConnect )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pfGrabFocusOnConnect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LoadBalanceInfo )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ BSTR pLBInfo); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LoadBalanceInfo )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ BSTR *pLBInfo); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectDrives )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pRedirectDrives); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectDrives )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectDrives); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPrinters )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pRedirectPrinters); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPrinters )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectPrinters); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPorts )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pRedirectPorts); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPorts )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectPorts); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectSmartCards )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pRedirectSmartCards); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectSmartCards )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache16BppSize )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pBitmapVirtualCache16BppSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache16BppSize )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pBitmapVirtualCache16BppSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache24BppSize )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pBitmapVirtualCache24BppSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache24BppSize )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pBitmapVirtualCache24BppSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PerformanceFlags )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pDisableList); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PerformanceFlags )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pDisableList); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectWithEndpoint )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT *rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NotifyTSPublicKey )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pfNotify); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NotifyTSPublicKey )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pfNotify); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CanAutoReconnect )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pfCanAutoReconnect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableAutoReconnect )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pfEnableAutoReconnect); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableAutoReconnect )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pfEnableAutoReconnect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaxReconnectAttempts )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pMaxReconnectAttempts); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaxReconnectAttempts )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pMaxReconnectAttempts); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectionBarShowMinimizeButton )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pfShowMinimize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectionBarShowMinimizeButton )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pfShowMinimize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectionBarShowRestoreButton )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pfShowRestore); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectionBarShowRestoreButton )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pfShowRestore); - - END_INTERFACE - } IMsRdpClientAdvancedSettings3Vtbl; - - interface IMsRdpClientAdvancedSettings3 - { - CONST_VTBL struct IMsRdpClientAdvancedSettings3Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsRdpClientAdvancedSettings3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsRdpClientAdvancedSettings3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsRdpClientAdvancedSettings3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsRdpClientAdvancedSettings3_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsRdpClientAdvancedSettings3_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsRdpClientAdvancedSettings3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsRdpClientAdvancedSettings3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IMsRdpClientAdvancedSettings3_put_Compress(This,pcompress) \ - ( (This)->lpVtbl -> put_Compress(This,pcompress) ) - -#define IMsRdpClientAdvancedSettings3_get_Compress(This,pcompress) \ - ( (This)->lpVtbl -> get_Compress(This,pcompress) ) - -#define IMsRdpClientAdvancedSettings3_put_BitmapPeristence(This,pbitmapPeristence) \ - ( (This)->lpVtbl -> put_BitmapPeristence(This,pbitmapPeristence) ) - -#define IMsRdpClientAdvancedSettings3_get_BitmapPeristence(This,pbitmapPeristence) \ - ( (This)->lpVtbl -> get_BitmapPeristence(This,pbitmapPeristence) ) - -#define IMsRdpClientAdvancedSettings3_put_allowBackgroundInput(This,pallowBackgroundInput) \ - ( (This)->lpVtbl -> put_allowBackgroundInput(This,pallowBackgroundInput) ) - -#define IMsRdpClientAdvancedSettings3_get_allowBackgroundInput(This,pallowBackgroundInput) \ - ( (This)->lpVtbl -> get_allowBackgroundInput(This,pallowBackgroundInput) ) - -#define IMsRdpClientAdvancedSettings3_put_KeyBoardLayoutStr(This,rhs) \ - ( (This)->lpVtbl -> put_KeyBoardLayoutStr(This,rhs) ) - -#define IMsRdpClientAdvancedSettings3_put_PluginDlls(This,rhs) \ - ( (This)->lpVtbl -> put_PluginDlls(This,rhs) ) - -#define IMsRdpClientAdvancedSettings3_put_IconFile(This,rhs) \ - ( (This)->lpVtbl -> put_IconFile(This,rhs) ) - -#define IMsRdpClientAdvancedSettings3_put_IconIndex(This,rhs) \ - ( (This)->lpVtbl -> put_IconIndex(This,rhs) ) - -#define IMsRdpClientAdvancedSettings3_put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ - ( (This)->lpVtbl -> put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) - -#define IMsRdpClientAdvancedSettings3_get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ - ( (This)->lpVtbl -> get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) - -#define IMsRdpClientAdvancedSettings3_put_DisableRdpdr(This,pDisableRdpdr) \ - ( (This)->lpVtbl -> put_DisableRdpdr(This,pDisableRdpdr) ) - -#define IMsRdpClientAdvancedSettings3_get_DisableRdpdr(This,pDisableRdpdr) \ - ( (This)->lpVtbl -> get_DisableRdpdr(This,pDisableRdpdr) ) - - -#define IMsRdpClientAdvancedSettings3_put_SmoothScroll(This,psmoothScroll) \ - ( (This)->lpVtbl -> put_SmoothScroll(This,psmoothScroll) ) - -#define IMsRdpClientAdvancedSettings3_get_SmoothScroll(This,psmoothScroll) \ - ( (This)->lpVtbl -> get_SmoothScroll(This,psmoothScroll) ) - -#define IMsRdpClientAdvancedSettings3_put_AcceleratorPassthrough(This,pacceleratorPassthrough) \ - ( (This)->lpVtbl -> put_AcceleratorPassthrough(This,pacceleratorPassthrough) ) - -#define IMsRdpClientAdvancedSettings3_get_AcceleratorPassthrough(This,pacceleratorPassthrough) \ - ( (This)->lpVtbl -> get_AcceleratorPassthrough(This,pacceleratorPassthrough) ) - -#define IMsRdpClientAdvancedSettings3_put_ShadowBitmap(This,pshadowBitmap) \ - ( (This)->lpVtbl -> put_ShadowBitmap(This,pshadowBitmap) ) - -#define IMsRdpClientAdvancedSettings3_get_ShadowBitmap(This,pshadowBitmap) \ - ( (This)->lpVtbl -> get_ShadowBitmap(This,pshadowBitmap) ) - -#define IMsRdpClientAdvancedSettings3_put_TransportType(This,ptransportType) \ - ( (This)->lpVtbl -> put_TransportType(This,ptransportType) ) - -#define IMsRdpClientAdvancedSettings3_get_TransportType(This,ptransportType) \ - ( (This)->lpVtbl -> get_TransportType(This,ptransportType) ) - -#define IMsRdpClientAdvancedSettings3_put_SasSequence(This,psasSequence) \ - ( (This)->lpVtbl -> put_SasSequence(This,psasSequence) ) - -#define IMsRdpClientAdvancedSettings3_get_SasSequence(This,psasSequence) \ - ( (This)->lpVtbl -> get_SasSequence(This,psasSequence) ) - -#define IMsRdpClientAdvancedSettings3_put_EncryptionEnabled(This,pencryptionEnabled) \ - ( (This)->lpVtbl -> put_EncryptionEnabled(This,pencryptionEnabled) ) - -#define IMsRdpClientAdvancedSettings3_get_EncryptionEnabled(This,pencryptionEnabled) \ - ( (This)->lpVtbl -> get_EncryptionEnabled(This,pencryptionEnabled) ) - -#define IMsRdpClientAdvancedSettings3_put_DedicatedTerminal(This,pdedicatedTerminal) \ - ( (This)->lpVtbl -> put_DedicatedTerminal(This,pdedicatedTerminal) ) - -#define IMsRdpClientAdvancedSettings3_get_DedicatedTerminal(This,pdedicatedTerminal) \ - ( (This)->lpVtbl -> get_DedicatedTerminal(This,pdedicatedTerminal) ) - -#define IMsRdpClientAdvancedSettings3_put_RDPPort(This,prdpPort) \ - ( (This)->lpVtbl -> put_RDPPort(This,prdpPort) ) - -#define IMsRdpClientAdvancedSettings3_get_RDPPort(This,prdpPort) \ - ( (This)->lpVtbl -> get_RDPPort(This,prdpPort) ) - -#define IMsRdpClientAdvancedSettings3_put_EnableMouse(This,penableMouse) \ - ( (This)->lpVtbl -> put_EnableMouse(This,penableMouse) ) - -#define IMsRdpClientAdvancedSettings3_get_EnableMouse(This,penableMouse) \ - ( (This)->lpVtbl -> get_EnableMouse(This,penableMouse) ) - -#define IMsRdpClientAdvancedSettings3_put_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ - ( (This)->lpVtbl -> put_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings3_get_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ - ( (This)->lpVtbl -> get_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings3_put_EnableWindowsKey(This,penableWindowsKey) \ - ( (This)->lpVtbl -> put_EnableWindowsKey(This,penableWindowsKey) ) - -#define IMsRdpClientAdvancedSettings3_get_EnableWindowsKey(This,penableWindowsKey) \ - ( (This)->lpVtbl -> get_EnableWindowsKey(This,penableWindowsKey) ) - -#define IMsRdpClientAdvancedSettings3_put_DoubleClickDetect(This,pdoubleClickDetect) \ - ( (This)->lpVtbl -> put_DoubleClickDetect(This,pdoubleClickDetect) ) - -#define IMsRdpClientAdvancedSettings3_get_DoubleClickDetect(This,pdoubleClickDetect) \ - ( (This)->lpVtbl -> get_DoubleClickDetect(This,pdoubleClickDetect) ) - -#define IMsRdpClientAdvancedSettings3_put_MaximizeShell(This,pmaximizeShell) \ - ( (This)->lpVtbl -> put_MaximizeShell(This,pmaximizeShell) ) - -#define IMsRdpClientAdvancedSettings3_get_MaximizeShell(This,pmaximizeShell) \ - ( (This)->lpVtbl -> get_MaximizeShell(This,pmaximizeShell) ) - -#define IMsRdpClientAdvancedSettings3_put_HotKeyFullScreen(This,photKeyFullScreen) \ - ( (This)->lpVtbl -> put_HotKeyFullScreen(This,photKeyFullScreen) ) - -#define IMsRdpClientAdvancedSettings3_get_HotKeyFullScreen(This,photKeyFullScreen) \ - ( (This)->lpVtbl -> get_HotKeyFullScreen(This,photKeyFullScreen) ) - -#define IMsRdpClientAdvancedSettings3_put_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ - ( (This)->lpVtbl -> put_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) - -#define IMsRdpClientAdvancedSettings3_get_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ - ( (This)->lpVtbl -> get_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) - -#define IMsRdpClientAdvancedSettings3_put_HotKeyAltEsc(This,photKeyAltEsc) \ - ( (This)->lpVtbl -> put_HotKeyAltEsc(This,photKeyAltEsc) ) - -#define IMsRdpClientAdvancedSettings3_get_HotKeyAltEsc(This,photKeyAltEsc) \ - ( (This)->lpVtbl -> get_HotKeyAltEsc(This,photKeyAltEsc) ) - -#define IMsRdpClientAdvancedSettings3_put_HotKeyAltTab(This,photKeyAltTab) \ - ( (This)->lpVtbl -> put_HotKeyAltTab(This,photKeyAltTab) ) - -#define IMsRdpClientAdvancedSettings3_get_HotKeyAltTab(This,photKeyAltTab) \ - ( (This)->lpVtbl -> get_HotKeyAltTab(This,photKeyAltTab) ) - -#define IMsRdpClientAdvancedSettings3_put_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ - ( (This)->lpVtbl -> put_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) - -#define IMsRdpClientAdvancedSettings3_get_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ - ( (This)->lpVtbl -> get_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) - -#define IMsRdpClientAdvancedSettings3_put_HotKeyAltSpace(This,photKeyAltSpace) \ - ( (This)->lpVtbl -> put_HotKeyAltSpace(This,photKeyAltSpace) ) - -#define IMsRdpClientAdvancedSettings3_get_HotKeyAltSpace(This,photKeyAltSpace) \ - ( (This)->lpVtbl -> get_HotKeyAltSpace(This,photKeyAltSpace) ) - -#define IMsRdpClientAdvancedSettings3_put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ - ( (This)->lpVtbl -> put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings3_get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ - ( (This)->lpVtbl -> get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings3_put_orderDrawThreshold(This,porderDrawThreshold) \ - ( (This)->lpVtbl -> put_orderDrawThreshold(This,porderDrawThreshold) ) - -#define IMsRdpClientAdvancedSettings3_get_orderDrawThreshold(This,porderDrawThreshold) \ - ( (This)->lpVtbl -> get_orderDrawThreshold(This,porderDrawThreshold) ) - -#define IMsRdpClientAdvancedSettings3_put_BitmapCacheSize(This,pbitmapCacheSize) \ - ( (This)->lpVtbl -> put_BitmapCacheSize(This,pbitmapCacheSize) ) - -#define IMsRdpClientAdvancedSettings3_get_BitmapCacheSize(This,pbitmapCacheSize) \ - ( (This)->lpVtbl -> get_BitmapCacheSize(This,pbitmapCacheSize) ) - -#define IMsRdpClientAdvancedSettings3_put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ - ( (This)->lpVtbl -> put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) - -#define IMsRdpClientAdvancedSettings3_get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ - ( (This)->lpVtbl -> get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) - -#define IMsRdpClientAdvancedSettings3_put_ScaleBitmapCachesByBPP(This,pbScale) \ - ( (This)->lpVtbl -> put_ScaleBitmapCachesByBPP(This,pbScale) ) - -#define IMsRdpClientAdvancedSettings3_get_ScaleBitmapCachesByBPP(This,pbScale) \ - ( (This)->lpVtbl -> get_ScaleBitmapCachesByBPP(This,pbScale) ) - -#define IMsRdpClientAdvancedSettings3_put_NumBitmapCaches(This,pnumBitmapCaches) \ - ( (This)->lpVtbl -> put_NumBitmapCaches(This,pnumBitmapCaches) ) - -#define IMsRdpClientAdvancedSettings3_get_NumBitmapCaches(This,pnumBitmapCaches) \ - ( (This)->lpVtbl -> get_NumBitmapCaches(This,pnumBitmapCaches) ) - -#define IMsRdpClientAdvancedSettings3_put_CachePersistenceActive(This,pcachePersistenceActive) \ - ( (This)->lpVtbl -> put_CachePersistenceActive(This,pcachePersistenceActive) ) - -#define IMsRdpClientAdvancedSettings3_get_CachePersistenceActive(This,pcachePersistenceActive) \ - ( (This)->lpVtbl -> get_CachePersistenceActive(This,pcachePersistenceActive) ) - -#define IMsRdpClientAdvancedSettings3_put_PersistCacheDirectory(This,rhs) \ - ( (This)->lpVtbl -> put_PersistCacheDirectory(This,rhs) ) - -#define IMsRdpClientAdvancedSettings3_put_brushSupportLevel(This,pbrushSupportLevel) \ - ( (This)->lpVtbl -> put_brushSupportLevel(This,pbrushSupportLevel) ) - -#define IMsRdpClientAdvancedSettings3_get_brushSupportLevel(This,pbrushSupportLevel) \ - ( (This)->lpVtbl -> get_brushSupportLevel(This,pbrushSupportLevel) ) - -#define IMsRdpClientAdvancedSettings3_put_minInputSendInterval(This,pminInputSendInterval) \ - ( (This)->lpVtbl -> put_minInputSendInterval(This,pminInputSendInterval) ) - -#define IMsRdpClientAdvancedSettings3_get_minInputSendInterval(This,pminInputSendInterval) \ - ( (This)->lpVtbl -> get_minInputSendInterval(This,pminInputSendInterval) ) - -#define IMsRdpClientAdvancedSettings3_put_InputEventsAtOnce(This,pinputEventsAtOnce) \ - ( (This)->lpVtbl -> put_InputEventsAtOnce(This,pinputEventsAtOnce) ) - -#define IMsRdpClientAdvancedSettings3_get_InputEventsAtOnce(This,pinputEventsAtOnce) \ - ( (This)->lpVtbl -> get_InputEventsAtOnce(This,pinputEventsAtOnce) ) - -#define IMsRdpClientAdvancedSettings3_put_maxEventCount(This,pmaxEventCount) \ - ( (This)->lpVtbl -> put_maxEventCount(This,pmaxEventCount) ) - -#define IMsRdpClientAdvancedSettings3_get_maxEventCount(This,pmaxEventCount) \ - ( (This)->lpVtbl -> get_maxEventCount(This,pmaxEventCount) ) - -#define IMsRdpClientAdvancedSettings3_put_keepAliveInterval(This,pkeepAliveInterval) \ - ( (This)->lpVtbl -> put_keepAliveInterval(This,pkeepAliveInterval) ) - -#define IMsRdpClientAdvancedSettings3_get_keepAliveInterval(This,pkeepAliveInterval) \ - ( (This)->lpVtbl -> get_keepAliveInterval(This,pkeepAliveInterval) ) - -#define IMsRdpClientAdvancedSettings3_put_shutdownTimeout(This,pshutdownTimeout) \ - ( (This)->lpVtbl -> put_shutdownTimeout(This,pshutdownTimeout) ) - -#define IMsRdpClientAdvancedSettings3_get_shutdownTimeout(This,pshutdownTimeout) \ - ( (This)->lpVtbl -> get_shutdownTimeout(This,pshutdownTimeout) ) - -#define IMsRdpClientAdvancedSettings3_put_overallConnectionTimeout(This,poverallConnectionTimeout) \ - ( (This)->lpVtbl -> put_overallConnectionTimeout(This,poverallConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings3_get_overallConnectionTimeout(This,poverallConnectionTimeout) \ - ( (This)->lpVtbl -> get_overallConnectionTimeout(This,poverallConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings3_put_singleConnectionTimeout(This,psingleConnectionTimeout) \ - ( (This)->lpVtbl -> put_singleConnectionTimeout(This,psingleConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings3_get_singleConnectionTimeout(This,psingleConnectionTimeout) \ - ( (This)->lpVtbl -> get_singleConnectionTimeout(This,psingleConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings3_put_KeyboardType(This,pkeyboardType) \ - ( (This)->lpVtbl -> put_KeyboardType(This,pkeyboardType) ) - -#define IMsRdpClientAdvancedSettings3_get_KeyboardType(This,pkeyboardType) \ - ( (This)->lpVtbl -> get_KeyboardType(This,pkeyboardType) ) - -#define IMsRdpClientAdvancedSettings3_put_KeyboardSubType(This,pkeyboardSubType) \ - ( (This)->lpVtbl -> put_KeyboardSubType(This,pkeyboardSubType) ) - -#define IMsRdpClientAdvancedSettings3_get_KeyboardSubType(This,pkeyboardSubType) \ - ( (This)->lpVtbl -> get_KeyboardSubType(This,pkeyboardSubType) ) - -#define IMsRdpClientAdvancedSettings3_put_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ - ( (This)->lpVtbl -> put_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) - -#define IMsRdpClientAdvancedSettings3_get_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ - ( (This)->lpVtbl -> get_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) - -#define IMsRdpClientAdvancedSettings3_put_WinceFixedPalette(This,pwinceFixedPalette) \ - ( (This)->lpVtbl -> put_WinceFixedPalette(This,pwinceFixedPalette) ) - -#define IMsRdpClientAdvancedSettings3_get_WinceFixedPalette(This,pwinceFixedPalette) \ - ( (This)->lpVtbl -> get_WinceFixedPalette(This,pwinceFixedPalette) ) - -#define IMsRdpClientAdvancedSettings3_put_ConnectToServerConsole(This,pConnectToConsole) \ - ( (This)->lpVtbl -> put_ConnectToServerConsole(This,pConnectToConsole) ) - -#define IMsRdpClientAdvancedSettings3_get_ConnectToServerConsole(This,pConnectToConsole) \ - ( (This)->lpVtbl -> get_ConnectToServerConsole(This,pConnectToConsole) ) - -#define IMsRdpClientAdvancedSettings3_put_BitmapPersistence(This,pbitmapPersistence) \ - ( (This)->lpVtbl -> put_BitmapPersistence(This,pbitmapPersistence) ) - -#define IMsRdpClientAdvancedSettings3_get_BitmapPersistence(This,pbitmapPersistence) \ - ( (This)->lpVtbl -> get_BitmapPersistence(This,pbitmapPersistence) ) - -#define IMsRdpClientAdvancedSettings3_put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ - ( (This)->lpVtbl -> put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) - -#define IMsRdpClientAdvancedSettings3_get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ - ( (This)->lpVtbl -> get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) - -#define IMsRdpClientAdvancedSettings3_put_SmartSizing(This,pfSmartSizing) \ - ( (This)->lpVtbl -> put_SmartSizing(This,pfSmartSizing) ) - -#define IMsRdpClientAdvancedSettings3_get_SmartSizing(This,pfSmartSizing) \ - ( (This)->lpVtbl -> get_SmartSizing(This,pfSmartSizing) ) - -#define IMsRdpClientAdvancedSettings3_put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ - ( (This)->lpVtbl -> put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) - -#define IMsRdpClientAdvancedSettings3_get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ - ( (This)->lpVtbl -> get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) - -#define IMsRdpClientAdvancedSettings3_put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ - ( (This)->lpVtbl -> put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) - -#define IMsRdpClientAdvancedSettings3_get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ - ( (This)->lpVtbl -> get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) - -#define IMsRdpClientAdvancedSettings3_put_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ - ( (This)->lpVtbl -> put_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) - -#define IMsRdpClientAdvancedSettings3_get_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ - ( (This)->lpVtbl -> get_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) - -#define IMsRdpClientAdvancedSettings3_put_ClearTextPassword(This,rhs) \ - ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) - -#define IMsRdpClientAdvancedSettings3_put_DisplayConnectionBar(This,pDisplayConnectionBar) \ - ( (This)->lpVtbl -> put_DisplayConnectionBar(This,pDisplayConnectionBar) ) - -#define IMsRdpClientAdvancedSettings3_get_DisplayConnectionBar(This,pDisplayConnectionBar) \ - ( (This)->lpVtbl -> get_DisplayConnectionBar(This,pDisplayConnectionBar) ) - -#define IMsRdpClientAdvancedSettings3_put_PinConnectionBar(This,pPinConnectionBar) \ - ( (This)->lpVtbl -> put_PinConnectionBar(This,pPinConnectionBar) ) - -#define IMsRdpClientAdvancedSettings3_get_PinConnectionBar(This,pPinConnectionBar) \ - ( (This)->lpVtbl -> get_PinConnectionBar(This,pPinConnectionBar) ) - -#define IMsRdpClientAdvancedSettings3_put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ - ( (This)->lpVtbl -> put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) - -#define IMsRdpClientAdvancedSettings3_get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ - ( (This)->lpVtbl -> get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) - -#define IMsRdpClientAdvancedSettings3_put_LoadBalanceInfo(This,pLBInfo) \ - ( (This)->lpVtbl -> put_LoadBalanceInfo(This,pLBInfo) ) - -#define IMsRdpClientAdvancedSettings3_get_LoadBalanceInfo(This,pLBInfo) \ - ( (This)->lpVtbl -> get_LoadBalanceInfo(This,pLBInfo) ) - -#define IMsRdpClientAdvancedSettings3_put_RedirectDrives(This,pRedirectDrives) \ - ( (This)->lpVtbl -> put_RedirectDrives(This,pRedirectDrives) ) - -#define IMsRdpClientAdvancedSettings3_get_RedirectDrives(This,pRedirectDrives) \ - ( (This)->lpVtbl -> get_RedirectDrives(This,pRedirectDrives) ) - -#define IMsRdpClientAdvancedSettings3_put_RedirectPrinters(This,pRedirectPrinters) \ - ( (This)->lpVtbl -> put_RedirectPrinters(This,pRedirectPrinters) ) - -#define IMsRdpClientAdvancedSettings3_get_RedirectPrinters(This,pRedirectPrinters) \ - ( (This)->lpVtbl -> get_RedirectPrinters(This,pRedirectPrinters) ) - -#define IMsRdpClientAdvancedSettings3_put_RedirectPorts(This,pRedirectPorts) \ - ( (This)->lpVtbl -> put_RedirectPorts(This,pRedirectPorts) ) - -#define IMsRdpClientAdvancedSettings3_get_RedirectPorts(This,pRedirectPorts) \ - ( (This)->lpVtbl -> get_RedirectPorts(This,pRedirectPorts) ) - -#define IMsRdpClientAdvancedSettings3_put_RedirectSmartCards(This,pRedirectSmartCards) \ - ( (This)->lpVtbl -> put_RedirectSmartCards(This,pRedirectSmartCards) ) - -#define IMsRdpClientAdvancedSettings3_get_RedirectSmartCards(This,pRedirectSmartCards) \ - ( (This)->lpVtbl -> get_RedirectSmartCards(This,pRedirectSmartCards) ) - -#define IMsRdpClientAdvancedSettings3_put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ - ( (This)->lpVtbl -> put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) - -#define IMsRdpClientAdvancedSettings3_get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ - ( (This)->lpVtbl -> get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) - -#define IMsRdpClientAdvancedSettings3_put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ - ( (This)->lpVtbl -> put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) - -#define IMsRdpClientAdvancedSettings3_get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ - ( (This)->lpVtbl -> get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) - -#define IMsRdpClientAdvancedSettings3_put_PerformanceFlags(This,pDisableList) \ - ( (This)->lpVtbl -> put_PerformanceFlags(This,pDisableList) ) - -#define IMsRdpClientAdvancedSettings3_get_PerformanceFlags(This,pDisableList) \ - ( (This)->lpVtbl -> get_PerformanceFlags(This,pDisableList) ) - -#define IMsRdpClientAdvancedSettings3_put_ConnectWithEndpoint(This,rhs) \ - ( (This)->lpVtbl -> put_ConnectWithEndpoint(This,rhs) ) - -#define IMsRdpClientAdvancedSettings3_put_NotifyTSPublicKey(This,pfNotify) \ - ( (This)->lpVtbl -> put_NotifyTSPublicKey(This,pfNotify) ) - -#define IMsRdpClientAdvancedSettings3_get_NotifyTSPublicKey(This,pfNotify) \ - ( (This)->lpVtbl -> get_NotifyTSPublicKey(This,pfNotify) ) - - -#define IMsRdpClientAdvancedSettings3_get_CanAutoReconnect(This,pfCanAutoReconnect) \ - ( (This)->lpVtbl -> get_CanAutoReconnect(This,pfCanAutoReconnect) ) - -#define IMsRdpClientAdvancedSettings3_put_EnableAutoReconnect(This,pfEnableAutoReconnect) \ - ( (This)->lpVtbl -> put_EnableAutoReconnect(This,pfEnableAutoReconnect) ) - -#define IMsRdpClientAdvancedSettings3_get_EnableAutoReconnect(This,pfEnableAutoReconnect) \ - ( (This)->lpVtbl -> get_EnableAutoReconnect(This,pfEnableAutoReconnect) ) - -#define IMsRdpClientAdvancedSettings3_put_MaxReconnectAttempts(This,pMaxReconnectAttempts) \ - ( (This)->lpVtbl -> put_MaxReconnectAttempts(This,pMaxReconnectAttempts) ) - -#define IMsRdpClientAdvancedSettings3_get_MaxReconnectAttempts(This,pMaxReconnectAttempts) \ - ( (This)->lpVtbl -> get_MaxReconnectAttempts(This,pMaxReconnectAttempts) ) - - -#define IMsRdpClientAdvancedSettings3_put_ConnectionBarShowMinimizeButton(This,pfShowMinimize) \ - ( (This)->lpVtbl -> put_ConnectionBarShowMinimizeButton(This,pfShowMinimize) ) - -#define IMsRdpClientAdvancedSettings3_get_ConnectionBarShowMinimizeButton(This,pfShowMinimize) \ - ( (This)->lpVtbl -> get_ConnectionBarShowMinimizeButton(This,pfShowMinimize) ) - -#define IMsRdpClientAdvancedSettings3_put_ConnectionBarShowRestoreButton(This,pfShowRestore) \ - ( (This)->lpVtbl -> put_ConnectionBarShowRestoreButton(This,pfShowRestore) ) - -#define IMsRdpClientAdvancedSettings3_get_ConnectionBarShowRestoreButton(This,pfShowRestore) \ - ( (This)->lpVtbl -> get_ConnectionBarShowRestoreButton(This,pfShowRestore) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings3_put_ConnectionBarShowMinimizeButton_Proxy( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pfShowMinimize); - - -void __RPC_STUB IMsRdpClientAdvancedSettings3_put_ConnectionBarShowMinimizeButton_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings3_get_ConnectionBarShowMinimizeButton_Proxy( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pfShowMinimize); - - -void __RPC_STUB IMsRdpClientAdvancedSettings3_get_ConnectionBarShowMinimizeButton_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings3_put_ConnectionBarShowRestoreButton_Proxy( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pfShowRestore); - - -void __RPC_STUB IMsRdpClientAdvancedSettings3_put_ConnectionBarShowRestoreButton_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings3_get_ConnectionBarShowRestoreButton_Proxy( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pfShowRestore); - - -void __RPC_STUB IMsRdpClientAdvancedSettings3_get_ConnectionBarShowRestoreButton_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IMsRdpClientAdvancedSettings3_INTERFACE_DEFINED__ */ - - -#ifndef __IMsRdpClientAdvancedSettings4_INTERFACE_DEFINED__ -#define __IMsRdpClientAdvancedSettings4_INTERFACE_DEFINED__ - -/* interface IMsRdpClientAdvancedSettings4 */ -/* [object][oleautomation][dual][uuid] */ - - -EXTERN_C const IID IID_IMsRdpClientAdvancedSettings4; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("FBA7F64E-7345-4405-AE50-FA4A763DC0DE") - IMsRdpClientAdvancedSettings4 : public IMsRdpClientAdvancedSettings3 - { - public: - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_AuthenticationLevel( - /* [in] */ unsigned int puiAuthLevel) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AuthenticationLevel( - /* [retval][out] */ unsigned int *puiAuthLevel) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsRdpClientAdvancedSettings4Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsRdpClientAdvancedSettings4 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsRdpClientAdvancedSettings4 * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsRdpClientAdvancedSettings4 * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Compress )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pcompress); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Compress )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pcompress); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPeristence )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pbitmapPeristence); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPeristence )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pbitmapPeristence); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_allowBackgroundInput )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pallowBackgroundInput); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_allowBackgroundInput )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pallowBackgroundInput); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyBoardLayoutStr )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PluginDlls )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconFile )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconIndex )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerHandledFullScreen )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pContainerHandledFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerHandledFullScreen )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pContainerHandledFullScreen); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableRdpdr )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pDisableRdpdr); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableRdpdr )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pDisableRdpdr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmoothScroll )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long psmoothScroll); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmoothScroll )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *psmoothScroll); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AcceleratorPassthrough )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pacceleratorPassthrough); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AcceleratorPassthrough )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pacceleratorPassthrough); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShadowBitmap )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pshadowBitmap); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShadowBitmap )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pshadowBitmap); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TransportType )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long ptransportType); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TransportType )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *ptransportType); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SasSequence )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long psasSequence); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SasSequence )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *psasSequence); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EncryptionEnabled )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pencryptionEnabled); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EncryptionEnabled )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pencryptionEnabled); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DedicatedTerminal )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pdedicatedTerminal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DedicatedTerminal )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pdedicatedTerminal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RDPPort )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long prdpPort); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RDPPort )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *prdpPort); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableMouse )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long penableMouse); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableMouse )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *penableMouse); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableCtrlAltDel )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pdisableCtrlAltDel); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableCtrlAltDel )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pdisableCtrlAltDel); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableWindowsKey )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long penableWindowsKey); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableWindowsKey )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *penableWindowsKey); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DoubleClickDetect )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pdoubleClickDetect); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DoubleClickDetect )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pdoubleClickDetect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaximizeShell )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pmaximizeShell); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaximizeShell )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pmaximizeShell); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyFullScreen )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long photKeyFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyFullScreen )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *photKeyFullScreen); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlEsc )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long photKeyCtrlEsc); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlEsc )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *photKeyCtrlEsc); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltEsc )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long photKeyAltEsc); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltEsc )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *photKeyAltEsc); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltTab )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long photKeyAltTab); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltTab )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *photKeyAltTab); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltShiftTab )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long photKeyAltShiftTab); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltShiftTab )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *photKeyAltShiftTab); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltSpace )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long photKeyAltSpace); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltSpace )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *photKeyAltSpace); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlAltDel )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long photKeyCtrlAltDel); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlAltDel )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *photKeyCtrlAltDel); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_orderDrawThreshold )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long porderDrawThreshold); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_orderDrawThreshold )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *porderDrawThreshold); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapCacheSize )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pbitmapCacheSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapCacheSize )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pbitmapCacheSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCacheSize )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pbitmapVirtualCacheSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCacheSize )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pbitmapVirtualCacheSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleBitmapCachesByBPP )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pbScale); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleBitmapCachesByBPP )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pbScale); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NumBitmapCaches )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pnumBitmapCaches); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumBitmapCaches )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pnumBitmapCaches); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CachePersistenceActive )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pcachePersistenceActive); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CachePersistenceActive )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pcachePersistenceActive); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PersistCacheDirectory )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_brushSupportLevel )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pbrushSupportLevel); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_brushSupportLevel )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pbrushSupportLevel); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_minInputSendInterval )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pminInputSendInterval); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_minInputSendInterval )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pminInputSendInterval); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InputEventsAtOnce )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pinputEventsAtOnce); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InputEventsAtOnce )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pinputEventsAtOnce); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_maxEventCount )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pmaxEventCount); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_maxEventCount )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pmaxEventCount); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_keepAliveInterval )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pkeepAliveInterval); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_keepAliveInterval )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pkeepAliveInterval); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_shutdownTimeout )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pshutdownTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_shutdownTimeout )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pshutdownTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_overallConnectionTimeout )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long poverallConnectionTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_overallConnectionTimeout )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *poverallConnectionTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_singleConnectionTimeout )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long psingleConnectionTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_singleConnectionTimeout )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *psingleConnectionTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardType )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pkeyboardType); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardType )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pkeyboardType); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardSubType )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pkeyboardSubType); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardSubType )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pkeyboardSubType); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardFunctionKey )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pkeyboardFunctionKey); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardFunctionKey )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pkeyboardFunctionKey); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WinceFixedPalette )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pwinceFixedPalette); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WinceFixedPalette )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pwinceFixedPalette); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectToServerConsole )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT_BOOL pConnectToConsole); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectToServerConsole )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pConnectToConsole); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPersistence )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pbitmapPersistence); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPersistence )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pbitmapPersistence); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MinutesToIdleTimeout )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pminutesToIdleTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MinutesToIdleTimeout )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pminutesToIdleTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmartSizing )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT_BOOL pfSmartSizing); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmartSizing )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pfSmartSizing); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrLocalPrintingDocName )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ BSTR pLocalPrintingDocName); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrLocalPrintingDocName )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ BSTR *pLocalPrintingDocName); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipCleanTempDirString )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ BSTR clipCleanTempDirString); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipCleanTempDirString )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ BSTR *clipCleanTempDirString); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipPasteInfoString )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ BSTR clipPasteInfoString); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipPasteInfoString )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ BSTR *clipPasteInfoString); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisplayConnectionBar )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT_BOOL pDisplayConnectionBar); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisplayConnectionBar )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pDisplayConnectionBar); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PinConnectionBar )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT_BOOL pPinConnectionBar); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PinConnectionBar )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pPinConnectionBar); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GrabFocusOnConnect )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT_BOOL pfGrabFocusOnConnect); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GrabFocusOnConnect )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pfGrabFocusOnConnect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LoadBalanceInfo )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ BSTR pLBInfo); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LoadBalanceInfo )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ BSTR *pLBInfo); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectDrives )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT_BOOL pRedirectDrives); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectDrives )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectDrives); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPrinters )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT_BOOL pRedirectPrinters); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPrinters )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectPrinters); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPorts )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT_BOOL pRedirectPorts); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPorts )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectPorts); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectSmartCards )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT_BOOL pRedirectSmartCards); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectSmartCards )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache16BppSize )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pBitmapVirtualCache16BppSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache16BppSize )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pBitmapVirtualCache16BppSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache24BppSize )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pBitmapVirtualCache24BppSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache24BppSize )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pBitmapVirtualCache24BppSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PerformanceFlags )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pDisableList); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PerformanceFlags )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pDisableList); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectWithEndpoint )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT *rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NotifyTSPublicKey )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT_BOOL pfNotify); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NotifyTSPublicKey )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pfNotify); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CanAutoReconnect )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pfCanAutoReconnect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableAutoReconnect )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT_BOOL pfEnableAutoReconnect); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableAutoReconnect )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pfEnableAutoReconnect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaxReconnectAttempts )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pMaxReconnectAttempts); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaxReconnectAttempts )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pMaxReconnectAttempts); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectionBarShowMinimizeButton )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT_BOOL pfShowMinimize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectionBarShowMinimizeButton )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pfShowMinimize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectionBarShowRestoreButton )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT_BOOL pfShowRestore); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectionBarShowRestoreButton )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pfShowRestore); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AuthenticationLevel )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ unsigned int puiAuthLevel); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AuthenticationLevel )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ unsigned int *puiAuthLevel); - - END_INTERFACE - } IMsRdpClientAdvancedSettings4Vtbl; - - interface IMsRdpClientAdvancedSettings4 - { - CONST_VTBL struct IMsRdpClientAdvancedSettings4Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsRdpClientAdvancedSettings4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsRdpClientAdvancedSettings4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsRdpClientAdvancedSettings4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsRdpClientAdvancedSettings4_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsRdpClientAdvancedSettings4_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsRdpClientAdvancedSettings4_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsRdpClientAdvancedSettings4_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IMsRdpClientAdvancedSettings4_put_Compress(This,pcompress) \ - ( (This)->lpVtbl -> put_Compress(This,pcompress) ) - -#define IMsRdpClientAdvancedSettings4_get_Compress(This,pcompress) \ - ( (This)->lpVtbl -> get_Compress(This,pcompress) ) - -#define IMsRdpClientAdvancedSettings4_put_BitmapPeristence(This,pbitmapPeristence) \ - ( (This)->lpVtbl -> put_BitmapPeristence(This,pbitmapPeristence) ) - -#define IMsRdpClientAdvancedSettings4_get_BitmapPeristence(This,pbitmapPeristence) \ - ( (This)->lpVtbl -> get_BitmapPeristence(This,pbitmapPeristence) ) - -#define IMsRdpClientAdvancedSettings4_put_allowBackgroundInput(This,pallowBackgroundInput) \ - ( (This)->lpVtbl -> put_allowBackgroundInput(This,pallowBackgroundInput) ) - -#define IMsRdpClientAdvancedSettings4_get_allowBackgroundInput(This,pallowBackgroundInput) \ - ( (This)->lpVtbl -> get_allowBackgroundInput(This,pallowBackgroundInput) ) - -#define IMsRdpClientAdvancedSettings4_put_KeyBoardLayoutStr(This,rhs) \ - ( (This)->lpVtbl -> put_KeyBoardLayoutStr(This,rhs) ) - -#define IMsRdpClientAdvancedSettings4_put_PluginDlls(This,rhs) \ - ( (This)->lpVtbl -> put_PluginDlls(This,rhs) ) - -#define IMsRdpClientAdvancedSettings4_put_IconFile(This,rhs) \ - ( (This)->lpVtbl -> put_IconFile(This,rhs) ) - -#define IMsRdpClientAdvancedSettings4_put_IconIndex(This,rhs) \ - ( (This)->lpVtbl -> put_IconIndex(This,rhs) ) - -#define IMsRdpClientAdvancedSettings4_put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ - ( (This)->lpVtbl -> put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) - -#define IMsRdpClientAdvancedSettings4_get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ - ( (This)->lpVtbl -> get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) - -#define IMsRdpClientAdvancedSettings4_put_DisableRdpdr(This,pDisableRdpdr) \ - ( (This)->lpVtbl -> put_DisableRdpdr(This,pDisableRdpdr) ) - -#define IMsRdpClientAdvancedSettings4_get_DisableRdpdr(This,pDisableRdpdr) \ - ( (This)->lpVtbl -> get_DisableRdpdr(This,pDisableRdpdr) ) - - -#define IMsRdpClientAdvancedSettings4_put_SmoothScroll(This,psmoothScroll) \ - ( (This)->lpVtbl -> put_SmoothScroll(This,psmoothScroll) ) - -#define IMsRdpClientAdvancedSettings4_get_SmoothScroll(This,psmoothScroll) \ - ( (This)->lpVtbl -> get_SmoothScroll(This,psmoothScroll) ) - -#define IMsRdpClientAdvancedSettings4_put_AcceleratorPassthrough(This,pacceleratorPassthrough) \ - ( (This)->lpVtbl -> put_AcceleratorPassthrough(This,pacceleratorPassthrough) ) - -#define IMsRdpClientAdvancedSettings4_get_AcceleratorPassthrough(This,pacceleratorPassthrough) \ - ( (This)->lpVtbl -> get_AcceleratorPassthrough(This,pacceleratorPassthrough) ) - -#define IMsRdpClientAdvancedSettings4_put_ShadowBitmap(This,pshadowBitmap) \ - ( (This)->lpVtbl -> put_ShadowBitmap(This,pshadowBitmap) ) - -#define IMsRdpClientAdvancedSettings4_get_ShadowBitmap(This,pshadowBitmap) \ - ( (This)->lpVtbl -> get_ShadowBitmap(This,pshadowBitmap) ) - -#define IMsRdpClientAdvancedSettings4_put_TransportType(This,ptransportType) \ - ( (This)->lpVtbl -> put_TransportType(This,ptransportType) ) - -#define IMsRdpClientAdvancedSettings4_get_TransportType(This,ptransportType) \ - ( (This)->lpVtbl -> get_TransportType(This,ptransportType) ) - -#define IMsRdpClientAdvancedSettings4_put_SasSequence(This,psasSequence) \ - ( (This)->lpVtbl -> put_SasSequence(This,psasSequence) ) - -#define IMsRdpClientAdvancedSettings4_get_SasSequence(This,psasSequence) \ - ( (This)->lpVtbl -> get_SasSequence(This,psasSequence) ) - -#define IMsRdpClientAdvancedSettings4_put_EncryptionEnabled(This,pencryptionEnabled) \ - ( (This)->lpVtbl -> put_EncryptionEnabled(This,pencryptionEnabled) ) - -#define IMsRdpClientAdvancedSettings4_get_EncryptionEnabled(This,pencryptionEnabled) \ - ( (This)->lpVtbl -> get_EncryptionEnabled(This,pencryptionEnabled) ) - -#define IMsRdpClientAdvancedSettings4_put_DedicatedTerminal(This,pdedicatedTerminal) \ - ( (This)->lpVtbl -> put_DedicatedTerminal(This,pdedicatedTerminal) ) - -#define IMsRdpClientAdvancedSettings4_get_DedicatedTerminal(This,pdedicatedTerminal) \ - ( (This)->lpVtbl -> get_DedicatedTerminal(This,pdedicatedTerminal) ) - -#define IMsRdpClientAdvancedSettings4_put_RDPPort(This,prdpPort) \ - ( (This)->lpVtbl -> put_RDPPort(This,prdpPort) ) - -#define IMsRdpClientAdvancedSettings4_get_RDPPort(This,prdpPort) \ - ( (This)->lpVtbl -> get_RDPPort(This,prdpPort) ) - -#define IMsRdpClientAdvancedSettings4_put_EnableMouse(This,penableMouse) \ - ( (This)->lpVtbl -> put_EnableMouse(This,penableMouse) ) - -#define IMsRdpClientAdvancedSettings4_get_EnableMouse(This,penableMouse) \ - ( (This)->lpVtbl -> get_EnableMouse(This,penableMouse) ) - -#define IMsRdpClientAdvancedSettings4_put_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ - ( (This)->lpVtbl -> put_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings4_get_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ - ( (This)->lpVtbl -> get_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings4_put_EnableWindowsKey(This,penableWindowsKey) \ - ( (This)->lpVtbl -> put_EnableWindowsKey(This,penableWindowsKey) ) - -#define IMsRdpClientAdvancedSettings4_get_EnableWindowsKey(This,penableWindowsKey) \ - ( (This)->lpVtbl -> get_EnableWindowsKey(This,penableWindowsKey) ) - -#define IMsRdpClientAdvancedSettings4_put_DoubleClickDetect(This,pdoubleClickDetect) \ - ( (This)->lpVtbl -> put_DoubleClickDetect(This,pdoubleClickDetect) ) - -#define IMsRdpClientAdvancedSettings4_get_DoubleClickDetect(This,pdoubleClickDetect) \ - ( (This)->lpVtbl -> get_DoubleClickDetect(This,pdoubleClickDetect) ) - -#define IMsRdpClientAdvancedSettings4_put_MaximizeShell(This,pmaximizeShell) \ - ( (This)->lpVtbl -> put_MaximizeShell(This,pmaximizeShell) ) - -#define IMsRdpClientAdvancedSettings4_get_MaximizeShell(This,pmaximizeShell) \ - ( (This)->lpVtbl -> get_MaximizeShell(This,pmaximizeShell) ) - -#define IMsRdpClientAdvancedSettings4_put_HotKeyFullScreen(This,photKeyFullScreen) \ - ( (This)->lpVtbl -> put_HotKeyFullScreen(This,photKeyFullScreen) ) - -#define IMsRdpClientAdvancedSettings4_get_HotKeyFullScreen(This,photKeyFullScreen) \ - ( (This)->lpVtbl -> get_HotKeyFullScreen(This,photKeyFullScreen) ) - -#define IMsRdpClientAdvancedSettings4_put_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ - ( (This)->lpVtbl -> put_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) - -#define IMsRdpClientAdvancedSettings4_get_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ - ( (This)->lpVtbl -> get_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) - -#define IMsRdpClientAdvancedSettings4_put_HotKeyAltEsc(This,photKeyAltEsc) \ - ( (This)->lpVtbl -> put_HotKeyAltEsc(This,photKeyAltEsc) ) - -#define IMsRdpClientAdvancedSettings4_get_HotKeyAltEsc(This,photKeyAltEsc) \ - ( (This)->lpVtbl -> get_HotKeyAltEsc(This,photKeyAltEsc) ) - -#define IMsRdpClientAdvancedSettings4_put_HotKeyAltTab(This,photKeyAltTab) \ - ( (This)->lpVtbl -> put_HotKeyAltTab(This,photKeyAltTab) ) - -#define IMsRdpClientAdvancedSettings4_get_HotKeyAltTab(This,photKeyAltTab) \ - ( (This)->lpVtbl -> get_HotKeyAltTab(This,photKeyAltTab) ) - -#define IMsRdpClientAdvancedSettings4_put_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ - ( (This)->lpVtbl -> put_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) - -#define IMsRdpClientAdvancedSettings4_get_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ - ( (This)->lpVtbl -> get_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) - -#define IMsRdpClientAdvancedSettings4_put_HotKeyAltSpace(This,photKeyAltSpace) \ - ( (This)->lpVtbl -> put_HotKeyAltSpace(This,photKeyAltSpace) ) - -#define IMsRdpClientAdvancedSettings4_get_HotKeyAltSpace(This,photKeyAltSpace) \ - ( (This)->lpVtbl -> get_HotKeyAltSpace(This,photKeyAltSpace) ) - -#define IMsRdpClientAdvancedSettings4_put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ - ( (This)->lpVtbl -> put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings4_get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ - ( (This)->lpVtbl -> get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings4_put_orderDrawThreshold(This,porderDrawThreshold) \ - ( (This)->lpVtbl -> put_orderDrawThreshold(This,porderDrawThreshold) ) - -#define IMsRdpClientAdvancedSettings4_get_orderDrawThreshold(This,porderDrawThreshold) \ - ( (This)->lpVtbl -> get_orderDrawThreshold(This,porderDrawThreshold) ) - -#define IMsRdpClientAdvancedSettings4_put_BitmapCacheSize(This,pbitmapCacheSize) \ - ( (This)->lpVtbl -> put_BitmapCacheSize(This,pbitmapCacheSize) ) - -#define IMsRdpClientAdvancedSettings4_get_BitmapCacheSize(This,pbitmapCacheSize) \ - ( (This)->lpVtbl -> get_BitmapCacheSize(This,pbitmapCacheSize) ) - -#define IMsRdpClientAdvancedSettings4_put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ - ( (This)->lpVtbl -> put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) - -#define IMsRdpClientAdvancedSettings4_get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ - ( (This)->lpVtbl -> get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) - -#define IMsRdpClientAdvancedSettings4_put_ScaleBitmapCachesByBPP(This,pbScale) \ - ( (This)->lpVtbl -> put_ScaleBitmapCachesByBPP(This,pbScale) ) - -#define IMsRdpClientAdvancedSettings4_get_ScaleBitmapCachesByBPP(This,pbScale) \ - ( (This)->lpVtbl -> get_ScaleBitmapCachesByBPP(This,pbScale) ) - -#define IMsRdpClientAdvancedSettings4_put_NumBitmapCaches(This,pnumBitmapCaches) \ - ( (This)->lpVtbl -> put_NumBitmapCaches(This,pnumBitmapCaches) ) - -#define IMsRdpClientAdvancedSettings4_get_NumBitmapCaches(This,pnumBitmapCaches) \ - ( (This)->lpVtbl -> get_NumBitmapCaches(This,pnumBitmapCaches) ) - -#define IMsRdpClientAdvancedSettings4_put_CachePersistenceActive(This,pcachePersistenceActive) \ - ( (This)->lpVtbl -> put_CachePersistenceActive(This,pcachePersistenceActive) ) - -#define IMsRdpClientAdvancedSettings4_get_CachePersistenceActive(This,pcachePersistenceActive) \ - ( (This)->lpVtbl -> get_CachePersistenceActive(This,pcachePersistenceActive) ) - -#define IMsRdpClientAdvancedSettings4_put_PersistCacheDirectory(This,rhs) \ - ( (This)->lpVtbl -> put_PersistCacheDirectory(This,rhs) ) - -#define IMsRdpClientAdvancedSettings4_put_brushSupportLevel(This,pbrushSupportLevel) \ - ( (This)->lpVtbl -> put_brushSupportLevel(This,pbrushSupportLevel) ) - -#define IMsRdpClientAdvancedSettings4_get_brushSupportLevel(This,pbrushSupportLevel) \ - ( (This)->lpVtbl -> get_brushSupportLevel(This,pbrushSupportLevel) ) - -#define IMsRdpClientAdvancedSettings4_put_minInputSendInterval(This,pminInputSendInterval) \ - ( (This)->lpVtbl -> put_minInputSendInterval(This,pminInputSendInterval) ) - -#define IMsRdpClientAdvancedSettings4_get_minInputSendInterval(This,pminInputSendInterval) \ - ( (This)->lpVtbl -> get_minInputSendInterval(This,pminInputSendInterval) ) - -#define IMsRdpClientAdvancedSettings4_put_InputEventsAtOnce(This,pinputEventsAtOnce) \ - ( (This)->lpVtbl -> put_InputEventsAtOnce(This,pinputEventsAtOnce) ) - -#define IMsRdpClientAdvancedSettings4_get_InputEventsAtOnce(This,pinputEventsAtOnce) \ - ( (This)->lpVtbl -> get_InputEventsAtOnce(This,pinputEventsAtOnce) ) - -#define IMsRdpClientAdvancedSettings4_put_maxEventCount(This,pmaxEventCount) \ - ( (This)->lpVtbl -> put_maxEventCount(This,pmaxEventCount) ) - -#define IMsRdpClientAdvancedSettings4_get_maxEventCount(This,pmaxEventCount) \ - ( (This)->lpVtbl -> get_maxEventCount(This,pmaxEventCount) ) - -#define IMsRdpClientAdvancedSettings4_put_keepAliveInterval(This,pkeepAliveInterval) \ - ( (This)->lpVtbl -> put_keepAliveInterval(This,pkeepAliveInterval) ) - -#define IMsRdpClientAdvancedSettings4_get_keepAliveInterval(This,pkeepAliveInterval) \ - ( (This)->lpVtbl -> get_keepAliveInterval(This,pkeepAliveInterval) ) - -#define IMsRdpClientAdvancedSettings4_put_shutdownTimeout(This,pshutdownTimeout) \ - ( (This)->lpVtbl -> put_shutdownTimeout(This,pshutdownTimeout) ) - -#define IMsRdpClientAdvancedSettings4_get_shutdownTimeout(This,pshutdownTimeout) \ - ( (This)->lpVtbl -> get_shutdownTimeout(This,pshutdownTimeout) ) - -#define IMsRdpClientAdvancedSettings4_put_overallConnectionTimeout(This,poverallConnectionTimeout) \ - ( (This)->lpVtbl -> put_overallConnectionTimeout(This,poverallConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings4_get_overallConnectionTimeout(This,poverallConnectionTimeout) \ - ( (This)->lpVtbl -> get_overallConnectionTimeout(This,poverallConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings4_put_singleConnectionTimeout(This,psingleConnectionTimeout) \ - ( (This)->lpVtbl -> put_singleConnectionTimeout(This,psingleConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings4_get_singleConnectionTimeout(This,psingleConnectionTimeout) \ - ( (This)->lpVtbl -> get_singleConnectionTimeout(This,psingleConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings4_put_KeyboardType(This,pkeyboardType) \ - ( (This)->lpVtbl -> put_KeyboardType(This,pkeyboardType) ) - -#define IMsRdpClientAdvancedSettings4_get_KeyboardType(This,pkeyboardType) \ - ( (This)->lpVtbl -> get_KeyboardType(This,pkeyboardType) ) - -#define IMsRdpClientAdvancedSettings4_put_KeyboardSubType(This,pkeyboardSubType) \ - ( (This)->lpVtbl -> put_KeyboardSubType(This,pkeyboardSubType) ) - -#define IMsRdpClientAdvancedSettings4_get_KeyboardSubType(This,pkeyboardSubType) \ - ( (This)->lpVtbl -> get_KeyboardSubType(This,pkeyboardSubType) ) - -#define IMsRdpClientAdvancedSettings4_put_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ - ( (This)->lpVtbl -> put_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) - -#define IMsRdpClientAdvancedSettings4_get_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ - ( (This)->lpVtbl -> get_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) - -#define IMsRdpClientAdvancedSettings4_put_WinceFixedPalette(This,pwinceFixedPalette) \ - ( (This)->lpVtbl -> put_WinceFixedPalette(This,pwinceFixedPalette) ) - -#define IMsRdpClientAdvancedSettings4_get_WinceFixedPalette(This,pwinceFixedPalette) \ - ( (This)->lpVtbl -> get_WinceFixedPalette(This,pwinceFixedPalette) ) - -#define IMsRdpClientAdvancedSettings4_put_ConnectToServerConsole(This,pConnectToConsole) \ - ( (This)->lpVtbl -> put_ConnectToServerConsole(This,pConnectToConsole) ) - -#define IMsRdpClientAdvancedSettings4_get_ConnectToServerConsole(This,pConnectToConsole) \ - ( (This)->lpVtbl -> get_ConnectToServerConsole(This,pConnectToConsole) ) - -#define IMsRdpClientAdvancedSettings4_put_BitmapPersistence(This,pbitmapPersistence) \ - ( (This)->lpVtbl -> put_BitmapPersistence(This,pbitmapPersistence) ) - -#define IMsRdpClientAdvancedSettings4_get_BitmapPersistence(This,pbitmapPersistence) \ - ( (This)->lpVtbl -> get_BitmapPersistence(This,pbitmapPersistence) ) - -#define IMsRdpClientAdvancedSettings4_put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ - ( (This)->lpVtbl -> put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) - -#define IMsRdpClientAdvancedSettings4_get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ - ( (This)->lpVtbl -> get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) - -#define IMsRdpClientAdvancedSettings4_put_SmartSizing(This,pfSmartSizing) \ - ( (This)->lpVtbl -> put_SmartSizing(This,pfSmartSizing) ) - -#define IMsRdpClientAdvancedSettings4_get_SmartSizing(This,pfSmartSizing) \ - ( (This)->lpVtbl -> get_SmartSizing(This,pfSmartSizing) ) - -#define IMsRdpClientAdvancedSettings4_put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ - ( (This)->lpVtbl -> put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) - -#define IMsRdpClientAdvancedSettings4_get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ - ( (This)->lpVtbl -> get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) - -#define IMsRdpClientAdvancedSettings4_put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ - ( (This)->lpVtbl -> put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) - -#define IMsRdpClientAdvancedSettings4_get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ - ( (This)->lpVtbl -> get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) - -#define IMsRdpClientAdvancedSettings4_put_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ - ( (This)->lpVtbl -> put_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) - -#define IMsRdpClientAdvancedSettings4_get_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ - ( (This)->lpVtbl -> get_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) - -#define IMsRdpClientAdvancedSettings4_put_ClearTextPassword(This,rhs) \ - ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) - -#define IMsRdpClientAdvancedSettings4_put_DisplayConnectionBar(This,pDisplayConnectionBar) \ - ( (This)->lpVtbl -> put_DisplayConnectionBar(This,pDisplayConnectionBar) ) - -#define IMsRdpClientAdvancedSettings4_get_DisplayConnectionBar(This,pDisplayConnectionBar) \ - ( (This)->lpVtbl -> get_DisplayConnectionBar(This,pDisplayConnectionBar) ) - -#define IMsRdpClientAdvancedSettings4_put_PinConnectionBar(This,pPinConnectionBar) \ - ( (This)->lpVtbl -> put_PinConnectionBar(This,pPinConnectionBar) ) - -#define IMsRdpClientAdvancedSettings4_get_PinConnectionBar(This,pPinConnectionBar) \ - ( (This)->lpVtbl -> get_PinConnectionBar(This,pPinConnectionBar) ) - -#define IMsRdpClientAdvancedSettings4_put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ - ( (This)->lpVtbl -> put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) - -#define IMsRdpClientAdvancedSettings4_get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ - ( (This)->lpVtbl -> get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) - -#define IMsRdpClientAdvancedSettings4_put_LoadBalanceInfo(This,pLBInfo) \ - ( (This)->lpVtbl -> put_LoadBalanceInfo(This,pLBInfo) ) - -#define IMsRdpClientAdvancedSettings4_get_LoadBalanceInfo(This,pLBInfo) \ - ( (This)->lpVtbl -> get_LoadBalanceInfo(This,pLBInfo) ) - -#define IMsRdpClientAdvancedSettings4_put_RedirectDrives(This,pRedirectDrives) \ - ( (This)->lpVtbl -> put_RedirectDrives(This,pRedirectDrives) ) - -#define IMsRdpClientAdvancedSettings4_get_RedirectDrives(This,pRedirectDrives) \ - ( (This)->lpVtbl -> get_RedirectDrives(This,pRedirectDrives) ) - -#define IMsRdpClientAdvancedSettings4_put_RedirectPrinters(This,pRedirectPrinters) \ - ( (This)->lpVtbl -> put_RedirectPrinters(This,pRedirectPrinters) ) - -#define IMsRdpClientAdvancedSettings4_get_RedirectPrinters(This,pRedirectPrinters) \ - ( (This)->lpVtbl -> get_RedirectPrinters(This,pRedirectPrinters) ) - -#define IMsRdpClientAdvancedSettings4_put_RedirectPorts(This,pRedirectPorts) \ - ( (This)->lpVtbl -> put_RedirectPorts(This,pRedirectPorts) ) - -#define IMsRdpClientAdvancedSettings4_get_RedirectPorts(This,pRedirectPorts) \ - ( (This)->lpVtbl -> get_RedirectPorts(This,pRedirectPorts) ) - -#define IMsRdpClientAdvancedSettings4_put_RedirectSmartCards(This,pRedirectSmartCards) \ - ( (This)->lpVtbl -> put_RedirectSmartCards(This,pRedirectSmartCards) ) - -#define IMsRdpClientAdvancedSettings4_get_RedirectSmartCards(This,pRedirectSmartCards) \ - ( (This)->lpVtbl -> get_RedirectSmartCards(This,pRedirectSmartCards) ) - -#define IMsRdpClientAdvancedSettings4_put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ - ( (This)->lpVtbl -> put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) - -#define IMsRdpClientAdvancedSettings4_get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ - ( (This)->lpVtbl -> get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) - -#define IMsRdpClientAdvancedSettings4_put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ - ( (This)->lpVtbl -> put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) - -#define IMsRdpClientAdvancedSettings4_get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ - ( (This)->lpVtbl -> get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) - -#define IMsRdpClientAdvancedSettings4_put_PerformanceFlags(This,pDisableList) \ - ( (This)->lpVtbl -> put_PerformanceFlags(This,pDisableList) ) - -#define IMsRdpClientAdvancedSettings4_get_PerformanceFlags(This,pDisableList) \ - ( (This)->lpVtbl -> get_PerformanceFlags(This,pDisableList) ) - -#define IMsRdpClientAdvancedSettings4_put_ConnectWithEndpoint(This,rhs) \ - ( (This)->lpVtbl -> put_ConnectWithEndpoint(This,rhs) ) - -#define IMsRdpClientAdvancedSettings4_put_NotifyTSPublicKey(This,pfNotify) \ - ( (This)->lpVtbl -> put_NotifyTSPublicKey(This,pfNotify) ) - -#define IMsRdpClientAdvancedSettings4_get_NotifyTSPublicKey(This,pfNotify) \ - ( (This)->lpVtbl -> get_NotifyTSPublicKey(This,pfNotify) ) - - -#define IMsRdpClientAdvancedSettings4_get_CanAutoReconnect(This,pfCanAutoReconnect) \ - ( (This)->lpVtbl -> get_CanAutoReconnect(This,pfCanAutoReconnect) ) - -#define IMsRdpClientAdvancedSettings4_put_EnableAutoReconnect(This,pfEnableAutoReconnect) \ - ( (This)->lpVtbl -> put_EnableAutoReconnect(This,pfEnableAutoReconnect) ) - -#define IMsRdpClientAdvancedSettings4_get_EnableAutoReconnect(This,pfEnableAutoReconnect) \ - ( (This)->lpVtbl -> get_EnableAutoReconnect(This,pfEnableAutoReconnect) ) - -#define IMsRdpClientAdvancedSettings4_put_MaxReconnectAttempts(This,pMaxReconnectAttempts) \ - ( (This)->lpVtbl -> put_MaxReconnectAttempts(This,pMaxReconnectAttempts) ) - -#define IMsRdpClientAdvancedSettings4_get_MaxReconnectAttempts(This,pMaxReconnectAttempts) \ - ( (This)->lpVtbl -> get_MaxReconnectAttempts(This,pMaxReconnectAttempts) ) - - -#define IMsRdpClientAdvancedSettings4_put_ConnectionBarShowMinimizeButton(This,pfShowMinimize) \ - ( (This)->lpVtbl -> put_ConnectionBarShowMinimizeButton(This,pfShowMinimize) ) - -#define IMsRdpClientAdvancedSettings4_get_ConnectionBarShowMinimizeButton(This,pfShowMinimize) \ - ( (This)->lpVtbl -> get_ConnectionBarShowMinimizeButton(This,pfShowMinimize) ) - -#define IMsRdpClientAdvancedSettings4_put_ConnectionBarShowRestoreButton(This,pfShowRestore) \ - ( (This)->lpVtbl -> put_ConnectionBarShowRestoreButton(This,pfShowRestore) ) - -#define IMsRdpClientAdvancedSettings4_get_ConnectionBarShowRestoreButton(This,pfShowRestore) \ - ( (This)->lpVtbl -> get_ConnectionBarShowRestoreButton(This,pfShowRestore) ) - - -#define IMsRdpClientAdvancedSettings4_put_AuthenticationLevel(This,puiAuthLevel) \ - ( (This)->lpVtbl -> put_AuthenticationLevel(This,puiAuthLevel) ) - -#define IMsRdpClientAdvancedSettings4_get_AuthenticationLevel(This,puiAuthLevel) \ - ( (This)->lpVtbl -> get_AuthenticationLevel(This,puiAuthLevel) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings4_put_AuthenticationLevel_Proxy( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ unsigned int puiAuthLevel); - - -void __RPC_STUB IMsRdpClientAdvancedSettings4_put_AuthenticationLevel_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings4_get_AuthenticationLevel_Proxy( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ unsigned int *puiAuthLevel); - - -void __RPC_STUB IMsRdpClientAdvancedSettings4_get_AuthenticationLevel_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IMsRdpClientAdvancedSettings4_INTERFACE_DEFINED__ */ - - -#ifndef __IMsTscSecuredSettings_INTERFACE_DEFINED__ -#define __IMsTscSecuredSettings_INTERFACE_DEFINED__ - -/* interface IMsTscSecuredSettings */ -/* [object][oleautomation][dual][uuid] */ - - -EXTERN_C const IID IID_IMsTscSecuredSettings; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("C9D65442-A0F9-45B2-8F73-D61D2DB8CBB6") - IMsTscSecuredSettings : public IDispatch - { - public: - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_StartProgram( - /* [in] */ BSTR pStartProgram) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_StartProgram( - /* [retval][out] */ BSTR *pStartProgram) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_WorkDir( - /* [in] */ BSTR pWorkDir) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_WorkDir( - /* [retval][out] */ BSTR *pWorkDir) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_FullScreen( - /* [in] */ long pfFullScreen) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_FullScreen( - /* [retval][out] */ long *pfFullScreen) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsTscSecuredSettingsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsTscSecuredSettings * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsTscSecuredSettings * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsTscSecuredSettings * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsTscSecuredSettings * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsTscSecuredSettings * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsTscSecuredSettings * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsTscSecuredSettings * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartProgram )( - IMsTscSecuredSettings * This, - /* [in] */ BSTR pStartProgram); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartProgram )( - IMsTscSecuredSettings * This, - /* [retval][out] */ BSTR *pStartProgram); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WorkDir )( - IMsTscSecuredSettings * This, - /* [in] */ BSTR pWorkDir); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WorkDir )( - IMsTscSecuredSettings * This, - /* [retval][out] */ BSTR *pWorkDir); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )( - IMsTscSecuredSettings * This, - /* [in] */ long pfFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )( - IMsTscSecuredSettings * This, - /* [retval][out] */ long *pfFullScreen); - - END_INTERFACE - } IMsTscSecuredSettingsVtbl; - - interface IMsTscSecuredSettings - { - CONST_VTBL struct IMsTscSecuredSettingsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsTscSecuredSettings_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsTscSecuredSettings_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsTscSecuredSettings_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsTscSecuredSettings_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsTscSecuredSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsTscSecuredSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsTscSecuredSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IMsTscSecuredSettings_put_StartProgram(This,pStartProgram) \ - ( (This)->lpVtbl -> put_StartProgram(This,pStartProgram) ) - -#define IMsTscSecuredSettings_get_StartProgram(This,pStartProgram) \ - ( (This)->lpVtbl -> get_StartProgram(This,pStartProgram) ) - -#define IMsTscSecuredSettings_put_WorkDir(This,pWorkDir) \ - ( (This)->lpVtbl -> put_WorkDir(This,pWorkDir) ) - -#define IMsTscSecuredSettings_get_WorkDir(This,pWorkDir) \ - ( (This)->lpVtbl -> get_WorkDir(This,pWorkDir) ) - -#define IMsTscSecuredSettings_put_FullScreen(This,pfFullScreen) \ - ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) ) - -#define IMsTscSecuredSettings_get_FullScreen(This,pfFullScreen) \ - ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMsTscSecuredSettings_INTERFACE_DEFINED__ */ - - -#ifndef __IMsRdpClientSecuredSettings_INTERFACE_DEFINED__ -#define __IMsRdpClientSecuredSettings_INTERFACE_DEFINED__ - -/* interface IMsRdpClientSecuredSettings */ -/* [object][oleautomation][dual][uuid] */ - - -EXTERN_C const IID IID_IMsRdpClientSecuredSettings; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("605BEFCF-39C1-45CC-A811-068FB7BE346D") - IMsRdpClientSecuredSettings : public IMsTscSecuredSettings - { - public: - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_KeyboardHookMode( - /* [in] */ long pkeyboardHookMode) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_KeyboardHookMode( - /* [retval][out] */ long *pkeyboardHookMode) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_AudioRedirectionMode( - /* [in] */ long pAudioRedirectionMode) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AudioRedirectionMode( - /* [retval][out] */ long *pAudioRedirectionMode) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsRdpClientSecuredSettingsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsRdpClientSecuredSettings * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsRdpClientSecuredSettings * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsRdpClientSecuredSettings * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsRdpClientSecuredSettings * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsRdpClientSecuredSettings * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsRdpClientSecuredSettings * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsRdpClientSecuredSettings * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartProgram )( - IMsRdpClientSecuredSettings * This, - /* [in] */ BSTR pStartProgram); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartProgram )( - IMsRdpClientSecuredSettings * This, - /* [retval][out] */ BSTR *pStartProgram); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WorkDir )( - IMsRdpClientSecuredSettings * This, - /* [in] */ BSTR pWorkDir); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WorkDir )( - IMsRdpClientSecuredSettings * This, - /* [retval][out] */ BSTR *pWorkDir); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )( - IMsRdpClientSecuredSettings * This, - /* [in] */ long pfFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )( - IMsRdpClientSecuredSettings * This, - /* [retval][out] */ long *pfFullScreen); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardHookMode )( - IMsRdpClientSecuredSettings * This, - /* [in] */ long pkeyboardHookMode); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardHookMode )( - IMsRdpClientSecuredSettings * This, - /* [retval][out] */ long *pkeyboardHookMode); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AudioRedirectionMode )( - IMsRdpClientSecuredSettings * This, - /* [in] */ long pAudioRedirectionMode); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AudioRedirectionMode )( - IMsRdpClientSecuredSettings * This, - /* [retval][out] */ long *pAudioRedirectionMode); - - END_INTERFACE - } IMsRdpClientSecuredSettingsVtbl; - - interface IMsRdpClientSecuredSettings - { - CONST_VTBL struct IMsRdpClientSecuredSettingsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsRdpClientSecuredSettings_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsRdpClientSecuredSettings_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsRdpClientSecuredSettings_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsRdpClientSecuredSettings_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsRdpClientSecuredSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsRdpClientSecuredSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsRdpClientSecuredSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IMsRdpClientSecuredSettings_put_StartProgram(This,pStartProgram) \ - ( (This)->lpVtbl -> put_StartProgram(This,pStartProgram) ) - -#define IMsRdpClientSecuredSettings_get_StartProgram(This,pStartProgram) \ - ( (This)->lpVtbl -> get_StartProgram(This,pStartProgram) ) - -#define IMsRdpClientSecuredSettings_put_WorkDir(This,pWorkDir) \ - ( (This)->lpVtbl -> put_WorkDir(This,pWorkDir) ) - -#define IMsRdpClientSecuredSettings_get_WorkDir(This,pWorkDir) \ - ( (This)->lpVtbl -> get_WorkDir(This,pWorkDir) ) - -#define IMsRdpClientSecuredSettings_put_FullScreen(This,pfFullScreen) \ - ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) ) - -#define IMsRdpClientSecuredSettings_get_FullScreen(This,pfFullScreen) \ - ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) ) - - -#define IMsRdpClientSecuredSettings_put_KeyboardHookMode(This,pkeyboardHookMode) \ - ( (This)->lpVtbl -> put_KeyboardHookMode(This,pkeyboardHookMode) ) - -#define IMsRdpClientSecuredSettings_get_KeyboardHookMode(This,pkeyboardHookMode) \ - ( (This)->lpVtbl -> get_KeyboardHookMode(This,pkeyboardHookMode) ) - -#define IMsRdpClientSecuredSettings_put_AudioRedirectionMode(This,pAudioRedirectionMode) \ - ( (This)->lpVtbl -> put_AudioRedirectionMode(This,pAudioRedirectionMode) ) - -#define IMsRdpClientSecuredSettings_get_AudioRedirectionMode(This,pAudioRedirectionMode) \ - ( (This)->lpVtbl -> get_AudioRedirectionMode(This,pAudioRedirectionMode) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMsRdpClientSecuredSettings_INTERFACE_DEFINED__ */ - - -#ifndef __IMsTscDebug_INTERFACE_DEFINED__ -#define __IMsTscDebug_INTERFACE_DEFINED__ - -/* interface IMsTscDebug */ -/* [object][oleautomation][dual][hidden][uuid] */ - - -EXTERN_C const IID IID_IMsTscDebug; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("209D0EB9-6254-47B1-9033-A98DAE55BB27") - IMsTscDebug : public IDispatch - { - public: - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HatchBitmapPDU( - /* [in] */ long phatchBitmapPDU) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HatchBitmapPDU( - /* [retval][out] */ long *phatchBitmapPDU) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HatchSSBOrder( - /* [in] */ long phatchSSBOrder) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HatchSSBOrder( - /* [retval][out] */ long *phatchSSBOrder) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HatchMembltOrder( - /* [in] */ long phatchMembltOrder) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HatchMembltOrder( - /* [retval][out] */ long *phatchMembltOrder) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HatchIndexPDU( - /* [in] */ long phatchIndexPDU) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HatchIndexPDU( - /* [retval][out] */ long *phatchIndexPDU) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_LabelMemblt( - /* [in] */ long plabelMemblt) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_LabelMemblt( - /* [retval][out] */ long *plabelMemblt) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapCacheMonitor( - /* [in] */ long pbitmapCacheMonitor) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapCacheMonitor( - /* [retval][out] */ long *pbitmapCacheMonitor) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_MallocFailuresPercent( - /* [in] */ long pmallocFailuresPercent) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_MallocFailuresPercent( - /* [retval][out] */ long *pmallocFailuresPercent) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_MallocHugeFailuresPercent( - /* [in] */ long pmallocHugeFailuresPercent) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_MallocHugeFailuresPercent( - /* [retval][out] */ long *pmallocHugeFailuresPercent) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_NetThroughput( - /* [in] */ long NetThroughput) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_NetThroughput( - /* [retval][out] */ long *NetThroughput) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_CLXCmdLine( - /* [in] */ BSTR pCLXCmdLine) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CLXCmdLine( - /* [retval][out] */ BSTR *pCLXCmdLine) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_CLXDll( - /* [in] */ BSTR pCLXDll) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CLXDll( - /* [retval][out] */ BSTR *pCLXDll) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsTscDebugVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsTscDebug * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsTscDebug * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsTscDebug * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsTscDebug * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsTscDebug * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsTscDebug * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsTscDebug * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HatchBitmapPDU )( - IMsTscDebug * This, - /* [in] */ long phatchBitmapPDU); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HatchBitmapPDU )( - IMsTscDebug * This, - /* [retval][out] */ long *phatchBitmapPDU); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HatchSSBOrder )( - IMsTscDebug * This, - /* [in] */ long phatchSSBOrder); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HatchSSBOrder )( - IMsTscDebug * This, - /* [retval][out] */ long *phatchSSBOrder); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HatchMembltOrder )( - IMsTscDebug * This, - /* [in] */ long phatchMembltOrder); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HatchMembltOrder )( - IMsTscDebug * This, - /* [retval][out] */ long *phatchMembltOrder); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HatchIndexPDU )( - IMsTscDebug * This, - /* [in] */ long phatchIndexPDU); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HatchIndexPDU )( - IMsTscDebug * This, - /* [retval][out] */ long *phatchIndexPDU); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LabelMemblt )( - IMsTscDebug * This, - /* [in] */ long plabelMemblt); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LabelMemblt )( - IMsTscDebug * This, - /* [retval][out] */ long *plabelMemblt); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapCacheMonitor )( - IMsTscDebug * This, - /* [in] */ long pbitmapCacheMonitor); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapCacheMonitor )( - IMsTscDebug * This, - /* [retval][out] */ long *pbitmapCacheMonitor); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MallocFailuresPercent )( - IMsTscDebug * This, - /* [in] */ long pmallocFailuresPercent); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MallocFailuresPercent )( - IMsTscDebug * This, - /* [retval][out] */ long *pmallocFailuresPercent); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MallocHugeFailuresPercent )( - IMsTscDebug * This, - /* [in] */ long pmallocHugeFailuresPercent); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MallocHugeFailuresPercent )( - IMsTscDebug * This, - /* [retval][out] */ long *pmallocHugeFailuresPercent); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NetThroughput )( - IMsTscDebug * This, - /* [in] */ long NetThroughput); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NetThroughput )( - IMsTscDebug * This, - /* [retval][out] */ long *NetThroughput); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CLXCmdLine )( - IMsTscDebug * This, - /* [in] */ BSTR pCLXCmdLine); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CLXCmdLine )( - IMsTscDebug * This, - /* [retval][out] */ BSTR *pCLXCmdLine); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CLXDll )( - IMsTscDebug * This, - /* [in] */ BSTR pCLXDll); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CLXDll )( - IMsTscDebug * This, - /* [retval][out] */ BSTR *pCLXDll); - - END_INTERFACE - } IMsTscDebugVtbl; - - interface IMsTscDebug - { - CONST_VTBL struct IMsTscDebugVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsTscDebug_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsTscDebug_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsTscDebug_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsTscDebug_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsTscDebug_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsTscDebug_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsTscDebug_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IMsTscDebug_put_HatchBitmapPDU(This,phatchBitmapPDU) \ - ( (This)->lpVtbl -> put_HatchBitmapPDU(This,phatchBitmapPDU) ) - -#define IMsTscDebug_get_HatchBitmapPDU(This,phatchBitmapPDU) \ - ( (This)->lpVtbl -> get_HatchBitmapPDU(This,phatchBitmapPDU) ) - -#define IMsTscDebug_put_HatchSSBOrder(This,phatchSSBOrder) \ - ( (This)->lpVtbl -> put_HatchSSBOrder(This,phatchSSBOrder) ) - -#define IMsTscDebug_get_HatchSSBOrder(This,phatchSSBOrder) \ - ( (This)->lpVtbl -> get_HatchSSBOrder(This,phatchSSBOrder) ) - -#define IMsTscDebug_put_HatchMembltOrder(This,phatchMembltOrder) \ - ( (This)->lpVtbl -> put_HatchMembltOrder(This,phatchMembltOrder) ) - -#define IMsTscDebug_get_HatchMembltOrder(This,phatchMembltOrder) \ - ( (This)->lpVtbl -> get_HatchMembltOrder(This,phatchMembltOrder) ) - -#define IMsTscDebug_put_HatchIndexPDU(This,phatchIndexPDU) \ - ( (This)->lpVtbl -> put_HatchIndexPDU(This,phatchIndexPDU) ) - -#define IMsTscDebug_get_HatchIndexPDU(This,phatchIndexPDU) \ - ( (This)->lpVtbl -> get_HatchIndexPDU(This,phatchIndexPDU) ) - -#define IMsTscDebug_put_LabelMemblt(This,plabelMemblt) \ - ( (This)->lpVtbl -> put_LabelMemblt(This,plabelMemblt) ) - -#define IMsTscDebug_get_LabelMemblt(This,plabelMemblt) \ - ( (This)->lpVtbl -> get_LabelMemblt(This,plabelMemblt) ) - -#define IMsTscDebug_put_BitmapCacheMonitor(This,pbitmapCacheMonitor) \ - ( (This)->lpVtbl -> put_BitmapCacheMonitor(This,pbitmapCacheMonitor) ) - -#define IMsTscDebug_get_BitmapCacheMonitor(This,pbitmapCacheMonitor) \ - ( (This)->lpVtbl -> get_BitmapCacheMonitor(This,pbitmapCacheMonitor) ) - -#define IMsTscDebug_put_MallocFailuresPercent(This,pmallocFailuresPercent) \ - ( (This)->lpVtbl -> put_MallocFailuresPercent(This,pmallocFailuresPercent) ) - -#define IMsTscDebug_get_MallocFailuresPercent(This,pmallocFailuresPercent) \ - ( (This)->lpVtbl -> get_MallocFailuresPercent(This,pmallocFailuresPercent) ) - -#define IMsTscDebug_put_MallocHugeFailuresPercent(This,pmallocHugeFailuresPercent) \ - ( (This)->lpVtbl -> put_MallocHugeFailuresPercent(This,pmallocHugeFailuresPercent) ) - -#define IMsTscDebug_get_MallocHugeFailuresPercent(This,pmallocHugeFailuresPercent) \ - ( (This)->lpVtbl -> get_MallocHugeFailuresPercent(This,pmallocHugeFailuresPercent) ) - -#define IMsTscDebug_put_NetThroughput(This,NetThroughput) \ - ( (This)->lpVtbl -> put_NetThroughput(This,NetThroughput) ) - -#define IMsTscDebug_get_NetThroughput(This,NetThroughput) \ - ( (This)->lpVtbl -> get_NetThroughput(This,NetThroughput) ) - -#define IMsTscDebug_put_CLXCmdLine(This,pCLXCmdLine) \ - ( (This)->lpVtbl -> put_CLXCmdLine(This,pCLXCmdLine) ) - -#define IMsTscDebug_get_CLXCmdLine(This,pCLXCmdLine) \ - ( (This)->lpVtbl -> get_CLXCmdLine(This,pCLXCmdLine) ) - -#define IMsTscDebug_put_CLXDll(This,pCLXDll) \ - ( (This)->lpVtbl -> put_CLXDll(This,pCLXDll) ) - -#define IMsTscDebug_get_CLXDll(This,pCLXDll) \ - ( (This)->lpVtbl -> get_CLXDll(This,pCLXDll) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMsTscDebug_INTERFACE_DEFINED__ */ - - -EXTERN_C const CLSID CLSID_MsTscAx; - -#ifdef __cplusplus - -class DECLSPEC_UUID("A41A4187-5A86-4E26-B40A-856F9035D9CB") -MsTscAx; -#endif - -EXTERN_C const CLSID CLSID_MsRdpClient; - -#ifdef __cplusplus - -class DECLSPEC_UUID("7CACBD7B-0D99-468F-AC33-22E495C0AFE5") -MsRdpClient; -#endif - -EXTERN_C const CLSID CLSID_MsRdpClient2; - -#ifdef __cplusplus - -class DECLSPEC_UUID("3523C2FB-4031-44E4-9A3B-F1E94986EE7F") -MsRdpClient2; -#endif - -EXTERN_C const CLSID CLSID_MsRdpClient3; - -#ifdef __cplusplus - -class DECLSPEC_UUID("ACE575FD-1FCF-4074-9401-EBAB990FA9DE") -MsRdpClient3; -#endif - -EXTERN_C const CLSID CLSID_MsRdpClient4; - -#ifdef __cplusplus - -class DECLSPEC_UUID("6AE29350-321B-42BE-BBE5-12FB5270C0DE") -MsRdpClient4; -#endif -#endif /* __MSTSCLib_LIBRARY_DEFINED__ */ - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - + + +/* this ALWAYS GENERATED file contains the definitions for the interfaces */ + + + /* File created by MIDL compiler version 7.00.0493 */ +/* at Sun Aug 13 16:46:06 2006 + */ +/* Compiler settings for .\mstsclib.idl: + Oicf, W1, Zp8, env=Win32 (32b run) + protocol : dce , ms_ext, c_ext, robust + error checks: allocation ref bounds_check enum stub_data + VC __declspec() decoration level: + __declspec(uuid()), __declspec(selectany), __declspec(novtable) + DECLSPEC_UUID(), MIDL_INTERFACE() +*/ +//@@MIDL_FILE_HEADING( ) + +#pragma warning( disable: 4049 ) /* more than 64k source lines */ + + +/* verify that the version is high enough to compile this file*/ +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif + +#include "rpc.h" +#include "rpcndr.h" + +#ifndef __RPCNDR_H_VERSION__ +#error this stub requires an updated version of +#endif // __RPCNDR_H_VERSION__ + + +#ifndef __mstsclib_h_h__ +#define __mstsclib_h_h__ + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +#pragma once +#endif + +/* Forward Declarations */ + +#ifndef __IMsTscAxEvents_FWD_DEFINED__ +#define __IMsTscAxEvents_FWD_DEFINED__ +typedef interface IMsTscAxEvents IMsTscAxEvents; +#endif /* __IMsTscAxEvents_FWD_DEFINED__ */ + + +#ifndef __IMsTscAx_FWD_DEFINED__ +#define __IMsTscAx_FWD_DEFINED__ +typedef interface IMsTscAx IMsTscAx; +#endif /* __IMsTscAx_FWD_DEFINED__ */ + + +#ifndef __IMsRdpClient_FWD_DEFINED__ +#define __IMsRdpClient_FWD_DEFINED__ +typedef interface IMsRdpClient IMsRdpClient; +#endif /* __IMsRdpClient_FWD_DEFINED__ */ + + +#ifndef __IMsRdpClient2_FWD_DEFINED__ +#define __IMsRdpClient2_FWD_DEFINED__ +typedef interface IMsRdpClient2 IMsRdpClient2; +#endif /* __IMsRdpClient2_FWD_DEFINED__ */ + + +#ifndef __IMsRdpClient3_FWD_DEFINED__ +#define __IMsRdpClient3_FWD_DEFINED__ +typedef interface IMsRdpClient3 IMsRdpClient3; +#endif /* __IMsRdpClient3_FWD_DEFINED__ */ + + +#ifndef __IMsRdpClient4_FWD_DEFINED__ +#define __IMsRdpClient4_FWD_DEFINED__ +typedef interface IMsRdpClient4 IMsRdpClient4; +#endif /* __IMsRdpClient4_FWD_DEFINED__ */ + + +#ifndef __IMsTscNonScriptable_FWD_DEFINED__ +#define __IMsTscNonScriptable_FWD_DEFINED__ +typedef interface IMsTscNonScriptable IMsTscNonScriptable; +#endif /* __IMsTscNonScriptable_FWD_DEFINED__ */ + + +#ifndef __IMsRdpClientNonScriptable_FWD_DEFINED__ +#define __IMsRdpClientNonScriptable_FWD_DEFINED__ +typedef interface IMsRdpClientNonScriptable IMsRdpClientNonScriptable; +#endif /* __IMsRdpClientNonScriptable_FWD_DEFINED__ */ + + +#ifndef __IMsRdpClientNonScriptable2_FWD_DEFINED__ +#define __IMsRdpClientNonScriptable2_FWD_DEFINED__ +typedef interface IMsRdpClientNonScriptable2 IMsRdpClientNonScriptable2; +#endif /* __IMsRdpClientNonScriptable2_FWD_DEFINED__ */ + + +#ifndef __IMsTscAdvancedSettings_FWD_DEFINED__ +#define __IMsTscAdvancedSettings_FWD_DEFINED__ +typedef interface IMsTscAdvancedSettings IMsTscAdvancedSettings; +#endif /* __IMsTscAdvancedSettings_FWD_DEFINED__ */ + + +#ifndef __IMsRdpClientAdvancedSettings_FWD_DEFINED__ +#define __IMsRdpClientAdvancedSettings_FWD_DEFINED__ +typedef interface IMsRdpClientAdvancedSettings IMsRdpClientAdvancedSettings; +#endif /* __IMsRdpClientAdvancedSettings_FWD_DEFINED__ */ + + +#ifndef __IMsRdpClientAdvancedSettings2_FWD_DEFINED__ +#define __IMsRdpClientAdvancedSettings2_FWD_DEFINED__ +typedef interface IMsRdpClientAdvancedSettings2 IMsRdpClientAdvancedSettings2; +#endif /* __IMsRdpClientAdvancedSettings2_FWD_DEFINED__ */ + + +#ifndef __IMsRdpClientAdvancedSettings3_FWD_DEFINED__ +#define __IMsRdpClientAdvancedSettings3_FWD_DEFINED__ +typedef interface IMsRdpClientAdvancedSettings3 IMsRdpClientAdvancedSettings3; +#endif /* __IMsRdpClientAdvancedSettings3_FWD_DEFINED__ */ + + +#ifndef __IMsRdpClientAdvancedSettings4_FWD_DEFINED__ +#define __IMsRdpClientAdvancedSettings4_FWD_DEFINED__ +typedef interface IMsRdpClientAdvancedSettings4 IMsRdpClientAdvancedSettings4; +#endif /* __IMsRdpClientAdvancedSettings4_FWD_DEFINED__ */ + + +#ifndef __IMsTscSecuredSettings_FWD_DEFINED__ +#define __IMsTscSecuredSettings_FWD_DEFINED__ +typedef interface IMsTscSecuredSettings IMsTscSecuredSettings; +#endif /* __IMsTscSecuredSettings_FWD_DEFINED__ */ + + +#ifndef __IMsRdpClientSecuredSettings_FWD_DEFINED__ +#define __IMsRdpClientSecuredSettings_FWD_DEFINED__ +typedef interface IMsRdpClientSecuredSettings IMsRdpClientSecuredSettings; +#endif /* __IMsRdpClientSecuredSettings_FWD_DEFINED__ */ + + +#ifndef __IMsTscDebug_FWD_DEFINED__ +#define __IMsTscDebug_FWD_DEFINED__ +typedef interface IMsTscDebug IMsTscDebug; +#endif /* __IMsTscDebug_FWD_DEFINED__ */ + + +#ifndef __MsTscAx_FWD_DEFINED__ +#define __MsTscAx_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class MsTscAx MsTscAx; +#else +typedef struct MsTscAx MsTscAx; +#endif /* __cplusplus */ + +#endif /* __MsTscAx_FWD_DEFINED__ */ + + +#ifndef __MsRdpClient_FWD_DEFINED__ +#define __MsRdpClient_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class MsRdpClient MsRdpClient; +#else +typedef struct MsRdpClient MsRdpClient; +#endif /* __cplusplus */ + +#endif /* __MsRdpClient_FWD_DEFINED__ */ + + +#ifndef __MsRdpClient2_FWD_DEFINED__ +#define __MsRdpClient2_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class MsRdpClient2 MsRdpClient2; +#else +typedef struct MsRdpClient2 MsRdpClient2; +#endif /* __cplusplus */ + +#endif /* __MsRdpClient2_FWD_DEFINED__ */ + + +#ifndef __MsRdpClient3_FWD_DEFINED__ +#define __MsRdpClient3_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class MsRdpClient3 MsRdpClient3; +#else +typedef struct MsRdpClient3 MsRdpClient3; +#endif /* __cplusplus */ + +#endif /* __MsRdpClient3_FWD_DEFINED__ */ + + +#ifndef __MsRdpClient4_FWD_DEFINED__ +#define __MsRdpClient4_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class MsRdpClient4 MsRdpClient4; +#else +typedef struct MsRdpClient4 MsRdpClient4; +#endif /* __cplusplus */ + +#endif /* __MsRdpClient4_FWD_DEFINED__ */ + + +#ifdef __cplusplus +extern "C"{ +#endif + + + +#ifndef __MSTSCLib_LIBRARY_DEFINED__ +#define __MSTSCLib_LIBRARY_DEFINED__ + +/* library MSTSCLib */ +/* [version][uuid] */ + + + + + + + + + + + + + + + + + + +typedef /* [public][public][public] */ +enum __MIDL___MIDL_itf_mstsax_0275_0001 + { autoReconnectContinueAutomatic = 0, + autoReconnectContinueStop = 1, + autoReconnectContinueManual = 2 + } AutoReconnectContinueState; + +typedef /* [public][public][public] */ +enum __MIDL_IMsRdpClient_0001 + { exDiscReasonNoInfo = 0, + exDiscReasonAPIInitiatedDisconnect = 1, + exDiscReasonAPIInitiatedLogoff = 2, + exDiscReasonServerIdleTimeout = 3, + exDiscReasonServerLogonTimeout = 4, + exDiscReasonReplacedByOtherConnection = 5, + exDiscReasonOutOfMemory = 6, + exDiscReasonServerDeniedConnection = 7, + exDiscReasonServerDeniedConnectionFips = 8, + exDiscReasonLicenseInternal = 256, + exDiscReasonLicenseNoLicenseServer = 257, + exDiscReasonLicenseNoLicense = 258, + exDiscReasonLicenseErrClientMsg = 259, + exDiscReasonLicenseHwidDoesntMatchLicense = 260, + exDiscReasonLicenseErrClientLicense = 261, + exDiscReasonLicenseCantFinishProtocol = 262, + exDiscReasonLicenseClientEndedProtocol = 263, + exDiscReasonLicenseErrClientEncryption = 264, + exDiscReasonLicenseCantUpgradeLicense = 265, + exDiscReasonLicenseNoRemoteConnections = 266, + exDiscReasonProtocolRangeStart = 4096, + exDiscReasonProtocolRangeEnd = 32767 + } ExtendedDisconnectReasonCode; + +typedef /* [public][public][public] */ +enum __MIDL_IMsRdpClient_0002 + { controlCloseCanProceed = 0, + controlCloseWaitForEvents = 1 + } ControlCloseStatus; + +typedef /* [custom][public] */ unsigned __int3264 UINT_PTR; + +typedef /* [custom][public] */ __int3264 LONG_PTR; + + +EXTERN_C const IID LIBID_MSTSCLib; + +#ifndef __IMsTscAxEvents_DISPINTERFACE_DEFINED__ +#define __IMsTscAxEvents_DISPINTERFACE_DEFINED__ + +/* dispinterface IMsTscAxEvents */ +/* [uuid] */ + + +EXTERN_C const IID DIID_IMsTscAxEvents; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("336D5562-EFA8-482E-8CB3-C5C0FC7A7DB6") + IMsTscAxEvents : public IDispatch + { + }; + +#else /* C style interface */ + + typedef struct IMsTscAxEventsVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsTscAxEvents * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsTscAxEvents * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsTscAxEvents * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsTscAxEvents * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsTscAxEvents * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsTscAxEvents * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsTscAxEvents * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + END_INTERFACE + } IMsTscAxEventsVtbl; + + interface IMsTscAxEvents + { + CONST_VTBL struct IMsTscAxEventsVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsTscAxEvents_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsTscAxEvents_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsTscAxEvents_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsTscAxEvents_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsTscAxEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsTscAxEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsTscAxEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + +#endif /* __IMsTscAxEvents_DISPINTERFACE_DEFINED__ */ + + +#ifndef __IMsTscAx_INTERFACE_DEFINED__ +#define __IMsTscAx_INTERFACE_DEFINED__ + +/* interface IMsTscAx */ +/* [object][oleautomation][dual][uuid] */ + + +EXTERN_C const IID IID_IMsTscAx; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("8C11EFAE-92C3-11D1-BC1E-00C04FA31489") + IMsTscAx : public IDispatch + { + public: + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Server( + /* [in] */ BSTR pServer) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Server( + /* [retval][out] */ BSTR *pServer) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Domain( + /* [in] */ BSTR pDomain) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Domain( + /* [retval][out] */ BSTR *pDomain) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_UserName( + /* [in] */ BSTR pUserName) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_UserName( + /* [retval][out] */ BSTR *pUserName) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DisconnectedText( + /* [in] */ BSTR pDisconnectedText) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DisconnectedText( + /* [retval][out] */ BSTR *pDisconnectedText) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectingText( + /* [in] */ BSTR pConnectingText) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ConnectingText( + /* [retval][out] */ BSTR *pConnectingText) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Connected( + /* [retval][out] */ short *pIsConnected) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DesktopWidth( + /* [in] */ long pVal) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DesktopWidth( + /* [retval][out] */ long *pVal) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DesktopHeight( + /* [in] */ long pVal) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DesktopHeight( + /* [retval][out] */ long *pVal) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_StartConnected( + /* [in] */ long pfStartConnected) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_StartConnected( + /* [retval][out] */ long *pfStartConnected) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HorizontalScrollBarVisible( + /* [retval][out] */ long *pfHScrollVisible) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_VerticalScrollBarVisible( + /* [retval][out] */ long *pfVScrollVisible) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_FullScreenTitle( + /* [in] */ BSTR rhs) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CipherStrength( + /* [retval][out] */ long *pCipherStrength) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Version( + /* [retval][out] */ BSTR *pVersion) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SecuredSettingsEnabled( + /* [retval][out] */ long *pSecuredSettingsEnabled) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SecuredSettings( + /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AdvancedSettings( + /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings) = 0; + + virtual /* [hidden][propget][id] */ HRESULT STDMETHODCALLTYPE get_Debugger( + /* [retval][out] */ IMsTscDebug **ppDebugger) = 0; + + virtual /* [id] */ HRESULT STDMETHODCALLTYPE Connect( void) = 0; + + virtual /* [id] */ HRESULT STDMETHODCALLTYPE Disconnect( void) = 0; + + virtual /* [id] */ HRESULT STDMETHODCALLTYPE CreateVirtualChannels( + /* [in] */ BSTR newVal) = 0; + + virtual /* [id] */ HRESULT STDMETHODCALLTYPE SendOnVirtualChannel( + /* [in] */ BSTR chanName, + /* [in] */ BSTR ChanData) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsTscAxVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsTscAx * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsTscAx * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsTscAx * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsTscAx * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsTscAx * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsTscAx * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsTscAx * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Server )( + IMsTscAx * This, + /* [in] */ BSTR pServer); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Server )( + IMsTscAx * This, + /* [retval][out] */ BSTR *pServer); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Domain )( + IMsTscAx * This, + /* [in] */ BSTR pDomain); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Domain )( + IMsTscAx * This, + /* [retval][out] */ BSTR *pDomain); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UserName )( + IMsTscAx * This, + /* [in] */ BSTR pUserName); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )( + IMsTscAx * This, + /* [retval][out] */ BSTR *pUserName); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisconnectedText )( + IMsTscAx * This, + /* [in] */ BSTR pDisconnectedText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisconnectedText )( + IMsTscAx * This, + /* [retval][out] */ BSTR *pDisconnectedText); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectingText )( + IMsTscAx * This, + /* [in] */ BSTR pConnectingText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectingText )( + IMsTscAx * This, + /* [retval][out] */ BSTR *pConnectingText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Connected )( + IMsTscAx * This, + /* [retval][out] */ short *pIsConnected); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopWidth )( + IMsTscAx * This, + /* [in] */ long pVal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopWidth )( + IMsTscAx * This, + /* [retval][out] */ long *pVal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopHeight )( + IMsTscAx * This, + /* [in] */ long pVal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopHeight )( + IMsTscAx * This, + /* [retval][out] */ long *pVal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartConnected )( + IMsTscAx * This, + /* [in] */ long pfStartConnected); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartConnected )( + IMsTscAx * This, + /* [retval][out] */ long *pfStartConnected); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalScrollBarVisible )( + IMsTscAx * This, + /* [retval][out] */ long *pfHScrollVisible); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalScrollBarVisible )( + IMsTscAx * This, + /* [retval][out] */ long *pfVScrollVisible); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreenTitle )( + IMsTscAx * This, + /* [in] */ BSTR rhs); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CipherStrength )( + IMsTscAx * This, + /* [retval][out] */ long *pCipherStrength); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )( + IMsTscAx * This, + /* [retval][out] */ BSTR *pVersion); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettingsEnabled )( + IMsTscAx * This, + /* [retval][out] */ long *pSecuredSettingsEnabled); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings )( + IMsTscAx * This, + /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings )( + IMsTscAx * This, + /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings); + + /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Debugger )( + IMsTscAx * This, + /* [retval][out] */ IMsTscDebug **ppDebugger); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Connect )( + IMsTscAx * This); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( + IMsTscAx * This); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateVirtualChannels )( + IMsTscAx * This, + /* [in] */ BSTR newVal); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *SendOnVirtualChannel )( + IMsTscAx * This, + /* [in] */ BSTR chanName, + /* [in] */ BSTR ChanData); + + END_INTERFACE + } IMsTscAxVtbl; + + interface IMsTscAx + { + CONST_VTBL struct IMsTscAxVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsTscAx_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsTscAx_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsTscAx_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsTscAx_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsTscAx_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsTscAx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsTscAx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IMsTscAx_put_Server(This,pServer) \ + ( (This)->lpVtbl -> put_Server(This,pServer) ) + +#define IMsTscAx_get_Server(This,pServer) \ + ( (This)->lpVtbl -> get_Server(This,pServer) ) + +#define IMsTscAx_put_Domain(This,pDomain) \ + ( (This)->lpVtbl -> put_Domain(This,pDomain) ) + +#define IMsTscAx_get_Domain(This,pDomain) \ + ( (This)->lpVtbl -> get_Domain(This,pDomain) ) + +#define IMsTscAx_put_UserName(This,pUserName) \ + ( (This)->lpVtbl -> put_UserName(This,pUserName) ) + +#define IMsTscAx_get_UserName(This,pUserName) \ + ( (This)->lpVtbl -> get_UserName(This,pUserName) ) + +#define IMsTscAx_put_DisconnectedText(This,pDisconnectedText) \ + ( (This)->lpVtbl -> put_DisconnectedText(This,pDisconnectedText) ) + +#define IMsTscAx_get_DisconnectedText(This,pDisconnectedText) \ + ( (This)->lpVtbl -> get_DisconnectedText(This,pDisconnectedText) ) + +#define IMsTscAx_put_ConnectingText(This,pConnectingText) \ + ( (This)->lpVtbl -> put_ConnectingText(This,pConnectingText) ) + +#define IMsTscAx_get_ConnectingText(This,pConnectingText) \ + ( (This)->lpVtbl -> get_ConnectingText(This,pConnectingText) ) + +#define IMsTscAx_get_Connected(This,pIsConnected) \ + ( (This)->lpVtbl -> get_Connected(This,pIsConnected) ) + +#define IMsTscAx_put_DesktopWidth(This,pVal) \ + ( (This)->lpVtbl -> put_DesktopWidth(This,pVal) ) + +#define IMsTscAx_get_DesktopWidth(This,pVal) \ + ( (This)->lpVtbl -> get_DesktopWidth(This,pVal) ) + +#define IMsTscAx_put_DesktopHeight(This,pVal) \ + ( (This)->lpVtbl -> put_DesktopHeight(This,pVal) ) + +#define IMsTscAx_get_DesktopHeight(This,pVal) \ + ( (This)->lpVtbl -> get_DesktopHeight(This,pVal) ) + +#define IMsTscAx_put_StartConnected(This,pfStartConnected) \ + ( (This)->lpVtbl -> put_StartConnected(This,pfStartConnected) ) + +#define IMsTscAx_get_StartConnected(This,pfStartConnected) \ + ( (This)->lpVtbl -> get_StartConnected(This,pfStartConnected) ) + +#define IMsTscAx_get_HorizontalScrollBarVisible(This,pfHScrollVisible) \ + ( (This)->lpVtbl -> get_HorizontalScrollBarVisible(This,pfHScrollVisible) ) + +#define IMsTscAx_get_VerticalScrollBarVisible(This,pfVScrollVisible) \ + ( (This)->lpVtbl -> get_VerticalScrollBarVisible(This,pfVScrollVisible) ) + +#define IMsTscAx_put_FullScreenTitle(This,rhs) \ + ( (This)->lpVtbl -> put_FullScreenTitle(This,rhs) ) + +#define IMsTscAx_get_CipherStrength(This,pCipherStrength) \ + ( (This)->lpVtbl -> get_CipherStrength(This,pCipherStrength) ) + +#define IMsTscAx_get_Version(This,pVersion) \ + ( (This)->lpVtbl -> get_Version(This,pVersion) ) + +#define IMsTscAx_get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) \ + ( (This)->lpVtbl -> get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) ) + +#define IMsTscAx_get_SecuredSettings(This,ppSecuredSettings) \ + ( (This)->lpVtbl -> get_SecuredSettings(This,ppSecuredSettings) ) + +#define IMsTscAx_get_AdvancedSettings(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings(This,ppAdvSettings) ) + +#define IMsTscAx_get_Debugger(This,ppDebugger) \ + ( (This)->lpVtbl -> get_Debugger(This,ppDebugger) ) + +#define IMsTscAx_Connect(This) \ + ( (This)->lpVtbl -> Connect(This) ) + +#define IMsTscAx_Disconnect(This) \ + ( (This)->lpVtbl -> Disconnect(This) ) + +#define IMsTscAx_CreateVirtualChannels(This,newVal) \ + ( (This)->lpVtbl -> CreateVirtualChannels(This,newVal) ) + +#define IMsTscAx_SendOnVirtualChannel(This,chanName,ChanData) \ + ( (This)->lpVtbl -> SendOnVirtualChannel(This,chanName,ChanData) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IMsTscAx_INTERFACE_DEFINED__ */ + + +#ifndef __IMsRdpClient_INTERFACE_DEFINED__ +#define __IMsRdpClient_INTERFACE_DEFINED__ + +/* interface IMsRdpClient */ +/* [object][oleautomation][dual][uuid] */ + + +EXTERN_C const IID IID_IMsRdpClient; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("92B4A539-7115-4B7C-A5A9-E5D9EFC2780A") + IMsRdpClient : public IMsTscAx + { + public: + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ColorDepth( + /* [in] */ long pcolorDepth) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ColorDepth( + /* [retval][out] */ long *pcolorDepth) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AdvancedSettings2( + /* [retval][out] */ IMsRdpClientAdvancedSettings **ppAdvSettings) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SecuredSettings2( + /* [retval][out] */ IMsRdpClientSecuredSettings **ppSecuredSettings) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtendedDisconnectReason( + /* [retval][out] */ ExtendedDisconnectReasonCode *pExtendedDisconnectReason) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_FullScreen( + /* [in] */ VARIANT_BOOL pfFullScreen) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_FullScreen( + /* [retval][out] */ VARIANT_BOOL *pfFullScreen) = 0; + + virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetVirtualChannelOptions( + /* [in] */ BSTR chanName, + /* [in] */ long chanOptions) = 0; + + virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetVirtualChannelOptions( + /* [in] */ BSTR chanName, + /* [retval][out] */ long *pChanOptions) = 0; + + virtual /* [id] */ HRESULT STDMETHODCALLTYPE RequestClose( + /* [retval][out] */ ControlCloseStatus *pCloseStatus) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsRdpClientVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsRdpClient * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsRdpClient * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsRdpClient * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsRdpClient * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsRdpClient * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsRdpClient * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsRdpClient * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Server )( + IMsRdpClient * This, + /* [in] */ BSTR pServer); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Server )( + IMsRdpClient * This, + /* [retval][out] */ BSTR *pServer); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Domain )( + IMsRdpClient * This, + /* [in] */ BSTR pDomain); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Domain )( + IMsRdpClient * This, + /* [retval][out] */ BSTR *pDomain); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UserName )( + IMsRdpClient * This, + /* [in] */ BSTR pUserName); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )( + IMsRdpClient * This, + /* [retval][out] */ BSTR *pUserName); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisconnectedText )( + IMsRdpClient * This, + /* [in] */ BSTR pDisconnectedText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisconnectedText )( + IMsRdpClient * This, + /* [retval][out] */ BSTR *pDisconnectedText); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectingText )( + IMsRdpClient * This, + /* [in] */ BSTR pConnectingText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectingText )( + IMsRdpClient * This, + /* [retval][out] */ BSTR *pConnectingText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Connected )( + IMsRdpClient * This, + /* [retval][out] */ short *pIsConnected); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopWidth )( + IMsRdpClient * This, + /* [in] */ long pVal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopWidth )( + IMsRdpClient * This, + /* [retval][out] */ long *pVal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopHeight )( + IMsRdpClient * This, + /* [in] */ long pVal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopHeight )( + IMsRdpClient * This, + /* [retval][out] */ long *pVal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartConnected )( + IMsRdpClient * This, + /* [in] */ long pfStartConnected); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartConnected )( + IMsRdpClient * This, + /* [retval][out] */ long *pfStartConnected); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalScrollBarVisible )( + IMsRdpClient * This, + /* [retval][out] */ long *pfHScrollVisible); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalScrollBarVisible )( + IMsRdpClient * This, + /* [retval][out] */ long *pfVScrollVisible); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreenTitle )( + IMsRdpClient * This, + /* [in] */ BSTR rhs); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CipherStrength )( + IMsRdpClient * This, + /* [retval][out] */ long *pCipherStrength); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )( + IMsRdpClient * This, + /* [retval][out] */ BSTR *pVersion); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettingsEnabled )( + IMsRdpClient * This, + /* [retval][out] */ long *pSecuredSettingsEnabled); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings )( + IMsRdpClient * This, + /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings )( + IMsRdpClient * This, + /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings); + + /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Debugger )( + IMsRdpClient * This, + /* [retval][out] */ IMsTscDebug **ppDebugger); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Connect )( + IMsRdpClient * This); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( + IMsRdpClient * This); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateVirtualChannels )( + IMsRdpClient * This, + /* [in] */ BSTR newVal); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *SendOnVirtualChannel )( + IMsRdpClient * This, + /* [in] */ BSTR chanName, + /* [in] */ BSTR ChanData); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ColorDepth )( + IMsRdpClient * This, + /* [in] */ long pcolorDepth); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ColorDepth )( + IMsRdpClient * This, + /* [retval][out] */ long *pcolorDepth); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings2 )( + IMsRdpClient * This, + /* [retval][out] */ IMsRdpClientAdvancedSettings **ppAdvSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings2 )( + IMsRdpClient * This, + /* [retval][out] */ IMsRdpClientSecuredSettings **ppSecuredSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtendedDisconnectReason )( + IMsRdpClient * This, + /* [retval][out] */ ExtendedDisconnectReasonCode *pExtendedDisconnectReason); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )( + IMsRdpClient * This, + /* [in] */ VARIANT_BOOL pfFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )( + IMsRdpClient * This, + /* [retval][out] */ VARIANT_BOOL *pfFullScreen); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetVirtualChannelOptions )( + IMsRdpClient * This, + /* [in] */ BSTR chanName, + /* [in] */ long chanOptions); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetVirtualChannelOptions )( + IMsRdpClient * This, + /* [in] */ BSTR chanName, + /* [retval][out] */ long *pChanOptions); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *RequestClose )( + IMsRdpClient * This, + /* [retval][out] */ ControlCloseStatus *pCloseStatus); + + END_INTERFACE + } IMsRdpClientVtbl; + + interface IMsRdpClient + { + CONST_VTBL struct IMsRdpClientVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsRdpClient_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsRdpClient_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsRdpClient_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsRdpClient_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsRdpClient_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsRdpClient_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsRdpClient_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IMsRdpClient_put_Server(This,pServer) \ + ( (This)->lpVtbl -> put_Server(This,pServer) ) + +#define IMsRdpClient_get_Server(This,pServer) \ + ( (This)->lpVtbl -> get_Server(This,pServer) ) + +#define IMsRdpClient_put_Domain(This,pDomain) \ + ( (This)->lpVtbl -> put_Domain(This,pDomain) ) + +#define IMsRdpClient_get_Domain(This,pDomain) \ + ( (This)->lpVtbl -> get_Domain(This,pDomain) ) + +#define IMsRdpClient_put_UserName(This,pUserName) \ + ( (This)->lpVtbl -> put_UserName(This,pUserName) ) + +#define IMsRdpClient_get_UserName(This,pUserName) \ + ( (This)->lpVtbl -> get_UserName(This,pUserName) ) + +#define IMsRdpClient_put_DisconnectedText(This,pDisconnectedText) \ + ( (This)->lpVtbl -> put_DisconnectedText(This,pDisconnectedText) ) + +#define IMsRdpClient_get_DisconnectedText(This,pDisconnectedText) \ + ( (This)->lpVtbl -> get_DisconnectedText(This,pDisconnectedText) ) + +#define IMsRdpClient_put_ConnectingText(This,pConnectingText) \ + ( (This)->lpVtbl -> put_ConnectingText(This,pConnectingText) ) + +#define IMsRdpClient_get_ConnectingText(This,pConnectingText) \ + ( (This)->lpVtbl -> get_ConnectingText(This,pConnectingText) ) + +#define IMsRdpClient_get_Connected(This,pIsConnected) \ + ( (This)->lpVtbl -> get_Connected(This,pIsConnected) ) + +#define IMsRdpClient_put_DesktopWidth(This,pVal) \ + ( (This)->lpVtbl -> put_DesktopWidth(This,pVal) ) + +#define IMsRdpClient_get_DesktopWidth(This,pVal) \ + ( (This)->lpVtbl -> get_DesktopWidth(This,pVal) ) + +#define IMsRdpClient_put_DesktopHeight(This,pVal) \ + ( (This)->lpVtbl -> put_DesktopHeight(This,pVal) ) + +#define IMsRdpClient_get_DesktopHeight(This,pVal) \ + ( (This)->lpVtbl -> get_DesktopHeight(This,pVal) ) + +#define IMsRdpClient_put_StartConnected(This,pfStartConnected) \ + ( (This)->lpVtbl -> put_StartConnected(This,pfStartConnected) ) + +#define IMsRdpClient_get_StartConnected(This,pfStartConnected) \ + ( (This)->lpVtbl -> get_StartConnected(This,pfStartConnected) ) + +#define IMsRdpClient_get_HorizontalScrollBarVisible(This,pfHScrollVisible) \ + ( (This)->lpVtbl -> get_HorizontalScrollBarVisible(This,pfHScrollVisible) ) + +#define IMsRdpClient_get_VerticalScrollBarVisible(This,pfVScrollVisible) \ + ( (This)->lpVtbl -> get_VerticalScrollBarVisible(This,pfVScrollVisible) ) + +#define IMsRdpClient_put_FullScreenTitle(This,rhs) \ + ( (This)->lpVtbl -> put_FullScreenTitle(This,rhs) ) + +#define IMsRdpClient_get_CipherStrength(This,pCipherStrength) \ + ( (This)->lpVtbl -> get_CipherStrength(This,pCipherStrength) ) + +#define IMsRdpClient_get_Version(This,pVersion) \ + ( (This)->lpVtbl -> get_Version(This,pVersion) ) + +#define IMsRdpClient_get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) \ + ( (This)->lpVtbl -> get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) ) + +#define IMsRdpClient_get_SecuredSettings(This,ppSecuredSettings) \ + ( (This)->lpVtbl -> get_SecuredSettings(This,ppSecuredSettings) ) + +#define IMsRdpClient_get_AdvancedSettings(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings(This,ppAdvSettings) ) + +#define IMsRdpClient_get_Debugger(This,ppDebugger) \ + ( (This)->lpVtbl -> get_Debugger(This,ppDebugger) ) + +#define IMsRdpClient_Connect(This) \ + ( (This)->lpVtbl -> Connect(This) ) + +#define IMsRdpClient_Disconnect(This) \ + ( (This)->lpVtbl -> Disconnect(This) ) + +#define IMsRdpClient_CreateVirtualChannels(This,newVal) \ + ( (This)->lpVtbl -> CreateVirtualChannels(This,newVal) ) + +#define IMsRdpClient_SendOnVirtualChannel(This,chanName,ChanData) \ + ( (This)->lpVtbl -> SendOnVirtualChannel(This,chanName,ChanData) ) + + +#define IMsRdpClient_put_ColorDepth(This,pcolorDepth) \ + ( (This)->lpVtbl -> put_ColorDepth(This,pcolorDepth) ) + +#define IMsRdpClient_get_ColorDepth(This,pcolorDepth) \ + ( (This)->lpVtbl -> get_ColorDepth(This,pcolorDepth) ) + +#define IMsRdpClient_get_AdvancedSettings2(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings2(This,ppAdvSettings) ) + +#define IMsRdpClient_get_SecuredSettings2(This,ppSecuredSettings) \ + ( (This)->lpVtbl -> get_SecuredSettings2(This,ppSecuredSettings) ) + +#define IMsRdpClient_get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) \ + ( (This)->lpVtbl -> get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) ) + +#define IMsRdpClient_put_FullScreen(This,pfFullScreen) \ + ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) ) + +#define IMsRdpClient_get_FullScreen(This,pfFullScreen) \ + ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) ) + +#define IMsRdpClient_SetVirtualChannelOptions(This,chanName,chanOptions) \ + ( (This)->lpVtbl -> SetVirtualChannelOptions(This,chanName,chanOptions) ) + +#define IMsRdpClient_GetVirtualChannelOptions(This,chanName,pChanOptions) \ + ( (This)->lpVtbl -> GetVirtualChannelOptions(This,chanName,pChanOptions) ) + +#define IMsRdpClient_RequestClose(This,pCloseStatus) \ + ( (This)->lpVtbl -> RequestClose(This,pCloseStatus) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IMsRdpClient_INTERFACE_DEFINED__ */ + + +#ifndef __IMsRdpClient2_INTERFACE_DEFINED__ +#define __IMsRdpClient2_INTERFACE_DEFINED__ + +/* interface IMsRdpClient2 */ +/* [object][oleautomation][dual][uuid] */ + + +EXTERN_C const IID IID_IMsRdpClient2; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("E7E17DC4-3B71-4BA7-A8E6-281FFADCA28F") + IMsRdpClient2 : public IMsRdpClient + { + public: + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AdvancedSettings3( + /* [retval][out] */ IMsRdpClientAdvancedSettings2 **ppAdvSettings) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectedStatusText( + /* [in] */ BSTR pConnectedStatusText) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ConnectedStatusText( + /* [retval][out] */ BSTR *pConnectedStatusText) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsRdpClient2Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsRdpClient2 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsRdpClient2 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsRdpClient2 * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsRdpClient2 * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsRdpClient2 * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsRdpClient2 * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsRdpClient2 * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Server )( + IMsRdpClient2 * This, + /* [in] */ BSTR pServer); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Server )( + IMsRdpClient2 * This, + /* [retval][out] */ BSTR *pServer); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Domain )( + IMsRdpClient2 * This, + /* [in] */ BSTR pDomain); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Domain )( + IMsRdpClient2 * This, + /* [retval][out] */ BSTR *pDomain); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UserName )( + IMsRdpClient2 * This, + /* [in] */ BSTR pUserName); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )( + IMsRdpClient2 * This, + /* [retval][out] */ BSTR *pUserName); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisconnectedText )( + IMsRdpClient2 * This, + /* [in] */ BSTR pDisconnectedText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisconnectedText )( + IMsRdpClient2 * This, + /* [retval][out] */ BSTR *pDisconnectedText); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectingText )( + IMsRdpClient2 * This, + /* [in] */ BSTR pConnectingText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectingText )( + IMsRdpClient2 * This, + /* [retval][out] */ BSTR *pConnectingText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Connected )( + IMsRdpClient2 * This, + /* [retval][out] */ short *pIsConnected); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopWidth )( + IMsRdpClient2 * This, + /* [in] */ long pVal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopWidth )( + IMsRdpClient2 * This, + /* [retval][out] */ long *pVal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopHeight )( + IMsRdpClient2 * This, + /* [in] */ long pVal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopHeight )( + IMsRdpClient2 * This, + /* [retval][out] */ long *pVal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartConnected )( + IMsRdpClient2 * This, + /* [in] */ long pfStartConnected); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartConnected )( + IMsRdpClient2 * This, + /* [retval][out] */ long *pfStartConnected); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalScrollBarVisible )( + IMsRdpClient2 * This, + /* [retval][out] */ long *pfHScrollVisible); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalScrollBarVisible )( + IMsRdpClient2 * This, + /* [retval][out] */ long *pfVScrollVisible); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreenTitle )( + IMsRdpClient2 * This, + /* [in] */ BSTR rhs); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CipherStrength )( + IMsRdpClient2 * This, + /* [retval][out] */ long *pCipherStrength); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )( + IMsRdpClient2 * This, + /* [retval][out] */ BSTR *pVersion); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettingsEnabled )( + IMsRdpClient2 * This, + /* [retval][out] */ long *pSecuredSettingsEnabled); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings )( + IMsRdpClient2 * This, + /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings )( + IMsRdpClient2 * This, + /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings); + + /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Debugger )( + IMsRdpClient2 * This, + /* [retval][out] */ IMsTscDebug **ppDebugger); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Connect )( + IMsRdpClient2 * This); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( + IMsRdpClient2 * This); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateVirtualChannels )( + IMsRdpClient2 * This, + /* [in] */ BSTR newVal); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *SendOnVirtualChannel )( + IMsRdpClient2 * This, + /* [in] */ BSTR chanName, + /* [in] */ BSTR ChanData); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ColorDepth )( + IMsRdpClient2 * This, + /* [in] */ long pcolorDepth); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ColorDepth )( + IMsRdpClient2 * This, + /* [retval][out] */ long *pcolorDepth); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings2 )( + IMsRdpClient2 * This, + /* [retval][out] */ IMsRdpClientAdvancedSettings **ppAdvSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings2 )( + IMsRdpClient2 * This, + /* [retval][out] */ IMsRdpClientSecuredSettings **ppSecuredSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtendedDisconnectReason )( + IMsRdpClient2 * This, + /* [retval][out] */ ExtendedDisconnectReasonCode *pExtendedDisconnectReason); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )( + IMsRdpClient2 * This, + /* [in] */ VARIANT_BOOL pfFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )( + IMsRdpClient2 * This, + /* [retval][out] */ VARIANT_BOOL *pfFullScreen); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetVirtualChannelOptions )( + IMsRdpClient2 * This, + /* [in] */ BSTR chanName, + /* [in] */ long chanOptions); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetVirtualChannelOptions )( + IMsRdpClient2 * This, + /* [in] */ BSTR chanName, + /* [retval][out] */ long *pChanOptions); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *RequestClose )( + IMsRdpClient2 * This, + /* [retval][out] */ ControlCloseStatus *pCloseStatus); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings3 )( + IMsRdpClient2 * This, + /* [retval][out] */ IMsRdpClientAdvancedSettings2 **ppAdvSettings); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectedStatusText )( + IMsRdpClient2 * This, + /* [in] */ BSTR pConnectedStatusText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectedStatusText )( + IMsRdpClient2 * This, + /* [retval][out] */ BSTR *pConnectedStatusText); + + END_INTERFACE + } IMsRdpClient2Vtbl; + + interface IMsRdpClient2 + { + CONST_VTBL struct IMsRdpClient2Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsRdpClient2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsRdpClient2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsRdpClient2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsRdpClient2_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsRdpClient2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsRdpClient2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsRdpClient2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IMsRdpClient2_put_Server(This,pServer) \ + ( (This)->lpVtbl -> put_Server(This,pServer) ) + +#define IMsRdpClient2_get_Server(This,pServer) \ + ( (This)->lpVtbl -> get_Server(This,pServer) ) + +#define IMsRdpClient2_put_Domain(This,pDomain) \ + ( (This)->lpVtbl -> put_Domain(This,pDomain) ) + +#define IMsRdpClient2_get_Domain(This,pDomain) \ + ( (This)->lpVtbl -> get_Domain(This,pDomain) ) + +#define IMsRdpClient2_put_UserName(This,pUserName) \ + ( (This)->lpVtbl -> put_UserName(This,pUserName) ) + +#define IMsRdpClient2_get_UserName(This,pUserName) \ + ( (This)->lpVtbl -> get_UserName(This,pUserName) ) + +#define IMsRdpClient2_put_DisconnectedText(This,pDisconnectedText) \ + ( (This)->lpVtbl -> put_DisconnectedText(This,pDisconnectedText) ) + +#define IMsRdpClient2_get_DisconnectedText(This,pDisconnectedText) \ + ( (This)->lpVtbl -> get_DisconnectedText(This,pDisconnectedText) ) + +#define IMsRdpClient2_put_ConnectingText(This,pConnectingText) \ + ( (This)->lpVtbl -> put_ConnectingText(This,pConnectingText) ) + +#define IMsRdpClient2_get_ConnectingText(This,pConnectingText) \ + ( (This)->lpVtbl -> get_ConnectingText(This,pConnectingText) ) + +#define IMsRdpClient2_get_Connected(This,pIsConnected) \ + ( (This)->lpVtbl -> get_Connected(This,pIsConnected) ) + +#define IMsRdpClient2_put_DesktopWidth(This,pVal) \ + ( (This)->lpVtbl -> put_DesktopWidth(This,pVal) ) + +#define IMsRdpClient2_get_DesktopWidth(This,pVal) \ + ( (This)->lpVtbl -> get_DesktopWidth(This,pVal) ) + +#define IMsRdpClient2_put_DesktopHeight(This,pVal) \ + ( (This)->lpVtbl -> put_DesktopHeight(This,pVal) ) + +#define IMsRdpClient2_get_DesktopHeight(This,pVal) \ + ( (This)->lpVtbl -> get_DesktopHeight(This,pVal) ) + +#define IMsRdpClient2_put_StartConnected(This,pfStartConnected) \ + ( (This)->lpVtbl -> put_StartConnected(This,pfStartConnected) ) + +#define IMsRdpClient2_get_StartConnected(This,pfStartConnected) \ + ( (This)->lpVtbl -> get_StartConnected(This,pfStartConnected) ) + +#define IMsRdpClient2_get_HorizontalScrollBarVisible(This,pfHScrollVisible) \ + ( (This)->lpVtbl -> get_HorizontalScrollBarVisible(This,pfHScrollVisible) ) + +#define IMsRdpClient2_get_VerticalScrollBarVisible(This,pfVScrollVisible) \ + ( (This)->lpVtbl -> get_VerticalScrollBarVisible(This,pfVScrollVisible) ) + +#define IMsRdpClient2_put_FullScreenTitle(This,rhs) \ + ( (This)->lpVtbl -> put_FullScreenTitle(This,rhs) ) + +#define IMsRdpClient2_get_CipherStrength(This,pCipherStrength) \ + ( (This)->lpVtbl -> get_CipherStrength(This,pCipherStrength) ) + +#define IMsRdpClient2_get_Version(This,pVersion) \ + ( (This)->lpVtbl -> get_Version(This,pVersion) ) + +#define IMsRdpClient2_get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) \ + ( (This)->lpVtbl -> get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) ) + +#define IMsRdpClient2_get_SecuredSettings(This,ppSecuredSettings) \ + ( (This)->lpVtbl -> get_SecuredSettings(This,ppSecuredSettings) ) + +#define IMsRdpClient2_get_AdvancedSettings(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings(This,ppAdvSettings) ) + +#define IMsRdpClient2_get_Debugger(This,ppDebugger) \ + ( (This)->lpVtbl -> get_Debugger(This,ppDebugger) ) + +#define IMsRdpClient2_Connect(This) \ + ( (This)->lpVtbl -> Connect(This) ) + +#define IMsRdpClient2_Disconnect(This) \ + ( (This)->lpVtbl -> Disconnect(This) ) + +#define IMsRdpClient2_CreateVirtualChannels(This,newVal) \ + ( (This)->lpVtbl -> CreateVirtualChannels(This,newVal) ) + +#define IMsRdpClient2_SendOnVirtualChannel(This,chanName,ChanData) \ + ( (This)->lpVtbl -> SendOnVirtualChannel(This,chanName,ChanData) ) + + +#define IMsRdpClient2_put_ColorDepth(This,pcolorDepth) \ + ( (This)->lpVtbl -> put_ColorDepth(This,pcolorDepth) ) + +#define IMsRdpClient2_get_ColorDepth(This,pcolorDepth) \ + ( (This)->lpVtbl -> get_ColorDepth(This,pcolorDepth) ) + +#define IMsRdpClient2_get_AdvancedSettings2(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings2(This,ppAdvSettings) ) + +#define IMsRdpClient2_get_SecuredSettings2(This,ppSecuredSettings) \ + ( (This)->lpVtbl -> get_SecuredSettings2(This,ppSecuredSettings) ) + +#define IMsRdpClient2_get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) \ + ( (This)->lpVtbl -> get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) ) + +#define IMsRdpClient2_put_FullScreen(This,pfFullScreen) \ + ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) ) + +#define IMsRdpClient2_get_FullScreen(This,pfFullScreen) \ + ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) ) + +#define IMsRdpClient2_SetVirtualChannelOptions(This,chanName,chanOptions) \ + ( (This)->lpVtbl -> SetVirtualChannelOptions(This,chanName,chanOptions) ) + +#define IMsRdpClient2_GetVirtualChannelOptions(This,chanName,pChanOptions) \ + ( (This)->lpVtbl -> GetVirtualChannelOptions(This,chanName,pChanOptions) ) + +#define IMsRdpClient2_RequestClose(This,pCloseStatus) \ + ( (This)->lpVtbl -> RequestClose(This,pCloseStatus) ) + + +#define IMsRdpClient2_get_AdvancedSettings3(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings3(This,ppAdvSettings) ) + +#define IMsRdpClient2_put_ConnectedStatusText(This,pConnectedStatusText) \ + ( (This)->lpVtbl -> put_ConnectedStatusText(This,pConnectedStatusText) ) + +#define IMsRdpClient2_get_ConnectedStatusText(This,pConnectedStatusText) \ + ( (This)->lpVtbl -> get_ConnectedStatusText(This,pConnectedStatusText) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IMsRdpClient2_INTERFACE_DEFINED__ */ + + +#ifndef __IMsRdpClient3_INTERFACE_DEFINED__ +#define __IMsRdpClient3_INTERFACE_DEFINED__ + +/* interface IMsRdpClient3 */ +/* [object][oleautomation][dual][uuid] */ + + +EXTERN_C const IID IID_IMsRdpClient3; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("91B7CBC5-A72E-4FA0-9300-D647D7E897FF") + IMsRdpClient3 : public IMsRdpClient2 + { + public: + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AdvancedSettings4( + /* [retval][out] */ IMsRdpClientAdvancedSettings3 **ppAdvSettings) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsRdpClient3Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsRdpClient3 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsRdpClient3 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsRdpClient3 * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsRdpClient3 * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsRdpClient3 * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsRdpClient3 * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsRdpClient3 * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Server )( + IMsRdpClient3 * This, + /* [in] */ BSTR pServer); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Server )( + IMsRdpClient3 * This, + /* [retval][out] */ BSTR *pServer); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Domain )( + IMsRdpClient3 * This, + /* [in] */ BSTR pDomain); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Domain )( + IMsRdpClient3 * This, + /* [retval][out] */ BSTR *pDomain); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UserName )( + IMsRdpClient3 * This, + /* [in] */ BSTR pUserName); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )( + IMsRdpClient3 * This, + /* [retval][out] */ BSTR *pUserName); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisconnectedText )( + IMsRdpClient3 * This, + /* [in] */ BSTR pDisconnectedText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisconnectedText )( + IMsRdpClient3 * This, + /* [retval][out] */ BSTR *pDisconnectedText); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectingText )( + IMsRdpClient3 * This, + /* [in] */ BSTR pConnectingText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectingText )( + IMsRdpClient3 * This, + /* [retval][out] */ BSTR *pConnectingText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Connected )( + IMsRdpClient3 * This, + /* [retval][out] */ short *pIsConnected); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopWidth )( + IMsRdpClient3 * This, + /* [in] */ long pVal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopWidth )( + IMsRdpClient3 * This, + /* [retval][out] */ long *pVal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopHeight )( + IMsRdpClient3 * This, + /* [in] */ long pVal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopHeight )( + IMsRdpClient3 * This, + /* [retval][out] */ long *pVal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartConnected )( + IMsRdpClient3 * This, + /* [in] */ long pfStartConnected); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartConnected )( + IMsRdpClient3 * This, + /* [retval][out] */ long *pfStartConnected); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalScrollBarVisible )( + IMsRdpClient3 * This, + /* [retval][out] */ long *pfHScrollVisible); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalScrollBarVisible )( + IMsRdpClient3 * This, + /* [retval][out] */ long *pfVScrollVisible); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreenTitle )( + IMsRdpClient3 * This, + /* [in] */ BSTR rhs); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CipherStrength )( + IMsRdpClient3 * This, + /* [retval][out] */ long *pCipherStrength); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )( + IMsRdpClient3 * This, + /* [retval][out] */ BSTR *pVersion); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettingsEnabled )( + IMsRdpClient3 * This, + /* [retval][out] */ long *pSecuredSettingsEnabled); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings )( + IMsRdpClient3 * This, + /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings )( + IMsRdpClient3 * This, + /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings); + + /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Debugger )( + IMsRdpClient3 * This, + /* [retval][out] */ IMsTscDebug **ppDebugger); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Connect )( + IMsRdpClient3 * This); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( + IMsRdpClient3 * This); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateVirtualChannels )( + IMsRdpClient3 * This, + /* [in] */ BSTR newVal); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *SendOnVirtualChannel )( + IMsRdpClient3 * This, + /* [in] */ BSTR chanName, + /* [in] */ BSTR ChanData); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ColorDepth )( + IMsRdpClient3 * This, + /* [in] */ long pcolorDepth); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ColorDepth )( + IMsRdpClient3 * This, + /* [retval][out] */ long *pcolorDepth); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings2 )( + IMsRdpClient3 * This, + /* [retval][out] */ IMsRdpClientAdvancedSettings **ppAdvSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings2 )( + IMsRdpClient3 * This, + /* [retval][out] */ IMsRdpClientSecuredSettings **ppSecuredSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtendedDisconnectReason )( + IMsRdpClient3 * This, + /* [retval][out] */ ExtendedDisconnectReasonCode *pExtendedDisconnectReason); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )( + IMsRdpClient3 * This, + /* [in] */ VARIANT_BOOL pfFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )( + IMsRdpClient3 * This, + /* [retval][out] */ VARIANT_BOOL *pfFullScreen); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetVirtualChannelOptions )( + IMsRdpClient3 * This, + /* [in] */ BSTR chanName, + /* [in] */ long chanOptions); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetVirtualChannelOptions )( + IMsRdpClient3 * This, + /* [in] */ BSTR chanName, + /* [retval][out] */ long *pChanOptions); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *RequestClose )( + IMsRdpClient3 * This, + /* [retval][out] */ ControlCloseStatus *pCloseStatus); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings3 )( + IMsRdpClient3 * This, + /* [retval][out] */ IMsRdpClientAdvancedSettings2 **ppAdvSettings); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectedStatusText )( + IMsRdpClient3 * This, + /* [in] */ BSTR pConnectedStatusText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectedStatusText )( + IMsRdpClient3 * This, + /* [retval][out] */ BSTR *pConnectedStatusText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings4 )( + IMsRdpClient3 * This, + /* [retval][out] */ IMsRdpClientAdvancedSettings3 **ppAdvSettings); + + END_INTERFACE + } IMsRdpClient3Vtbl; + + interface IMsRdpClient3 + { + CONST_VTBL struct IMsRdpClient3Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsRdpClient3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsRdpClient3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsRdpClient3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsRdpClient3_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsRdpClient3_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsRdpClient3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsRdpClient3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IMsRdpClient3_put_Server(This,pServer) \ + ( (This)->lpVtbl -> put_Server(This,pServer) ) + +#define IMsRdpClient3_get_Server(This,pServer) \ + ( (This)->lpVtbl -> get_Server(This,pServer) ) + +#define IMsRdpClient3_put_Domain(This,pDomain) \ + ( (This)->lpVtbl -> put_Domain(This,pDomain) ) + +#define IMsRdpClient3_get_Domain(This,pDomain) \ + ( (This)->lpVtbl -> get_Domain(This,pDomain) ) + +#define IMsRdpClient3_put_UserName(This,pUserName) \ + ( (This)->lpVtbl -> put_UserName(This,pUserName) ) + +#define IMsRdpClient3_get_UserName(This,pUserName) \ + ( (This)->lpVtbl -> get_UserName(This,pUserName) ) + +#define IMsRdpClient3_put_DisconnectedText(This,pDisconnectedText) \ + ( (This)->lpVtbl -> put_DisconnectedText(This,pDisconnectedText) ) + +#define IMsRdpClient3_get_DisconnectedText(This,pDisconnectedText) \ + ( (This)->lpVtbl -> get_DisconnectedText(This,pDisconnectedText) ) + +#define IMsRdpClient3_put_ConnectingText(This,pConnectingText) \ + ( (This)->lpVtbl -> put_ConnectingText(This,pConnectingText) ) + +#define IMsRdpClient3_get_ConnectingText(This,pConnectingText) \ + ( (This)->lpVtbl -> get_ConnectingText(This,pConnectingText) ) + +#define IMsRdpClient3_get_Connected(This,pIsConnected) \ + ( (This)->lpVtbl -> get_Connected(This,pIsConnected) ) + +#define IMsRdpClient3_put_DesktopWidth(This,pVal) \ + ( (This)->lpVtbl -> put_DesktopWidth(This,pVal) ) + +#define IMsRdpClient3_get_DesktopWidth(This,pVal) \ + ( (This)->lpVtbl -> get_DesktopWidth(This,pVal) ) + +#define IMsRdpClient3_put_DesktopHeight(This,pVal) \ + ( (This)->lpVtbl -> put_DesktopHeight(This,pVal) ) + +#define IMsRdpClient3_get_DesktopHeight(This,pVal) \ + ( (This)->lpVtbl -> get_DesktopHeight(This,pVal) ) + +#define IMsRdpClient3_put_StartConnected(This,pfStartConnected) \ + ( (This)->lpVtbl -> put_StartConnected(This,pfStartConnected) ) + +#define IMsRdpClient3_get_StartConnected(This,pfStartConnected) \ + ( (This)->lpVtbl -> get_StartConnected(This,pfStartConnected) ) + +#define IMsRdpClient3_get_HorizontalScrollBarVisible(This,pfHScrollVisible) \ + ( (This)->lpVtbl -> get_HorizontalScrollBarVisible(This,pfHScrollVisible) ) + +#define IMsRdpClient3_get_VerticalScrollBarVisible(This,pfVScrollVisible) \ + ( (This)->lpVtbl -> get_VerticalScrollBarVisible(This,pfVScrollVisible) ) + +#define IMsRdpClient3_put_FullScreenTitle(This,rhs) \ + ( (This)->lpVtbl -> put_FullScreenTitle(This,rhs) ) + +#define IMsRdpClient3_get_CipherStrength(This,pCipherStrength) \ + ( (This)->lpVtbl -> get_CipherStrength(This,pCipherStrength) ) + +#define IMsRdpClient3_get_Version(This,pVersion) \ + ( (This)->lpVtbl -> get_Version(This,pVersion) ) + +#define IMsRdpClient3_get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) \ + ( (This)->lpVtbl -> get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) ) + +#define IMsRdpClient3_get_SecuredSettings(This,ppSecuredSettings) \ + ( (This)->lpVtbl -> get_SecuredSettings(This,ppSecuredSettings) ) + +#define IMsRdpClient3_get_AdvancedSettings(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings(This,ppAdvSettings) ) + +#define IMsRdpClient3_get_Debugger(This,ppDebugger) \ + ( (This)->lpVtbl -> get_Debugger(This,ppDebugger) ) + +#define IMsRdpClient3_Connect(This) \ + ( (This)->lpVtbl -> Connect(This) ) + +#define IMsRdpClient3_Disconnect(This) \ + ( (This)->lpVtbl -> Disconnect(This) ) + +#define IMsRdpClient3_CreateVirtualChannels(This,newVal) \ + ( (This)->lpVtbl -> CreateVirtualChannels(This,newVal) ) + +#define IMsRdpClient3_SendOnVirtualChannel(This,chanName,ChanData) \ + ( (This)->lpVtbl -> SendOnVirtualChannel(This,chanName,ChanData) ) + + +#define IMsRdpClient3_put_ColorDepth(This,pcolorDepth) \ + ( (This)->lpVtbl -> put_ColorDepth(This,pcolorDepth) ) + +#define IMsRdpClient3_get_ColorDepth(This,pcolorDepth) \ + ( (This)->lpVtbl -> get_ColorDepth(This,pcolorDepth) ) + +#define IMsRdpClient3_get_AdvancedSettings2(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings2(This,ppAdvSettings) ) + +#define IMsRdpClient3_get_SecuredSettings2(This,ppSecuredSettings) \ + ( (This)->lpVtbl -> get_SecuredSettings2(This,ppSecuredSettings) ) + +#define IMsRdpClient3_get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) \ + ( (This)->lpVtbl -> get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) ) + +#define IMsRdpClient3_put_FullScreen(This,pfFullScreen) \ + ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) ) + +#define IMsRdpClient3_get_FullScreen(This,pfFullScreen) \ + ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) ) + +#define IMsRdpClient3_SetVirtualChannelOptions(This,chanName,chanOptions) \ + ( (This)->lpVtbl -> SetVirtualChannelOptions(This,chanName,chanOptions) ) + +#define IMsRdpClient3_GetVirtualChannelOptions(This,chanName,pChanOptions) \ + ( (This)->lpVtbl -> GetVirtualChannelOptions(This,chanName,pChanOptions) ) + +#define IMsRdpClient3_RequestClose(This,pCloseStatus) \ + ( (This)->lpVtbl -> RequestClose(This,pCloseStatus) ) + + +#define IMsRdpClient3_get_AdvancedSettings3(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings3(This,ppAdvSettings) ) + +#define IMsRdpClient3_put_ConnectedStatusText(This,pConnectedStatusText) \ + ( (This)->lpVtbl -> put_ConnectedStatusText(This,pConnectedStatusText) ) + +#define IMsRdpClient3_get_ConnectedStatusText(This,pConnectedStatusText) \ + ( (This)->lpVtbl -> get_ConnectedStatusText(This,pConnectedStatusText) ) + + +#define IMsRdpClient3_get_AdvancedSettings4(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings4(This,ppAdvSettings) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IMsRdpClient3_INTERFACE_DEFINED__ */ + + +#ifndef __IMsRdpClient4_INTERFACE_DEFINED__ +#define __IMsRdpClient4_INTERFACE_DEFINED__ + +/* interface IMsRdpClient4 */ +/* [object][oleautomation][dual][uuid] */ + + +EXTERN_C const IID IID_IMsRdpClient4; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("095E0738-D97D-488B-B9F6-DD0E8D66C0DE") + IMsRdpClient4 : public IMsRdpClient3 + { + public: + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AdvancedSettings5( + /* [retval][out] */ IMsRdpClientAdvancedSettings4 **ppAdvSettings5) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsRdpClient4Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsRdpClient4 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsRdpClient4 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsRdpClient4 * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsRdpClient4 * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsRdpClient4 * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsRdpClient4 * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsRdpClient4 * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Server )( + IMsRdpClient4 * This, + /* [in] */ BSTR pServer); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Server )( + IMsRdpClient4 * This, + /* [retval][out] */ BSTR *pServer); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Domain )( + IMsRdpClient4 * This, + /* [in] */ BSTR pDomain); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Domain )( + IMsRdpClient4 * This, + /* [retval][out] */ BSTR *pDomain); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UserName )( + IMsRdpClient4 * This, + /* [in] */ BSTR pUserName); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )( + IMsRdpClient4 * This, + /* [retval][out] */ BSTR *pUserName); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisconnectedText )( + IMsRdpClient4 * This, + /* [in] */ BSTR pDisconnectedText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisconnectedText )( + IMsRdpClient4 * This, + /* [retval][out] */ BSTR *pDisconnectedText); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectingText )( + IMsRdpClient4 * This, + /* [in] */ BSTR pConnectingText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectingText )( + IMsRdpClient4 * This, + /* [retval][out] */ BSTR *pConnectingText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Connected )( + IMsRdpClient4 * This, + /* [retval][out] */ short *pIsConnected); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopWidth )( + IMsRdpClient4 * This, + /* [in] */ long pVal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopWidth )( + IMsRdpClient4 * This, + /* [retval][out] */ long *pVal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopHeight )( + IMsRdpClient4 * This, + /* [in] */ long pVal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopHeight )( + IMsRdpClient4 * This, + /* [retval][out] */ long *pVal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartConnected )( + IMsRdpClient4 * This, + /* [in] */ long pfStartConnected); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartConnected )( + IMsRdpClient4 * This, + /* [retval][out] */ long *pfStartConnected); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalScrollBarVisible )( + IMsRdpClient4 * This, + /* [retval][out] */ long *pfHScrollVisible); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalScrollBarVisible )( + IMsRdpClient4 * This, + /* [retval][out] */ long *pfVScrollVisible); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreenTitle )( + IMsRdpClient4 * This, + /* [in] */ BSTR rhs); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CipherStrength )( + IMsRdpClient4 * This, + /* [retval][out] */ long *pCipherStrength); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )( + IMsRdpClient4 * This, + /* [retval][out] */ BSTR *pVersion); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettingsEnabled )( + IMsRdpClient4 * This, + /* [retval][out] */ long *pSecuredSettingsEnabled); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings )( + IMsRdpClient4 * This, + /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings )( + IMsRdpClient4 * This, + /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings); + + /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Debugger )( + IMsRdpClient4 * This, + /* [retval][out] */ IMsTscDebug **ppDebugger); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Connect )( + IMsRdpClient4 * This); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( + IMsRdpClient4 * This); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateVirtualChannels )( + IMsRdpClient4 * This, + /* [in] */ BSTR newVal); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *SendOnVirtualChannel )( + IMsRdpClient4 * This, + /* [in] */ BSTR chanName, + /* [in] */ BSTR ChanData); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ColorDepth )( + IMsRdpClient4 * This, + /* [in] */ long pcolorDepth); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ColorDepth )( + IMsRdpClient4 * This, + /* [retval][out] */ long *pcolorDepth); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings2 )( + IMsRdpClient4 * This, + /* [retval][out] */ IMsRdpClientAdvancedSettings **ppAdvSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings2 )( + IMsRdpClient4 * This, + /* [retval][out] */ IMsRdpClientSecuredSettings **ppSecuredSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtendedDisconnectReason )( + IMsRdpClient4 * This, + /* [retval][out] */ ExtendedDisconnectReasonCode *pExtendedDisconnectReason); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )( + IMsRdpClient4 * This, + /* [in] */ VARIANT_BOOL pfFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )( + IMsRdpClient4 * This, + /* [retval][out] */ VARIANT_BOOL *pfFullScreen); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetVirtualChannelOptions )( + IMsRdpClient4 * This, + /* [in] */ BSTR chanName, + /* [in] */ long chanOptions); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetVirtualChannelOptions )( + IMsRdpClient4 * This, + /* [in] */ BSTR chanName, + /* [retval][out] */ long *pChanOptions); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *RequestClose )( + IMsRdpClient4 * This, + /* [retval][out] */ ControlCloseStatus *pCloseStatus); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings3 )( + IMsRdpClient4 * This, + /* [retval][out] */ IMsRdpClientAdvancedSettings2 **ppAdvSettings); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectedStatusText )( + IMsRdpClient4 * This, + /* [in] */ BSTR pConnectedStatusText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectedStatusText )( + IMsRdpClient4 * This, + /* [retval][out] */ BSTR *pConnectedStatusText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings4 )( + IMsRdpClient4 * This, + /* [retval][out] */ IMsRdpClientAdvancedSettings3 **ppAdvSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings5 )( + IMsRdpClient4 * This, + /* [retval][out] */ IMsRdpClientAdvancedSettings4 **ppAdvSettings5); + + END_INTERFACE + } IMsRdpClient4Vtbl; + + interface IMsRdpClient4 + { + CONST_VTBL struct IMsRdpClient4Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsRdpClient4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsRdpClient4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsRdpClient4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsRdpClient4_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsRdpClient4_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsRdpClient4_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsRdpClient4_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IMsRdpClient4_put_Server(This,pServer) \ + ( (This)->lpVtbl -> put_Server(This,pServer) ) + +#define IMsRdpClient4_get_Server(This,pServer) \ + ( (This)->lpVtbl -> get_Server(This,pServer) ) + +#define IMsRdpClient4_put_Domain(This,pDomain) \ + ( (This)->lpVtbl -> put_Domain(This,pDomain) ) + +#define IMsRdpClient4_get_Domain(This,pDomain) \ + ( (This)->lpVtbl -> get_Domain(This,pDomain) ) + +#define IMsRdpClient4_put_UserName(This,pUserName) \ + ( (This)->lpVtbl -> put_UserName(This,pUserName) ) + +#define IMsRdpClient4_get_UserName(This,pUserName) \ + ( (This)->lpVtbl -> get_UserName(This,pUserName) ) + +#define IMsRdpClient4_put_DisconnectedText(This,pDisconnectedText) \ + ( (This)->lpVtbl -> put_DisconnectedText(This,pDisconnectedText) ) + +#define IMsRdpClient4_get_DisconnectedText(This,pDisconnectedText) \ + ( (This)->lpVtbl -> get_DisconnectedText(This,pDisconnectedText) ) + +#define IMsRdpClient4_put_ConnectingText(This,pConnectingText) \ + ( (This)->lpVtbl -> put_ConnectingText(This,pConnectingText) ) + +#define IMsRdpClient4_get_ConnectingText(This,pConnectingText) \ + ( (This)->lpVtbl -> get_ConnectingText(This,pConnectingText) ) + +#define IMsRdpClient4_get_Connected(This,pIsConnected) \ + ( (This)->lpVtbl -> get_Connected(This,pIsConnected) ) + +#define IMsRdpClient4_put_DesktopWidth(This,pVal) \ + ( (This)->lpVtbl -> put_DesktopWidth(This,pVal) ) + +#define IMsRdpClient4_get_DesktopWidth(This,pVal) \ + ( (This)->lpVtbl -> get_DesktopWidth(This,pVal) ) + +#define IMsRdpClient4_put_DesktopHeight(This,pVal) \ + ( (This)->lpVtbl -> put_DesktopHeight(This,pVal) ) + +#define IMsRdpClient4_get_DesktopHeight(This,pVal) \ + ( (This)->lpVtbl -> get_DesktopHeight(This,pVal) ) + +#define IMsRdpClient4_put_StartConnected(This,pfStartConnected) \ + ( (This)->lpVtbl -> put_StartConnected(This,pfStartConnected) ) + +#define IMsRdpClient4_get_StartConnected(This,pfStartConnected) \ + ( (This)->lpVtbl -> get_StartConnected(This,pfStartConnected) ) + +#define IMsRdpClient4_get_HorizontalScrollBarVisible(This,pfHScrollVisible) \ + ( (This)->lpVtbl -> get_HorizontalScrollBarVisible(This,pfHScrollVisible) ) + +#define IMsRdpClient4_get_VerticalScrollBarVisible(This,pfVScrollVisible) \ + ( (This)->lpVtbl -> get_VerticalScrollBarVisible(This,pfVScrollVisible) ) + +#define IMsRdpClient4_put_FullScreenTitle(This,rhs) \ + ( (This)->lpVtbl -> put_FullScreenTitle(This,rhs) ) + +#define IMsRdpClient4_get_CipherStrength(This,pCipherStrength) \ + ( (This)->lpVtbl -> get_CipherStrength(This,pCipherStrength) ) + +#define IMsRdpClient4_get_Version(This,pVersion) \ + ( (This)->lpVtbl -> get_Version(This,pVersion) ) + +#define IMsRdpClient4_get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) \ + ( (This)->lpVtbl -> get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) ) + +#define IMsRdpClient4_get_SecuredSettings(This,ppSecuredSettings) \ + ( (This)->lpVtbl -> get_SecuredSettings(This,ppSecuredSettings) ) + +#define IMsRdpClient4_get_AdvancedSettings(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings(This,ppAdvSettings) ) + +#define IMsRdpClient4_get_Debugger(This,ppDebugger) \ + ( (This)->lpVtbl -> get_Debugger(This,ppDebugger) ) + +#define IMsRdpClient4_Connect(This) \ + ( (This)->lpVtbl -> Connect(This) ) + +#define IMsRdpClient4_Disconnect(This) \ + ( (This)->lpVtbl -> Disconnect(This) ) + +#define IMsRdpClient4_CreateVirtualChannels(This,newVal) \ + ( (This)->lpVtbl -> CreateVirtualChannels(This,newVal) ) + +#define IMsRdpClient4_SendOnVirtualChannel(This,chanName,ChanData) \ + ( (This)->lpVtbl -> SendOnVirtualChannel(This,chanName,ChanData) ) + + +#define IMsRdpClient4_put_ColorDepth(This,pcolorDepth) \ + ( (This)->lpVtbl -> put_ColorDepth(This,pcolorDepth) ) + +#define IMsRdpClient4_get_ColorDepth(This,pcolorDepth) \ + ( (This)->lpVtbl -> get_ColorDepth(This,pcolorDepth) ) + +#define IMsRdpClient4_get_AdvancedSettings2(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings2(This,ppAdvSettings) ) + +#define IMsRdpClient4_get_SecuredSettings2(This,ppSecuredSettings) \ + ( (This)->lpVtbl -> get_SecuredSettings2(This,ppSecuredSettings) ) + +#define IMsRdpClient4_get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) \ + ( (This)->lpVtbl -> get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) ) + +#define IMsRdpClient4_put_FullScreen(This,pfFullScreen) \ + ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) ) + +#define IMsRdpClient4_get_FullScreen(This,pfFullScreen) \ + ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) ) + +#define IMsRdpClient4_SetVirtualChannelOptions(This,chanName,chanOptions) \ + ( (This)->lpVtbl -> SetVirtualChannelOptions(This,chanName,chanOptions) ) + +#define IMsRdpClient4_GetVirtualChannelOptions(This,chanName,pChanOptions) \ + ( (This)->lpVtbl -> GetVirtualChannelOptions(This,chanName,pChanOptions) ) + +#define IMsRdpClient4_RequestClose(This,pCloseStatus) \ + ( (This)->lpVtbl -> RequestClose(This,pCloseStatus) ) + + +#define IMsRdpClient4_get_AdvancedSettings3(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings3(This,ppAdvSettings) ) + +#define IMsRdpClient4_put_ConnectedStatusText(This,pConnectedStatusText) \ + ( (This)->lpVtbl -> put_ConnectedStatusText(This,pConnectedStatusText) ) + +#define IMsRdpClient4_get_ConnectedStatusText(This,pConnectedStatusText) \ + ( (This)->lpVtbl -> get_ConnectedStatusText(This,pConnectedStatusText) ) + + +#define IMsRdpClient4_get_AdvancedSettings4(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings4(This,ppAdvSettings) ) + + +#define IMsRdpClient4_get_AdvancedSettings5(This,ppAdvSettings5) \ + ( (This)->lpVtbl -> get_AdvancedSettings5(This,ppAdvSettings5) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IMsRdpClient4_INTERFACE_DEFINED__ */ + + +#ifndef __IMsTscNonScriptable_INTERFACE_DEFINED__ +#define __IMsTscNonScriptable_INTERFACE_DEFINED__ + +/* interface IMsTscNonScriptable */ +/* [object][uuid] */ + + +EXTERN_C const IID IID_IMsTscNonScriptable; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("C1E6743A-41C1-4A74-832A-0DD06C1C7A0E") + IMsTscNonScriptable : public IUnknown + { + public: + virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ClearTextPassword( + /* [in] */ BSTR rhs) = 0; + + virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PortablePassword( + /* [in] */ BSTR pPortablePass) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PortablePassword( + /* [retval][out] */ BSTR *pPortablePass) = 0; + + virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PortableSalt( + /* [in] */ BSTR pPortableSalt) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PortableSalt( + /* [retval][out] */ BSTR *pPortableSalt) = 0; + + virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_BinaryPassword( + /* [in] */ BSTR pBinaryPassword) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BinaryPassword( + /* [retval][out] */ BSTR *pBinaryPassword) = 0; + + virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_BinarySalt( + /* [in] */ BSTR pSalt) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BinarySalt( + /* [retval][out] */ BSTR *pSalt) = 0; + + virtual HRESULT STDMETHODCALLTYPE ResetPassword( void) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsTscNonScriptableVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsTscNonScriptable * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsTscNonScriptable * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsTscNonScriptable * This); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( + IMsTscNonScriptable * This, + /* [in] */ BSTR rhs); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortablePassword )( + IMsTscNonScriptable * This, + /* [in] */ BSTR pPortablePass); + + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortablePassword )( + IMsTscNonScriptable * This, + /* [retval][out] */ BSTR *pPortablePass); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortableSalt )( + IMsTscNonScriptable * This, + /* [in] */ BSTR pPortableSalt); + + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortableSalt )( + IMsTscNonScriptable * This, + /* [retval][out] */ BSTR *pPortableSalt); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinaryPassword )( + IMsTscNonScriptable * This, + /* [in] */ BSTR pBinaryPassword); + + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinaryPassword )( + IMsTscNonScriptable * This, + /* [retval][out] */ BSTR *pBinaryPassword); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinarySalt )( + IMsTscNonScriptable * This, + /* [in] */ BSTR pSalt); + + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinarySalt )( + IMsTscNonScriptable * This, + /* [retval][out] */ BSTR *pSalt); + + HRESULT ( STDMETHODCALLTYPE *ResetPassword )( + IMsTscNonScriptable * This); + + END_INTERFACE + } IMsTscNonScriptableVtbl; + + interface IMsTscNonScriptable + { + CONST_VTBL struct IMsTscNonScriptableVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsTscNonScriptable_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsTscNonScriptable_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsTscNonScriptable_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsTscNonScriptable_put_ClearTextPassword(This,rhs) \ + ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) + +#define IMsTscNonScriptable_put_PortablePassword(This,pPortablePass) \ + ( (This)->lpVtbl -> put_PortablePassword(This,pPortablePass) ) + +#define IMsTscNonScriptable_get_PortablePassword(This,pPortablePass) \ + ( (This)->lpVtbl -> get_PortablePassword(This,pPortablePass) ) + +#define IMsTscNonScriptable_put_PortableSalt(This,pPortableSalt) \ + ( (This)->lpVtbl -> put_PortableSalt(This,pPortableSalt) ) + +#define IMsTscNonScriptable_get_PortableSalt(This,pPortableSalt) \ + ( (This)->lpVtbl -> get_PortableSalt(This,pPortableSalt) ) + +#define IMsTscNonScriptable_put_BinaryPassword(This,pBinaryPassword) \ + ( (This)->lpVtbl -> put_BinaryPassword(This,pBinaryPassword) ) + +#define IMsTscNonScriptable_get_BinaryPassword(This,pBinaryPassword) \ + ( (This)->lpVtbl -> get_BinaryPassword(This,pBinaryPassword) ) + +#define IMsTscNonScriptable_put_BinarySalt(This,pSalt) \ + ( (This)->lpVtbl -> put_BinarySalt(This,pSalt) ) + +#define IMsTscNonScriptable_get_BinarySalt(This,pSalt) \ + ( (This)->lpVtbl -> get_BinarySalt(This,pSalt) ) + +#define IMsTscNonScriptable_ResetPassword(This) \ + ( (This)->lpVtbl -> ResetPassword(This) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IMsTscNonScriptable_INTERFACE_DEFINED__ */ + + +#ifndef __IMsRdpClientNonScriptable_INTERFACE_DEFINED__ +#define __IMsRdpClientNonScriptable_INTERFACE_DEFINED__ + +/* interface IMsRdpClientNonScriptable */ +/* [object][uuid] */ + + +EXTERN_C const IID IID_IMsRdpClientNonScriptable; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("2F079C4C-87B2-4AFD-97AB-20CDB43038AE") + IMsRdpClientNonScriptable : public IMsTscNonScriptable + { + public: + virtual HRESULT STDMETHODCALLTYPE NotifyRedirectDeviceChange( + /* [in] */ UINT_PTR wParam, + /* [in] */ LONG_PTR lParam) = 0; + + virtual HRESULT STDMETHODCALLTYPE SendKeys( + /* [in] */ long numKeys, + /* [in] */ VARIANT_BOOL *pbArrayKeyUp, + /* [in] */ long *plKeyData) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsRdpClientNonScriptableVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsRdpClientNonScriptable * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsRdpClientNonScriptable * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsRdpClientNonScriptable * This); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( + IMsRdpClientNonScriptable * This, + /* [in] */ BSTR rhs); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortablePassword )( + IMsRdpClientNonScriptable * This, + /* [in] */ BSTR pPortablePass); + + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortablePassword )( + IMsRdpClientNonScriptable * This, + /* [retval][out] */ BSTR *pPortablePass); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortableSalt )( + IMsRdpClientNonScriptable * This, + /* [in] */ BSTR pPortableSalt); + + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortableSalt )( + IMsRdpClientNonScriptable * This, + /* [retval][out] */ BSTR *pPortableSalt); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinaryPassword )( + IMsRdpClientNonScriptable * This, + /* [in] */ BSTR pBinaryPassword); + + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinaryPassword )( + IMsRdpClientNonScriptable * This, + /* [retval][out] */ BSTR *pBinaryPassword); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinarySalt )( + IMsRdpClientNonScriptable * This, + /* [in] */ BSTR pSalt); + + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinarySalt )( + IMsRdpClientNonScriptable * This, + /* [retval][out] */ BSTR *pSalt); + + HRESULT ( STDMETHODCALLTYPE *ResetPassword )( + IMsRdpClientNonScriptable * This); + + HRESULT ( STDMETHODCALLTYPE *NotifyRedirectDeviceChange )( + IMsRdpClientNonScriptable * This, + /* [in] */ UINT_PTR wParam, + /* [in] */ LONG_PTR lParam); + + HRESULT ( STDMETHODCALLTYPE *SendKeys )( + IMsRdpClientNonScriptable * This, + /* [in] */ long numKeys, + /* [in] */ VARIANT_BOOL *pbArrayKeyUp, + /* [in] */ long *plKeyData); + + END_INTERFACE + } IMsRdpClientNonScriptableVtbl; + + interface IMsRdpClientNonScriptable + { + CONST_VTBL struct IMsRdpClientNonScriptableVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsRdpClientNonScriptable_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsRdpClientNonScriptable_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsRdpClientNonScriptable_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsRdpClientNonScriptable_put_ClearTextPassword(This,rhs) \ + ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) + +#define IMsRdpClientNonScriptable_put_PortablePassword(This,pPortablePass) \ + ( (This)->lpVtbl -> put_PortablePassword(This,pPortablePass) ) + +#define IMsRdpClientNonScriptable_get_PortablePassword(This,pPortablePass) \ + ( (This)->lpVtbl -> get_PortablePassword(This,pPortablePass) ) + +#define IMsRdpClientNonScriptable_put_PortableSalt(This,pPortableSalt) \ + ( (This)->lpVtbl -> put_PortableSalt(This,pPortableSalt) ) + +#define IMsRdpClientNonScriptable_get_PortableSalt(This,pPortableSalt) \ + ( (This)->lpVtbl -> get_PortableSalt(This,pPortableSalt) ) + +#define IMsRdpClientNonScriptable_put_BinaryPassword(This,pBinaryPassword) \ + ( (This)->lpVtbl -> put_BinaryPassword(This,pBinaryPassword) ) + +#define IMsRdpClientNonScriptable_get_BinaryPassword(This,pBinaryPassword) \ + ( (This)->lpVtbl -> get_BinaryPassword(This,pBinaryPassword) ) + +#define IMsRdpClientNonScriptable_put_BinarySalt(This,pSalt) \ + ( (This)->lpVtbl -> put_BinarySalt(This,pSalt) ) + +#define IMsRdpClientNonScriptable_get_BinarySalt(This,pSalt) \ + ( (This)->lpVtbl -> get_BinarySalt(This,pSalt) ) + +#define IMsRdpClientNonScriptable_ResetPassword(This) \ + ( (This)->lpVtbl -> ResetPassword(This) ) + + +#define IMsRdpClientNonScriptable_NotifyRedirectDeviceChange(This,wParam,lParam) \ + ( (This)->lpVtbl -> NotifyRedirectDeviceChange(This,wParam,lParam) ) + +#define IMsRdpClientNonScriptable_SendKeys(This,numKeys,pbArrayKeyUp,plKeyData) \ + ( (This)->lpVtbl -> SendKeys(This,numKeys,pbArrayKeyUp,plKeyData) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IMsRdpClientNonScriptable_INTERFACE_DEFINED__ */ + + +#ifndef __IMsRdpClientNonScriptable2_INTERFACE_DEFINED__ +#define __IMsRdpClientNonScriptable2_INTERFACE_DEFINED__ + +/* interface IMsRdpClientNonScriptable2 */ +/* [object][uuid] */ + + +EXTERN_C const IID IID_IMsRdpClientNonScriptable2; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("17A5E535-4072-4FA4-AF32-C8D0D47345E9") + IMsRdpClientNonScriptable2 : public IMsRdpClientNonScriptable + { + public: + virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_UIParentWindowHandle( + /* [in] */ HWND phwndUIParentWindowHandle) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_UIParentWindowHandle( + /* [retval][out] */ HWND *phwndUIParentWindowHandle) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsRdpClientNonScriptable2Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsRdpClientNonScriptable2 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsRdpClientNonScriptable2 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsRdpClientNonScriptable2 * This); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( + IMsRdpClientNonScriptable2 * This, + /* [in] */ BSTR rhs); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortablePassword )( + IMsRdpClientNonScriptable2 * This, + /* [in] */ BSTR pPortablePass); + + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortablePassword )( + IMsRdpClientNonScriptable2 * This, + /* [retval][out] */ BSTR *pPortablePass); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortableSalt )( + IMsRdpClientNonScriptable2 * This, + /* [in] */ BSTR pPortableSalt); + + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortableSalt )( + IMsRdpClientNonScriptable2 * This, + /* [retval][out] */ BSTR *pPortableSalt); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinaryPassword )( + IMsRdpClientNonScriptable2 * This, + /* [in] */ BSTR pBinaryPassword); + + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinaryPassword )( + IMsRdpClientNonScriptable2 * This, + /* [retval][out] */ BSTR *pBinaryPassword); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinarySalt )( + IMsRdpClientNonScriptable2 * This, + /* [in] */ BSTR pSalt); + + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinarySalt )( + IMsRdpClientNonScriptable2 * This, + /* [retval][out] */ BSTR *pSalt); + + HRESULT ( STDMETHODCALLTYPE *ResetPassword )( + IMsRdpClientNonScriptable2 * This); + + HRESULT ( STDMETHODCALLTYPE *NotifyRedirectDeviceChange )( + IMsRdpClientNonScriptable2 * This, + /* [in] */ UINT_PTR wParam, + /* [in] */ LONG_PTR lParam); + + HRESULT ( STDMETHODCALLTYPE *SendKeys )( + IMsRdpClientNonScriptable2 * This, + /* [in] */ long numKeys, + /* [in] */ VARIANT_BOOL *pbArrayKeyUp, + /* [in] */ long *plKeyData); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_UIParentWindowHandle )( + IMsRdpClientNonScriptable2 * This, + /* [in] */ HWND phwndUIParentWindowHandle); + + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_UIParentWindowHandle )( + IMsRdpClientNonScriptable2 * This, + /* [retval][out] */ HWND *phwndUIParentWindowHandle); + + END_INTERFACE + } IMsRdpClientNonScriptable2Vtbl; + + interface IMsRdpClientNonScriptable2 + { + CONST_VTBL struct IMsRdpClientNonScriptable2Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsRdpClientNonScriptable2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsRdpClientNonScriptable2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsRdpClientNonScriptable2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsRdpClientNonScriptable2_put_ClearTextPassword(This,rhs) \ + ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) + +#define IMsRdpClientNonScriptable2_put_PortablePassword(This,pPortablePass) \ + ( (This)->lpVtbl -> put_PortablePassword(This,pPortablePass) ) + +#define IMsRdpClientNonScriptable2_get_PortablePassword(This,pPortablePass) \ + ( (This)->lpVtbl -> get_PortablePassword(This,pPortablePass) ) + +#define IMsRdpClientNonScriptable2_put_PortableSalt(This,pPortableSalt) \ + ( (This)->lpVtbl -> put_PortableSalt(This,pPortableSalt) ) + +#define IMsRdpClientNonScriptable2_get_PortableSalt(This,pPortableSalt) \ + ( (This)->lpVtbl -> get_PortableSalt(This,pPortableSalt) ) + +#define IMsRdpClientNonScriptable2_put_BinaryPassword(This,pBinaryPassword) \ + ( (This)->lpVtbl -> put_BinaryPassword(This,pBinaryPassword) ) + +#define IMsRdpClientNonScriptable2_get_BinaryPassword(This,pBinaryPassword) \ + ( (This)->lpVtbl -> get_BinaryPassword(This,pBinaryPassword) ) + +#define IMsRdpClientNonScriptable2_put_BinarySalt(This,pSalt) \ + ( (This)->lpVtbl -> put_BinarySalt(This,pSalt) ) + +#define IMsRdpClientNonScriptable2_get_BinarySalt(This,pSalt) \ + ( (This)->lpVtbl -> get_BinarySalt(This,pSalt) ) + +#define IMsRdpClientNonScriptable2_ResetPassword(This) \ + ( (This)->lpVtbl -> ResetPassword(This) ) + + +#define IMsRdpClientNonScriptable2_NotifyRedirectDeviceChange(This,wParam,lParam) \ + ( (This)->lpVtbl -> NotifyRedirectDeviceChange(This,wParam,lParam) ) + +#define IMsRdpClientNonScriptable2_SendKeys(This,numKeys,pbArrayKeyUp,plKeyData) \ + ( (This)->lpVtbl -> SendKeys(This,numKeys,pbArrayKeyUp,plKeyData) ) + + +#define IMsRdpClientNonScriptable2_put_UIParentWindowHandle(This,phwndUIParentWindowHandle) \ + ( (This)->lpVtbl -> put_UIParentWindowHandle(This,phwndUIParentWindowHandle) ) + +#define IMsRdpClientNonScriptable2_get_UIParentWindowHandle(This,phwndUIParentWindowHandle) \ + ( (This)->lpVtbl -> get_UIParentWindowHandle(This,phwndUIParentWindowHandle) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IMsRdpClientNonScriptable2_INTERFACE_DEFINED__ */ + + +#ifndef __IMsTscAdvancedSettings_INTERFACE_DEFINED__ +#define __IMsTscAdvancedSettings_INTERFACE_DEFINED__ + +/* interface IMsTscAdvancedSettings */ +/* [object][oleautomation][dual][uuid] */ + + +EXTERN_C const IID IID_IMsTscAdvancedSettings; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("809945CC-4B3B-4A92-A6B0-DBF9B5F2EF2D") + IMsTscAdvancedSettings : public IDispatch + { + public: + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Compress( + /* [in] */ long pcompress) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Compress( + /* [retval][out] */ long *pcompress) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapPeristence( + /* [in] */ long pbitmapPeristence) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapPeristence( + /* [retval][out] */ long *pbitmapPeristence) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_allowBackgroundInput( + /* [in] */ long pallowBackgroundInput) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_allowBackgroundInput( + /* [retval][out] */ long *pallowBackgroundInput) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_KeyBoardLayoutStr( + /* [in] */ BSTR rhs) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_PluginDlls( + /* [in] */ BSTR rhs) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_IconFile( + /* [in] */ BSTR rhs) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_IconIndex( + /* [in] */ long rhs) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ContainerHandledFullScreen( + /* [in] */ long pContainerHandledFullScreen) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ContainerHandledFullScreen( + /* [retval][out] */ long *pContainerHandledFullScreen) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DisableRdpdr( + /* [in] */ long pDisableRdpdr) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DisableRdpdr( + /* [retval][out] */ long *pDisableRdpdr) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsTscAdvancedSettingsVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsTscAdvancedSettings * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsTscAdvancedSettings * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsTscAdvancedSettings * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsTscAdvancedSettings * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsTscAdvancedSettings * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsTscAdvancedSettings * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsTscAdvancedSettings * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Compress )( + IMsTscAdvancedSettings * This, + /* [in] */ long pcompress); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Compress )( + IMsTscAdvancedSettings * This, + /* [retval][out] */ long *pcompress); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPeristence )( + IMsTscAdvancedSettings * This, + /* [in] */ long pbitmapPeristence); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPeristence )( + IMsTscAdvancedSettings * This, + /* [retval][out] */ long *pbitmapPeristence); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_allowBackgroundInput )( + IMsTscAdvancedSettings * This, + /* [in] */ long pallowBackgroundInput); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_allowBackgroundInput )( + IMsTscAdvancedSettings * This, + /* [retval][out] */ long *pallowBackgroundInput); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyBoardLayoutStr )( + IMsTscAdvancedSettings * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PluginDlls )( + IMsTscAdvancedSettings * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconFile )( + IMsTscAdvancedSettings * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconIndex )( + IMsTscAdvancedSettings * This, + /* [in] */ long rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerHandledFullScreen )( + IMsTscAdvancedSettings * This, + /* [in] */ long pContainerHandledFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerHandledFullScreen )( + IMsTscAdvancedSettings * This, + /* [retval][out] */ long *pContainerHandledFullScreen); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableRdpdr )( + IMsTscAdvancedSettings * This, + /* [in] */ long pDisableRdpdr); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableRdpdr )( + IMsTscAdvancedSettings * This, + /* [retval][out] */ long *pDisableRdpdr); + + END_INTERFACE + } IMsTscAdvancedSettingsVtbl; + + interface IMsTscAdvancedSettings + { + CONST_VTBL struct IMsTscAdvancedSettingsVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsTscAdvancedSettings_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsTscAdvancedSettings_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsTscAdvancedSettings_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsTscAdvancedSettings_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsTscAdvancedSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsTscAdvancedSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsTscAdvancedSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IMsTscAdvancedSettings_put_Compress(This,pcompress) \ + ( (This)->lpVtbl -> put_Compress(This,pcompress) ) + +#define IMsTscAdvancedSettings_get_Compress(This,pcompress) \ + ( (This)->lpVtbl -> get_Compress(This,pcompress) ) + +#define IMsTscAdvancedSettings_put_BitmapPeristence(This,pbitmapPeristence) \ + ( (This)->lpVtbl -> put_BitmapPeristence(This,pbitmapPeristence) ) + +#define IMsTscAdvancedSettings_get_BitmapPeristence(This,pbitmapPeristence) \ + ( (This)->lpVtbl -> get_BitmapPeristence(This,pbitmapPeristence) ) + +#define IMsTscAdvancedSettings_put_allowBackgroundInput(This,pallowBackgroundInput) \ + ( (This)->lpVtbl -> put_allowBackgroundInput(This,pallowBackgroundInput) ) + +#define IMsTscAdvancedSettings_get_allowBackgroundInput(This,pallowBackgroundInput) \ + ( (This)->lpVtbl -> get_allowBackgroundInput(This,pallowBackgroundInput) ) + +#define IMsTscAdvancedSettings_put_KeyBoardLayoutStr(This,rhs) \ + ( (This)->lpVtbl -> put_KeyBoardLayoutStr(This,rhs) ) + +#define IMsTscAdvancedSettings_put_PluginDlls(This,rhs) \ + ( (This)->lpVtbl -> put_PluginDlls(This,rhs) ) + +#define IMsTscAdvancedSettings_put_IconFile(This,rhs) \ + ( (This)->lpVtbl -> put_IconFile(This,rhs) ) + +#define IMsTscAdvancedSettings_put_IconIndex(This,rhs) \ + ( (This)->lpVtbl -> put_IconIndex(This,rhs) ) + +#define IMsTscAdvancedSettings_put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ + ( (This)->lpVtbl -> put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) + +#define IMsTscAdvancedSettings_get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ + ( (This)->lpVtbl -> get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) + +#define IMsTscAdvancedSettings_put_DisableRdpdr(This,pDisableRdpdr) \ + ( (This)->lpVtbl -> put_DisableRdpdr(This,pDisableRdpdr) ) + +#define IMsTscAdvancedSettings_get_DisableRdpdr(This,pDisableRdpdr) \ + ( (This)->lpVtbl -> get_DisableRdpdr(This,pDisableRdpdr) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IMsTscAdvancedSettings_INTERFACE_DEFINED__ */ + + +#ifndef __IMsRdpClientAdvancedSettings_INTERFACE_DEFINED__ +#define __IMsRdpClientAdvancedSettings_INTERFACE_DEFINED__ + +/* interface IMsRdpClientAdvancedSettings */ +/* [object][oleautomation][dual][uuid] */ + + +EXTERN_C const IID IID_IMsRdpClientAdvancedSettings; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("3C65B4AB-12B3-465B-ACD4-B8DAD3BFF9E2") + IMsRdpClientAdvancedSettings : public IMsTscAdvancedSettings + { + public: + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_SmoothScroll( + /* [in] */ long psmoothScroll) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SmoothScroll( + /* [retval][out] */ long *psmoothScroll) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_AcceleratorPassthrough( + /* [in] */ long pacceleratorPassthrough) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AcceleratorPassthrough( + /* [retval][out] */ long *pacceleratorPassthrough) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ShadowBitmap( + /* [in] */ long pshadowBitmap) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ShadowBitmap( + /* [retval][out] */ long *pshadowBitmap) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_TransportType( + /* [in] */ long ptransportType) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_TransportType( + /* [retval][out] */ long *ptransportType) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_SasSequence( + /* [in] */ long psasSequence) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SasSequence( + /* [retval][out] */ long *psasSequence) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_EncryptionEnabled( + /* [in] */ long pencryptionEnabled) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_EncryptionEnabled( + /* [retval][out] */ long *pencryptionEnabled) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DedicatedTerminal( + /* [in] */ long pdedicatedTerminal) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DedicatedTerminal( + /* [retval][out] */ long *pdedicatedTerminal) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RDPPort( + /* [in] */ long prdpPort) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RDPPort( + /* [retval][out] */ long *prdpPort) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_EnableMouse( + /* [in] */ long penableMouse) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_EnableMouse( + /* [retval][out] */ long *penableMouse) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DisableCtrlAltDel( + /* [in] */ long pdisableCtrlAltDel) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DisableCtrlAltDel( + /* [retval][out] */ long *pdisableCtrlAltDel) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_EnableWindowsKey( + /* [in] */ long penableWindowsKey) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_EnableWindowsKey( + /* [retval][out] */ long *penableWindowsKey) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DoubleClickDetect( + /* [in] */ long pdoubleClickDetect) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DoubleClickDetect( + /* [retval][out] */ long *pdoubleClickDetect) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_MaximizeShell( + /* [in] */ long pmaximizeShell) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_MaximizeShell( + /* [retval][out] */ long *pmaximizeShell) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyFullScreen( + /* [in] */ long photKeyFullScreen) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyFullScreen( + /* [retval][out] */ long *photKeyFullScreen) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyCtrlEsc( + /* [in] */ long photKeyCtrlEsc) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyCtrlEsc( + /* [retval][out] */ long *photKeyCtrlEsc) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyAltEsc( + /* [in] */ long photKeyAltEsc) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyAltEsc( + /* [retval][out] */ long *photKeyAltEsc) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyAltTab( + /* [in] */ long photKeyAltTab) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyAltTab( + /* [retval][out] */ long *photKeyAltTab) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyAltShiftTab( + /* [in] */ long photKeyAltShiftTab) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyAltShiftTab( + /* [retval][out] */ long *photKeyAltShiftTab) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyAltSpace( + /* [in] */ long photKeyAltSpace) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyAltSpace( + /* [retval][out] */ long *photKeyAltSpace) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyCtrlAltDel( + /* [in] */ long photKeyCtrlAltDel) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyCtrlAltDel( + /* [retval][out] */ long *photKeyCtrlAltDel) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_orderDrawThreshold( + /* [in] */ long porderDrawThreshold) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_orderDrawThreshold( + /* [retval][out] */ long *porderDrawThreshold) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapCacheSize( + /* [in] */ long pbitmapCacheSize) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapCacheSize( + /* [retval][out] */ long *pbitmapCacheSize) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapVirtualCacheSize( + /* [in] */ long pbitmapVirtualCacheSize) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapVirtualCacheSize( + /* [retval][out] */ long *pbitmapVirtualCacheSize) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ScaleBitmapCachesByBPP( + /* [in] */ long pbScale) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ScaleBitmapCachesByBPP( + /* [retval][out] */ long *pbScale) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_NumBitmapCaches( + /* [in] */ long pnumBitmapCaches) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_NumBitmapCaches( + /* [retval][out] */ long *pnumBitmapCaches) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_CachePersistenceActive( + /* [in] */ long pcachePersistenceActive) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CachePersistenceActive( + /* [retval][out] */ long *pcachePersistenceActive) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_PersistCacheDirectory( + /* [in] */ BSTR rhs) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_brushSupportLevel( + /* [in] */ long pbrushSupportLevel) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_brushSupportLevel( + /* [retval][out] */ long *pbrushSupportLevel) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_minInputSendInterval( + /* [in] */ long pminInputSendInterval) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_minInputSendInterval( + /* [retval][out] */ long *pminInputSendInterval) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_InputEventsAtOnce( + /* [in] */ long pinputEventsAtOnce) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_InputEventsAtOnce( + /* [retval][out] */ long *pinputEventsAtOnce) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_maxEventCount( + /* [in] */ long pmaxEventCount) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_maxEventCount( + /* [retval][out] */ long *pmaxEventCount) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_keepAliveInterval( + /* [in] */ long pkeepAliveInterval) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_keepAliveInterval( + /* [retval][out] */ long *pkeepAliveInterval) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_shutdownTimeout( + /* [in] */ long pshutdownTimeout) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_shutdownTimeout( + /* [retval][out] */ long *pshutdownTimeout) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_overallConnectionTimeout( + /* [in] */ long poverallConnectionTimeout) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_overallConnectionTimeout( + /* [retval][out] */ long *poverallConnectionTimeout) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_singleConnectionTimeout( + /* [in] */ long psingleConnectionTimeout) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_singleConnectionTimeout( + /* [retval][out] */ long *psingleConnectionTimeout) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_KeyboardType( + /* [in] */ long pkeyboardType) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_KeyboardType( + /* [retval][out] */ long *pkeyboardType) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_KeyboardSubType( + /* [in] */ long pkeyboardSubType) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_KeyboardSubType( + /* [retval][out] */ long *pkeyboardSubType) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_KeyboardFunctionKey( + /* [in] */ long pkeyboardFunctionKey) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_KeyboardFunctionKey( + /* [retval][out] */ long *pkeyboardFunctionKey) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_WinceFixedPalette( + /* [in] */ long pwinceFixedPalette) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_WinceFixedPalette( + /* [retval][out] */ long *pwinceFixedPalette) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectToServerConsole( + /* [in] */ VARIANT_BOOL pConnectToConsole) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ConnectToServerConsole( + /* [retval][out] */ VARIANT_BOOL *pConnectToConsole) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapPersistence( + /* [in] */ long pbitmapPersistence) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapPersistence( + /* [retval][out] */ long *pbitmapPersistence) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_MinutesToIdleTimeout( + /* [in] */ long pminutesToIdleTimeout) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_MinutesToIdleTimeout( + /* [retval][out] */ long *pminutesToIdleTimeout) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_SmartSizing( + /* [in] */ VARIANT_BOOL pfSmartSizing) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SmartSizing( + /* [retval][out] */ VARIANT_BOOL *pfSmartSizing) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RdpdrLocalPrintingDocName( + /* [in] */ BSTR pLocalPrintingDocName) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RdpdrLocalPrintingDocName( + /* [retval][out] */ BSTR *pLocalPrintingDocName) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RdpdrClipCleanTempDirString( + /* [in] */ BSTR clipCleanTempDirString) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RdpdrClipCleanTempDirString( + /* [retval][out] */ BSTR *clipCleanTempDirString) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RdpdrClipPasteInfoString( + /* [in] */ BSTR clipPasteInfoString) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RdpdrClipPasteInfoString( + /* [retval][out] */ BSTR *clipPasteInfoString) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ClearTextPassword( + /* [in] */ BSTR rhs) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DisplayConnectionBar( + /* [in] */ VARIANT_BOOL pDisplayConnectionBar) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DisplayConnectionBar( + /* [retval][out] */ VARIANT_BOOL *pDisplayConnectionBar) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_PinConnectionBar( + /* [in] */ VARIANT_BOOL pPinConnectionBar) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_PinConnectionBar( + /* [retval][out] */ VARIANT_BOOL *pPinConnectionBar) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_GrabFocusOnConnect( + /* [in] */ VARIANT_BOOL pfGrabFocusOnConnect) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_GrabFocusOnConnect( + /* [retval][out] */ VARIANT_BOOL *pfGrabFocusOnConnect) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_LoadBalanceInfo( + /* [in] */ BSTR pLBInfo) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_LoadBalanceInfo( + /* [retval][out] */ BSTR *pLBInfo) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RedirectDrives( + /* [in] */ VARIANT_BOOL pRedirectDrives) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RedirectDrives( + /* [retval][out] */ VARIANT_BOOL *pRedirectDrives) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RedirectPrinters( + /* [in] */ VARIANT_BOOL pRedirectPrinters) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RedirectPrinters( + /* [retval][out] */ VARIANT_BOOL *pRedirectPrinters) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RedirectPorts( + /* [in] */ VARIANT_BOOL pRedirectPorts) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RedirectPorts( + /* [retval][out] */ VARIANT_BOOL *pRedirectPorts) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RedirectSmartCards( + /* [in] */ VARIANT_BOOL pRedirectSmartCards) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RedirectSmartCards( + /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapVirtualCache16BppSize( + /* [in] */ long pBitmapVirtualCache16BppSize) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapVirtualCache16BppSize( + /* [retval][out] */ long *pBitmapVirtualCache16BppSize) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapVirtualCache24BppSize( + /* [in] */ long pBitmapVirtualCache24BppSize) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapVirtualCache24BppSize( + /* [retval][out] */ long *pBitmapVirtualCache24BppSize) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_PerformanceFlags( + /* [in] */ long pDisableList) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_PerformanceFlags( + /* [retval][out] */ long *pDisableList) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectWithEndpoint( + /* [in] */ VARIANT *rhs) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_NotifyTSPublicKey( + /* [in] */ VARIANT_BOOL pfNotify) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_NotifyTSPublicKey( + /* [retval][out] */ VARIANT_BOOL *pfNotify) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsRdpClientAdvancedSettingsVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsRdpClientAdvancedSettings * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsRdpClientAdvancedSettings * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsRdpClientAdvancedSettings * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Compress )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pcompress); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Compress )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pcompress); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPeristence )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pbitmapPeristence); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPeristence )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pbitmapPeristence); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_allowBackgroundInput )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pallowBackgroundInput); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_allowBackgroundInput )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pallowBackgroundInput); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyBoardLayoutStr )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PluginDlls )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconFile )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconIndex )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerHandledFullScreen )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pContainerHandledFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerHandledFullScreen )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pContainerHandledFullScreen); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableRdpdr )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pDisableRdpdr); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableRdpdr )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pDisableRdpdr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmoothScroll )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long psmoothScroll); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmoothScroll )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *psmoothScroll); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AcceleratorPassthrough )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pacceleratorPassthrough); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AcceleratorPassthrough )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pacceleratorPassthrough); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShadowBitmap )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pshadowBitmap); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShadowBitmap )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pshadowBitmap); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TransportType )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long ptransportType); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TransportType )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *ptransportType); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SasSequence )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long psasSequence); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SasSequence )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *psasSequence); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EncryptionEnabled )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pencryptionEnabled); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EncryptionEnabled )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pencryptionEnabled); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DedicatedTerminal )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pdedicatedTerminal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DedicatedTerminal )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pdedicatedTerminal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RDPPort )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long prdpPort); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RDPPort )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *prdpPort); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableMouse )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long penableMouse); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableMouse )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *penableMouse); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableCtrlAltDel )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pdisableCtrlAltDel); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableCtrlAltDel )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pdisableCtrlAltDel); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableWindowsKey )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long penableWindowsKey); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableWindowsKey )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *penableWindowsKey); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DoubleClickDetect )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pdoubleClickDetect); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DoubleClickDetect )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pdoubleClickDetect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaximizeShell )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pmaximizeShell); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaximizeShell )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pmaximizeShell); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyFullScreen )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long photKeyFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyFullScreen )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *photKeyFullScreen); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlEsc )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long photKeyCtrlEsc); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlEsc )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *photKeyCtrlEsc); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltEsc )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long photKeyAltEsc); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltEsc )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *photKeyAltEsc); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltTab )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long photKeyAltTab); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltTab )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *photKeyAltTab); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltShiftTab )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long photKeyAltShiftTab); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltShiftTab )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *photKeyAltShiftTab); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltSpace )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long photKeyAltSpace); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltSpace )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *photKeyAltSpace); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlAltDel )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long photKeyCtrlAltDel); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlAltDel )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *photKeyCtrlAltDel); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_orderDrawThreshold )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long porderDrawThreshold); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_orderDrawThreshold )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *porderDrawThreshold); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapCacheSize )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pbitmapCacheSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapCacheSize )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pbitmapCacheSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCacheSize )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pbitmapVirtualCacheSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCacheSize )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pbitmapVirtualCacheSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleBitmapCachesByBPP )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pbScale); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleBitmapCachesByBPP )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pbScale); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NumBitmapCaches )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pnumBitmapCaches); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumBitmapCaches )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pnumBitmapCaches); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CachePersistenceActive )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pcachePersistenceActive); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CachePersistenceActive )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pcachePersistenceActive); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PersistCacheDirectory )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_brushSupportLevel )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pbrushSupportLevel); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_brushSupportLevel )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pbrushSupportLevel); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_minInputSendInterval )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pminInputSendInterval); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_minInputSendInterval )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pminInputSendInterval); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InputEventsAtOnce )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pinputEventsAtOnce); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InputEventsAtOnce )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pinputEventsAtOnce); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_maxEventCount )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pmaxEventCount); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_maxEventCount )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pmaxEventCount); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_keepAliveInterval )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pkeepAliveInterval); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_keepAliveInterval )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pkeepAliveInterval); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_shutdownTimeout )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pshutdownTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_shutdownTimeout )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pshutdownTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_overallConnectionTimeout )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long poverallConnectionTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_overallConnectionTimeout )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *poverallConnectionTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_singleConnectionTimeout )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long psingleConnectionTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_singleConnectionTimeout )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *psingleConnectionTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardType )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pkeyboardType); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardType )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pkeyboardType); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardSubType )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pkeyboardSubType); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardSubType )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pkeyboardSubType); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardFunctionKey )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pkeyboardFunctionKey); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardFunctionKey )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pkeyboardFunctionKey); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WinceFixedPalette )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pwinceFixedPalette); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WinceFixedPalette )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pwinceFixedPalette); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectToServerConsole )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ VARIANT_BOOL pConnectToConsole); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectToServerConsole )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ VARIANT_BOOL *pConnectToConsole); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPersistence )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pbitmapPersistence); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPersistence )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pbitmapPersistence); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MinutesToIdleTimeout )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pminutesToIdleTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MinutesToIdleTimeout )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pminutesToIdleTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmartSizing )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ VARIANT_BOOL pfSmartSizing); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmartSizing )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ VARIANT_BOOL *pfSmartSizing); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrLocalPrintingDocName )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ BSTR pLocalPrintingDocName); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrLocalPrintingDocName )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ BSTR *pLocalPrintingDocName); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipCleanTempDirString )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ BSTR clipCleanTempDirString); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipCleanTempDirString )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ BSTR *clipCleanTempDirString); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipPasteInfoString )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ BSTR clipPasteInfoString); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipPasteInfoString )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ BSTR *clipPasteInfoString); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisplayConnectionBar )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ VARIANT_BOOL pDisplayConnectionBar); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisplayConnectionBar )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ VARIANT_BOOL *pDisplayConnectionBar); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PinConnectionBar )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ VARIANT_BOOL pPinConnectionBar); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PinConnectionBar )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ VARIANT_BOOL *pPinConnectionBar); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GrabFocusOnConnect )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ VARIANT_BOOL pfGrabFocusOnConnect); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GrabFocusOnConnect )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ VARIANT_BOOL *pfGrabFocusOnConnect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LoadBalanceInfo )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ BSTR pLBInfo); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LoadBalanceInfo )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ BSTR *pLBInfo); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectDrives )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ VARIANT_BOOL pRedirectDrives); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectDrives )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectDrives); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPrinters )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ VARIANT_BOOL pRedirectPrinters); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPrinters )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectPrinters); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPorts )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ VARIANT_BOOL pRedirectPorts); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPorts )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectPorts); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectSmartCards )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ VARIANT_BOOL pRedirectSmartCards); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectSmartCards )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache16BppSize )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pBitmapVirtualCache16BppSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache16BppSize )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pBitmapVirtualCache16BppSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache24BppSize )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pBitmapVirtualCache24BppSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache24BppSize )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pBitmapVirtualCache24BppSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PerformanceFlags )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pDisableList); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PerformanceFlags )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pDisableList); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectWithEndpoint )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ VARIANT *rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NotifyTSPublicKey )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ VARIANT_BOOL pfNotify); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NotifyTSPublicKey )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ VARIANT_BOOL *pfNotify); + + END_INTERFACE + } IMsRdpClientAdvancedSettingsVtbl; + + interface IMsRdpClientAdvancedSettings + { + CONST_VTBL struct IMsRdpClientAdvancedSettingsVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsRdpClientAdvancedSettings_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsRdpClientAdvancedSettings_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsRdpClientAdvancedSettings_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsRdpClientAdvancedSettings_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsRdpClientAdvancedSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsRdpClientAdvancedSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsRdpClientAdvancedSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IMsRdpClientAdvancedSettings_put_Compress(This,pcompress) \ + ( (This)->lpVtbl -> put_Compress(This,pcompress) ) + +#define IMsRdpClientAdvancedSettings_get_Compress(This,pcompress) \ + ( (This)->lpVtbl -> get_Compress(This,pcompress) ) + +#define IMsRdpClientAdvancedSettings_put_BitmapPeristence(This,pbitmapPeristence) \ + ( (This)->lpVtbl -> put_BitmapPeristence(This,pbitmapPeristence) ) + +#define IMsRdpClientAdvancedSettings_get_BitmapPeristence(This,pbitmapPeristence) \ + ( (This)->lpVtbl -> get_BitmapPeristence(This,pbitmapPeristence) ) + +#define IMsRdpClientAdvancedSettings_put_allowBackgroundInput(This,pallowBackgroundInput) \ + ( (This)->lpVtbl -> put_allowBackgroundInput(This,pallowBackgroundInput) ) + +#define IMsRdpClientAdvancedSettings_get_allowBackgroundInput(This,pallowBackgroundInput) \ + ( (This)->lpVtbl -> get_allowBackgroundInput(This,pallowBackgroundInput) ) + +#define IMsRdpClientAdvancedSettings_put_KeyBoardLayoutStr(This,rhs) \ + ( (This)->lpVtbl -> put_KeyBoardLayoutStr(This,rhs) ) + +#define IMsRdpClientAdvancedSettings_put_PluginDlls(This,rhs) \ + ( (This)->lpVtbl -> put_PluginDlls(This,rhs) ) + +#define IMsRdpClientAdvancedSettings_put_IconFile(This,rhs) \ + ( (This)->lpVtbl -> put_IconFile(This,rhs) ) + +#define IMsRdpClientAdvancedSettings_put_IconIndex(This,rhs) \ + ( (This)->lpVtbl -> put_IconIndex(This,rhs) ) + +#define IMsRdpClientAdvancedSettings_put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ + ( (This)->lpVtbl -> put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) + +#define IMsRdpClientAdvancedSettings_get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ + ( (This)->lpVtbl -> get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) + +#define IMsRdpClientAdvancedSettings_put_DisableRdpdr(This,pDisableRdpdr) \ + ( (This)->lpVtbl -> put_DisableRdpdr(This,pDisableRdpdr) ) + +#define IMsRdpClientAdvancedSettings_get_DisableRdpdr(This,pDisableRdpdr) \ + ( (This)->lpVtbl -> get_DisableRdpdr(This,pDisableRdpdr) ) + + +#define IMsRdpClientAdvancedSettings_put_SmoothScroll(This,psmoothScroll) \ + ( (This)->lpVtbl -> put_SmoothScroll(This,psmoothScroll) ) + +#define IMsRdpClientAdvancedSettings_get_SmoothScroll(This,psmoothScroll) \ + ( (This)->lpVtbl -> get_SmoothScroll(This,psmoothScroll) ) + +#define IMsRdpClientAdvancedSettings_put_AcceleratorPassthrough(This,pacceleratorPassthrough) \ + ( (This)->lpVtbl -> put_AcceleratorPassthrough(This,pacceleratorPassthrough) ) + +#define IMsRdpClientAdvancedSettings_get_AcceleratorPassthrough(This,pacceleratorPassthrough) \ + ( (This)->lpVtbl -> get_AcceleratorPassthrough(This,pacceleratorPassthrough) ) + +#define IMsRdpClientAdvancedSettings_put_ShadowBitmap(This,pshadowBitmap) \ + ( (This)->lpVtbl -> put_ShadowBitmap(This,pshadowBitmap) ) + +#define IMsRdpClientAdvancedSettings_get_ShadowBitmap(This,pshadowBitmap) \ + ( (This)->lpVtbl -> get_ShadowBitmap(This,pshadowBitmap) ) + +#define IMsRdpClientAdvancedSettings_put_TransportType(This,ptransportType) \ + ( (This)->lpVtbl -> put_TransportType(This,ptransportType) ) + +#define IMsRdpClientAdvancedSettings_get_TransportType(This,ptransportType) \ + ( (This)->lpVtbl -> get_TransportType(This,ptransportType) ) + +#define IMsRdpClientAdvancedSettings_put_SasSequence(This,psasSequence) \ + ( (This)->lpVtbl -> put_SasSequence(This,psasSequence) ) + +#define IMsRdpClientAdvancedSettings_get_SasSequence(This,psasSequence) \ + ( (This)->lpVtbl -> get_SasSequence(This,psasSequence) ) + +#define IMsRdpClientAdvancedSettings_put_EncryptionEnabled(This,pencryptionEnabled) \ + ( (This)->lpVtbl -> put_EncryptionEnabled(This,pencryptionEnabled) ) + +#define IMsRdpClientAdvancedSettings_get_EncryptionEnabled(This,pencryptionEnabled) \ + ( (This)->lpVtbl -> get_EncryptionEnabled(This,pencryptionEnabled) ) + +#define IMsRdpClientAdvancedSettings_put_DedicatedTerminal(This,pdedicatedTerminal) \ + ( (This)->lpVtbl -> put_DedicatedTerminal(This,pdedicatedTerminal) ) + +#define IMsRdpClientAdvancedSettings_get_DedicatedTerminal(This,pdedicatedTerminal) \ + ( (This)->lpVtbl -> get_DedicatedTerminal(This,pdedicatedTerminal) ) + +#define IMsRdpClientAdvancedSettings_put_RDPPort(This,prdpPort) \ + ( (This)->lpVtbl -> put_RDPPort(This,prdpPort) ) + +#define IMsRdpClientAdvancedSettings_get_RDPPort(This,prdpPort) \ + ( (This)->lpVtbl -> get_RDPPort(This,prdpPort) ) + +#define IMsRdpClientAdvancedSettings_put_EnableMouse(This,penableMouse) \ + ( (This)->lpVtbl -> put_EnableMouse(This,penableMouse) ) + +#define IMsRdpClientAdvancedSettings_get_EnableMouse(This,penableMouse) \ + ( (This)->lpVtbl -> get_EnableMouse(This,penableMouse) ) + +#define IMsRdpClientAdvancedSettings_put_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ + ( (This)->lpVtbl -> put_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings_get_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ + ( (This)->lpVtbl -> get_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings_put_EnableWindowsKey(This,penableWindowsKey) \ + ( (This)->lpVtbl -> put_EnableWindowsKey(This,penableWindowsKey) ) + +#define IMsRdpClientAdvancedSettings_get_EnableWindowsKey(This,penableWindowsKey) \ + ( (This)->lpVtbl -> get_EnableWindowsKey(This,penableWindowsKey) ) + +#define IMsRdpClientAdvancedSettings_put_DoubleClickDetect(This,pdoubleClickDetect) \ + ( (This)->lpVtbl -> put_DoubleClickDetect(This,pdoubleClickDetect) ) + +#define IMsRdpClientAdvancedSettings_get_DoubleClickDetect(This,pdoubleClickDetect) \ + ( (This)->lpVtbl -> get_DoubleClickDetect(This,pdoubleClickDetect) ) + +#define IMsRdpClientAdvancedSettings_put_MaximizeShell(This,pmaximizeShell) \ + ( (This)->lpVtbl -> put_MaximizeShell(This,pmaximizeShell) ) + +#define IMsRdpClientAdvancedSettings_get_MaximizeShell(This,pmaximizeShell) \ + ( (This)->lpVtbl -> get_MaximizeShell(This,pmaximizeShell) ) + +#define IMsRdpClientAdvancedSettings_put_HotKeyFullScreen(This,photKeyFullScreen) \ + ( (This)->lpVtbl -> put_HotKeyFullScreen(This,photKeyFullScreen) ) + +#define IMsRdpClientAdvancedSettings_get_HotKeyFullScreen(This,photKeyFullScreen) \ + ( (This)->lpVtbl -> get_HotKeyFullScreen(This,photKeyFullScreen) ) + +#define IMsRdpClientAdvancedSettings_put_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ + ( (This)->lpVtbl -> put_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) + +#define IMsRdpClientAdvancedSettings_get_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ + ( (This)->lpVtbl -> get_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) + +#define IMsRdpClientAdvancedSettings_put_HotKeyAltEsc(This,photKeyAltEsc) \ + ( (This)->lpVtbl -> put_HotKeyAltEsc(This,photKeyAltEsc) ) + +#define IMsRdpClientAdvancedSettings_get_HotKeyAltEsc(This,photKeyAltEsc) \ + ( (This)->lpVtbl -> get_HotKeyAltEsc(This,photKeyAltEsc) ) + +#define IMsRdpClientAdvancedSettings_put_HotKeyAltTab(This,photKeyAltTab) \ + ( (This)->lpVtbl -> put_HotKeyAltTab(This,photKeyAltTab) ) + +#define IMsRdpClientAdvancedSettings_get_HotKeyAltTab(This,photKeyAltTab) \ + ( (This)->lpVtbl -> get_HotKeyAltTab(This,photKeyAltTab) ) + +#define IMsRdpClientAdvancedSettings_put_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ + ( (This)->lpVtbl -> put_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) + +#define IMsRdpClientAdvancedSettings_get_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ + ( (This)->lpVtbl -> get_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) + +#define IMsRdpClientAdvancedSettings_put_HotKeyAltSpace(This,photKeyAltSpace) \ + ( (This)->lpVtbl -> put_HotKeyAltSpace(This,photKeyAltSpace) ) + +#define IMsRdpClientAdvancedSettings_get_HotKeyAltSpace(This,photKeyAltSpace) \ + ( (This)->lpVtbl -> get_HotKeyAltSpace(This,photKeyAltSpace) ) + +#define IMsRdpClientAdvancedSettings_put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ + ( (This)->lpVtbl -> put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings_get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ + ( (This)->lpVtbl -> get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings_put_orderDrawThreshold(This,porderDrawThreshold) \ + ( (This)->lpVtbl -> put_orderDrawThreshold(This,porderDrawThreshold) ) + +#define IMsRdpClientAdvancedSettings_get_orderDrawThreshold(This,porderDrawThreshold) \ + ( (This)->lpVtbl -> get_orderDrawThreshold(This,porderDrawThreshold) ) + +#define IMsRdpClientAdvancedSettings_put_BitmapCacheSize(This,pbitmapCacheSize) \ + ( (This)->lpVtbl -> put_BitmapCacheSize(This,pbitmapCacheSize) ) + +#define IMsRdpClientAdvancedSettings_get_BitmapCacheSize(This,pbitmapCacheSize) \ + ( (This)->lpVtbl -> get_BitmapCacheSize(This,pbitmapCacheSize) ) + +#define IMsRdpClientAdvancedSettings_put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ + ( (This)->lpVtbl -> put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) + +#define IMsRdpClientAdvancedSettings_get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ + ( (This)->lpVtbl -> get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) + +#define IMsRdpClientAdvancedSettings_put_ScaleBitmapCachesByBPP(This,pbScale) \ + ( (This)->lpVtbl -> put_ScaleBitmapCachesByBPP(This,pbScale) ) + +#define IMsRdpClientAdvancedSettings_get_ScaleBitmapCachesByBPP(This,pbScale) \ + ( (This)->lpVtbl -> get_ScaleBitmapCachesByBPP(This,pbScale) ) + +#define IMsRdpClientAdvancedSettings_put_NumBitmapCaches(This,pnumBitmapCaches) \ + ( (This)->lpVtbl -> put_NumBitmapCaches(This,pnumBitmapCaches) ) + +#define IMsRdpClientAdvancedSettings_get_NumBitmapCaches(This,pnumBitmapCaches) \ + ( (This)->lpVtbl -> get_NumBitmapCaches(This,pnumBitmapCaches) ) + +#define IMsRdpClientAdvancedSettings_put_CachePersistenceActive(This,pcachePersistenceActive) \ + ( (This)->lpVtbl -> put_CachePersistenceActive(This,pcachePersistenceActive) ) + +#define IMsRdpClientAdvancedSettings_get_CachePersistenceActive(This,pcachePersistenceActive) \ + ( (This)->lpVtbl -> get_CachePersistenceActive(This,pcachePersistenceActive) ) + +#define IMsRdpClientAdvancedSettings_put_PersistCacheDirectory(This,rhs) \ + ( (This)->lpVtbl -> put_PersistCacheDirectory(This,rhs) ) + +#define IMsRdpClientAdvancedSettings_put_brushSupportLevel(This,pbrushSupportLevel) \ + ( (This)->lpVtbl -> put_brushSupportLevel(This,pbrushSupportLevel) ) + +#define IMsRdpClientAdvancedSettings_get_brushSupportLevel(This,pbrushSupportLevel) \ + ( (This)->lpVtbl -> get_brushSupportLevel(This,pbrushSupportLevel) ) + +#define IMsRdpClientAdvancedSettings_put_minInputSendInterval(This,pminInputSendInterval) \ + ( (This)->lpVtbl -> put_minInputSendInterval(This,pminInputSendInterval) ) + +#define IMsRdpClientAdvancedSettings_get_minInputSendInterval(This,pminInputSendInterval) \ + ( (This)->lpVtbl -> get_minInputSendInterval(This,pminInputSendInterval) ) + +#define IMsRdpClientAdvancedSettings_put_InputEventsAtOnce(This,pinputEventsAtOnce) \ + ( (This)->lpVtbl -> put_InputEventsAtOnce(This,pinputEventsAtOnce) ) + +#define IMsRdpClientAdvancedSettings_get_InputEventsAtOnce(This,pinputEventsAtOnce) \ + ( (This)->lpVtbl -> get_InputEventsAtOnce(This,pinputEventsAtOnce) ) + +#define IMsRdpClientAdvancedSettings_put_maxEventCount(This,pmaxEventCount) \ + ( (This)->lpVtbl -> put_maxEventCount(This,pmaxEventCount) ) + +#define IMsRdpClientAdvancedSettings_get_maxEventCount(This,pmaxEventCount) \ + ( (This)->lpVtbl -> get_maxEventCount(This,pmaxEventCount) ) + +#define IMsRdpClientAdvancedSettings_put_keepAliveInterval(This,pkeepAliveInterval) \ + ( (This)->lpVtbl -> put_keepAliveInterval(This,pkeepAliveInterval) ) + +#define IMsRdpClientAdvancedSettings_get_keepAliveInterval(This,pkeepAliveInterval) \ + ( (This)->lpVtbl -> get_keepAliveInterval(This,pkeepAliveInterval) ) + +#define IMsRdpClientAdvancedSettings_put_shutdownTimeout(This,pshutdownTimeout) \ + ( (This)->lpVtbl -> put_shutdownTimeout(This,pshutdownTimeout) ) + +#define IMsRdpClientAdvancedSettings_get_shutdownTimeout(This,pshutdownTimeout) \ + ( (This)->lpVtbl -> get_shutdownTimeout(This,pshutdownTimeout) ) + +#define IMsRdpClientAdvancedSettings_put_overallConnectionTimeout(This,poverallConnectionTimeout) \ + ( (This)->lpVtbl -> put_overallConnectionTimeout(This,poverallConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings_get_overallConnectionTimeout(This,poverallConnectionTimeout) \ + ( (This)->lpVtbl -> get_overallConnectionTimeout(This,poverallConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings_put_singleConnectionTimeout(This,psingleConnectionTimeout) \ + ( (This)->lpVtbl -> put_singleConnectionTimeout(This,psingleConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings_get_singleConnectionTimeout(This,psingleConnectionTimeout) \ + ( (This)->lpVtbl -> get_singleConnectionTimeout(This,psingleConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings_put_KeyboardType(This,pkeyboardType) \ + ( (This)->lpVtbl -> put_KeyboardType(This,pkeyboardType) ) + +#define IMsRdpClientAdvancedSettings_get_KeyboardType(This,pkeyboardType) \ + ( (This)->lpVtbl -> get_KeyboardType(This,pkeyboardType) ) + +#define IMsRdpClientAdvancedSettings_put_KeyboardSubType(This,pkeyboardSubType) \ + ( (This)->lpVtbl -> put_KeyboardSubType(This,pkeyboardSubType) ) + +#define IMsRdpClientAdvancedSettings_get_KeyboardSubType(This,pkeyboardSubType) \ + ( (This)->lpVtbl -> get_KeyboardSubType(This,pkeyboardSubType) ) + +#define IMsRdpClientAdvancedSettings_put_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ + ( (This)->lpVtbl -> put_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) + +#define IMsRdpClientAdvancedSettings_get_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ + ( (This)->lpVtbl -> get_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) + +#define IMsRdpClientAdvancedSettings_put_WinceFixedPalette(This,pwinceFixedPalette) \ + ( (This)->lpVtbl -> put_WinceFixedPalette(This,pwinceFixedPalette) ) + +#define IMsRdpClientAdvancedSettings_get_WinceFixedPalette(This,pwinceFixedPalette) \ + ( (This)->lpVtbl -> get_WinceFixedPalette(This,pwinceFixedPalette) ) + +#define IMsRdpClientAdvancedSettings_put_ConnectToServerConsole(This,pConnectToConsole) \ + ( (This)->lpVtbl -> put_ConnectToServerConsole(This,pConnectToConsole) ) + +#define IMsRdpClientAdvancedSettings_get_ConnectToServerConsole(This,pConnectToConsole) \ + ( (This)->lpVtbl -> get_ConnectToServerConsole(This,pConnectToConsole) ) + +#define IMsRdpClientAdvancedSettings_put_BitmapPersistence(This,pbitmapPersistence) \ + ( (This)->lpVtbl -> put_BitmapPersistence(This,pbitmapPersistence) ) + +#define IMsRdpClientAdvancedSettings_get_BitmapPersistence(This,pbitmapPersistence) \ + ( (This)->lpVtbl -> get_BitmapPersistence(This,pbitmapPersistence) ) + +#define IMsRdpClientAdvancedSettings_put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ + ( (This)->lpVtbl -> put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) + +#define IMsRdpClientAdvancedSettings_get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ + ( (This)->lpVtbl -> get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) + +#define IMsRdpClientAdvancedSettings_put_SmartSizing(This,pfSmartSizing) \ + ( (This)->lpVtbl -> put_SmartSizing(This,pfSmartSizing) ) + +#define IMsRdpClientAdvancedSettings_get_SmartSizing(This,pfSmartSizing) \ + ( (This)->lpVtbl -> get_SmartSizing(This,pfSmartSizing) ) + +#define IMsRdpClientAdvancedSettings_put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ + ( (This)->lpVtbl -> put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) + +#define IMsRdpClientAdvancedSettings_get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ + ( (This)->lpVtbl -> get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) + +#define IMsRdpClientAdvancedSettings_put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ + ( (This)->lpVtbl -> put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) + +#define IMsRdpClientAdvancedSettings_get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ + ( (This)->lpVtbl -> get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) + +#define IMsRdpClientAdvancedSettings_put_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ + ( (This)->lpVtbl -> put_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) + +#define IMsRdpClientAdvancedSettings_get_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ + ( (This)->lpVtbl -> get_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) + +#define IMsRdpClientAdvancedSettings_put_ClearTextPassword(This,rhs) \ + ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) + +#define IMsRdpClientAdvancedSettings_put_DisplayConnectionBar(This,pDisplayConnectionBar) \ + ( (This)->lpVtbl -> put_DisplayConnectionBar(This,pDisplayConnectionBar) ) + +#define IMsRdpClientAdvancedSettings_get_DisplayConnectionBar(This,pDisplayConnectionBar) \ + ( (This)->lpVtbl -> get_DisplayConnectionBar(This,pDisplayConnectionBar) ) + +#define IMsRdpClientAdvancedSettings_put_PinConnectionBar(This,pPinConnectionBar) \ + ( (This)->lpVtbl -> put_PinConnectionBar(This,pPinConnectionBar) ) + +#define IMsRdpClientAdvancedSettings_get_PinConnectionBar(This,pPinConnectionBar) \ + ( (This)->lpVtbl -> get_PinConnectionBar(This,pPinConnectionBar) ) + +#define IMsRdpClientAdvancedSettings_put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ + ( (This)->lpVtbl -> put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) + +#define IMsRdpClientAdvancedSettings_get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ + ( (This)->lpVtbl -> get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) + +#define IMsRdpClientAdvancedSettings_put_LoadBalanceInfo(This,pLBInfo) \ + ( (This)->lpVtbl -> put_LoadBalanceInfo(This,pLBInfo) ) + +#define IMsRdpClientAdvancedSettings_get_LoadBalanceInfo(This,pLBInfo) \ + ( (This)->lpVtbl -> get_LoadBalanceInfo(This,pLBInfo) ) + +#define IMsRdpClientAdvancedSettings_put_RedirectDrives(This,pRedirectDrives) \ + ( (This)->lpVtbl -> put_RedirectDrives(This,pRedirectDrives) ) + +#define IMsRdpClientAdvancedSettings_get_RedirectDrives(This,pRedirectDrives) \ + ( (This)->lpVtbl -> get_RedirectDrives(This,pRedirectDrives) ) + +#define IMsRdpClientAdvancedSettings_put_RedirectPrinters(This,pRedirectPrinters) \ + ( (This)->lpVtbl -> put_RedirectPrinters(This,pRedirectPrinters) ) + +#define IMsRdpClientAdvancedSettings_get_RedirectPrinters(This,pRedirectPrinters) \ + ( (This)->lpVtbl -> get_RedirectPrinters(This,pRedirectPrinters) ) + +#define IMsRdpClientAdvancedSettings_put_RedirectPorts(This,pRedirectPorts) \ + ( (This)->lpVtbl -> put_RedirectPorts(This,pRedirectPorts) ) + +#define IMsRdpClientAdvancedSettings_get_RedirectPorts(This,pRedirectPorts) \ + ( (This)->lpVtbl -> get_RedirectPorts(This,pRedirectPorts) ) + +#define IMsRdpClientAdvancedSettings_put_RedirectSmartCards(This,pRedirectSmartCards) \ + ( (This)->lpVtbl -> put_RedirectSmartCards(This,pRedirectSmartCards) ) + +#define IMsRdpClientAdvancedSettings_get_RedirectSmartCards(This,pRedirectSmartCards) \ + ( (This)->lpVtbl -> get_RedirectSmartCards(This,pRedirectSmartCards) ) + +#define IMsRdpClientAdvancedSettings_put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ + ( (This)->lpVtbl -> put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) + +#define IMsRdpClientAdvancedSettings_get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ + ( (This)->lpVtbl -> get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) + +#define IMsRdpClientAdvancedSettings_put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ + ( (This)->lpVtbl -> put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) + +#define IMsRdpClientAdvancedSettings_get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ + ( (This)->lpVtbl -> get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) + +#define IMsRdpClientAdvancedSettings_put_PerformanceFlags(This,pDisableList) \ + ( (This)->lpVtbl -> put_PerformanceFlags(This,pDisableList) ) + +#define IMsRdpClientAdvancedSettings_get_PerformanceFlags(This,pDisableList) \ + ( (This)->lpVtbl -> get_PerformanceFlags(This,pDisableList) ) + +#define IMsRdpClientAdvancedSettings_put_ConnectWithEndpoint(This,rhs) \ + ( (This)->lpVtbl -> put_ConnectWithEndpoint(This,rhs) ) + +#define IMsRdpClientAdvancedSettings_put_NotifyTSPublicKey(This,pfNotify) \ + ( (This)->lpVtbl -> put_NotifyTSPublicKey(This,pfNotify) ) + +#define IMsRdpClientAdvancedSettings_get_NotifyTSPublicKey(This,pfNotify) \ + ( (This)->lpVtbl -> get_NotifyTSPublicKey(This,pfNotify) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_get_RedirectSmartCards_Proxy( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards); + + +void __RPC_STUB IMsRdpClientAdvancedSettings_get_RedirectSmartCards_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_put_BitmapVirtualCache16BppSize_Proxy( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pBitmapVirtualCache16BppSize); + + +void __RPC_STUB IMsRdpClientAdvancedSettings_put_BitmapVirtualCache16BppSize_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_get_BitmapVirtualCache16BppSize_Proxy( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pBitmapVirtualCache16BppSize); + + +void __RPC_STUB IMsRdpClientAdvancedSettings_get_BitmapVirtualCache16BppSize_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_put_BitmapVirtualCache24BppSize_Proxy( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pBitmapVirtualCache24BppSize); + + +void __RPC_STUB IMsRdpClientAdvancedSettings_put_BitmapVirtualCache24BppSize_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_get_BitmapVirtualCache24BppSize_Proxy( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pBitmapVirtualCache24BppSize); + + +void __RPC_STUB IMsRdpClientAdvancedSettings_get_BitmapVirtualCache24BppSize_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_put_PerformanceFlags_Proxy( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pDisableList); + + +void __RPC_STUB IMsRdpClientAdvancedSettings_put_PerformanceFlags_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_get_PerformanceFlags_Proxy( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pDisableList); + + +void __RPC_STUB IMsRdpClientAdvancedSettings_get_PerformanceFlags_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_put_ConnectWithEndpoint_Proxy( + IMsRdpClientAdvancedSettings * This, + /* [in] */ VARIANT *rhs); + + +void __RPC_STUB IMsRdpClientAdvancedSettings_put_ConnectWithEndpoint_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_put_NotifyTSPublicKey_Proxy( + IMsRdpClientAdvancedSettings * This, + /* [in] */ VARIANT_BOOL pfNotify); + + +void __RPC_STUB IMsRdpClientAdvancedSettings_put_NotifyTSPublicKey_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_get_NotifyTSPublicKey_Proxy( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ VARIANT_BOOL *pfNotify); + + +void __RPC_STUB IMsRdpClientAdvancedSettings_get_NotifyTSPublicKey_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __IMsRdpClientAdvancedSettings_INTERFACE_DEFINED__ */ + + +#ifndef __IMsRdpClientAdvancedSettings2_INTERFACE_DEFINED__ +#define __IMsRdpClientAdvancedSettings2_INTERFACE_DEFINED__ + +/* interface IMsRdpClientAdvancedSettings2 */ +/* [object][oleautomation][dual][uuid] */ + + +EXTERN_C const IID IID_IMsRdpClientAdvancedSettings2; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("9AC42117-2B76-4320-AA44-0E616AB8437B") + IMsRdpClientAdvancedSettings2 : public IMsRdpClientAdvancedSettings + { + public: + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CanAutoReconnect( + /* [retval][out] */ VARIANT_BOOL *pfCanAutoReconnect) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_EnableAutoReconnect( + /* [in] */ VARIANT_BOOL pfEnableAutoReconnect) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_EnableAutoReconnect( + /* [retval][out] */ VARIANT_BOOL *pfEnableAutoReconnect) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_MaxReconnectAttempts( + /* [in] */ long pMaxReconnectAttempts) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_MaxReconnectAttempts( + /* [retval][out] */ long *pMaxReconnectAttempts) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsRdpClientAdvancedSettings2Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsRdpClientAdvancedSettings2 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsRdpClientAdvancedSettings2 * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsRdpClientAdvancedSettings2 * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Compress )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pcompress); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Compress )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pcompress); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPeristence )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pbitmapPeristence); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPeristence )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pbitmapPeristence); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_allowBackgroundInput )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pallowBackgroundInput); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_allowBackgroundInput )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pallowBackgroundInput); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyBoardLayoutStr )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PluginDlls )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconFile )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconIndex )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerHandledFullScreen )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pContainerHandledFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerHandledFullScreen )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pContainerHandledFullScreen); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableRdpdr )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pDisableRdpdr); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableRdpdr )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pDisableRdpdr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmoothScroll )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long psmoothScroll); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmoothScroll )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *psmoothScroll); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AcceleratorPassthrough )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pacceleratorPassthrough); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AcceleratorPassthrough )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pacceleratorPassthrough); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShadowBitmap )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pshadowBitmap); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShadowBitmap )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pshadowBitmap); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TransportType )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long ptransportType); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TransportType )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *ptransportType); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SasSequence )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long psasSequence); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SasSequence )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *psasSequence); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EncryptionEnabled )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pencryptionEnabled); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EncryptionEnabled )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pencryptionEnabled); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DedicatedTerminal )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pdedicatedTerminal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DedicatedTerminal )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pdedicatedTerminal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RDPPort )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long prdpPort); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RDPPort )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *prdpPort); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableMouse )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long penableMouse); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableMouse )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *penableMouse); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableCtrlAltDel )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pdisableCtrlAltDel); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableCtrlAltDel )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pdisableCtrlAltDel); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableWindowsKey )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long penableWindowsKey); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableWindowsKey )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *penableWindowsKey); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DoubleClickDetect )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pdoubleClickDetect); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DoubleClickDetect )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pdoubleClickDetect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaximizeShell )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pmaximizeShell); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaximizeShell )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pmaximizeShell); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyFullScreen )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long photKeyFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyFullScreen )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *photKeyFullScreen); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlEsc )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long photKeyCtrlEsc); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlEsc )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *photKeyCtrlEsc); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltEsc )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long photKeyAltEsc); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltEsc )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *photKeyAltEsc); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltTab )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long photKeyAltTab); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltTab )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *photKeyAltTab); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltShiftTab )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long photKeyAltShiftTab); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltShiftTab )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *photKeyAltShiftTab); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltSpace )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long photKeyAltSpace); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltSpace )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *photKeyAltSpace); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlAltDel )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long photKeyCtrlAltDel); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlAltDel )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *photKeyCtrlAltDel); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_orderDrawThreshold )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long porderDrawThreshold); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_orderDrawThreshold )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *porderDrawThreshold); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapCacheSize )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pbitmapCacheSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapCacheSize )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pbitmapCacheSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCacheSize )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pbitmapVirtualCacheSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCacheSize )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pbitmapVirtualCacheSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleBitmapCachesByBPP )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pbScale); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleBitmapCachesByBPP )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pbScale); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NumBitmapCaches )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pnumBitmapCaches); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumBitmapCaches )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pnumBitmapCaches); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CachePersistenceActive )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pcachePersistenceActive); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CachePersistenceActive )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pcachePersistenceActive); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PersistCacheDirectory )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_brushSupportLevel )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pbrushSupportLevel); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_brushSupportLevel )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pbrushSupportLevel); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_minInputSendInterval )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pminInputSendInterval); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_minInputSendInterval )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pminInputSendInterval); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InputEventsAtOnce )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pinputEventsAtOnce); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InputEventsAtOnce )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pinputEventsAtOnce); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_maxEventCount )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pmaxEventCount); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_maxEventCount )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pmaxEventCount); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_keepAliveInterval )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pkeepAliveInterval); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_keepAliveInterval )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pkeepAliveInterval); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_shutdownTimeout )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pshutdownTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_shutdownTimeout )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pshutdownTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_overallConnectionTimeout )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long poverallConnectionTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_overallConnectionTimeout )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *poverallConnectionTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_singleConnectionTimeout )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long psingleConnectionTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_singleConnectionTimeout )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *psingleConnectionTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardType )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pkeyboardType); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardType )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pkeyboardType); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardSubType )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pkeyboardSubType); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardSubType )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pkeyboardSubType); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardFunctionKey )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pkeyboardFunctionKey); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardFunctionKey )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pkeyboardFunctionKey); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WinceFixedPalette )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pwinceFixedPalette); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WinceFixedPalette )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pwinceFixedPalette); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectToServerConsole )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ VARIANT_BOOL pConnectToConsole); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectToServerConsole )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pConnectToConsole); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPersistence )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pbitmapPersistence); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPersistence )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pbitmapPersistence); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MinutesToIdleTimeout )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pminutesToIdleTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MinutesToIdleTimeout )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pminutesToIdleTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmartSizing )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ VARIANT_BOOL pfSmartSizing); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmartSizing )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pfSmartSizing); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrLocalPrintingDocName )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ BSTR pLocalPrintingDocName); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrLocalPrintingDocName )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ BSTR *pLocalPrintingDocName); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipCleanTempDirString )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ BSTR clipCleanTempDirString); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipCleanTempDirString )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ BSTR *clipCleanTempDirString); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipPasteInfoString )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ BSTR clipPasteInfoString); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipPasteInfoString )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ BSTR *clipPasteInfoString); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisplayConnectionBar )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ VARIANT_BOOL pDisplayConnectionBar); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisplayConnectionBar )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pDisplayConnectionBar); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PinConnectionBar )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ VARIANT_BOOL pPinConnectionBar); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PinConnectionBar )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pPinConnectionBar); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GrabFocusOnConnect )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ VARIANT_BOOL pfGrabFocusOnConnect); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GrabFocusOnConnect )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pfGrabFocusOnConnect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LoadBalanceInfo )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ BSTR pLBInfo); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LoadBalanceInfo )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ BSTR *pLBInfo); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectDrives )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ VARIANT_BOOL pRedirectDrives); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectDrives )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectDrives); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPrinters )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ VARIANT_BOOL pRedirectPrinters); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPrinters )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectPrinters); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPorts )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ VARIANT_BOOL pRedirectPorts); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPorts )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectPorts); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectSmartCards )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ VARIANT_BOOL pRedirectSmartCards); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectSmartCards )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache16BppSize )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pBitmapVirtualCache16BppSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache16BppSize )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pBitmapVirtualCache16BppSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache24BppSize )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pBitmapVirtualCache24BppSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache24BppSize )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pBitmapVirtualCache24BppSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PerformanceFlags )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pDisableList); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PerformanceFlags )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pDisableList); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectWithEndpoint )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ VARIANT *rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NotifyTSPublicKey )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ VARIANT_BOOL pfNotify); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NotifyTSPublicKey )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pfNotify); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CanAutoReconnect )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pfCanAutoReconnect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableAutoReconnect )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ VARIANT_BOOL pfEnableAutoReconnect); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableAutoReconnect )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pfEnableAutoReconnect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaxReconnectAttempts )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pMaxReconnectAttempts); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaxReconnectAttempts )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pMaxReconnectAttempts); + + END_INTERFACE + } IMsRdpClientAdvancedSettings2Vtbl; + + interface IMsRdpClientAdvancedSettings2 + { + CONST_VTBL struct IMsRdpClientAdvancedSettings2Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsRdpClientAdvancedSettings2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsRdpClientAdvancedSettings2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsRdpClientAdvancedSettings2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsRdpClientAdvancedSettings2_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsRdpClientAdvancedSettings2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsRdpClientAdvancedSettings2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsRdpClientAdvancedSettings2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IMsRdpClientAdvancedSettings2_put_Compress(This,pcompress) \ + ( (This)->lpVtbl -> put_Compress(This,pcompress) ) + +#define IMsRdpClientAdvancedSettings2_get_Compress(This,pcompress) \ + ( (This)->lpVtbl -> get_Compress(This,pcompress) ) + +#define IMsRdpClientAdvancedSettings2_put_BitmapPeristence(This,pbitmapPeristence) \ + ( (This)->lpVtbl -> put_BitmapPeristence(This,pbitmapPeristence) ) + +#define IMsRdpClientAdvancedSettings2_get_BitmapPeristence(This,pbitmapPeristence) \ + ( (This)->lpVtbl -> get_BitmapPeristence(This,pbitmapPeristence) ) + +#define IMsRdpClientAdvancedSettings2_put_allowBackgroundInput(This,pallowBackgroundInput) \ + ( (This)->lpVtbl -> put_allowBackgroundInput(This,pallowBackgroundInput) ) + +#define IMsRdpClientAdvancedSettings2_get_allowBackgroundInput(This,pallowBackgroundInput) \ + ( (This)->lpVtbl -> get_allowBackgroundInput(This,pallowBackgroundInput) ) + +#define IMsRdpClientAdvancedSettings2_put_KeyBoardLayoutStr(This,rhs) \ + ( (This)->lpVtbl -> put_KeyBoardLayoutStr(This,rhs) ) + +#define IMsRdpClientAdvancedSettings2_put_PluginDlls(This,rhs) \ + ( (This)->lpVtbl -> put_PluginDlls(This,rhs) ) + +#define IMsRdpClientAdvancedSettings2_put_IconFile(This,rhs) \ + ( (This)->lpVtbl -> put_IconFile(This,rhs) ) + +#define IMsRdpClientAdvancedSettings2_put_IconIndex(This,rhs) \ + ( (This)->lpVtbl -> put_IconIndex(This,rhs) ) + +#define IMsRdpClientAdvancedSettings2_put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ + ( (This)->lpVtbl -> put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) + +#define IMsRdpClientAdvancedSettings2_get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ + ( (This)->lpVtbl -> get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) + +#define IMsRdpClientAdvancedSettings2_put_DisableRdpdr(This,pDisableRdpdr) \ + ( (This)->lpVtbl -> put_DisableRdpdr(This,pDisableRdpdr) ) + +#define IMsRdpClientAdvancedSettings2_get_DisableRdpdr(This,pDisableRdpdr) \ + ( (This)->lpVtbl -> get_DisableRdpdr(This,pDisableRdpdr) ) + + +#define IMsRdpClientAdvancedSettings2_put_SmoothScroll(This,psmoothScroll) \ + ( (This)->lpVtbl -> put_SmoothScroll(This,psmoothScroll) ) + +#define IMsRdpClientAdvancedSettings2_get_SmoothScroll(This,psmoothScroll) \ + ( (This)->lpVtbl -> get_SmoothScroll(This,psmoothScroll) ) + +#define IMsRdpClientAdvancedSettings2_put_AcceleratorPassthrough(This,pacceleratorPassthrough) \ + ( (This)->lpVtbl -> put_AcceleratorPassthrough(This,pacceleratorPassthrough) ) + +#define IMsRdpClientAdvancedSettings2_get_AcceleratorPassthrough(This,pacceleratorPassthrough) \ + ( (This)->lpVtbl -> get_AcceleratorPassthrough(This,pacceleratorPassthrough) ) + +#define IMsRdpClientAdvancedSettings2_put_ShadowBitmap(This,pshadowBitmap) \ + ( (This)->lpVtbl -> put_ShadowBitmap(This,pshadowBitmap) ) + +#define IMsRdpClientAdvancedSettings2_get_ShadowBitmap(This,pshadowBitmap) \ + ( (This)->lpVtbl -> get_ShadowBitmap(This,pshadowBitmap) ) + +#define IMsRdpClientAdvancedSettings2_put_TransportType(This,ptransportType) \ + ( (This)->lpVtbl -> put_TransportType(This,ptransportType) ) + +#define IMsRdpClientAdvancedSettings2_get_TransportType(This,ptransportType) \ + ( (This)->lpVtbl -> get_TransportType(This,ptransportType) ) + +#define IMsRdpClientAdvancedSettings2_put_SasSequence(This,psasSequence) \ + ( (This)->lpVtbl -> put_SasSequence(This,psasSequence) ) + +#define IMsRdpClientAdvancedSettings2_get_SasSequence(This,psasSequence) \ + ( (This)->lpVtbl -> get_SasSequence(This,psasSequence) ) + +#define IMsRdpClientAdvancedSettings2_put_EncryptionEnabled(This,pencryptionEnabled) \ + ( (This)->lpVtbl -> put_EncryptionEnabled(This,pencryptionEnabled) ) + +#define IMsRdpClientAdvancedSettings2_get_EncryptionEnabled(This,pencryptionEnabled) \ + ( (This)->lpVtbl -> get_EncryptionEnabled(This,pencryptionEnabled) ) + +#define IMsRdpClientAdvancedSettings2_put_DedicatedTerminal(This,pdedicatedTerminal) \ + ( (This)->lpVtbl -> put_DedicatedTerminal(This,pdedicatedTerminal) ) + +#define IMsRdpClientAdvancedSettings2_get_DedicatedTerminal(This,pdedicatedTerminal) \ + ( (This)->lpVtbl -> get_DedicatedTerminal(This,pdedicatedTerminal) ) + +#define IMsRdpClientAdvancedSettings2_put_RDPPort(This,prdpPort) \ + ( (This)->lpVtbl -> put_RDPPort(This,prdpPort) ) + +#define IMsRdpClientAdvancedSettings2_get_RDPPort(This,prdpPort) \ + ( (This)->lpVtbl -> get_RDPPort(This,prdpPort) ) + +#define IMsRdpClientAdvancedSettings2_put_EnableMouse(This,penableMouse) \ + ( (This)->lpVtbl -> put_EnableMouse(This,penableMouse) ) + +#define IMsRdpClientAdvancedSettings2_get_EnableMouse(This,penableMouse) \ + ( (This)->lpVtbl -> get_EnableMouse(This,penableMouse) ) + +#define IMsRdpClientAdvancedSettings2_put_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ + ( (This)->lpVtbl -> put_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings2_get_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ + ( (This)->lpVtbl -> get_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings2_put_EnableWindowsKey(This,penableWindowsKey) \ + ( (This)->lpVtbl -> put_EnableWindowsKey(This,penableWindowsKey) ) + +#define IMsRdpClientAdvancedSettings2_get_EnableWindowsKey(This,penableWindowsKey) \ + ( (This)->lpVtbl -> get_EnableWindowsKey(This,penableWindowsKey) ) + +#define IMsRdpClientAdvancedSettings2_put_DoubleClickDetect(This,pdoubleClickDetect) \ + ( (This)->lpVtbl -> put_DoubleClickDetect(This,pdoubleClickDetect) ) + +#define IMsRdpClientAdvancedSettings2_get_DoubleClickDetect(This,pdoubleClickDetect) \ + ( (This)->lpVtbl -> get_DoubleClickDetect(This,pdoubleClickDetect) ) + +#define IMsRdpClientAdvancedSettings2_put_MaximizeShell(This,pmaximizeShell) \ + ( (This)->lpVtbl -> put_MaximizeShell(This,pmaximizeShell) ) + +#define IMsRdpClientAdvancedSettings2_get_MaximizeShell(This,pmaximizeShell) \ + ( (This)->lpVtbl -> get_MaximizeShell(This,pmaximizeShell) ) + +#define IMsRdpClientAdvancedSettings2_put_HotKeyFullScreen(This,photKeyFullScreen) \ + ( (This)->lpVtbl -> put_HotKeyFullScreen(This,photKeyFullScreen) ) + +#define IMsRdpClientAdvancedSettings2_get_HotKeyFullScreen(This,photKeyFullScreen) \ + ( (This)->lpVtbl -> get_HotKeyFullScreen(This,photKeyFullScreen) ) + +#define IMsRdpClientAdvancedSettings2_put_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ + ( (This)->lpVtbl -> put_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) + +#define IMsRdpClientAdvancedSettings2_get_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ + ( (This)->lpVtbl -> get_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) + +#define IMsRdpClientAdvancedSettings2_put_HotKeyAltEsc(This,photKeyAltEsc) \ + ( (This)->lpVtbl -> put_HotKeyAltEsc(This,photKeyAltEsc) ) + +#define IMsRdpClientAdvancedSettings2_get_HotKeyAltEsc(This,photKeyAltEsc) \ + ( (This)->lpVtbl -> get_HotKeyAltEsc(This,photKeyAltEsc) ) + +#define IMsRdpClientAdvancedSettings2_put_HotKeyAltTab(This,photKeyAltTab) \ + ( (This)->lpVtbl -> put_HotKeyAltTab(This,photKeyAltTab) ) + +#define IMsRdpClientAdvancedSettings2_get_HotKeyAltTab(This,photKeyAltTab) \ + ( (This)->lpVtbl -> get_HotKeyAltTab(This,photKeyAltTab) ) + +#define IMsRdpClientAdvancedSettings2_put_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ + ( (This)->lpVtbl -> put_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) + +#define IMsRdpClientAdvancedSettings2_get_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ + ( (This)->lpVtbl -> get_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) + +#define IMsRdpClientAdvancedSettings2_put_HotKeyAltSpace(This,photKeyAltSpace) \ + ( (This)->lpVtbl -> put_HotKeyAltSpace(This,photKeyAltSpace) ) + +#define IMsRdpClientAdvancedSettings2_get_HotKeyAltSpace(This,photKeyAltSpace) \ + ( (This)->lpVtbl -> get_HotKeyAltSpace(This,photKeyAltSpace) ) + +#define IMsRdpClientAdvancedSettings2_put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ + ( (This)->lpVtbl -> put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings2_get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ + ( (This)->lpVtbl -> get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings2_put_orderDrawThreshold(This,porderDrawThreshold) \ + ( (This)->lpVtbl -> put_orderDrawThreshold(This,porderDrawThreshold) ) + +#define IMsRdpClientAdvancedSettings2_get_orderDrawThreshold(This,porderDrawThreshold) \ + ( (This)->lpVtbl -> get_orderDrawThreshold(This,porderDrawThreshold) ) + +#define IMsRdpClientAdvancedSettings2_put_BitmapCacheSize(This,pbitmapCacheSize) \ + ( (This)->lpVtbl -> put_BitmapCacheSize(This,pbitmapCacheSize) ) + +#define IMsRdpClientAdvancedSettings2_get_BitmapCacheSize(This,pbitmapCacheSize) \ + ( (This)->lpVtbl -> get_BitmapCacheSize(This,pbitmapCacheSize) ) + +#define IMsRdpClientAdvancedSettings2_put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ + ( (This)->lpVtbl -> put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) + +#define IMsRdpClientAdvancedSettings2_get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ + ( (This)->lpVtbl -> get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) + +#define IMsRdpClientAdvancedSettings2_put_ScaleBitmapCachesByBPP(This,pbScale) \ + ( (This)->lpVtbl -> put_ScaleBitmapCachesByBPP(This,pbScale) ) + +#define IMsRdpClientAdvancedSettings2_get_ScaleBitmapCachesByBPP(This,pbScale) \ + ( (This)->lpVtbl -> get_ScaleBitmapCachesByBPP(This,pbScale) ) + +#define IMsRdpClientAdvancedSettings2_put_NumBitmapCaches(This,pnumBitmapCaches) \ + ( (This)->lpVtbl -> put_NumBitmapCaches(This,pnumBitmapCaches) ) + +#define IMsRdpClientAdvancedSettings2_get_NumBitmapCaches(This,pnumBitmapCaches) \ + ( (This)->lpVtbl -> get_NumBitmapCaches(This,pnumBitmapCaches) ) + +#define IMsRdpClientAdvancedSettings2_put_CachePersistenceActive(This,pcachePersistenceActive) \ + ( (This)->lpVtbl -> put_CachePersistenceActive(This,pcachePersistenceActive) ) + +#define IMsRdpClientAdvancedSettings2_get_CachePersistenceActive(This,pcachePersistenceActive) \ + ( (This)->lpVtbl -> get_CachePersistenceActive(This,pcachePersistenceActive) ) + +#define IMsRdpClientAdvancedSettings2_put_PersistCacheDirectory(This,rhs) \ + ( (This)->lpVtbl -> put_PersistCacheDirectory(This,rhs) ) + +#define IMsRdpClientAdvancedSettings2_put_brushSupportLevel(This,pbrushSupportLevel) \ + ( (This)->lpVtbl -> put_brushSupportLevel(This,pbrushSupportLevel) ) + +#define IMsRdpClientAdvancedSettings2_get_brushSupportLevel(This,pbrushSupportLevel) \ + ( (This)->lpVtbl -> get_brushSupportLevel(This,pbrushSupportLevel) ) + +#define IMsRdpClientAdvancedSettings2_put_minInputSendInterval(This,pminInputSendInterval) \ + ( (This)->lpVtbl -> put_minInputSendInterval(This,pminInputSendInterval) ) + +#define IMsRdpClientAdvancedSettings2_get_minInputSendInterval(This,pminInputSendInterval) \ + ( (This)->lpVtbl -> get_minInputSendInterval(This,pminInputSendInterval) ) + +#define IMsRdpClientAdvancedSettings2_put_InputEventsAtOnce(This,pinputEventsAtOnce) \ + ( (This)->lpVtbl -> put_InputEventsAtOnce(This,pinputEventsAtOnce) ) + +#define IMsRdpClientAdvancedSettings2_get_InputEventsAtOnce(This,pinputEventsAtOnce) \ + ( (This)->lpVtbl -> get_InputEventsAtOnce(This,pinputEventsAtOnce) ) + +#define IMsRdpClientAdvancedSettings2_put_maxEventCount(This,pmaxEventCount) \ + ( (This)->lpVtbl -> put_maxEventCount(This,pmaxEventCount) ) + +#define IMsRdpClientAdvancedSettings2_get_maxEventCount(This,pmaxEventCount) \ + ( (This)->lpVtbl -> get_maxEventCount(This,pmaxEventCount) ) + +#define IMsRdpClientAdvancedSettings2_put_keepAliveInterval(This,pkeepAliveInterval) \ + ( (This)->lpVtbl -> put_keepAliveInterval(This,pkeepAliveInterval) ) + +#define IMsRdpClientAdvancedSettings2_get_keepAliveInterval(This,pkeepAliveInterval) \ + ( (This)->lpVtbl -> get_keepAliveInterval(This,pkeepAliveInterval) ) + +#define IMsRdpClientAdvancedSettings2_put_shutdownTimeout(This,pshutdownTimeout) \ + ( (This)->lpVtbl -> put_shutdownTimeout(This,pshutdownTimeout) ) + +#define IMsRdpClientAdvancedSettings2_get_shutdownTimeout(This,pshutdownTimeout) \ + ( (This)->lpVtbl -> get_shutdownTimeout(This,pshutdownTimeout) ) + +#define IMsRdpClientAdvancedSettings2_put_overallConnectionTimeout(This,poverallConnectionTimeout) \ + ( (This)->lpVtbl -> put_overallConnectionTimeout(This,poverallConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings2_get_overallConnectionTimeout(This,poverallConnectionTimeout) \ + ( (This)->lpVtbl -> get_overallConnectionTimeout(This,poverallConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings2_put_singleConnectionTimeout(This,psingleConnectionTimeout) \ + ( (This)->lpVtbl -> put_singleConnectionTimeout(This,psingleConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings2_get_singleConnectionTimeout(This,psingleConnectionTimeout) \ + ( (This)->lpVtbl -> get_singleConnectionTimeout(This,psingleConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings2_put_KeyboardType(This,pkeyboardType) \ + ( (This)->lpVtbl -> put_KeyboardType(This,pkeyboardType) ) + +#define IMsRdpClientAdvancedSettings2_get_KeyboardType(This,pkeyboardType) \ + ( (This)->lpVtbl -> get_KeyboardType(This,pkeyboardType) ) + +#define IMsRdpClientAdvancedSettings2_put_KeyboardSubType(This,pkeyboardSubType) \ + ( (This)->lpVtbl -> put_KeyboardSubType(This,pkeyboardSubType) ) + +#define IMsRdpClientAdvancedSettings2_get_KeyboardSubType(This,pkeyboardSubType) \ + ( (This)->lpVtbl -> get_KeyboardSubType(This,pkeyboardSubType) ) + +#define IMsRdpClientAdvancedSettings2_put_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ + ( (This)->lpVtbl -> put_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) + +#define IMsRdpClientAdvancedSettings2_get_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ + ( (This)->lpVtbl -> get_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) + +#define IMsRdpClientAdvancedSettings2_put_WinceFixedPalette(This,pwinceFixedPalette) \ + ( (This)->lpVtbl -> put_WinceFixedPalette(This,pwinceFixedPalette) ) + +#define IMsRdpClientAdvancedSettings2_get_WinceFixedPalette(This,pwinceFixedPalette) \ + ( (This)->lpVtbl -> get_WinceFixedPalette(This,pwinceFixedPalette) ) + +#define IMsRdpClientAdvancedSettings2_put_ConnectToServerConsole(This,pConnectToConsole) \ + ( (This)->lpVtbl -> put_ConnectToServerConsole(This,pConnectToConsole) ) + +#define IMsRdpClientAdvancedSettings2_get_ConnectToServerConsole(This,pConnectToConsole) \ + ( (This)->lpVtbl -> get_ConnectToServerConsole(This,pConnectToConsole) ) + +#define IMsRdpClientAdvancedSettings2_put_BitmapPersistence(This,pbitmapPersistence) \ + ( (This)->lpVtbl -> put_BitmapPersistence(This,pbitmapPersistence) ) + +#define IMsRdpClientAdvancedSettings2_get_BitmapPersistence(This,pbitmapPersistence) \ + ( (This)->lpVtbl -> get_BitmapPersistence(This,pbitmapPersistence) ) + +#define IMsRdpClientAdvancedSettings2_put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ + ( (This)->lpVtbl -> put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) + +#define IMsRdpClientAdvancedSettings2_get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ + ( (This)->lpVtbl -> get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) + +#define IMsRdpClientAdvancedSettings2_put_SmartSizing(This,pfSmartSizing) \ + ( (This)->lpVtbl -> put_SmartSizing(This,pfSmartSizing) ) + +#define IMsRdpClientAdvancedSettings2_get_SmartSizing(This,pfSmartSizing) \ + ( (This)->lpVtbl -> get_SmartSizing(This,pfSmartSizing) ) + +#define IMsRdpClientAdvancedSettings2_put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ + ( (This)->lpVtbl -> put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) + +#define IMsRdpClientAdvancedSettings2_get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ + ( (This)->lpVtbl -> get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) + +#define IMsRdpClientAdvancedSettings2_put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ + ( (This)->lpVtbl -> put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) + +#define IMsRdpClientAdvancedSettings2_get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ + ( (This)->lpVtbl -> get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) + +#define IMsRdpClientAdvancedSettings2_put_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ + ( (This)->lpVtbl -> put_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) + +#define IMsRdpClientAdvancedSettings2_get_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ + ( (This)->lpVtbl -> get_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) + +#define IMsRdpClientAdvancedSettings2_put_ClearTextPassword(This,rhs) \ + ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) + +#define IMsRdpClientAdvancedSettings2_put_DisplayConnectionBar(This,pDisplayConnectionBar) \ + ( (This)->lpVtbl -> put_DisplayConnectionBar(This,pDisplayConnectionBar) ) + +#define IMsRdpClientAdvancedSettings2_get_DisplayConnectionBar(This,pDisplayConnectionBar) \ + ( (This)->lpVtbl -> get_DisplayConnectionBar(This,pDisplayConnectionBar) ) + +#define IMsRdpClientAdvancedSettings2_put_PinConnectionBar(This,pPinConnectionBar) \ + ( (This)->lpVtbl -> put_PinConnectionBar(This,pPinConnectionBar) ) + +#define IMsRdpClientAdvancedSettings2_get_PinConnectionBar(This,pPinConnectionBar) \ + ( (This)->lpVtbl -> get_PinConnectionBar(This,pPinConnectionBar) ) + +#define IMsRdpClientAdvancedSettings2_put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ + ( (This)->lpVtbl -> put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) + +#define IMsRdpClientAdvancedSettings2_get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ + ( (This)->lpVtbl -> get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) + +#define IMsRdpClientAdvancedSettings2_put_LoadBalanceInfo(This,pLBInfo) \ + ( (This)->lpVtbl -> put_LoadBalanceInfo(This,pLBInfo) ) + +#define IMsRdpClientAdvancedSettings2_get_LoadBalanceInfo(This,pLBInfo) \ + ( (This)->lpVtbl -> get_LoadBalanceInfo(This,pLBInfo) ) + +#define IMsRdpClientAdvancedSettings2_put_RedirectDrives(This,pRedirectDrives) \ + ( (This)->lpVtbl -> put_RedirectDrives(This,pRedirectDrives) ) + +#define IMsRdpClientAdvancedSettings2_get_RedirectDrives(This,pRedirectDrives) \ + ( (This)->lpVtbl -> get_RedirectDrives(This,pRedirectDrives) ) + +#define IMsRdpClientAdvancedSettings2_put_RedirectPrinters(This,pRedirectPrinters) \ + ( (This)->lpVtbl -> put_RedirectPrinters(This,pRedirectPrinters) ) + +#define IMsRdpClientAdvancedSettings2_get_RedirectPrinters(This,pRedirectPrinters) \ + ( (This)->lpVtbl -> get_RedirectPrinters(This,pRedirectPrinters) ) + +#define IMsRdpClientAdvancedSettings2_put_RedirectPorts(This,pRedirectPorts) \ + ( (This)->lpVtbl -> put_RedirectPorts(This,pRedirectPorts) ) + +#define IMsRdpClientAdvancedSettings2_get_RedirectPorts(This,pRedirectPorts) \ + ( (This)->lpVtbl -> get_RedirectPorts(This,pRedirectPorts) ) + +#define IMsRdpClientAdvancedSettings2_put_RedirectSmartCards(This,pRedirectSmartCards) \ + ( (This)->lpVtbl -> put_RedirectSmartCards(This,pRedirectSmartCards) ) + +#define IMsRdpClientAdvancedSettings2_get_RedirectSmartCards(This,pRedirectSmartCards) \ + ( (This)->lpVtbl -> get_RedirectSmartCards(This,pRedirectSmartCards) ) + +#define IMsRdpClientAdvancedSettings2_put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ + ( (This)->lpVtbl -> put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) + +#define IMsRdpClientAdvancedSettings2_get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ + ( (This)->lpVtbl -> get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) + +#define IMsRdpClientAdvancedSettings2_put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ + ( (This)->lpVtbl -> put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) + +#define IMsRdpClientAdvancedSettings2_get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ + ( (This)->lpVtbl -> get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) + +#define IMsRdpClientAdvancedSettings2_put_PerformanceFlags(This,pDisableList) \ + ( (This)->lpVtbl -> put_PerformanceFlags(This,pDisableList) ) + +#define IMsRdpClientAdvancedSettings2_get_PerformanceFlags(This,pDisableList) \ + ( (This)->lpVtbl -> get_PerformanceFlags(This,pDisableList) ) + +#define IMsRdpClientAdvancedSettings2_put_ConnectWithEndpoint(This,rhs) \ + ( (This)->lpVtbl -> put_ConnectWithEndpoint(This,rhs) ) + +#define IMsRdpClientAdvancedSettings2_put_NotifyTSPublicKey(This,pfNotify) \ + ( (This)->lpVtbl -> put_NotifyTSPublicKey(This,pfNotify) ) + +#define IMsRdpClientAdvancedSettings2_get_NotifyTSPublicKey(This,pfNotify) \ + ( (This)->lpVtbl -> get_NotifyTSPublicKey(This,pfNotify) ) + + +#define IMsRdpClientAdvancedSettings2_get_CanAutoReconnect(This,pfCanAutoReconnect) \ + ( (This)->lpVtbl -> get_CanAutoReconnect(This,pfCanAutoReconnect) ) + +#define IMsRdpClientAdvancedSettings2_put_EnableAutoReconnect(This,pfEnableAutoReconnect) \ + ( (This)->lpVtbl -> put_EnableAutoReconnect(This,pfEnableAutoReconnect) ) + +#define IMsRdpClientAdvancedSettings2_get_EnableAutoReconnect(This,pfEnableAutoReconnect) \ + ( (This)->lpVtbl -> get_EnableAutoReconnect(This,pfEnableAutoReconnect) ) + +#define IMsRdpClientAdvancedSettings2_put_MaxReconnectAttempts(This,pMaxReconnectAttempts) \ + ( (This)->lpVtbl -> put_MaxReconnectAttempts(This,pMaxReconnectAttempts) ) + +#define IMsRdpClientAdvancedSettings2_get_MaxReconnectAttempts(This,pMaxReconnectAttempts) \ + ( (This)->lpVtbl -> get_MaxReconnectAttempts(This,pMaxReconnectAttempts) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings2_get_CanAutoReconnect_Proxy( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pfCanAutoReconnect); + + +void __RPC_STUB IMsRdpClientAdvancedSettings2_get_CanAutoReconnect_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings2_put_EnableAutoReconnect_Proxy( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ VARIANT_BOOL pfEnableAutoReconnect); + + +void __RPC_STUB IMsRdpClientAdvancedSettings2_put_EnableAutoReconnect_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings2_get_EnableAutoReconnect_Proxy( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pfEnableAutoReconnect); + + +void __RPC_STUB IMsRdpClientAdvancedSettings2_get_EnableAutoReconnect_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings2_put_MaxReconnectAttempts_Proxy( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pMaxReconnectAttempts); + + +void __RPC_STUB IMsRdpClientAdvancedSettings2_put_MaxReconnectAttempts_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings2_get_MaxReconnectAttempts_Proxy( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pMaxReconnectAttempts); + + +void __RPC_STUB IMsRdpClientAdvancedSettings2_get_MaxReconnectAttempts_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __IMsRdpClientAdvancedSettings2_INTERFACE_DEFINED__ */ + + +#ifndef __IMsRdpClientAdvancedSettings3_INTERFACE_DEFINED__ +#define __IMsRdpClientAdvancedSettings3_INTERFACE_DEFINED__ + +/* interface IMsRdpClientAdvancedSettings3 */ +/* [object][oleautomation][dual][uuid] */ + + +EXTERN_C const IID IID_IMsRdpClientAdvancedSettings3; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("19CD856B-C542-4C53-ACEE-F127E3BE1A59") + IMsRdpClientAdvancedSettings3 : public IMsRdpClientAdvancedSettings2 + { + public: + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectionBarShowMinimizeButton( + /* [in] */ VARIANT_BOOL pfShowMinimize) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ConnectionBarShowMinimizeButton( + /* [retval][out] */ VARIANT_BOOL *pfShowMinimize) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectionBarShowRestoreButton( + /* [in] */ VARIANT_BOOL pfShowRestore) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ConnectionBarShowRestoreButton( + /* [retval][out] */ VARIANT_BOOL *pfShowRestore) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsRdpClientAdvancedSettings3Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsRdpClientAdvancedSettings3 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsRdpClientAdvancedSettings3 * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsRdpClientAdvancedSettings3 * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Compress )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pcompress); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Compress )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pcompress); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPeristence )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pbitmapPeristence); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPeristence )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pbitmapPeristence); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_allowBackgroundInput )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pallowBackgroundInput); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_allowBackgroundInput )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pallowBackgroundInput); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyBoardLayoutStr )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PluginDlls )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconFile )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconIndex )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerHandledFullScreen )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pContainerHandledFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerHandledFullScreen )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pContainerHandledFullScreen); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableRdpdr )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pDisableRdpdr); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableRdpdr )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pDisableRdpdr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmoothScroll )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long psmoothScroll); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmoothScroll )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *psmoothScroll); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AcceleratorPassthrough )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pacceleratorPassthrough); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AcceleratorPassthrough )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pacceleratorPassthrough); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShadowBitmap )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pshadowBitmap); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShadowBitmap )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pshadowBitmap); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TransportType )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long ptransportType); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TransportType )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *ptransportType); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SasSequence )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long psasSequence); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SasSequence )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *psasSequence); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EncryptionEnabled )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pencryptionEnabled); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EncryptionEnabled )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pencryptionEnabled); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DedicatedTerminal )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pdedicatedTerminal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DedicatedTerminal )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pdedicatedTerminal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RDPPort )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long prdpPort); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RDPPort )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *prdpPort); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableMouse )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long penableMouse); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableMouse )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *penableMouse); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableCtrlAltDel )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pdisableCtrlAltDel); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableCtrlAltDel )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pdisableCtrlAltDel); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableWindowsKey )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long penableWindowsKey); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableWindowsKey )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *penableWindowsKey); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DoubleClickDetect )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pdoubleClickDetect); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DoubleClickDetect )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pdoubleClickDetect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaximizeShell )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pmaximizeShell); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaximizeShell )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pmaximizeShell); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyFullScreen )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long photKeyFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyFullScreen )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *photKeyFullScreen); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlEsc )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long photKeyCtrlEsc); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlEsc )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *photKeyCtrlEsc); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltEsc )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long photKeyAltEsc); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltEsc )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *photKeyAltEsc); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltTab )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long photKeyAltTab); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltTab )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *photKeyAltTab); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltShiftTab )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long photKeyAltShiftTab); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltShiftTab )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *photKeyAltShiftTab); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltSpace )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long photKeyAltSpace); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltSpace )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *photKeyAltSpace); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlAltDel )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long photKeyCtrlAltDel); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlAltDel )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *photKeyCtrlAltDel); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_orderDrawThreshold )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long porderDrawThreshold); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_orderDrawThreshold )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *porderDrawThreshold); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapCacheSize )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pbitmapCacheSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapCacheSize )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pbitmapCacheSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCacheSize )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pbitmapVirtualCacheSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCacheSize )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pbitmapVirtualCacheSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleBitmapCachesByBPP )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pbScale); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleBitmapCachesByBPP )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pbScale); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NumBitmapCaches )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pnumBitmapCaches); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumBitmapCaches )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pnumBitmapCaches); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CachePersistenceActive )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pcachePersistenceActive); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CachePersistenceActive )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pcachePersistenceActive); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PersistCacheDirectory )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_brushSupportLevel )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pbrushSupportLevel); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_brushSupportLevel )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pbrushSupportLevel); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_minInputSendInterval )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pminInputSendInterval); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_minInputSendInterval )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pminInputSendInterval); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InputEventsAtOnce )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pinputEventsAtOnce); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InputEventsAtOnce )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pinputEventsAtOnce); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_maxEventCount )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pmaxEventCount); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_maxEventCount )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pmaxEventCount); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_keepAliveInterval )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pkeepAliveInterval); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_keepAliveInterval )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pkeepAliveInterval); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_shutdownTimeout )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pshutdownTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_shutdownTimeout )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pshutdownTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_overallConnectionTimeout )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long poverallConnectionTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_overallConnectionTimeout )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *poverallConnectionTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_singleConnectionTimeout )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long psingleConnectionTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_singleConnectionTimeout )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *psingleConnectionTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardType )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pkeyboardType); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardType )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pkeyboardType); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardSubType )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pkeyboardSubType); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardSubType )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pkeyboardSubType); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardFunctionKey )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pkeyboardFunctionKey); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardFunctionKey )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pkeyboardFunctionKey); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WinceFixedPalette )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pwinceFixedPalette); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WinceFixedPalette )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pwinceFixedPalette); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectToServerConsole )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pConnectToConsole); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectToServerConsole )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pConnectToConsole); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPersistence )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pbitmapPersistence); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPersistence )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pbitmapPersistence); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MinutesToIdleTimeout )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pminutesToIdleTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MinutesToIdleTimeout )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pminutesToIdleTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmartSizing )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pfSmartSizing); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmartSizing )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pfSmartSizing); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrLocalPrintingDocName )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ BSTR pLocalPrintingDocName); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrLocalPrintingDocName )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ BSTR *pLocalPrintingDocName); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipCleanTempDirString )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ BSTR clipCleanTempDirString); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipCleanTempDirString )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ BSTR *clipCleanTempDirString); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipPasteInfoString )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ BSTR clipPasteInfoString); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipPasteInfoString )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ BSTR *clipPasteInfoString); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisplayConnectionBar )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pDisplayConnectionBar); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisplayConnectionBar )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pDisplayConnectionBar); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PinConnectionBar )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pPinConnectionBar); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PinConnectionBar )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pPinConnectionBar); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GrabFocusOnConnect )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pfGrabFocusOnConnect); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GrabFocusOnConnect )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pfGrabFocusOnConnect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LoadBalanceInfo )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ BSTR pLBInfo); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LoadBalanceInfo )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ BSTR *pLBInfo); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectDrives )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pRedirectDrives); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectDrives )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectDrives); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPrinters )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pRedirectPrinters); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPrinters )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectPrinters); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPorts )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pRedirectPorts); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPorts )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectPorts); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectSmartCards )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pRedirectSmartCards); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectSmartCards )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache16BppSize )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pBitmapVirtualCache16BppSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache16BppSize )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pBitmapVirtualCache16BppSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache24BppSize )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pBitmapVirtualCache24BppSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache24BppSize )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pBitmapVirtualCache24BppSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PerformanceFlags )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pDisableList); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PerformanceFlags )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pDisableList); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectWithEndpoint )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT *rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NotifyTSPublicKey )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pfNotify); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NotifyTSPublicKey )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pfNotify); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CanAutoReconnect )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pfCanAutoReconnect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableAutoReconnect )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pfEnableAutoReconnect); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableAutoReconnect )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pfEnableAutoReconnect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaxReconnectAttempts )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pMaxReconnectAttempts); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaxReconnectAttempts )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pMaxReconnectAttempts); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectionBarShowMinimizeButton )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pfShowMinimize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectionBarShowMinimizeButton )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pfShowMinimize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectionBarShowRestoreButton )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pfShowRestore); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectionBarShowRestoreButton )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pfShowRestore); + + END_INTERFACE + } IMsRdpClientAdvancedSettings3Vtbl; + + interface IMsRdpClientAdvancedSettings3 + { + CONST_VTBL struct IMsRdpClientAdvancedSettings3Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsRdpClientAdvancedSettings3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsRdpClientAdvancedSettings3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsRdpClientAdvancedSettings3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsRdpClientAdvancedSettings3_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsRdpClientAdvancedSettings3_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsRdpClientAdvancedSettings3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsRdpClientAdvancedSettings3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IMsRdpClientAdvancedSettings3_put_Compress(This,pcompress) \ + ( (This)->lpVtbl -> put_Compress(This,pcompress) ) + +#define IMsRdpClientAdvancedSettings3_get_Compress(This,pcompress) \ + ( (This)->lpVtbl -> get_Compress(This,pcompress) ) + +#define IMsRdpClientAdvancedSettings3_put_BitmapPeristence(This,pbitmapPeristence) \ + ( (This)->lpVtbl -> put_BitmapPeristence(This,pbitmapPeristence) ) + +#define IMsRdpClientAdvancedSettings3_get_BitmapPeristence(This,pbitmapPeristence) \ + ( (This)->lpVtbl -> get_BitmapPeristence(This,pbitmapPeristence) ) + +#define IMsRdpClientAdvancedSettings3_put_allowBackgroundInput(This,pallowBackgroundInput) \ + ( (This)->lpVtbl -> put_allowBackgroundInput(This,pallowBackgroundInput) ) + +#define IMsRdpClientAdvancedSettings3_get_allowBackgroundInput(This,pallowBackgroundInput) \ + ( (This)->lpVtbl -> get_allowBackgroundInput(This,pallowBackgroundInput) ) + +#define IMsRdpClientAdvancedSettings3_put_KeyBoardLayoutStr(This,rhs) \ + ( (This)->lpVtbl -> put_KeyBoardLayoutStr(This,rhs) ) + +#define IMsRdpClientAdvancedSettings3_put_PluginDlls(This,rhs) \ + ( (This)->lpVtbl -> put_PluginDlls(This,rhs) ) + +#define IMsRdpClientAdvancedSettings3_put_IconFile(This,rhs) \ + ( (This)->lpVtbl -> put_IconFile(This,rhs) ) + +#define IMsRdpClientAdvancedSettings3_put_IconIndex(This,rhs) \ + ( (This)->lpVtbl -> put_IconIndex(This,rhs) ) + +#define IMsRdpClientAdvancedSettings3_put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ + ( (This)->lpVtbl -> put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) + +#define IMsRdpClientAdvancedSettings3_get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ + ( (This)->lpVtbl -> get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) + +#define IMsRdpClientAdvancedSettings3_put_DisableRdpdr(This,pDisableRdpdr) \ + ( (This)->lpVtbl -> put_DisableRdpdr(This,pDisableRdpdr) ) + +#define IMsRdpClientAdvancedSettings3_get_DisableRdpdr(This,pDisableRdpdr) \ + ( (This)->lpVtbl -> get_DisableRdpdr(This,pDisableRdpdr) ) + + +#define IMsRdpClientAdvancedSettings3_put_SmoothScroll(This,psmoothScroll) \ + ( (This)->lpVtbl -> put_SmoothScroll(This,psmoothScroll) ) + +#define IMsRdpClientAdvancedSettings3_get_SmoothScroll(This,psmoothScroll) \ + ( (This)->lpVtbl -> get_SmoothScroll(This,psmoothScroll) ) + +#define IMsRdpClientAdvancedSettings3_put_AcceleratorPassthrough(This,pacceleratorPassthrough) \ + ( (This)->lpVtbl -> put_AcceleratorPassthrough(This,pacceleratorPassthrough) ) + +#define IMsRdpClientAdvancedSettings3_get_AcceleratorPassthrough(This,pacceleratorPassthrough) \ + ( (This)->lpVtbl -> get_AcceleratorPassthrough(This,pacceleratorPassthrough) ) + +#define IMsRdpClientAdvancedSettings3_put_ShadowBitmap(This,pshadowBitmap) \ + ( (This)->lpVtbl -> put_ShadowBitmap(This,pshadowBitmap) ) + +#define IMsRdpClientAdvancedSettings3_get_ShadowBitmap(This,pshadowBitmap) \ + ( (This)->lpVtbl -> get_ShadowBitmap(This,pshadowBitmap) ) + +#define IMsRdpClientAdvancedSettings3_put_TransportType(This,ptransportType) \ + ( (This)->lpVtbl -> put_TransportType(This,ptransportType) ) + +#define IMsRdpClientAdvancedSettings3_get_TransportType(This,ptransportType) \ + ( (This)->lpVtbl -> get_TransportType(This,ptransportType) ) + +#define IMsRdpClientAdvancedSettings3_put_SasSequence(This,psasSequence) \ + ( (This)->lpVtbl -> put_SasSequence(This,psasSequence) ) + +#define IMsRdpClientAdvancedSettings3_get_SasSequence(This,psasSequence) \ + ( (This)->lpVtbl -> get_SasSequence(This,psasSequence) ) + +#define IMsRdpClientAdvancedSettings3_put_EncryptionEnabled(This,pencryptionEnabled) \ + ( (This)->lpVtbl -> put_EncryptionEnabled(This,pencryptionEnabled) ) + +#define IMsRdpClientAdvancedSettings3_get_EncryptionEnabled(This,pencryptionEnabled) \ + ( (This)->lpVtbl -> get_EncryptionEnabled(This,pencryptionEnabled) ) + +#define IMsRdpClientAdvancedSettings3_put_DedicatedTerminal(This,pdedicatedTerminal) \ + ( (This)->lpVtbl -> put_DedicatedTerminal(This,pdedicatedTerminal) ) + +#define IMsRdpClientAdvancedSettings3_get_DedicatedTerminal(This,pdedicatedTerminal) \ + ( (This)->lpVtbl -> get_DedicatedTerminal(This,pdedicatedTerminal) ) + +#define IMsRdpClientAdvancedSettings3_put_RDPPort(This,prdpPort) \ + ( (This)->lpVtbl -> put_RDPPort(This,prdpPort) ) + +#define IMsRdpClientAdvancedSettings3_get_RDPPort(This,prdpPort) \ + ( (This)->lpVtbl -> get_RDPPort(This,prdpPort) ) + +#define IMsRdpClientAdvancedSettings3_put_EnableMouse(This,penableMouse) \ + ( (This)->lpVtbl -> put_EnableMouse(This,penableMouse) ) + +#define IMsRdpClientAdvancedSettings3_get_EnableMouse(This,penableMouse) \ + ( (This)->lpVtbl -> get_EnableMouse(This,penableMouse) ) + +#define IMsRdpClientAdvancedSettings3_put_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ + ( (This)->lpVtbl -> put_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings3_get_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ + ( (This)->lpVtbl -> get_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings3_put_EnableWindowsKey(This,penableWindowsKey) \ + ( (This)->lpVtbl -> put_EnableWindowsKey(This,penableWindowsKey) ) + +#define IMsRdpClientAdvancedSettings3_get_EnableWindowsKey(This,penableWindowsKey) \ + ( (This)->lpVtbl -> get_EnableWindowsKey(This,penableWindowsKey) ) + +#define IMsRdpClientAdvancedSettings3_put_DoubleClickDetect(This,pdoubleClickDetect) \ + ( (This)->lpVtbl -> put_DoubleClickDetect(This,pdoubleClickDetect) ) + +#define IMsRdpClientAdvancedSettings3_get_DoubleClickDetect(This,pdoubleClickDetect) \ + ( (This)->lpVtbl -> get_DoubleClickDetect(This,pdoubleClickDetect) ) + +#define IMsRdpClientAdvancedSettings3_put_MaximizeShell(This,pmaximizeShell) \ + ( (This)->lpVtbl -> put_MaximizeShell(This,pmaximizeShell) ) + +#define IMsRdpClientAdvancedSettings3_get_MaximizeShell(This,pmaximizeShell) \ + ( (This)->lpVtbl -> get_MaximizeShell(This,pmaximizeShell) ) + +#define IMsRdpClientAdvancedSettings3_put_HotKeyFullScreen(This,photKeyFullScreen) \ + ( (This)->lpVtbl -> put_HotKeyFullScreen(This,photKeyFullScreen) ) + +#define IMsRdpClientAdvancedSettings3_get_HotKeyFullScreen(This,photKeyFullScreen) \ + ( (This)->lpVtbl -> get_HotKeyFullScreen(This,photKeyFullScreen) ) + +#define IMsRdpClientAdvancedSettings3_put_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ + ( (This)->lpVtbl -> put_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) + +#define IMsRdpClientAdvancedSettings3_get_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ + ( (This)->lpVtbl -> get_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) + +#define IMsRdpClientAdvancedSettings3_put_HotKeyAltEsc(This,photKeyAltEsc) \ + ( (This)->lpVtbl -> put_HotKeyAltEsc(This,photKeyAltEsc) ) + +#define IMsRdpClientAdvancedSettings3_get_HotKeyAltEsc(This,photKeyAltEsc) \ + ( (This)->lpVtbl -> get_HotKeyAltEsc(This,photKeyAltEsc) ) + +#define IMsRdpClientAdvancedSettings3_put_HotKeyAltTab(This,photKeyAltTab) \ + ( (This)->lpVtbl -> put_HotKeyAltTab(This,photKeyAltTab) ) + +#define IMsRdpClientAdvancedSettings3_get_HotKeyAltTab(This,photKeyAltTab) \ + ( (This)->lpVtbl -> get_HotKeyAltTab(This,photKeyAltTab) ) + +#define IMsRdpClientAdvancedSettings3_put_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ + ( (This)->lpVtbl -> put_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) + +#define IMsRdpClientAdvancedSettings3_get_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ + ( (This)->lpVtbl -> get_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) + +#define IMsRdpClientAdvancedSettings3_put_HotKeyAltSpace(This,photKeyAltSpace) \ + ( (This)->lpVtbl -> put_HotKeyAltSpace(This,photKeyAltSpace) ) + +#define IMsRdpClientAdvancedSettings3_get_HotKeyAltSpace(This,photKeyAltSpace) \ + ( (This)->lpVtbl -> get_HotKeyAltSpace(This,photKeyAltSpace) ) + +#define IMsRdpClientAdvancedSettings3_put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ + ( (This)->lpVtbl -> put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings3_get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ + ( (This)->lpVtbl -> get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings3_put_orderDrawThreshold(This,porderDrawThreshold) \ + ( (This)->lpVtbl -> put_orderDrawThreshold(This,porderDrawThreshold) ) + +#define IMsRdpClientAdvancedSettings3_get_orderDrawThreshold(This,porderDrawThreshold) \ + ( (This)->lpVtbl -> get_orderDrawThreshold(This,porderDrawThreshold) ) + +#define IMsRdpClientAdvancedSettings3_put_BitmapCacheSize(This,pbitmapCacheSize) \ + ( (This)->lpVtbl -> put_BitmapCacheSize(This,pbitmapCacheSize) ) + +#define IMsRdpClientAdvancedSettings3_get_BitmapCacheSize(This,pbitmapCacheSize) \ + ( (This)->lpVtbl -> get_BitmapCacheSize(This,pbitmapCacheSize) ) + +#define IMsRdpClientAdvancedSettings3_put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ + ( (This)->lpVtbl -> put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) + +#define IMsRdpClientAdvancedSettings3_get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ + ( (This)->lpVtbl -> get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) + +#define IMsRdpClientAdvancedSettings3_put_ScaleBitmapCachesByBPP(This,pbScale) \ + ( (This)->lpVtbl -> put_ScaleBitmapCachesByBPP(This,pbScale) ) + +#define IMsRdpClientAdvancedSettings3_get_ScaleBitmapCachesByBPP(This,pbScale) \ + ( (This)->lpVtbl -> get_ScaleBitmapCachesByBPP(This,pbScale) ) + +#define IMsRdpClientAdvancedSettings3_put_NumBitmapCaches(This,pnumBitmapCaches) \ + ( (This)->lpVtbl -> put_NumBitmapCaches(This,pnumBitmapCaches) ) + +#define IMsRdpClientAdvancedSettings3_get_NumBitmapCaches(This,pnumBitmapCaches) \ + ( (This)->lpVtbl -> get_NumBitmapCaches(This,pnumBitmapCaches) ) + +#define IMsRdpClientAdvancedSettings3_put_CachePersistenceActive(This,pcachePersistenceActive) \ + ( (This)->lpVtbl -> put_CachePersistenceActive(This,pcachePersistenceActive) ) + +#define IMsRdpClientAdvancedSettings3_get_CachePersistenceActive(This,pcachePersistenceActive) \ + ( (This)->lpVtbl -> get_CachePersistenceActive(This,pcachePersistenceActive) ) + +#define IMsRdpClientAdvancedSettings3_put_PersistCacheDirectory(This,rhs) \ + ( (This)->lpVtbl -> put_PersistCacheDirectory(This,rhs) ) + +#define IMsRdpClientAdvancedSettings3_put_brushSupportLevel(This,pbrushSupportLevel) \ + ( (This)->lpVtbl -> put_brushSupportLevel(This,pbrushSupportLevel) ) + +#define IMsRdpClientAdvancedSettings3_get_brushSupportLevel(This,pbrushSupportLevel) \ + ( (This)->lpVtbl -> get_brushSupportLevel(This,pbrushSupportLevel) ) + +#define IMsRdpClientAdvancedSettings3_put_minInputSendInterval(This,pminInputSendInterval) \ + ( (This)->lpVtbl -> put_minInputSendInterval(This,pminInputSendInterval) ) + +#define IMsRdpClientAdvancedSettings3_get_minInputSendInterval(This,pminInputSendInterval) \ + ( (This)->lpVtbl -> get_minInputSendInterval(This,pminInputSendInterval) ) + +#define IMsRdpClientAdvancedSettings3_put_InputEventsAtOnce(This,pinputEventsAtOnce) \ + ( (This)->lpVtbl -> put_InputEventsAtOnce(This,pinputEventsAtOnce) ) + +#define IMsRdpClientAdvancedSettings3_get_InputEventsAtOnce(This,pinputEventsAtOnce) \ + ( (This)->lpVtbl -> get_InputEventsAtOnce(This,pinputEventsAtOnce) ) + +#define IMsRdpClientAdvancedSettings3_put_maxEventCount(This,pmaxEventCount) \ + ( (This)->lpVtbl -> put_maxEventCount(This,pmaxEventCount) ) + +#define IMsRdpClientAdvancedSettings3_get_maxEventCount(This,pmaxEventCount) \ + ( (This)->lpVtbl -> get_maxEventCount(This,pmaxEventCount) ) + +#define IMsRdpClientAdvancedSettings3_put_keepAliveInterval(This,pkeepAliveInterval) \ + ( (This)->lpVtbl -> put_keepAliveInterval(This,pkeepAliveInterval) ) + +#define IMsRdpClientAdvancedSettings3_get_keepAliveInterval(This,pkeepAliveInterval) \ + ( (This)->lpVtbl -> get_keepAliveInterval(This,pkeepAliveInterval) ) + +#define IMsRdpClientAdvancedSettings3_put_shutdownTimeout(This,pshutdownTimeout) \ + ( (This)->lpVtbl -> put_shutdownTimeout(This,pshutdownTimeout) ) + +#define IMsRdpClientAdvancedSettings3_get_shutdownTimeout(This,pshutdownTimeout) \ + ( (This)->lpVtbl -> get_shutdownTimeout(This,pshutdownTimeout) ) + +#define IMsRdpClientAdvancedSettings3_put_overallConnectionTimeout(This,poverallConnectionTimeout) \ + ( (This)->lpVtbl -> put_overallConnectionTimeout(This,poverallConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings3_get_overallConnectionTimeout(This,poverallConnectionTimeout) \ + ( (This)->lpVtbl -> get_overallConnectionTimeout(This,poverallConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings3_put_singleConnectionTimeout(This,psingleConnectionTimeout) \ + ( (This)->lpVtbl -> put_singleConnectionTimeout(This,psingleConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings3_get_singleConnectionTimeout(This,psingleConnectionTimeout) \ + ( (This)->lpVtbl -> get_singleConnectionTimeout(This,psingleConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings3_put_KeyboardType(This,pkeyboardType) \ + ( (This)->lpVtbl -> put_KeyboardType(This,pkeyboardType) ) + +#define IMsRdpClientAdvancedSettings3_get_KeyboardType(This,pkeyboardType) \ + ( (This)->lpVtbl -> get_KeyboardType(This,pkeyboardType) ) + +#define IMsRdpClientAdvancedSettings3_put_KeyboardSubType(This,pkeyboardSubType) \ + ( (This)->lpVtbl -> put_KeyboardSubType(This,pkeyboardSubType) ) + +#define IMsRdpClientAdvancedSettings3_get_KeyboardSubType(This,pkeyboardSubType) \ + ( (This)->lpVtbl -> get_KeyboardSubType(This,pkeyboardSubType) ) + +#define IMsRdpClientAdvancedSettings3_put_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ + ( (This)->lpVtbl -> put_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) + +#define IMsRdpClientAdvancedSettings3_get_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ + ( (This)->lpVtbl -> get_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) + +#define IMsRdpClientAdvancedSettings3_put_WinceFixedPalette(This,pwinceFixedPalette) \ + ( (This)->lpVtbl -> put_WinceFixedPalette(This,pwinceFixedPalette) ) + +#define IMsRdpClientAdvancedSettings3_get_WinceFixedPalette(This,pwinceFixedPalette) \ + ( (This)->lpVtbl -> get_WinceFixedPalette(This,pwinceFixedPalette) ) + +#define IMsRdpClientAdvancedSettings3_put_ConnectToServerConsole(This,pConnectToConsole) \ + ( (This)->lpVtbl -> put_ConnectToServerConsole(This,pConnectToConsole) ) + +#define IMsRdpClientAdvancedSettings3_get_ConnectToServerConsole(This,pConnectToConsole) \ + ( (This)->lpVtbl -> get_ConnectToServerConsole(This,pConnectToConsole) ) + +#define IMsRdpClientAdvancedSettings3_put_BitmapPersistence(This,pbitmapPersistence) \ + ( (This)->lpVtbl -> put_BitmapPersistence(This,pbitmapPersistence) ) + +#define IMsRdpClientAdvancedSettings3_get_BitmapPersistence(This,pbitmapPersistence) \ + ( (This)->lpVtbl -> get_BitmapPersistence(This,pbitmapPersistence) ) + +#define IMsRdpClientAdvancedSettings3_put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ + ( (This)->lpVtbl -> put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) + +#define IMsRdpClientAdvancedSettings3_get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ + ( (This)->lpVtbl -> get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) + +#define IMsRdpClientAdvancedSettings3_put_SmartSizing(This,pfSmartSizing) \ + ( (This)->lpVtbl -> put_SmartSizing(This,pfSmartSizing) ) + +#define IMsRdpClientAdvancedSettings3_get_SmartSizing(This,pfSmartSizing) \ + ( (This)->lpVtbl -> get_SmartSizing(This,pfSmartSizing) ) + +#define IMsRdpClientAdvancedSettings3_put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ + ( (This)->lpVtbl -> put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) + +#define IMsRdpClientAdvancedSettings3_get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ + ( (This)->lpVtbl -> get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) + +#define IMsRdpClientAdvancedSettings3_put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ + ( (This)->lpVtbl -> put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) + +#define IMsRdpClientAdvancedSettings3_get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ + ( (This)->lpVtbl -> get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) + +#define IMsRdpClientAdvancedSettings3_put_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ + ( (This)->lpVtbl -> put_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) + +#define IMsRdpClientAdvancedSettings3_get_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ + ( (This)->lpVtbl -> get_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) + +#define IMsRdpClientAdvancedSettings3_put_ClearTextPassword(This,rhs) \ + ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) + +#define IMsRdpClientAdvancedSettings3_put_DisplayConnectionBar(This,pDisplayConnectionBar) \ + ( (This)->lpVtbl -> put_DisplayConnectionBar(This,pDisplayConnectionBar) ) + +#define IMsRdpClientAdvancedSettings3_get_DisplayConnectionBar(This,pDisplayConnectionBar) \ + ( (This)->lpVtbl -> get_DisplayConnectionBar(This,pDisplayConnectionBar) ) + +#define IMsRdpClientAdvancedSettings3_put_PinConnectionBar(This,pPinConnectionBar) \ + ( (This)->lpVtbl -> put_PinConnectionBar(This,pPinConnectionBar) ) + +#define IMsRdpClientAdvancedSettings3_get_PinConnectionBar(This,pPinConnectionBar) \ + ( (This)->lpVtbl -> get_PinConnectionBar(This,pPinConnectionBar) ) + +#define IMsRdpClientAdvancedSettings3_put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ + ( (This)->lpVtbl -> put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) + +#define IMsRdpClientAdvancedSettings3_get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ + ( (This)->lpVtbl -> get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) + +#define IMsRdpClientAdvancedSettings3_put_LoadBalanceInfo(This,pLBInfo) \ + ( (This)->lpVtbl -> put_LoadBalanceInfo(This,pLBInfo) ) + +#define IMsRdpClientAdvancedSettings3_get_LoadBalanceInfo(This,pLBInfo) \ + ( (This)->lpVtbl -> get_LoadBalanceInfo(This,pLBInfo) ) + +#define IMsRdpClientAdvancedSettings3_put_RedirectDrives(This,pRedirectDrives) \ + ( (This)->lpVtbl -> put_RedirectDrives(This,pRedirectDrives) ) + +#define IMsRdpClientAdvancedSettings3_get_RedirectDrives(This,pRedirectDrives) \ + ( (This)->lpVtbl -> get_RedirectDrives(This,pRedirectDrives) ) + +#define IMsRdpClientAdvancedSettings3_put_RedirectPrinters(This,pRedirectPrinters) \ + ( (This)->lpVtbl -> put_RedirectPrinters(This,pRedirectPrinters) ) + +#define IMsRdpClientAdvancedSettings3_get_RedirectPrinters(This,pRedirectPrinters) \ + ( (This)->lpVtbl -> get_RedirectPrinters(This,pRedirectPrinters) ) + +#define IMsRdpClientAdvancedSettings3_put_RedirectPorts(This,pRedirectPorts) \ + ( (This)->lpVtbl -> put_RedirectPorts(This,pRedirectPorts) ) + +#define IMsRdpClientAdvancedSettings3_get_RedirectPorts(This,pRedirectPorts) \ + ( (This)->lpVtbl -> get_RedirectPorts(This,pRedirectPorts) ) + +#define IMsRdpClientAdvancedSettings3_put_RedirectSmartCards(This,pRedirectSmartCards) \ + ( (This)->lpVtbl -> put_RedirectSmartCards(This,pRedirectSmartCards) ) + +#define IMsRdpClientAdvancedSettings3_get_RedirectSmartCards(This,pRedirectSmartCards) \ + ( (This)->lpVtbl -> get_RedirectSmartCards(This,pRedirectSmartCards) ) + +#define IMsRdpClientAdvancedSettings3_put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ + ( (This)->lpVtbl -> put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) + +#define IMsRdpClientAdvancedSettings3_get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ + ( (This)->lpVtbl -> get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) + +#define IMsRdpClientAdvancedSettings3_put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ + ( (This)->lpVtbl -> put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) + +#define IMsRdpClientAdvancedSettings3_get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ + ( (This)->lpVtbl -> get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) + +#define IMsRdpClientAdvancedSettings3_put_PerformanceFlags(This,pDisableList) \ + ( (This)->lpVtbl -> put_PerformanceFlags(This,pDisableList) ) + +#define IMsRdpClientAdvancedSettings3_get_PerformanceFlags(This,pDisableList) \ + ( (This)->lpVtbl -> get_PerformanceFlags(This,pDisableList) ) + +#define IMsRdpClientAdvancedSettings3_put_ConnectWithEndpoint(This,rhs) \ + ( (This)->lpVtbl -> put_ConnectWithEndpoint(This,rhs) ) + +#define IMsRdpClientAdvancedSettings3_put_NotifyTSPublicKey(This,pfNotify) \ + ( (This)->lpVtbl -> put_NotifyTSPublicKey(This,pfNotify) ) + +#define IMsRdpClientAdvancedSettings3_get_NotifyTSPublicKey(This,pfNotify) \ + ( (This)->lpVtbl -> get_NotifyTSPublicKey(This,pfNotify) ) + + +#define IMsRdpClientAdvancedSettings3_get_CanAutoReconnect(This,pfCanAutoReconnect) \ + ( (This)->lpVtbl -> get_CanAutoReconnect(This,pfCanAutoReconnect) ) + +#define IMsRdpClientAdvancedSettings3_put_EnableAutoReconnect(This,pfEnableAutoReconnect) \ + ( (This)->lpVtbl -> put_EnableAutoReconnect(This,pfEnableAutoReconnect) ) + +#define IMsRdpClientAdvancedSettings3_get_EnableAutoReconnect(This,pfEnableAutoReconnect) \ + ( (This)->lpVtbl -> get_EnableAutoReconnect(This,pfEnableAutoReconnect) ) + +#define IMsRdpClientAdvancedSettings3_put_MaxReconnectAttempts(This,pMaxReconnectAttempts) \ + ( (This)->lpVtbl -> put_MaxReconnectAttempts(This,pMaxReconnectAttempts) ) + +#define IMsRdpClientAdvancedSettings3_get_MaxReconnectAttempts(This,pMaxReconnectAttempts) \ + ( (This)->lpVtbl -> get_MaxReconnectAttempts(This,pMaxReconnectAttempts) ) + + +#define IMsRdpClientAdvancedSettings3_put_ConnectionBarShowMinimizeButton(This,pfShowMinimize) \ + ( (This)->lpVtbl -> put_ConnectionBarShowMinimizeButton(This,pfShowMinimize) ) + +#define IMsRdpClientAdvancedSettings3_get_ConnectionBarShowMinimizeButton(This,pfShowMinimize) \ + ( (This)->lpVtbl -> get_ConnectionBarShowMinimizeButton(This,pfShowMinimize) ) + +#define IMsRdpClientAdvancedSettings3_put_ConnectionBarShowRestoreButton(This,pfShowRestore) \ + ( (This)->lpVtbl -> put_ConnectionBarShowRestoreButton(This,pfShowRestore) ) + +#define IMsRdpClientAdvancedSettings3_get_ConnectionBarShowRestoreButton(This,pfShowRestore) \ + ( (This)->lpVtbl -> get_ConnectionBarShowRestoreButton(This,pfShowRestore) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings3_put_ConnectionBarShowMinimizeButton_Proxy( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pfShowMinimize); + + +void __RPC_STUB IMsRdpClientAdvancedSettings3_put_ConnectionBarShowMinimizeButton_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings3_get_ConnectionBarShowMinimizeButton_Proxy( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pfShowMinimize); + + +void __RPC_STUB IMsRdpClientAdvancedSettings3_get_ConnectionBarShowMinimizeButton_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings3_put_ConnectionBarShowRestoreButton_Proxy( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pfShowRestore); + + +void __RPC_STUB IMsRdpClientAdvancedSettings3_put_ConnectionBarShowRestoreButton_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings3_get_ConnectionBarShowRestoreButton_Proxy( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pfShowRestore); + + +void __RPC_STUB IMsRdpClientAdvancedSettings3_get_ConnectionBarShowRestoreButton_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __IMsRdpClientAdvancedSettings3_INTERFACE_DEFINED__ */ + + +#ifndef __IMsRdpClientAdvancedSettings4_INTERFACE_DEFINED__ +#define __IMsRdpClientAdvancedSettings4_INTERFACE_DEFINED__ + +/* interface IMsRdpClientAdvancedSettings4 */ +/* [object][oleautomation][dual][uuid] */ + + +EXTERN_C const IID IID_IMsRdpClientAdvancedSettings4; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("FBA7F64E-7345-4405-AE50-FA4A763DC0DE") + IMsRdpClientAdvancedSettings4 : public IMsRdpClientAdvancedSettings3 + { + public: + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_AuthenticationLevel( + /* [in] */ unsigned int puiAuthLevel) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AuthenticationLevel( + /* [retval][out] */ unsigned int *puiAuthLevel) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsRdpClientAdvancedSettings4Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsRdpClientAdvancedSettings4 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsRdpClientAdvancedSettings4 * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsRdpClientAdvancedSettings4 * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Compress )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pcompress); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Compress )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pcompress); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPeristence )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pbitmapPeristence); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPeristence )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pbitmapPeristence); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_allowBackgroundInput )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pallowBackgroundInput); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_allowBackgroundInput )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pallowBackgroundInput); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyBoardLayoutStr )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PluginDlls )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconFile )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconIndex )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerHandledFullScreen )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pContainerHandledFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerHandledFullScreen )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pContainerHandledFullScreen); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableRdpdr )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pDisableRdpdr); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableRdpdr )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pDisableRdpdr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmoothScroll )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long psmoothScroll); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmoothScroll )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *psmoothScroll); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AcceleratorPassthrough )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pacceleratorPassthrough); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AcceleratorPassthrough )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pacceleratorPassthrough); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShadowBitmap )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pshadowBitmap); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShadowBitmap )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pshadowBitmap); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TransportType )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long ptransportType); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TransportType )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *ptransportType); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SasSequence )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long psasSequence); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SasSequence )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *psasSequence); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EncryptionEnabled )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pencryptionEnabled); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EncryptionEnabled )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pencryptionEnabled); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DedicatedTerminal )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pdedicatedTerminal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DedicatedTerminal )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pdedicatedTerminal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RDPPort )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long prdpPort); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RDPPort )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *prdpPort); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableMouse )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long penableMouse); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableMouse )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *penableMouse); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableCtrlAltDel )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pdisableCtrlAltDel); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableCtrlAltDel )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pdisableCtrlAltDel); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableWindowsKey )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long penableWindowsKey); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableWindowsKey )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *penableWindowsKey); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DoubleClickDetect )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pdoubleClickDetect); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DoubleClickDetect )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pdoubleClickDetect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaximizeShell )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pmaximizeShell); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaximizeShell )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pmaximizeShell); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyFullScreen )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long photKeyFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyFullScreen )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *photKeyFullScreen); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlEsc )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long photKeyCtrlEsc); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlEsc )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *photKeyCtrlEsc); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltEsc )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long photKeyAltEsc); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltEsc )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *photKeyAltEsc); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltTab )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long photKeyAltTab); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltTab )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *photKeyAltTab); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltShiftTab )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long photKeyAltShiftTab); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltShiftTab )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *photKeyAltShiftTab); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltSpace )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long photKeyAltSpace); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltSpace )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *photKeyAltSpace); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlAltDel )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long photKeyCtrlAltDel); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlAltDel )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *photKeyCtrlAltDel); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_orderDrawThreshold )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long porderDrawThreshold); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_orderDrawThreshold )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *porderDrawThreshold); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapCacheSize )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pbitmapCacheSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapCacheSize )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pbitmapCacheSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCacheSize )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pbitmapVirtualCacheSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCacheSize )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pbitmapVirtualCacheSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleBitmapCachesByBPP )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pbScale); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleBitmapCachesByBPP )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pbScale); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NumBitmapCaches )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pnumBitmapCaches); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumBitmapCaches )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pnumBitmapCaches); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CachePersistenceActive )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pcachePersistenceActive); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CachePersistenceActive )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pcachePersistenceActive); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PersistCacheDirectory )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_brushSupportLevel )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pbrushSupportLevel); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_brushSupportLevel )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pbrushSupportLevel); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_minInputSendInterval )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pminInputSendInterval); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_minInputSendInterval )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pminInputSendInterval); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InputEventsAtOnce )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pinputEventsAtOnce); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InputEventsAtOnce )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pinputEventsAtOnce); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_maxEventCount )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pmaxEventCount); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_maxEventCount )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pmaxEventCount); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_keepAliveInterval )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pkeepAliveInterval); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_keepAliveInterval )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pkeepAliveInterval); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_shutdownTimeout )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pshutdownTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_shutdownTimeout )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pshutdownTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_overallConnectionTimeout )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long poverallConnectionTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_overallConnectionTimeout )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *poverallConnectionTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_singleConnectionTimeout )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long psingleConnectionTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_singleConnectionTimeout )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *psingleConnectionTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardType )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pkeyboardType); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardType )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pkeyboardType); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardSubType )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pkeyboardSubType); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardSubType )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pkeyboardSubType); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardFunctionKey )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pkeyboardFunctionKey); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardFunctionKey )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pkeyboardFunctionKey); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WinceFixedPalette )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pwinceFixedPalette); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WinceFixedPalette )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pwinceFixedPalette); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectToServerConsole )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT_BOOL pConnectToConsole); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectToServerConsole )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pConnectToConsole); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPersistence )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pbitmapPersistence); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPersistence )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pbitmapPersistence); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MinutesToIdleTimeout )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pminutesToIdleTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MinutesToIdleTimeout )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pminutesToIdleTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmartSizing )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT_BOOL pfSmartSizing); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmartSizing )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pfSmartSizing); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrLocalPrintingDocName )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ BSTR pLocalPrintingDocName); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrLocalPrintingDocName )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ BSTR *pLocalPrintingDocName); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipCleanTempDirString )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ BSTR clipCleanTempDirString); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipCleanTempDirString )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ BSTR *clipCleanTempDirString); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipPasteInfoString )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ BSTR clipPasteInfoString); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipPasteInfoString )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ BSTR *clipPasteInfoString); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisplayConnectionBar )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT_BOOL pDisplayConnectionBar); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisplayConnectionBar )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pDisplayConnectionBar); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PinConnectionBar )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT_BOOL pPinConnectionBar); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PinConnectionBar )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pPinConnectionBar); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GrabFocusOnConnect )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT_BOOL pfGrabFocusOnConnect); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GrabFocusOnConnect )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pfGrabFocusOnConnect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LoadBalanceInfo )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ BSTR pLBInfo); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LoadBalanceInfo )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ BSTR *pLBInfo); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectDrives )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT_BOOL pRedirectDrives); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectDrives )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectDrives); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPrinters )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT_BOOL pRedirectPrinters); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPrinters )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectPrinters); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPorts )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT_BOOL pRedirectPorts); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPorts )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectPorts); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectSmartCards )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT_BOOL pRedirectSmartCards); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectSmartCards )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache16BppSize )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pBitmapVirtualCache16BppSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache16BppSize )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pBitmapVirtualCache16BppSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache24BppSize )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pBitmapVirtualCache24BppSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache24BppSize )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pBitmapVirtualCache24BppSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PerformanceFlags )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pDisableList); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PerformanceFlags )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pDisableList); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectWithEndpoint )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT *rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NotifyTSPublicKey )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT_BOOL pfNotify); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NotifyTSPublicKey )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pfNotify); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CanAutoReconnect )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pfCanAutoReconnect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableAutoReconnect )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT_BOOL pfEnableAutoReconnect); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableAutoReconnect )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pfEnableAutoReconnect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaxReconnectAttempts )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pMaxReconnectAttempts); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaxReconnectAttempts )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pMaxReconnectAttempts); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectionBarShowMinimizeButton )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT_BOOL pfShowMinimize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectionBarShowMinimizeButton )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pfShowMinimize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectionBarShowRestoreButton )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT_BOOL pfShowRestore); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectionBarShowRestoreButton )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pfShowRestore); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AuthenticationLevel )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ unsigned int puiAuthLevel); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AuthenticationLevel )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ unsigned int *puiAuthLevel); + + END_INTERFACE + } IMsRdpClientAdvancedSettings4Vtbl; + + interface IMsRdpClientAdvancedSettings4 + { + CONST_VTBL struct IMsRdpClientAdvancedSettings4Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsRdpClientAdvancedSettings4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsRdpClientAdvancedSettings4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsRdpClientAdvancedSettings4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsRdpClientAdvancedSettings4_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsRdpClientAdvancedSettings4_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsRdpClientAdvancedSettings4_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsRdpClientAdvancedSettings4_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IMsRdpClientAdvancedSettings4_put_Compress(This,pcompress) \ + ( (This)->lpVtbl -> put_Compress(This,pcompress) ) + +#define IMsRdpClientAdvancedSettings4_get_Compress(This,pcompress) \ + ( (This)->lpVtbl -> get_Compress(This,pcompress) ) + +#define IMsRdpClientAdvancedSettings4_put_BitmapPeristence(This,pbitmapPeristence) \ + ( (This)->lpVtbl -> put_BitmapPeristence(This,pbitmapPeristence) ) + +#define IMsRdpClientAdvancedSettings4_get_BitmapPeristence(This,pbitmapPeristence) \ + ( (This)->lpVtbl -> get_BitmapPeristence(This,pbitmapPeristence) ) + +#define IMsRdpClientAdvancedSettings4_put_allowBackgroundInput(This,pallowBackgroundInput) \ + ( (This)->lpVtbl -> put_allowBackgroundInput(This,pallowBackgroundInput) ) + +#define IMsRdpClientAdvancedSettings4_get_allowBackgroundInput(This,pallowBackgroundInput) \ + ( (This)->lpVtbl -> get_allowBackgroundInput(This,pallowBackgroundInput) ) + +#define IMsRdpClientAdvancedSettings4_put_KeyBoardLayoutStr(This,rhs) \ + ( (This)->lpVtbl -> put_KeyBoardLayoutStr(This,rhs) ) + +#define IMsRdpClientAdvancedSettings4_put_PluginDlls(This,rhs) \ + ( (This)->lpVtbl -> put_PluginDlls(This,rhs) ) + +#define IMsRdpClientAdvancedSettings4_put_IconFile(This,rhs) \ + ( (This)->lpVtbl -> put_IconFile(This,rhs) ) + +#define IMsRdpClientAdvancedSettings4_put_IconIndex(This,rhs) \ + ( (This)->lpVtbl -> put_IconIndex(This,rhs) ) + +#define IMsRdpClientAdvancedSettings4_put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ + ( (This)->lpVtbl -> put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) + +#define IMsRdpClientAdvancedSettings4_get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ + ( (This)->lpVtbl -> get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) + +#define IMsRdpClientAdvancedSettings4_put_DisableRdpdr(This,pDisableRdpdr) \ + ( (This)->lpVtbl -> put_DisableRdpdr(This,pDisableRdpdr) ) + +#define IMsRdpClientAdvancedSettings4_get_DisableRdpdr(This,pDisableRdpdr) \ + ( (This)->lpVtbl -> get_DisableRdpdr(This,pDisableRdpdr) ) + + +#define IMsRdpClientAdvancedSettings4_put_SmoothScroll(This,psmoothScroll) \ + ( (This)->lpVtbl -> put_SmoothScroll(This,psmoothScroll) ) + +#define IMsRdpClientAdvancedSettings4_get_SmoothScroll(This,psmoothScroll) \ + ( (This)->lpVtbl -> get_SmoothScroll(This,psmoothScroll) ) + +#define IMsRdpClientAdvancedSettings4_put_AcceleratorPassthrough(This,pacceleratorPassthrough) \ + ( (This)->lpVtbl -> put_AcceleratorPassthrough(This,pacceleratorPassthrough) ) + +#define IMsRdpClientAdvancedSettings4_get_AcceleratorPassthrough(This,pacceleratorPassthrough) \ + ( (This)->lpVtbl -> get_AcceleratorPassthrough(This,pacceleratorPassthrough) ) + +#define IMsRdpClientAdvancedSettings4_put_ShadowBitmap(This,pshadowBitmap) \ + ( (This)->lpVtbl -> put_ShadowBitmap(This,pshadowBitmap) ) + +#define IMsRdpClientAdvancedSettings4_get_ShadowBitmap(This,pshadowBitmap) \ + ( (This)->lpVtbl -> get_ShadowBitmap(This,pshadowBitmap) ) + +#define IMsRdpClientAdvancedSettings4_put_TransportType(This,ptransportType) \ + ( (This)->lpVtbl -> put_TransportType(This,ptransportType) ) + +#define IMsRdpClientAdvancedSettings4_get_TransportType(This,ptransportType) \ + ( (This)->lpVtbl -> get_TransportType(This,ptransportType) ) + +#define IMsRdpClientAdvancedSettings4_put_SasSequence(This,psasSequence) \ + ( (This)->lpVtbl -> put_SasSequence(This,psasSequence) ) + +#define IMsRdpClientAdvancedSettings4_get_SasSequence(This,psasSequence) \ + ( (This)->lpVtbl -> get_SasSequence(This,psasSequence) ) + +#define IMsRdpClientAdvancedSettings4_put_EncryptionEnabled(This,pencryptionEnabled) \ + ( (This)->lpVtbl -> put_EncryptionEnabled(This,pencryptionEnabled) ) + +#define IMsRdpClientAdvancedSettings4_get_EncryptionEnabled(This,pencryptionEnabled) \ + ( (This)->lpVtbl -> get_EncryptionEnabled(This,pencryptionEnabled) ) + +#define IMsRdpClientAdvancedSettings4_put_DedicatedTerminal(This,pdedicatedTerminal) \ + ( (This)->lpVtbl -> put_DedicatedTerminal(This,pdedicatedTerminal) ) + +#define IMsRdpClientAdvancedSettings4_get_DedicatedTerminal(This,pdedicatedTerminal) \ + ( (This)->lpVtbl -> get_DedicatedTerminal(This,pdedicatedTerminal) ) + +#define IMsRdpClientAdvancedSettings4_put_RDPPort(This,prdpPort) \ + ( (This)->lpVtbl -> put_RDPPort(This,prdpPort) ) + +#define IMsRdpClientAdvancedSettings4_get_RDPPort(This,prdpPort) \ + ( (This)->lpVtbl -> get_RDPPort(This,prdpPort) ) + +#define IMsRdpClientAdvancedSettings4_put_EnableMouse(This,penableMouse) \ + ( (This)->lpVtbl -> put_EnableMouse(This,penableMouse) ) + +#define IMsRdpClientAdvancedSettings4_get_EnableMouse(This,penableMouse) \ + ( (This)->lpVtbl -> get_EnableMouse(This,penableMouse) ) + +#define IMsRdpClientAdvancedSettings4_put_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ + ( (This)->lpVtbl -> put_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings4_get_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ + ( (This)->lpVtbl -> get_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings4_put_EnableWindowsKey(This,penableWindowsKey) \ + ( (This)->lpVtbl -> put_EnableWindowsKey(This,penableWindowsKey) ) + +#define IMsRdpClientAdvancedSettings4_get_EnableWindowsKey(This,penableWindowsKey) \ + ( (This)->lpVtbl -> get_EnableWindowsKey(This,penableWindowsKey) ) + +#define IMsRdpClientAdvancedSettings4_put_DoubleClickDetect(This,pdoubleClickDetect) \ + ( (This)->lpVtbl -> put_DoubleClickDetect(This,pdoubleClickDetect) ) + +#define IMsRdpClientAdvancedSettings4_get_DoubleClickDetect(This,pdoubleClickDetect) \ + ( (This)->lpVtbl -> get_DoubleClickDetect(This,pdoubleClickDetect) ) + +#define IMsRdpClientAdvancedSettings4_put_MaximizeShell(This,pmaximizeShell) \ + ( (This)->lpVtbl -> put_MaximizeShell(This,pmaximizeShell) ) + +#define IMsRdpClientAdvancedSettings4_get_MaximizeShell(This,pmaximizeShell) \ + ( (This)->lpVtbl -> get_MaximizeShell(This,pmaximizeShell) ) + +#define IMsRdpClientAdvancedSettings4_put_HotKeyFullScreen(This,photKeyFullScreen) \ + ( (This)->lpVtbl -> put_HotKeyFullScreen(This,photKeyFullScreen) ) + +#define IMsRdpClientAdvancedSettings4_get_HotKeyFullScreen(This,photKeyFullScreen) \ + ( (This)->lpVtbl -> get_HotKeyFullScreen(This,photKeyFullScreen) ) + +#define IMsRdpClientAdvancedSettings4_put_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ + ( (This)->lpVtbl -> put_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) + +#define IMsRdpClientAdvancedSettings4_get_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ + ( (This)->lpVtbl -> get_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) + +#define IMsRdpClientAdvancedSettings4_put_HotKeyAltEsc(This,photKeyAltEsc) \ + ( (This)->lpVtbl -> put_HotKeyAltEsc(This,photKeyAltEsc) ) + +#define IMsRdpClientAdvancedSettings4_get_HotKeyAltEsc(This,photKeyAltEsc) \ + ( (This)->lpVtbl -> get_HotKeyAltEsc(This,photKeyAltEsc) ) + +#define IMsRdpClientAdvancedSettings4_put_HotKeyAltTab(This,photKeyAltTab) \ + ( (This)->lpVtbl -> put_HotKeyAltTab(This,photKeyAltTab) ) + +#define IMsRdpClientAdvancedSettings4_get_HotKeyAltTab(This,photKeyAltTab) \ + ( (This)->lpVtbl -> get_HotKeyAltTab(This,photKeyAltTab) ) + +#define IMsRdpClientAdvancedSettings4_put_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ + ( (This)->lpVtbl -> put_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) + +#define IMsRdpClientAdvancedSettings4_get_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ + ( (This)->lpVtbl -> get_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) + +#define IMsRdpClientAdvancedSettings4_put_HotKeyAltSpace(This,photKeyAltSpace) \ + ( (This)->lpVtbl -> put_HotKeyAltSpace(This,photKeyAltSpace) ) + +#define IMsRdpClientAdvancedSettings4_get_HotKeyAltSpace(This,photKeyAltSpace) \ + ( (This)->lpVtbl -> get_HotKeyAltSpace(This,photKeyAltSpace) ) + +#define IMsRdpClientAdvancedSettings4_put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ + ( (This)->lpVtbl -> put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings4_get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ + ( (This)->lpVtbl -> get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings4_put_orderDrawThreshold(This,porderDrawThreshold) \ + ( (This)->lpVtbl -> put_orderDrawThreshold(This,porderDrawThreshold) ) + +#define IMsRdpClientAdvancedSettings4_get_orderDrawThreshold(This,porderDrawThreshold) \ + ( (This)->lpVtbl -> get_orderDrawThreshold(This,porderDrawThreshold) ) + +#define IMsRdpClientAdvancedSettings4_put_BitmapCacheSize(This,pbitmapCacheSize) \ + ( (This)->lpVtbl -> put_BitmapCacheSize(This,pbitmapCacheSize) ) + +#define IMsRdpClientAdvancedSettings4_get_BitmapCacheSize(This,pbitmapCacheSize) \ + ( (This)->lpVtbl -> get_BitmapCacheSize(This,pbitmapCacheSize) ) + +#define IMsRdpClientAdvancedSettings4_put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ + ( (This)->lpVtbl -> put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) + +#define IMsRdpClientAdvancedSettings4_get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ + ( (This)->lpVtbl -> get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) + +#define IMsRdpClientAdvancedSettings4_put_ScaleBitmapCachesByBPP(This,pbScale) \ + ( (This)->lpVtbl -> put_ScaleBitmapCachesByBPP(This,pbScale) ) + +#define IMsRdpClientAdvancedSettings4_get_ScaleBitmapCachesByBPP(This,pbScale) \ + ( (This)->lpVtbl -> get_ScaleBitmapCachesByBPP(This,pbScale) ) + +#define IMsRdpClientAdvancedSettings4_put_NumBitmapCaches(This,pnumBitmapCaches) \ + ( (This)->lpVtbl -> put_NumBitmapCaches(This,pnumBitmapCaches) ) + +#define IMsRdpClientAdvancedSettings4_get_NumBitmapCaches(This,pnumBitmapCaches) \ + ( (This)->lpVtbl -> get_NumBitmapCaches(This,pnumBitmapCaches) ) + +#define IMsRdpClientAdvancedSettings4_put_CachePersistenceActive(This,pcachePersistenceActive) \ + ( (This)->lpVtbl -> put_CachePersistenceActive(This,pcachePersistenceActive) ) + +#define IMsRdpClientAdvancedSettings4_get_CachePersistenceActive(This,pcachePersistenceActive) \ + ( (This)->lpVtbl -> get_CachePersistenceActive(This,pcachePersistenceActive) ) + +#define IMsRdpClientAdvancedSettings4_put_PersistCacheDirectory(This,rhs) \ + ( (This)->lpVtbl -> put_PersistCacheDirectory(This,rhs) ) + +#define IMsRdpClientAdvancedSettings4_put_brushSupportLevel(This,pbrushSupportLevel) \ + ( (This)->lpVtbl -> put_brushSupportLevel(This,pbrushSupportLevel) ) + +#define IMsRdpClientAdvancedSettings4_get_brushSupportLevel(This,pbrushSupportLevel) \ + ( (This)->lpVtbl -> get_brushSupportLevel(This,pbrushSupportLevel) ) + +#define IMsRdpClientAdvancedSettings4_put_minInputSendInterval(This,pminInputSendInterval) \ + ( (This)->lpVtbl -> put_minInputSendInterval(This,pminInputSendInterval) ) + +#define IMsRdpClientAdvancedSettings4_get_minInputSendInterval(This,pminInputSendInterval) \ + ( (This)->lpVtbl -> get_minInputSendInterval(This,pminInputSendInterval) ) + +#define IMsRdpClientAdvancedSettings4_put_InputEventsAtOnce(This,pinputEventsAtOnce) \ + ( (This)->lpVtbl -> put_InputEventsAtOnce(This,pinputEventsAtOnce) ) + +#define IMsRdpClientAdvancedSettings4_get_InputEventsAtOnce(This,pinputEventsAtOnce) \ + ( (This)->lpVtbl -> get_InputEventsAtOnce(This,pinputEventsAtOnce) ) + +#define IMsRdpClientAdvancedSettings4_put_maxEventCount(This,pmaxEventCount) \ + ( (This)->lpVtbl -> put_maxEventCount(This,pmaxEventCount) ) + +#define IMsRdpClientAdvancedSettings4_get_maxEventCount(This,pmaxEventCount) \ + ( (This)->lpVtbl -> get_maxEventCount(This,pmaxEventCount) ) + +#define IMsRdpClientAdvancedSettings4_put_keepAliveInterval(This,pkeepAliveInterval) \ + ( (This)->lpVtbl -> put_keepAliveInterval(This,pkeepAliveInterval) ) + +#define IMsRdpClientAdvancedSettings4_get_keepAliveInterval(This,pkeepAliveInterval) \ + ( (This)->lpVtbl -> get_keepAliveInterval(This,pkeepAliveInterval) ) + +#define IMsRdpClientAdvancedSettings4_put_shutdownTimeout(This,pshutdownTimeout) \ + ( (This)->lpVtbl -> put_shutdownTimeout(This,pshutdownTimeout) ) + +#define IMsRdpClientAdvancedSettings4_get_shutdownTimeout(This,pshutdownTimeout) \ + ( (This)->lpVtbl -> get_shutdownTimeout(This,pshutdownTimeout) ) + +#define IMsRdpClientAdvancedSettings4_put_overallConnectionTimeout(This,poverallConnectionTimeout) \ + ( (This)->lpVtbl -> put_overallConnectionTimeout(This,poverallConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings4_get_overallConnectionTimeout(This,poverallConnectionTimeout) \ + ( (This)->lpVtbl -> get_overallConnectionTimeout(This,poverallConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings4_put_singleConnectionTimeout(This,psingleConnectionTimeout) \ + ( (This)->lpVtbl -> put_singleConnectionTimeout(This,psingleConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings4_get_singleConnectionTimeout(This,psingleConnectionTimeout) \ + ( (This)->lpVtbl -> get_singleConnectionTimeout(This,psingleConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings4_put_KeyboardType(This,pkeyboardType) \ + ( (This)->lpVtbl -> put_KeyboardType(This,pkeyboardType) ) + +#define IMsRdpClientAdvancedSettings4_get_KeyboardType(This,pkeyboardType) \ + ( (This)->lpVtbl -> get_KeyboardType(This,pkeyboardType) ) + +#define IMsRdpClientAdvancedSettings4_put_KeyboardSubType(This,pkeyboardSubType) \ + ( (This)->lpVtbl -> put_KeyboardSubType(This,pkeyboardSubType) ) + +#define IMsRdpClientAdvancedSettings4_get_KeyboardSubType(This,pkeyboardSubType) \ + ( (This)->lpVtbl -> get_KeyboardSubType(This,pkeyboardSubType) ) + +#define IMsRdpClientAdvancedSettings4_put_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ + ( (This)->lpVtbl -> put_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) + +#define IMsRdpClientAdvancedSettings4_get_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ + ( (This)->lpVtbl -> get_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) + +#define IMsRdpClientAdvancedSettings4_put_WinceFixedPalette(This,pwinceFixedPalette) \ + ( (This)->lpVtbl -> put_WinceFixedPalette(This,pwinceFixedPalette) ) + +#define IMsRdpClientAdvancedSettings4_get_WinceFixedPalette(This,pwinceFixedPalette) \ + ( (This)->lpVtbl -> get_WinceFixedPalette(This,pwinceFixedPalette) ) + +#define IMsRdpClientAdvancedSettings4_put_ConnectToServerConsole(This,pConnectToConsole) \ + ( (This)->lpVtbl -> put_ConnectToServerConsole(This,pConnectToConsole) ) + +#define IMsRdpClientAdvancedSettings4_get_ConnectToServerConsole(This,pConnectToConsole) \ + ( (This)->lpVtbl -> get_ConnectToServerConsole(This,pConnectToConsole) ) + +#define IMsRdpClientAdvancedSettings4_put_BitmapPersistence(This,pbitmapPersistence) \ + ( (This)->lpVtbl -> put_BitmapPersistence(This,pbitmapPersistence) ) + +#define IMsRdpClientAdvancedSettings4_get_BitmapPersistence(This,pbitmapPersistence) \ + ( (This)->lpVtbl -> get_BitmapPersistence(This,pbitmapPersistence) ) + +#define IMsRdpClientAdvancedSettings4_put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ + ( (This)->lpVtbl -> put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) + +#define IMsRdpClientAdvancedSettings4_get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ + ( (This)->lpVtbl -> get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) + +#define IMsRdpClientAdvancedSettings4_put_SmartSizing(This,pfSmartSizing) \ + ( (This)->lpVtbl -> put_SmartSizing(This,pfSmartSizing) ) + +#define IMsRdpClientAdvancedSettings4_get_SmartSizing(This,pfSmartSizing) \ + ( (This)->lpVtbl -> get_SmartSizing(This,pfSmartSizing) ) + +#define IMsRdpClientAdvancedSettings4_put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ + ( (This)->lpVtbl -> put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) + +#define IMsRdpClientAdvancedSettings4_get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ + ( (This)->lpVtbl -> get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) + +#define IMsRdpClientAdvancedSettings4_put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ + ( (This)->lpVtbl -> put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) + +#define IMsRdpClientAdvancedSettings4_get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ + ( (This)->lpVtbl -> get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) + +#define IMsRdpClientAdvancedSettings4_put_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ + ( (This)->lpVtbl -> put_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) + +#define IMsRdpClientAdvancedSettings4_get_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ + ( (This)->lpVtbl -> get_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) + +#define IMsRdpClientAdvancedSettings4_put_ClearTextPassword(This,rhs) \ + ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) + +#define IMsRdpClientAdvancedSettings4_put_DisplayConnectionBar(This,pDisplayConnectionBar) \ + ( (This)->lpVtbl -> put_DisplayConnectionBar(This,pDisplayConnectionBar) ) + +#define IMsRdpClientAdvancedSettings4_get_DisplayConnectionBar(This,pDisplayConnectionBar) \ + ( (This)->lpVtbl -> get_DisplayConnectionBar(This,pDisplayConnectionBar) ) + +#define IMsRdpClientAdvancedSettings4_put_PinConnectionBar(This,pPinConnectionBar) \ + ( (This)->lpVtbl -> put_PinConnectionBar(This,pPinConnectionBar) ) + +#define IMsRdpClientAdvancedSettings4_get_PinConnectionBar(This,pPinConnectionBar) \ + ( (This)->lpVtbl -> get_PinConnectionBar(This,pPinConnectionBar) ) + +#define IMsRdpClientAdvancedSettings4_put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ + ( (This)->lpVtbl -> put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) + +#define IMsRdpClientAdvancedSettings4_get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ + ( (This)->lpVtbl -> get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) + +#define IMsRdpClientAdvancedSettings4_put_LoadBalanceInfo(This,pLBInfo) \ + ( (This)->lpVtbl -> put_LoadBalanceInfo(This,pLBInfo) ) + +#define IMsRdpClientAdvancedSettings4_get_LoadBalanceInfo(This,pLBInfo) \ + ( (This)->lpVtbl -> get_LoadBalanceInfo(This,pLBInfo) ) + +#define IMsRdpClientAdvancedSettings4_put_RedirectDrives(This,pRedirectDrives) \ + ( (This)->lpVtbl -> put_RedirectDrives(This,pRedirectDrives) ) + +#define IMsRdpClientAdvancedSettings4_get_RedirectDrives(This,pRedirectDrives) \ + ( (This)->lpVtbl -> get_RedirectDrives(This,pRedirectDrives) ) + +#define IMsRdpClientAdvancedSettings4_put_RedirectPrinters(This,pRedirectPrinters) \ + ( (This)->lpVtbl -> put_RedirectPrinters(This,pRedirectPrinters) ) + +#define IMsRdpClientAdvancedSettings4_get_RedirectPrinters(This,pRedirectPrinters) \ + ( (This)->lpVtbl -> get_RedirectPrinters(This,pRedirectPrinters) ) + +#define IMsRdpClientAdvancedSettings4_put_RedirectPorts(This,pRedirectPorts) \ + ( (This)->lpVtbl -> put_RedirectPorts(This,pRedirectPorts) ) + +#define IMsRdpClientAdvancedSettings4_get_RedirectPorts(This,pRedirectPorts) \ + ( (This)->lpVtbl -> get_RedirectPorts(This,pRedirectPorts) ) + +#define IMsRdpClientAdvancedSettings4_put_RedirectSmartCards(This,pRedirectSmartCards) \ + ( (This)->lpVtbl -> put_RedirectSmartCards(This,pRedirectSmartCards) ) + +#define IMsRdpClientAdvancedSettings4_get_RedirectSmartCards(This,pRedirectSmartCards) \ + ( (This)->lpVtbl -> get_RedirectSmartCards(This,pRedirectSmartCards) ) + +#define IMsRdpClientAdvancedSettings4_put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ + ( (This)->lpVtbl -> put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) + +#define IMsRdpClientAdvancedSettings4_get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ + ( (This)->lpVtbl -> get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) + +#define IMsRdpClientAdvancedSettings4_put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ + ( (This)->lpVtbl -> put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) + +#define IMsRdpClientAdvancedSettings4_get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ + ( (This)->lpVtbl -> get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) + +#define IMsRdpClientAdvancedSettings4_put_PerformanceFlags(This,pDisableList) \ + ( (This)->lpVtbl -> put_PerformanceFlags(This,pDisableList) ) + +#define IMsRdpClientAdvancedSettings4_get_PerformanceFlags(This,pDisableList) \ + ( (This)->lpVtbl -> get_PerformanceFlags(This,pDisableList) ) + +#define IMsRdpClientAdvancedSettings4_put_ConnectWithEndpoint(This,rhs) \ + ( (This)->lpVtbl -> put_ConnectWithEndpoint(This,rhs) ) + +#define IMsRdpClientAdvancedSettings4_put_NotifyTSPublicKey(This,pfNotify) \ + ( (This)->lpVtbl -> put_NotifyTSPublicKey(This,pfNotify) ) + +#define IMsRdpClientAdvancedSettings4_get_NotifyTSPublicKey(This,pfNotify) \ + ( (This)->lpVtbl -> get_NotifyTSPublicKey(This,pfNotify) ) + + +#define IMsRdpClientAdvancedSettings4_get_CanAutoReconnect(This,pfCanAutoReconnect) \ + ( (This)->lpVtbl -> get_CanAutoReconnect(This,pfCanAutoReconnect) ) + +#define IMsRdpClientAdvancedSettings4_put_EnableAutoReconnect(This,pfEnableAutoReconnect) \ + ( (This)->lpVtbl -> put_EnableAutoReconnect(This,pfEnableAutoReconnect) ) + +#define IMsRdpClientAdvancedSettings4_get_EnableAutoReconnect(This,pfEnableAutoReconnect) \ + ( (This)->lpVtbl -> get_EnableAutoReconnect(This,pfEnableAutoReconnect) ) + +#define IMsRdpClientAdvancedSettings4_put_MaxReconnectAttempts(This,pMaxReconnectAttempts) \ + ( (This)->lpVtbl -> put_MaxReconnectAttempts(This,pMaxReconnectAttempts) ) + +#define IMsRdpClientAdvancedSettings4_get_MaxReconnectAttempts(This,pMaxReconnectAttempts) \ + ( (This)->lpVtbl -> get_MaxReconnectAttempts(This,pMaxReconnectAttempts) ) + + +#define IMsRdpClientAdvancedSettings4_put_ConnectionBarShowMinimizeButton(This,pfShowMinimize) \ + ( (This)->lpVtbl -> put_ConnectionBarShowMinimizeButton(This,pfShowMinimize) ) + +#define IMsRdpClientAdvancedSettings4_get_ConnectionBarShowMinimizeButton(This,pfShowMinimize) \ + ( (This)->lpVtbl -> get_ConnectionBarShowMinimizeButton(This,pfShowMinimize) ) + +#define IMsRdpClientAdvancedSettings4_put_ConnectionBarShowRestoreButton(This,pfShowRestore) \ + ( (This)->lpVtbl -> put_ConnectionBarShowRestoreButton(This,pfShowRestore) ) + +#define IMsRdpClientAdvancedSettings4_get_ConnectionBarShowRestoreButton(This,pfShowRestore) \ + ( (This)->lpVtbl -> get_ConnectionBarShowRestoreButton(This,pfShowRestore) ) + + +#define IMsRdpClientAdvancedSettings4_put_AuthenticationLevel(This,puiAuthLevel) \ + ( (This)->lpVtbl -> put_AuthenticationLevel(This,puiAuthLevel) ) + +#define IMsRdpClientAdvancedSettings4_get_AuthenticationLevel(This,puiAuthLevel) \ + ( (This)->lpVtbl -> get_AuthenticationLevel(This,puiAuthLevel) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings4_put_AuthenticationLevel_Proxy( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ unsigned int puiAuthLevel); + + +void __RPC_STUB IMsRdpClientAdvancedSettings4_put_AuthenticationLevel_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings4_get_AuthenticationLevel_Proxy( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ unsigned int *puiAuthLevel); + + +void __RPC_STUB IMsRdpClientAdvancedSettings4_get_AuthenticationLevel_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __IMsRdpClientAdvancedSettings4_INTERFACE_DEFINED__ */ + + +#ifndef __IMsTscSecuredSettings_INTERFACE_DEFINED__ +#define __IMsTscSecuredSettings_INTERFACE_DEFINED__ + +/* interface IMsTscSecuredSettings */ +/* [object][oleautomation][dual][uuid] */ + + +EXTERN_C const IID IID_IMsTscSecuredSettings; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("C9D65442-A0F9-45B2-8F73-D61D2DB8CBB6") + IMsTscSecuredSettings : public IDispatch + { + public: + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_StartProgram( + /* [in] */ BSTR pStartProgram) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_StartProgram( + /* [retval][out] */ BSTR *pStartProgram) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_WorkDir( + /* [in] */ BSTR pWorkDir) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_WorkDir( + /* [retval][out] */ BSTR *pWorkDir) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_FullScreen( + /* [in] */ long pfFullScreen) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_FullScreen( + /* [retval][out] */ long *pfFullScreen) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsTscSecuredSettingsVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsTscSecuredSettings * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsTscSecuredSettings * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsTscSecuredSettings * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsTscSecuredSettings * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsTscSecuredSettings * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsTscSecuredSettings * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsTscSecuredSettings * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartProgram )( + IMsTscSecuredSettings * This, + /* [in] */ BSTR pStartProgram); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartProgram )( + IMsTscSecuredSettings * This, + /* [retval][out] */ BSTR *pStartProgram); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WorkDir )( + IMsTscSecuredSettings * This, + /* [in] */ BSTR pWorkDir); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WorkDir )( + IMsTscSecuredSettings * This, + /* [retval][out] */ BSTR *pWorkDir); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )( + IMsTscSecuredSettings * This, + /* [in] */ long pfFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )( + IMsTscSecuredSettings * This, + /* [retval][out] */ long *pfFullScreen); + + END_INTERFACE + } IMsTscSecuredSettingsVtbl; + + interface IMsTscSecuredSettings + { + CONST_VTBL struct IMsTscSecuredSettingsVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsTscSecuredSettings_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsTscSecuredSettings_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsTscSecuredSettings_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsTscSecuredSettings_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsTscSecuredSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsTscSecuredSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsTscSecuredSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IMsTscSecuredSettings_put_StartProgram(This,pStartProgram) \ + ( (This)->lpVtbl -> put_StartProgram(This,pStartProgram) ) + +#define IMsTscSecuredSettings_get_StartProgram(This,pStartProgram) \ + ( (This)->lpVtbl -> get_StartProgram(This,pStartProgram) ) + +#define IMsTscSecuredSettings_put_WorkDir(This,pWorkDir) \ + ( (This)->lpVtbl -> put_WorkDir(This,pWorkDir) ) + +#define IMsTscSecuredSettings_get_WorkDir(This,pWorkDir) \ + ( (This)->lpVtbl -> get_WorkDir(This,pWorkDir) ) + +#define IMsTscSecuredSettings_put_FullScreen(This,pfFullScreen) \ + ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) ) + +#define IMsTscSecuredSettings_get_FullScreen(This,pfFullScreen) \ + ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IMsTscSecuredSettings_INTERFACE_DEFINED__ */ + + +#ifndef __IMsRdpClientSecuredSettings_INTERFACE_DEFINED__ +#define __IMsRdpClientSecuredSettings_INTERFACE_DEFINED__ + +/* interface IMsRdpClientSecuredSettings */ +/* [object][oleautomation][dual][uuid] */ + + +EXTERN_C const IID IID_IMsRdpClientSecuredSettings; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("605BEFCF-39C1-45CC-A811-068FB7BE346D") + IMsRdpClientSecuredSettings : public IMsTscSecuredSettings + { + public: + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_KeyboardHookMode( + /* [in] */ long pkeyboardHookMode) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_KeyboardHookMode( + /* [retval][out] */ long *pkeyboardHookMode) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_AudioRedirectionMode( + /* [in] */ long pAudioRedirectionMode) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AudioRedirectionMode( + /* [retval][out] */ long *pAudioRedirectionMode) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsRdpClientSecuredSettingsVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsRdpClientSecuredSettings * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsRdpClientSecuredSettings * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsRdpClientSecuredSettings * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsRdpClientSecuredSettings * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsRdpClientSecuredSettings * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsRdpClientSecuredSettings * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsRdpClientSecuredSettings * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartProgram )( + IMsRdpClientSecuredSettings * This, + /* [in] */ BSTR pStartProgram); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartProgram )( + IMsRdpClientSecuredSettings * This, + /* [retval][out] */ BSTR *pStartProgram); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WorkDir )( + IMsRdpClientSecuredSettings * This, + /* [in] */ BSTR pWorkDir); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WorkDir )( + IMsRdpClientSecuredSettings * This, + /* [retval][out] */ BSTR *pWorkDir); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )( + IMsRdpClientSecuredSettings * This, + /* [in] */ long pfFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )( + IMsRdpClientSecuredSettings * This, + /* [retval][out] */ long *pfFullScreen); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardHookMode )( + IMsRdpClientSecuredSettings * This, + /* [in] */ long pkeyboardHookMode); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardHookMode )( + IMsRdpClientSecuredSettings * This, + /* [retval][out] */ long *pkeyboardHookMode); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AudioRedirectionMode )( + IMsRdpClientSecuredSettings * This, + /* [in] */ long pAudioRedirectionMode); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AudioRedirectionMode )( + IMsRdpClientSecuredSettings * This, + /* [retval][out] */ long *pAudioRedirectionMode); + + END_INTERFACE + } IMsRdpClientSecuredSettingsVtbl; + + interface IMsRdpClientSecuredSettings + { + CONST_VTBL struct IMsRdpClientSecuredSettingsVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsRdpClientSecuredSettings_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsRdpClientSecuredSettings_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsRdpClientSecuredSettings_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsRdpClientSecuredSettings_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsRdpClientSecuredSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsRdpClientSecuredSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsRdpClientSecuredSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IMsRdpClientSecuredSettings_put_StartProgram(This,pStartProgram) \ + ( (This)->lpVtbl -> put_StartProgram(This,pStartProgram) ) + +#define IMsRdpClientSecuredSettings_get_StartProgram(This,pStartProgram) \ + ( (This)->lpVtbl -> get_StartProgram(This,pStartProgram) ) + +#define IMsRdpClientSecuredSettings_put_WorkDir(This,pWorkDir) \ + ( (This)->lpVtbl -> put_WorkDir(This,pWorkDir) ) + +#define IMsRdpClientSecuredSettings_get_WorkDir(This,pWorkDir) \ + ( (This)->lpVtbl -> get_WorkDir(This,pWorkDir) ) + +#define IMsRdpClientSecuredSettings_put_FullScreen(This,pfFullScreen) \ + ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) ) + +#define IMsRdpClientSecuredSettings_get_FullScreen(This,pfFullScreen) \ + ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) ) + + +#define IMsRdpClientSecuredSettings_put_KeyboardHookMode(This,pkeyboardHookMode) \ + ( (This)->lpVtbl -> put_KeyboardHookMode(This,pkeyboardHookMode) ) + +#define IMsRdpClientSecuredSettings_get_KeyboardHookMode(This,pkeyboardHookMode) \ + ( (This)->lpVtbl -> get_KeyboardHookMode(This,pkeyboardHookMode) ) + +#define IMsRdpClientSecuredSettings_put_AudioRedirectionMode(This,pAudioRedirectionMode) \ + ( (This)->lpVtbl -> put_AudioRedirectionMode(This,pAudioRedirectionMode) ) + +#define IMsRdpClientSecuredSettings_get_AudioRedirectionMode(This,pAudioRedirectionMode) \ + ( (This)->lpVtbl -> get_AudioRedirectionMode(This,pAudioRedirectionMode) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IMsRdpClientSecuredSettings_INTERFACE_DEFINED__ */ + + +#ifndef __IMsTscDebug_INTERFACE_DEFINED__ +#define __IMsTscDebug_INTERFACE_DEFINED__ + +/* interface IMsTscDebug */ +/* [object][oleautomation][dual][hidden][uuid] */ + + +EXTERN_C const IID IID_IMsTscDebug; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("209D0EB9-6254-47B1-9033-A98DAE55BB27") + IMsTscDebug : public IDispatch + { + public: + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HatchBitmapPDU( + /* [in] */ long phatchBitmapPDU) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HatchBitmapPDU( + /* [retval][out] */ long *phatchBitmapPDU) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HatchSSBOrder( + /* [in] */ long phatchSSBOrder) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HatchSSBOrder( + /* [retval][out] */ long *phatchSSBOrder) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HatchMembltOrder( + /* [in] */ long phatchMembltOrder) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HatchMembltOrder( + /* [retval][out] */ long *phatchMembltOrder) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HatchIndexPDU( + /* [in] */ long phatchIndexPDU) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HatchIndexPDU( + /* [retval][out] */ long *phatchIndexPDU) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_LabelMemblt( + /* [in] */ long plabelMemblt) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_LabelMemblt( + /* [retval][out] */ long *plabelMemblt) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapCacheMonitor( + /* [in] */ long pbitmapCacheMonitor) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapCacheMonitor( + /* [retval][out] */ long *pbitmapCacheMonitor) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_MallocFailuresPercent( + /* [in] */ long pmallocFailuresPercent) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_MallocFailuresPercent( + /* [retval][out] */ long *pmallocFailuresPercent) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_MallocHugeFailuresPercent( + /* [in] */ long pmallocHugeFailuresPercent) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_MallocHugeFailuresPercent( + /* [retval][out] */ long *pmallocHugeFailuresPercent) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_NetThroughput( + /* [in] */ long NetThroughput) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_NetThroughput( + /* [retval][out] */ long *NetThroughput) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_CLXCmdLine( + /* [in] */ BSTR pCLXCmdLine) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CLXCmdLine( + /* [retval][out] */ BSTR *pCLXCmdLine) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_CLXDll( + /* [in] */ BSTR pCLXDll) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CLXDll( + /* [retval][out] */ BSTR *pCLXDll) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsTscDebugVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsTscDebug * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsTscDebug * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsTscDebug * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsTscDebug * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsTscDebug * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsTscDebug * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsTscDebug * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HatchBitmapPDU )( + IMsTscDebug * This, + /* [in] */ long phatchBitmapPDU); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HatchBitmapPDU )( + IMsTscDebug * This, + /* [retval][out] */ long *phatchBitmapPDU); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HatchSSBOrder )( + IMsTscDebug * This, + /* [in] */ long phatchSSBOrder); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HatchSSBOrder )( + IMsTscDebug * This, + /* [retval][out] */ long *phatchSSBOrder); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HatchMembltOrder )( + IMsTscDebug * This, + /* [in] */ long phatchMembltOrder); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HatchMembltOrder )( + IMsTscDebug * This, + /* [retval][out] */ long *phatchMembltOrder); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HatchIndexPDU )( + IMsTscDebug * This, + /* [in] */ long phatchIndexPDU); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HatchIndexPDU )( + IMsTscDebug * This, + /* [retval][out] */ long *phatchIndexPDU); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LabelMemblt )( + IMsTscDebug * This, + /* [in] */ long plabelMemblt); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LabelMemblt )( + IMsTscDebug * This, + /* [retval][out] */ long *plabelMemblt); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapCacheMonitor )( + IMsTscDebug * This, + /* [in] */ long pbitmapCacheMonitor); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapCacheMonitor )( + IMsTscDebug * This, + /* [retval][out] */ long *pbitmapCacheMonitor); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MallocFailuresPercent )( + IMsTscDebug * This, + /* [in] */ long pmallocFailuresPercent); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MallocFailuresPercent )( + IMsTscDebug * This, + /* [retval][out] */ long *pmallocFailuresPercent); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MallocHugeFailuresPercent )( + IMsTscDebug * This, + /* [in] */ long pmallocHugeFailuresPercent); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MallocHugeFailuresPercent )( + IMsTscDebug * This, + /* [retval][out] */ long *pmallocHugeFailuresPercent); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NetThroughput )( + IMsTscDebug * This, + /* [in] */ long NetThroughput); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NetThroughput )( + IMsTscDebug * This, + /* [retval][out] */ long *NetThroughput); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CLXCmdLine )( + IMsTscDebug * This, + /* [in] */ BSTR pCLXCmdLine); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CLXCmdLine )( + IMsTscDebug * This, + /* [retval][out] */ BSTR *pCLXCmdLine); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CLXDll )( + IMsTscDebug * This, + /* [in] */ BSTR pCLXDll); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CLXDll )( + IMsTscDebug * This, + /* [retval][out] */ BSTR *pCLXDll); + + END_INTERFACE + } IMsTscDebugVtbl; + + interface IMsTscDebug + { + CONST_VTBL struct IMsTscDebugVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsTscDebug_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsTscDebug_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsTscDebug_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsTscDebug_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsTscDebug_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsTscDebug_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsTscDebug_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IMsTscDebug_put_HatchBitmapPDU(This,phatchBitmapPDU) \ + ( (This)->lpVtbl -> put_HatchBitmapPDU(This,phatchBitmapPDU) ) + +#define IMsTscDebug_get_HatchBitmapPDU(This,phatchBitmapPDU) \ + ( (This)->lpVtbl -> get_HatchBitmapPDU(This,phatchBitmapPDU) ) + +#define IMsTscDebug_put_HatchSSBOrder(This,phatchSSBOrder) \ + ( (This)->lpVtbl -> put_HatchSSBOrder(This,phatchSSBOrder) ) + +#define IMsTscDebug_get_HatchSSBOrder(This,phatchSSBOrder) \ + ( (This)->lpVtbl -> get_HatchSSBOrder(This,phatchSSBOrder) ) + +#define IMsTscDebug_put_HatchMembltOrder(This,phatchMembltOrder) \ + ( (This)->lpVtbl -> put_HatchMembltOrder(This,phatchMembltOrder) ) + +#define IMsTscDebug_get_HatchMembltOrder(This,phatchMembltOrder) \ + ( (This)->lpVtbl -> get_HatchMembltOrder(This,phatchMembltOrder) ) + +#define IMsTscDebug_put_HatchIndexPDU(This,phatchIndexPDU) \ + ( (This)->lpVtbl -> put_HatchIndexPDU(This,phatchIndexPDU) ) + +#define IMsTscDebug_get_HatchIndexPDU(This,phatchIndexPDU) \ + ( (This)->lpVtbl -> get_HatchIndexPDU(This,phatchIndexPDU) ) + +#define IMsTscDebug_put_LabelMemblt(This,plabelMemblt) \ + ( (This)->lpVtbl -> put_LabelMemblt(This,plabelMemblt) ) + +#define IMsTscDebug_get_LabelMemblt(This,plabelMemblt) \ + ( (This)->lpVtbl -> get_LabelMemblt(This,plabelMemblt) ) + +#define IMsTscDebug_put_BitmapCacheMonitor(This,pbitmapCacheMonitor) \ + ( (This)->lpVtbl -> put_BitmapCacheMonitor(This,pbitmapCacheMonitor) ) + +#define IMsTscDebug_get_BitmapCacheMonitor(This,pbitmapCacheMonitor) \ + ( (This)->lpVtbl -> get_BitmapCacheMonitor(This,pbitmapCacheMonitor) ) + +#define IMsTscDebug_put_MallocFailuresPercent(This,pmallocFailuresPercent) \ + ( (This)->lpVtbl -> put_MallocFailuresPercent(This,pmallocFailuresPercent) ) + +#define IMsTscDebug_get_MallocFailuresPercent(This,pmallocFailuresPercent) \ + ( (This)->lpVtbl -> get_MallocFailuresPercent(This,pmallocFailuresPercent) ) + +#define IMsTscDebug_put_MallocHugeFailuresPercent(This,pmallocHugeFailuresPercent) \ + ( (This)->lpVtbl -> put_MallocHugeFailuresPercent(This,pmallocHugeFailuresPercent) ) + +#define IMsTscDebug_get_MallocHugeFailuresPercent(This,pmallocHugeFailuresPercent) \ + ( (This)->lpVtbl -> get_MallocHugeFailuresPercent(This,pmallocHugeFailuresPercent) ) + +#define IMsTscDebug_put_NetThroughput(This,NetThroughput) \ + ( (This)->lpVtbl -> put_NetThroughput(This,NetThroughput) ) + +#define IMsTscDebug_get_NetThroughput(This,NetThroughput) \ + ( (This)->lpVtbl -> get_NetThroughput(This,NetThroughput) ) + +#define IMsTscDebug_put_CLXCmdLine(This,pCLXCmdLine) \ + ( (This)->lpVtbl -> put_CLXCmdLine(This,pCLXCmdLine) ) + +#define IMsTscDebug_get_CLXCmdLine(This,pCLXCmdLine) \ + ( (This)->lpVtbl -> get_CLXCmdLine(This,pCLXCmdLine) ) + +#define IMsTscDebug_put_CLXDll(This,pCLXDll) \ + ( (This)->lpVtbl -> put_CLXDll(This,pCLXDll) ) + +#define IMsTscDebug_get_CLXDll(This,pCLXDll) \ + ( (This)->lpVtbl -> get_CLXDll(This,pCLXDll) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IMsTscDebug_INTERFACE_DEFINED__ */ + + +EXTERN_C const CLSID CLSID_MsTscAx; + +#ifdef __cplusplus + +class DECLSPEC_UUID("A41A4187-5A86-4E26-B40A-856F9035D9CB") +MsTscAx; +#endif + +EXTERN_C const CLSID CLSID_MsRdpClient; + +#ifdef __cplusplus + +class DECLSPEC_UUID("7CACBD7B-0D99-468F-AC33-22E495C0AFE5") +MsRdpClient; +#endif + +EXTERN_C const CLSID CLSID_MsRdpClient2; + +#ifdef __cplusplus + +class DECLSPEC_UUID("3523C2FB-4031-44E4-9A3B-F1E94986EE7F") +MsRdpClient2; +#endif + +EXTERN_C const CLSID CLSID_MsRdpClient3; + +#ifdef __cplusplus + +class DECLSPEC_UUID("ACE575FD-1FCF-4074-9401-EBAB990FA9DE") +MsRdpClient3; +#endif + +EXTERN_C const CLSID CLSID_MsRdpClient4; + +#ifdef __cplusplus + +class DECLSPEC_UUID("6AE29350-321B-42BE-BBE5-12FB5270C0DE") +MsRdpClient4; +#endif +#endif /* __MSTSCLib_LIBRARY_DEFINED__ */ + +/* Additional Prototypes for ALL interfaces */ + +/* end of Additional Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif + + diff --git a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_i.c b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_i.c index 60a812a56c1..d156c796787 100644 --- a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_i.c +++ b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_i.c @@ -1,145 +1,145 @@ - - -/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ - -/* link this file in with the server and any clients */ - - - /* File created by MIDL compiler version 7.00.0493 */ -/* at Sun Aug 13 16:46:06 2006 - */ -/* Compiler settings for .\mstsclib.idl: - Oicf, W1, Zp8, env=Win32 (32b run) - protocol : dce , ms_ext, c_ext, robust - error checks: allocation ref bounds_check enum stub_data - VC __declspec() decoration level: - __declspec(uuid()), __declspec(selectany), __declspec(novtable) - DECLSPEC_UUID(), MIDL_INTERFACE() -*/ -//@@MIDL_FILE_HEADING( ) - -#pragma warning( disable: 4049 ) /* more than 64k source lines */ - - -#ifdef __cplusplus -extern "C"{ -#endif - - -#include -#include - -#ifdef _MIDL_USE_GUIDDEF_ - -#ifndef INITGUID -#define INITGUID -#include -#undef INITGUID -#else -#include -#endif - -#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ - DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) - -#else // !_MIDL_USE_GUIDDEF_ - -#ifndef __IID_DEFINED__ -#define __IID_DEFINED__ - -typedef struct _IID -{ - unsigned long x; - unsigned short s1; - unsigned short s2; - unsigned char c[8]; -} IID; - -#endif // __IID_DEFINED__ - -#ifndef CLSID_DEFINED -#define CLSID_DEFINED -typedef IID CLSID; -#endif // CLSID_DEFINED - -#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ - const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} - -#endif !_MIDL_USE_GUIDDEF_ - -MIDL_DEFINE_GUID(IID, LIBID_MSTSCLib,0x8C11EFA1,0x92C3,0x11D1,0xBC,0x1E,0x00,0xC0,0x4F,0xA3,0x14,0x89); - - -MIDL_DEFINE_GUID(IID, DIID_IMsTscAxEvents,0x336D5562,0xEFA8,0x482E,0x8C,0xB3,0xC5,0xC0,0xFC,0x7A,0x7D,0xB6); - - -MIDL_DEFINE_GUID(IID, IID_IMsTscAx,0x8C11EFAE,0x92C3,0x11D1,0xBC,0x1E,0x00,0xC0,0x4F,0xA3,0x14,0x89); - - -MIDL_DEFINE_GUID(IID, IID_IMsRdpClient,0x92B4A539,0x7115,0x4B7C,0xA5,0xA9,0xE5,0xD9,0xEF,0xC2,0x78,0x0A); - - -MIDL_DEFINE_GUID(IID, IID_IMsRdpClient2,0xE7E17DC4,0x3B71,0x4BA7,0xA8,0xE6,0x28,0x1F,0xFA,0xDC,0xA2,0x8F); - - -MIDL_DEFINE_GUID(IID, IID_IMsRdpClient3,0x91B7CBC5,0xA72E,0x4FA0,0x93,0x00,0xD6,0x47,0xD7,0xE8,0x97,0xFF); - - -MIDL_DEFINE_GUID(IID, IID_IMsRdpClient4,0x095E0738,0xD97D,0x488B,0xB9,0xF6,0xDD,0x0E,0x8D,0x66,0xC0,0xDE); - - -MIDL_DEFINE_GUID(IID, IID_IMsTscNonScriptable,0xC1E6743A,0x41C1,0x4A74,0x83,0x2A,0x0D,0xD0,0x6C,0x1C,0x7A,0x0E); - - -MIDL_DEFINE_GUID(IID, IID_IMsRdpClientNonScriptable,0x2F079C4C,0x87B2,0x4AFD,0x97,0xAB,0x20,0xCD,0xB4,0x30,0x38,0xAE); - - -MIDL_DEFINE_GUID(IID, IID_IMsRdpClientNonScriptable2,0x17A5E535,0x4072,0x4FA4,0xAF,0x32,0xC8,0xD0,0xD4,0x73,0x45,0xE9); - - -MIDL_DEFINE_GUID(IID, IID_IMsTscAdvancedSettings,0x809945CC,0x4B3B,0x4A92,0xA6,0xB0,0xDB,0xF9,0xB5,0xF2,0xEF,0x2D); - - -MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings,0x3C65B4AB,0x12B3,0x465B,0xAC,0xD4,0xB8,0xDA,0xD3,0xBF,0xF9,0xE2); - - -MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings2,0x9AC42117,0x2B76,0x4320,0xAA,0x44,0x0E,0x61,0x6A,0xB8,0x43,0x7B); - - -MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings3,0x19CD856B,0xC542,0x4C53,0xAC,0xEE,0xF1,0x27,0xE3,0xBE,0x1A,0x59); - - -MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings4,0xFBA7F64E,0x7345,0x4405,0xAE,0x50,0xFA,0x4A,0x76,0x3D,0xC0,0xDE); - - -MIDL_DEFINE_GUID(IID, IID_IMsTscSecuredSettings,0xC9D65442,0xA0F9,0x45B2,0x8F,0x73,0xD6,0x1D,0x2D,0xB8,0xCB,0xB6); - - -MIDL_DEFINE_GUID(IID, IID_IMsRdpClientSecuredSettings,0x605BEFCF,0x39C1,0x45CC,0xA8,0x11,0x06,0x8F,0xB7,0xBE,0x34,0x6D); - - -MIDL_DEFINE_GUID(IID, IID_IMsTscDebug,0x209D0EB9,0x6254,0x47B1,0x90,0x33,0xA9,0x8D,0xAE,0x55,0xBB,0x27); - - -MIDL_DEFINE_GUID(CLSID, CLSID_MsTscAx,0xA41A4187,0x5A86,0x4E26,0xB4,0x0A,0x85,0x6F,0x90,0x35,0xD9,0xCB); - - -MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient,0x7CACBD7B,0x0D99,0x468F,0xAC,0x33,0x22,0xE4,0x95,0xC0,0xAF,0xE5); - - -MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient2,0x3523C2FB,0x4031,0x44E4,0x9A,0x3B,0xF1,0xE9,0x49,0x86,0xEE,0x7F); - - -MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient3,0xACE575FD,0x1FCF,0x4074,0x94,0x01,0xEB,0xAB,0x99,0x0F,0xA9,0xDE); - - -MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient4,0x6AE29350,0x321B,0x42BE,0xBB,0xE5,0x12,0xFB,0x52,0x70,0xC0,0xDE); - -#undef MIDL_DEFINE_GUID - -#ifdef __cplusplus -} -#endif - - - + + +/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ + +/* link this file in with the server and any clients */ + + + /* File created by MIDL compiler version 7.00.0493 */ +/* at Sun Aug 13 16:46:06 2006 + */ +/* Compiler settings for .\mstsclib.idl: + Oicf, W1, Zp8, env=Win32 (32b run) + protocol : dce , ms_ext, c_ext, robust + error checks: allocation ref bounds_check enum stub_data + VC __declspec() decoration level: + __declspec(uuid()), __declspec(selectany), __declspec(novtable) + DECLSPEC_UUID(), MIDL_INTERFACE() +*/ +//@@MIDL_FILE_HEADING( ) + +#pragma warning( disable: 4049 ) /* more than 64k source lines */ + + +#ifdef __cplusplus +extern "C"{ +#endif + + +#include +#include + +#ifdef _MIDL_USE_GUIDDEF_ + +#ifndef INITGUID +#define INITGUID +#include +#undef INITGUID +#else +#include +#endif + +#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ + DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) + +#else // !_MIDL_USE_GUIDDEF_ + +#ifndef __IID_DEFINED__ +#define __IID_DEFINED__ + +typedef struct _IID +{ + unsigned long x; + unsigned short s1; + unsigned short s2; + unsigned char c[8]; +} IID; + +#endif // __IID_DEFINED__ + +#ifndef CLSID_DEFINED +#define CLSID_DEFINED +typedef IID CLSID; +#endif // CLSID_DEFINED + +#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ + const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} + +#endif !_MIDL_USE_GUIDDEF_ + +MIDL_DEFINE_GUID(IID, LIBID_MSTSCLib,0x8C11EFA1,0x92C3,0x11D1,0xBC,0x1E,0x00,0xC0,0x4F,0xA3,0x14,0x89); + + +MIDL_DEFINE_GUID(IID, DIID_IMsTscAxEvents,0x336D5562,0xEFA8,0x482E,0x8C,0xB3,0xC5,0xC0,0xFC,0x7A,0x7D,0xB6); + + +MIDL_DEFINE_GUID(IID, IID_IMsTscAx,0x8C11EFAE,0x92C3,0x11D1,0xBC,0x1E,0x00,0xC0,0x4F,0xA3,0x14,0x89); + + +MIDL_DEFINE_GUID(IID, IID_IMsRdpClient,0x92B4A539,0x7115,0x4B7C,0xA5,0xA9,0xE5,0xD9,0xEF,0xC2,0x78,0x0A); + + +MIDL_DEFINE_GUID(IID, IID_IMsRdpClient2,0xE7E17DC4,0x3B71,0x4BA7,0xA8,0xE6,0x28,0x1F,0xFA,0xDC,0xA2,0x8F); + + +MIDL_DEFINE_GUID(IID, IID_IMsRdpClient3,0x91B7CBC5,0xA72E,0x4FA0,0x93,0x00,0xD6,0x47,0xD7,0xE8,0x97,0xFF); + + +MIDL_DEFINE_GUID(IID, IID_IMsRdpClient4,0x095E0738,0xD97D,0x488B,0xB9,0xF6,0xDD,0x0E,0x8D,0x66,0xC0,0xDE); + + +MIDL_DEFINE_GUID(IID, IID_IMsTscNonScriptable,0xC1E6743A,0x41C1,0x4A74,0x83,0x2A,0x0D,0xD0,0x6C,0x1C,0x7A,0x0E); + + +MIDL_DEFINE_GUID(IID, IID_IMsRdpClientNonScriptable,0x2F079C4C,0x87B2,0x4AFD,0x97,0xAB,0x20,0xCD,0xB4,0x30,0x38,0xAE); + + +MIDL_DEFINE_GUID(IID, IID_IMsRdpClientNonScriptable2,0x17A5E535,0x4072,0x4FA4,0xAF,0x32,0xC8,0xD0,0xD4,0x73,0x45,0xE9); + + +MIDL_DEFINE_GUID(IID, IID_IMsTscAdvancedSettings,0x809945CC,0x4B3B,0x4A92,0xA6,0xB0,0xDB,0xF9,0xB5,0xF2,0xEF,0x2D); + + +MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings,0x3C65B4AB,0x12B3,0x465B,0xAC,0xD4,0xB8,0xDA,0xD3,0xBF,0xF9,0xE2); + + +MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings2,0x9AC42117,0x2B76,0x4320,0xAA,0x44,0x0E,0x61,0x6A,0xB8,0x43,0x7B); + + +MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings3,0x19CD856B,0xC542,0x4C53,0xAC,0xEE,0xF1,0x27,0xE3,0xBE,0x1A,0x59); + + +MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings4,0xFBA7F64E,0x7345,0x4405,0xAE,0x50,0xFA,0x4A,0x76,0x3D,0xC0,0xDE); + + +MIDL_DEFINE_GUID(IID, IID_IMsTscSecuredSettings,0xC9D65442,0xA0F9,0x45B2,0x8F,0x73,0xD6,0x1D,0x2D,0xB8,0xCB,0xB6); + + +MIDL_DEFINE_GUID(IID, IID_IMsRdpClientSecuredSettings,0x605BEFCF,0x39C1,0x45CC,0xA8,0x11,0x06,0x8F,0xB7,0xBE,0x34,0x6D); + + +MIDL_DEFINE_GUID(IID, IID_IMsTscDebug,0x209D0EB9,0x6254,0x47B1,0x90,0x33,0xA9,0x8D,0xAE,0x55,0xBB,0x27); + + +MIDL_DEFINE_GUID(CLSID, CLSID_MsTscAx,0xA41A4187,0x5A86,0x4E26,0xB4,0x0A,0x85,0x6F,0x90,0x35,0xD9,0xCB); + + +MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient,0x7CACBD7B,0x0D99,0x468F,0xAC,0x33,0x22,0xE4,0x95,0xC0,0xAF,0xE5); + + +MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient2,0x3523C2FB,0x4031,0x44E4,0x9A,0x3B,0xF1,0xE9,0x49,0x86,0xEE,0x7F); + + +MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient3,0xACE575FD,0x1FCF,0x4074,0x94,0x01,0xEB,0xAB,0x99,0x0F,0xA9,0xDE); + + +MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient4,0x6AE29350,0x321B,0x42BE,0xBB,0xE5,0x12,0xFB,0x52,0x70,0xC0,0xDE); + +#undef MIDL_DEFINE_GUID + +#ifdef __cplusplus +} +#endif + + + diff --git a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_redist.idl b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_redist.idl index 30348675903..8a2421bc5e5 100644 --- a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_redist.idl +++ b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_redist.idl @@ -1,3 +1,3 @@ -#define MSTSCLIB_REDIST_ -#include "./mstsclib.idl" -// EOF +#define MSTSCLIB_REDIST_ +#include "./mstsclib.idl" +// EOF diff --git a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_redist.rc b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_redist.rc index 3da452459e9..3cbb8ee6746 100644 --- a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_redist.rc +++ b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_redist.rc @@ -1,3 +1,3 @@ -#define TYPELIB_RESOURCEID__ 2 -#include "./typelib.rh" -// EOF +#define TYPELIB_RESOURCEID__ 2 +#include "./typelib.rh" +// EOF diff --git a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_redist_h.h b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_redist_h.h index dc1bc2da754..9e99f00309a 100644 --- a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_redist_h.h +++ b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_redist_h.h @@ -1,8946 +1,8946 @@ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 7.00.0493 */ -/* at Sun Aug 13 16:46:05 2006 - */ -/* Compiler settings for .\mstsclib_redist.idl: - Oicf, W1, Zp8, env=Win32 (32b run) - protocol : dce , ms_ext, c_ext, robust - error checks: allocation ref bounds_check enum stub_data - VC __declspec() decoration level: - __declspec(uuid()), __declspec(selectany), __declspec(novtable) - DECLSPEC_UUID(), MIDL_INTERFACE() -*/ -//@@MIDL_FILE_HEADING( ) - -#pragma warning( disable: 4049 ) /* more than 64k source lines */ - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 475 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif // __RPCNDR_H_VERSION__ - - -#ifndef __mstsclib_redist_h_h__ -#define __mstsclib_redist_h_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __IMsTscAxEvents_FWD_DEFINED__ -#define __IMsTscAxEvents_FWD_DEFINED__ -typedef interface IMsTscAxEvents IMsTscAxEvents; -#endif /* __IMsTscAxEvents_FWD_DEFINED__ */ - - -#ifndef __IMsTscAx_FWD_DEFINED__ -#define __IMsTscAx_FWD_DEFINED__ -typedef interface IMsTscAx IMsTscAx; -#endif /* __IMsTscAx_FWD_DEFINED__ */ - - -#ifndef __IMsRdpClient_FWD_DEFINED__ -#define __IMsRdpClient_FWD_DEFINED__ -typedef interface IMsRdpClient IMsRdpClient; -#endif /* __IMsRdpClient_FWD_DEFINED__ */ - - -#ifndef __IMsRdpClient2_FWD_DEFINED__ -#define __IMsRdpClient2_FWD_DEFINED__ -typedef interface IMsRdpClient2 IMsRdpClient2; -#endif /* __IMsRdpClient2_FWD_DEFINED__ */ - - -#ifndef __IMsRdpClient3_FWD_DEFINED__ -#define __IMsRdpClient3_FWD_DEFINED__ -typedef interface IMsRdpClient3 IMsRdpClient3; -#endif /* __IMsRdpClient3_FWD_DEFINED__ */ - - -#ifndef __IMsRdpClient4_FWD_DEFINED__ -#define __IMsRdpClient4_FWD_DEFINED__ -typedef interface IMsRdpClient4 IMsRdpClient4; -#endif /* __IMsRdpClient4_FWD_DEFINED__ */ - - -#ifndef __IMsTscNonScriptable_FWD_DEFINED__ -#define __IMsTscNonScriptable_FWD_DEFINED__ -typedef interface IMsTscNonScriptable IMsTscNonScriptable; -#endif /* __IMsTscNonScriptable_FWD_DEFINED__ */ - - -#ifndef __IMsRdpClientNonScriptable_FWD_DEFINED__ -#define __IMsRdpClientNonScriptable_FWD_DEFINED__ -typedef interface IMsRdpClientNonScriptable IMsRdpClientNonScriptable; -#endif /* __IMsRdpClientNonScriptable_FWD_DEFINED__ */ - - -#ifndef __IMsRdpClientNonScriptable2_FWD_DEFINED__ -#define __IMsRdpClientNonScriptable2_FWD_DEFINED__ -typedef interface IMsRdpClientNonScriptable2 IMsRdpClientNonScriptable2; -#endif /* __IMsRdpClientNonScriptable2_FWD_DEFINED__ */ - - -#ifndef __IMsTscAdvancedSettings_FWD_DEFINED__ -#define __IMsTscAdvancedSettings_FWD_DEFINED__ -typedef interface IMsTscAdvancedSettings IMsTscAdvancedSettings; -#endif /* __IMsTscAdvancedSettings_FWD_DEFINED__ */ - - -#ifndef __IMsRdpClientAdvancedSettings_FWD_DEFINED__ -#define __IMsRdpClientAdvancedSettings_FWD_DEFINED__ -typedef interface IMsRdpClientAdvancedSettings IMsRdpClientAdvancedSettings; -#endif /* __IMsRdpClientAdvancedSettings_FWD_DEFINED__ */ - - -#ifndef __IMsRdpClientAdvancedSettings2_FWD_DEFINED__ -#define __IMsRdpClientAdvancedSettings2_FWD_DEFINED__ -typedef interface IMsRdpClientAdvancedSettings2 IMsRdpClientAdvancedSettings2; -#endif /* __IMsRdpClientAdvancedSettings2_FWD_DEFINED__ */ - - -#ifndef __IMsRdpClientAdvancedSettings3_FWD_DEFINED__ -#define __IMsRdpClientAdvancedSettings3_FWD_DEFINED__ -typedef interface IMsRdpClientAdvancedSettings3 IMsRdpClientAdvancedSettings3; -#endif /* __IMsRdpClientAdvancedSettings3_FWD_DEFINED__ */ - - -#ifndef __IMsRdpClientAdvancedSettings4_FWD_DEFINED__ -#define __IMsRdpClientAdvancedSettings4_FWD_DEFINED__ -typedef interface IMsRdpClientAdvancedSettings4 IMsRdpClientAdvancedSettings4; -#endif /* __IMsRdpClientAdvancedSettings4_FWD_DEFINED__ */ - - -#ifndef __IMsTscSecuredSettings_FWD_DEFINED__ -#define __IMsTscSecuredSettings_FWD_DEFINED__ -typedef interface IMsTscSecuredSettings IMsTscSecuredSettings; -#endif /* __IMsTscSecuredSettings_FWD_DEFINED__ */ - - -#ifndef __IMsRdpClientSecuredSettings_FWD_DEFINED__ -#define __IMsRdpClientSecuredSettings_FWD_DEFINED__ -typedef interface IMsRdpClientSecuredSettings IMsRdpClientSecuredSettings; -#endif /* __IMsRdpClientSecuredSettings_FWD_DEFINED__ */ - - -#ifndef __IMsTscDebug_FWD_DEFINED__ -#define __IMsTscDebug_FWD_DEFINED__ -typedef interface IMsTscDebug IMsTscDebug; -#endif /* __IMsTscDebug_FWD_DEFINED__ */ - - -#ifndef __MsTscAx_FWD_DEFINED__ -#define __MsTscAx_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class MsTscAx MsTscAx; -#else -typedef struct MsTscAx MsTscAx; -#endif /* __cplusplus */ - -#endif /* __MsTscAx_FWD_DEFINED__ */ - - -#ifndef __MsRdpClient_FWD_DEFINED__ -#define __MsRdpClient_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class MsRdpClient MsRdpClient; -#else -typedef struct MsRdpClient MsRdpClient; -#endif /* __cplusplus */ - -#endif /* __MsRdpClient_FWD_DEFINED__ */ - - -#ifndef __MsRdpClient2_FWD_DEFINED__ -#define __MsRdpClient2_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class MsRdpClient2 MsRdpClient2; -#else -typedef struct MsRdpClient2 MsRdpClient2; -#endif /* __cplusplus */ - -#endif /* __MsRdpClient2_FWD_DEFINED__ */ - - -#ifndef __MsRdpClient3_FWD_DEFINED__ -#define __MsRdpClient3_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class MsRdpClient3 MsRdpClient3; -#else -typedef struct MsRdpClient3 MsRdpClient3; -#endif /* __cplusplus */ - -#endif /* __MsRdpClient3_FWD_DEFINED__ */ - - -#ifndef __MsRdpClient4_FWD_DEFINED__ -#define __MsRdpClient4_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class MsRdpClient4 MsRdpClient4; -#else -typedef struct MsRdpClient4 MsRdpClient4; -#endif /* __cplusplus */ - -#endif /* __MsRdpClient4_FWD_DEFINED__ */ - - -#ifdef __cplusplus -extern "C"{ -#endif - - - -#ifndef __MSTSCLib_LIBRARY_DEFINED__ -#define __MSTSCLib_LIBRARY_DEFINED__ - -/* library MSTSCLib */ -/* [version][uuid] */ - - - - - - - - - - - - - - - - - - -typedef /* [public][public][public] */ -enum __MIDL___MIDL_itf_mstsax_0275_0001 - { autoReconnectContinueAutomatic = 0, - autoReconnectContinueStop = 1, - autoReconnectContinueManual = 2 - } AutoReconnectContinueState; - -typedef /* [public][public][public] */ -enum __MIDL_IMsRdpClient_0001 - { exDiscReasonNoInfo = 0, - exDiscReasonAPIInitiatedDisconnect = 1, - exDiscReasonAPIInitiatedLogoff = 2, - exDiscReasonServerIdleTimeout = 3, - exDiscReasonServerLogonTimeout = 4, - exDiscReasonReplacedByOtherConnection = 5, - exDiscReasonOutOfMemory = 6, - exDiscReasonServerDeniedConnection = 7, - exDiscReasonServerDeniedConnectionFips = 8, - exDiscReasonLicenseInternal = 256, - exDiscReasonLicenseNoLicenseServer = 257, - exDiscReasonLicenseNoLicense = 258, - exDiscReasonLicenseErrClientMsg = 259, - exDiscReasonLicenseHwidDoesntMatchLicense = 260, - exDiscReasonLicenseErrClientLicense = 261, - exDiscReasonLicenseCantFinishProtocol = 262, - exDiscReasonLicenseClientEndedProtocol = 263, - exDiscReasonLicenseErrClientEncryption = 264, - exDiscReasonLicenseCantUpgradeLicense = 265, - exDiscReasonLicenseNoRemoteConnections = 266, - exDiscReasonProtocolRangeStart = 4096, - exDiscReasonProtocolRangeEnd = 32767 - } ExtendedDisconnectReasonCode; - -typedef /* [public][public][public] */ -enum __MIDL_IMsRdpClient_0002 - { controlCloseCanProceed = 0, - controlCloseWaitForEvents = 1 - } ControlCloseStatus; - -typedef /* [custom][public] */ unsigned __int3264 UINT_PTR; - -typedef /* [custom][public] */ __int3264 LONG_PTR; - - -EXTERN_C const IID LIBID_MSTSCLib; - -#ifndef __IMsTscAxEvents_DISPINTERFACE_DEFINED__ -#define __IMsTscAxEvents_DISPINTERFACE_DEFINED__ - -/* dispinterface IMsTscAxEvents */ -/* [uuid] */ - - -EXTERN_C const IID DIID_IMsTscAxEvents; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("336D5562-EFA8-482E-8CB3-C5C0FC7A7DB6") - IMsTscAxEvents : public IDispatch - { - }; - -#else /* C style interface */ - - typedef struct IMsTscAxEventsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsTscAxEvents * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsTscAxEvents * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsTscAxEvents * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsTscAxEvents * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsTscAxEvents * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsTscAxEvents * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsTscAxEvents * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - END_INTERFACE - } IMsTscAxEventsVtbl; - - interface IMsTscAxEvents - { - CONST_VTBL struct IMsTscAxEventsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsTscAxEvents_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsTscAxEvents_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsTscAxEvents_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsTscAxEvents_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsTscAxEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsTscAxEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsTscAxEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - -#endif /* __IMsTscAxEvents_DISPINTERFACE_DEFINED__ */ - - -#ifndef __IMsTscAx_INTERFACE_DEFINED__ -#define __IMsTscAx_INTERFACE_DEFINED__ - -/* interface IMsTscAx */ -/* [object][oleautomation][dual][uuid] */ - - -EXTERN_C const IID IID_IMsTscAx; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("327BB5CD-834E-4400-AEF2-B30E15E5D682") - IMsTscAx : public IDispatch - { - public: - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Server( - /* [in] */ BSTR pServer) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Server( - /* [retval][out] */ BSTR *pServer) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Domain( - /* [in] */ BSTR pDomain) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Domain( - /* [retval][out] */ BSTR *pDomain) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_UserName( - /* [in] */ BSTR pUserName) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_UserName( - /* [retval][out] */ BSTR *pUserName) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DisconnectedText( - /* [in] */ BSTR pDisconnectedText) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DisconnectedText( - /* [retval][out] */ BSTR *pDisconnectedText) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectingText( - /* [in] */ BSTR pConnectingText) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ConnectingText( - /* [retval][out] */ BSTR *pConnectingText) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Connected( - /* [retval][out] */ short *pIsConnected) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DesktopWidth( - /* [in] */ long pVal) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DesktopWidth( - /* [retval][out] */ long *pVal) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DesktopHeight( - /* [in] */ long pVal) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DesktopHeight( - /* [retval][out] */ long *pVal) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_StartConnected( - /* [in] */ long pfStartConnected) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_StartConnected( - /* [retval][out] */ long *pfStartConnected) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HorizontalScrollBarVisible( - /* [retval][out] */ long *pfHScrollVisible) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_VerticalScrollBarVisible( - /* [retval][out] */ long *pfVScrollVisible) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_FullScreenTitle( - /* [in] */ BSTR rhs) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CipherStrength( - /* [retval][out] */ long *pCipherStrength) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Version( - /* [retval][out] */ BSTR *pVersion) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SecuredSettingsEnabled( - /* [retval][out] */ long *pSecuredSettingsEnabled) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SecuredSettings( - /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AdvancedSettings( - /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings) = 0; - - virtual /* [hidden][propget][id] */ HRESULT STDMETHODCALLTYPE get_Debugger( - /* [retval][out] */ IMsTscDebug **ppDebugger) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE Connect( void) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE Disconnect( void) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE CreateVirtualChannels( - /* [in] */ BSTR newVal) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE SendOnVirtualChannel( - /* [in] */ BSTR chanName, - /* [in] */ BSTR ChanData) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsTscAxVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsTscAx * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsTscAx * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsTscAx * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsTscAx * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsTscAx * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsTscAx * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsTscAx * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Server )( - IMsTscAx * This, - /* [in] */ BSTR pServer); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Server )( - IMsTscAx * This, - /* [retval][out] */ BSTR *pServer); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Domain )( - IMsTscAx * This, - /* [in] */ BSTR pDomain); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Domain )( - IMsTscAx * This, - /* [retval][out] */ BSTR *pDomain); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UserName )( - IMsTscAx * This, - /* [in] */ BSTR pUserName); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )( - IMsTscAx * This, - /* [retval][out] */ BSTR *pUserName); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisconnectedText )( - IMsTscAx * This, - /* [in] */ BSTR pDisconnectedText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisconnectedText )( - IMsTscAx * This, - /* [retval][out] */ BSTR *pDisconnectedText); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectingText )( - IMsTscAx * This, - /* [in] */ BSTR pConnectingText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectingText )( - IMsTscAx * This, - /* [retval][out] */ BSTR *pConnectingText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Connected )( - IMsTscAx * This, - /* [retval][out] */ short *pIsConnected); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopWidth )( - IMsTscAx * This, - /* [in] */ long pVal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopWidth )( - IMsTscAx * This, - /* [retval][out] */ long *pVal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopHeight )( - IMsTscAx * This, - /* [in] */ long pVal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopHeight )( - IMsTscAx * This, - /* [retval][out] */ long *pVal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartConnected )( - IMsTscAx * This, - /* [in] */ long pfStartConnected); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartConnected )( - IMsTscAx * This, - /* [retval][out] */ long *pfStartConnected); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalScrollBarVisible )( - IMsTscAx * This, - /* [retval][out] */ long *pfHScrollVisible); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalScrollBarVisible )( - IMsTscAx * This, - /* [retval][out] */ long *pfVScrollVisible); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreenTitle )( - IMsTscAx * This, - /* [in] */ BSTR rhs); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CipherStrength )( - IMsTscAx * This, - /* [retval][out] */ long *pCipherStrength); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )( - IMsTscAx * This, - /* [retval][out] */ BSTR *pVersion); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettingsEnabled )( - IMsTscAx * This, - /* [retval][out] */ long *pSecuredSettingsEnabled); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings )( - IMsTscAx * This, - /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings )( - IMsTscAx * This, - /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings); - - /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Debugger )( - IMsTscAx * This, - /* [retval][out] */ IMsTscDebug **ppDebugger); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Connect )( - IMsTscAx * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( - IMsTscAx * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateVirtualChannels )( - IMsTscAx * This, - /* [in] */ BSTR newVal); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *SendOnVirtualChannel )( - IMsTscAx * This, - /* [in] */ BSTR chanName, - /* [in] */ BSTR ChanData); - - END_INTERFACE - } IMsTscAxVtbl; - - interface IMsTscAx - { - CONST_VTBL struct IMsTscAxVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsTscAx_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsTscAx_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsTscAx_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsTscAx_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsTscAx_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsTscAx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsTscAx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IMsTscAx_put_Server(This,pServer) \ - ( (This)->lpVtbl -> put_Server(This,pServer) ) - -#define IMsTscAx_get_Server(This,pServer) \ - ( (This)->lpVtbl -> get_Server(This,pServer) ) - -#define IMsTscAx_put_Domain(This,pDomain) \ - ( (This)->lpVtbl -> put_Domain(This,pDomain) ) - -#define IMsTscAx_get_Domain(This,pDomain) \ - ( (This)->lpVtbl -> get_Domain(This,pDomain) ) - -#define IMsTscAx_put_UserName(This,pUserName) \ - ( (This)->lpVtbl -> put_UserName(This,pUserName) ) - -#define IMsTscAx_get_UserName(This,pUserName) \ - ( (This)->lpVtbl -> get_UserName(This,pUserName) ) - -#define IMsTscAx_put_DisconnectedText(This,pDisconnectedText) \ - ( (This)->lpVtbl -> put_DisconnectedText(This,pDisconnectedText) ) - -#define IMsTscAx_get_DisconnectedText(This,pDisconnectedText) \ - ( (This)->lpVtbl -> get_DisconnectedText(This,pDisconnectedText) ) - -#define IMsTscAx_put_ConnectingText(This,pConnectingText) \ - ( (This)->lpVtbl -> put_ConnectingText(This,pConnectingText) ) - -#define IMsTscAx_get_ConnectingText(This,pConnectingText) \ - ( (This)->lpVtbl -> get_ConnectingText(This,pConnectingText) ) - -#define IMsTscAx_get_Connected(This,pIsConnected) \ - ( (This)->lpVtbl -> get_Connected(This,pIsConnected) ) - -#define IMsTscAx_put_DesktopWidth(This,pVal) \ - ( (This)->lpVtbl -> put_DesktopWidth(This,pVal) ) - -#define IMsTscAx_get_DesktopWidth(This,pVal) \ - ( (This)->lpVtbl -> get_DesktopWidth(This,pVal) ) - -#define IMsTscAx_put_DesktopHeight(This,pVal) \ - ( (This)->lpVtbl -> put_DesktopHeight(This,pVal) ) - -#define IMsTscAx_get_DesktopHeight(This,pVal) \ - ( (This)->lpVtbl -> get_DesktopHeight(This,pVal) ) - -#define IMsTscAx_put_StartConnected(This,pfStartConnected) \ - ( (This)->lpVtbl -> put_StartConnected(This,pfStartConnected) ) - -#define IMsTscAx_get_StartConnected(This,pfStartConnected) \ - ( (This)->lpVtbl -> get_StartConnected(This,pfStartConnected) ) - -#define IMsTscAx_get_HorizontalScrollBarVisible(This,pfHScrollVisible) \ - ( (This)->lpVtbl -> get_HorizontalScrollBarVisible(This,pfHScrollVisible) ) - -#define IMsTscAx_get_VerticalScrollBarVisible(This,pfVScrollVisible) \ - ( (This)->lpVtbl -> get_VerticalScrollBarVisible(This,pfVScrollVisible) ) - -#define IMsTscAx_put_FullScreenTitle(This,rhs) \ - ( (This)->lpVtbl -> put_FullScreenTitle(This,rhs) ) - -#define IMsTscAx_get_CipherStrength(This,pCipherStrength) \ - ( (This)->lpVtbl -> get_CipherStrength(This,pCipherStrength) ) - -#define IMsTscAx_get_Version(This,pVersion) \ - ( (This)->lpVtbl -> get_Version(This,pVersion) ) - -#define IMsTscAx_get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) \ - ( (This)->lpVtbl -> get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) ) - -#define IMsTscAx_get_SecuredSettings(This,ppSecuredSettings) \ - ( (This)->lpVtbl -> get_SecuredSettings(This,ppSecuredSettings) ) - -#define IMsTscAx_get_AdvancedSettings(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings(This,ppAdvSettings) ) - -#define IMsTscAx_get_Debugger(This,ppDebugger) \ - ( (This)->lpVtbl -> get_Debugger(This,ppDebugger) ) - -#define IMsTscAx_Connect(This) \ - ( (This)->lpVtbl -> Connect(This) ) - -#define IMsTscAx_Disconnect(This) \ - ( (This)->lpVtbl -> Disconnect(This) ) - -#define IMsTscAx_CreateVirtualChannels(This,newVal) \ - ( (This)->lpVtbl -> CreateVirtualChannels(This,newVal) ) - -#define IMsTscAx_SendOnVirtualChannel(This,chanName,ChanData) \ - ( (This)->lpVtbl -> SendOnVirtualChannel(This,chanName,ChanData) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMsTscAx_INTERFACE_DEFINED__ */ - - -#ifndef __IMsRdpClient_INTERFACE_DEFINED__ -#define __IMsRdpClient_INTERFACE_DEFINED__ - -/* interface IMsRdpClient */ -/* [object][oleautomation][dual][uuid] */ - - -EXTERN_C const IID IID_IMsRdpClient; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("92B4A539-7115-4B7C-A5A9-E5D9EFC2780A") - IMsRdpClient : public IMsTscAx - { - public: - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ColorDepth( - /* [in] */ long pcolorDepth) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ColorDepth( - /* [retval][out] */ long *pcolorDepth) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AdvancedSettings2( - /* [retval][out] */ IMsRdpClientAdvancedSettings **ppAdvSettings) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SecuredSettings2( - /* [retval][out] */ IMsRdpClientSecuredSettings **ppSecuredSettings) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtendedDisconnectReason( - /* [retval][out] */ ExtendedDisconnectReasonCode *pExtendedDisconnectReason) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_FullScreen( - /* [in] */ VARIANT_BOOL pfFullScreen) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_FullScreen( - /* [retval][out] */ VARIANT_BOOL *pfFullScreen) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetVirtualChannelOptions( - /* [in] */ BSTR chanName, - /* [in] */ long chanOptions) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetVirtualChannelOptions( - /* [in] */ BSTR chanName, - /* [retval][out] */ long *pChanOptions) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE RequestClose( - /* [retval][out] */ ControlCloseStatus *pCloseStatus) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsRdpClientVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsRdpClient * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsRdpClient * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsRdpClient * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsRdpClient * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsRdpClient * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsRdpClient * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsRdpClient * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Server )( - IMsRdpClient * This, - /* [in] */ BSTR pServer); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Server )( - IMsRdpClient * This, - /* [retval][out] */ BSTR *pServer); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Domain )( - IMsRdpClient * This, - /* [in] */ BSTR pDomain); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Domain )( - IMsRdpClient * This, - /* [retval][out] */ BSTR *pDomain); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UserName )( - IMsRdpClient * This, - /* [in] */ BSTR pUserName); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )( - IMsRdpClient * This, - /* [retval][out] */ BSTR *pUserName); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisconnectedText )( - IMsRdpClient * This, - /* [in] */ BSTR pDisconnectedText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisconnectedText )( - IMsRdpClient * This, - /* [retval][out] */ BSTR *pDisconnectedText); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectingText )( - IMsRdpClient * This, - /* [in] */ BSTR pConnectingText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectingText )( - IMsRdpClient * This, - /* [retval][out] */ BSTR *pConnectingText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Connected )( - IMsRdpClient * This, - /* [retval][out] */ short *pIsConnected); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopWidth )( - IMsRdpClient * This, - /* [in] */ long pVal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopWidth )( - IMsRdpClient * This, - /* [retval][out] */ long *pVal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopHeight )( - IMsRdpClient * This, - /* [in] */ long pVal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopHeight )( - IMsRdpClient * This, - /* [retval][out] */ long *pVal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartConnected )( - IMsRdpClient * This, - /* [in] */ long pfStartConnected); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartConnected )( - IMsRdpClient * This, - /* [retval][out] */ long *pfStartConnected); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalScrollBarVisible )( - IMsRdpClient * This, - /* [retval][out] */ long *pfHScrollVisible); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalScrollBarVisible )( - IMsRdpClient * This, - /* [retval][out] */ long *pfVScrollVisible); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreenTitle )( - IMsRdpClient * This, - /* [in] */ BSTR rhs); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CipherStrength )( - IMsRdpClient * This, - /* [retval][out] */ long *pCipherStrength); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )( - IMsRdpClient * This, - /* [retval][out] */ BSTR *pVersion); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettingsEnabled )( - IMsRdpClient * This, - /* [retval][out] */ long *pSecuredSettingsEnabled); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings )( - IMsRdpClient * This, - /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings )( - IMsRdpClient * This, - /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings); - - /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Debugger )( - IMsRdpClient * This, - /* [retval][out] */ IMsTscDebug **ppDebugger); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Connect )( - IMsRdpClient * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( - IMsRdpClient * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateVirtualChannels )( - IMsRdpClient * This, - /* [in] */ BSTR newVal); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *SendOnVirtualChannel )( - IMsRdpClient * This, - /* [in] */ BSTR chanName, - /* [in] */ BSTR ChanData); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ColorDepth )( - IMsRdpClient * This, - /* [in] */ long pcolorDepth); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ColorDepth )( - IMsRdpClient * This, - /* [retval][out] */ long *pcolorDepth); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings2 )( - IMsRdpClient * This, - /* [retval][out] */ IMsRdpClientAdvancedSettings **ppAdvSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings2 )( - IMsRdpClient * This, - /* [retval][out] */ IMsRdpClientSecuredSettings **ppSecuredSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtendedDisconnectReason )( - IMsRdpClient * This, - /* [retval][out] */ ExtendedDisconnectReasonCode *pExtendedDisconnectReason); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )( - IMsRdpClient * This, - /* [in] */ VARIANT_BOOL pfFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )( - IMsRdpClient * This, - /* [retval][out] */ VARIANT_BOOL *pfFullScreen); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetVirtualChannelOptions )( - IMsRdpClient * This, - /* [in] */ BSTR chanName, - /* [in] */ long chanOptions); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetVirtualChannelOptions )( - IMsRdpClient * This, - /* [in] */ BSTR chanName, - /* [retval][out] */ long *pChanOptions); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *RequestClose )( - IMsRdpClient * This, - /* [retval][out] */ ControlCloseStatus *pCloseStatus); - - END_INTERFACE - } IMsRdpClientVtbl; - - interface IMsRdpClient - { - CONST_VTBL struct IMsRdpClientVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsRdpClient_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsRdpClient_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsRdpClient_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsRdpClient_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsRdpClient_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsRdpClient_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsRdpClient_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IMsRdpClient_put_Server(This,pServer) \ - ( (This)->lpVtbl -> put_Server(This,pServer) ) - -#define IMsRdpClient_get_Server(This,pServer) \ - ( (This)->lpVtbl -> get_Server(This,pServer) ) - -#define IMsRdpClient_put_Domain(This,pDomain) \ - ( (This)->lpVtbl -> put_Domain(This,pDomain) ) - -#define IMsRdpClient_get_Domain(This,pDomain) \ - ( (This)->lpVtbl -> get_Domain(This,pDomain) ) - -#define IMsRdpClient_put_UserName(This,pUserName) \ - ( (This)->lpVtbl -> put_UserName(This,pUserName) ) - -#define IMsRdpClient_get_UserName(This,pUserName) \ - ( (This)->lpVtbl -> get_UserName(This,pUserName) ) - -#define IMsRdpClient_put_DisconnectedText(This,pDisconnectedText) \ - ( (This)->lpVtbl -> put_DisconnectedText(This,pDisconnectedText) ) - -#define IMsRdpClient_get_DisconnectedText(This,pDisconnectedText) \ - ( (This)->lpVtbl -> get_DisconnectedText(This,pDisconnectedText) ) - -#define IMsRdpClient_put_ConnectingText(This,pConnectingText) \ - ( (This)->lpVtbl -> put_ConnectingText(This,pConnectingText) ) - -#define IMsRdpClient_get_ConnectingText(This,pConnectingText) \ - ( (This)->lpVtbl -> get_ConnectingText(This,pConnectingText) ) - -#define IMsRdpClient_get_Connected(This,pIsConnected) \ - ( (This)->lpVtbl -> get_Connected(This,pIsConnected) ) - -#define IMsRdpClient_put_DesktopWidth(This,pVal) \ - ( (This)->lpVtbl -> put_DesktopWidth(This,pVal) ) - -#define IMsRdpClient_get_DesktopWidth(This,pVal) \ - ( (This)->lpVtbl -> get_DesktopWidth(This,pVal) ) - -#define IMsRdpClient_put_DesktopHeight(This,pVal) \ - ( (This)->lpVtbl -> put_DesktopHeight(This,pVal) ) - -#define IMsRdpClient_get_DesktopHeight(This,pVal) \ - ( (This)->lpVtbl -> get_DesktopHeight(This,pVal) ) - -#define IMsRdpClient_put_StartConnected(This,pfStartConnected) \ - ( (This)->lpVtbl -> put_StartConnected(This,pfStartConnected) ) - -#define IMsRdpClient_get_StartConnected(This,pfStartConnected) \ - ( (This)->lpVtbl -> get_StartConnected(This,pfStartConnected) ) - -#define IMsRdpClient_get_HorizontalScrollBarVisible(This,pfHScrollVisible) \ - ( (This)->lpVtbl -> get_HorizontalScrollBarVisible(This,pfHScrollVisible) ) - -#define IMsRdpClient_get_VerticalScrollBarVisible(This,pfVScrollVisible) \ - ( (This)->lpVtbl -> get_VerticalScrollBarVisible(This,pfVScrollVisible) ) - -#define IMsRdpClient_put_FullScreenTitle(This,rhs) \ - ( (This)->lpVtbl -> put_FullScreenTitle(This,rhs) ) - -#define IMsRdpClient_get_CipherStrength(This,pCipherStrength) \ - ( (This)->lpVtbl -> get_CipherStrength(This,pCipherStrength) ) - -#define IMsRdpClient_get_Version(This,pVersion) \ - ( (This)->lpVtbl -> get_Version(This,pVersion) ) - -#define IMsRdpClient_get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) \ - ( (This)->lpVtbl -> get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) ) - -#define IMsRdpClient_get_SecuredSettings(This,ppSecuredSettings) \ - ( (This)->lpVtbl -> get_SecuredSettings(This,ppSecuredSettings) ) - -#define IMsRdpClient_get_AdvancedSettings(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings(This,ppAdvSettings) ) - -#define IMsRdpClient_get_Debugger(This,ppDebugger) \ - ( (This)->lpVtbl -> get_Debugger(This,ppDebugger) ) - -#define IMsRdpClient_Connect(This) \ - ( (This)->lpVtbl -> Connect(This) ) - -#define IMsRdpClient_Disconnect(This) \ - ( (This)->lpVtbl -> Disconnect(This) ) - -#define IMsRdpClient_CreateVirtualChannels(This,newVal) \ - ( (This)->lpVtbl -> CreateVirtualChannels(This,newVal) ) - -#define IMsRdpClient_SendOnVirtualChannel(This,chanName,ChanData) \ - ( (This)->lpVtbl -> SendOnVirtualChannel(This,chanName,ChanData) ) - - -#define IMsRdpClient_put_ColorDepth(This,pcolorDepth) \ - ( (This)->lpVtbl -> put_ColorDepth(This,pcolorDepth) ) - -#define IMsRdpClient_get_ColorDepth(This,pcolorDepth) \ - ( (This)->lpVtbl -> get_ColorDepth(This,pcolorDepth) ) - -#define IMsRdpClient_get_AdvancedSettings2(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings2(This,ppAdvSettings) ) - -#define IMsRdpClient_get_SecuredSettings2(This,ppSecuredSettings) \ - ( (This)->lpVtbl -> get_SecuredSettings2(This,ppSecuredSettings) ) - -#define IMsRdpClient_get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) \ - ( (This)->lpVtbl -> get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) ) - -#define IMsRdpClient_put_FullScreen(This,pfFullScreen) \ - ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) ) - -#define IMsRdpClient_get_FullScreen(This,pfFullScreen) \ - ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) ) - -#define IMsRdpClient_SetVirtualChannelOptions(This,chanName,chanOptions) \ - ( (This)->lpVtbl -> SetVirtualChannelOptions(This,chanName,chanOptions) ) - -#define IMsRdpClient_GetVirtualChannelOptions(This,chanName,pChanOptions) \ - ( (This)->lpVtbl -> GetVirtualChannelOptions(This,chanName,pChanOptions) ) - -#define IMsRdpClient_RequestClose(This,pCloseStatus) \ - ( (This)->lpVtbl -> RequestClose(This,pCloseStatus) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMsRdpClient_INTERFACE_DEFINED__ */ - - -#ifndef __IMsRdpClient2_INTERFACE_DEFINED__ -#define __IMsRdpClient2_INTERFACE_DEFINED__ - -/* interface IMsRdpClient2 */ -/* [object][oleautomation][dual][uuid] */ - - -EXTERN_C const IID IID_IMsRdpClient2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("E7E17DC4-3B71-4BA7-A8E6-281FFADCA28F") - IMsRdpClient2 : public IMsRdpClient - { - public: - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AdvancedSettings3( - /* [retval][out] */ IMsRdpClientAdvancedSettings2 **ppAdvSettings) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectedStatusText( - /* [in] */ BSTR pConnectedStatusText) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ConnectedStatusText( - /* [retval][out] */ BSTR *pConnectedStatusText) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsRdpClient2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsRdpClient2 * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsRdpClient2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsRdpClient2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsRdpClient2 * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsRdpClient2 * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsRdpClient2 * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsRdpClient2 * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Server )( - IMsRdpClient2 * This, - /* [in] */ BSTR pServer); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Server )( - IMsRdpClient2 * This, - /* [retval][out] */ BSTR *pServer); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Domain )( - IMsRdpClient2 * This, - /* [in] */ BSTR pDomain); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Domain )( - IMsRdpClient2 * This, - /* [retval][out] */ BSTR *pDomain); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UserName )( - IMsRdpClient2 * This, - /* [in] */ BSTR pUserName); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )( - IMsRdpClient2 * This, - /* [retval][out] */ BSTR *pUserName); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisconnectedText )( - IMsRdpClient2 * This, - /* [in] */ BSTR pDisconnectedText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisconnectedText )( - IMsRdpClient2 * This, - /* [retval][out] */ BSTR *pDisconnectedText); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectingText )( - IMsRdpClient2 * This, - /* [in] */ BSTR pConnectingText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectingText )( - IMsRdpClient2 * This, - /* [retval][out] */ BSTR *pConnectingText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Connected )( - IMsRdpClient2 * This, - /* [retval][out] */ short *pIsConnected); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopWidth )( - IMsRdpClient2 * This, - /* [in] */ long pVal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopWidth )( - IMsRdpClient2 * This, - /* [retval][out] */ long *pVal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopHeight )( - IMsRdpClient2 * This, - /* [in] */ long pVal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopHeight )( - IMsRdpClient2 * This, - /* [retval][out] */ long *pVal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartConnected )( - IMsRdpClient2 * This, - /* [in] */ long pfStartConnected); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartConnected )( - IMsRdpClient2 * This, - /* [retval][out] */ long *pfStartConnected); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalScrollBarVisible )( - IMsRdpClient2 * This, - /* [retval][out] */ long *pfHScrollVisible); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalScrollBarVisible )( - IMsRdpClient2 * This, - /* [retval][out] */ long *pfVScrollVisible); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreenTitle )( - IMsRdpClient2 * This, - /* [in] */ BSTR rhs); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CipherStrength )( - IMsRdpClient2 * This, - /* [retval][out] */ long *pCipherStrength); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )( - IMsRdpClient2 * This, - /* [retval][out] */ BSTR *pVersion); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettingsEnabled )( - IMsRdpClient2 * This, - /* [retval][out] */ long *pSecuredSettingsEnabled); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings )( - IMsRdpClient2 * This, - /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings )( - IMsRdpClient2 * This, - /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings); - - /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Debugger )( - IMsRdpClient2 * This, - /* [retval][out] */ IMsTscDebug **ppDebugger); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Connect )( - IMsRdpClient2 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( - IMsRdpClient2 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateVirtualChannels )( - IMsRdpClient2 * This, - /* [in] */ BSTR newVal); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *SendOnVirtualChannel )( - IMsRdpClient2 * This, - /* [in] */ BSTR chanName, - /* [in] */ BSTR ChanData); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ColorDepth )( - IMsRdpClient2 * This, - /* [in] */ long pcolorDepth); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ColorDepth )( - IMsRdpClient2 * This, - /* [retval][out] */ long *pcolorDepth); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings2 )( - IMsRdpClient2 * This, - /* [retval][out] */ IMsRdpClientAdvancedSettings **ppAdvSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings2 )( - IMsRdpClient2 * This, - /* [retval][out] */ IMsRdpClientSecuredSettings **ppSecuredSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtendedDisconnectReason )( - IMsRdpClient2 * This, - /* [retval][out] */ ExtendedDisconnectReasonCode *pExtendedDisconnectReason); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )( - IMsRdpClient2 * This, - /* [in] */ VARIANT_BOOL pfFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )( - IMsRdpClient2 * This, - /* [retval][out] */ VARIANT_BOOL *pfFullScreen); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetVirtualChannelOptions )( - IMsRdpClient2 * This, - /* [in] */ BSTR chanName, - /* [in] */ long chanOptions); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetVirtualChannelOptions )( - IMsRdpClient2 * This, - /* [in] */ BSTR chanName, - /* [retval][out] */ long *pChanOptions); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *RequestClose )( - IMsRdpClient2 * This, - /* [retval][out] */ ControlCloseStatus *pCloseStatus); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings3 )( - IMsRdpClient2 * This, - /* [retval][out] */ IMsRdpClientAdvancedSettings2 **ppAdvSettings); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectedStatusText )( - IMsRdpClient2 * This, - /* [in] */ BSTR pConnectedStatusText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectedStatusText )( - IMsRdpClient2 * This, - /* [retval][out] */ BSTR *pConnectedStatusText); - - END_INTERFACE - } IMsRdpClient2Vtbl; - - interface IMsRdpClient2 - { - CONST_VTBL struct IMsRdpClient2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsRdpClient2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsRdpClient2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsRdpClient2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsRdpClient2_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsRdpClient2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsRdpClient2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsRdpClient2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IMsRdpClient2_put_Server(This,pServer) \ - ( (This)->lpVtbl -> put_Server(This,pServer) ) - -#define IMsRdpClient2_get_Server(This,pServer) \ - ( (This)->lpVtbl -> get_Server(This,pServer) ) - -#define IMsRdpClient2_put_Domain(This,pDomain) \ - ( (This)->lpVtbl -> put_Domain(This,pDomain) ) - -#define IMsRdpClient2_get_Domain(This,pDomain) \ - ( (This)->lpVtbl -> get_Domain(This,pDomain) ) - -#define IMsRdpClient2_put_UserName(This,pUserName) \ - ( (This)->lpVtbl -> put_UserName(This,pUserName) ) - -#define IMsRdpClient2_get_UserName(This,pUserName) \ - ( (This)->lpVtbl -> get_UserName(This,pUserName) ) - -#define IMsRdpClient2_put_DisconnectedText(This,pDisconnectedText) \ - ( (This)->lpVtbl -> put_DisconnectedText(This,pDisconnectedText) ) - -#define IMsRdpClient2_get_DisconnectedText(This,pDisconnectedText) \ - ( (This)->lpVtbl -> get_DisconnectedText(This,pDisconnectedText) ) - -#define IMsRdpClient2_put_ConnectingText(This,pConnectingText) \ - ( (This)->lpVtbl -> put_ConnectingText(This,pConnectingText) ) - -#define IMsRdpClient2_get_ConnectingText(This,pConnectingText) \ - ( (This)->lpVtbl -> get_ConnectingText(This,pConnectingText) ) - -#define IMsRdpClient2_get_Connected(This,pIsConnected) \ - ( (This)->lpVtbl -> get_Connected(This,pIsConnected) ) - -#define IMsRdpClient2_put_DesktopWidth(This,pVal) \ - ( (This)->lpVtbl -> put_DesktopWidth(This,pVal) ) - -#define IMsRdpClient2_get_DesktopWidth(This,pVal) \ - ( (This)->lpVtbl -> get_DesktopWidth(This,pVal) ) - -#define IMsRdpClient2_put_DesktopHeight(This,pVal) \ - ( (This)->lpVtbl -> put_DesktopHeight(This,pVal) ) - -#define IMsRdpClient2_get_DesktopHeight(This,pVal) \ - ( (This)->lpVtbl -> get_DesktopHeight(This,pVal) ) - -#define IMsRdpClient2_put_StartConnected(This,pfStartConnected) \ - ( (This)->lpVtbl -> put_StartConnected(This,pfStartConnected) ) - -#define IMsRdpClient2_get_StartConnected(This,pfStartConnected) \ - ( (This)->lpVtbl -> get_StartConnected(This,pfStartConnected) ) - -#define IMsRdpClient2_get_HorizontalScrollBarVisible(This,pfHScrollVisible) \ - ( (This)->lpVtbl -> get_HorizontalScrollBarVisible(This,pfHScrollVisible) ) - -#define IMsRdpClient2_get_VerticalScrollBarVisible(This,pfVScrollVisible) \ - ( (This)->lpVtbl -> get_VerticalScrollBarVisible(This,pfVScrollVisible) ) - -#define IMsRdpClient2_put_FullScreenTitle(This,rhs) \ - ( (This)->lpVtbl -> put_FullScreenTitle(This,rhs) ) - -#define IMsRdpClient2_get_CipherStrength(This,pCipherStrength) \ - ( (This)->lpVtbl -> get_CipherStrength(This,pCipherStrength) ) - -#define IMsRdpClient2_get_Version(This,pVersion) \ - ( (This)->lpVtbl -> get_Version(This,pVersion) ) - -#define IMsRdpClient2_get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) \ - ( (This)->lpVtbl -> get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) ) - -#define IMsRdpClient2_get_SecuredSettings(This,ppSecuredSettings) \ - ( (This)->lpVtbl -> get_SecuredSettings(This,ppSecuredSettings) ) - -#define IMsRdpClient2_get_AdvancedSettings(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings(This,ppAdvSettings) ) - -#define IMsRdpClient2_get_Debugger(This,ppDebugger) \ - ( (This)->lpVtbl -> get_Debugger(This,ppDebugger) ) - -#define IMsRdpClient2_Connect(This) \ - ( (This)->lpVtbl -> Connect(This) ) - -#define IMsRdpClient2_Disconnect(This) \ - ( (This)->lpVtbl -> Disconnect(This) ) - -#define IMsRdpClient2_CreateVirtualChannels(This,newVal) \ - ( (This)->lpVtbl -> CreateVirtualChannels(This,newVal) ) - -#define IMsRdpClient2_SendOnVirtualChannel(This,chanName,ChanData) \ - ( (This)->lpVtbl -> SendOnVirtualChannel(This,chanName,ChanData) ) - - -#define IMsRdpClient2_put_ColorDepth(This,pcolorDepth) \ - ( (This)->lpVtbl -> put_ColorDepth(This,pcolorDepth) ) - -#define IMsRdpClient2_get_ColorDepth(This,pcolorDepth) \ - ( (This)->lpVtbl -> get_ColorDepth(This,pcolorDepth) ) - -#define IMsRdpClient2_get_AdvancedSettings2(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings2(This,ppAdvSettings) ) - -#define IMsRdpClient2_get_SecuredSettings2(This,ppSecuredSettings) \ - ( (This)->lpVtbl -> get_SecuredSettings2(This,ppSecuredSettings) ) - -#define IMsRdpClient2_get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) \ - ( (This)->lpVtbl -> get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) ) - -#define IMsRdpClient2_put_FullScreen(This,pfFullScreen) \ - ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) ) - -#define IMsRdpClient2_get_FullScreen(This,pfFullScreen) \ - ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) ) - -#define IMsRdpClient2_SetVirtualChannelOptions(This,chanName,chanOptions) \ - ( (This)->lpVtbl -> SetVirtualChannelOptions(This,chanName,chanOptions) ) - -#define IMsRdpClient2_GetVirtualChannelOptions(This,chanName,pChanOptions) \ - ( (This)->lpVtbl -> GetVirtualChannelOptions(This,chanName,pChanOptions) ) - -#define IMsRdpClient2_RequestClose(This,pCloseStatus) \ - ( (This)->lpVtbl -> RequestClose(This,pCloseStatus) ) - - -#define IMsRdpClient2_get_AdvancedSettings3(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings3(This,ppAdvSettings) ) - -#define IMsRdpClient2_put_ConnectedStatusText(This,pConnectedStatusText) \ - ( (This)->lpVtbl -> put_ConnectedStatusText(This,pConnectedStatusText) ) - -#define IMsRdpClient2_get_ConnectedStatusText(This,pConnectedStatusText) \ - ( (This)->lpVtbl -> get_ConnectedStatusText(This,pConnectedStatusText) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMsRdpClient2_INTERFACE_DEFINED__ */ - - -#ifndef __IMsRdpClient3_INTERFACE_DEFINED__ -#define __IMsRdpClient3_INTERFACE_DEFINED__ - -/* interface IMsRdpClient3 */ -/* [object][oleautomation][dual][uuid] */ - - -EXTERN_C const IID IID_IMsRdpClient3; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("91B7CBC5-A72E-4FA0-9300-D647D7E897FF") - IMsRdpClient3 : public IMsRdpClient2 - { - public: - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AdvancedSettings4( - /* [retval][out] */ IMsRdpClientAdvancedSettings3 **ppAdvSettings) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsRdpClient3Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsRdpClient3 * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsRdpClient3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsRdpClient3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsRdpClient3 * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsRdpClient3 * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsRdpClient3 * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsRdpClient3 * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Server )( - IMsRdpClient3 * This, - /* [in] */ BSTR pServer); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Server )( - IMsRdpClient3 * This, - /* [retval][out] */ BSTR *pServer); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Domain )( - IMsRdpClient3 * This, - /* [in] */ BSTR pDomain); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Domain )( - IMsRdpClient3 * This, - /* [retval][out] */ BSTR *pDomain); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UserName )( - IMsRdpClient3 * This, - /* [in] */ BSTR pUserName); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )( - IMsRdpClient3 * This, - /* [retval][out] */ BSTR *pUserName); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisconnectedText )( - IMsRdpClient3 * This, - /* [in] */ BSTR pDisconnectedText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisconnectedText )( - IMsRdpClient3 * This, - /* [retval][out] */ BSTR *pDisconnectedText); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectingText )( - IMsRdpClient3 * This, - /* [in] */ BSTR pConnectingText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectingText )( - IMsRdpClient3 * This, - /* [retval][out] */ BSTR *pConnectingText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Connected )( - IMsRdpClient3 * This, - /* [retval][out] */ short *pIsConnected); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopWidth )( - IMsRdpClient3 * This, - /* [in] */ long pVal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopWidth )( - IMsRdpClient3 * This, - /* [retval][out] */ long *pVal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopHeight )( - IMsRdpClient3 * This, - /* [in] */ long pVal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopHeight )( - IMsRdpClient3 * This, - /* [retval][out] */ long *pVal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartConnected )( - IMsRdpClient3 * This, - /* [in] */ long pfStartConnected); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartConnected )( - IMsRdpClient3 * This, - /* [retval][out] */ long *pfStartConnected); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalScrollBarVisible )( - IMsRdpClient3 * This, - /* [retval][out] */ long *pfHScrollVisible); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalScrollBarVisible )( - IMsRdpClient3 * This, - /* [retval][out] */ long *pfVScrollVisible); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreenTitle )( - IMsRdpClient3 * This, - /* [in] */ BSTR rhs); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CipherStrength )( - IMsRdpClient3 * This, - /* [retval][out] */ long *pCipherStrength); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )( - IMsRdpClient3 * This, - /* [retval][out] */ BSTR *pVersion); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettingsEnabled )( - IMsRdpClient3 * This, - /* [retval][out] */ long *pSecuredSettingsEnabled); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings )( - IMsRdpClient3 * This, - /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings )( - IMsRdpClient3 * This, - /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings); - - /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Debugger )( - IMsRdpClient3 * This, - /* [retval][out] */ IMsTscDebug **ppDebugger); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Connect )( - IMsRdpClient3 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( - IMsRdpClient3 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateVirtualChannels )( - IMsRdpClient3 * This, - /* [in] */ BSTR newVal); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *SendOnVirtualChannel )( - IMsRdpClient3 * This, - /* [in] */ BSTR chanName, - /* [in] */ BSTR ChanData); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ColorDepth )( - IMsRdpClient3 * This, - /* [in] */ long pcolorDepth); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ColorDepth )( - IMsRdpClient3 * This, - /* [retval][out] */ long *pcolorDepth); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings2 )( - IMsRdpClient3 * This, - /* [retval][out] */ IMsRdpClientAdvancedSettings **ppAdvSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings2 )( - IMsRdpClient3 * This, - /* [retval][out] */ IMsRdpClientSecuredSettings **ppSecuredSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtendedDisconnectReason )( - IMsRdpClient3 * This, - /* [retval][out] */ ExtendedDisconnectReasonCode *pExtendedDisconnectReason); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )( - IMsRdpClient3 * This, - /* [in] */ VARIANT_BOOL pfFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )( - IMsRdpClient3 * This, - /* [retval][out] */ VARIANT_BOOL *pfFullScreen); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetVirtualChannelOptions )( - IMsRdpClient3 * This, - /* [in] */ BSTR chanName, - /* [in] */ long chanOptions); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetVirtualChannelOptions )( - IMsRdpClient3 * This, - /* [in] */ BSTR chanName, - /* [retval][out] */ long *pChanOptions); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *RequestClose )( - IMsRdpClient3 * This, - /* [retval][out] */ ControlCloseStatus *pCloseStatus); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings3 )( - IMsRdpClient3 * This, - /* [retval][out] */ IMsRdpClientAdvancedSettings2 **ppAdvSettings); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectedStatusText )( - IMsRdpClient3 * This, - /* [in] */ BSTR pConnectedStatusText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectedStatusText )( - IMsRdpClient3 * This, - /* [retval][out] */ BSTR *pConnectedStatusText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings4 )( - IMsRdpClient3 * This, - /* [retval][out] */ IMsRdpClientAdvancedSettings3 **ppAdvSettings); - - END_INTERFACE - } IMsRdpClient3Vtbl; - - interface IMsRdpClient3 - { - CONST_VTBL struct IMsRdpClient3Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsRdpClient3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsRdpClient3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsRdpClient3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsRdpClient3_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsRdpClient3_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsRdpClient3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsRdpClient3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IMsRdpClient3_put_Server(This,pServer) \ - ( (This)->lpVtbl -> put_Server(This,pServer) ) - -#define IMsRdpClient3_get_Server(This,pServer) \ - ( (This)->lpVtbl -> get_Server(This,pServer) ) - -#define IMsRdpClient3_put_Domain(This,pDomain) \ - ( (This)->lpVtbl -> put_Domain(This,pDomain) ) - -#define IMsRdpClient3_get_Domain(This,pDomain) \ - ( (This)->lpVtbl -> get_Domain(This,pDomain) ) - -#define IMsRdpClient3_put_UserName(This,pUserName) \ - ( (This)->lpVtbl -> put_UserName(This,pUserName) ) - -#define IMsRdpClient3_get_UserName(This,pUserName) \ - ( (This)->lpVtbl -> get_UserName(This,pUserName) ) - -#define IMsRdpClient3_put_DisconnectedText(This,pDisconnectedText) \ - ( (This)->lpVtbl -> put_DisconnectedText(This,pDisconnectedText) ) - -#define IMsRdpClient3_get_DisconnectedText(This,pDisconnectedText) \ - ( (This)->lpVtbl -> get_DisconnectedText(This,pDisconnectedText) ) - -#define IMsRdpClient3_put_ConnectingText(This,pConnectingText) \ - ( (This)->lpVtbl -> put_ConnectingText(This,pConnectingText) ) - -#define IMsRdpClient3_get_ConnectingText(This,pConnectingText) \ - ( (This)->lpVtbl -> get_ConnectingText(This,pConnectingText) ) - -#define IMsRdpClient3_get_Connected(This,pIsConnected) \ - ( (This)->lpVtbl -> get_Connected(This,pIsConnected) ) - -#define IMsRdpClient3_put_DesktopWidth(This,pVal) \ - ( (This)->lpVtbl -> put_DesktopWidth(This,pVal) ) - -#define IMsRdpClient3_get_DesktopWidth(This,pVal) \ - ( (This)->lpVtbl -> get_DesktopWidth(This,pVal) ) - -#define IMsRdpClient3_put_DesktopHeight(This,pVal) \ - ( (This)->lpVtbl -> put_DesktopHeight(This,pVal) ) - -#define IMsRdpClient3_get_DesktopHeight(This,pVal) \ - ( (This)->lpVtbl -> get_DesktopHeight(This,pVal) ) - -#define IMsRdpClient3_put_StartConnected(This,pfStartConnected) \ - ( (This)->lpVtbl -> put_StartConnected(This,pfStartConnected) ) - -#define IMsRdpClient3_get_StartConnected(This,pfStartConnected) \ - ( (This)->lpVtbl -> get_StartConnected(This,pfStartConnected) ) - -#define IMsRdpClient3_get_HorizontalScrollBarVisible(This,pfHScrollVisible) \ - ( (This)->lpVtbl -> get_HorizontalScrollBarVisible(This,pfHScrollVisible) ) - -#define IMsRdpClient3_get_VerticalScrollBarVisible(This,pfVScrollVisible) \ - ( (This)->lpVtbl -> get_VerticalScrollBarVisible(This,pfVScrollVisible) ) - -#define IMsRdpClient3_put_FullScreenTitle(This,rhs) \ - ( (This)->lpVtbl -> put_FullScreenTitle(This,rhs) ) - -#define IMsRdpClient3_get_CipherStrength(This,pCipherStrength) \ - ( (This)->lpVtbl -> get_CipherStrength(This,pCipherStrength) ) - -#define IMsRdpClient3_get_Version(This,pVersion) \ - ( (This)->lpVtbl -> get_Version(This,pVersion) ) - -#define IMsRdpClient3_get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) \ - ( (This)->lpVtbl -> get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) ) - -#define IMsRdpClient3_get_SecuredSettings(This,ppSecuredSettings) \ - ( (This)->lpVtbl -> get_SecuredSettings(This,ppSecuredSettings) ) - -#define IMsRdpClient3_get_AdvancedSettings(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings(This,ppAdvSettings) ) - -#define IMsRdpClient3_get_Debugger(This,ppDebugger) \ - ( (This)->lpVtbl -> get_Debugger(This,ppDebugger) ) - -#define IMsRdpClient3_Connect(This) \ - ( (This)->lpVtbl -> Connect(This) ) - -#define IMsRdpClient3_Disconnect(This) \ - ( (This)->lpVtbl -> Disconnect(This) ) - -#define IMsRdpClient3_CreateVirtualChannels(This,newVal) \ - ( (This)->lpVtbl -> CreateVirtualChannels(This,newVal) ) - -#define IMsRdpClient3_SendOnVirtualChannel(This,chanName,ChanData) \ - ( (This)->lpVtbl -> SendOnVirtualChannel(This,chanName,ChanData) ) - - -#define IMsRdpClient3_put_ColorDepth(This,pcolorDepth) \ - ( (This)->lpVtbl -> put_ColorDepth(This,pcolorDepth) ) - -#define IMsRdpClient3_get_ColorDepth(This,pcolorDepth) \ - ( (This)->lpVtbl -> get_ColorDepth(This,pcolorDepth) ) - -#define IMsRdpClient3_get_AdvancedSettings2(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings2(This,ppAdvSettings) ) - -#define IMsRdpClient3_get_SecuredSettings2(This,ppSecuredSettings) \ - ( (This)->lpVtbl -> get_SecuredSettings2(This,ppSecuredSettings) ) - -#define IMsRdpClient3_get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) \ - ( (This)->lpVtbl -> get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) ) - -#define IMsRdpClient3_put_FullScreen(This,pfFullScreen) \ - ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) ) - -#define IMsRdpClient3_get_FullScreen(This,pfFullScreen) \ - ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) ) - -#define IMsRdpClient3_SetVirtualChannelOptions(This,chanName,chanOptions) \ - ( (This)->lpVtbl -> SetVirtualChannelOptions(This,chanName,chanOptions) ) - -#define IMsRdpClient3_GetVirtualChannelOptions(This,chanName,pChanOptions) \ - ( (This)->lpVtbl -> GetVirtualChannelOptions(This,chanName,pChanOptions) ) - -#define IMsRdpClient3_RequestClose(This,pCloseStatus) \ - ( (This)->lpVtbl -> RequestClose(This,pCloseStatus) ) - - -#define IMsRdpClient3_get_AdvancedSettings3(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings3(This,ppAdvSettings) ) - -#define IMsRdpClient3_put_ConnectedStatusText(This,pConnectedStatusText) \ - ( (This)->lpVtbl -> put_ConnectedStatusText(This,pConnectedStatusText) ) - -#define IMsRdpClient3_get_ConnectedStatusText(This,pConnectedStatusText) \ - ( (This)->lpVtbl -> get_ConnectedStatusText(This,pConnectedStatusText) ) - - -#define IMsRdpClient3_get_AdvancedSettings4(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings4(This,ppAdvSettings) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMsRdpClient3_INTERFACE_DEFINED__ */ - - -#ifndef __IMsRdpClient4_INTERFACE_DEFINED__ -#define __IMsRdpClient4_INTERFACE_DEFINED__ - -/* interface IMsRdpClient4 */ -/* [object][oleautomation][dual][uuid] */ - - -EXTERN_C const IID IID_IMsRdpClient4; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("095E0738-D97D-488B-B9F6-DD0E8D66C0DE") - IMsRdpClient4 : public IMsRdpClient3 - { - public: - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AdvancedSettings5( - /* [retval][out] */ IMsRdpClientAdvancedSettings4 **ppAdvSettings5) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsRdpClient4Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsRdpClient4 * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsRdpClient4 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsRdpClient4 * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsRdpClient4 * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsRdpClient4 * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsRdpClient4 * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsRdpClient4 * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Server )( - IMsRdpClient4 * This, - /* [in] */ BSTR pServer); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Server )( - IMsRdpClient4 * This, - /* [retval][out] */ BSTR *pServer); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Domain )( - IMsRdpClient4 * This, - /* [in] */ BSTR pDomain); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Domain )( - IMsRdpClient4 * This, - /* [retval][out] */ BSTR *pDomain); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UserName )( - IMsRdpClient4 * This, - /* [in] */ BSTR pUserName); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )( - IMsRdpClient4 * This, - /* [retval][out] */ BSTR *pUserName); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisconnectedText )( - IMsRdpClient4 * This, - /* [in] */ BSTR pDisconnectedText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisconnectedText )( - IMsRdpClient4 * This, - /* [retval][out] */ BSTR *pDisconnectedText); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectingText )( - IMsRdpClient4 * This, - /* [in] */ BSTR pConnectingText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectingText )( - IMsRdpClient4 * This, - /* [retval][out] */ BSTR *pConnectingText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Connected )( - IMsRdpClient4 * This, - /* [retval][out] */ short *pIsConnected); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopWidth )( - IMsRdpClient4 * This, - /* [in] */ long pVal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopWidth )( - IMsRdpClient4 * This, - /* [retval][out] */ long *pVal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopHeight )( - IMsRdpClient4 * This, - /* [in] */ long pVal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopHeight )( - IMsRdpClient4 * This, - /* [retval][out] */ long *pVal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartConnected )( - IMsRdpClient4 * This, - /* [in] */ long pfStartConnected); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartConnected )( - IMsRdpClient4 * This, - /* [retval][out] */ long *pfStartConnected); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalScrollBarVisible )( - IMsRdpClient4 * This, - /* [retval][out] */ long *pfHScrollVisible); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalScrollBarVisible )( - IMsRdpClient4 * This, - /* [retval][out] */ long *pfVScrollVisible); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreenTitle )( - IMsRdpClient4 * This, - /* [in] */ BSTR rhs); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CipherStrength )( - IMsRdpClient4 * This, - /* [retval][out] */ long *pCipherStrength); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )( - IMsRdpClient4 * This, - /* [retval][out] */ BSTR *pVersion); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettingsEnabled )( - IMsRdpClient4 * This, - /* [retval][out] */ long *pSecuredSettingsEnabled); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings )( - IMsRdpClient4 * This, - /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings )( - IMsRdpClient4 * This, - /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings); - - /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Debugger )( - IMsRdpClient4 * This, - /* [retval][out] */ IMsTscDebug **ppDebugger); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Connect )( - IMsRdpClient4 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( - IMsRdpClient4 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateVirtualChannels )( - IMsRdpClient4 * This, - /* [in] */ BSTR newVal); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *SendOnVirtualChannel )( - IMsRdpClient4 * This, - /* [in] */ BSTR chanName, - /* [in] */ BSTR ChanData); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ColorDepth )( - IMsRdpClient4 * This, - /* [in] */ long pcolorDepth); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ColorDepth )( - IMsRdpClient4 * This, - /* [retval][out] */ long *pcolorDepth); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings2 )( - IMsRdpClient4 * This, - /* [retval][out] */ IMsRdpClientAdvancedSettings **ppAdvSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings2 )( - IMsRdpClient4 * This, - /* [retval][out] */ IMsRdpClientSecuredSettings **ppSecuredSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtendedDisconnectReason )( - IMsRdpClient4 * This, - /* [retval][out] */ ExtendedDisconnectReasonCode *pExtendedDisconnectReason); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )( - IMsRdpClient4 * This, - /* [in] */ VARIANT_BOOL pfFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )( - IMsRdpClient4 * This, - /* [retval][out] */ VARIANT_BOOL *pfFullScreen); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetVirtualChannelOptions )( - IMsRdpClient4 * This, - /* [in] */ BSTR chanName, - /* [in] */ long chanOptions); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetVirtualChannelOptions )( - IMsRdpClient4 * This, - /* [in] */ BSTR chanName, - /* [retval][out] */ long *pChanOptions); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *RequestClose )( - IMsRdpClient4 * This, - /* [retval][out] */ ControlCloseStatus *pCloseStatus); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings3 )( - IMsRdpClient4 * This, - /* [retval][out] */ IMsRdpClientAdvancedSettings2 **ppAdvSettings); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectedStatusText )( - IMsRdpClient4 * This, - /* [in] */ BSTR pConnectedStatusText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectedStatusText )( - IMsRdpClient4 * This, - /* [retval][out] */ BSTR *pConnectedStatusText); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings4 )( - IMsRdpClient4 * This, - /* [retval][out] */ IMsRdpClientAdvancedSettings3 **ppAdvSettings); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings5 )( - IMsRdpClient4 * This, - /* [retval][out] */ IMsRdpClientAdvancedSettings4 **ppAdvSettings5); - - END_INTERFACE - } IMsRdpClient4Vtbl; - - interface IMsRdpClient4 - { - CONST_VTBL struct IMsRdpClient4Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsRdpClient4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsRdpClient4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsRdpClient4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsRdpClient4_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsRdpClient4_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsRdpClient4_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsRdpClient4_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IMsRdpClient4_put_Server(This,pServer) \ - ( (This)->lpVtbl -> put_Server(This,pServer) ) - -#define IMsRdpClient4_get_Server(This,pServer) \ - ( (This)->lpVtbl -> get_Server(This,pServer) ) - -#define IMsRdpClient4_put_Domain(This,pDomain) \ - ( (This)->lpVtbl -> put_Domain(This,pDomain) ) - -#define IMsRdpClient4_get_Domain(This,pDomain) \ - ( (This)->lpVtbl -> get_Domain(This,pDomain) ) - -#define IMsRdpClient4_put_UserName(This,pUserName) \ - ( (This)->lpVtbl -> put_UserName(This,pUserName) ) - -#define IMsRdpClient4_get_UserName(This,pUserName) \ - ( (This)->lpVtbl -> get_UserName(This,pUserName) ) - -#define IMsRdpClient4_put_DisconnectedText(This,pDisconnectedText) \ - ( (This)->lpVtbl -> put_DisconnectedText(This,pDisconnectedText) ) - -#define IMsRdpClient4_get_DisconnectedText(This,pDisconnectedText) \ - ( (This)->lpVtbl -> get_DisconnectedText(This,pDisconnectedText) ) - -#define IMsRdpClient4_put_ConnectingText(This,pConnectingText) \ - ( (This)->lpVtbl -> put_ConnectingText(This,pConnectingText) ) - -#define IMsRdpClient4_get_ConnectingText(This,pConnectingText) \ - ( (This)->lpVtbl -> get_ConnectingText(This,pConnectingText) ) - -#define IMsRdpClient4_get_Connected(This,pIsConnected) \ - ( (This)->lpVtbl -> get_Connected(This,pIsConnected) ) - -#define IMsRdpClient4_put_DesktopWidth(This,pVal) \ - ( (This)->lpVtbl -> put_DesktopWidth(This,pVal) ) - -#define IMsRdpClient4_get_DesktopWidth(This,pVal) \ - ( (This)->lpVtbl -> get_DesktopWidth(This,pVal) ) - -#define IMsRdpClient4_put_DesktopHeight(This,pVal) \ - ( (This)->lpVtbl -> put_DesktopHeight(This,pVal) ) - -#define IMsRdpClient4_get_DesktopHeight(This,pVal) \ - ( (This)->lpVtbl -> get_DesktopHeight(This,pVal) ) - -#define IMsRdpClient4_put_StartConnected(This,pfStartConnected) \ - ( (This)->lpVtbl -> put_StartConnected(This,pfStartConnected) ) - -#define IMsRdpClient4_get_StartConnected(This,pfStartConnected) \ - ( (This)->lpVtbl -> get_StartConnected(This,pfStartConnected) ) - -#define IMsRdpClient4_get_HorizontalScrollBarVisible(This,pfHScrollVisible) \ - ( (This)->lpVtbl -> get_HorizontalScrollBarVisible(This,pfHScrollVisible) ) - -#define IMsRdpClient4_get_VerticalScrollBarVisible(This,pfVScrollVisible) \ - ( (This)->lpVtbl -> get_VerticalScrollBarVisible(This,pfVScrollVisible) ) - -#define IMsRdpClient4_put_FullScreenTitle(This,rhs) \ - ( (This)->lpVtbl -> put_FullScreenTitle(This,rhs) ) - -#define IMsRdpClient4_get_CipherStrength(This,pCipherStrength) \ - ( (This)->lpVtbl -> get_CipherStrength(This,pCipherStrength) ) - -#define IMsRdpClient4_get_Version(This,pVersion) \ - ( (This)->lpVtbl -> get_Version(This,pVersion) ) - -#define IMsRdpClient4_get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) \ - ( (This)->lpVtbl -> get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) ) - -#define IMsRdpClient4_get_SecuredSettings(This,ppSecuredSettings) \ - ( (This)->lpVtbl -> get_SecuredSettings(This,ppSecuredSettings) ) - -#define IMsRdpClient4_get_AdvancedSettings(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings(This,ppAdvSettings) ) - -#define IMsRdpClient4_get_Debugger(This,ppDebugger) \ - ( (This)->lpVtbl -> get_Debugger(This,ppDebugger) ) - -#define IMsRdpClient4_Connect(This) \ - ( (This)->lpVtbl -> Connect(This) ) - -#define IMsRdpClient4_Disconnect(This) \ - ( (This)->lpVtbl -> Disconnect(This) ) - -#define IMsRdpClient4_CreateVirtualChannels(This,newVal) \ - ( (This)->lpVtbl -> CreateVirtualChannels(This,newVal) ) - -#define IMsRdpClient4_SendOnVirtualChannel(This,chanName,ChanData) \ - ( (This)->lpVtbl -> SendOnVirtualChannel(This,chanName,ChanData) ) - - -#define IMsRdpClient4_put_ColorDepth(This,pcolorDepth) \ - ( (This)->lpVtbl -> put_ColorDepth(This,pcolorDepth) ) - -#define IMsRdpClient4_get_ColorDepth(This,pcolorDepth) \ - ( (This)->lpVtbl -> get_ColorDepth(This,pcolorDepth) ) - -#define IMsRdpClient4_get_AdvancedSettings2(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings2(This,ppAdvSettings) ) - -#define IMsRdpClient4_get_SecuredSettings2(This,ppSecuredSettings) \ - ( (This)->lpVtbl -> get_SecuredSettings2(This,ppSecuredSettings) ) - -#define IMsRdpClient4_get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) \ - ( (This)->lpVtbl -> get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) ) - -#define IMsRdpClient4_put_FullScreen(This,pfFullScreen) \ - ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) ) - -#define IMsRdpClient4_get_FullScreen(This,pfFullScreen) \ - ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) ) - -#define IMsRdpClient4_SetVirtualChannelOptions(This,chanName,chanOptions) \ - ( (This)->lpVtbl -> SetVirtualChannelOptions(This,chanName,chanOptions) ) - -#define IMsRdpClient4_GetVirtualChannelOptions(This,chanName,pChanOptions) \ - ( (This)->lpVtbl -> GetVirtualChannelOptions(This,chanName,pChanOptions) ) - -#define IMsRdpClient4_RequestClose(This,pCloseStatus) \ - ( (This)->lpVtbl -> RequestClose(This,pCloseStatus) ) - - -#define IMsRdpClient4_get_AdvancedSettings3(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings3(This,ppAdvSettings) ) - -#define IMsRdpClient4_put_ConnectedStatusText(This,pConnectedStatusText) \ - ( (This)->lpVtbl -> put_ConnectedStatusText(This,pConnectedStatusText) ) - -#define IMsRdpClient4_get_ConnectedStatusText(This,pConnectedStatusText) \ - ( (This)->lpVtbl -> get_ConnectedStatusText(This,pConnectedStatusText) ) - - -#define IMsRdpClient4_get_AdvancedSettings4(This,ppAdvSettings) \ - ( (This)->lpVtbl -> get_AdvancedSettings4(This,ppAdvSettings) ) - - -#define IMsRdpClient4_get_AdvancedSettings5(This,ppAdvSettings5) \ - ( (This)->lpVtbl -> get_AdvancedSettings5(This,ppAdvSettings5) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMsRdpClient4_INTERFACE_DEFINED__ */ - - -#ifndef __IMsTscNonScriptable_INTERFACE_DEFINED__ -#define __IMsTscNonScriptable_INTERFACE_DEFINED__ - -/* interface IMsTscNonScriptable */ -/* [object][uuid] */ - - -EXTERN_C const IID IID_IMsTscNonScriptable; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("C1E6743A-41C1-4A74-832A-0DD06C1C7A0E") - IMsTscNonScriptable : public IUnknown - { - public: - virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ClearTextPassword( - /* [in] */ BSTR rhs) = 0; - - virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PortablePassword( - /* [in] */ BSTR pPortablePass) = 0; - - virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PortablePassword( - /* [retval][out] */ BSTR *pPortablePass) = 0; - - virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PortableSalt( - /* [in] */ BSTR pPortableSalt) = 0; - - virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PortableSalt( - /* [retval][out] */ BSTR *pPortableSalt) = 0; - - virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_BinaryPassword( - /* [in] */ BSTR pBinaryPassword) = 0; - - virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BinaryPassword( - /* [retval][out] */ BSTR *pBinaryPassword) = 0; - - virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_BinarySalt( - /* [in] */ BSTR pSalt) = 0; - - virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BinarySalt( - /* [retval][out] */ BSTR *pSalt) = 0; - - virtual HRESULT STDMETHODCALLTYPE ResetPassword( void) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsTscNonScriptableVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsTscNonScriptable * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsTscNonScriptable * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsTscNonScriptable * This); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( - IMsTscNonScriptable * This, - /* [in] */ BSTR rhs); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortablePassword )( - IMsTscNonScriptable * This, - /* [in] */ BSTR pPortablePass); - - /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortablePassword )( - IMsTscNonScriptable * This, - /* [retval][out] */ BSTR *pPortablePass); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortableSalt )( - IMsTscNonScriptable * This, - /* [in] */ BSTR pPortableSalt); - - /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortableSalt )( - IMsTscNonScriptable * This, - /* [retval][out] */ BSTR *pPortableSalt); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinaryPassword )( - IMsTscNonScriptable * This, - /* [in] */ BSTR pBinaryPassword); - - /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinaryPassword )( - IMsTscNonScriptable * This, - /* [retval][out] */ BSTR *pBinaryPassword); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinarySalt )( - IMsTscNonScriptable * This, - /* [in] */ BSTR pSalt); - - /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinarySalt )( - IMsTscNonScriptable * This, - /* [retval][out] */ BSTR *pSalt); - - HRESULT ( STDMETHODCALLTYPE *ResetPassword )( - IMsTscNonScriptable * This); - - END_INTERFACE - } IMsTscNonScriptableVtbl; - - interface IMsTscNonScriptable - { - CONST_VTBL struct IMsTscNonScriptableVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsTscNonScriptable_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsTscNonScriptable_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsTscNonScriptable_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsTscNonScriptable_put_ClearTextPassword(This,rhs) \ - ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) - -#define IMsTscNonScriptable_put_PortablePassword(This,pPortablePass) \ - ( (This)->lpVtbl -> put_PortablePassword(This,pPortablePass) ) - -#define IMsTscNonScriptable_get_PortablePassword(This,pPortablePass) \ - ( (This)->lpVtbl -> get_PortablePassword(This,pPortablePass) ) - -#define IMsTscNonScriptable_put_PortableSalt(This,pPortableSalt) \ - ( (This)->lpVtbl -> put_PortableSalt(This,pPortableSalt) ) - -#define IMsTscNonScriptable_get_PortableSalt(This,pPortableSalt) \ - ( (This)->lpVtbl -> get_PortableSalt(This,pPortableSalt) ) - -#define IMsTscNonScriptable_put_BinaryPassword(This,pBinaryPassword) \ - ( (This)->lpVtbl -> put_BinaryPassword(This,pBinaryPassword) ) - -#define IMsTscNonScriptable_get_BinaryPassword(This,pBinaryPassword) \ - ( (This)->lpVtbl -> get_BinaryPassword(This,pBinaryPassword) ) - -#define IMsTscNonScriptable_put_BinarySalt(This,pSalt) \ - ( (This)->lpVtbl -> put_BinarySalt(This,pSalt) ) - -#define IMsTscNonScriptable_get_BinarySalt(This,pSalt) \ - ( (This)->lpVtbl -> get_BinarySalt(This,pSalt) ) - -#define IMsTscNonScriptable_ResetPassword(This) \ - ( (This)->lpVtbl -> ResetPassword(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMsTscNonScriptable_INTERFACE_DEFINED__ */ - - -#ifndef __IMsRdpClientNonScriptable_INTERFACE_DEFINED__ -#define __IMsRdpClientNonScriptable_INTERFACE_DEFINED__ - -/* interface IMsRdpClientNonScriptable */ -/* [object][uuid] */ - - -EXTERN_C const IID IID_IMsRdpClientNonScriptable; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2F079C4C-87B2-4AFD-97AB-20CDB43038AE") - IMsRdpClientNonScriptable : public IMsTscNonScriptable - { - public: - virtual HRESULT STDMETHODCALLTYPE NotifyRedirectDeviceChange( - /* [in] */ UINT_PTR wParam, - /* [in] */ LONG_PTR lParam) = 0; - - virtual HRESULT STDMETHODCALLTYPE SendKeys( - /* [in] */ long numKeys, - /* [in] */ VARIANT_BOOL *pbArrayKeyUp, - /* [in] */ long *plKeyData) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsRdpClientNonScriptableVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsRdpClientNonScriptable * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsRdpClientNonScriptable * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsRdpClientNonScriptable * This); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( - IMsRdpClientNonScriptable * This, - /* [in] */ BSTR rhs); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortablePassword )( - IMsRdpClientNonScriptable * This, - /* [in] */ BSTR pPortablePass); - - /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortablePassword )( - IMsRdpClientNonScriptable * This, - /* [retval][out] */ BSTR *pPortablePass); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortableSalt )( - IMsRdpClientNonScriptable * This, - /* [in] */ BSTR pPortableSalt); - - /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortableSalt )( - IMsRdpClientNonScriptable * This, - /* [retval][out] */ BSTR *pPortableSalt); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinaryPassword )( - IMsRdpClientNonScriptable * This, - /* [in] */ BSTR pBinaryPassword); - - /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinaryPassword )( - IMsRdpClientNonScriptable * This, - /* [retval][out] */ BSTR *pBinaryPassword); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinarySalt )( - IMsRdpClientNonScriptable * This, - /* [in] */ BSTR pSalt); - - /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinarySalt )( - IMsRdpClientNonScriptable * This, - /* [retval][out] */ BSTR *pSalt); - - HRESULT ( STDMETHODCALLTYPE *ResetPassword )( - IMsRdpClientNonScriptable * This); - - HRESULT ( STDMETHODCALLTYPE *NotifyRedirectDeviceChange )( - IMsRdpClientNonScriptable * This, - /* [in] */ UINT_PTR wParam, - /* [in] */ LONG_PTR lParam); - - HRESULT ( STDMETHODCALLTYPE *SendKeys )( - IMsRdpClientNonScriptable * This, - /* [in] */ long numKeys, - /* [in] */ VARIANT_BOOL *pbArrayKeyUp, - /* [in] */ long *plKeyData); - - END_INTERFACE - } IMsRdpClientNonScriptableVtbl; - - interface IMsRdpClientNonScriptable - { - CONST_VTBL struct IMsRdpClientNonScriptableVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsRdpClientNonScriptable_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsRdpClientNonScriptable_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsRdpClientNonScriptable_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsRdpClientNonScriptable_put_ClearTextPassword(This,rhs) \ - ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) - -#define IMsRdpClientNonScriptable_put_PortablePassword(This,pPortablePass) \ - ( (This)->lpVtbl -> put_PortablePassword(This,pPortablePass) ) - -#define IMsRdpClientNonScriptable_get_PortablePassword(This,pPortablePass) \ - ( (This)->lpVtbl -> get_PortablePassword(This,pPortablePass) ) - -#define IMsRdpClientNonScriptable_put_PortableSalt(This,pPortableSalt) \ - ( (This)->lpVtbl -> put_PortableSalt(This,pPortableSalt) ) - -#define IMsRdpClientNonScriptable_get_PortableSalt(This,pPortableSalt) \ - ( (This)->lpVtbl -> get_PortableSalt(This,pPortableSalt) ) - -#define IMsRdpClientNonScriptable_put_BinaryPassword(This,pBinaryPassword) \ - ( (This)->lpVtbl -> put_BinaryPassword(This,pBinaryPassword) ) - -#define IMsRdpClientNonScriptable_get_BinaryPassword(This,pBinaryPassword) \ - ( (This)->lpVtbl -> get_BinaryPassword(This,pBinaryPassword) ) - -#define IMsRdpClientNonScriptable_put_BinarySalt(This,pSalt) \ - ( (This)->lpVtbl -> put_BinarySalt(This,pSalt) ) - -#define IMsRdpClientNonScriptable_get_BinarySalt(This,pSalt) \ - ( (This)->lpVtbl -> get_BinarySalt(This,pSalt) ) - -#define IMsRdpClientNonScriptable_ResetPassword(This) \ - ( (This)->lpVtbl -> ResetPassword(This) ) - - -#define IMsRdpClientNonScriptable_NotifyRedirectDeviceChange(This,wParam,lParam) \ - ( (This)->lpVtbl -> NotifyRedirectDeviceChange(This,wParam,lParam) ) - -#define IMsRdpClientNonScriptable_SendKeys(This,numKeys,pbArrayKeyUp,plKeyData) \ - ( (This)->lpVtbl -> SendKeys(This,numKeys,pbArrayKeyUp,plKeyData) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMsRdpClientNonScriptable_INTERFACE_DEFINED__ */ - - -#ifndef __IMsRdpClientNonScriptable2_INTERFACE_DEFINED__ -#define __IMsRdpClientNonScriptable2_INTERFACE_DEFINED__ - -/* interface IMsRdpClientNonScriptable2 */ -/* [object][uuid] */ - - -EXTERN_C const IID IID_IMsRdpClientNonScriptable2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("17A5E535-4072-4FA4-AF32-C8D0D47345E9") - IMsRdpClientNonScriptable2 : public IMsRdpClientNonScriptable - { - public: - virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_UIParentWindowHandle( - /* [in] */ HWND phwndUIParentWindowHandle) = 0; - - virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_UIParentWindowHandle( - /* [retval][out] */ HWND *phwndUIParentWindowHandle) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsRdpClientNonScriptable2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsRdpClientNonScriptable2 * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsRdpClientNonScriptable2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsRdpClientNonScriptable2 * This); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( - IMsRdpClientNonScriptable2 * This, - /* [in] */ BSTR rhs); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortablePassword )( - IMsRdpClientNonScriptable2 * This, - /* [in] */ BSTR pPortablePass); - - /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortablePassword )( - IMsRdpClientNonScriptable2 * This, - /* [retval][out] */ BSTR *pPortablePass); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortableSalt )( - IMsRdpClientNonScriptable2 * This, - /* [in] */ BSTR pPortableSalt); - - /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortableSalt )( - IMsRdpClientNonScriptable2 * This, - /* [retval][out] */ BSTR *pPortableSalt); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinaryPassword )( - IMsRdpClientNonScriptable2 * This, - /* [in] */ BSTR pBinaryPassword); - - /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinaryPassword )( - IMsRdpClientNonScriptable2 * This, - /* [retval][out] */ BSTR *pBinaryPassword); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinarySalt )( - IMsRdpClientNonScriptable2 * This, - /* [in] */ BSTR pSalt); - - /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinarySalt )( - IMsRdpClientNonScriptable2 * This, - /* [retval][out] */ BSTR *pSalt); - - HRESULT ( STDMETHODCALLTYPE *ResetPassword )( - IMsRdpClientNonScriptable2 * This); - - HRESULT ( STDMETHODCALLTYPE *NotifyRedirectDeviceChange )( - IMsRdpClientNonScriptable2 * This, - /* [in] */ UINT_PTR wParam, - /* [in] */ LONG_PTR lParam); - - HRESULT ( STDMETHODCALLTYPE *SendKeys )( - IMsRdpClientNonScriptable2 * This, - /* [in] */ long numKeys, - /* [in] */ VARIANT_BOOL *pbArrayKeyUp, - /* [in] */ long *plKeyData); - - /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_UIParentWindowHandle )( - IMsRdpClientNonScriptable2 * This, - /* [in] */ HWND phwndUIParentWindowHandle); - - /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_UIParentWindowHandle )( - IMsRdpClientNonScriptable2 * This, - /* [retval][out] */ HWND *phwndUIParentWindowHandle); - - END_INTERFACE - } IMsRdpClientNonScriptable2Vtbl; - - interface IMsRdpClientNonScriptable2 - { - CONST_VTBL struct IMsRdpClientNonScriptable2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsRdpClientNonScriptable2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsRdpClientNonScriptable2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsRdpClientNonScriptable2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsRdpClientNonScriptable2_put_ClearTextPassword(This,rhs) \ - ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) - -#define IMsRdpClientNonScriptable2_put_PortablePassword(This,pPortablePass) \ - ( (This)->lpVtbl -> put_PortablePassword(This,pPortablePass) ) - -#define IMsRdpClientNonScriptable2_get_PortablePassword(This,pPortablePass) \ - ( (This)->lpVtbl -> get_PortablePassword(This,pPortablePass) ) - -#define IMsRdpClientNonScriptable2_put_PortableSalt(This,pPortableSalt) \ - ( (This)->lpVtbl -> put_PortableSalt(This,pPortableSalt) ) - -#define IMsRdpClientNonScriptable2_get_PortableSalt(This,pPortableSalt) \ - ( (This)->lpVtbl -> get_PortableSalt(This,pPortableSalt) ) - -#define IMsRdpClientNonScriptable2_put_BinaryPassword(This,pBinaryPassword) \ - ( (This)->lpVtbl -> put_BinaryPassword(This,pBinaryPassword) ) - -#define IMsRdpClientNonScriptable2_get_BinaryPassword(This,pBinaryPassword) \ - ( (This)->lpVtbl -> get_BinaryPassword(This,pBinaryPassword) ) - -#define IMsRdpClientNonScriptable2_put_BinarySalt(This,pSalt) \ - ( (This)->lpVtbl -> put_BinarySalt(This,pSalt) ) - -#define IMsRdpClientNonScriptable2_get_BinarySalt(This,pSalt) \ - ( (This)->lpVtbl -> get_BinarySalt(This,pSalt) ) - -#define IMsRdpClientNonScriptable2_ResetPassword(This) \ - ( (This)->lpVtbl -> ResetPassword(This) ) - - -#define IMsRdpClientNonScriptable2_NotifyRedirectDeviceChange(This,wParam,lParam) \ - ( (This)->lpVtbl -> NotifyRedirectDeviceChange(This,wParam,lParam) ) - -#define IMsRdpClientNonScriptable2_SendKeys(This,numKeys,pbArrayKeyUp,plKeyData) \ - ( (This)->lpVtbl -> SendKeys(This,numKeys,pbArrayKeyUp,plKeyData) ) - - -#define IMsRdpClientNonScriptable2_put_UIParentWindowHandle(This,phwndUIParentWindowHandle) \ - ( (This)->lpVtbl -> put_UIParentWindowHandle(This,phwndUIParentWindowHandle) ) - -#define IMsRdpClientNonScriptable2_get_UIParentWindowHandle(This,phwndUIParentWindowHandle) \ - ( (This)->lpVtbl -> get_UIParentWindowHandle(This,phwndUIParentWindowHandle) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMsRdpClientNonScriptable2_INTERFACE_DEFINED__ */ - - -#ifndef __IMsTscAdvancedSettings_INTERFACE_DEFINED__ -#define __IMsTscAdvancedSettings_INTERFACE_DEFINED__ - -/* interface IMsTscAdvancedSettings */ -/* [object][oleautomation][dual][uuid] */ - - -EXTERN_C const IID IID_IMsTscAdvancedSettings; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("809945CC-4B3B-4A92-A6B0-DBF9B5F2EF2D") - IMsTscAdvancedSettings : public IDispatch - { - public: - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Compress( - /* [in] */ long pcompress) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Compress( - /* [retval][out] */ long *pcompress) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapPeristence( - /* [in] */ long pbitmapPeristence) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapPeristence( - /* [retval][out] */ long *pbitmapPeristence) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_allowBackgroundInput( - /* [in] */ long pallowBackgroundInput) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_allowBackgroundInput( - /* [retval][out] */ long *pallowBackgroundInput) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_KeyBoardLayoutStr( - /* [in] */ BSTR rhs) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_PluginDlls( - /* [in] */ BSTR rhs) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_IconFile( - /* [in] */ BSTR rhs) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_IconIndex( - /* [in] */ long rhs) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ContainerHandledFullScreen( - /* [in] */ long pContainerHandledFullScreen) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ContainerHandledFullScreen( - /* [retval][out] */ long *pContainerHandledFullScreen) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DisableRdpdr( - /* [in] */ long pDisableRdpdr) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DisableRdpdr( - /* [retval][out] */ long *pDisableRdpdr) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsTscAdvancedSettingsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsTscAdvancedSettings * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsTscAdvancedSettings * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsTscAdvancedSettings * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsTscAdvancedSettings * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsTscAdvancedSettings * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsTscAdvancedSettings * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsTscAdvancedSettings * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Compress )( - IMsTscAdvancedSettings * This, - /* [in] */ long pcompress); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Compress )( - IMsTscAdvancedSettings * This, - /* [retval][out] */ long *pcompress); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPeristence )( - IMsTscAdvancedSettings * This, - /* [in] */ long pbitmapPeristence); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPeristence )( - IMsTscAdvancedSettings * This, - /* [retval][out] */ long *pbitmapPeristence); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_allowBackgroundInput )( - IMsTscAdvancedSettings * This, - /* [in] */ long pallowBackgroundInput); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_allowBackgroundInput )( - IMsTscAdvancedSettings * This, - /* [retval][out] */ long *pallowBackgroundInput); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyBoardLayoutStr )( - IMsTscAdvancedSettings * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PluginDlls )( - IMsTscAdvancedSettings * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconFile )( - IMsTscAdvancedSettings * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconIndex )( - IMsTscAdvancedSettings * This, - /* [in] */ long rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerHandledFullScreen )( - IMsTscAdvancedSettings * This, - /* [in] */ long pContainerHandledFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerHandledFullScreen )( - IMsTscAdvancedSettings * This, - /* [retval][out] */ long *pContainerHandledFullScreen); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableRdpdr )( - IMsTscAdvancedSettings * This, - /* [in] */ long pDisableRdpdr); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableRdpdr )( - IMsTscAdvancedSettings * This, - /* [retval][out] */ long *pDisableRdpdr); - - END_INTERFACE - } IMsTscAdvancedSettingsVtbl; - - interface IMsTscAdvancedSettings - { - CONST_VTBL struct IMsTscAdvancedSettingsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsTscAdvancedSettings_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsTscAdvancedSettings_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsTscAdvancedSettings_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsTscAdvancedSettings_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsTscAdvancedSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsTscAdvancedSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsTscAdvancedSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IMsTscAdvancedSettings_put_Compress(This,pcompress) \ - ( (This)->lpVtbl -> put_Compress(This,pcompress) ) - -#define IMsTscAdvancedSettings_get_Compress(This,pcompress) \ - ( (This)->lpVtbl -> get_Compress(This,pcompress) ) - -#define IMsTscAdvancedSettings_put_BitmapPeristence(This,pbitmapPeristence) \ - ( (This)->lpVtbl -> put_BitmapPeristence(This,pbitmapPeristence) ) - -#define IMsTscAdvancedSettings_get_BitmapPeristence(This,pbitmapPeristence) \ - ( (This)->lpVtbl -> get_BitmapPeristence(This,pbitmapPeristence) ) - -#define IMsTscAdvancedSettings_put_allowBackgroundInput(This,pallowBackgroundInput) \ - ( (This)->lpVtbl -> put_allowBackgroundInput(This,pallowBackgroundInput) ) - -#define IMsTscAdvancedSettings_get_allowBackgroundInput(This,pallowBackgroundInput) \ - ( (This)->lpVtbl -> get_allowBackgroundInput(This,pallowBackgroundInput) ) - -#define IMsTscAdvancedSettings_put_KeyBoardLayoutStr(This,rhs) \ - ( (This)->lpVtbl -> put_KeyBoardLayoutStr(This,rhs) ) - -#define IMsTscAdvancedSettings_put_PluginDlls(This,rhs) \ - ( (This)->lpVtbl -> put_PluginDlls(This,rhs) ) - -#define IMsTscAdvancedSettings_put_IconFile(This,rhs) \ - ( (This)->lpVtbl -> put_IconFile(This,rhs) ) - -#define IMsTscAdvancedSettings_put_IconIndex(This,rhs) \ - ( (This)->lpVtbl -> put_IconIndex(This,rhs) ) - -#define IMsTscAdvancedSettings_put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ - ( (This)->lpVtbl -> put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) - -#define IMsTscAdvancedSettings_get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ - ( (This)->lpVtbl -> get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) - -#define IMsTscAdvancedSettings_put_DisableRdpdr(This,pDisableRdpdr) \ - ( (This)->lpVtbl -> put_DisableRdpdr(This,pDisableRdpdr) ) - -#define IMsTscAdvancedSettings_get_DisableRdpdr(This,pDisableRdpdr) \ - ( (This)->lpVtbl -> get_DisableRdpdr(This,pDisableRdpdr) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMsTscAdvancedSettings_INTERFACE_DEFINED__ */ - - -#ifndef __IMsRdpClientAdvancedSettings_INTERFACE_DEFINED__ -#define __IMsRdpClientAdvancedSettings_INTERFACE_DEFINED__ - -/* interface IMsRdpClientAdvancedSettings */ -/* [object][oleautomation][dual][uuid] */ - - -EXTERN_C const IID IID_IMsRdpClientAdvancedSettings; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("3C65B4AB-12B3-465B-ACD4-B8DAD3BFF9E2") - IMsRdpClientAdvancedSettings : public IMsTscAdvancedSettings - { - public: - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_SmoothScroll( - /* [in] */ long psmoothScroll) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SmoothScroll( - /* [retval][out] */ long *psmoothScroll) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_AcceleratorPassthrough( - /* [in] */ long pacceleratorPassthrough) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AcceleratorPassthrough( - /* [retval][out] */ long *pacceleratorPassthrough) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ShadowBitmap( - /* [in] */ long pshadowBitmap) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ShadowBitmap( - /* [retval][out] */ long *pshadowBitmap) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_TransportType( - /* [in] */ long ptransportType) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_TransportType( - /* [retval][out] */ long *ptransportType) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_SasSequence( - /* [in] */ long psasSequence) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SasSequence( - /* [retval][out] */ long *psasSequence) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_EncryptionEnabled( - /* [in] */ long pencryptionEnabled) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_EncryptionEnabled( - /* [retval][out] */ long *pencryptionEnabled) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DedicatedTerminal( - /* [in] */ long pdedicatedTerminal) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DedicatedTerminal( - /* [retval][out] */ long *pdedicatedTerminal) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RDPPort( - /* [in] */ long prdpPort) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RDPPort( - /* [retval][out] */ long *prdpPort) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_EnableMouse( - /* [in] */ long penableMouse) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_EnableMouse( - /* [retval][out] */ long *penableMouse) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DisableCtrlAltDel( - /* [in] */ long pdisableCtrlAltDel) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DisableCtrlAltDel( - /* [retval][out] */ long *pdisableCtrlAltDel) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_EnableWindowsKey( - /* [in] */ long penableWindowsKey) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_EnableWindowsKey( - /* [retval][out] */ long *penableWindowsKey) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DoubleClickDetect( - /* [in] */ long pdoubleClickDetect) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DoubleClickDetect( - /* [retval][out] */ long *pdoubleClickDetect) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_MaximizeShell( - /* [in] */ long pmaximizeShell) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_MaximizeShell( - /* [retval][out] */ long *pmaximizeShell) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyFullScreen( - /* [in] */ long photKeyFullScreen) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyFullScreen( - /* [retval][out] */ long *photKeyFullScreen) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyCtrlEsc( - /* [in] */ long photKeyCtrlEsc) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyCtrlEsc( - /* [retval][out] */ long *photKeyCtrlEsc) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyAltEsc( - /* [in] */ long photKeyAltEsc) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyAltEsc( - /* [retval][out] */ long *photKeyAltEsc) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyAltTab( - /* [in] */ long photKeyAltTab) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyAltTab( - /* [retval][out] */ long *photKeyAltTab) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyAltShiftTab( - /* [in] */ long photKeyAltShiftTab) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyAltShiftTab( - /* [retval][out] */ long *photKeyAltShiftTab) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyAltSpace( - /* [in] */ long photKeyAltSpace) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyAltSpace( - /* [retval][out] */ long *photKeyAltSpace) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyCtrlAltDel( - /* [in] */ long photKeyCtrlAltDel) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyCtrlAltDel( - /* [retval][out] */ long *photKeyCtrlAltDel) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_orderDrawThreshold( - /* [in] */ long porderDrawThreshold) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_orderDrawThreshold( - /* [retval][out] */ long *porderDrawThreshold) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapCacheSize( - /* [in] */ long pbitmapCacheSize) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapCacheSize( - /* [retval][out] */ long *pbitmapCacheSize) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapVirtualCacheSize( - /* [in] */ long pbitmapVirtualCacheSize) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapVirtualCacheSize( - /* [retval][out] */ long *pbitmapVirtualCacheSize) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ScaleBitmapCachesByBPP( - /* [in] */ long pbScale) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ScaleBitmapCachesByBPP( - /* [retval][out] */ long *pbScale) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_NumBitmapCaches( - /* [in] */ long pnumBitmapCaches) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_NumBitmapCaches( - /* [retval][out] */ long *pnumBitmapCaches) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_CachePersistenceActive( - /* [in] */ long pcachePersistenceActive) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CachePersistenceActive( - /* [retval][out] */ long *pcachePersistenceActive) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_PersistCacheDirectory( - /* [in] */ BSTR rhs) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_brushSupportLevel( - /* [in] */ long pbrushSupportLevel) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_brushSupportLevel( - /* [retval][out] */ long *pbrushSupportLevel) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_minInputSendInterval( - /* [in] */ long pminInputSendInterval) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_minInputSendInterval( - /* [retval][out] */ long *pminInputSendInterval) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_InputEventsAtOnce( - /* [in] */ long pinputEventsAtOnce) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_InputEventsAtOnce( - /* [retval][out] */ long *pinputEventsAtOnce) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_maxEventCount( - /* [in] */ long pmaxEventCount) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_maxEventCount( - /* [retval][out] */ long *pmaxEventCount) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_keepAliveInterval( - /* [in] */ long pkeepAliveInterval) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_keepAliveInterval( - /* [retval][out] */ long *pkeepAliveInterval) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_shutdownTimeout( - /* [in] */ long pshutdownTimeout) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_shutdownTimeout( - /* [retval][out] */ long *pshutdownTimeout) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_overallConnectionTimeout( - /* [in] */ long poverallConnectionTimeout) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_overallConnectionTimeout( - /* [retval][out] */ long *poverallConnectionTimeout) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_singleConnectionTimeout( - /* [in] */ long psingleConnectionTimeout) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_singleConnectionTimeout( - /* [retval][out] */ long *psingleConnectionTimeout) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_KeyboardType( - /* [in] */ long pkeyboardType) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_KeyboardType( - /* [retval][out] */ long *pkeyboardType) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_KeyboardSubType( - /* [in] */ long pkeyboardSubType) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_KeyboardSubType( - /* [retval][out] */ long *pkeyboardSubType) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_KeyboardFunctionKey( - /* [in] */ long pkeyboardFunctionKey) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_KeyboardFunctionKey( - /* [retval][out] */ long *pkeyboardFunctionKey) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_WinceFixedPalette( - /* [in] */ long pwinceFixedPalette) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_WinceFixedPalette( - /* [retval][out] */ long *pwinceFixedPalette) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectToServerConsole( - /* [in] */ VARIANT_BOOL pConnectToConsole) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ConnectToServerConsole( - /* [retval][out] */ VARIANT_BOOL *pConnectToConsole) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapPersistence( - /* [in] */ long pbitmapPersistence) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapPersistence( - /* [retval][out] */ long *pbitmapPersistence) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_MinutesToIdleTimeout( - /* [in] */ long pminutesToIdleTimeout) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_MinutesToIdleTimeout( - /* [retval][out] */ long *pminutesToIdleTimeout) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_SmartSizing( - /* [in] */ VARIANT_BOOL pfSmartSizing) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SmartSizing( - /* [retval][out] */ VARIANT_BOOL *pfSmartSizing) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RdpdrLocalPrintingDocName( - /* [in] */ BSTR pLocalPrintingDocName) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RdpdrLocalPrintingDocName( - /* [retval][out] */ BSTR *pLocalPrintingDocName) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RdpdrClipCleanTempDirString( - /* [in] */ BSTR clipCleanTempDirString) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RdpdrClipCleanTempDirString( - /* [retval][out] */ BSTR *clipCleanTempDirString) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RdpdrClipPasteInfoString( - /* [in] */ BSTR clipPasteInfoString) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RdpdrClipPasteInfoString( - /* [retval][out] */ BSTR *clipPasteInfoString) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ClearTextPassword( - /* [in] */ BSTR rhs) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DisplayConnectionBar( - /* [in] */ VARIANT_BOOL pDisplayConnectionBar) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DisplayConnectionBar( - /* [retval][out] */ VARIANT_BOOL *pDisplayConnectionBar) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_PinConnectionBar( - /* [in] */ VARIANT_BOOL pPinConnectionBar) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_PinConnectionBar( - /* [retval][out] */ VARIANT_BOOL *pPinConnectionBar) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_GrabFocusOnConnect( - /* [in] */ VARIANT_BOOL pfGrabFocusOnConnect) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_GrabFocusOnConnect( - /* [retval][out] */ VARIANT_BOOL *pfGrabFocusOnConnect) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_LoadBalanceInfo( - /* [in] */ BSTR pLBInfo) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_LoadBalanceInfo( - /* [retval][out] */ BSTR *pLBInfo) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RedirectDrives( - /* [in] */ VARIANT_BOOL pRedirectDrives) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RedirectDrives( - /* [retval][out] */ VARIANT_BOOL *pRedirectDrives) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RedirectPrinters( - /* [in] */ VARIANT_BOOL pRedirectPrinters) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RedirectPrinters( - /* [retval][out] */ VARIANT_BOOL *pRedirectPrinters) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RedirectPorts( - /* [in] */ VARIANT_BOOL pRedirectPorts) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RedirectPorts( - /* [retval][out] */ VARIANT_BOOL *pRedirectPorts) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RedirectSmartCards( - /* [in] */ VARIANT_BOOL pRedirectSmartCards) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RedirectSmartCards( - /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapVirtualCache16BppSize( - /* [in] */ long pBitmapVirtualCache16BppSize) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapVirtualCache16BppSize( - /* [retval][out] */ long *pBitmapVirtualCache16BppSize) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapVirtualCache24BppSize( - /* [in] */ long pBitmapVirtualCache24BppSize) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapVirtualCache24BppSize( - /* [retval][out] */ long *pBitmapVirtualCache24BppSize) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_PerformanceFlags( - /* [in] */ long pDisableList) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_PerformanceFlags( - /* [retval][out] */ long *pDisableList) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectWithEndpoint( - /* [in] */ VARIANT *rhs) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_NotifyTSPublicKey( - /* [in] */ VARIANT_BOOL pfNotify) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_NotifyTSPublicKey( - /* [retval][out] */ VARIANT_BOOL *pfNotify) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsRdpClientAdvancedSettingsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsRdpClientAdvancedSettings * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsRdpClientAdvancedSettings * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsRdpClientAdvancedSettings * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Compress )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pcompress); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Compress )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pcompress); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPeristence )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pbitmapPeristence); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPeristence )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pbitmapPeristence); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_allowBackgroundInput )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pallowBackgroundInput); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_allowBackgroundInput )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pallowBackgroundInput); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyBoardLayoutStr )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PluginDlls )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconFile )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconIndex )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerHandledFullScreen )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pContainerHandledFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerHandledFullScreen )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pContainerHandledFullScreen); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableRdpdr )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pDisableRdpdr); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableRdpdr )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pDisableRdpdr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmoothScroll )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long psmoothScroll); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmoothScroll )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *psmoothScroll); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AcceleratorPassthrough )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pacceleratorPassthrough); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AcceleratorPassthrough )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pacceleratorPassthrough); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShadowBitmap )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pshadowBitmap); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShadowBitmap )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pshadowBitmap); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TransportType )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long ptransportType); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TransportType )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *ptransportType); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SasSequence )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long psasSequence); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SasSequence )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *psasSequence); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EncryptionEnabled )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pencryptionEnabled); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EncryptionEnabled )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pencryptionEnabled); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DedicatedTerminal )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pdedicatedTerminal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DedicatedTerminal )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pdedicatedTerminal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RDPPort )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long prdpPort); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RDPPort )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *prdpPort); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableMouse )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long penableMouse); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableMouse )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *penableMouse); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableCtrlAltDel )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pdisableCtrlAltDel); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableCtrlAltDel )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pdisableCtrlAltDel); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableWindowsKey )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long penableWindowsKey); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableWindowsKey )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *penableWindowsKey); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DoubleClickDetect )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pdoubleClickDetect); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DoubleClickDetect )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pdoubleClickDetect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaximizeShell )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pmaximizeShell); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaximizeShell )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pmaximizeShell); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyFullScreen )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long photKeyFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyFullScreen )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *photKeyFullScreen); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlEsc )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long photKeyCtrlEsc); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlEsc )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *photKeyCtrlEsc); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltEsc )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long photKeyAltEsc); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltEsc )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *photKeyAltEsc); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltTab )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long photKeyAltTab); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltTab )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *photKeyAltTab); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltShiftTab )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long photKeyAltShiftTab); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltShiftTab )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *photKeyAltShiftTab); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltSpace )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long photKeyAltSpace); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltSpace )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *photKeyAltSpace); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlAltDel )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long photKeyCtrlAltDel); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlAltDel )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *photKeyCtrlAltDel); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_orderDrawThreshold )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long porderDrawThreshold); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_orderDrawThreshold )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *porderDrawThreshold); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapCacheSize )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pbitmapCacheSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapCacheSize )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pbitmapCacheSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCacheSize )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pbitmapVirtualCacheSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCacheSize )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pbitmapVirtualCacheSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleBitmapCachesByBPP )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pbScale); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleBitmapCachesByBPP )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pbScale); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NumBitmapCaches )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pnumBitmapCaches); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumBitmapCaches )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pnumBitmapCaches); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CachePersistenceActive )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pcachePersistenceActive); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CachePersistenceActive )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pcachePersistenceActive); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PersistCacheDirectory )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_brushSupportLevel )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pbrushSupportLevel); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_brushSupportLevel )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pbrushSupportLevel); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_minInputSendInterval )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pminInputSendInterval); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_minInputSendInterval )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pminInputSendInterval); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InputEventsAtOnce )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pinputEventsAtOnce); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InputEventsAtOnce )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pinputEventsAtOnce); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_maxEventCount )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pmaxEventCount); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_maxEventCount )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pmaxEventCount); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_keepAliveInterval )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pkeepAliveInterval); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_keepAliveInterval )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pkeepAliveInterval); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_shutdownTimeout )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pshutdownTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_shutdownTimeout )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pshutdownTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_overallConnectionTimeout )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long poverallConnectionTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_overallConnectionTimeout )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *poverallConnectionTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_singleConnectionTimeout )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long psingleConnectionTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_singleConnectionTimeout )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *psingleConnectionTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardType )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pkeyboardType); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardType )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pkeyboardType); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardSubType )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pkeyboardSubType); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardSubType )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pkeyboardSubType); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardFunctionKey )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pkeyboardFunctionKey); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardFunctionKey )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pkeyboardFunctionKey); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WinceFixedPalette )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pwinceFixedPalette); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WinceFixedPalette )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pwinceFixedPalette); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectToServerConsole )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ VARIANT_BOOL pConnectToConsole); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectToServerConsole )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ VARIANT_BOOL *pConnectToConsole); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPersistence )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pbitmapPersistence); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPersistence )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pbitmapPersistence); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MinutesToIdleTimeout )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pminutesToIdleTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MinutesToIdleTimeout )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pminutesToIdleTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmartSizing )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ VARIANT_BOOL pfSmartSizing); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmartSizing )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ VARIANT_BOOL *pfSmartSizing); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrLocalPrintingDocName )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ BSTR pLocalPrintingDocName); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrLocalPrintingDocName )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ BSTR *pLocalPrintingDocName); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipCleanTempDirString )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ BSTR clipCleanTempDirString); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipCleanTempDirString )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ BSTR *clipCleanTempDirString); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipPasteInfoString )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ BSTR clipPasteInfoString); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipPasteInfoString )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ BSTR *clipPasteInfoString); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisplayConnectionBar )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ VARIANT_BOOL pDisplayConnectionBar); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisplayConnectionBar )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ VARIANT_BOOL *pDisplayConnectionBar); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PinConnectionBar )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ VARIANT_BOOL pPinConnectionBar); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PinConnectionBar )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ VARIANT_BOOL *pPinConnectionBar); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GrabFocusOnConnect )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ VARIANT_BOOL pfGrabFocusOnConnect); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GrabFocusOnConnect )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ VARIANT_BOOL *pfGrabFocusOnConnect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LoadBalanceInfo )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ BSTR pLBInfo); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LoadBalanceInfo )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ BSTR *pLBInfo); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectDrives )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ VARIANT_BOOL pRedirectDrives); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectDrives )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectDrives); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPrinters )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ VARIANT_BOOL pRedirectPrinters); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPrinters )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectPrinters); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPorts )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ VARIANT_BOOL pRedirectPorts); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPorts )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectPorts); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectSmartCards )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ VARIANT_BOOL pRedirectSmartCards); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectSmartCards )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache16BppSize )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pBitmapVirtualCache16BppSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache16BppSize )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pBitmapVirtualCache16BppSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache24BppSize )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pBitmapVirtualCache24BppSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache24BppSize )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pBitmapVirtualCache24BppSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PerformanceFlags )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pDisableList); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PerformanceFlags )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pDisableList); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectWithEndpoint )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ VARIANT *rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NotifyTSPublicKey )( - IMsRdpClientAdvancedSettings * This, - /* [in] */ VARIANT_BOOL pfNotify); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NotifyTSPublicKey )( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ VARIANT_BOOL *pfNotify); - - END_INTERFACE - } IMsRdpClientAdvancedSettingsVtbl; - - interface IMsRdpClientAdvancedSettings - { - CONST_VTBL struct IMsRdpClientAdvancedSettingsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsRdpClientAdvancedSettings_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsRdpClientAdvancedSettings_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsRdpClientAdvancedSettings_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsRdpClientAdvancedSettings_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsRdpClientAdvancedSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsRdpClientAdvancedSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsRdpClientAdvancedSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IMsRdpClientAdvancedSettings_put_Compress(This,pcompress) \ - ( (This)->lpVtbl -> put_Compress(This,pcompress) ) - -#define IMsRdpClientAdvancedSettings_get_Compress(This,pcompress) \ - ( (This)->lpVtbl -> get_Compress(This,pcompress) ) - -#define IMsRdpClientAdvancedSettings_put_BitmapPeristence(This,pbitmapPeristence) \ - ( (This)->lpVtbl -> put_BitmapPeristence(This,pbitmapPeristence) ) - -#define IMsRdpClientAdvancedSettings_get_BitmapPeristence(This,pbitmapPeristence) \ - ( (This)->lpVtbl -> get_BitmapPeristence(This,pbitmapPeristence) ) - -#define IMsRdpClientAdvancedSettings_put_allowBackgroundInput(This,pallowBackgroundInput) \ - ( (This)->lpVtbl -> put_allowBackgroundInput(This,pallowBackgroundInput) ) - -#define IMsRdpClientAdvancedSettings_get_allowBackgroundInput(This,pallowBackgroundInput) \ - ( (This)->lpVtbl -> get_allowBackgroundInput(This,pallowBackgroundInput) ) - -#define IMsRdpClientAdvancedSettings_put_KeyBoardLayoutStr(This,rhs) \ - ( (This)->lpVtbl -> put_KeyBoardLayoutStr(This,rhs) ) - -#define IMsRdpClientAdvancedSettings_put_PluginDlls(This,rhs) \ - ( (This)->lpVtbl -> put_PluginDlls(This,rhs) ) - -#define IMsRdpClientAdvancedSettings_put_IconFile(This,rhs) \ - ( (This)->lpVtbl -> put_IconFile(This,rhs) ) - -#define IMsRdpClientAdvancedSettings_put_IconIndex(This,rhs) \ - ( (This)->lpVtbl -> put_IconIndex(This,rhs) ) - -#define IMsRdpClientAdvancedSettings_put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ - ( (This)->lpVtbl -> put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) - -#define IMsRdpClientAdvancedSettings_get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ - ( (This)->lpVtbl -> get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) - -#define IMsRdpClientAdvancedSettings_put_DisableRdpdr(This,pDisableRdpdr) \ - ( (This)->lpVtbl -> put_DisableRdpdr(This,pDisableRdpdr) ) - -#define IMsRdpClientAdvancedSettings_get_DisableRdpdr(This,pDisableRdpdr) \ - ( (This)->lpVtbl -> get_DisableRdpdr(This,pDisableRdpdr) ) - - -#define IMsRdpClientAdvancedSettings_put_SmoothScroll(This,psmoothScroll) \ - ( (This)->lpVtbl -> put_SmoothScroll(This,psmoothScroll) ) - -#define IMsRdpClientAdvancedSettings_get_SmoothScroll(This,psmoothScroll) \ - ( (This)->lpVtbl -> get_SmoothScroll(This,psmoothScroll) ) - -#define IMsRdpClientAdvancedSettings_put_AcceleratorPassthrough(This,pacceleratorPassthrough) \ - ( (This)->lpVtbl -> put_AcceleratorPassthrough(This,pacceleratorPassthrough) ) - -#define IMsRdpClientAdvancedSettings_get_AcceleratorPassthrough(This,pacceleratorPassthrough) \ - ( (This)->lpVtbl -> get_AcceleratorPassthrough(This,pacceleratorPassthrough) ) - -#define IMsRdpClientAdvancedSettings_put_ShadowBitmap(This,pshadowBitmap) \ - ( (This)->lpVtbl -> put_ShadowBitmap(This,pshadowBitmap) ) - -#define IMsRdpClientAdvancedSettings_get_ShadowBitmap(This,pshadowBitmap) \ - ( (This)->lpVtbl -> get_ShadowBitmap(This,pshadowBitmap) ) - -#define IMsRdpClientAdvancedSettings_put_TransportType(This,ptransportType) \ - ( (This)->lpVtbl -> put_TransportType(This,ptransportType) ) - -#define IMsRdpClientAdvancedSettings_get_TransportType(This,ptransportType) \ - ( (This)->lpVtbl -> get_TransportType(This,ptransportType) ) - -#define IMsRdpClientAdvancedSettings_put_SasSequence(This,psasSequence) \ - ( (This)->lpVtbl -> put_SasSequence(This,psasSequence) ) - -#define IMsRdpClientAdvancedSettings_get_SasSequence(This,psasSequence) \ - ( (This)->lpVtbl -> get_SasSequence(This,psasSequence) ) - -#define IMsRdpClientAdvancedSettings_put_EncryptionEnabled(This,pencryptionEnabled) \ - ( (This)->lpVtbl -> put_EncryptionEnabled(This,pencryptionEnabled) ) - -#define IMsRdpClientAdvancedSettings_get_EncryptionEnabled(This,pencryptionEnabled) \ - ( (This)->lpVtbl -> get_EncryptionEnabled(This,pencryptionEnabled) ) - -#define IMsRdpClientAdvancedSettings_put_DedicatedTerminal(This,pdedicatedTerminal) \ - ( (This)->lpVtbl -> put_DedicatedTerminal(This,pdedicatedTerminal) ) - -#define IMsRdpClientAdvancedSettings_get_DedicatedTerminal(This,pdedicatedTerminal) \ - ( (This)->lpVtbl -> get_DedicatedTerminal(This,pdedicatedTerminal) ) - -#define IMsRdpClientAdvancedSettings_put_RDPPort(This,prdpPort) \ - ( (This)->lpVtbl -> put_RDPPort(This,prdpPort) ) - -#define IMsRdpClientAdvancedSettings_get_RDPPort(This,prdpPort) \ - ( (This)->lpVtbl -> get_RDPPort(This,prdpPort) ) - -#define IMsRdpClientAdvancedSettings_put_EnableMouse(This,penableMouse) \ - ( (This)->lpVtbl -> put_EnableMouse(This,penableMouse) ) - -#define IMsRdpClientAdvancedSettings_get_EnableMouse(This,penableMouse) \ - ( (This)->lpVtbl -> get_EnableMouse(This,penableMouse) ) - -#define IMsRdpClientAdvancedSettings_put_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ - ( (This)->lpVtbl -> put_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings_get_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ - ( (This)->lpVtbl -> get_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings_put_EnableWindowsKey(This,penableWindowsKey) \ - ( (This)->lpVtbl -> put_EnableWindowsKey(This,penableWindowsKey) ) - -#define IMsRdpClientAdvancedSettings_get_EnableWindowsKey(This,penableWindowsKey) \ - ( (This)->lpVtbl -> get_EnableWindowsKey(This,penableWindowsKey) ) - -#define IMsRdpClientAdvancedSettings_put_DoubleClickDetect(This,pdoubleClickDetect) \ - ( (This)->lpVtbl -> put_DoubleClickDetect(This,pdoubleClickDetect) ) - -#define IMsRdpClientAdvancedSettings_get_DoubleClickDetect(This,pdoubleClickDetect) \ - ( (This)->lpVtbl -> get_DoubleClickDetect(This,pdoubleClickDetect) ) - -#define IMsRdpClientAdvancedSettings_put_MaximizeShell(This,pmaximizeShell) \ - ( (This)->lpVtbl -> put_MaximizeShell(This,pmaximizeShell) ) - -#define IMsRdpClientAdvancedSettings_get_MaximizeShell(This,pmaximizeShell) \ - ( (This)->lpVtbl -> get_MaximizeShell(This,pmaximizeShell) ) - -#define IMsRdpClientAdvancedSettings_put_HotKeyFullScreen(This,photKeyFullScreen) \ - ( (This)->lpVtbl -> put_HotKeyFullScreen(This,photKeyFullScreen) ) - -#define IMsRdpClientAdvancedSettings_get_HotKeyFullScreen(This,photKeyFullScreen) \ - ( (This)->lpVtbl -> get_HotKeyFullScreen(This,photKeyFullScreen) ) - -#define IMsRdpClientAdvancedSettings_put_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ - ( (This)->lpVtbl -> put_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) - -#define IMsRdpClientAdvancedSettings_get_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ - ( (This)->lpVtbl -> get_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) - -#define IMsRdpClientAdvancedSettings_put_HotKeyAltEsc(This,photKeyAltEsc) \ - ( (This)->lpVtbl -> put_HotKeyAltEsc(This,photKeyAltEsc) ) - -#define IMsRdpClientAdvancedSettings_get_HotKeyAltEsc(This,photKeyAltEsc) \ - ( (This)->lpVtbl -> get_HotKeyAltEsc(This,photKeyAltEsc) ) - -#define IMsRdpClientAdvancedSettings_put_HotKeyAltTab(This,photKeyAltTab) \ - ( (This)->lpVtbl -> put_HotKeyAltTab(This,photKeyAltTab) ) - -#define IMsRdpClientAdvancedSettings_get_HotKeyAltTab(This,photKeyAltTab) \ - ( (This)->lpVtbl -> get_HotKeyAltTab(This,photKeyAltTab) ) - -#define IMsRdpClientAdvancedSettings_put_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ - ( (This)->lpVtbl -> put_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) - -#define IMsRdpClientAdvancedSettings_get_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ - ( (This)->lpVtbl -> get_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) - -#define IMsRdpClientAdvancedSettings_put_HotKeyAltSpace(This,photKeyAltSpace) \ - ( (This)->lpVtbl -> put_HotKeyAltSpace(This,photKeyAltSpace) ) - -#define IMsRdpClientAdvancedSettings_get_HotKeyAltSpace(This,photKeyAltSpace) \ - ( (This)->lpVtbl -> get_HotKeyAltSpace(This,photKeyAltSpace) ) - -#define IMsRdpClientAdvancedSettings_put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ - ( (This)->lpVtbl -> put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings_get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ - ( (This)->lpVtbl -> get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings_put_orderDrawThreshold(This,porderDrawThreshold) \ - ( (This)->lpVtbl -> put_orderDrawThreshold(This,porderDrawThreshold) ) - -#define IMsRdpClientAdvancedSettings_get_orderDrawThreshold(This,porderDrawThreshold) \ - ( (This)->lpVtbl -> get_orderDrawThreshold(This,porderDrawThreshold) ) - -#define IMsRdpClientAdvancedSettings_put_BitmapCacheSize(This,pbitmapCacheSize) \ - ( (This)->lpVtbl -> put_BitmapCacheSize(This,pbitmapCacheSize) ) - -#define IMsRdpClientAdvancedSettings_get_BitmapCacheSize(This,pbitmapCacheSize) \ - ( (This)->lpVtbl -> get_BitmapCacheSize(This,pbitmapCacheSize) ) - -#define IMsRdpClientAdvancedSettings_put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ - ( (This)->lpVtbl -> put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) - -#define IMsRdpClientAdvancedSettings_get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ - ( (This)->lpVtbl -> get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) - -#define IMsRdpClientAdvancedSettings_put_ScaleBitmapCachesByBPP(This,pbScale) \ - ( (This)->lpVtbl -> put_ScaleBitmapCachesByBPP(This,pbScale) ) - -#define IMsRdpClientAdvancedSettings_get_ScaleBitmapCachesByBPP(This,pbScale) \ - ( (This)->lpVtbl -> get_ScaleBitmapCachesByBPP(This,pbScale) ) - -#define IMsRdpClientAdvancedSettings_put_NumBitmapCaches(This,pnumBitmapCaches) \ - ( (This)->lpVtbl -> put_NumBitmapCaches(This,pnumBitmapCaches) ) - -#define IMsRdpClientAdvancedSettings_get_NumBitmapCaches(This,pnumBitmapCaches) \ - ( (This)->lpVtbl -> get_NumBitmapCaches(This,pnumBitmapCaches) ) - -#define IMsRdpClientAdvancedSettings_put_CachePersistenceActive(This,pcachePersistenceActive) \ - ( (This)->lpVtbl -> put_CachePersistenceActive(This,pcachePersistenceActive) ) - -#define IMsRdpClientAdvancedSettings_get_CachePersistenceActive(This,pcachePersistenceActive) \ - ( (This)->lpVtbl -> get_CachePersistenceActive(This,pcachePersistenceActive) ) - -#define IMsRdpClientAdvancedSettings_put_PersistCacheDirectory(This,rhs) \ - ( (This)->lpVtbl -> put_PersistCacheDirectory(This,rhs) ) - -#define IMsRdpClientAdvancedSettings_put_brushSupportLevel(This,pbrushSupportLevel) \ - ( (This)->lpVtbl -> put_brushSupportLevel(This,pbrushSupportLevel) ) - -#define IMsRdpClientAdvancedSettings_get_brushSupportLevel(This,pbrushSupportLevel) \ - ( (This)->lpVtbl -> get_brushSupportLevel(This,pbrushSupportLevel) ) - -#define IMsRdpClientAdvancedSettings_put_minInputSendInterval(This,pminInputSendInterval) \ - ( (This)->lpVtbl -> put_minInputSendInterval(This,pminInputSendInterval) ) - -#define IMsRdpClientAdvancedSettings_get_minInputSendInterval(This,pminInputSendInterval) \ - ( (This)->lpVtbl -> get_minInputSendInterval(This,pminInputSendInterval) ) - -#define IMsRdpClientAdvancedSettings_put_InputEventsAtOnce(This,pinputEventsAtOnce) \ - ( (This)->lpVtbl -> put_InputEventsAtOnce(This,pinputEventsAtOnce) ) - -#define IMsRdpClientAdvancedSettings_get_InputEventsAtOnce(This,pinputEventsAtOnce) \ - ( (This)->lpVtbl -> get_InputEventsAtOnce(This,pinputEventsAtOnce) ) - -#define IMsRdpClientAdvancedSettings_put_maxEventCount(This,pmaxEventCount) \ - ( (This)->lpVtbl -> put_maxEventCount(This,pmaxEventCount) ) - -#define IMsRdpClientAdvancedSettings_get_maxEventCount(This,pmaxEventCount) \ - ( (This)->lpVtbl -> get_maxEventCount(This,pmaxEventCount) ) - -#define IMsRdpClientAdvancedSettings_put_keepAliveInterval(This,pkeepAliveInterval) \ - ( (This)->lpVtbl -> put_keepAliveInterval(This,pkeepAliveInterval) ) - -#define IMsRdpClientAdvancedSettings_get_keepAliveInterval(This,pkeepAliveInterval) \ - ( (This)->lpVtbl -> get_keepAliveInterval(This,pkeepAliveInterval) ) - -#define IMsRdpClientAdvancedSettings_put_shutdownTimeout(This,pshutdownTimeout) \ - ( (This)->lpVtbl -> put_shutdownTimeout(This,pshutdownTimeout) ) - -#define IMsRdpClientAdvancedSettings_get_shutdownTimeout(This,pshutdownTimeout) \ - ( (This)->lpVtbl -> get_shutdownTimeout(This,pshutdownTimeout) ) - -#define IMsRdpClientAdvancedSettings_put_overallConnectionTimeout(This,poverallConnectionTimeout) \ - ( (This)->lpVtbl -> put_overallConnectionTimeout(This,poverallConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings_get_overallConnectionTimeout(This,poverallConnectionTimeout) \ - ( (This)->lpVtbl -> get_overallConnectionTimeout(This,poverallConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings_put_singleConnectionTimeout(This,psingleConnectionTimeout) \ - ( (This)->lpVtbl -> put_singleConnectionTimeout(This,psingleConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings_get_singleConnectionTimeout(This,psingleConnectionTimeout) \ - ( (This)->lpVtbl -> get_singleConnectionTimeout(This,psingleConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings_put_KeyboardType(This,pkeyboardType) \ - ( (This)->lpVtbl -> put_KeyboardType(This,pkeyboardType) ) - -#define IMsRdpClientAdvancedSettings_get_KeyboardType(This,pkeyboardType) \ - ( (This)->lpVtbl -> get_KeyboardType(This,pkeyboardType) ) - -#define IMsRdpClientAdvancedSettings_put_KeyboardSubType(This,pkeyboardSubType) \ - ( (This)->lpVtbl -> put_KeyboardSubType(This,pkeyboardSubType) ) - -#define IMsRdpClientAdvancedSettings_get_KeyboardSubType(This,pkeyboardSubType) \ - ( (This)->lpVtbl -> get_KeyboardSubType(This,pkeyboardSubType) ) - -#define IMsRdpClientAdvancedSettings_put_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ - ( (This)->lpVtbl -> put_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) - -#define IMsRdpClientAdvancedSettings_get_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ - ( (This)->lpVtbl -> get_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) - -#define IMsRdpClientAdvancedSettings_put_WinceFixedPalette(This,pwinceFixedPalette) \ - ( (This)->lpVtbl -> put_WinceFixedPalette(This,pwinceFixedPalette) ) - -#define IMsRdpClientAdvancedSettings_get_WinceFixedPalette(This,pwinceFixedPalette) \ - ( (This)->lpVtbl -> get_WinceFixedPalette(This,pwinceFixedPalette) ) - -#define IMsRdpClientAdvancedSettings_put_ConnectToServerConsole(This,pConnectToConsole) \ - ( (This)->lpVtbl -> put_ConnectToServerConsole(This,pConnectToConsole) ) - -#define IMsRdpClientAdvancedSettings_get_ConnectToServerConsole(This,pConnectToConsole) \ - ( (This)->lpVtbl -> get_ConnectToServerConsole(This,pConnectToConsole) ) - -#define IMsRdpClientAdvancedSettings_put_BitmapPersistence(This,pbitmapPersistence) \ - ( (This)->lpVtbl -> put_BitmapPersistence(This,pbitmapPersistence) ) - -#define IMsRdpClientAdvancedSettings_get_BitmapPersistence(This,pbitmapPersistence) \ - ( (This)->lpVtbl -> get_BitmapPersistence(This,pbitmapPersistence) ) - -#define IMsRdpClientAdvancedSettings_put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ - ( (This)->lpVtbl -> put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) - -#define IMsRdpClientAdvancedSettings_get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ - ( (This)->lpVtbl -> get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) - -#define IMsRdpClientAdvancedSettings_put_SmartSizing(This,pfSmartSizing) \ - ( (This)->lpVtbl -> put_SmartSizing(This,pfSmartSizing) ) - -#define IMsRdpClientAdvancedSettings_get_SmartSizing(This,pfSmartSizing) \ - ( (This)->lpVtbl -> get_SmartSizing(This,pfSmartSizing) ) - -#define IMsRdpClientAdvancedSettings_put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ - ( (This)->lpVtbl -> put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) - -#define IMsRdpClientAdvancedSettings_get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ - ( (This)->lpVtbl -> get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) - -#define IMsRdpClientAdvancedSettings_put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ - ( (This)->lpVtbl -> put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) - -#define IMsRdpClientAdvancedSettings_get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ - ( (This)->lpVtbl -> get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) - -#define IMsRdpClientAdvancedSettings_put_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ - ( (This)->lpVtbl -> put_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) - -#define IMsRdpClientAdvancedSettings_get_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ - ( (This)->lpVtbl -> get_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) - -#define IMsRdpClientAdvancedSettings_put_ClearTextPassword(This,rhs) \ - ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) - -#define IMsRdpClientAdvancedSettings_put_DisplayConnectionBar(This,pDisplayConnectionBar) \ - ( (This)->lpVtbl -> put_DisplayConnectionBar(This,pDisplayConnectionBar) ) - -#define IMsRdpClientAdvancedSettings_get_DisplayConnectionBar(This,pDisplayConnectionBar) \ - ( (This)->lpVtbl -> get_DisplayConnectionBar(This,pDisplayConnectionBar) ) - -#define IMsRdpClientAdvancedSettings_put_PinConnectionBar(This,pPinConnectionBar) \ - ( (This)->lpVtbl -> put_PinConnectionBar(This,pPinConnectionBar) ) - -#define IMsRdpClientAdvancedSettings_get_PinConnectionBar(This,pPinConnectionBar) \ - ( (This)->lpVtbl -> get_PinConnectionBar(This,pPinConnectionBar) ) - -#define IMsRdpClientAdvancedSettings_put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ - ( (This)->lpVtbl -> put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) - -#define IMsRdpClientAdvancedSettings_get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ - ( (This)->lpVtbl -> get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) - -#define IMsRdpClientAdvancedSettings_put_LoadBalanceInfo(This,pLBInfo) \ - ( (This)->lpVtbl -> put_LoadBalanceInfo(This,pLBInfo) ) - -#define IMsRdpClientAdvancedSettings_get_LoadBalanceInfo(This,pLBInfo) \ - ( (This)->lpVtbl -> get_LoadBalanceInfo(This,pLBInfo) ) - -#define IMsRdpClientAdvancedSettings_put_RedirectDrives(This,pRedirectDrives) \ - ( (This)->lpVtbl -> put_RedirectDrives(This,pRedirectDrives) ) - -#define IMsRdpClientAdvancedSettings_get_RedirectDrives(This,pRedirectDrives) \ - ( (This)->lpVtbl -> get_RedirectDrives(This,pRedirectDrives) ) - -#define IMsRdpClientAdvancedSettings_put_RedirectPrinters(This,pRedirectPrinters) \ - ( (This)->lpVtbl -> put_RedirectPrinters(This,pRedirectPrinters) ) - -#define IMsRdpClientAdvancedSettings_get_RedirectPrinters(This,pRedirectPrinters) \ - ( (This)->lpVtbl -> get_RedirectPrinters(This,pRedirectPrinters) ) - -#define IMsRdpClientAdvancedSettings_put_RedirectPorts(This,pRedirectPorts) \ - ( (This)->lpVtbl -> put_RedirectPorts(This,pRedirectPorts) ) - -#define IMsRdpClientAdvancedSettings_get_RedirectPorts(This,pRedirectPorts) \ - ( (This)->lpVtbl -> get_RedirectPorts(This,pRedirectPorts) ) - -#define IMsRdpClientAdvancedSettings_put_RedirectSmartCards(This,pRedirectSmartCards) \ - ( (This)->lpVtbl -> put_RedirectSmartCards(This,pRedirectSmartCards) ) - -#define IMsRdpClientAdvancedSettings_get_RedirectSmartCards(This,pRedirectSmartCards) \ - ( (This)->lpVtbl -> get_RedirectSmartCards(This,pRedirectSmartCards) ) - -#define IMsRdpClientAdvancedSettings_put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ - ( (This)->lpVtbl -> put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) - -#define IMsRdpClientAdvancedSettings_get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ - ( (This)->lpVtbl -> get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) - -#define IMsRdpClientAdvancedSettings_put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ - ( (This)->lpVtbl -> put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) - -#define IMsRdpClientAdvancedSettings_get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ - ( (This)->lpVtbl -> get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) - -#define IMsRdpClientAdvancedSettings_put_PerformanceFlags(This,pDisableList) \ - ( (This)->lpVtbl -> put_PerformanceFlags(This,pDisableList) ) - -#define IMsRdpClientAdvancedSettings_get_PerformanceFlags(This,pDisableList) \ - ( (This)->lpVtbl -> get_PerformanceFlags(This,pDisableList) ) - -#define IMsRdpClientAdvancedSettings_put_ConnectWithEndpoint(This,rhs) \ - ( (This)->lpVtbl -> put_ConnectWithEndpoint(This,rhs) ) - -#define IMsRdpClientAdvancedSettings_put_NotifyTSPublicKey(This,pfNotify) \ - ( (This)->lpVtbl -> put_NotifyTSPublicKey(This,pfNotify) ) - -#define IMsRdpClientAdvancedSettings_get_NotifyTSPublicKey(This,pfNotify) \ - ( (This)->lpVtbl -> get_NotifyTSPublicKey(This,pfNotify) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_get_RedirectSmartCards_Proxy( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards); - - -void __RPC_STUB IMsRdpClientAdvancedSettings_get_RedirectSmartCards_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_put_BitmapVirtualCache16BppSize_Proxy( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pBitmapVirtualCache16BppSize); - - -void __RPC_STUB IMsRdpClientAdvancedSettings_put_BitmapVirtualCache16BppSize_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_get_BitmapVirtualCache16BppSize_Proxy( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pBitmapVirtualCache16BppSize); - - -void __RPC_STUB IMsRdpClientAdvancedSettings_get_BitmapVirtualCache16BppSize_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_put_BitmapVirtualCache24BppSize_Proxy( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pBitmapVirtualCache24BppSize); - - -void __RPC_STUB IMsRdpClientAdvancedSettings_put_BitmapVirtualCache24BppSize_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_get_BitmapVirtualCache24BppSize_Proxy( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pBitmapVirtualCache24BppSize); - - -void __RPC_STUB IMsRdpClientAdvancedSettings_get_BitmapVirtualCache24BppSize_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_put_PerformanceFlags_Proxy( - IMsRdpClientAdvancedSettings * This, - /* [in] */ long pDisableList); - - -void __RPC_STUB IMsRdpClientAdvancedSettings_put_PerformanceFlags_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_get_PerformanceFlags_Proxy( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ long *pDisableList); - - -void __RPC_STUB IMsRdpClientAdvancedSettings_get_PerformanceFlags_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_put_ConnectWithEndpoint_Proxy( - IMsRdpClientAdvancedSettings * This, - /* [in] */ VARIANT *rhs); - - -void __RPC_STUB IMsRdpClientAdvancedSettings_put_ConnectWithEndpoint_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_put_NotifyTSPublicKey_Proxy( - IMsRdpClientAdvancedSettings * This, - /* [in] */ VARIANT_BOOL pfNotify); - - -void __RPC_STUB IMsRdpClientAdvancedSettings_put_NotifyTSPublicKey_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_get_NotifyTSPublicKey_Proxy( - IMsRdpClientAdvancedSettings * This, - /* [retval][out] */ VARIANT_BOOL *pfNotify); - - -void __RPC_STUB IMsRdpClientAdvancedSettings_get_NotifyTSPublicKey_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IMsRdpClientAdvancedSettings_INTERFACE_DEFINED__ */ - - -#ifndef __IMsRdpClientAdvancedSettings2_INTERFACE_DEFINED__ -#define __IMsRdpClientAdvancedSettings2_INTERFACE_DEFINED__ - -/* interface IMsRdpClientAdvancedSettings2 */ -/* [object][oleautomation][dual][uuid] */ - - -EXTERN_C const IID IID_IMsRdpClientAdvancedSettings2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9AC42117-2B76-4320-AA44-0E616AB8437B") - IMsRdpClientAdvancedSettings2 : public IMsRdpClientAdvancedSettings - { - public: - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CanAutoReconnect( - /* [retval][out] */ VARIANT_BOOL *pfCanAutoReconnect) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_EnableAutoReconnect( - /* [in] */ VARIANT_BOOL pfEnableAutoReconnect) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_EnableAutoReconnect( - /* [retval][out] */ VARIANT_BOOL *pfEnableAutoReconnect) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_MaxReconnectAttempts( - /* [in] */ long pMaxReconnectAttempts) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_MaxReconnectAttempts( - /* [retval][out] */ long *pMaxReconnectAttempts) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsRdpClientAdvancedSettings2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsRdpClientAdvancedSettings2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsRdpClientAdvancedSettings2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsRdpClientAdvancedSettings2 * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Compress )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pcompress); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Compress )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pcompress); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPeristence )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pbitmapPeristence); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPeristence )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pbitmapPeristence); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_allowBackgroundInput )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pallowBackgroundInput); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_allowBackgroundInput )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pallowBackgroundInput); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyBoardLayoutStr )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PluginDlls )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconFile )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconIndex )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerHandledFullScreen )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pContainerHandledFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerHandledFullScreen )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pContainerHandledFullScreen); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableRdpdr )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pDisableRdpdr); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableRdpdr )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pDisableRdpdr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmoothScroll )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long psmoothScroll); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmoothScroll )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *psmoothScroll); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AcceleratorPassthrough )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pacceleratorPassthrough); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AcceleratorPassthrough )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pacceleratorPassthrough); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShadowBitmap )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pshadowBitmap); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShadowBitmap )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pshadowBitmap); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TransportType )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long ptransportType); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TransportType )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *ptransportType); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SasSequence )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long psasSequence); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SasSequence )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *psasSequence); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EncryptionEnabled )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pencryptionEnabled); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EncryptionEnabled )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pencryptionEnabled); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DedicatedTerminal )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pdedicatedTerminal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DedicatedTerminal )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pdedicatedTerminal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RDPPort )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long prdpPort); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RDPPort )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *prdpPort); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableMouse )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long penableMouse); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableMouse )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *penableMouse); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableCtrlAltDel )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pdisableCtrlAltDel); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableCtrlAltDel )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pdisableCtrlAltDel); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableWindowsKey )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long penableWindowsKey); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableWindowsKey )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *penableWindowsKey); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DoubleClickDetect )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pdoubleClickDetect); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DoubleClickDetect )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pdoubleClickDetect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaximizeShell )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pmaximizeShell); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaximizeShell )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pmaximizeShell); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyFullScreen )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long photKeyFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyFullScreen )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *photKeyFullScreen); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlEsc )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long photKeyCtrlEsc); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlEsc )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *photKeyCtrlEsc); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltEsc )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long photKeyAltEsc); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltEsc )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *photKeyAltEsc); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltTab )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long photKeyAltTab); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltTab )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *photKeyAltTab); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltShiftTab )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long photKeyAltShiftTab); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltShiftTab )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *photKeyAltShiftTab); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltSpace )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long photKeyAltSpace); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltSpace )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *photKeyAltSpace); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlAltDel )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long photKeyCtrlAltDel); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlAltDel )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *photKeyCtrlAltDel); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_orderDrawThreshold )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long porderDrawThreshold); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_orderDrawThreshold )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *porderDrawThreshold); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapCacheSize )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pbitmapCacheSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapCacheSize )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pbitmapCacheSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCacheSize )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pbitmapVirtualCacheSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCacheSize )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pbitmapVirtualCacheSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleBitmapCachesByBPP )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pbScale); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleBitmapCachesByBPP )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pbScale); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NumBitmapCaches )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pnumBitmapCaches); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumBitmapCaches )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pnumBitmapCaches); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CachePersistenceActive )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pcachePersistenceActive); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CachePersistenceActive )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pcachePersistenceActive); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PersistCacheDirectory )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_brushSupportLevel )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pbrushSupportLevel); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_brushSupportLevel )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pbrushSupportLevel); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_minInputSendInterval )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pminInputSendInterval); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_minInputSendInterval )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pminInputSendInterval); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InputEventsAtOnce )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pinputEventsAtOnce); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InputEventsAtOnce )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pinputEventsAtOnce); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_maxEventCount )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pmaxEventCount); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_maxEventCount )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pmaxEventCount); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_keepAliveInterval )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pkeepAliveInterval); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_keepAliveInterval )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pkeepAliveInterval); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_shutdownTimeout )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pshutdownTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_shutdownTimeout )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pshutdownTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_overallConnectionTimeout )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long poverallConnectionTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_overallConnectionTimeout )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *poverallConnectionTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_singleConnectionTimeout )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long psingleConnectionTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_singleConnectionTimeout )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *psingleConnectionTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardType )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pkeyboardType); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardType )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pkeyboardType); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardSubType )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pkeyboardSubType); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardSubType )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pkeyboardSubType); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardFunctionKey )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pkeyboardFunctionKey); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardFunctionKey )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pkeyboardFunctionKey); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WinceFixedPalette )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pwinceFixedPalette); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WinceFixedPalette )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pwinceFixedPalette); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectToServerConsole )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ VARIANT_BOOL pConnectToConsole); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectToServerConsole )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pConnectToConsole); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPersistence )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pbitmapPersistence); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPersistence )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pbitmapPersistence); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MinutesToIdleTimeout )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pminutesToIdleTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MinutesToIdleTimeout )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pminutesToIdleTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmartSizing )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ VARIANT_BOOL pfSmartSizing); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmartSizing )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pfSmartSizing); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrLocalPrintingDocName )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ BSTR pLocalPrintingDocName); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrLocalPrintingDocName )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ BSTR *pLocalPrintingDocName); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipCleanTempDirString )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ BSTR clipCleanTempDirString); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipCleanTempDirString )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ BSTR *clipCleanTempDirString); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipPasteInfoString )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ BSTR clipPasteInfoString); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipPasteInfoString )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ BSTR *clipPasteInfoString); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisplayConnectionBar )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ VARIANT_BOOL pDisplayConnectionBar); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisplayConnectionBar )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pDisplayConnectionBar); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PinConnectionBar )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ VARIANT_BOOL pPinConnectionBar); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PinConnectionBar )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pPinConnectionBar); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GrabFocusOnConnect )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ VARIANT_BOOL pfGrabFocusOnConnect); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GrabFocusOnConnect )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pfGrabFocusOnConnect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LoadBalanceInfo )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ BSTR pLBInfo); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LoadBalanceInfo )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ BSTR *pLBInfo); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectDrives )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ VARIANT_BOOL pRedirectDrives); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectDrives )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectDrives); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPrinters )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ VARIANT_BOOL pRedirectPrinters); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPrinters )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectPrinters); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPorts )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ VARIANT_BOOL pRedirectPorts); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPorts )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectPorts); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectSmartCards )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ VARIANT_BOOL pRedirectSmartCards); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectSmartCards )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache16BppSize )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pBitmapVirtualCache16BppSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache16BppSize )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pBitmapVirtualCache16BppSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache24BppSize )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pBitmapVirtualCache24BppSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache24BppSize )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pBitmapVirtualCache24BppSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PerformanceFlags )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pDisableList); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PerformanceFlags )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pDisableList); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectWithEndpoint )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ VARIANT *rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NotifyTSPublicKey )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ VARIANT_BOOL pfNotify); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NotifyTSPublicKey )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pfNotify); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CanAutoReconnect )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pfCanAutoReconnect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableAutoReconnect )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ VARIANT_BOOL pfEnableAutoReconnect); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableAutoReconnect )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pfEnableAutoReconnect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaxReconnectAttempts )( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pMaxReconnectAttempts); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaxReconnectAttempts )( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pMaxReconnectAttempts); - - END_INTERFACE - } IMsRdpClientAdvancedSettings2Vtbl; - - interface IMsRdpClientAdvancedSettings2 - { - CONST_VTBL struct IMsRdpClientAdvancedSettings2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsRdpClientAdvancedSettings2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsRdpClientAdvancedSettings2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsRdpClientAdvancedSettings2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsRdpClientAdvancedSettings2_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsRdpClientAdvancedSettings2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsRdpClientAdvancedSettings2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsRdpClientAdvancedSettings2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IMsRdpClientAdvancedSettings2_put_Compress(This,pcompress) \ - ( (This)->lpVtbl -> put_Compress(This,pcompress) ) - -#define IMsRdpClientAdvancedSettings2_get_Compress(This,pcompress) \ - ( (This)->lpVtbl -> get_Compress(This,pcompress) ) - -#define IMsRdpClientAdvancedSettings2_put_BitmapPeristence(This,pbitmapPeristence) \ - ( (This)->lpVtbl -> put_BitmapPeristence(This,pbitmapPeristence) ) - -#define IMsRdpClientAdvancedSettings2_get_BitmapPeristence(This,pbitmapPeristence) \ - ( (This)->lpVtbl -> get_BitmapPeristence(This,pbitmapPeristence) ) - -#define IMsRdpClientAdvancedSettings2_put_allowBackgroundInput(This,pallowBackgroundInput) \ - ( (This)->lpVtbl -> put_allowBackgroundInput(This,pallowBackgroundInput) ) - -#define IMsRdpClientAdvancedSettings2_get_allowBackgroundInput(This,pallowBackgroundInput) \ - ( (This)->lpVtbl -> get_allowBackgroundInput(This,pallowBackgroundInput) ) - -#define IMsRdpClientAdvancedSettings2_put_KeyBoardLayoutStr(This,rhs) \ - ( (This)->lpVtbl -> put_KeyBoardLayoutStr(This,rhs) ) - -#define IMsRdpClientAdvancedSettings2_put_PluginDlls(This,rhs) \ - ( (This)->lpVtbl -> put_PluginDlls(This,rhs) ) - -#define IMsRdpClientAdvancedSettings2_put_IconFile(This,rhs) \ - ( (This)->lpVtbl -> put_IconFile(This,rhs) ) - -#define IMsRdpClientAdvancedSettings2_put_IconIndex(This,rhs) \ - ( (This)->lpVtbl -> put_IconIndex(This,rhs) ) - -#define IMsRdpClientAdvancedSettings2_put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ - ( (This)->lpVtbl -> put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) - -#define IMsRdpClientAdvancedSettings2_get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ - ( (This)->lpVtbl -> get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) - -#define IMsRdpClientAdvancedSettings2_put_DisableRdpdr(This,pDisableRdpdr) \ - ( (This)->lpVtbl -> put_DisableRdpdr(This,pDisableRdpdr) ) - -#define IMsRdpClientAdvancedSettings2_get_DisableRdpdr(This,pDisableRdpdr) \ - ( (This)->lpVtbl -> get_DisableRdpdr(This,pDisableRdpdr) ) - - -#define IMsRdpClientAdvancedSettings2_put_SmoothScroll(This,psmoothScroll) \ - ( (This)->lpVtbl -> put_SmoothScroll(This,psmoothScroll) ) - -#define IMsRdpClientAdvancedSettings2_get_SmoothScroll(This,psmoothScroll) \ - ( (This)->lpVtbl -> get_SmoothScroll(This,psmoothScroll) ) - -#define IMsRdpClientAdvancedSettings2_put_AcceleratorPassthrough(This,pacceleratorPassthrough) \ - ( (This)->lpVtbl -> put_AcceleratorPassthrough(This,pacceleratorPassthrough) ) - -#define IMsRdpClientAdvancedSettings2_get_AcceleratorPassthrough(This,pacceleratorPassthrough) \ - ( (This)->lpVtbl -> get_AcceleratorPassthrough(This,pacceleratorPassthrough) ) - -#define IMsRdpClientAdvancedSettings2_put_ShadowBitmap(This,pshadowBitmap) \ - ( (This)->lpVtbl -> put_ShadowBitmap(This,pshadowBitmap) ) - -#define IMsRdpClientAdvancedSettings2_get_ShadowBitmap(This,pshadowBitmap) \ - ( (This)->lpVtbl -> get_ShadowBitmap(This,pshadowBitmap) ) - -#define IMsRdpClientAdvancedSettings2_put_TransportType(This,ptransportType) \ - ( (This)->lpVtbl -> put_TransportType(This,ptransportType) ) - -#define IMsRdpClientAdvancedSettings2_get_TransportType(This,ptransportType) \ - ( (This)->lpVtbl -> get_TransportType(This,ptransportType) ) - -#define IMsRdpClientAdvancedSettings2_put_SasSequence(This,psasSequence) \ - ( (This)->lpVtbl -> put_SasSequence(This,psasSequence) ) - -#define IMsRdpClientAdvancedSettings2_get_SasSequence(This,psasSequence) \ - ( (This)->lpVtbl -> get_SasSequence(This,psasSequence) ) - -#define IMsRdpClientAdvancedSettings2_put_EncryptionEnabled(This,pencryptionEnabled) \ - ( (This)->lpVtbl -> put_EncryptionEnabled(This,pencryptionEnabled) ) - -#define IMsRdpClientAdvancedSettings2_get_EncryptionEnabled(This,pencryptionEnabled) \ - ( (This)->lpVtbl -> get_EncryptionEnabled(This,pencryptionEnabled) ) - -#define IMsRdpClientAdvancedSettings2_put_DedicatedTerminal(This,pdedicatedTerminal) \ - ( (This)->lpVtbl -> put_DedicatedTerminal(This,pdedicatedTerminal) ) - -#define IMsRdpClientAdvancedSettings2_get_DedicatedTerminal(This,pdedicatedTerminal) \ - ( (This)->lpVtbl -> get_DedicatedTerminal(This,pdedicatedTerminal) ) - -#define IMsRdpClientAdvancedSettings2_put_RDPPort(This,prdpPort) \ - ( (This)->lpVtbl -> put_RDPPort(This,prdpPort) ) - -#define IMsRdpClientAdvancedSettings2_get_RDPPort(This,prdpPort) \ - ( (This)->lpVtbl -> get_RDPPort(This,prdpPort) ) - -#define IMsRdpClientAdvancedSettings2_put_EnableMouse(This,penableMouse) \ - ( (This)->lpVtbl -> put_EnableMouse(This,penableMouse) ) - -#define IMsRdpClientAdvancedSettings2_get_EnableMouse(This,penableMouse) \ - ( (This)->lpVtbl -> get_EnableMouse(This,penableMouse) ) - -#define IMsRdpClientAdvancedSettings2_put_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ - ( (This)->lpVtbl -> put_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings2_get_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ - ( (This)->lpVtbl -> get_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings2_put_EnableWindowsKey(This,penableWindowsKey) \ - ( (This)->lpVtbl -> put_EnableWindowsKey(This,penableWindowsKey) ) - -#define IMsRdpClientAdvancedSettings2_get_EnableWindowsKey(This,penableWindowsKey) \ - ( (This)->lpVtbl -> get_EnableWindowsKey(This,penableWindowsKey) ) - -#define IMsRdpClientAdvancedSettings2_put_DoubleClickDetect(This,pdoubleClickDetect) \ - ( (This)->lpVtbl -> put_DoubleClickDetect(This,pdoubleClickDetect) ) - -#define IMsRdpClientAdvancedSettings2_get_DoubleClickDetect(This,pdoubleClickDetect) \ - ( (This)->lpVtbl -> get_DoubleClickDetect(This,pdoubleClickDetect) ) - -#define IMsRdpClientAdvancedSettings2_put_MaximizeShell(This,pmaximizeShell) \ - ( (This)->lpVtbl -> put_MaximizeShell(This,pmaximizeShell) ) - -#define IMsRdpClientAdvancedSettings2_get_MaximizeShell(This,pmaximizeShell) \ - ( (This)->lpVtbl -> get_MaximizeShell(This,pmaximizeShell) ) - -#define IMsRdpClientAdvancedSettings2_put_HotKeyFullScreen(This,photKeyFullScreen) \ - ( (This)->lpVtbl -> put_HotKeyFullScreen(This,photKeyFullScreen) ) - -#define IMsRdpClientAdvancedSettings2_get_HotKeyFullScreen(This,photKeyFullScreen) \ - ( (This)->lpVtbl -> get_HotKeyFullScreen(This,photKeyFullScreen) ) - -#define IMsRdpClientAdvancedSettings2_put_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ - ( (This)->lpVtbl -> put_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) - -#define IMsRdpClientAdvancedSettings2_get_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ - ( (This)->lpVtbl -> get_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) - -#define IMsRdpClientAdvancedSettings2_put_HotKeyAltEsc(This,photKeyAltEsc) \ - ( (This)->lpVtbl -> put_HotKeyAltEsc(This,photKeyAltEsc) ) - -#define IMsRdpClientAdvancedSettings2_get_HotKeyAltEsc(This,photKeyAltEsc) \ - ( (This)->lpVtbl -> get_HotKeyAltEsc(This,photKeyAltEsc) ) - -#define IMsRdpClientAdvancedSettings2_put_HotKeyAltTab(This,photKeyAltTab) \ - ( (This)->lpVtbl -> put_HotKeyAltTab(This,photKeyAltTab) ) - -#define IMsRdpClientAdvancedSettings2_get_HotKeyAltTab(This,photKeyAltTab) \ - ( (This)->lpVtbl -> get_HotKeyAltTab(This,photKeyAltTab) ) - -#define IMsRdpClientAdvancedSettings2_put_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ - ( (This)->lpVtbl -> put_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) - -#define IMsRdpClientAdvancedSettings2_get_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ - ( (This)->lpVtbl -> get_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) - -#define IMsRdpClientAdvancedSettings2_put_HotKeyAltSpace(This,photKeyAltSpace) \ - ( (This)->lpVtbl -> put_HotKeyAltSpace(This,photKeyAltSpace) ) - -#define IMsRdpClientAdvancedSettings2_get_HotKeyAltSpace(This,photKeyAltSpace) \ - ( (This)->lpVtbl -> get_HotKeyAltSpace(This,photKeyAltSpace) ) - -#define IMsRdpClientAdvancedSettings2_put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ - ( (This)->lpVtbl -> put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings2_get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ - ( (This)->lpVtbl -> get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings2_put_orderDrawThreshold(This,porderDrawThreshold) \ - ( (This)->lpVtbl -> put_orderDrawThreshold(This,porderDrawThreshold) ) - -#define IMsRdpClientAdvancedSettings2_get_orderDrawThreshold(This,porderDrawThreshold) \ - ( (This)->lpVtbl -> get_orderDrawThreshold(This,porderDrawThreshold) ) - -#define IMsRdpClientAdvancedSettings2_put_BitmapCacheSize(This,pbitmapCacheSize) \ - ( (This)->lpVtbl -> put_BitmapCacheSize(This,pbitmapCacheSize) ) - -#define IMsRdpClientAdvancedSettings2_get_BitmapCacheSize(This,pbitmapCacheSize) \ - ( (This)->lpVtbl -> get_BitmapCacheSize(This,pbitmapCacheSize) ) - -#define IMsRdpClientAdvancedSettings2_put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ - ( (This)->lpVtbl -> put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) - -#define IMsRdpClientAdvancedSettings2_get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ - ( (This)->lpVtbl -> get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) - -#define IMsRdpClientAdvancedSettings2_put_ScaleBitmapCachesByBPP(This,pbScale) \ - ( (This)->lpVtbl -> put_ScaleBitmapCachesByBPP(This,pbScale) ) - -#define IMsRdpClientAdvancedSettings2_get_ScaleBitmapCachesByBPP(This,pbScale) \ - ( (This)->lpVtbl -> get_ScaleBitmapCachesByBPP(This,pbScale) ) - -#define IMsRdpClientAdvancedSettings2_put_NumBitmapCaches(This,pnumBitmapCaches) \ - ( (This)->lpVtbl -> put_NumBitmapCaches(This,pnumBitmapCaches) ) - -#define IMsRdpClientAdvancedSettings2_get_NumBitmapCaches(This,pnumBitmapCaches) \ - ( (This)->lpVtbl -> get_NumBitmapCaches(This,pnumBitmapCaches) ) - -#define IMsRdpClientAdvancedSettings2_put_CachePersistenceActive(This,pcachePersistenceActive) \ - ( (This)->lpVtbl -> put_CachePersistenceActive(This,pcachePersistenceActive) ) - -#define IMsRdpClientAdvancedSettings2_get_CachePersistenceActive(This,pcachePersistenceActive) \ - ( (This)->lpVtbl -> get_CachePersistenceActive(This,pcachePersistenceActive) ) - -#define IMsRdpClientAdvancedSettings2_put_PersistCacheDirectory(This,rhs) \ - ( (This)->lpVtbl -> put_PersistCacheDirectory(This,rhs) ) - -#define IMsRdpClientAdvancedSettings2_put_brushSupportLevel(This,pbrushSupportLevel) \ - ( (This)->lpVtbl -> put_brushSupportLevel(This,pbrushSupportLevel) ) - -#define IMsRdpClientAdvancedSettings2_get_brushSupportLevel(This,pbrushSupportLevel) \ - ( (This)->lpVtbl -> get_brushSupportLevel(This,pbrushSupportLevel) ) - -#define IMsRdpClientAdvancedSettings2_put_minInputSendInterval(This,pminInputSendInterval) \ - ( (This)->lpVtbl -> put_minInputSendInterval(This,pminInputSendInterval) ) - -#define IMsRdpClientAdvancedSettings2_get_minInputSendInterval(This,pminInputSendInterval) \ - ( (This)->lpVtbl -> get_minInputSendInterval(This,pminInputSendInterval) ) - -#define IMsRdpClientAdvancedSettings2_put_InputEventsAtOnce(This,pinputEventsAtOnce) \ - ( (This)->lpVtbl -> put_InputEventsAtOnce(This,pinputEventsAtOnce) ) - -#define IMsRdpClientAdvancedSettings2_get_InputEventsAtOnce(This,pinputEventsAtOnce) \ - ( (This)->lpVtbl -> get_InputEventsAtOnce(This,pinputEventsAtOnce) ) - -#define IMsRdpClientAdvancedSettings2_put_maxEventCount(This,pmaxEventCount) \ - ( (This)->lpVtbl -> put_maxEventCount(This,pmaxEventCount) ) - -#define IMsRdpClientAdvancedSettings2_get_maxEventCount(This,pmaxEventCount) \ - ( (This)->lpVtbl -> get_maxEventCount(This,pmaxEventCount) ) - -#define IMsRdpClientAdvancedSettings2_put_keepAliveInterval(This,pkeepAliveInterval) \ - ( (This)->lpVtbl -> put_keepAliveInterval(This,pkeepAliveInterval) ) - -#define IMsRdpClientAdvancedSettings2_get_keepAliveInterval(This,pkeepAliveInterval) \ - ( (This)->lpVtbl -> get_keepAliveInterval(This,pkeepAliveInterval) ) - -#define IMsRdpClientAdvancedSettings2_put_shutdownTimeout(This,pshutdownTimeout) \ - ( (This)->lpVtbl -> put_shutdownTimeout(This,pshutdownTimeout) ) - -#define IMsRdpClientAdvancedSettings2_get_shutdownTimeout(This,pshutdownTimeout) \ - ( (This)->lpVtbl -> get_shutdownTimeout(This,pshutdownTimeout) ) - -#define IMsRdpClientAdvancedSettings2_put_overallConnectionTimeout(This,poverallConnectionTimeout) \ - ( (This)->lpVtbl -> put_overallConnectionTimeout(This,poverallConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings2_get_overallConnectionTimeout(This,poverallConnectionTimeout) \ - ( (This)->lpVtbl -> get_overallConnectionTimeout(This,poverallConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings2_put_singleConnectionTimeout(This,psingleConnectionTimeout) \ - ( (This)->lpVtbl -> put_singleConnectionTimeout(This,psingleConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings2_get_singleConnectionTimeout(This,psingleConnectionTimeout) \ - ( (This)->lpVtbl -> get_singleConnectionTimeout(This,psingleConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings2_put_KeyboardType(This,pkeyboardType) \ - ( (This)->lpVtbl -> put_KeyboardType(This,pkeyboardType) ) - -#define IMsRdpClientAdvancedSettings2_get_KeyboardType(This,pkeyboardType) \ - ( (This)->lpVtbl -> get_KeyboardType(This,pkeyboardType) ) - -#define IMsRdpClientAdvancedSettings2_put_KeyboardSubType(This,pkeyboardSubType) \ - ( (This)->lpVtbl -> put_KeyboardSubType(This,pkeyboardSubType) ) - -#define IMsRdpClientAdvancedSettings2_get_KeyboardSubType(This,pkeyboardSubType) \ - ( (This)->lpVtbl -> get_KeyboardSubType(This,pkeyboardSubType) ) - -#define IMsRdpClientAdvancedSettings2_put_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ - ( (This)->lpVtbl -> put_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) - -#define IMsRdpClientAdvancedSettings2_get_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ - ( (This)->lpVtbl -> get_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) - -#define IMsRdpClientAdvancedSettings2_put_WinceFixedPalette(This,pwinceFixedPalette) \ - ( (This)->lpVtbl -> put_WinceFixedPalette(This,pwinceFixedPalette) ) - -#define IMsRdpClientAdvancedSettings2_get_WinceFixedPalette(This,pwinceFixedPalette) \ - ( (This)->lpVtbl -> get_WinceFixedPalette(This,pwinceFixedPalette) ) - -#define IMsRdpClientAdvancedSettings2_put_ConnectToServerConsole(This,pConnectToConsole) \ - ( (This)->lpVtbl -> put_ConnectToServerConsole(This,pConnectToConsole) ) - -#define IMsRdpClientAdvancedSettings2_get_ConnectToServerConsole(This,pConnectToConsole) \ - ( (This)->lpVtbl -> get_ConnectToServerConsole(This,pConnectToConsole) ) - -#define IMsRdpClientAdvancedSettings2_put_BitmapPersistence(This,pbitmapPersistence) \ - ( (This)->lpVtbl -> put_BitmapPersistence(This,pbitmapPersistence) ) - -#define IMsRdpClientAdvancedSettings2_get_BitmapPersistence(This,pbitmapPersistence) \ - ( (This)->lpVtbl -> get_BitmapPersistence(This,pbitmapPersistence) ) - -#define IMsRdpClientAdvancedSettings2_put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ - ( (This)->lpVtbl -> put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) - -#define IMsRdpClientAdvancedSettings2_get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ - ( (This)->lpVtbl -> get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) - -#define IMsRdpClientAdvancedSettings2_put_SmartSizing(This,pfSmartSizing) \ - ( (This)->lpVtbl -> put_SmartSizing(This,pfSmartSizing) ) - -#define IMsRdpClientAdvancedSettings2_get_SmartSizing(This,pfSmartSizing) \ - ( (This)->lpVtbl -> get_SmartSizing(This,pfSmartSizing) ) - -#define IMsRdpClientAdvancedSettings2_put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ - ( (This)->lpVtbl -> put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) - -#define IMsRdpClientAdvancedSettings2_get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ - ( (This)->lpVtbl -> get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) - -#define IMsRdpClientAdvancedSettings2_put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ - ( (This)->lpVtbl -> put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) - -#define IMsRdpClientAdvancedSettings2_get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ - ( (This)->lpVtbl -> get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) - -#define IMsRdpClientAdvancedSettings2_put_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ - ( (This)->lpVtbl -> put_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) - -#define IMsRdpClientAdvancedSettings2_get_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ - ( (This)->lpVtbl -> get_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) - -#define IMsRdpClientAdvancedSettings2_put_ClearTextPassword(This,rhs) \ - ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) - -#define IMsRdpClientAdvancedSettings2_put_DisplayConnectionBar(This,pDisplayConnectionBar) \ - ( (This)->lpVtbl -> put_DisplayConnectionBar(This,pDisplayConnectionBar) ) - -#define IMsRdpClientAdvancedSettings2_get_DisplayConnectionBar(This,pDisplayConnectionBar) \ - ( (This)->lpVtbl -> get_DisplayConnectionBar(This,pDisplayConnectionBar) ) - -#define IMsRdpClientAdvancedSettings2_put_PinConnectionBar(This,pPinConnectionBar) \ - ( (This)->lpVtbl -> put_PinConnectionBar(This,pPinConnectionBar) ) - -#define IMsRdpClientAdvancedSettings2_get_PinConnectionBar(This,pPinConnectionBar) \ - ( (This)->lpVtbl -> get_PinConnectionBar(This,pPinConnectionBar) ) - -#define IMsRdpClientAdvancedSettings2_put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ - ( (This)->lpVtbl -> put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) - -#define IMsRdpClientAdvancedSettings2_get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ - ( (This)->lpVtbl -> get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) - -#define IMsRdpClientAdvancedSettings2_put_LoadBalanceInfo(This,pLBInfo) \ - ( (This)->lpVtbl -> put_LoadBalanceInfo(This,pLBInfo) ) - -#define IMsRdpClientAdvancedSettings2_get_LoadBalanceInfo(This,pLBInfo) \ - ( (This)->lpVtbl -> get_LoadBalanceInfo(This,pLBInfo) ) - -#define IMsRdpClientAdvancedSettings2_put_RedirectDrives(This,pRedirectDrives) \ - ( (This)->lpVtbl -> put_RedirectDrives(This,pRedirectDrives) ) - -#define IMsRdpClientAdvancedSettings2_get_RedirectDrives(This,pRedirectDrives) \ - ( (This)->lpVtbl -> get_RedirectDrives(This,pRedirectDrives) ) - -#define IMsRdpClientAdvancedSettings2_put_RedirectPrinters(This,pRedirectPrinters) \ - ( (This)->lpVtbl -> put_RedirectPrinters(This,pRedirectPrinters) ) - -#define IMsRdpClientAdvancedSettings2_get_RedirectPrinters(This,pRedirectPrinters) \ - ( (This)->lpVtbl -> get_RedirectPrinters(This,pRedirectPrinters) ) - -#define IMsRdpClientAdvancedSettings2_put_RedirectPorts(This,pRedirectPorts) \ - ( (This)->lpVtbl -> put_RedirectPorts(This,pRedirectPorts) ) - -#define IMsRdpClientAdvancedSettings2_get_RedirectPorts(This,pRedirectPorts) \ - ( (This)->lpVtbl -> get_RedirectPorts(This,pRedirectPorts) ) - -#define IMsRdpClientAdvancedSettings2_put_RedirectSmartCards(This,pRedirectSmartCards) \ - ( (This)->lpVtbl -> put_RedirectSmartCards(This,pRedirectSmartCards) ) - -#define IMsRdpClientAdvancedSettings2_get_RedirectSmartCards(This,pRedirectSmartCards) \ - ( (This)->lpVtbl -> get_RedirectSmartCards(This,pRedirectSmartCards) ) - -#define IMsRdpClientAdvancedSettings2_put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ - ( (This)->lpVtbl -> put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) - -#define IMsRdpClientAdvancedSettings2_get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ - ( (This)->lpVtbl -> get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) - -#define IMsRdpClientAdvancedSettings2_put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ - ( (This)->lpVtbl -> put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) - -#define IMsRdpClientAdvancedSettings2_get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ - ( (This)->lpVtbl -> get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) - -#define IMsRdpClientAdvancedSettings2_put_PerformanceFlags(This,pDisableList) \ - ( (This)->lpVtbl -> put_PerformanceFlags(This,pDisableList) ) - -#define IMsRdpClientAdvancedSettings2_get_PerformanceFlags(This,pDisableList) \ - ( (This)->lpVtbl -> get_PerformanceFlags(This,pDisableList) ) - -#define IMsRdpClientAdvancedSettings2_put_ConnectWithEndpoint(This,rhs) \ - ( (This)->lpVtbl -> put_ConnectWithEndpoint(This,rhs) ) - -#define IMsRdpClientAdvancedSettings2_put_NotifyTSPublicKey(This,pfNotify) \ - ( (This)->lpVtbl -> put_NotifyTSPublicKey(This,pfNotify) ) - -#define IMsRdpClientAdvancedSettings2_get_NotifyTSPublicKey(This,pfNotify) \ - ( (This)->lpVtbl -> get_NotifyTSPublicKey(This,pfNotify) ) - - -#define IMsRdpClientAdvancedSettings2_get_CanAutoReconnect(This,pfCanAutoReconnect) \ - ( (This)->lpVtbl -> get_CanAutoReconnect(This,pfCanAutoReconnect) ) - -#define IMsRdpClientAdvancedSettings2_put_EnableAutoReconnect(This,pfEnableAutoReconnect) \ - ( (This)->lpVtbl -> put_EnableAutoReconnect(This,pfEnableAutoReconnect) ) - -#define IMsRdpClientAdvancedSettings2_get_EnableAutoReconnect(This,pfEnableAutoReconnect) \ - ( (This)->lpVtbl -> get_EnableAutoReconnect(This,pfEnableAutoReconnect) ) - -#define IMsRdpClientAdvancedSettings2_put_MaxReconnectAttempts(This,pMaxReconnectAttempts) \ - ( (This)->lpVtbl -> put_MaxReconnectAttempts(This,pMaxReconnectAttempts) ) - -#define IMsRdpClientAdvancedSettings2_get_MaxReconnectAttempts(This,pMaxReconnectAttempts) \ - ( (This)->lpVtbl -> get_MaxReconnectAttempts(This,pMaxReconnectAttempts) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings2_get_CanAutoReconnect_Proxy( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pfCanAutoReconnect); - - -void __RPC_STUB IMsRdpClientAdvancedSettings2_get_CanAutoReconnect_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings2_put_EnableAutoReconnect_Proxy( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ VARIANT_BOOL pfEnableAutoReconnect); - - -void __RPC_STUB IMsRdpClientAdvancedSettings2_put_EnableAutoReconnect_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings2_get_EnableAutoReconnect_Proxy( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ VARIANT_BOOL *pfEnableAutoReconnect); - - -void __RPC_STUB IMsRdpClientAdvancedSettings2_get_EnableAutoReconnect_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings2_put_MaxReconnectAttempts_Proxy( - IMsRdpClientAdvancedSettings2 * This, - /* [in] */ long pMaxReconnectAttempts); - - -void __RPC_STUB IMsRdpClientAdvancedSettings2_put_MaxReconnectAttempts_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings2_get_MaxReconnectAttempts_Proxy( - IMsRdpClientAdvancedSettings2 * This, - /* [retval][out] */ long *pMaxReconnectAttempts); - - -void __RPC_STUB IMsRdpClientAdvancedSettings2_get_MaxReconnectAttempts_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IMsRdpClientAdvancedSettings2_INTERFACE_DEFINED__ */ - - -#ifndef __IMsRdpClientAdvancedSettings3_INTERFACE_DEFINED__ -#define __IMsRdpClientAdvancedSettings3_INTERFACE_DEFINED__ - -/* interface IMsRdpClientAdvancedSettings3 */ -/* [object][oleautomation][dual][uuid] */ - - -EXTERN_C const IID IID_IMsRdpClientAdvancedSettings3; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("19CD856B-C542-4C53-ACEE-F127E3BE1A59") - IMsRdpClientAdvancedSettings3 : public IMsRdpClientAdvancedSettings2 - { - public: - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectionBarShowMinimizeButton( - /* [in] */ VARIANT_BOOL pfShowMinimize) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ConnectionBarShowMinimizeButton( - /* [retval][out] */ VARIANT_BOOL *pfShowMinimize) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectionBarShowRestoreButton( - /* [in] */ VARIANT_BOOL pfShowRestore) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ConnectionBarShowRestoreButton( - /* [retval][out] */ VARIANT_BOOL *pfShowRestore) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsRdpClientAdvancedSettings3Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsRdpClientAdvancedSettings3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsRdpClientAdvancedSettings3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsRdpClientAdvancedSettings3 * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Compress )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pcompress); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Compress )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pcompress); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPeristence )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pbitmapPeristence); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPeristence )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pbitmapPeristence); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_allowBackgroundInput )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pallowBackgroundInput); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_allowBackgroundInput )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pallowBackgroundInput); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyBoardLayoutStr )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PluginDlls )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconFile )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconIndex )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerHandledFullScreen )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pContainerHandledFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerHandledFullScreen )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pContainerHandledFullScreen); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableRdpdr )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pDisableRdpdr); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableRdpdr )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pDisableRdpdr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmoothScroll )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long psmoothScroll); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmoothScroll )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *psmoothScroll); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AcceleratorPassthrough )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pacceleratorPassthrough); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AcceleratorPassthrough )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pacceleratorPassthrough); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShadowBitmap )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pshadowBitmap); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShadowBitmap )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pshadowBitmap); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TransportType )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long ptransportType); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TransportType )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *ptransportType); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SasSequence )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long psasSequence); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SasSequence )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *psasSequence); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EncryptionEnabled )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pencryptionEnabled); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EncryptionEnabled )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pencryptionEnabled); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DedicatedTerminal )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pdedicatedTerminal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DedicatedTerminal )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pdedicatedTerminal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RDPPort )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long prdpPort); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RDPPort )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *prdpPort); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableMouse )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long penableMouse); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableMouse )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *penableMouse); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableCtrlAltDel )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pdisableCtrlAltDel); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableCtrlAltDel )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pdisableCtrlAltDel); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableWindowsKey )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long penableWindowsKey); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableWindowsKey )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *penableWindowsKey); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DoubleClickDetect )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pdoubleClickDetect); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DoubleClickDetect )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pdoubleClickDetect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaximizeShell )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pmaximizeShell); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaximizeShell )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pmaximizeShell); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyFullScreen )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long photKeyFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyFullScreen )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *photKeyFullScreen); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlEsc )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long photKeyCtrlEsc); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlEsc )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *photKeyCtrlEsc); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltEsc )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long photKeyAltEsc); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltEsc )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *photKeyAltEsc); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltTab )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long photKeyAltTab); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltTab )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *photKeyAltTab); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltShiftTab )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long photKeyAltShiftTab); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltShiftTab )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *photKeyAltShiftTab); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltSpace )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long photKeyAltSpace); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltSpace )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *photKeyAltSpace); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlAltDel )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long photKeyCtrlAltDel); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlAltDel )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *photKeyCtrlAltDel); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_orderDrawThreshold )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long porderDrawThreshold); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_orderDrawThreshold )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *porderDrawThreshold); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapCacheSize )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pbitmapCacheSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapCacheSize )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pbitmapCacheSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCacheSize )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pbitmapVirtualCacheSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCacheSize )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pbitmapVirtualCacheSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleBitmapCachesByBPP )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pbScale); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleBitmapCachesByBPP )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pbScale); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NumBitmapCaches )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pnumBitmapCaches); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumBitmapCaches )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pnumBitmapCaches); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CachePersistenceActive )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pcachePersistenceActive); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CachePersistenceActive )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pcachePersistenceActive); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PersistCacheDirectory )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_brushSupportLevel )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pbrushSupportLevel); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_brushSupportLevel )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pbrushSupportLevel); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_minInputSendInterval )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pminInputSendInterval); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_minInputSendInterval )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pminInputSendInterval); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InputEventsAtOnce )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pinputEventsAtOnce); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InputEventsAtOnce )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pinputEventsAtOnce); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_maxEventCount )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pmaxEventCount); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_maxEventCount )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pmaxEventCount); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_keepAliveInterval )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pkeepAliveInterval); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_keepAliveInterval )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pkeepAliveInterval); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_shutdownTimeout )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pshutdownTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_shutdownTimeout )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pshutdownTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_overallConnectionTimeout )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long poverallConnectionTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_overallConnectionTimeout )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *poverallConnectionTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_singleConnectionTimeout )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long psingleConnectionTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_singleConnectionTimeout )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *psingleConnectionTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardType )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pkeyboardType); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardType )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pkeyboardType); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardSubType )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pkeyboardSubType); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardSubType )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pkeyboardSubType); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardFunctionKey )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pkeyboardFunctionKey); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardFunctionKey )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pkeyboardFunctionKey); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WinceFixedPalette )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pwinceFixedPalette); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WinceFixedPalette )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pwinceFixedPalette); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectToServerConsole )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pConnectToConsole); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectToServerConsole )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pConnectToConsole); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPersistence )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pbitmapPersistence); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPersistence )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pbitmapPersistence); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MinutesToIdleTimeout )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pminutesToIdleTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MinutesToIdleTimeout )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pminutesToIdleTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmartSizing )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pfSmartSizing); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmartSizing )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pfSmartSizing); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrLocalPrintingDocName )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ BSTR pLocalPrintingDocName); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrLocalPrintingDocName )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ BSTR *pLocalPrintingDocName); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipCleanTempDirString )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ BSTR clipCleanTempDirString); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipCleanTempDirString )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ BSTR *clipCleanTempDirString); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipPasteInfoString )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ BSTR clipPasteInfoString); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipPasteInfoString )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ BSTR *clipPasteInfoString); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisplayConnectionBar )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pDisplayConnectionBar); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisplayConnectionBar )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pDisplayConnectionBar); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PinConnectionBar )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pPinConnectionBar); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PinConnectionBar )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pPinConnectionBar); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GrabFocusOnConnect )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pfGrabFocusOnConnect); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GrabFocusOnConnect )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pfGrabFocusOnConnect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LoadBalanceInfo )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ BSTR pLBInfo); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LoadBalanceInfo )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ BSTR *pLBInfo); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectDrives )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pRedirectDrives); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectDrives )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectDrives); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPrinters )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pRedirectPrinters); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPrinters )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectPrinters); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPorts )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pRedirectPorts); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPorts )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectPorts); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectSmartCards )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pRedirectSmartCards); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectSmartCards )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache16BppSize )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pBitmapVirtualCache16BppSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache16BppSize )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pBitmapVirtualCache16BppSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache24BppSize )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pBitmapVirtualCache24BppSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache24BppSize )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pBitmapVirtualCache24BppSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PerformanceFlags )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pDisableList); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PerformanceFlags )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pDisableList); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectWithEndpoint )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT *rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NotifyTSPublicKey )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pfNotify); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NotifyTSPublicKey )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pfNotify); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CanAutoReconnect )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pfCanAutoReconnect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableAutoReconnect )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pfEnableAutoReconnect); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableAutoReconnect )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pfEnableAutoReconnect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaxReconnectAttempts )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ long pMaxReconnectAttempts); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaxReconnectAttempts )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ long *pMaxReconnectAttempts); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectionBarShowMinimizeButton )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pfShowMinimize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectionBarShowMinimizeButton )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pfShowMinimize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectionBarShowRestoreButton )( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pfShowRestore); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectionBarShowRestoreButton )( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pfShowRestore); - - END_INTERFACE - } IMsRdpClientAdvancedSettings3Vtbl; - - interface IMsRdpClientAdvancedSettings3 - { - CONST_VTBL struct IMsRdpClientAdvancedSettings3Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsRdpClientAdvancedSettings3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsRdpClientAdvancedSettings3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsRdpClientAdvancedSettings3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsRdpClientAdvancedSettings3_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsRdpClientAdvancedSettings3_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsRdpClientAdvancedSettings3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsRdpClientAdvancedSettings3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IMsRdpClientAdvancedSettings3_put_Compress(This,pcompress) \ - ( (This)->lpVtbl -> put_Compress(This,pcompress) ) - -#define IMsRdpClientAdvancedSettings3_get_Compress(This,pcompress) \ - ( (This)->lpVtbl -> get_Compress(This,pcompress) ) - -#define IMsRdpClientAdvancedSettings3_put_BitmapPeristence(This,pbitmapPeristence) \ - ( (This)->lpVtbl -> put_BitmapPeristence(This,pbitmapPeristence) ) - -#define IMsRdpClientAdvancedSettings3_get_BitmapPeristence(This,pbitmapPeristence) \ - ( (This)->lpVtbl -> get_BitmapPeristence(This,pbitmapPeristence) ) - -#define IMsRdpClientAdvancedSettings3_put_allowBackgroundInput(This,pallowBackgroundInput) \ - ( (This)->lpVtbl -> put_allowBackgroundInput(This,pallowBackgroundInput) ) - -#define IMsRdpClientAdvancedSettings3_get_allowBackgroundInput(This,pallowBackgroundInput) \ - ( (This)->lpVtbl -> get_allowBackgroundInput(This,pallowBackgroundInput) ) - -#define IMsRdpClientAdvancedSettings3_put_KeyBoardLayoutStr(This,rhs) \ - ( (This)->lpVtbl -> put_KeyBoardLayoutStr(This,rhs) ) - -#define IMsRdpClientAdvancedSettings3_put_PluginDlls(This,rhs) \ - ( (This)->lpVtbl -> put_PluginDlls(This,rhs) ) - -#define IMsRdpClientAdvancedSettings3_put_IconFile(This,rhs) \ - ( (This)->lpVtbl -> put_IconFile(This,rhs) ) - -#define IMsRdpClientAdvancedSettings3_put_IconIndex(This,rhs) \ - ( (This)->lpVtbl -> put_IconIndex(This,rhs) ) - -#define IMsRdpClientAdvancedSettings3_put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ - ( (This)->lpVtbl -> put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) - -#define IMsRdpClientAdvancedSettings3_get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ - ( (This)->lpVtbl -> get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) - -#define IMsRdpClientAdvancedSettings3_put_DisableRdpdr(This,pDisableRdpdr) \ - ( (This)->lpVtbl -> put_DisableRdpdr(This,pDisableRdpdr) ) - -#define IMsRdpClientAdvancedSettings3_get_DisableRdpdr(This,pDisableRdpdr) \ - ( (This)->lpVtbl -> get_DisableRdpdr(This,pDisableRdpdr) ) - - -#define IMsRdpClientAdvancedSettings3_put_SmoothScroll(This,psmoothScroll) \ - ( (This)->lpVtbl -> put_SmoothScroll(This,psmoothScroll) ) - -#define IMsRdpClientAdvancedSettings3_get_SmoothScroll(This,psmoothScroll) \ - ( (This)->lpVtbl -> get_SmoothScroll(This,psmoothScroll) ) - -#define IMsRdpClientAdvancedSettings3_put_AcceleratorPassthrough(This,pacceleratorPassthrough) \ - ( (This)->lpVtbl -> put_AcceleratorPassthrough(This,pacceleratorPassthrough) ) - -#define IMsRdpClientAdvancedSettings3_get_AcceleratorPassthrough(This,pacceleratorPassthrough) \ - ( (This)->lpVtbl -> get_AcceleratorPassthrough(This,pacceleratorPassthrough) ) - -#define IMsRdpClientAdvancedSettings3_put_ShadowBitmap(This,pshadowBitmap) \ - ( (This)->lpVtbl -> put_ShadowBitmap(This,pshadowBitmap) ) - -#define IMsRdpClientAdvancedSettings3_get_ShadowBitmap(This,pshadowBitmap) \ - ( (This)->lpVtbl -> get_ShadowBitmap(This,pshadowBitmap) ) - -#define IMsRdpClientAdvancedSettings3_put_TransportType(This,ptransportType) \ - ( (This)->lpVtbl -> put_TransportType(This,ptransportType) ) - -#define IMsRdpClientAdvancedSettings3_get_TransportType(This,ptransportType) \ - ( (This)->lpVtbl -> get_TransportType(This,ptransportType) ) - -#define IMsRdpClientAdvancedSettings3_put_SasSequence(This,psasSequence) \ - ( (This)->lpVtbl -> put_SasSequence(This,psasSequence) ) - -#define IMsRdpClientAdvancedSettings3_get_SasSequence(This,psasSequence) \ - ( (This)->lpVtbl -> get_SasSequence(This,psasSequence) ) - -#define IMsRdpClientAdvancedSettings3_put_EncryptionEnabled(This,pencryptionEnabled) \ - ( (This)->lpVtbl -> put_EncryptionEnabled(This,pencryptionEnabled) ) - -#define IMsRdpClientAdvancedSettings3_get_EncryptionEnabled(This,pencryptionEnabled) \ - ( (This)->lpVtbl -> get_EncryptionEnabled(This,pencryptionEnabled) ) - -#define IMsRdpClientAdvancedSettings3_put_DedicatedTerminal(This,pdedicatedTerminal) \ - ( (This)->lpVtbl -> put_DedicatedTerminal(This,pdedicatedTerminal) ) - -#define IMsRdpClientAdvancedSettings3_get_DedicatedTerminal(This,pdedicatedTerminal) \ - ( (This)->lpVtbl -> get_DedicatedTerminal(This,pdedicatedTerminal) ) - -#define IMsRdpClientAdvancedSettings3_put_RDPPort(This,prdpPort) \ - ( (This)->lpVtbl -> put_RDPPort(This,prdpPort) ) - -#define IMsRdpClientAdvancedSettings3_get_RDPPort(This,prdpPort) \ - ( (This)->lpVtbl -> get_RDPPort(This,prdpPort) ) - -#define IMsRdpClientAdvancedSettings3_put_EnableMouse(This,penableMouse) \ - ( (This)->lpVtbl -> put_EnableMouse(This,penableMouse) ) - -#define IMsRdpClientAdvancedSettings3_get_EnableMouse(This,penableMouse) \ - ( (This)->lpVtbl -> get_EnableMouse(This,penableMouse) ) - -#define IMsRdpClientAdvancedSettings3_put_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ - ( (This)->lpVtbl -> put_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings3_get_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ - ( (This)->lpVtbl -> get_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings3_put_EnableWindowsKey(This,penableWindowsKey) \ - ( (This)->lpVtbl -> put_EnableWindowsKey(This,penableWindowsKey) ) - -#define IMsRdpClientAdvancedSettings3_get_EnableWindowsKey(This,penableWindowsKey) \ - ( (This)->lpVtbl -> get_EnableWindowsKey(This,penableWindowsKey) ) - -#define IMsRdpClientAdvancedSettings3_put_DoubleClickDetect(This,pdoubleClickDetect) \ - ( (This)->lpVtbl -> put_DoubleClickDetect(This,pdoubleClickDetect) ) - -#define IMsRdpClientAdvancedSettings3_get_DoubleClickDetect(This,pdoubleClickDetect) \ - ( (This)->lpVtbl -> get_DoubleClickDetect(This,pdoubleClickDetect) ) - -#define IMsRdpClientAdvancedSettings3_put_MaximizeShell(This,pmaximizeShell) \ - ( (This)->lpVtbl -> put_MaximizeShell(This,pmaximizeShell) ) - -#define IMsRdpClientAdvancedSettings3_get_MaximizeShell(This,pmaximizeShell) \ - ( (This)->lpVtbl -> get_MaximizeShell(This,pmaximizeShell) ) - -#define IMsRdpClientAdvancedSettings3_put_HotKeyFullScreen(This,photKeyFullScreen) \ - ( (This)->lpVtbl -> put_HotKeyFullScreen(This,photKeyFullScreen) ) - -#define IMsRdpClientAdvancedSettings3_get_HotKeyFullScreen(This,photKeyFullScreen) \ - ( (This)->lpVtbl -> get_HotKeyFullScreen(This,photKeyFullScreen) ) - -#define IMsRdpClientAdvancedSettings3_put_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ - ( (This)->lpVtbl -> put_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) - -#define IMsRdpClientAdvancedSettings3_get_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ - ( (This)->lpVtbl -> get_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) - -#define IMsRdpClientAdvancedSettings3_put_HotKeyAltEsc(This,photKeyAltEsc) \ - ( (This)->lpVtbl -> put_HotKeyAltEsc(This,photKeyAltEsc) ) - -#define IMsRdpClientAdvancedSettings3_get_HotKeyAltEsc(This,photKeyAltEsc) \ - ( (This)->lpVtbl -> get_HotKeyAltEsc(This,photKeyAltEsc) ) - -#define IMsRdpClientAdvancedSettings3_put_HotKeyAltTab(This,photKeyAltTab) \ - ( (This)->lpVtbl -> put_HotKeyAltTab(This,photKeyAltTab) ) - -#define IMsRdpClientAdvancedSettings3_get_HotKeyAltTab(This,photKeyAltTab) \ - ( (This)->lpVtbl -> get_HotKeyAltTab(This,photKeyAltTab) ) - -#define IMsRdpClientAdvancedSettings3_put_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ - ( (This)->lpVtbl -> put_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) - -#define IMsRdpClientAdvancedSettings3_get_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ - ( (This)->lpVtbl -> get_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) - -#define IMsRdpClientAdvancedSettings3_put_HotKeyAltSpace(This,photKeyAltSpace) \ - ( (This)->lpVtbl -> put_HotKeyAltSpace(This,photKeyAltSpace) ) - -#define IMsRdpClientAdvancedSettings3_get_HotKeyAltSpace(This,photKeyAltSpace) \ - ( (This)->lpVtbl -> get_HotKeyAltSpace(This,photKeyAltSpace) ) - -#define IMsRdpClientAdvancedSettings3_put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ - ( (This)->lpVtbl -> put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings3_get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ - ( (This)->lpVtbl -> get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings3_put_orderDrawThreshold(This,porderDrawThreshold) \ - ( (This)->lpVtbl -> put_orderDrawThreshold(This,porderDrawThreshold) ) - -#define IMsRdpClientAdvancedSettings3_get_orderDrawThreshold(This,porderDrawThreshold) \ - ( (This)->lpVtbl -> get_orderDrawThreshold(This,porderDrawThreshold) ) - -#define IMsRdpClientAdvancedSettings3_put_BitmapCacheSize(This,pbitmapCacheSize) \ - ( (This)->lpVtbl -> put_BitmapCacheSize(This,pbitmapCacheSize) ) - -#define IMsRdpClientAdvancedSettings3_get_BitmapCacheSize(This,pbitmapCacheSize) \ - ( (This)->lpVtbl -> get_BitmapCacheSize(This,pbitmapCacheSize) ) - -#define IMsRdpClientAdvancedSettings3_put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ - ( (This)->lpVtbl -> put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) - -#define IMsRdpClientAdvancedSettings3_get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ - ( (This)->lpVtbl -> get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) - -#define IMsRdpClientAdvancedSettings3_put_ScaleBitmapCachesByBPP(This,pbScale) \ - ( (This)->lpVtbl -> put_ScaleBitmapCachesByBPP(This,pbScale) ) - -#define IMsRdpClientAdvancedSettings3_get_ScaleBitmapCachesByBPP(This,pbScale) \ - ( (This)->lpVtbl -> get_ScaleBitmapCachesByBPP(This,pbScale) ) - -#define IMsRdpClientAdvancedSettings3_put_NumBitmapCaches(This,pnumBitmapCaches) \ - ( (This)->lpVtbl -> put_NumBitmapCaches(This,pnumBitmapCaches) ) - -#define IMsRdpClientAdvancedSettings3_get_NumBitmapCaches(This,pnumBitmapCaches) \ - ( (This)->lpVtbl -> get_NumBitmapCaches(This,pnumBitmapCaches) ) - -#define IMsRdpClientAdvancedSettings3_put_CachePersistenceActive(This,pcachePersistenceActive) \ - ( (This)->lpVtbl -> put_CachePersistenceActive(This,pcachePersistenceActive) ) - -#define IMsRdpClientAdvancedSettings3_get_CachePersistenceActive(This,pcachePersistenceActive) \ - ( (This)->lpVtbl -> get_CachePersistenceActive(This,pcachePersistenceActive) ) - -#define IMsRdpClientAdvancedSettings3_put_PersistCacheDirectory(This,rhs) \ - ( (This)->lpVtbl -> put_PersistCacheDirectory(This,rhs) ) - -#define IMsRdpClientAdvancedSettings3_put_brushSupportLevel(This,pbrushSupportLevel) \ - ( (This)->lpVtbl -> put_brushSupportLevel(This,pbrushSupportLevel) ) - -#define IMsRdpClientAdvancedSettings3_get_brushSupportLevel(This,pbrushSupportLevel) \ - ( (This)->lpVtbl -> get_brushSupportLevel(This,pbrushSupportLevel) ) - -#define IMsRdpClientAdvancedSettings3_put_minInputSendInterval(This,pminInputSendInterval) \ - ( (This)->lpVtbl -> put_minInputSendInterval(This,pminInputSendInterval) ) - -#define IMsRdpClientAdvancedSettings3_get_minInputSendInterval(This,pminInputSendInterval) \ - ( (This)->lpVtbl -> get_minInputSendInterval(This,pminInputSendInterval) ) - -#define IMsRdpClientAdvancedSettings3_put_InputEventsAtOnce(This,pinputEventsAtOnce) \ - ( (This)->lpVtbl -> put_InputEventsAtOnce(This,pinputEventsAtOnce) ) - -#define IMsRdpClientAdvancedSettings3_get_InputEventsAtOnce(This,pinputEventsAtOnce) \ - ( (This)->lpVtbl -> get_InputEventsAtOnce(This,pinputEventsAtOnce) ) - -#define IMsRdpClientAdvancedSettings3_put_maxEventCount(This,pmaxEventCount) \ - ( (This)->lpVtbl -> put_maxEventCount(This,pmaxEventCount) ) - -#define IMsRdpClientAdvancedSettings3_get_maxEventCount(This,pmaxEventCount) \ - ( (This)->lpVtbl -> get_maxEventCount(This,pmaxEventCount) ) - -#define IMsRdpClientAdvancedSettings3_put_keepAliveInterval(This,pkeepAliveInterval) \ - ( (This)->lpVtbl -> put_keepAliveInterval(This,pkeepAliveInterval) ) - -#define IMsRdpClientAdvancedSettings3_get_keepAliveInterval(This,pkeepAliveInterval) \ - ( (This)->lpVtbl -> get_keepAliveInterval(This,pkeepAliveInterval) ) - -#define IMsRdpClientAdvancedSettings3_put_shutdownTimeout(This,pshutdownTimeout) \ - ( (This)->lpVtbl -> put_shutdownTimeout(This,pshutdownTimeout) ) - -#define IMsRdpClientAdvancedSettings3_get_shutdownTimeout(This,pshutdownTimeout) \ - ( (This)->lpVtbl -> get_shutdownTimeout(This,pshutdownTimeout) ) - -#define IMsRdpClientAdvancedSettings3_put_overallConnectionTimeout(This,poverallConnectionTimeout) \ - ( (This)->lpVtbl -> put_overallConnectionTimeout(This,poverallConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings3_get_overallConnectionTimeout(This,poverallConnectionTimeout) \ - ( (This)->lpVtbl -> get_overallConnectionTimeout(This,poverallConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings3_put_singleConnectionTimeout(This,psingleConnectionTimeout) \ - ( (This)->lpVtbl -> put_singleConnectionTimeout(This,psingleConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings3_get_singleConnectionTimeout(This,psingleConnectionTimeout) \ - ( (This)->lpVtbl -> get_singleConnectionTimeout(This,psingleConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings3_put_KeyboardType(This,pkeyboardType) \ - ( (This)->lpVtbl -> put_KeyboardType(This,pkeyboardType) ) - -#define IMsRdpClientAdvancedSettings3_get_KeyboardType(This,pkeyboardType) \ - ( (This)->lpVtbl -> get_KeyboardType(This,pkeyboardType) ) - -#define IMsRdpClientAdvancedSettings3_put_KeyboardSubType(This,pkeyboardSubType) \ - ( (This)->lpVtbl -> put_KeyboardSubType(This,pkeyboardSubType) ) - -#define IMsRdpClientAdvancedSettings3_get_KeyboardSubType(This,pkeyboardSubType) \ - ( (This)->lpVtbl -> get_KeyboardSubType(This,pkeyboardSubType) ) - -#define IMsRdpClientAdvancedSettings3_put_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ - ( (This)->lpVtbl -> put_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) - -#define IMsRdpClientAdvancedSettings3_get_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ - ( (This)->lpVtbl -> get_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) - -#define IMsRdpClientAdvancedSettings3_put_WinceFixedPalette(This,pwinceFixedPalette) \ - ( (This)->lpVtbl -> put_WinceFixedPalette(This,pwinceFixedPalette) ) - -#define IMsRdpClientAdvancedSettings3_get_WinceFixedPalette(This,pwinceFixedPalette) \ - ( (This)->lpVtbl -> get_WinceFixedPalette(This,pwinceFixedPalette) ) - -#define IMsRdpClientAdvancedSettings3_put_ConnectToServerConsole(This,pConnectToConsole) \ - ( (This)->lpVtbl -> put_ConnectToServerConsole(This,pConnectToConsole) ) - -#define IMsRdpClientAdvancedSettings3_get_ConnectToServerConsole(This,pConnectToConsole) \ - ( (This)->lpVtbl -> get_ConnectToServerConsole(This,pConnectToConsole) ) - -#define IMsRdpClientAdvancedSettings3_put_BitmapPersistence(This,pbitmapPersistence) \ - ( (This)->lpVtbl -> put_BitmapPersistence(This,pbitmapPersistence) ) - -#define IMsRdpClientAdvancedSettings3_get_BitmapPersistence(This,pbitmapPersistence) \ - ( (This)->lpVtbl -> get_BitmapPersistence(This,pbitmapPersistence) ) - -#define IMsRdpClientAdvancedSettings3_put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ - ( (This)->lpVtbl -> put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) - -#define IMsRdpClientAdvancedSettings3_get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ - ( (This)->lpVtbl -> get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) - -#define IMsRdpClientAdvancedSettings3_put_SmartSizing(This,pfSmartSizing) \ - ( (This)->lpVtbl -> put_SmartSizing(This,pfSmartSizing) ) - -#define IMsRdpClientAdvancedSettings3_get_SmartSizing(This,pfSmartSizing) \ - ( (This)->lpVtbl -> get_SmartSizing(This,pfSmartSizing) ) - -#define IMsRdpClientAdvancedSettings3_put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ - ( (This)->lpVtbl -> put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) - -#define IMsRdpClientAdvancedSettings3_get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ - ( (This)->lpVtbl -> get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) - -#define IMsRdpClientAdvancedSettings3_put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ - ( (This)->lpVtbl -> put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) - -#define IMsRdpClientAdvancedSettings3_get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ - ( (This)->lpVtbl -> get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) - -#define IMsRdpClientAdvancedSettings3_put_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ - ( (This)->lpVtbl -> put_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) - -#define IMsRdpClientAdvancedSettings3_get_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ - ( (This)->lpVtbl -> get_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) - -#define IMsRdpClientAdvancedSettings3_put_ClearTextPassword(This,rhs) \ - ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) - -#define IMsRdpClientAdvancedSettings3_put_DisplayConnectionBar(This,pDisplayConnectionBar) \ - ( (This)->lpVtbl -> put_DisplayConnectionBar(This,pDisplayConnectionBar) ) - -#define IMsRdpClientAdvancedSettings3_get_DisplayConnectionBar(This,pDisplayConnectionBar) \ - ( (This)->lpVtbl -> get_DisplayConnectionBar(This,pDisplayConnectionBar) ) - -#define IMsRdpClientAdvancedSettings3_put_PinConnectionBar(This,pPinConnectionBar) \ - ( (This)->lpVtbl -> put_PinConnectionBar(This,pPinConnectionBar) ) - -#define IMsRdpClientAdvancedSettings3_get_PinConnectionBar(This,pPinConnectionBar) \ - ( (This)->lpVtbl -> get_PinConnectionBar(This,pPinConnectionBar) ) - -#define IMsRdpClientAdvancedSettings3_put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ - ( (This)->lpVtbl -> put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) - -#define IMsRdpClientAdvancedSettings3_get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ - ( (This)->lpVtbl -> get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) - -#define IMsRdpClientAdvancedSettings3_put_LoadBalanceInfo(This,pLBInfo) \ - ( (This)->lpVtbl -> put_LoadBalanceInfo(This,pLBInfo) ) - -#define IMsRdpClientAdvancedSettings3_get_LoadBalanceInfo(This,pLBInfo) \ - ( (This)->lpVtbl -> get_LoadBalanceInfo(This,pLBInfo) ) - -#define IMsRdpClientAdvancedSettings3_put_RedirectDrives(This,pRedirectDrives) \ - ( (This)->lpVtbl -> put_RedirectDrives(This,pRedirectDrives) ) - -#define IMsRdpClientAdvancedSettings3_get_RedirectDrives(This,pRedirectDrives) \ - ( (This)->lpVtbl -> get_RedirectDrives(This,pRedirectDrives) ) - -#define IMsRdpClientAdvancedSettings3_put_RedirectPrinters(This,pRedirectPrinters) \ - ( (This)->lpVtbl -> put_RedirectPrinters(This,pRedirectPrinters) ) - -#define IMsRdpClientAdvancedSettings3_get_RedirectPrinters(This,pRedirectPrinters) \ - ( (This)->lpVtbl -> get_RedirectPrinters(This,pRedirectPrinters) ) - -#define IMsRdpClientAdvancedSettings3_put_RedirectPorts(This,pRedirectPorts) \ - ( (This)->lpVtbl -> put_RedirectPorts(This,pRedirectPorts) ) - -#define IMsRdpClientAdvancedSettings3_get_RedirectPorts(This,pRedirectPorts) \ - ( (This)->lpVtbl -> get_RedirectPorts(This,pRedirectPorts) ) - -#define IMsRdpClientAdvancedSettings3_put_RedirectSmartCards(This,pRedirectSmartCards) \ - ( (This)->lpVtbl -> put_RedirectSmartCards(This,pRedirectSmartCards) ) - -#define IMsRdpClientAdvancedSettings3_get_RedirectSmartCards(This,pRedirectSmartCards) \ - ( (This)->lpVtbl -> get_RedirectSmartCards(This,pRedirectSmartCards) ) - -#define IMsRdpClientAdvancedSettings3_put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ - ( (This)->lpVtbl -> put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) - -#define IMsRdpClientAdvancedSettings3_get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ - ( (This)->lpVtbl -> get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) - -#define IMsRdpClientAdvancedSettings3_put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ - ( (This)->lpVtbl -> put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) - -#define IMsRdpClientAdvancedSettings3_get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ - ( (This)->lpVtbl -> get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) - -#define IMsRdpClientAdvancedSettings3_put_PerformanceFlags(This,pDisableList) \ - ( (This)->lpVtbl -> put_PerformanceFlags(This,pDisableList) ) - -#define IMsRdpClientAdvancedSettings3_get_PerformanceFlags(This,pDisableList) \ - ( (This)->lpVtbl -> get_PerformanceFlags(This,pDisableList) ) - -#define IMsRdpClientAdvancedSettings3_put_ConnectWithEndpoint(This,rhs) \ - ( (This)->lpVtbl -> put_ConnectWithEndpoint(This,rhs) ) - -#define IMsRdpClientAdvancedSettings3_put_NotifyTSPublicKey(This,pfNotify) \ - ( (This)->lpVtbl -> put_NotifyTSPublicKey(This,pfNotify) ) - -#define IMsRdpClientAdvancedSettings3_get_NotifyTSPublicKey(This,pfNotify) \ - ( (This)->lpVtbl -> get_NotifyTSPublicKey(This,pfNotify) ) - - -#define IMsRdpClientAdvancedSettings3_get_CanAutoReconnect(This,pfCanAutoReconnect) \ - ( (This)->lpVtbl -> get_CanAutoReconnect(This,pfCanAutoReconnect) ) - -#define IMsRdpClientAdvancedSettings3_put_EnableAutoReconnect(This,pfEnableAutoReconnect) \ - ( (This)->lpVtbl -> put_EnableAutoReconnect(This,pfEnableAutoReconnect) ) - -#define IMsRdpClientAdvancedSettings3_get_EnableAutoReconnect(This,pfEnableAutoReconnect) \ - ( (This)->lpVtbl -> get_EnableAutoReconnect(This,pfEnableAutoReconnect) ) - -#define IMsRdpClientAdvancedSettings3_put_MaxReconnectAttempts(This,pMaxReconnectAttempts) \ - ( (This)->lpVtbl -> put_MaxReconnectAttempts(This,pMaxReconnectAttempts) ) - -#define IMsRdpClientAdvancedSettings3_get_MaxReconnectAttempts(This,pMaxReconnectAttempts) \ - ( (This)->lpVtbl -> get_MaxReconnectAttempts(This,pMaxReconnectAttempts) ) - - -#define IMsRdpClientAdvancedSettings3_put_ConnectionBarShowMinimizeButton(This,pfShowMinimize) \ - ( (This)->lpVtbl -> put_ConnectionBarShowMinimizeButton(This,pfShowMinimize) ) - -#define IMsRdpClientAdvancedSettings3_get_ConnectionBarShowMinimizeButton(This,pfShowMinimize) \ - ( (This)->lpVtbl -> get_ConnectionBarShowMinimizeButton(This,pfShowMinimize) ) - -#define IMsRdpClientAdvancedSettings3_put_ConnectionBarShowRestoreButton(This,pfShowRestore) \ - ( (This)->lpVtbl -> put_ConnectionBarShowRestoreButton(This,pfShowRestore) ) - -#define IMsRdpClientAdvancedSettings3_get_ConnectionBarShowRestoreButton(This,pfShowRestore) \ - ( (This)->lpVtbl -> get_ConnectionBarShowRestoreButton(This,pfShowRestore) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings3_put_ConnectionBarShowMinimizeButton_Proxy( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pfShowMinimize); - - -void __RPC_STUB IMsRdpClientAdvancedSettings3_put_ConnectionBarShowMinimizeButton_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings3_get_ConnectionBarShowMinimizeButton_Proxy( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pfShowMinimize); - - -void __RPC_STUB IMsRdpClientAdvancedSettings3_get_ConnectionBarShowMinimizeButton_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings3_put_ConnectionBarShowRestoreButton_Proxy( - IMsRdpClientAdvancedSettings3 * This, - /* [in] */ VARIANT_BOOL pfShowRestore); - - -void __RPC_STUB IMsRdpClientAdvancedSettings3_put_ConnectionBarShowRestoreButton_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings3_get_ConnectionBarShowRestoreButton_Proxy( - IMsRdpClientAdvancedSettings3 * This, - /* [retval][out] */ VARIANT_BOOL *pfShowRestore); - - -void __RPC_STUB IMsRdpClientAdvancedSettings3_get_ConnectionBarShowRestoreButton_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IMsRdpClientAdvancedSettings3_INTERFACE_DEFINED__ */ - - -#ifndef __IMsRdpClientAdvancedSettings4_INTERFACE_DEFINED__ -#define __IMsRdpClientAdvancedSettings4_INTERFACE_DEFINED__ - -/* interface IMsRdpClientAdvancedSettings4 */ -/* [object][oleautomation][dual][uuid] */ - - -EXTERN_C const IID IID_IMsRdpClientAdvancedSettings4; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("FBA7F64E-7345-4405-AE50-FA4A763DC0DE") - IMsRdpClientAdvancedSettings4 : public IMsRdpClientAdvancedSettings3 - { - public: - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_AuthenticationLevel( - /* [in] */ unsigned int puiAuthLevel) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AuthenticationLevel( - /* [retval][out] */ unsigned int *puiAuthLevel) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsRdpClientAdvancedSettings4Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsRdpClientAdvancedSettings4 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsRdpClientAdvancedSettings4 * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsRdpClientAdvancedSettings4 * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Compress )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pcompress); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Compress )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pcompress); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPeristence )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pbitmapPeristence); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPeristence )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pbitmapPeristence); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_allowBackgroundInput )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pallowBackgroundInput); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_allowBackgroundInput )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pallowBackgroundInput); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyBoardLayoutStr )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PluginDlls )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconFile )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconIndex )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerHandledFullScreen )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pContainerHandledFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerHandledFullScreen )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pContainerHandledFullScreen); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableRdpdr )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pDisableRdpdr); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableRdpdr )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pDisableRdpdr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmoothScroll )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long psmoothScroll); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmoothScroll )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *psmoothScroll); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AcceleratorPassthrough )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pacceleratorPassthrough); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AcceleratorPassthrough )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pacceleratorPassthrough); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShadowBitmap )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pshadowBitmap); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShadowBitmap )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pshadowBitmap); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TransportType )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long ptransportType); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TransportType )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *ptransportType); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SasSequence )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long psasSequence); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SasSequence )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *psasSequence); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EncryptionEnabled )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pencryptionEnabled); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EncryptionEnabled )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pencryptionEnabled); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DedicatedTerminal )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pdedicatedTerminal); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DedicatedTerminal )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pdedicatedTerminal); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RDPPort )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long prdpPort); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RDPPort )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *prdpPort); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableMouse )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long penableMouse); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableMouse )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *penableMouse); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableCtrlAltDel )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pdisableCtrlAltDel); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableCtrlAltDel )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pdisableCtrlAltDel); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableWindowsKey )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long penableWindowsKey); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableWindowsKey )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *penableWindowsKey); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DoubleClickDetect )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pdoubleClickDetect); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DoubleClickDetect )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pdoubleClickDetect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaximizeShell )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pmaximizeShell); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaximizeShell )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pmaximizeShell); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyFullScreen )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long photKeyFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyFullScreen )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *photKeyFullScreen); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlEsc )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long photKeyCtrlEsc); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlEsc )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *photKeyCtrlEsc); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltEsc )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long photKeyAltEsc); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltEsc )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *photKeyAltEsc); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltTab )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long photKeyAltTab); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltTab )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *photKeyAltTab); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltShiftTab )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long photKeyAltShiftTab); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltShiftTab )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *photKeyAltShiftTab); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltSpace )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long photKeyAltSpace); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltSpace )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *photKeyAltSpace); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlAltDel )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long photKeyCtrlAltDel); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlAltDel )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *photKeyCtrlAltDel); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_orderDrawThreshold )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long porderDrawThreshold); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_orderDrawThreshold )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *porderDrawThreshold); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapCacheSize )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pbitmapCacheSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapCacheSize )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pbitmapCacheSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCacheSize )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pbitmapVirtualCacheSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCacheSize )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pbitmapVirtualCacheSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleBitmapCachesByBPP )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pbScale); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleBitmapCachesByBPP )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pbScale); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NumBitmapCaches )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pnumBitmapCaches); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumBitmapCaches )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pnumBitmapCaches); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CachePersistenceActive )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pcachePersistenceActive); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CachePersistenceActive )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pcachePersistenceActive); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PersistCacheDirectory )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_brushSupportLevel )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pbrushSupportLevel); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_brushSupportLevel )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pbrushSupportLevel); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_minInputSendInterval )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pminInputSendInterval); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_minInputSendInterval )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pminInputSendInterval); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InputEventsAtOnce )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pinputEventsAtOnce); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InputEventsAtOnce )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pinputEventsAtOnce); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_maxEventCount )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pmaxEventCount); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_maxEventCount )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pmaxEventCount); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_keepAliveInterval )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pkeepAliveInterval); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_keepAliveInterval )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pkeepAliveInterval); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_shutdownTimeout )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pshutdownTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_shutdownTimeout )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pshutdownTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_overallConnectionTimeout )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long poverallConnectionTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_overallConnectionTimeout )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *poverallConnectionTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_singleConnectionTimeout )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long psingleConnectionTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_singleConnectionTimeout )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *psingleConnectionTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardType )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pkeyboardType); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardType )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pkeyboardType); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardSubType )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pkeyboardSubType); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardSubType )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pkeyboardSubType); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardFunctionKey )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pkeyboardFunctionKey); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardFunctionKey )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pkeyboardFunctionKey); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WinceFixedPalette )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pwinceFixedPalette); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WinceFixedPalette )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pwinceFixedPalette); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectToServerConsole )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT_BOOL pConnectToConsole); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectToServerConsole )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pConnectToConsole); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPersistence )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pbitmapPersistence); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPersistence )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pbitmapPersistence); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MinutesToIdleTimeout )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pminutesToIdleTimeout); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MinutesToIdleTimeout )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pminutesToIdleTimeout); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmartSizing )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT_BOOL pfSmartSizing); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmartSizing )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pfSmartSizing); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrLocalPrintingDocName )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ BSTR pLocalPrintingDocName); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrLocalPrintingDocName )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ BSTR *pLocalPrintingDocName); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipCleanTempDirString )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ BSTR clipCleanTempDirString); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipCleanTempDirString )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ BSTR *clipCleanTempDirString); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipPasteInfoString )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ BSTR clipPasteInfoString); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipPasteInfoString )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ BSTR *clipPasteInfoString); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ BSTR rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisplayConnectionBar )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT_BOOL pDisplayConnectionBar); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisplayConnectionBar )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pDisplayConnectionBar); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PinConnectionBar )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT_BOOL pPinConnectionBar); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PinConnectionBar )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pPinConnectionBar); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GrabFocusOnConnect )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT_BOOL pfGrabFocusOnConnect); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GrabFocusOnConnect )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pfGrabFocusOnConnect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LoadBalanceInfo )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ BSTR pLBInfo); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LoadBalanceInfo )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ BSTR *pLBInfo); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectDrives )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT_BOOL pRedirectDrives); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectDrives )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectDrives); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPrinters )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT_BOOL pRedirectPrinters); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPrinters )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectPrinters); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPorts )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT_BOOL pRedirectPorts); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPorts )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectPorts); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectSmartCards )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT_BOOL pRedirectSmartCards); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectSmartCards )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache16BppSize )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pBitmapVirtualCache16BppSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache16BppSize )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pBitmapVirtualCache16BppSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache24BppSize )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pBitmapVirtualCache24BppSize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache24BppSize )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pBitmapVirtualCache24BppSize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PerformanceFlags )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pDisableList); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PerformanceFlags )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pDisableList); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectWithEndpoint )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT *rhs); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NotifyTSPublicKey )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT_BOOL pfNotify); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NotifyTSPublicKey )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pfNotify); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CanAutoReconnect )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pfCanAutoReconnect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableAutoReconnect )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT_BOOL pfEnableAutoReconnect); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableAutoReconnect )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pfEnableAutoReconnect); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaxReconnectAttempts )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ long pMaxReconnectAttempts); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaxReconnectAttempts )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ long *pMaxReconnectAttempts); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectionBarShowMinimizeButton )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT_BOOL pfShowMinimize); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectionBarShowMinimizeButton )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pfShowMinimize); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectionBarShowRestoreButton )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ VARIANT_BOOL pfShowRestore); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectionBarShowRestoreButton )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ VARIANT_BOOL *pfShowRestore); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AuthenticationLevel )( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ unsigned int puiAuthLevel); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AuthenticationLevel )( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ unsigned int *puiAuthLevel); - - END_INTERFACE - } IMsRdpClientAdvancedSettings4Vtbl; - - interface IMsRdpClientAdvancedSettings4 - { - CONST_VTBL struct IMsRdpClientAdvancedSettings4Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsRdpClientAdvancedSettings4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsRdpClientAdvancedSettings4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsRdpClientAdvancedSettings4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsRdpClientAdvancedSettings4_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsRdpClientAdvancedSettings4_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsRdpClientAdvancedSettings4_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsRdpClientAdvancedSettings4_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IMsRdpClientAdvancedSettings4_put_Compress(This,pcompress) \ - ( (This)->lpVtbl -> put_Compress(This,pcompress) ) - -#define IMsRdpClientAdvancedSettings4_get_Compress(This,pcompress) \ - ( (This)->lpVtbl -> get_Compress(This,pcompress) ) - -#define IMsRdpClientAdvancedSettings4_put_BitmapPeristence(This,pbitmapPeristence) \ - ( (This)->lpVtbl -> put_BitmapPeristence(This,pbitmapPeristence) ) - -#define IMsRdpClientAdvancedSettings4_get_BitmapPeristence(This,pbitmapPeristence) \ - ( (This)->lpVtbl -> get_BitmapPeristence(This,pbitmapPeristence) ) - -#define IMsRdpClientAdvancedSettings4_put_allowBackgroundInput(This,pallowBackgroundInput) \ - ( (This)->lpVtbl -> put_allowBackgroundInput(This,pallowBackgroundInput) ) - -#define IMsRdpClientAdvancedSettings4_get_allowBackgroundInput(This,pallowBackgroundInput) \ - ( (This)->lpVtbl -> get_allowBackgroundInput(This,pallowBackgroundInput) ) - -#define IMsRdpClientAdvancedSettings4_put_KeyBoardLayoutStr(This,rhs) \ - ( (This)->lpVtbl -> put_KeyBoardLayoutStr(This,rhs) ) - -#define IMsRdpClientAdvancedSettings4_put_PluginDlls(This,rhs) \ - ( (This)->lpVtbl -> put_PluginDlls(This,rhs) ) - -#define IMsRdpClientAdvancedSettings4_put_IconFile(This,rhs) \ - ( (This)->lpVtbl -> put_IconFile(This,rhs) ) - -#define IMsRdpClientAdvancedSettings4_put_IconIndex(This,rhs) \ - ( (This)->lpVtbl -> put_IconIndex(This,rhs) ) - -#define IMsRdpClientAdvancedSettings4_put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ - ( (This)->lpVtbl -> put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) - -#define IMsRdpClientAdvancedSettings4_get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ - ( (This)->lpVtbl -> get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) - -#define IMsRdpClientAdvancedSettings4_put_DisableRdpdr(This,pDisableRdpdr) \ - ( (This)->lpVtbl -> put_DisableRdpdr(This,pDisableRdpdr) ) - -#define IMsRdpClientAdvancedSettings4_get_DisableRdpdr(This,pDisableRdpdr) \ - ( (This)->lpVtbl -> get_DisableRdpdr(This,pDisableRdpdr) ) - - -#define IMsRdpClientAdvancedSettings4_put_SmoothScroll(This,psmoothScroll) \ - ( (This)->lpVtbl -> put_SmoothScroll(This,psmoothScroll) ) - -#define IMsRdpClientAdvancedSettings4_get_SmoothScroll(This,psmoothScroll) \ - ( (This)->lpVtbl -> get_SmoothScroll(This,psmoothScroll) ) - -#define IMsRdpClientAdvancedSettings4_put_AcceleratorPassthrough(This,pacceleratorPassthrough) \ - ( (This)->lpVtbl -> put_AcceleratorPassthrough(This,pacceleratorPassthrough) ) - -#define IMsRdpClientAdvancedSettings4_get_AcceleratorPassthrough(This,pacceleratorPassthrough) \ - ( (This)->lpVtbl -> get_AcceleratorPassthrough(This,pacceleratorPassthrough) ) - -#define IMsRdpClientAdvancedSettings4_put_ShadowBitmap(This,pshadowBitmap) \ - ( (This)->lpVtbl -> put_ShadowBitmap(This,pshadowBitmap) ) - -#define IMsRdpClientAdvancedSettings4_get_ShadowBitmap(This,pshadowBitmap) \ - ( (This)->lpVtbl -> get_ShadowBitmap(This,pshadowBitmap) ) - -#define IMsRdpClientAdvancedSettings4_put_TransportType(This,ptransportType) \ - ( (This)->lpVtbl -> put_TransportType(This,ptransportType) ) - -#define IMsRdpClientAdvancedSettings4_get_TransportType(This,ptransportType) \ - ( (This)->lpVtbl -> get_TransportType(This,ptransportType) ) - -#define IMsRdpClientAdvancedSettings4_put_SasSequence(This,psasSequence) \ - ( (This)->lpVtbl -> put_SasSequence(This,psasSequence) ) - -#define IMsRdpClientAdvancedSettings4_get_SasSequence(This,psasSequence) \ - ( (This)->lpVtbl -> get_SasSequence(This,psasSequence) ) - -#define IMsRdpClientAdvancedSettings4_put_EncryptionEnabled(This,pencryptionEnabled) \ - ( (This)->lpVtbl -> put_EncryptionEnabled(This,pencryptionEnabled) ) - -#define IMsRdpClientAdvancedSettings4_get_EncryptionEnabled(This,pencryptionEnabled) \ - ( (This)->lpVtbl -> get_EncryptionEnabled(This,pencryptionEnabled) ) - -#define IMsRdpClientAdvancedSettings4_put_DedicatedTerminal(This,pdedicatedTerminal) \ - ( (This)->lpVtbl -> put_DedicatedTerminal(This,pdedicatedTerminal) ) - -#define IMsRdpClientAdvancedSettings4_get_DedicatedTerminal(This,pdedicatedTerminal) \ - ( (This)->lpVtbl -> get_DedicatedTerminal(This,pdedicatedTerminal) ) - -#define IMsRdpClientAdvancedSettings4_put_RDPPort(This,prdpPort) \ - ( (This)->lpVtbl -> put_RDPPort(This,prdpPort) ) - -#define IMsRdpClientAdvancedSettings4_get_RDPPort(This,prdpPort) \ - ( (This)->lpVtbl -> get_RDPPort(This,prdpPort) ) - -#define IMsRdpClientAdvancedSettings4_put_EnableMouse(This,penableMouse) \ - ( (This)->lpVtbl -> put_EnableMouse(This,penableMouse) ) - -#define IMsRdpClientAdvancedSettings4_get_EnableMouse(This,penableMouse) \ - ( (This)->lpVtbl -> get_EnableMouse(This,penableMouse) ) - -#define IMsRdpClientAdvancedSettings4_put_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ - ( (This)->lpVtbl -> put_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings4_get_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ - ( (This)->lpVtbl -> get_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings4_put_EnableWindowsKey(This,penableWindowsKey) \ - ( (This)->lpVtbl -> put_EnableWindowsKey(This,penableWindowsKey) ) - -#define IMsRdpClientAdvancedSettings4_get_EnableWindowsKey(This,penableWindowsKey) \ - ( (This)->lpVtbl -> get_EnableWindowsKey(This,penableWindowsKey) ) - -#define IMsRdpClientAdvancedSettings4_put_DoubleClickDetect(This,pdoubleClickDetect) \ - ( (This)->lpVtbl -> put_DoubleClickDetect(This,pdoubleClickDetect) ) - -#define IMsRdpClientAdvancedSettings4_get_DoubleClickDetect(This,pdoubleClickDetect) \ - ( (This)->lpVtbl -> get_DoubleClickDetect(This,pdoubleClickDetect) ) - -#define IMsRdpClientAdvancedSettings4_put_MaximizeShell(This,pmaximizeShell) \ - ( (This)->lpVtbl -> put_MaximizeShell(This,pmaximizeShell) ) - -#define IMsRdpClientAdvancedSettings4_get_MaximizeShell(This,pmaximizeShell) \ - ( (This)->lpVtbl -> get_MaximizeShell(This,pmaximizeShell) ) - -#define IMsRdpClientAdvancedSettings4_put_HotKeyFullScreen(This,photKeyFullScreen) \ - ( (This)->lpVtbl -> put_HotKeyFullScreen(This,photKeyFullScreen) ) - -#define IMsRdpClientAdvancedSettings4_get_HotKeyFullScreen(This,photKeyFullScreen) \ - ( (This)->lpVtbl -> get_HotKeyFullScreen(This,photKeyFullScreen) ) - -#define IMsRdpClientAdvancedSettings4_put_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ - ( (This)->lpVtbl -> put_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) - -#define IMsRdpClientAdvancedSettings4_get_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ - ( (This)->lpVtbl -> get_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) - -#define IMsRdpClientAdvancedSettings4_put_HotKeyAltEsc(This,photKeyAltEsc) \ - ( (This)->lpVtbl -> put_HotKeyAltEsc(This,photKeyAltEsc) ) - -#define IMsRdpClientAdvancedSettings4_get_HotKeyAltEsc(This,photKeyAltEsc) \ - ( (This)->lpVtbl -> get_HotKeyAltEsc(This,photKeyAltEsc) ) - -#define IMsRdpClientAdvancedSettings4_put_HotKeyAltTab(This,photKeyAltTab) \ - ( (This)->lpVtbl -> put_HotKeyAltTab(This,photKeyAltTab) ) - -#define IMsRdpClientAdvancedSettings4_get_HotKeyAltTab(This,photKeyAltTab) \ - ( (This)->lpVtbl -> get_HotKeyAltTab(This,photKeyAltTab) ) - -#define IMsRdpClientAdvancedSettings4_put_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ - ( (This)->lpVtbl -> put_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) - -#define IMsRdpClientAdvancedSettings4_get_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ - ( (This)->lpVtbl -> get_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) - -#define IMsRdpClientAdvancedSettings4_put_HotKeyAltSpace(This,photKeyAltSpace) \ - ( (This)->lpVtbl -> put_HotKeyAltSpace(This,photKeyAltSpace) ) - -#define IMsRdpClientAdvancedSettings4_get_HotKeyAltSpace(This,photKeyAltSpace) \ - ( (This)->lpVtbl -> get_HotKeyAltSpace(This,photKeyAltSpace) ) - -#define IMsRdpClientAdvancedSettings4_put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ - ( (This)->lpVtbl -> put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings4_get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ - ( (This)->lpVtbl -> get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) - -#define IMsRdpClientAdvancedSettings4_put_orderDrawThreshold(This,porderDrawThreshold) \ - ( (This)->lpVtbl -> put_orderDrawThreshold(This,porderDrawThreshold) ) - -#define IMsRdpClientAdvancedSettings4_get_orderDrawThreshold(This,porderDrawThreshold) \ - ( (This)->lpVtbl -> get_orderDrawThreshold(This,porderDrawThreshold) ) - -#define IMsRdpClientAdvancedSettings4_put_BitmapCacheSize(This,pbitmapCacheSize) \ - ( (This)->lpVtbl -> put_BitmapCacheSize(This,pbitmapCacheSize) ) - -#define IMsRdpClientAdvancedSettings4_get_BitmapCacheSize(This,pbitmapCacheSize) \ - ( (This)->lpVtbl -> get_BitmapCacheSize(This,pbitmapCacheSize) ) - -#define IMsRdpClientAdvancedSettings4_put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ - ( (This)->lpVtbl -> put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) - -#define IMsRdpClientAdvancedSettings4_get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ - ( (This)->lpVtbl -> get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) - -#define IMsRdpClientAdvancedSettings4_put_ScaleBitmapCachesByBPP(This,pbScale) \ - ( (This)->lpVtbl -> put_ScaleBitmapCachesByBPP(This,pbScale) ) - -#define IMsRdpClientAdvancedSettings4_get_ScaleBitmapCachesByBPP(This,pbScale) \ - ( (This)->lpVtbl -> get_ScaleBitmapCachesByBPP(This,pbScale) ) - -#define IMsRdpClientAdvancedSettings4_put_NumBitmapCaches(This,pnumBitmapCaches) \ - ( (This)->lpVtbl -> put_NumBitmapCaches(This,pnumBitmapCaches) ) - -#define IMsRdpClientAdvancedSettings4_get_NumBitmapCaches(This,pnumBitmapCaches) \ - ( (This)->lpVtbl -> get_NumBitmapCaches(This,pnumBitmapCaches) ) - -#define IMsRdpClientAdvancedSettings4_put_CachePersistenceActive(This,pcachePersistenceActive) \ - ( (This)->lpVtbl -> put_CachePersistenceActive(This,pcachePersistenceActive) ) - -#define IMsRdpClientAdvancedSettings4_get_CachePersistenceActive(This,pcachePersistenceActive) \ - ( (This)->lpVtbl -> get_CachePersistenceActive(This,pcachePersistenceActive) ) - -#define IMsRdpClientAdvancedSettings4_put_PersistCacheDirectory(This,rhs) \ - ( (This)->lpVtbl -> put_PersistCacheDirectory(This,rhs) ) - -#define IMsRdpClientAdvancedSettings4_put_brushSupportLevel(This,pbrushSupportLevel) \ - ( (This)->lpVtbl -> put_brushSupportLevel(This,pbrushSupportLevel) ) - -#define IMsRdpClientAdvancedSettings4_get_brushSupportLevel(This,pbrushSupportLevel) \ - ( (This)->lpVtbl -> get_brushSupportLevel(This,pbrushSupportLevel) ) - -#define IMsRdpClientAdvancedSettings4_put_minInputSendInterval(This,pminInputSendInterval) \ - ( (This)->lpVtbl -> put_minInputSendInterval(This,pminInputSendInterval) ) - -#define IMsRdpClientAdvancedSettings4_get_minInputSendInterval(This,pminInputSendInterval) \ - ( (This)->lpVtbl -> get_minInputSendInterval(This,pminInputSendInterval) ) - -#define IMsRdpClientAdvancedSettings4_put_InputEventsAtOnce(This,pinputEventsAtOnce) \ - ( (This)->lpVtbl -> put_InputEventsAtOnce(This,pinputEventsAtOnce) ) - -#define IMsRdpClientAdvancedSettings4_get_InputEventsAtOnce(This,pinputEventsAtOnce) \ - ( (This)->lpVtbl -> get_InputEventsAtOnce(This,pinputEventsAtOnce) ) - -#define IMsRdpClientAdvancedSettings4_put_maxEventCount(This,pmaxEventCount) \ - ( (This)->lpVtbl -> put_maxEventCount(This,pmaxEventCount) ) - -#define IMsRdpClientAdvancedSettings4_get_maxEventCount(This,pmaxEventCount) \ - ( (This)->lpVtbl -> get_maxEventCount(This,pmaxEventCount) ) - -#define IMsRdpClientAdvancedSettings4_put_keepAliveInterval(This,pkeepAliveInterval) \ - ( (This)->lpVtbl -> put_keepAliveInterval(This,pkeepAliveInterval) ) - -#define IMsRdpClientAdvancedSettings4_get_keepAliveInterval(This,pkeepAliveInterval) \ - ( (This)->lpVtbl -> get_keepAliveInterval(This,pkeepAliveInterval) ) - -#define IMsRdpClientAdvancedSettings4_put_shutdownTimeout(This,pshutdownTimeout) \ - ( (This)->lpVtbl -> put_shutdownTimeout(This,pshutdownTimeout) ) - -#define IMsRdpClientAdvancedSettings4_get_shutdownTimeout(This,pshutdownTimeout) \ - ( (This)->lpVtbl -> get_shutdownTimeout(This,pshutdownTimeout) ) - -#define IMsRdpClientAdvancedSettings4_put_overallConnectionTimeout(This,poverallConnectionTimeout) \ - ( (This)->lpVtbl -> put_overallConnectionTimeout(This,poverallConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings4_get_overallConnectionTimeout(This,poverallConnectionTimeout) \ - ( (This)->lpVtbl -> get_overallConnectionTimeout(This,poverallConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings4_put_singleConnectionTimeout(This,psingleConnectionTimeout) \ - ( (This)->lpVtbl -> put_singleConnectionTimeout(This,psingleConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings4_get_singleConnectionTimeout(This,psingleConnectionTimeout) \ - ( (This)->lpVtbl -> get_singleConnectionTimeout(This,psingleConnectionTimeout) ) - -#define IMsRdpClientAdvancedSettings4_put_KeyboardType(This,pkeyboardType) \ - ( (This)->lpVtbl -> put_KeyboardType(This,pkeyboardType) ) - -#define IMsRdpClientAdvancedSettings4_get_KeyboardType(This,pkeyboardType) \ - ( (This)->lpVtbl -> get_KeyboardType(This,pkeyboardType) ) - -#define IMsRdpClientAdvancedSettings4_put_KeyboardSubType(This,pkeyboardSubType) \ - ( (This)->lpVtbl -> put_KeyboardSubType(This,pkeyboardSubType) ) - -#define IMsRdpClientAdvancedSettings4_get_KeyboardSubType(This,pkeyboardSubType) \ - ( (This)->lpVtbl -> get_KeyboardSubType(This,pkeyboardSubType) ) - -#define IMsRdpClientAdvancedSettings4_put_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ - ( (This)->lpVtbl -> put_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) - -#define IMsRdpClientAdvancedSettings4_get_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ - ( (This)->lpVtbl -> get_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) - -#define IMsRdpClientAdvancedSettings4_put_WinceFixedPalette(This,pwinceFixedPalette) \ - ( (This)->lpVtbl -> put_WinceFixedPalette(This,pwinceFixedPalette) ) - -#define IMsRdpClientAdvancedSettings4_get_WinceFixedPalette(This,pwinceFixedPalette) \ - ( (This)->lpVtbl -> get_WinceFixedPalette(This,pwinceFixedPalette) ) - -#define IMsRdpClientAdvancedSettings4_put_ConnectToServerConsole(This,pConnectToConsole) \ - ( (This)->lpVtbl -> put_ConnectToServerConsole(This,pConnectToConsole) ) - -#define IMsRdpClientAdvancedSettings4_get_ConnectToServerConsole(This,pConnectToConsole) \ - ( (This)->lpVtbl -> get_ConnectToServerConsole(This,pConnectToConsole) ) - -#define IMsRdpClientAdvancedSettings4_put_BitmapPersistence(This,pbitmapPersistence) \ - ( (This)->lpVtbl -> put_BitmapPersistence(This,pbitmapPersistence) ) - -#define IMsRdpClientAdvancedSettings4_get_BitmapPersistence(This,pbitmapPersistence) \ - ( (This)->lpVtbl -> get_BitmapPersistence(This,pbitmapPersistence) ) - -#define IMsRdpClientAdvancedSettings4_put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ - ( (This)->lpVtbl -> put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) - -#define IMsRdpClientAdvancedSettings4_get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ - ( (This)->lpVtbl -> get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) - -#define IMsRdpClientAdvancedSettings4_put_SmartSizing(This,pfSmartSizing) \ - ( (This)->lpVtbl -> put_SmartSizing(This,pfSmartSizing) ) - -#define IMsRdpClientAdvancedSettings4_get_SmartSizing(This,pfSmartSizing) \ - ( (This)->lpVtbl -> get_SmartSizing(This,pfSmartSizing) ) - -#define IMsRdpClientAdvancedSettings4_put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ - ( (This)->lpVtbl -> put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) - -#define IMsRdpClientAdvancedSettings4_get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ - ( (This)->lpVtbl -> get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) - -#define IMsRdpClientAdvancedSettings4_put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ - ( (This)->lpVtbl -> put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) - -#define IMsRdpClientAdvancedSettings4_get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ - ( (This)->lpVtbl -> get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) - -#define IMsRdpClientAdvancedSettings4_put_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ - ( (This)->lpVtbl -> put_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) - -#define IMsRdpClientAdvancedSettings4_get_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ - ( (This)->lpVtbl -> get_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) - -#define IMsRdpClientAdvancedSettings4_put_ClearTextPassword(This,rhs) \ - ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) - -#define IMsRdpClientAdvancedSettings4_put_DisplayConnectionBar(This,pDisplayConnectionBar) \ - ( (This)->lpVtbl -> put_DisplayConnectionBar(This,pDisplayConnectionBar) ) - -#define IMsRdpClientAdvancedSettings4_get_DisplayConnectionBar(This,pDisplayConnectionBar) \ - ( (This)->lpVtbl -> get_DisplayConnectionBar(This,pDisplayConnectionBar) ) - -#define IMsRdpClientAdvancedSettings4_put_PinConnectionBar(This,pPinConnectionBar) \ - ( (This)->lpVtbl -> put_PinConnectionBar(This,pPinConnectionBar) ) - -#define IMsRdpClientAdvancedSettings4_get_PinConnectionBar(This,pPinConnectionBar) \ - ( (This)->lpVtbl -> get_PinConnectionBar(This,pPinConnectionBar) ) - -#define IMsRdpClientAdvancedSettings4_put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ - ( (This)->lpVtbl -> put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) - -#define IMsRdpClientAdvancedSettings4_get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ - ( (This)->lpVtbl -> get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) - -#define IMsRdpClientAdvancedSettings4_put_LoadBalanceInfo(This,pLBInfo) \ - ( (This)->lpVtbl -> put_LoadBalanceInfo(This,pLBInfo) ) - -#define IMsRdpClientAdvancedSettings4_get_LoadBalanceInfo(This,pLBInfo) \ - ( (This)->lpVtbl -> get_LoadBalanceInfo(This,pLBInfo) ) - -#define IMsRdpClientAdvancedSettings4_put_RedirectDrives(This,pRedirectDrives) \ - ( (This)->lpVtbl -> put_RedirectDrives(This,pRedirectDrives) ) - -#define IMsRdpClientAdvancedSettings4_get_RedirectDrives(This,pRedirectDrives) \ - ( (This)->lpVtbl -> get_RedirectDrives(This,pRedirectDrives) ) - -#define IMsRdpClientAdvancedSettings4_put_RedirectPrinters(This,pRedirectPrinters) \ - ( (This)->lpVtbl -> put_RedirectPrinters(This,pRedirectPrinters) ) - -#define IMsRdpClientAdvancedSettings4_get_RedirectPrinters(This,pRedirectPrinters) \ - ( (This)->lpVtbl -> get_RedirectPrinters(This,pRedirectPrinters) ) - -#define IMsRdpClientAdvancedSettings4_put_RedirectPorts(This,pRedirectPorts) \ - ( (This)->lpVtbl -> put_RedirectPorts(This,pRedirectPorts) ) - -#define IMsRdpClientAdvancedSettings4_get_RedirectPorts(This,pRedirectPorts) \ - ( (This)->lpVtbl -> get_RedirectPorts(This,pRedirectPorts) ) - -#define IMsRdpClientAdvancedSettings4_put_RedirectSmartCards(This,pRedirectSmartCards) \ - ( (This)->lpVtbl -> put_RedirectSmartCards(This,pRedirectSmartCards) ) - -#define IMsRdpClientAdvancedSettings4_get_RedirectSmartCards(This,pRedirectSmartCards) \ - ( (This)->lpVtbl -> get_RedirectSmartCards(This,pRedirectSmartCards) ) - -#define IMsRdpClientAdvancedSettings4_put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ - ( (This)->lpVtbl -> put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) - -#define IMsRdpClientAdvancedSettings4_get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ - ( (This)->lpVtbl -> get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) - -#define IMsRdpClientAdvancedSettings4_put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ - ( (This)->lpVtbl -> put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) - -#define IMsRdpClientAdvancedSettings4_get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ - ( (This)->lpVtbl -> get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) - -#define IMsRdpClientAdvancedSettings4_put_PerformanceFlags(This,pDisableList) \ - ( (This)->lpVtbl -> put_PerformanceFlags(This,pDisableList) ) - -#define IMsRdpClientAdvancedSettings4_get_PerformanceFlags(This,pDisableList) \ - ( (This)->lpVtbl -> get_PerformanceFlags(This,pDisableList) ) - -#define IMsRdpClientAdvancedSettings4_put_ConnectWithEndpoint(This,rhs) \ - ( (This)->lpVtbl -> put_ConnectWithEndpoint(This,rhs) ) - -#define IMsRdpClientAdvancedSettings4_put_NotifyTSPublicKey(This,pfNotify) \ - ( (This)->lpVtbl -> put_NotifyTSPublicKey(This,pfNotify) ) - -#define IMsRdpClientAdvancedSettings4_get_NotifyTSPublicKey(This,pfNotify) \ - ( (This)->lpVtbl -> get_NotifyTSPublicKey(This,pfNotify) ) - - -#define IMsRdpClientAdvancedSettings4_get_CanAutoReconnect(This,pfCanAutoReconnect) \ - ( (This)->lpVtbl -> get_CanAutoReconnect(This,pfCanAutoReconnect) ) - -#define IMsRdpClientAdvancedSettings4_put_EnableAutoReconnect(This,pfEnableAutoReconnect) \ - ( (This)->lpVtbl -> put_EnableAutoReconnect(This,pfEnableAutoReconnect) ) - -#define IMsRdpClientAdvancedSettings4_get_EnableAutoReconnect(This,pfEnableAutoReconnect) \ - ( (This)->lpVtbl -> get_EnableAutoReconnect(This,pfEnableAutoReconnect) ) - -#define IMsRdpClientAdvancedSettings4_put_MaxReconnectAttempts(This,pMaxReconnectAttempts) \ - ( (This)->lpVtbl -> put_MaxReconnectAttempts(This,pMaxReconnectAttempts) ) - -#define IMsRdpClientAdvancedSettings4_get_MaxReconnectAttempts(This,pMaxReconnectAttempts) \ - ( (This)->lpVtbl -> get_MaxReconnectAttempts(This,pMaxReconnectAttempts) ) - - -#define IMsRdpClientAdvancedSettings4_put_ConnectionBarShowMinimizeButton(This,pfShowMinimize) \ - ( (This)->lpVtbl -> put_ConnectionBarShowMinimizeButton(This,pfShowMinimize) ) - -#define IMsRdpClientAdvancedSettings4_get_ConnectionBarShowMinimizeButton(This,pfShowMinimize) \ - ( (This)->lpVtbl -> get_ConnectionBarShowMinimizeButton(This,pfShowMinimize) ) - -#define IMsRdpClientAdvancedSettings4_put_ConnectionBarShowRestoreButton(This,pfShowRestore) \ - ( (This)->lpVtbl -> put_ConnectionBarShowRestoreButton(This,pfShowRestore) ) - -#define IMsRdpClientAdvancedSettings4_get_ConnectionBarShowRestoreButton(This,pfShowRestore) \ - ( (This)->lpVtbl -> get_ConnectionBarShowRestoreButton(This,pfShowRestore) ) - - -#define IMsRdpClientAdvancedSettings4_put_AuthenticationLevel(This,puiAuthLevel) \ - ( (This)->lpVtbl -> put_AuthenticationLevel(This,puiAuthLevel) ) - -#define IMsRdpClientAdvancedSettings4_get_AuthenticationLevel(This,puiAuthLevel) \ - ( (This)->lpVtbl -> get_AuthenticationLevel(This,puiAuthLevel) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings4_put_AuthenticationLevel_Proxy( - IMsRdpClientAdvancedSettings4 * This, - /* [in] */ unsigned int puiAuthLevel); - - -void __RPC_STUB IMsRdpClientAdvancedSettings4_put_AuthenticationLevel_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings4_get_AuthenticationLevel_Proxy( - IMsRdpClientAdvancedSettings4 * This, - /* [retval][out] */ unsigned int *puiAuthLevel); - - -void __RPC_STUB IMsRdpClientAdvancedSettings4_get_AuthenticationLevel_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IMsRdpClientAdvancedSettings4_INTERFACE_DEFINED__ */ - - -#ifndef __IMsTscSecuredSettings_INTERFACE_DEFINED__ -#define __IMsTscSecuredSettings_INTERFACE_DEFINED__ - -/* interface IMsTscSecuredSettings */ -/* [object][oleautomation][dual][uuid] */ - - -EXTERN_C const IID IID_IMsTscSecuredSettings; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("C9D65442-A0F9-45B2-8F73-D61D2DB8CBB6") - IMsTscSecuredSettings : public IDispatch - { - public: - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_StartProgram( - /* [in] */ BSTR pStartProgram) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_StartProgram( - /* [retval][out] */ BSTR *pStartProgram) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_WorkDir( - /* [in] */ BSTR pWorkDir) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_WorkDir( - /* [retval][out] */ BSTR *pWorkDir) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_FullScreen( - /* [in] */ long pfFullScreen) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_FullScreen( - /* [retval][out] */ long *pfFullScreen) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsTscSecuredSettingsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsTscSecuredSettings * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsTscSecuredSettings * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsTscSecuredSettings * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsTscSecuredSettings * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsTscSecuredSettings * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsTscSecuredSettings * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsTscSecuredSettings * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartProgram )( - IMsTscSecuredSettings * This, - /* [in] */ BSTR pStartProgram); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartProgram )( - IMsTscSecuredSettings * This, - /* [retval][out] */ BSTR *pStartProgram); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WorkDir )( - IMsTscSecuredSettings * This, - /* [in] */ BSTR pWorkDir); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WorkDir )( - IMsTscSecuredSettings * This, - /* [retval][out] */ BSTR *pWorkDir); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )( - IMsTscSecuredSettings * This, - /* [in] */ long pfFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )( - IMsTscSecuredSettings * This, - /* [retval][out] */ long *pfFullScreen); - - END_INTERFACE - } IMsTscSecuredSettingsVtbl; - - interface IMsTscSecuredSettings - { - CONST_VTBL struct IMsTscSecuredSettingsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsTscSecuredSettings_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsTscSecuredSettings_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsTscSecuredSettings_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsTscSecuredSettings_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsTscSecuredSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsTscSecuredSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsTscSecuredSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IMsTscSecuredSettings_put_StartProgram(This,pStartProgram) \ - ( (This)->lpVtbl -> put_StartProgram(This,pStartProgram) ) - -#define IMsTscSecuredSettings_get_StartProgram(This,pStartProgram) \ - ( (This)->lpVtbl -> get_StartProgram(This,pStartProgram) ) - -#define IMsTscSecuredSettings_put_WorkDir(This,pWorkDir) \ - ( (This)->lpVtbl -> put_WorkDir(This,pWorkDir) ) - -#define IMsTscSecuredSettings_get_WorkDir(This,pWorkDir) \ - ( (This)->lpVtbl -> get_WorkDir(This,pWorkDir) ) - -#define IMsTscSecuredSettings_put_FullScreen(This,pfFullScreen) \ - ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) ) - -#define IMsTscSecuredSettings_get_FullScreen(This,pfFullScreen) \ - ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMsTscSecuredSettings_INTERFACE_DEFINED__ */ - - -#ifndef __IMsRdpClientSecuredSettings_INTERFACE_DEFINED__ -#define __IMsRdpClientSecuredSettings_INTERFACE_DEFINED__ - -/* interface IMsRdpClientSecuredSettings */ -/* [object][oleautomation][dual][uuid] */ - - -EXTERN_C const IID IID_IMsRdpClientSecuredSettings; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("605BEFCF-39C1-45CC-A811-068FB7BE346D") - IMsRdpClientSecuredSettings : public IMsTscSecuredSettings - { - public: - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_KeyboardHookMode( - /* [in] */ long pkeyboardHookMode) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_KeyboardHookMode( - /* [retval][out] */ long *pkeyboardHookMode) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_AudioRedirectionMode( - /* [in] */ long pAudioRedirectionMode) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AudioRedirectionMode( - /* [retval][out] */ long *pAudioRedirectionMode) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsRdpClientSecuredSettingsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsRdpClientSecuredSettings * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsRdpClientSecuredSettings * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsRdpClientSecuredSettings * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsRdpClientSecuredSettings * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsRdpClientSecuredSettings * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsRdpClientSecuredSettings * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsRdpClientSecuredSettings * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartProgram )( - IMsRdpClientSecuredSettings * This, - /* [in] */ BSTR pStartProgram); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartProgram )( - IMsRdpClientSecuredSettings * This, - /* [retval][out] */ BSTR *pStartProgram); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WorkDir )( - IMsRdpClientSecuredSettings * This, - /* [in] */ BSTR pWorkDir); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WorkDir )( - IMsRdpClientSecuredSettings * This, - /* [retval][out] */ BSTR *pWorkDir); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )( - IMsRdpClientSecuredSettings * This, - /* [in] */ long pfFullScreen); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )( - IMsRdpClientSecuredSettings * This, - /* [retval][out] */ long *pfFullScreen); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardHookMode )( - IMsRdpClientSecuredSettings * This, - /* [in] */ long pkeyboardHookMode); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardHookMode )( - IMsRdpClientSecuredSettings * This, - /* [retval][out] */ long *pkeyboardHookMode); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AudioRedirectionMode )( - IMsRdpClientSecuredSettings * This, - /* [in] */ long pAudioRedirectionMode); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AudioRedirectionMode )( - IMsRdpClientSecuredSettings * This, - /* [retval][out] */ long *pAudioRedirectionMode); - - END_INTERFACE - } IMsRdpClientSecuredSettingsVtbl; - - interface IMsRdpClientSecuredSettings - { - CONST_VTBL struct IMsRdpClientSecuredSettingsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsRdpClientSecuredSettings_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsRdpClientSecuredSettings_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsRdpClientSecuredSettings_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsRdpClientSecuredSettings_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsRdpClientSecuredSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsRdpClientSecuredSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsRdpClientSecuredSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IMsRdpClientSecuredSettings_put_StartProgram(This,pStartProgram) \ - ( (This)->lpVtbl -> put_StartProgram(This,pStartProgram) ) - -#define IMsRdpClientSecuredSettings_get_StartProgram(This,pStartProgram) \ - ( (This)->lpVtbl -> get_StartProgram(This,pStartProgram) ) - -#define IMsRdpClientSecuredSettings_put_WorkDir(This,pWorkDir) \ - ( (This)->lpVtbl -> put_WorkDir(This,pWorkDir) ) - -#define IMsRdpClientSecuredSettings_get_WorkDir(This,pWorkDir) \ - ( (This)->lpVtbl -> get_WorkDir(This,pWorkDir) ) - -#define IMsRdpClientSecuredSettings_put_FullScreen(This,pfFullScreen) \ - ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) ) - -#define IMsRdpClientSecuredSettings_get_FullScreen(This,pfFullScreen) \ - ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) ) - - -#define IMsRdpClientSecuredSettings_put_KeyboardHookMode(This,pkeyboardHookMode) \ - ( (This)->lpVtbl -> put_KeyboardHookMode(This,pkeyboardHookMode) ) - -#define IMsRdpClientSecuredSettings_get_KeyboardHookMode(This,pkeyboardHookMode) \ - ( (This)->lpVtbl -> get_KeyboardHookMode(This,pkeyboardHookMode) ) - -#define IMsRdpClientSecuredSettings_put_AudioRedirectionMode(This,pAudioRedirectionMode) \ - ( (This)->lpVtbl -> put_AudioRedirectionMode(This,pAudioRedirectionMode) ) - -#define IMsRdpClientSecuredSettings_get_AudioRedirectionMode(This,pAudioRedirectionMode) \ - ( (This)->lpVtbl -> get_AudioRedirectionMode(This,pAudioRedirectionMode) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMsRdpClientSecuredSettings_INTERFACE_DEFINED__ */ - - -#ifndef __IMsTscDebug_INTERFACE_DEFINED__ -#define __IMsTscDebug_INTERFACE_DEFINED__ - -/* interface IMsTscDebug */ -/* [object][oleautomation][dual][hidden][uuid] */ - - -EXTERN_C const IID IID_IMsTscDebug; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("209D0EB9-6254-47B1-9033-A98DAE55BB27") - IMsTscDebug : public IDispatch - { - public: - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HatchBitmapPDU( - /* [in] */ long phatchBitmapPDU) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HatchBitmapPDU( - /* [retval][out] */ long *phatchBitmapPDU) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HatchSSBOrder( - /* [in] */ long phatchSSBOrder) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HatchSSBOrder( - /* [retval][out] */ long *phatchSSBOrder) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HatchMembltOrder( - /* [in] */ long phatchMembltOrder) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HatchMembltOrder( - /* [retval][out] */ long *phatchMembltOrder) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HatchIndexPDU( - /* [in] */ long phatchIndexPDU) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HatchIndexPDU( - /* [retval][out] */ long *phatchIndexPDU) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_LabelMemblt( - /* [in] */ long plabelMemblt) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_LabelMemblt( - /* [retval][out] */ long *plabelMemblt) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapCacheMonitor( - /* [in] */ long pbitmapCacheMonitor) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapCacheMonitor( - /* [retval][out] */ long *pbitmapCacheMonitor) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_MallocFailuresPercent( - /* [in] */ long pmallocFailuresPercent) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_MallocFailuresPercent( - /* [retval][out] */ long *pmallocFailuresPercent) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_MallocHugeFailuresPercent( - /* [in] */ long pmallocHugeFailuresPercent) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_MallocHugeFailuresPercent( - /* [retval][out] */ long *pmallocHugeFailuresPercent) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_NetThroughput( - /* [in] */ long NetThroughput) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_NetThroughput( - /* [retval][out] */ long *NetThroughput) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_CLXCmdLine( - /* [in] */ BSTR pCLXCmdLine) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CLXCmdLine( - /* [retval][out] */ BSTR *pCLXCmdLine) = 0; - - virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_CLXDll( - /* [in] */ BSTR pCLXDll) = 0; - - virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CLXDll( - /* [retval][out] */ BSTR *pCLXDll) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMsTscDebugVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMsTscDebug * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ - __RPC__deref_out void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMsTscDebug * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMsTscDebug * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMsTscDebug * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMsTscDebug * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMsTscDebug * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMsTscDebug * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HatchBitmapPDU )( - IMsTscDebug * This, - /* [in] */ long phatchBitmapPDU); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HatchBitmapPDU )( - IMsTscDebug * This, - /* [retval][out] */ long *phatchBitmapPDU); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HatchSSBOrder )( - IMsTscDebug * This, - /* [in] */ long phatchSSBOrder); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HatchSSBOrder )( - IMsTscDebug * This, - /* [retval][out] */ long *phatchSSBOrder); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HatchMembltOrder )( - IMsTscDebug * This, - /* [in] */ long phatchMembltOrder); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HatchMembltOrder )( - IMsTscDebug * This, - /* [retval][out] */ long *phatchMembltOrder); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HatchIndexPDU )( - IMsTscDebug * This, - /* [in] */ long phatchIndexPDU); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HatchIndexPDU )( - IMsTscDebug * This, - /* [retval][out] */ long *phatchIndexPDU); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LabelMemblt )( - IMsTscDebug * This, - /* [in] */ long plabelMemblt); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LabelMemblt )( - IMsTscDebug * This, - /* [retval][out] */ long *plabelMemblt); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapCacheMonitor )( - IMsTscDebug * This, - /* [in] */ long pbitmapCacheMonitor); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapCacheMonitor )( - IMsTscDebug * This, - /* [retval][out] */ long *pbitmapCacheMonitor); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MallocFailuresPercent )( - IMsTscDebug * This, - /* [in] */ long pmallocFailuresPercent); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MallocFailuresPercent )( - IMsTscDebug * This, - /* [retval][out] */ long *pmallocFailuresPercent); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MallocHugeFailuresPercent )( - IMsTscDebug * This, - /* [in] */ long pmallocHugeFailuresPercent); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MallocHugeFailuresPercent )( - IMsTscDebug * This, - /* [retval][out] */ long *pmallocHugeFailuresPercent); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NetThroughput )( - IMsTscDebug * This, - /* [in] */ long NetThroughput); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NetThroughput )( - IMsTscDebug * This, - /* [retval][out] */ long *NetThroughput); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CLXCmdLine )( - IMsTscDebug * This, - /* [in] */ BSTR pCLXCmdLine); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CLXCmdLine )( - IMsTscDebug * This, - /* [retval][out] */ BSTR *pCLXCmdLine); - - /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CLXDll )( - IMsTscDebug * This, - /* [in] */ BSTR pCLXDll); - - /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CLXDll )( - IMsTscDebug * This, - /* [retval][out] */ BSTR *pCLXDll); - - END_INTERFACE - } IMsTscDebugVtbl; - - interface IMsTscDebug - { - CONST_VTBL struct IMsTscDebugVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMsTscDebug_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IMsTscDebug_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IMsTscDebug_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IMsTscDebug_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define IMsTscDebug_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define IMsTscDebug_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define IMsTscDebug_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define IMsTscDebug_put_HatchBitmapPDU(This,phatchBitmapPDU) \ - ( (This)->lpVtbl -> put_HatchBitmapPDU(This,phatchBitmapPDU) ) - -#define IMsTscDebug_get_HatchBitmapPDU(This,phatchBitmapPDU) \ - ( (This)->lpVtbl -> get_HatchBitmapPDU(This,phatchBitmapPDU) ) - -#define IMsTscDebug_put_HatchSSBOrder(This,phatchSSBOrder) \ - ( (This)->lpVtbl -> put_HatchSSBOrder(This,phatchSSBOrder) ) - -#define IMsTscDebug_get_HatchSSBOrder(This,phatchSSBOrder) \ - ( (This)->lpVtbl -> get_HatchSSBOrder(This,phatchSSBOrder) ) - -#define IMsTscDebug_put_HatchMembltOrder(This,phatchMembltOrder) \ - ( (This)->lpVtbl -> put_HatchMembltOrder(This,phatchMembltOrder) ) - -#define IMsTscDebug_get_HatchMembltOrder(This,phatchMembltOrder) \ - ( (This)->lpVtbl -> get_HatchMembltOrder(This,phatchMembltOrder) ) - -#define IMsTscDebug_put_HatchIndexPDU(This,phatchIndexPDU) \ - ( (This)->lpVtbl -> put_HatchIndexPDU(This,phatchIndexPDU) ) - -#define IMsTscDebug_get_HatchIndexPDU(This,phatchIndexPDU) \ - ( (This)->lpVtbl -> get_HatchIndexPDU(This,phatchIndexPDU) ) - -#define IMsTscDebug_put_LabelMemblt(This,plabelMemblt) \ - ( (This)->lpVtbl -> put_LabelMemblt(This,plabelMemblt) ) - -#define IMsTscDebug_get_LabelMemblt(This,plabelMemblt) \ - ( (This)->lpVtbl -> get_LabelMemblt(This,plabelMemblt) ) - -#define IMsTscDebug_put_BitmapCacheMonitor(This,pbitmapCacheMonitor) \ - ( (This)->lpVtbl -> put_BitmapCacheMonitor(This,pbitmapCacheMonitor) ) - -#define IMsTscDebug_get_BitmapCacheMonitor(This,pbitmapCacheMonitor) \ - ( (This)->lpVtbl -> get_BitmapCacheMonitor(This,pbitmapCacheMonitor) ) - -#define IMsTscDebug_put_MallocFailuresPercent(This,pmallocFailuresPercent) \ - ( (This)->lpVtbl -> put_MallocFailuresPercent(This,pmallocFailuresPercent) ) - -#define IMsTscDebug_get_MallocFailuresPercent(This,pmallocFailuresPercent) \ - ( (This)->lpVtbl -> get_MallocFailuresPercent(This,pmallocFailuresPercent) ) - -#define IMsTscDebug_put_MallocHugeFailuresPercent(This,pmallocHugeFailuresPercent) \ - ( (This)->lpVtbl -> put_MallocHugeFailuresPercent(This,pmallocHugeFailuresPercent) ) - -#define IMsTscDebug_get_MallocHugeFailuresPercent(This,pmallocHugeFailuresPercent) \ - ( (This)->lpVtbl -> get_MallocHugeFailuresPercent(This,pmallocHugeFailuresPercent) ) - -#define IMsTscDebug_put_NetThroughput(This,NetThroughput) \ - ( (This)->lpVtbl -> put_NetThroughput(This,NetThroughput) ) - -#define IMsTscDebug_get_NetThroughput(This,NetThroughput) \ - ( (This)->lpVtbl -> get_NetThroughput(This,NetThroughput) ) - -#define IMsTscDebug_put_CLXCmdLine(This,pCLXCmdLine) \ - ( (This)->lpVtbl -> put_CLXCmdLine(This,pCLXCmdLine) ) - -#define IMsTscDebug_get_CLXCmdLine(This,pCLXCmdLine) \ - ( (This)->lpVtbl -> get_CLXCmdLine(This,pCLXCmdLine) ) - -#define IMsTscDebug_put_CLXDll(This,pCLXDll) \ - ( (This)->lpVtbl -> put_CLXDll(This,pCLXDll) ) - -#define IMsTscDebug_get_CLXDll(This,pCLXDll) \ - ( (This)->lpVtbl -> get_CLXDll(This,pCLXDll) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IMsTscDebug_INTERFACE_DEFINED__ */ - - -EXTERN_C const CLSID CLSID_MsTscAx; - -#ifdef __cplusplus - -class DECLSPEC_UUID("1FB464C8-09BB-4017-A2F5-EB742F04392F") -MsTscAx; -#endif - -EXTERN_C const CLSID CLSID_MsRdpClient; - -#ifdef __cplusplus - -class DECLSPEC_UUID("791FA017-2DE3-492E-ACC5-53C67A2B94D0") -MsRdpClient; -#endif - -EXTERN_C const CLSID CLSID_MsRdpClient2; - -#ifdef __cplusplus - -class DECLSPEC_UUID("9059F30F-4EB1-4BD2-9FDC-36F43A218F4A") -MsRdpClient2; -#endif - -EXTERN_C const CLSID CLSID_MsRdpClient3; - -#ifdef __cplusplus - -class DECLSPEC_UUID("7584C670-2274-4EFB-B00B-D6AABA6D3850") -MsRdpClient3; -#endif - -EXTERN_C const CLSID CLSID_MsRdpClient4; - -#ifdef __cplusplus - -class DECLSPEC_UUID("6AE29350-321B-42BE-BBE5-12FB5270C0DE") -MsRdpClient4; -#endif -#endif /* __MSTSCLib_LIBRARY_DEFINED__ */ - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - + + +/* this ALWAYS GENERATED file contains the definitions for the interfaces */ + + + /* File created by MIDL compiler version 7.00.0493 */ +/* at Sun Aug 13 16:46:05 2006 + */ +/* Compiler settings for .\mstsclib_redist.idl: + Oicf, W1, Zp8, env=Win32 (32b run) + protocol : dce , ms_ext, c_ext, robust + error checks: allocation ref bounds_check enum stub_data + VC __declspec() decoration level: + __declspec(uuid()), __declspec(selectany), __declspec(novtable) + DECLSPEC_UUID(), MIDL_INTERFACE() +*/ +//@@MIDL_FILE_HEADING( ) + +#pragma warning( disable: 4049 ) /* more than 64k source lines */ + + +/* verify that the version is high enough to compile this file*/ +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif + +#include "rpc.h" +#include "rpcndr.h" + +#ifndef __RPCNDR_H_VERSION__ +#error this stub requires an updated version of +#endif // __RPCNDR_H_VERSION__ + + +#ifndef __mstsclib_redist_h_h__ +#define __mstsclib_redist_h_h__ + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +#pragma once +#endif + +/* Forward Declarations */ + +#ifndef __IMsTscAxEvents_FWD_DEFINED__ +#define __IMsTscAxEvents_FWD_DEFINED__ +typedef interface IMsTscAxEvents IMsTscAxEvents; +#endif /* __IMsTscAxEvents_FWD_DEFINED__ */ + + +#ifndef __IMsTscAx_FWD_DEFINED__ +#define __IMsTscAx_FWD_DEFINED__ +typedef interface IMsTscAx IMsTscAx; +#endif /* __IMsTscAx_FWD_DEFINED__ */ + + +#ifndef __IMsRdpClient_FWD_DEFINED__ +#define __IMsRdpClient_FWD_DEFINED__ +typedef interface IMsRdpClient IMsRdpClient; +#endif /* __IMsRdpClient_FWD_DEFINED__ */ + + +#ifndef __IMsRdpClient2_FWD_DEFINED__ +#define __IMsRdpClient2_FWD_DEFINED__ +typedef interface IMsRdpClient2 IMsRdpClient2; +#endif /* __IMsRdpClient2_FWD_DEFINED__ */ + + +#ifndef __IMsRdpClient3_FWD_DEFINED__ +#define __IMsRdpClient3_FWD_DEFINED__ +typedef interface IMsRdpClient3 IMsRdpClient3; +#endif /* __IMsRdpClient3_FWD_DEFINED__ */ + + +#ifndef __IMsRdpClient4_FWD_DEFINED__ +#define __IMsRdpClient4_FWD_DEFINED__ +typedef interface IMsRdpClient4 IMsRdpClient4; +#endif /* __IMsRdpClient4_FWD_DEFINED__ */ + + +#ifndef __IMsTscNonScriptable_FWD_DEFINED__ +#define __IMsTscNonScriptable_FWD_DEFINED__ +typedef interface IMsTscNonScriptable IMsTscNonScriptable; +#endif /* __IMsTscNonScriptable_FWD_DEFINED__ */ + + +#ifndef __IMsRdpClientNonScriptable_FWD_DEFINED__ +#define __IMsRdpClientNonScriptable_FWD_DEFINED__ +typedef interface IMsRdpClientNonScriptable IMsRdpClientNonScriptable; +#endif /* __IMsRdpClientNonScriptable_FWD_DEFINED__ */ + + +#ifndef __IMsRdpClientNonScriptable2_FWD_DEFINED__ +#define __IMsRdpClientNonScriptable2_FWD_DEFINED__ +typedef interface IMsRdpClientNonScriptable2 IMsRdpClientNonScriptable2; +#endif /* __IMsRdpClientNonScriptable2_FWD_DEFINED__ */ + + +#ifndef __IMsTscAdvancedSettings_FWD_DEFINED__ +#define __IMsTscAdvancedSettings_FWD_DEFINED__ +typedef interface IMsTscAdvancedSettings IMsTscAdvancedSettings; +#endif /* __IMsTscAdvancedSettings_FWD_DEFINED__ */ + + +#ifndef __IMsRdpClientAdvancedSettings_FWD_DEFINED__ +#define __IMsRdpClientAdvancedSettings_FWD_DEFINED__ +typedef interface IMsRdpClientAdvancedSettings IMsRdpClientAdvancedSettings; +#endif /* __IMsRdpClientAdvancedSettings_FWD_DEFINED__ */ + + +#ifndef __IMsRdpClientAdvancedSettings2_FWD_DEFINED__ +#define __IMsRdpClientAdvancedSettings2_FWD_DEFINED__ +typedef interface IMsRdpClientAdvancedSettings2 IMsRdpClientAdvancedSettings2; +#endif /* __IMsRdpClientAdvancedSettings2_FWD_DEFINED__ */ + + +#ifndef __IMsRdpClientAdvancedSettings3_FWD_DEFINED__ +#define __IMsRdpClientAdvancedSettings3_FWD_DEFINED__ +typedef interface IMsRdpClientAdvancedSettings3 IMsRdpClientAdvancedSettings3; +#endif /* __IMsRdpClientAdvancedSettings3_FWD_DEFINED__ */ + + +#ifndef __IMsRdpClientAdvancedSettings4_FWD_DEFINED__ +#define __IMsRdpClientAdvancedSettings4_FWD_DEFINED__ +typedef interface IMsRdpClientAdvancedSettings4 IMsRdpClientAdvancedSettings4; +#endif /* __IMsRdpClientAdvancedSettings4_FWD_DEFINED__ */ + + +#ifndef __IMsTscSecuredSettings_FWD_DEFINED__ +#define __IMsTscSecuredSettings_FWD_DEFINED__ +typedef interface IMsTscSecuredSettings IMsTscSecuredSettings; +#endif /* __IMsTscSecuredSettings_FWD_DEFINED__ */ + + +#ifndef __IMsRdpClientSecuredSettings_FWD_DEFINED__ +#define __IMsRdpClientSecuredSettings_FWD_DEFINED__ +typedef interface IMsRdpClientSecuredSettings IMsRdpClientSecuredSettings; +#endif /* __IMsRdpClientSecuredSettings_FWD_DEFINED__ */ + + +#ifndef __IMsTscDebug_FWD_DEFINED__ +#define __IMsTscDebug_FWD_DEFINED__ +typedef interface IMsTscDebug IMsTscDebug; +#endif /* __IMsTscDebug_FWD_DEFINED__ */ + + +#ifndef __MsTscAx_FWD_DEFINED__ +#define __MsTscAx_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class MsTscAx MsTscAx; +#else +typedef struct MsTscAx MsTscAx; +#endif /* __cplusplus */ + +#endif /* __MsTscAx_FWD_DEFINED__ */ + + +#ifndef __MsRdpClient_FWD_DEFINED__ +#define __MsRdpClient_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class MsRdpClient MsRdpClient; +#else +typedef struct MsRdpClient MsRdpClient; +#endif /* __cplusplus */ + +#endif /* __MsRdpClient_FWD_DEFINED__ */ + + +#ifndef __MsRdpClient2_FWD_DEFINED__ +#define __MsRdpClient2_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class MsRdpClient2 MsRdpClient2; +#else +typedef struct MsRdpClient2 MsRdpClient2; +#endif /* __cplusplus */ + +#endif /* __MsRdpClient2_FWD_DEFINED__ */ + + +#ifndef __MsRdpClient3_FWD_DEFINED__ +#define __MsRdpClient3_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class MsRdpClient3 MsRdpClient3; +#else +typedef struct MsRdpClient3 MsRdpClient3; +#endif /* __cplusplus */ + +#endif /* __MsRdpClient3_FWD_DEFINED__ */ + + +#ifndef __MsRdpClient4_FWD_DEFINED__ +#define __MsRdpClient4_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class MsRdpClient4 MsRdpClient4; +#else +typedef struct MsRdpClient4 MsRdpClient4; +#endif /* __cplusplus */ + +#endif /* __MsRdpClient4_FWD_DEFINED__ */ + + +#ifdef __cplusplus +extern "C"{ +#endif + + + +#ifndef __MSTSCLib_LIBRARY_DEFINED__ +#define __MSTSCLib_LIBRARY_DEFINED__ + +/* library MSTSCLib */ +/* [version][uuid] */ + + + + + + + + + + + + + + + + + + +typedef /* [public][public][public] */ +enum __MIDL___MIDL_itf_mstsax_0275_0001 + { autoReconnectContinueAutomatic = 0, + autoReconnectContinueStop = 1, + autoReconnectContinueManual = 2 + } AutoReconnectContinueState; + +typedef /* [public][public][public] */ +enum __MIDL_IMsRdpClient_0001 + { exDiscReasonNoInfo = 0, + exDiscReasonAPIInitiatedDisconnect = 1, + exDiscReasonAPIInitiatedLogoff = 2, + exDiscReasonServerIdleTimeout = 3, + exDiscReasonServerLogonTimeout = 4, + exDiscReasonReplacedByOtherConnection = 5, + exDiscReasonOutOfMemory = 6, + exDiscReasonServerDeniedConnection = 7, + exDiscReasonServerDeniedConnectionFips = 8, + exDiscReasonLicenseInternal = 256, + exDiscReasonLicenseNoLicenseServer = 257, + exDiscReasonLicenseNoLicense = 258, + exDiscReasonLicenseErrClientMsg = 259, + exDiscReasonLicenseHwidDoesntMatchLicense = 260, + exDiscReasonLicenseErrClientLicense = 261, + exDiscReasonLicenseCantFinishProtocol = 262, + exDiscReasonLicenseClientEndedProtocol = 263, + exDiscReasonLicenseErrClientEncryption = 264, + exDiscReasonLicenseCantUpgradeLicense = 265, + exDiscReasonLicenseNoRemoteConnections = 266, + exDiscReasonProtocolRangeStart = 4096, + exDiscReasonProtocolRangeEnd = 32767 + } ExtendedDisconnectReasonCode; + +typedef /* [public][public][public] */ +enum __MIDL_IMsRdpClient_0002 + { controlCloseCanProceed = 0, + controlCloseWaitForEvents = 1 + } ControlCloseStatus; + +typedef /* [custom][public] */ unsigned __int3264 UINT_PTR; + +typedef /* [custom][public] */ __int3264 LONG_PTR; + + +EXTERN_C const IID LIBID_MSTSCLib; + +#ifndef __IMsTscAxEvents_DISPINTERFACE_DEFINED__ +#define __IMsTscAxEvents_DISPINTERFACE_DEFINED__ + +/* dispinterface IMsTscAxEvents */ +/* [uuid] */ + + +EXTERN_C const IID DIID_IMsTscAxEvents; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("336D5562-EFA8-482E-8CB3-C5C0FC7A7DB6") + IMsTscAxEvents : public IDispatch + { + }; + +#else /* C style interface */ + + typedef struct IMsTscAxEventsVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsTscAxEvents * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsTscAxEvents * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsTscAxEvents * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsTscAxEvents * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsTscAxEvents * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsTscAxEvents * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsTscAxEvents * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + END_INTERFACE + } IMsTscAxEventsVtbl; + + interface IMsTscAxEvents + { + CONST_VTBL struct IMsTscAxEventsVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsTscAxEvents_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsTscAxEvents_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsTscAxEvents_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsTscAxEvents_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsTscAxEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsTscAxEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsTscAxEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + +#endif /* __IMsTscAxEvents_DISPINTERFACE_DEFINED__ */ + + +#ifndef __IMsTscAx_INTERFACE_DEFINED__ +#define __IMsTscAx_INTERFACE_DEFINED__ + +/* interface IMsTscAx */ +/* [object][oleautomation][dual][uuid] */ + + +EXTERN_C const IID IID_IMsTscAx; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("327BB5CD-834E-4400-AEF2-B30E15E5D682") + IMsTscAx : public IDispatch + { + public: + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Server( + /* [in] */ BSTR pServer) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Server( + /* [retval][out] */ BSTR *pServer) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Domain( + /* [in] */ BSTR pDomain) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Domain( + /* [retval][out] */ BSTR *pDomain) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_UserName( + /* [in] */ BSTR pUserName) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_UserName( + /* [retval][out] */ BSTR *pUserName) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DisconnectedText( + /* [in] */ BSTR pDisconnectedText) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DisconnectedText( + /* [retval][out] */ BSTR *pDisconnectedText) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectingText( + /* [in] */ BSTR pConnectingText) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ConnectingText( + /* [retval][out] */ BSTR *pConnectingText) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Connected( + /* [retval][out] */ short *pIsConnected) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DesktopWidth( + /* [in] */ long pVal) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DesktopWidth( + /* [retval][out] */ long *pVal) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DesktopHeight( + /* [in] */ long pVal) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DesktopHeight( + /* [retval][out] */ long *pVal) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_StartConnected( + /* [in] */ long pfStartConnected) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_StartConnected( + /* [retval][out] */ long *pfStartConnected) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HorizontalScrollBarVisible( + /* [retval][out] */ long *pfHScrollVisible) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_VerticalScrollBarVisible( + /* [retval][out] */ long *pfVScrollVisible) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_FullScreenTitle( + /* [in] */ BSTR rhs) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CipherStrength( + /* [retval][out] */ long *pCipherStrength) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Version( + /* [retval][out] */ BSTR *pVersion) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SecuredSettingsEnabled( + /* [retval][out] */ long *pSecuredSettingsEnabled) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SecuredSettings( + /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AdvancedSettings( + /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings) = 0; + + virtual /* [hidden][propget][id] */ HRESULT STDMETHODCALLTYPE get_Debugger( + /* [retval][out] */ IMsTscDebug **ppDebugger) = 0; + + virtual /* [id] */ HRESULT STDMETHODCALLTYPE Connect( void) = 0; + + virtual /* [id] */ HRESULT STDMETHODCALLTYPE Disconnect( void) = 0; + + virtual /* [id] */ HRESULT STDMETHODCALLTYPE CreateVirtualChannels( + /* [in] */ BSTR newVal) = 0; + + virtual /* [id] */ HRESULT STDMETHODCALLTYPE SendOnVirtualChannel( + /* [in] */ BSTR chanName, + /* [in] */ BSTR ChanData) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsTscAxVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsTscAx * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsTscAx * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsTscAx * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsTscAx * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsTscAx * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsTscAx * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsTscAx * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Server )( + IMsTscAx * This, + /* [in] */ BSTR pServer); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Server )( + IMsTscAx * This, + /* [retval][out] */ BSTR *pServer); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Domain )( + IMsTscAx * This, + /* [in] */ BSTR pDomain); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Domain )( + IMsTscAx * This, + /* [retval][out] */ BSTR *pDomain); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UserName )( + IMsTscAx * This, + /* [in] */ BSTR pUserName); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )( + IMsTscAx * This, + /* [retval][out] */ BSTR *pUserName); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisconnectedText )( + IMsTscAx * This, + /* [in] */ BSTR pDisconnectedText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisconnectedText )( + IMsTscAx * This, + /* [retval][out] */ BSTR *pDisconnectedText); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectingText )( + IMsTscAx * This, + /* [in] */ BSTR pConnectingText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectingText )( + IMsTscAx * This, + /* [retval][out] */ BSTR *pConnectingText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Connected )( + IMsTscAx * This, + /* [retval][out] */ short *pIsConnected); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopWidth )( + IMsTscAx * This, + /* [in] */ long pVal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopWidth )( + IMsTscAx * This, + /* [retval][out] */ long *pVal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopHeight )( + IMsTscAx * This, + /* [in] */ long pVal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopHeight )( + IMsTscAx * This, + /* [retval][out] */ long *pVal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartConnected )( + IMsTscAx * This, + /* [in] */ long pfStartConnected); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartConnected )( + IMsTscAx * This, + /* [retval][out] */ long *pfStartConnected); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalScrollBarVisible )( + IMsTscAx * This, + /* [retval][out] */ long *pfHScrollVisible); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalScrollBarVisible )( + IMsTscAx * This, + /* [retval][out] */ long *pfVScrollVisible); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreenTitle )( + IMsTscAx * This, + /* [in] */ BSTR rhs); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CipherStrength )( + IMsTscAx * This, + /* [retval][out] */ long *pCipherStrength); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )( + IMsTscAx * This, + /* [retval][out] */ BSTR *pVersion); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettingsEnabled )( + IMsTscAx * This, + /* [retval][out] */ long *pSecuredSettingsEnabled); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings )( + IMsTscAx * This, + /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings )( + IMsTscAx * This, + /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings); + + /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Debugger )( + IMsTscAx * This, + /* [retval][out] */ IMsTscDebug **ppDebugger); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Connect )( + IMsTscAx * This); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( + IMsTscAx * This); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateVirtualChannels )( + IMsTscAx * This, + /* [in] */ BSTR newVal); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *SendOnVirtualChannel )( + IMsTscAx * This, + /* [in] */ BSTR chanName, + /* [in] */ BSTR ChanData); + + END_INTERFACE + } IMsTscAxVtbl; + + interface IMsTscAx + { + CONST_VTBL struct IMsTscAxVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsTscAx_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsTscAx_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsTscAx_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsTscAx_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsTscAx_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsTscAx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsTscAx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IMsTscAx_put_Server(This,pServer) \ + ( (This)->lpVtbl -> put_Server(This,pServer) ) + +#define IMsTscAx_get_Server(This,pServer) \ + ( (This)->lpVtbl -> get_Server(This,pServer) ) + +#define IMsTscAx_put_Domain(This,pDomain) \ + ( (This)->lpVtbl -> put_Domain(This,pDomain) ) + +#define IMsTscAx_get_Domain(This,pDomain) \ + ( (This)->lpVtbl -> get_Domain(This,pDomain) ) + +#define IMsTscAx_put_UserName(This,pUserName) \ + ( (This)->lpVtbl -> put_UserName(This,pUserName) ) + +#define IMsTscAx_get_UserName(This,pUserName) \ + ( (This)->lpVtbl -> get_UserName(This,pUserName) ) + +#define IMsTscAx_put_DisconnectedText(This,pDisconnectedText) \ + ( (This)->lpVtbl -> put_DisconnectedText(This,pDisconnectedText) ) + +#define IMsTscAx_get_DisconnectedText(This,pDisconnectedText) \ + ( (This)->lpVtbl -> get_DisconnectedText(This,pDisconnectedText) ) + +#define IMsTscAx_put_ConnectingText(This,pConnectingText) \ + ( (This)->lpVtbl -> put_ConnectingText(This,pConnectingText) ) + +#define IMsTscAx_get_ConnectingText(This,pConnectingText) \ + ( (This)->lpVtbl -> get_ConnectingText(This,pConnectingText) ) + +#define IMsTscAx_get_Connected(This,pIsConnected) \ + ( (This)->lpVtbl -> get_Connected(This,pIsConnected) ) + +#define IMsTscAx_put_DesktopWidth(This,pVal) \ + ( (This)->lpVtbl -> put_DesktopWidth(This,pVal) ) + +#define IMsTscAx_get_DesktopWidth(This,pVal) \ + ( (This)->lpVtbl -> get_DesktopWidth(This,pVal) ) + +#define IMsTscAx_put_DesktopHeight(This,pVal) \ + ( (This)->lpVtbl -> put_DesktopHeight(This,pVal) ) + +#define IMsTscAx_get_DesktopHeight(This,pVal) \ + ( (This)->lpVtbl -> get_DesktopHeight(This,pVal) ) + +#define IMsTscAx_put_StartConnected(This,pfStartConnected) \ + ( (This)->lpVtbl -> put_StartConnected(This,pfStartConnected) ) + +#define IMsTscAx_get_StartConnected(This,pfStartConnected) \ + ( (This)->lpVtbl -> get_StartConnected(This,pfStartConnected) ) + +#define IMsTscAx_get_HorizontalScrollBarVisible(This,pfHScrollVisible) \ + ( (This)->lpVtbl -> get_HorizontalScrollBarVisible(This,pfHScrollVisible) ) + +#define IMsTscAx_get_VerticalScrollBarVisible(This,pfVScrollVisible) \ + ( (This)->lpVtbl -> get_VerticalScrollBarVisible(This,pfVScrollVisible) ) + +#define IMsTscAx_put_FullScreenTitle(This,rhs) \ + ( (This)->lpVtbl -> put_FullScreenTitle(This,rhs) ) + +#define IMsTscAx_get_CipherStrength(This,pCipherStrength) \ + ( (This)->lpVtbl -> get_CipherStrength(This,pCipherStrength) ) + +#define IMsTscAx_get_Version(This,pVersion) \ + ( (This)->lpVtbl -> get_Version(This,pVersion) ) + +#define IMsTscAx_get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) \ + ( (This)->lpVtbl -> get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) ) + +#define IMsTscAx_get_SecuredSettings(This,ppSecuredSettings) \ + ( (This)->lpVtbl -> get_SecuredSettings(This,ppSecuredSettings) ) + +#define IMsTscAx_get_AdvancedSettings(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings(This,ppAdvSettings) ) + +#define IMsTscAx_get_Debugger(This,ppDebugger) \ + ( (This)->lpVtbl -> get_Debugger(This,ppDebugger) ) + +#define IMsTscAx_Connect(This) \ + ( (This)->lpVtbl -> Connect(This) ) + +#define IMsTscAx_Disconnect(This) \ + ( (This)->lpVtbl -> Disconnect(This) ) + +#define IMsTscAx_CreateVirtualChannels(This,newVal) \ + ( (This)->lpVtbl -> CreateVirtualChannels(This,newVal) ) + +#define IMsTscAx_SendOnVirtualChannel(This,chanName,ChanData) \ + ( (This)->lpVtbl -> SendOnVirtualChannel(This,chanName,ChanData) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IMsTscAx_INTERFACE_DEFINED__ */ + + +#ifndef __IMsRdpClient_INTERFACE_DEFINED__ +#define __IMsRdpClient_INTERFACE_DEFINED__ + +/* interface IMsRdpClient */ +/* [object][oleautomation][dual][uuid] */ + + +EXTERN_C const IID IID_IMsRdpClient; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("92B4A539-7115-4B7C-A5A9-E5D9EFC2780A") + IMsRdpClient : public IMsTscAx + { + public: + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ColorDepth( + /* [in] */ long pcolorDepth) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ColorDepth( + /* [retval][out] */ long *pcolorDepth) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AdvancedSettings2( + /* [retval][out] */ IMsRdpClientAdvancedSettings **ppAdvSettings) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SecuredSettings2( + /* [retval][out] */ IMsRdpClientSecuredSettings **ppSecuredSettings) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtendedDisconnectReason( + /* [retval][out] */ ExtendedDisconnectReasonCode *pExtendedDisconnectReason) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_FullScreen( + /* [in] */ VARIANT_BOOL pfFullScreen) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_FullScreen( + /* [retval][out] */ VARIANT_BOOL *pfFullScreen) = 0; + + virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetVirtualChannelOptions( + /* [in] */ BSTR chanName, + /* [in] */ long chanOptions) = 0; + + virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetVirtualChannelOptions( + /* [in] */ BSTR chanName, + /* [retval][out] */ long *pChanOptions) = 0; + + virtual /* [id] */ HRESULT STDMETHODCALLTYPE RequestClose( + /* [retval][out] */ ControlCloseStatus *pCloseStatus) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsRdpClientVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsRdpClient * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsRdpClient * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsRdpClient * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsRdpClient * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsRdpClient * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsRdpClient * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsRdpClient * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Server )( + IMsRdpClient * This, + /* [in] */ BSTR pServer); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Server )( + IMsRdpClient * This, + /* [retval][out] */ BSTR *pServer); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Domain )( + IMsRdpClient * This, + /* [in] */ BSTR pDomain); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Domain )( + IMsRdpClient * This, + /* [retval][out] */ BSTR *pDomain); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UserName )( + IMsRdpClient * This, + /* [in] */ BSTR pUserName); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )( + IMsRdpClient * This, + /* [retval][out] */ BSTR *pUserName); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisconnectedText )( + IMsRdpClient * This, + /* [in] */ BSTR pDisconnectedText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisconnectedText )( + IMsRdpClient * This, + /* [retval][out] */ BSTR *pDisconnectedText); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectingText )( + IMsRdpClient * This, + /* [in] */ BSTR pConnectingText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectingText )( + IMsRdpClient * This, + /* [retval][out] */ BSTR *pConnectingText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Connected )( + IMsRdpClient * This, + /* [retval][out] */ short *pIsConnected); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopWidth )( + IMsRdpClient * This, + /* [in] */ long pVal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopWidth )( + IMsRdpClient * This, + /* [retval][out] */ long *pVal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopHeight )( + IMsRdpClient * This, + /* [in] */ long pVal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopHeight )( + IMsRdpClient * This, + /* [retval][out] */ long *pVal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartConnected )( + IMsRdpClient * This, + /* [in] */ long pfStartConnected); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartConnected )( + IMsRdpClient * This, + /* [retval][out] */ long *pfStartConnected); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalScrollBarVisible )( + IMsRdpClient * This, + /* [retval][out] */ long *pfHScrollVisible); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalScrollBarVisible )( + IMsRdpClient * This, + /* [retval][out] */ long *pfVScrollVisible); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreenTitle )( + IMsRdpClient * This, + /* [in] */ BSTR rhs); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CipherStrength )( + IMsRdpClient * This, + /* [retval][out] */ long *pCipherStrength); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )( + IMsRdpClient * This, + /* [retval][out] */ BSTR *pVersion); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettingsEnabled )( + IMsRdpClient * This, + /* [retval][out] */ long *pSecuredSettingsEnabled); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings )( + IMsRdpClient * This, + /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings )( + IMsRdpClient * This, + /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings); + + /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Debugger )( + IMsRdpClient * This, + /* [retval][out] */ IMsTscDebug **ppDebugger); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Connect )( + IMsRdpClient * This); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( + IMsRdpClient * This); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateVirtualChannels )( + IMsRdpClient * This, + /* [in] */ BSTR newVal); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *SendOnVirtualChannel )( + IMsRdpClient * This, + /* [in] */ BSTR chanName, + /* [in] */ BSTR ChanData); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ColorDepth )( + IMsRdpClient * This, + /* [in] */ long pcolorDepth); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ColorDepth )( + IMsRdpClient * This, + /* [retval][out] */ long *pcolorDepth); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings2 )( + IMsRdpClient * This, + /* [retval][out] */ IMsRdpClientAdvancedSettings **ppAdvSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings2 )( + IMsRdpClient * This, + /* [retval][out] */ IMsRdpClientSecuredSettings **ppSecuredSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtendedDisconnectReason )( + IMsRdpClient * This, + /* [retval][out] */ ExtendedDisconnectReasonCode *pExtendedDisconnectReason); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )( + IMsRdpClient * This, + /* [in] */ VARIANT_BOOL pfFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )( + IMsRdpClient * This, + /* [retval][out] */ VARIANT_BOOL *pfFullScreen); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetVirtualChannelOptions )( + IMsRdpClient * This, + /* [in] */ BSTR chanName, + /* [in] */ long chanOptions); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetVirtualChannelOptions )( + IMsRdpClient * This, + /* [in] */ BSTR chanName, + /* [retval][out] */ long *pChanOptions); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *RequestClose )( + IMsRdpClient * This, + /* [retval][out] */ ControlCloseStatus *pCloseStatus); + + END_INTERFACE + } IMsRdpClientVtbl; + + interface IMsRdpClient + { + CONST_VTBL struct IMsRdpClientVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsRdpClient_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsRdpClient_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsRdpClient_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsRdpClient_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsRdpClient_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsRdpClient_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsRdpClient_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IMsRdpClient_put_Server(This,pServer) \ + ( (This)->lpVtbl -> put_Server(This,pServer) ) + +#define IMsRdpClient_get_Server(This,pServer) \ + ( (This)->lpVtbl -> get_Server(This,pServer) ) + +#define IMsRdpClient_put_Domain(This,pDomain) \ + ( (This)->lpVtbl -> put_Domain(This,pDomain) ) + +#define IMsRdpClient_get_Domain(This,pDomain) \ + ( (This)->lpVtbl -> get_Domain(This,pDomain) ) + +#define IMsRdpClient_put_UserName(This,pUserName) \ + ( (This)->lpVtbl -> put_UserName(This,pUserName) ) + +#define IMsRdpClient_get_UserName(This,pUserName) \ + ( (This)->lpVtbl -> get_UserName(This,pUserName) ) + +#define IMsRdpClient_put_DisconnectedText(This,pDisconnectedText) \ + ( (This)->lpVtbl -> put_DisconnectedText(This,pDisconnectedText) ) + +#define IMsRdpClient_get_DisconnectedText(This,pDisconnectedText) \ + ( (This)->lpVtbl -> get_DisconnectedText(This,pDisconnectedText) ) + +#define IMsRdpClient_put_ConnectingText(This,pConnectingText) \ + ( (This)->lpVtbl -> put_ConnectingText(This,pConnectingText) ) + +#define IMsRdpClient_get_ConnectingText(This,pConnectingText) \ + ( (This)->lpVtbl -> get_ConnectingText(This,pConnectingText) ) + +#define IMsRdpClient_get_Connected(This,pIsConnected) \ + ( (This)->lpVtbl -> get_Connected(This,pIsConnected) ) + +#define IMsRdpClient_put_DesktopWidth(This,pVal) \ + ( (This)->lpVtbl -> put_DesktopWidth(This,pVal) ) + +#define IMsRdpClient_get_DesktopWidth(This,pVal) \ + ( (This)->lpVtbl -> get_DesktopWidth(This,pVal) ) + +#define IMsRdpClient_put_DesktopHeight(This,pVal) \ + ( (This)->lpVtbl -> put_DesktopHeight(This,pVal) ) + +#define IMsRdpClient_get_DesktopHeight(This,pVal) \ + ( (This)->lpVtbl -> get_DesktopHeight(This,pVal) ) + +#define IMsRdpClient_put_StartConnected(This,pfStartConnected) \ + ( (This)->lpVtbl -> put_StartConnected(This,pfStartConnected) ) + +#define IMsRdpClient_get_StartConnected(This,pfStartConnected) \ + ( (This)->lpVtbl -> get_StartConnected(This,pfStartConnected) ) + +#define IMsRdpClient_get_HorizontalScrollBarVisible(This,pfHScrollVisible) \ + ( (This)->lpVtbl -> get_HorizontalScrollBarVisible(This,pfHScrollVisible) ) + +#define IMsRdpClient_get_VerticalScrollBarVisible(This,pfVScrollVisible) \ + ( (This)->lpVtbl -> get_VerticalScrollBarVisible(This,pfVScrollVisible) ) + +#define IMsRdpClient_put_FullScreenTitle(This,rhs) \ + ( (This)->lpVtbl -> put_FullScreenTitle(This,rhs) ) + +#define IMsRdpClient_get_CipherStrength(This,pCipherStrength) \ + ( (This)->lpVtbl -> get_CipherStrength(This,pCipherStrength) ) + +#define IMsRdpClient_get_Version(This,pVersion) \ + ( (This)->lpVtbl -> get_Version(This,pVersion) ) + +#define IMsRdpClient_get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) \ + ( (This)->lpVtbl -> get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) ) + +#define IMsRdpClient_get_SecuredSettings(This,ppSecuredSettings) \ + ( (This)->lpVtbl -> get_SecuredSettings(This,ppSecuredSettings) ) + +#define IMsRdpClient_get_AdvancedSettings(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings(This,ppAdvSettings) ) + +#define IMsRdpClient_get_Debugger(This,ppDebugger) \ + ( (This)->lpVtbl -> get_Debugger(This,ppDebugger) ) + +#define IMsRdpClient_Connect(This) \ + ( (This)->lpVtbl -> Connect(This) ) + +#define IMsRdpClient_Disconnect(This) \ + ( (This)->lpVtbl -> Disconnect(This) ) + +#define IMsRdpClient_CreateVirtualChannels(This,newVal) \ + ( (This)->lpVtbl -> CreateVirtualChannels(This,newVal) ) + +#define IMsRdpClient_SendOnVirtualChannel(This,chanName,ChanData) \ + ( (This)->lpVtbl -> SendOnVirtualChannel(This,chanName,ChanData) ) + + +#define IMsRdpClient_put_ColorDepth(This,pcolorDepth) \ + ( (This)->lpVtbl -> put_ColorDepth(This,pcolorDepth) ) + +#define IMsRdpClient_get_ColorDepth(This,pcolorDepth) \ + ( (This)->lpVtbl -> get_ColorDepth(This,pcolorDepth) ) + +#define IMsRdpClient_get_AdvancedSettings2(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings2(This,ppAdvSettings) ) + +#define IMsRdpClient_get_SecuredSettings2(This,ppSecuredSettings) \ + ( (This)->lpVtbl -> get_SecuredSettings2(This,ppSecuredSettings) ) + +#define IMsRdpClient_get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) \ + ( (This)->lpVtbl -> get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) ) + +#define IMsRdpClient_put_FullScreen(This,pfFullScreen) \ + ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) ) + +#define IMsRdpClient_get_FullScreen(This,pfFullScreen) \ + ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) ) + +#define IMsRdpClient_SetVirtualChannelOptions(This,chanName,chanOptions) \ + ( (This)->lpVtbl -> SetVirtualChannelOptions(This,chanName,chanOptions) ) + +#define IMsRdpClient_GetVirtualChannelOptions(This,chanName,pChanOptions) \ + ( (This)->lpVtbl -> GetVirtualChannelOptions(This,chanName,pChanOptions) ) + +#define IMsRdpClient_RequestClose(This,pCloseStatus) \ + ( (This)->lpVtbl -> RequestClose(This,pCloseStatus) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IMsRdpClient_INTERFACE_DEFINED__ */ + + +#ifndef __IMsRdpClient2_INTERFACE_DEFINED__ +#define __IMsRdpClient2_INTERFACE_DEFINED__ + +/* interface IMsRdpClient2 */ +/* [object][oleautomation][dual][uuid] */ + + +EXTERN_C const IID IID_IMsRdpClient2; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("E7E17DC4-3B71-4BA7-A8E6-281FFADCA28F") + IMsRdpClient2 : public IMsRdpClient + { + public: + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AdvancedSettings3( + /* [retval][out] */ IMsRdpClientAdvancedSettings2 **ppAdvSettings) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectedStatusText( + /* [in] */ BSTR pConnectedStatusText) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ConnectedStatusText( + /* [retval][out] */ BSTR *pConnectedStatusText) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsRdpClient2Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsRdpClient2 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsRdpClient2 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsRdpClient2 * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsRdpClient2 * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsRdpClient2 * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsRdpClient2 * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsRdpClient2 * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Server )( + IMsRdpClient2 * This, + /* [in] */ BSTR pServer); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Server )( + IMsRdpClient2 * This, + /* [retval][out] */ BSTR *pServer); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Domain )( + IMsRdpClient2 * This, + /* [in] */ BSTR pDomain); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Domain )( + IMsRdpClient2 * This, + /* [retval][out] */ BSTR *pDomain); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UserName )( + IMsRdpClient2 * This, + /* [in] */ BSTR pUserName); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )( + IMsRdpClient2 * This, + /* [retval][out] */ BSTR *pUserName); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisconnectedText )( + IMsRdpClient2 * This, + /* [in] */ BSTR pDisconnectedText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisconnectedText )( + IMsRdpClient2 * This, + /* [retval][out] */ BSTR *pDisconnectedText); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectingText )( + IMsRdpClient2 * This, + /* [in] */ BSTR pConnectingText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectingText )( + IMsRdpClient2 * This, + /* [retval][out] */ BSTR *pConnectingText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Connected )( + IMsRdpClient2 * This, + /* [retval][out] */ short *pIsConnected); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopWidth )( + IMsRdpClient2 * This, + /* [in] */ long pVal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopWidth )( + IMsRdpClient2 * This, + /* [retval][out] */ long *pVal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopHeight )( + IMsRdpClient2 * This, + /* [in] */ long pVal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopHeight )( + IMsRdpClient2 * This, + /* [retval][out] */ long *pVal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartConnected )( + IMsRdpClient2 * This, + /* [in] */ long pfStartConnected); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartConnected )( + IMsRdpClient2 * This, + /* [retval][out] */ long *pfStartConnected); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalScrollBarVisible )( + IMsRdpClient2 * This, + /* [retval][out] */ long *pfHScrollVisible); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalScrollBarVisible )( + IMsRdpClient2 * This, + /* [retval][out] */ long *pfVScrollVisible); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreenTitle )( + IMsRdpClient2 * This, + /* [in] */ BSTR rhs); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CipherStrength )( + IMsRdpClient2 * This, + /* [retval][out] */ long *pCipherStrength); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )( + IMsRdpClient2 * This, + /* [retval][out] */ BSTR *pVersion); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettingsEnabled )( + IMsRdpClient2 * This, + /* [retval][out] */ long *pSecuredSettingsEnabled); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings )( + IMsRdpClient2 * This, + /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings )( + IMsRdpClient2 * This, + /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings); + + /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Debugger )( + IMsRdpClient2 * This, + /* [retval][out] */ IMsTscDebug **ppDebugger); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Connect )( + IMsRdpClient2 * This); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( + IMsRdpClient2 * This); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateVirtualChannels )( + IMsRdpClient2 * This, + /* [in] */ BSTR newVal); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *SendOnVirtualChannel )( + IMsRdpClient2 * This, + /* [in] */ BSTR chanName, + /* [in] */ BSTR ChanData); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ColorDepth )( + IMsRdpClient2 * This, + /* [in] */ long pcolorDepth); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ColorDepth )( + IMsRdpClient2 * This, + /* [retval][out] */ long *pcolorDepth); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings2 )( + IMsRdpClient2 * This, + /* [retval][out] */ IMsRdpClientAdvancedSettings **ppAdvSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings2 )( + IMsRdpClient2 * This, + /* [retval][out] */ IMsRdpClientSecuredSettings **ppSecuredSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtendedDisconnectReason )( + IMsRdpClient2 * This, + /* [retval][out] */ ExtendedDisconnectReasonCode *pExtendedDisconnectReason); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )( + IMsRdpClient2 * This, + /* [in] */ VARIANT_BOOL pfFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )( + IMsRdpClient2 * This, + /* [retval][out] */ VARIANT_BOOL *pfFullScreen); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetVirtualChannelOptions )( + IMsRdpClient2 * This, + /* [in] */ BSTR chanName, + /* [in] */ long chanOptions); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetVirtualChannelOptions )( + IMsRdpClient2 * This, + /* [in] */ BSTR chanName, + /* [retval][out] */ long *pChanOptions); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *RequestClose )( + IMsRdpClient2 * This, + /* [retval][out] */ ControlCloseStatus *pCloseStatus); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings3 )( + IMsRdpClient2 * This, + /* [retval][out] */ IMsRdpClientAdvancedSettings2 **ppAdvSettings); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectedStatusText )( + IMsRdpClient2 * This, + /* [in] */ BSTR pConnectedStatusText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectedStatusText )( + IMsRdpClient2 * This, + /* [retval][out] */ BSTR *pConnectedStatusText); + + END_INTERFACE + } IMsRdpClient2Vtbl; + + interface IMsRdpClient2 + { + CONST_VTBL struct IMsRdpClient2Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsRdpClient2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsRdpClient2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsRdpClient2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsRdpClient2_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsRdpClient2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsRdpClient2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsRdpClient2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IMsRdpClient2_put_Server(This,pServer) \ + ( (This)->lpVtbl -> put_Server(This,pServer) ) + +#define IMsRdpClient2_get_Server(This,pServer) \ + ( (This)->lpVtbl -> get_Server(This,pServer) ) + +#define IMsRdpClient2_put_Domain(This,pDomain) \ + ( (This)->lpVtbl -> put_Domain(This,pDomain) ) + +#define IMsRdpClient2_get_Domain(This,pDomain) \ + ( (This)->lpVtbl -> get_Domain(This,pDomain) ) + +#define IMsRdpClient2_put_UserName(This,pUserName) \ + ( (This)->lpVtbl -> put_UserName(This,pUserName) ) + +#define IMsRdpClient2_get_UserName(This,pUserName) \ + ( (This)->lpVtbl -> get_UserName(This,pUserName) ) + +#define IMsRdpClient2_put_DisconnectedText(This,pDisconnectedText) \ + ( (This)->lpVtbl -> put_DisconnectedText(This,pDisconnectedText) ) + +#define IMsRdpClient2_get_DisconnectedText(This,pDisconnectedText) \ + ( (This)->lpVtbl -> get_DisconnectedText(This,pDisconnectedText) ) + +#define IMsRdpClient2_put_ConnectingText(This,pConnectingText) \ + ( (This)->lpVtbl -> put_ConnectingText(This,pConnectingText) ) + +#define IMsRdpClient2_get_ConnectingText(This,pConnectingText) \ + ( (This)->lpVtbl -> get_ConnectingText(This,pConnectingText) ) + +#define IMsRdpClient2_get_Connected(This,pIsConnected) \ + ( (This)->lpVtbl -> get_Connected(This,pIsConnected) ) + +#define IMsRdpClient2_put_DesktopWidth(This,pVal) \ + ( (This)->lpVtbl -> put_DesktopWidth(This,pVal) ) + +#define IMsRdpClient2_get_DesktopWidth(This,pVal) \ + ( (This)->lpVtbl -> get_DesktopWidth(This,pVal) ) + +#define IMsRdpClient2_put_DesktopHeight(This,pVal) \ + ( (This)->lpVtbl -> put_DesktopHeight(This,pVal) ) + +#define IMsRdpClient2_get_DesktopHeight(This,pVal) \ + ( (This)->lpVtbl -> get_DesktopHeight(This,pVal) ) + +#define IMsRdpClient2_put_StartConnected(This,pfStartConnected) \ + ( (This)->lpVtbl -> put_StartConnected(This,pfStartConnected) ) + +#define IMsRdpClient2_get_StartConnected(This,pfStartConnected) \ + ( (This)->lpVtbl -> get_StartConnected(This,pfStartConnected) ) + +#define IMsRdpClient2_get_HorizontalScrollBarVisible(This,pfHScrollVisible) \ + ( (This)->lpVtbl -> get_HorizontalScrollBarVisible(This,pfHScrollVisible) ) + +#define IMsRdpClient2_get_VerticalScrollBarVisible(This,pfVScrollVisible) \ + ( (This)->lpVtbl -> get_VerticalScrollBarVisible(This,pfVScrollVisible) ) + +#define IMsRdpClient2_put_FullScreenTitle(This,rhs) \ + ( (This)->lpVtbl -> put_FullScreenTitle(This,rhs) ) + +#define IMsRdpClient2_get_CipherStrength(This,pCipherStrength) \ + ( (This)->lpVtbl -> get_CipherStrength(This,pCipherStrength) ) + +#define IMsRdpClient2_get_Version(This,pVersion) \ + ( (This)->lpVtbl -> get_Version(This,pVersion) ) + +#define IMsRdpClient2_get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) \ + ( (This)->lpVtbl -> get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) ) + +#define IMsRdpClient2_get_SecuredSettings(This,ppSecuredSettings) \ + ( (This)->lpVtbl -> get_SecuredSettings(This,ppSecuredSettings) ) + +#define IMsRdpClient2_get_AdvancedSettings(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings(This,ppAdvSettings) ) + +#define IMsRdpClient2_get_Debugger(This,ppDebugger) \ + ( (This)->lpVtbl -> get_Debugger(This,ppDebugger) ) + +#define IMsRdpClient2_Connect(This) \ + ( (This)->lpVtbl -> Connect(This) ) + +#define IMsRdpClient2_Disconnect(This) \ + ( (This)->lpVtbl -> Disconnect(This) ) + +#define IMsRdpClient2_CreateVirtualChannels(This,newVal) \ + ( (This)->lpVtbl -> CreateVirtualChannels(This,newVal) ) + +#define IMsRdpClient2_SendOnVirtualChannel(This,chanName,ChanData) \ + ( (This)->lpVtbl -> SendOnVirtualChannel(This,chanName,ChanData) ) + + +#define IMsRdpClient2_put_ColorDepth(This,pcolorDepth) \ + ( (This)->lpVtbl -> put_ColorDepth(This,pcolorDepth) ) + +#define IMsRdpClient2_get_ColorDepth(This,pcolorDepth) \ + ( (This)->lpVtbl -> get_ColorDepth(This,pcolorDepth) ) + +#define IMsRdpClient2_get_AdvancedSettings2(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings2(This,ppAdvSettings) ) + +#define IMsRdpClient2_get_SecuredSettings2(This,ppSecuredSettings) \ + ( (This)->lpVtbl -> get_SecuredSettings2(This,ppSecuredSettings) ) + +#define IMsRdpClient2_get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) \ + ( (This)->lpVtbl -> get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) ) + +#define IMsRdpClient2_put_FullScreen(This,pfFullScreen) \ + ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) ) + +#define IMsRdpClient2_get_FullScreen(This,pfFullScreen) \ + ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) ) + +#define IMsRdpClient2_SetVirtualChannelOptions(This,chanName,chanOptions) \ + ( (This)->lpVtbl -> SetVirtualChannelOptions(This,chanName,chanOptions) ) + +#define IMsRdpClient2_GetVirtualChannelOptions(This,chanName,pChanOptions) \ + ( (This)->lpVtbl -> GetVirtualChannelOptions(This,chanName,pChanOptions) ) + +#define IMsRdpClient2_RequestClose(This,pCloseStatus) \ + ( (This)->lpVtbl -> RequestClose(This,pCloseStatus) ) + + +#define IMsRdpClient2_get_AdvancedSettings3(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings3(This,ppAdvSettings) ) + +#define IMsRdpClient2_put_ConnectedStatusText(This,pConnectedStatusText) \ + ( (This)->lpVtbl -> put_ConnectedStatusText(This,pConnectedStatusText) ) + +#define IMsRdpClient2_get_ConnectedStatusText(This,pConnectedStatusText) \ + ( (This)->lpVtbl -> get_ConnectedStatusText(This,pConnectedStatusText) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IMsRdpClient2_INTERFACE_DEFINED__ */ + + +#ifndef __IMsRdpClient3_INTERFACE_DEFINED__ +#define __IMsRdpClient3_INTERFACE_DEFINED__ + +/* interface IMsRdpClient3 */ +/* [object][oleautomation][dual][uuid] */ + + +EXTERN_C const IID IID_IMsRdpClient3; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("91B7CBC5-A72E-4FA0-9300-D647D7E897FF") + IMsRdpClient3 : public IMsRdpClient2 + { + public: + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AdvancedSettings4( + /* [retval][out] */ IMsRdpClientAdvancedSettings3 **ppAdvSettings) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsRdpClient3Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsRdpClient3 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsRdpClient3 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsRdpClient3 * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsRdpClient3 * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsRdpClient3 * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsRdpClient3 * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsRdpClient3 * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Server )( + IMsRdpClient3 * This, + /* [in] */ BSTR pServer); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Server )( + IMsRdpClient3 * This, + /* [retval][out] */ BSTR *pServer); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Domain )( + IMsRdpClient3 * This, + /* [in] */ BSTR pDomain); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Domain )( + IMsRdpClient3 * This, + /* [retval][out] */ BSTR *pDomain); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UserName )( + IMsRdpClient3 * This, + /* [in] */ BSTR pUserName); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )( + IMsRdpClient3 * This, + /* [retval][out] */ BSTR *pUserName); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisconnectedText )( + IMsRdpClient3 * This, + /* [in] */ BSTR pDisconnectedText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisconnectedText )( + IMsRdpClient3 * This, + /* [retval][out] */ BSTR *pDisconnectedText); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectingText )( + IMsRdpClient3 * This, + /* [in] */ BSTR pConnectingText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectingText )( + IMsRdpClient3 * This, + /* [retval][out] */ BSTR *pConnectingText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Connected )( + IMsRdpClient3 * This, + /* [retval][out] */ short *pIsConnected); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopWidth )( + IMsRdpClient3 * This, + /* [in] */ long pVal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopWidth )( + IMsRdpClient3 * This, + /* [retval][out] */ long *pVal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopHeight )( + IMsRdpClient3 * This, + /* [in] */ long pVal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopHeight )( + IMsRdpClient3 * This, + /* [retval][out] */ long *pVal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartConnected )( + IMsRdpClient3 * This, + /* [in] */ long pfStartConnected); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartConnected )( + IMsRdpClient3 * This, + /* [retval][out] */ long *pfStartConnected); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalScrollBarVisible )( + IMsRdpClient3 * This, + /* [retval][out] */ long *pfHScrollVisible); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalScrollBarVisible )( + IMsRdpClient3 * This, + /* [retval][out] */ long *pfVScrollVisible); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreenTitle )( + IMsRdpClient3 * This, + /* [in] */ BSTR rhs); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CipherStrength )( + IMsRdpClient3 * This, + /* [retval][out] */ long *pCipherStrength); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )( + IMsRdpClient3 * This, + /* [retval][out] */ BSTR *pVersion); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettingsEnabled )( + IMsRdpClient3 * This, + /* [retval][out] */ long *pSecuredSettingsEnabled); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings )( + IMsRdpClient3 * This, + /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings )( + IMsRdpClient3 * This, + /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings); + + /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Debugger )( + IMsRdpClient3 * This, + /* [retval][out] */ IMsTscDebug **ppDebugger); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Connect )( + IMsRdpClient3 * This); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( + IMsRdpClient3 * This); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateVirtualChannels )( + IMsRdpClient3 * This, + /* [in] */ BSTR newVal); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *SendOnVirtualChannel )( + IMsRdpClient3 * This, + /* [in] */ BSTR chanName, + /* [in] */ BSTR ChanData); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ColorDepth )( + IMsRdpClient3 * This, + /* [in] */ long pcolorDepth); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ColorDepth )( + IMsRdpClient3 * This, + /* [retval][out] */ long *pcolorDepth); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings2 )( + IMsRdpClient3 * This, + /* [retval][out] */ IMsRdpClientAdvancedSettings **ppAdvSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings2 )( + IMsRdpClient3 * This, + /* [retval][out] */ IMsRdpClientSecuredSettings **ppSecuredSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtendedDisconnectReason )( + IMsRdpClient3 * This, + /* [retval][out] */ ExtendedDisconnectReasonCode *pExtendedDisconnectReason); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )( + IMsRdpClient3 * This, + /* [in] */ VARIANT_BOOL pfFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )( + IMsRdpClient3 * This, + /* [retval][out] */ VARIANT_BOOL *pfFullScreen); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetVirtualChannelOptions )( + IMsRdpClient3 * This, + /* [in] */ BSTR chanName, + /* [in] */ long chanOptions); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetVirtualChannelOptions )( + IMsRdpClient3 * This, + /* [in] */ BSTR chanName, + /* [retval][out] */ long *pChanOptions); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *RequestClose )( + IMsRdpClient3 * This, + /* [retval][out] */ ControlCloseStatus *pCloseStatus); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings3 )( + IMsRdpClient3 * This, + /* [retval][out] */ IMsRdpClientAdvancedSettings2 **ppAdvSettings); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectedStatusText )( + IMsRdpClient3 * This, + /* [in] */ BSTR pConnectedStatusText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectedStatusText )( + IMsRdpClient3 * This, + /* [retval][out] */ BSTR *pConnectedStatusText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings4 )( + IMsRdpClient3 * This, + /* [retval][out] */ IMsRdpClientAdvancedSettings3 **ppAdvSettings); + + END_INTERFACE + } IMsRdpClient3Vtbl; + + interface IMsRdpClient3 + { + CONST_VTBL struct IMsRdpClient3Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsRdpClient3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsRdpClient3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsRdpClient3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsRdpClient3_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsRdpClient3_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsRdpClient3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsRdpClient3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IMsRdpClient3_put_Server(This,pServer) \ + ( (This)->lpVtbl -> put_Server(This,pServer) ) + +#define IMsRdpClient3_get_Server(This,pServer) \ + ( (This)->lpVtbl -> get_Server(This,pServer) ) + +#define IMsRdpClient3_put_Domain(This,pDomain) \ + ( (This)->lpVtbl -> put_Domain(This,pDomain) ) + +#define IMsRdpClient3_get_Domain(This,pDomain) \ + ( (This)->lpVtbl -> get_Domain(This,pDomain) ) + +#define IMsRdpClient3_put_UserName(This,pUserName) \ + ( (This)->lpVtbl -> put_UserName(This,pUserName) ) + +#define IMsRdpClient3_get_UserName(This,pUserName) \ + ( (This)->lpVtbl -> get_UserName(This,pUserName) ) + +#define IMsRdpClient3_put_DisconnectedText(This,pDisconnectedText) \ + ( (This)->lpVtbl -> put_DisconnectedText(This,pDisconnectedText) ) + +#define IMsRdpClient3_get_DisconnectedText(This,pDisconnectedText) \ + ( (This)->lpVtbl -> get_DisconnectedText(This,pDisconnectedText) ) + +#define IMsRdpClient3_put_ConnectingText(This,pConnectingText) \ + ( (This)->lpVtbl -> put_ConnectingText(This,pConnectingText) ) + +#define IMsRdpClient3_get_ConnectingText(This,pConnectingText) \ + ( (This)->lpVtbl -> get_ConnectingText(This,pConnectingText) ) + +#define IMsRdpClient3_get_Connected(This,pIsConnected) \ + ( (This)->lpVtbl -> get_Connected(This,pIsConnected) ) + +#define IMsRdpClient3_put_DesktopWidth(This,pVal) \ + ( (This)->lpVtbl -> put_DesktopWidth(This,pVal) ) + +#define IMsRdpClient3_get_DesktopWidth(This,pVal) \ + ( (This)->lpVtbl -> get_DesktopWidth(This,pVal) ) + +#define IMsRdpClient3_put_DesktopHeight(This,pVal) \ + ( (This)->lpVtbl -> put_DesktopHeight(This,pVal) ) + +#define IMsRdpClient3_get_DesktopHeight(This,pVal) \ + ( (This)->lpVtbl -> get_DesktopHeight(This,pVal) ) + +#define IMsRdpClient3_put_StartConnected(This,pfStartConnected) \ + ( (This)->lpVtbl -> put_StartConnected(This,pfStartConnected) ) + +#define IMsRdpClient3_get_StartConnected(This,pfStartConnected) \ + ( (This)->lpVtbl -> get_StartConnected(This,pfStartConnected) ) + +#define IMsRdpClient3_get_HorizontalScrollBarVisible(This,pfHScrollVisible) \ + ( (This)->lpVtbl -> get_HorizontalScrollBarVisible(This,pfHScrollVisible) ) + +#define IMsRdpClient3_get_VerticalScrollBarVisible(This,pfVScrollVisible) \ + ( (This)->lpVtbl -> get_VerticalScrollBarVisible(This,pfVScrollVisible) ) + +#define IMsRdpClient3_put_FullScreenTitle(This,rhs) \ + ( (This)->lpVtbl -> put_FullScreenTitle(This,rhs) ) + +#define IMsRdpClient3_get_CipherStrength(This,pCipherStrength) \ + ( (This)->lpVtbl -> get_CipherStrength(This,pCipherStrength) ) + +#define IMsRdpClient3_get_Version(This,pVersion) \ + ( (This)->lpVtbl -> get_Version(This,pVersion) ) + +#define IMsRdpClient3_get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) \ + ( (This)->lpVtbl -> get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) ) + +#define IMsRdpClient3_get_SecuredSettings(This,ppSecuredSettings) \ + ( (This)->lpVtbl -> get_SecuredSettings(This,ppSecuredSettings) ) + +#define IMsRdpClient3_get_AdvancedSettings(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings(This,ppAdvSettings) ) + +#define IMsRdpClient3_get_Debugger(This,ppDebugger) \ + ( (This)->lpVtbl -> get_Debugger(This,ppDebugger) ) + +#define IMsRdpClient3_Connect(This) \ + ( (This)->lpVtbl -> Connect(This) ) + +#define IMsRdpClient3_Disconnect(This) \ + ( (This)->lpVtbl -> Disconnect(This) ) + +#define IMsRdpClient3_CreateVirtualChannels(This,newVal) \ + ( (This)->lpVtbl -> CreateVirtualChannels(This,newVal) ) + +#define IMsRdpClient3_SendOnVirtualChannel(This,chanName,ChanData) \ + ( (This)->lpVtbl -> SendOnVirtualChannel(This,chanName,ChanData) ) + + +#define IMsRdpClient3_put_ColorDepth(This,pcolorDepth) \ + ( (This)->lpVtbl -> put_ColorDepth(This,pcolorDepth) ) + +#define IMsRdpClient3_get_ColorDepth(This,pcolorDepth) \ + ( (This)->lpVtbl -> get_ColorDepth(This,pcolorDepth) ) + +#define IMsRdpClient3_get_AdvancedSettings2(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings2(This,ppAdvSettings) ) + +#define IMsRdpClient3_get_SecuredSettings2(This,ppSecuredSettings) \ + ( (This)->lpVtbl -> get_SecuredSettings2(This,ppSecuredSettings) ) + +#define IMsRdpClient3_get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) \ + ( (This)->lpVtbl -> get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) ) + +#define IMsRdpClient3_put_FullScreen(This,pfFullScreen) \ + ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) ) + +#define IMsRdpClient3_get_FullScreen(This,pfFullScreen) \ + ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) ) + +#define IMsRdpClient3_SetVirtualChannelOptions(This,chanName,chanOptions) \ + ( (This)->lpVtbl -> SetVirtualChannelOptions(This,chanName,chanOptions) ) + +#define IMsRdpClient3_GetVirtualChannelOptions(This,chanName,pChanOptions) \ + ( (This)->lpVtbl -> GetVirtualChannelOptions(This,chanName,pChanOptions) ) + +#define IMsRdpClient3_RequestClose(This,pCloseStatus) \ + ( (This)->lpVtbl -> RequestClose(This,pCloseStatus) ) + + +#define IMsRdpClient3_get_AdvancedSettings3(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings3(This,ppAdvSettings) ) + +#define IMsRdpClient3_put_ConnectedStatusText(This,pConnectedStatusText) \ + ( (This)->lpVtbl -> put_ConnectedStatusText(This,pConnectedStatusText) ) + +#define IMsRdpClient3_get_ConnectedStatusText(This,pConnectedStatusText) \ + ( (This)->lpVtbl -> get_ConnectedStatusText(This,pConnectedStatusText) ) + + +#define IMsRdpClient3_get_AdvancedSettings4(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings4(This,ppAdvSettings) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IMsRdpClient3_INTERFACE_DEFINED__ */ + + +#ifndef __IMsRdpClient4_INTERFACE_DEFINED__ +#define __IMsRdpClient4_INTERFACE_DEFINED__ + +/* interface IMsRdpClient4 */ +/* [object][oleautomation][dual][uuid] */ + + +EXTERN_C const IID IID_IMsRdpClient4; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("095E0738-D97D-488B-B9F6-DD0E8D66C0DE") + IMsRdpClient4 : public IMsRdpClient3 + { + public: + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AdvancedSettings5( + /* [retval][out] */ IMsRdpClientAdvancedSettings4 **ppAdvSettings5) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsRdpClient4Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsRdpClient4 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsRdpClient4 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsRdpClient4 * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsRdpClient4 * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsRdpClient4 * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsRdpClient4 * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsRdpClient4 * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Server )( + IMsRdpClient4 * This, + /* [in] */ BSTR pServer); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Server )( + IMsRdpClient4 * This, + /* [retval][out] */ BSTR *pServer); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Domain )( + IMsRdpClient4 * This, + /* [in] */ BSTR pDomain); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Domain )( + IMsRdpClient4 * This, + /* [retval][out] */ BSTR *pDomain); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UserName )( + IMsRdpClient4 * This, + /* [in] */ BSTR pUserName); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )( + IMsRdpClient4 * This, + /* [retval][out] */ BSTR *pUserName); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisconnectedText )( + IMsRdpClient4 * This, + /* [in] */ BSTR pDisconnectedText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisconnectedText )( + IMsRdpClient4 * This, + /* [retval][out] */ BSTR *pDisconnectedText); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectingText )( + IMsRdpClient4 * This, + /* [in] */ BSTR pConnectingText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectingText )( + IMsRdpClient4 * This, + /* [retval][out] */ BSTR *pConnectingText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Connected )( + IMsRdpClient4 * This, + /* [retval][out] */ short *pIsConnected); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopWidth )( + IMsRdpClient4 * This, + /* [in] */ long pVal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopWidth )( + IMsRdpClient4 * This, + /* [retval][out] */ long *pVal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopHeight )( + IMsRdpClient4 * This, + /* [in] */ long pVal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopHeight )( + IMsRdpClient4 * This, + /* [retval][out] */ long *pVal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartConnected )( + IMsRdpClient4 * This, + /* [in] */ long pfStartConnected); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartConnected )( + IMsRdpClient4 * This, + /* [retval][out] */ long *pfStartConnected); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalScrollBarVisible )( + IMsRdpClient4 * This, + /* [retval][out] */ long *pfHScrollVisible); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalScrollBarVisible )( + IMsRdpClient4 * This, + /* [retval][out] */ long *pfVScrollVisible); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreenTitle )( + IMsRdpClient4 * This, + /* [in] */ BSTR rhs); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CipherStrength )( + IMsRdpClient4 * This, + /* [retval][out] */ long *pCipherStrength); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )( + IMsRdpClient4 * This, + /* [retval][out] */ BSTR *pVersion); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettingsEnabled )( + IMsRdpClient4 * This, + /* [retval][out] */ long *pSecuredSettingsEnabled); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings )( + IMsRdpClient4 * This, + /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings )( + IMsRdpClient4 * This, + /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings); + + /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Debugger )( + IMsRdpClient4 * This, + /* [retval][out] */ IMsTscDebug **ppDebugger); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Connect )( + IMsRdpClient4 * This); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( + IMsRdpClient4 * This); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateVirtualChannels )( + IMsRdpClient4 * This, + /* [in] */ BSTR newVal); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *SendOnVirtualChannel )( + IMsRdpClient4 * This, + /* [in] */ BSTR chanName, + /* [in] */ BSTR ChanData); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ColorDepth )( + IMsRdpClient4 * This, + /* [in] */ long pcolorDepth); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ColorDepth )( + IMsRdpClient4 * This, + /* [retval][out] */ long *pcolorDepth); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings2 )( + IMsRdpClient4 * This, + /* [retval][out] */ IMsRdpClientAdvancedSettings **ppAdvSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings2 )( + IMsRdpClient4 * This, + /* [retval][out] */ IMsRdpClientSecuredSettings **ppSecuredSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtendedDisconnectReason )( + IMsRdpClient4 * This, + /* [retval][out] */ ExtendedDisconnectReasonCode *pExtendedDisconnectReason); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )( + IMsRdpClient4 * This, + /* [in] */ VARIANT_BOOL pfFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )( + IMsRdpClient4 * This, + /* [retval][out] */ VARIANT_BOOL *pfFullScreen); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetVirtualChannelOptions )( + IMsRdpClient4 * This, + /* [in] */ BSTR chanName, + /* [in] */ long chanOptions); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetVirtualChannelOptions )( + IMsRdpClient4 * This, + /* [in] */ BSTR chanName, + /* [retval][out] */ long *pChanOptions); + + /* [id] */ HRESULT ( STDMETHODCALLTYPE *RequestClose )( + IMsRdpClient4 * This, + /* [retval][out] */ ControlCloseStatus *pCloseStatus); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings3 )( + IMsRdpClient4 * This, + /* [retval][out] */ IMsRdpClientAdvancedSettings2 **ppAdvSettings); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectedStatusText )( + IMsRdpClient4 * This, + /* [in] */ BSTR pConnectedStatusText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectedStatusText )( + IMsRdpClient4 * This, + /* [retval][out] */ BSTR *pConnectedStatusText); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings4 )( + IMsRdpClient4 * This, + /* [retval][out] */ IMsRdpClientAdvancedSettings3 **ppAdvSettings); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings5 )( + IMsRdpClient4 * This, + /* [retval][out] */ IMsRdpClientAdvancedSettings4 **ppAdvSettings5); + + END_INTERFACE + } IMsRdpClient4Vtbl; + + interface IMsRdpClient4 + { + CONST_VTBL struct IMsRdpClient4Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsRdpClient4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsRdpClient4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsRdpClient4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsRdpClient4_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsRdpClient4_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsRdpClient4_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsRdpClient4_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IMsRdpClient4_put_Server(This,pServer) \ + ( (This)->lpVtbl -> put_Server(This,pServer) ) + +#define IMsRdpClient4_get_Server(This,pServer) \ + ( (This)->lpVtbl -> get_Server(This,pServer) ) + +#define IMsRdpClient4_put_Domain(This,pDomain) \ + ( (This)->lpVtbl -> put_Domain(This,pDomain) ) + +#define IMsRdpClient4_get_Domain(This,pDomain) \ + ( (This)->lpVtbl -> get_Domain(This,pDomain) ) + +#define IMsRdpClient4_put_UserName(This,pUserName) \ + ( (This)->lpVtbl -> put_UserName(This,pUserName) ) + +#define IMsRdpClient4_get_UserName(This,pUserName) \ + ( (This)->lpVtbl -> get_UserName(This,pUserName) ) + +#define IMsRdpClient4_put_DisconnectedText(This,pDisconnectedText) \ + ( (This)->lpVtbl -> put_DisconnectedText(This,pDisconnectedText) ) + +#define IMsRdpClient4_get_DisconnectedText(This,pDisconnectedText) \ + ( (This)->lpVtbl -> get_DisconnectedText(This,pDisconnectedText) ) + +#define IMsRdpClient4_put_ConnectingText(This,pConnectingText) \ + ( (This)->lpVtbl -> put_ConnectingText(This,pConnectingText) ) + +#define IMsRdpClient4_get_ConnectingText(This,pConnectingText) \ + ( (This)->lpVtbl -> get_ConnectingText(This,pConnectingText) ) + +#define IMsRdpClient4_get_Connected(This,pIsConnected) \ + ( (This)->lpVtbl -> get_Connected(This,pIsConnected) ) + +#define IMsRdpClient4_put_DesktopWidth(This,pVal) \ + ( (This)->lpVtbl -> put_DesktopWidth(This,pVal) ) + +#define IMsRdpClient4_get_DesktopWidth(This,pVal) \ + ( (This)->lpVtbl -> get_DesktopWidth(This,pVal) ) + +#define IMsRdpClient4_put_DesktopHeight(This,pVal) \ + ( (This)->lpVtbl -> put_DesktopHeight(This,pVal) ) + +#define IMsRdpClient4_get_DesktopHeight(This,pVal) \ + ( (This)->lpVtbl -> get_DesktopHeight(This,pVal) ) + +#define IMsRdpClient4_put_StartConnected(This,pfStartConnected) \ + ( (This)->lpVtbl -> put_StartConnected(This,pfStartConnected) ) + +#define IMsRdpClient4_get_StartConnected(This,pfStartConnected) \ + ( (This)->lpVtbl -> get_StartConnected(This,pfStartConnected) ) + +#define IMsRdpClient4_get_HorizontalScrollBarVisible(This,pfHScrollVisible) \ + ( (This)->lpVtbl -> get_HorizontalScrollBarVisible(This,pfHScrollVisible) ) + +#define IMsRdpClient4_get_VerticalScrollBarVisible(This,pfVScrollVisible) \ + ( (This)->lpVtbl -> get_VerticalScrollBarVisible(This,pfVScrollVisible) ) + +#define IMsRdpClient4_put_FullScreenTitle(This,rhs) \ + ( (This)->lpVtbl -> put_FullScreenTitle(This,rhs) ) + +#define IMsRdpClient4_get_CipherStrength(This,pCipherStrength) \ + ( (This)->lpVtbl -> get_CipherStrength(This,pCipherStrength) ) + +#define IMsRdpClient4_get_Version(This,pVersion) \ + ( (This)->lpVtbl -> get_Version(This,pVersion) ) + +#define IMsRdpClient4_get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) \ + ( (This)->lpVtbl -> get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) ) + +#define IMsRdpClient4_get_SecuredSettings(This,ppSecuredSettings) \ + ( (This)->lpVtbl -> get_SecuredSettings(This,ppSecuredSettings) ) + +#define IMsRdpClient4_get_AdvancedSettings(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings(This,ppAdvSettings) ) + +#define IMsRdpClient4_get_Debugger(This,ppDebugger) \ + ( (This)->lpVtbl -> get_Debugger(This,ppDebugger) ) + +#define IMsRdpClient4_Connect(This) \ + ( (This)->lpVtbl -> Connect(This) ) + +#define IMsRdpClient4_Disconnect(This) \ + ( (This)->lpVtbl -> Disconnect(This) ) + +#define IMsRdpClient4_CreateVirtualChannels(This,newVal) \ + ( (This)->lpVtbl -> CreateVirtualChannels(This,newVal) ) + +#define IMsRdpClient4_SendOnVirtualChannel(This,chanName,ChanData) \ + ( (This)->lpVtbl -> SendOnVirtualChannel(This,chanName,ChanData) ) + + +#define IMsRdpClient4_put_ColorDepth(This,pcolorDepth) \ + ( (This)->lpVtbl -> put_ColorDepth(This,pcolorDepth) ) + +#define IMsRdpClient4_get_ColorDepth(This,pcolorDepth) \ + ( (This)->lpVtbl -> get_ColorDepth(This,pcolorDepth) ) + +#define IMsRdpClient4_get_AdvancedSettings2(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings2(This,ppAdvSettings) ) + +#define IMsRdpClient4_get_SecuredSettings2(This,ppSecuredSettings) \ + ( (This)->lpVtbl -> get_SecuredSettings2(This,ppSecuredSettings) ) + +#define IMsRdpClient4_get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) \ + ( (This)->lpVtbl -> get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) ) + +#define IMsRdpClient4_put_FullScreen(This,pfFullScreen) \ + ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) ) + +#define IMsRdpClient4_get_FullScreen(This,pfFullScreen) \ + ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) ) + +#define IMsRdpClient4_SetVirtualChannelOptions(This,chanName,chanOptions) \ + ( (This)->lpVtbl -> SetVirtualChannelOptions(This,chanName,chanOptions) ) + +#define IMsRdpClient4_GetVirtualChannelOptions(This,chanName,pChanOptions) \ + ( (This)->lpVtbl -> GetVirtualChannelOptions(This,chanName,pChanOptions) ) + +#define IMsRdpClient4_RequestClose(This,pCloseStatus) \ + ( (This)->lpVtbl -> RequestClose(This,pCloseStatus) ) + + +#define IMsRdpClient4_get_AdvancedSettings3(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings3(This,ppAdvSettings) ) + +#define IMsRdpClient4_put_ConnectedStatusText(This,pConnectedStatusText) \ + ( (This)->lpVtbl -> put_ConnectedStatusText(This,pConnectedStatusText) ) + +#define IMsRdpClient4_get_ConnectedStatusText(This,pConnectedStatusText) \ + ( (This)->lpVtbl -> get_ConnectedStatusText(This,pConnectedStatusText) ) + + +#define IMsRdpClient4_get_AdvancedSettings4(This,ppAdvSettings) \ + ( (This)->lpVtbl -> get_AdvancedSettings4(This,ppAdvSettings) ) + + +#define IMsRdpClient4_get_AdvancedSettings5(This,ppAdvSettings5) \ + ( (This)->lpVtbl -> get_AdvancedSettings5(This,ppAdvSettings5) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IMsRdpClient4_INTERFACE_DEFINED__ */ + + +#ifndef __IMsTscNonScriptable_INTERFACE_DEFINED__ +#define __IMsTscNonScriptable_INTERFACE_DEFINED__ + +/* interface IMsTscNonScriptable */ +/* [object][uuid] */ + + +EXTERN_C const IID IID_IMsTscNonScriptable; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("C1E6743A-41C1-4A74-832A-0DD06C1C7A0E") + IMsTscNonScriptable : public IUnknown + { + public: + virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ClearTextPassword( + /* [in] */ BSTR rhs) = 0; + + virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PortablePassword( + /* [in] */ BSTR pPortablePass) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PortablePassword( + /* [retval][out] */ BSTR *pPortablePass) = 0; + + virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PortableSalt( + /* [in] */ BSTR pPortableSalt) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PortableSalt( + /* [retval][out] */ BSTR *pPortableSalt) = 0; + + virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_BinaryPassword( + /* [in] */ BSTR pBinaryPassword) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BinaryPassword( + /* [retval][out] */ BSTR *pBinaryPassword) = 0; + + virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_BinarySalt( + /* [in] */ BSTR pSalt) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BinarySalt( + /* [retval][out] */ BSTR *pSalt) = 0; + + virtual HRESULT STDMETHODCALLTYPE ResetPassword( void) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsTscNonScriptableVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsTscNonScriptable * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsTscNonScriptable * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsTscNonScriptable * This); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( + IMsTscNonScriptable * This, + /* [in] */ BSTR rhs); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortablePassword )( + IMsTscNonScriptable * This, + /* [in] */ BSTR pPortablePass); + + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortablePassword )( + IMsTscNonScriptable * This, + /* [retval][out] */ BSTR *pPortablePass); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortableSalt )( + IMsTscNonScriptable * This, + /* [in] */ BSTR pPortableSalt); + + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortableSalt )( + IMsTscNonScriptable * This, + /* [retval][out] */ BSTR *pPortableSalt); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinaryPassword )( + IMsTscNonScriptable * This, + /* [in] */ BSTR pBinaryPassword); + + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinaryPassword )( + IMsTscNonScriptable * This, + /* [retval][out] */ BSTR *pBinaryPassword); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinarySalt )( + IMsTscNonScriptable * This, + /* [in] */ BSTR pSalt); + + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinarySalt )( + IMsTscNonScriptable * This, + /* [retval][out] */ BSTR *pSalt); + + HRESULT ( STDMETHODCALLTYPE *ResetPassword )( + IMsTscNonScriptable * This); + + END_INTERFACE + } IMsTscNonScriptableVtbl; + + interface IMsTscNonScriptable + { + CONST_VTBL struct IMsTscNonScriptableVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsTscNonScriptable_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsTscNonScriptable_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsTscNonScriptable_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsTscNonScriptable_put_ClearTextPassword(This,rhs) \ + ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) + +#define IMsTscNonScriptable_put_PortablePassword(This,pPortablePass) \ + ( (This)->lpVtbl -> put_PortablePassword(This,pPortablePass) ) + +#define IMsTscNonScriptable_get_PortablePassword(This,pPortablePass) \ + ( (This)->lpVtbl -> get_PortablePassword(This,pPortablePass) ) + +#define IMsTscNonScriptable_put_PortableSalt(This,pPortableSalt) \ + ( (This)->lpVtbl -> put_PortableSalt(This,pPortableSalt) ) + +#define IMsTscNonScriptable_get_PortableSalt(This,pPortableSalt) \ + ( (This)->lpVtbl -> get_PortableSalt(This,pPortableSalt) ) + +#define IMsTscNonScriptable_put_BinaryPassword(This,pBinaryPassword) \ + ( (This)->lpVtbl -> put_BinaryPassword(This,pBinaryPassword) ) + +#define IMsTscNonScriptable_get_BinaryPassword(This,pBinaryPassword) \ + ( (This)->lpVtbl -> get_BinaryPassword(This,pBinaryPassword) ) + +#define IMsTscNonScriptable_put_BinarySalt(This,pSalt) \ + ( (This)->lpVtbl -> put_BinarySalt(This,pSalt) ) + +#define IMsTscNonScriptable_get_BinarySalt(This,pSalt) \ + ( (This)->lpVtbl -> get_BinarySalt(This,pSalt) ) + +#define IMsTscNonScriptable_ResetPassword(This) \ + ( (This)->lpVtbl -> ResetPassword(This) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IMsTscNonScriptable_INTERFACE_DEFINED__ */ + + +#ifndef __IMsRdpClientNonScriptable_INTERFACE_DEFINED__ +#define __IMsRdpClientNonScriptable_INTERFACE_DEFINED__ + +/* interface IMsRdpClientNonScriptable */ +/* [object][uuid] */ + + +EXTERN_C const IID IID_IMsRdpClientNonScriptable; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("2F079C4C-87B2-4AFD-97AB-20CDB43038AE") + IMsRdpClientNonScriptable : public IMsTscNonScriptable + { + public: + virtual HRESULT STDMETHODCALLTYPE NotifyRedirectDeviceChange( + /* [in] */ UINT_PTR wParam, + /* [in] */ LONG_PTR lParam) = 0; + + virtual HRESULT STDMETHODCALLTYPE SendKeys( + /* [in] */ long numKeys, + /* [in] */ VARIANT_BOOL *pbArrayKeyUp, + /* [in] */ long *plKeyData) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsRdpClientNonScriptableVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsRdpClientNonScriptable * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsRdpClientNonScriptable * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsRdpClientNonScriptable * This); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( + IMsRdpClientNonScriptable * This, + /* [in] */ BSTR rhs); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortablePassword )( + IMsRdpClientNonScriptable * This, + /* [in] */ BSTR pPortablePass); + + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortablePassword )( + IMsRdpClientNonScriptable * This, + /* [retval][out] */ BSTR *pPortablePass); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortableSalt )( + IMsRdpClientNonScriptable * This, + /* [in] */ BSTR pPortableSalt); + + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortableSalt )( + IMsRdpClientNonScriptable * This, + /* [retval][out] */ BSTR *pPortableSalt); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinaryPassword )( + IMsRdpClientNonScriptable * This, + /* [in] */ BSTR pBinaryPassword); + + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinaryPassword )( + IMsRdpClientNonScriptable * This, + /* [retval][out] */ BSTR *pBinaryPassword); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinarySalt )( + IMsRdpClientNonScriptable * This, + /* [in] */ BSTR pSalt); + + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinarySalt )( + IMsRdpClientNonScriptable * This, + /* [retval][out] */ BSTR *pSalt); + + HRESULT ( STDMETHODCALLTYPE *ResetPassword )( + IMsRdpClientNonScriptable * This); + + HRESULT ( STDMETHODCALLTYPE *NotifyRedirectDeviceChange )( + IMsRdpClientNonScriptable * This, + /* [in] */ UINT_PTR wParam, + /* [in] */ LONG_PTR lParam); + + HRESULT ( STDMETHODCALLTYPE *SendKeys )( + IMsRdpClientNonScriptable * This, + /* [in] */ long numKeys, + /* [in] */ VARIANT_BOOL *pbArrayKeyUp, + /* [in] */ long *plKeyData); + + END_INTERFACE + } IMsRdpClientNonScriptableVtbl; + + interface IMsRdpClientNonScriptable + { + CONST_VTBL struct IMsRdpClientNonScriptableVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsRdpClientNonScriptable_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsRdpClientNonScriptable_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsRdpClientNonScriptable_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsRdpClientNonScriptable_put_ClearTextPassword(This,rhs) \ + ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) + +#define IMsRdpClientNonScriptable_put_PortablePassword(This,pPortablePass) \ + ( (This)->lpVtbl -> put_PortablePassword(This,pPortablePass) ) + +#define IMsRdpClientNonScriptable_get_PortablePassword(This,pPortablePass) \ + ( (This)->lpVtbl -> get_PortablePassword(This,pPortablePass) ) + +#define IMsRdpClientNonScriptable_put_PortableSalt(This,pPortableSalt) \ + ( (This)->lpVtbl -> put_PortableSalt(This,pPortableSalt) ) + +#define IMsRdpClientNonScriptable_get_PortableSalt(This,pPortableSalt) \ + ( (This)->lpVtbl -> get_PortableSalt(This,pPortableSalt) ) + +#define IMsRdpClientNonScriptable_put_BinaryPassword(This,pBinaryPassword) \ + ( (This)->lpVtbl -> put_BinaryPassword(This,pBinaryPassword) ) + +#define IMsRdpClientNonScriptable_get_BinaryPassword(This,pBinaryPassword) \ + ( (This)->lpVtbl -> get_BinaryPassword(This,pBinaryPassword) ) + +#define IMsRdpClientNonScriptable_put_BinarySalt(This,pSalt) \ + ( (This)->lpVtbl -> put_BinarySalt(This,pSalt) ) + +#define IMsRdpClientNonScriptable_get_BinarySalt(This,pSalt) \ + ( (This)->lpVtbl -> get_BinarySalt(This,pSalt) ) + +#define IMsRdpClientNonScriptable_ResetPassword(This) \ + ( (This)->lpVtbl -> ResetPassword(This) ) + + +#define IMsRdpClientNonScriptable_NotifyRedirectDeviceChange(This,wParam,lParam) \ + ( (This)->lpVtbl -> NotifyRedirectDeviceChange(This,wParam,lParam) ) + +#define IMsRdpClientNonScriptable_SendKeys(This,numKeys,pbArrayKeyUp,plKeyData) \ + ( (This)->lpVtbl -> SendKeys(This,numKeys,pbArrayKeyUp,plKeyData) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IMsRdpClientNonScriptable_INTERFACE_DEFINED__ */ + + +#ifndef __IMsRdpClientNonScriptable2_INTERFACE_DEFINED__ +#define __IMsRdpClientNonScriptable2_INTERFACE_DEFINED__ + +/* interface IMsRdpClientNonScriptable2 */ +/* [object][uuid] */ + + +EXTERN_C const IID IID_IMsRdpClientNonScriptable2; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("17A5E535-4072-4FA4-AF32-C8D0D47345E9") + IMsRdpClientNonScriptable2 : public IMsRdpClientNonScriptable + { + public: + virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_UIParentWindowHandle( + /* [in] */ HWND phwndUIParentWindowHandle) = 0; + + virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_UIParentWindowHandle( + /* [retval][out] */ HWND *phwndUIParentWindowHandle) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsRdpClientNonScriptable2Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsRdpClientNonScriptable2 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsRdpClientNonScriptable2 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsRdpClientNonScriptable2 * This); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( + IMsRdpClientNonScriptable2 * This, + /* [in] */ BSTR rhs); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortablePassword )( + IMsRdpClientNonScriptable2 * This, + /* [in] */ BSTR pPortablePass); + + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortablePassword )( + IMsRdpClientNonScriptable2 * This, + /* [retval][out] */ BSTR *pPortablePass); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortableSalt )( + IMsRdpClientNonScriptable2 * This, + /* [in] */ BSTR pPortableSalt); + + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortableSalt )( + IMsRdpClientNonScriptable2 * This, + /* [retval][out] */ BSTR *pPortableSalt); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinaryPassword )( + IMsRdpClientNonScriptable2 * This, + /* [in] */ BSTR pBinaryPassword); + + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinaryPassword )( + IMsRdpClientNonScriptable2 * This, + /* [retval][out] */ BSTR *pBinaryPassword); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinarySalt )( + IMsRdpClientNonScriptable2 * This, + /* [in] */ BSTR pSalt); + + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinarySalt )( + IMsRdpClientNonScriptable2 * This, + /* [retval][out] */ BSTR *pSalt); + + HRESULT ( STDMETHODCALLTYPE *ResetPassword )( + IMsRdpClientNonScriptable2 * This); + + HRESULT ( STDMETHODCALLTYPE *NotifyRedirectDeviceChange )( + IMsRdpClientNonScriptable2 * This, + /* [in] */ UINT_PTR wParam, + /* [in] */ LONG_PTR lParam); + + HRESULT ( STDMETHODCALLTYPE *SendKeys )( + IMsRdpClientNonScriptable2 * This, + /* [in] */ long numKeys, + /* [in] */ VARIANT_BOOL *pbArrayKeyUp, + /* [in] */ long *plKeyData); + + /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_UIParentWindowHandle )( + IMsRdpClientNonScriptable2 * This, + /* [in] */ HWND phwndUIParentWindowHandle); + + /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_UIParentWindowHandle )( + IMsRdpClientNonScriptable2 * This, + /* [retval][out] */ HWND *phwndUIParentWindowHandle); + + END_INTERFACE + } IMsRdpClientNonScriptable2Vtbl; + + interface IMsRdpClientNonScriptable2 + { + CONST_VTBL struct IMsRdpClientNonScriptable2Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsRdpClientNonScriptable2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsRdpClientNonScriptable2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsRdpClientNonScriptable2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsRdpClientNonScriptable2_put_ClearTextPassword(This,rhs) \ + ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) + +#define IMsRdpClientNonScriptable2_put_PortablePassword(This,pPortablePass) \ + ( (This)->lpVtbl -> put_PortablePassword(This,pPortablePass) ) + +#define IMsRdpClientNonScriptable2_get_PortablePassword(This,pPortablePass) \ + ( (This)->lpVtbl -> get_PortablePassword(This,pPortablePass) ) + +#define IMsRdpClientNonScriptable2_put_PortableSalt(This,pPortableSalt) \ + ( (This)->lpVtbl -> put_PortableSalt(This,pPortableSalt) ) + +#define IMsRdpClientNonScriptable2_get_PortableSalt(This,pPortableSalt) \ + ( (This)->lpVtbl -> get_PortableSalt(This,pPortableSalt) ) + +#define IMsRdpClientNonScriptable2_put_BinaryPassword(This,pBinaryPassword) \ + ( (This)->lpVtbl -> put_BinaryPassword(This,pBinaryPassword) ) + +#define IMsRdpClientNonScriptable2_get_BinaryPassword(This,pBinaryPassword) \ + ( (This)->lpVtbl -> get_BinaryPassword(This,pBinaryPassword) ) + +#define IMsRdpClientNonScriptable2_put_BinarySalt(This,pSalt) \ + ( (This)->lpVtbl -> put_BinarySalt(This,pSalt) ) + +#define IMsRdpClientNonScriptable2_get_BinarySalt(This,pSalt) \ + ( (This)->lpVtbl -> get_BinarySalt(This,pSalt) ) + +#define IMsRdpClientNonScriptable2_ResetPassword(This) \ + ( (This)->lpVtbl -> ResetPassword(This) ) + + +#define IMsRdpClientNonScriptable2_NotifyRedirectDeviceChange(This,wParam,lParam) \ + ( (This)->lpVtbl -> NotifyRedirectDeviceChange(This,wParam,lParam) ) + +#define IMsRdpClientNonScriptable2_SendKeys(This,numKeys,pbArrayKeyUp,plKeyData) \ + ( (This)->lpVtbl -> SendKeys(This,numKeys,pbArrayKeyUp,plKeyData) ) + + +#define IMsRdpClientNonScriptable2_put_UIParentWindowHandle(This,phwndUIParentWindowHandle) \ + ( (This)->lpVtbl -> put_UIParentWindowHandle(This,phwndUIParentWindowHandle) ) + +#define IMsRdpClientNonScriptable2_get_UIParentWindowHandle(This,phwndUIParentWindowHandle) \ + ( (This)->lpVtbl -> get_UIParentWindowHandle(This,phwndUIParentWindowHandle) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IMsRdpClientNonScriptable2_INTERFACE_DEFINED__ */ + + +#ifndef __IMsTscAdvancedSettings_INTERFACE_DEFINED__ +#define __IMsTscAdvancedSettings_INTERFACE_DEFINED__ + +/* interface IMsTscAdvancedSettings */ +/* [object][oleautomation][dual][uuid] */ + + +EXTERN_C const IID IID_IMsTscAdvancedSettings; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("809945CC-4B3B-4A92-A6B0-DBF9B5F2EF2D") + IMsTscAdvancedSettings : public IDispatch + { + public: + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Compress( + /* [in] */ long pcompress) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Compress( + /* [retval][out] */ long *pcompress) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapPeristence( + /* [in] */ long pbitmapPeristence) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapPeristence( + /* [retval][out] */ long *pbitmapPeristence) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_allowBackgroundInput( + /* [in] */ long pallowBackgroundInput) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_allowBackgroundInput( + /* [retval][out] */ long *pallowBackgroundInput) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_KeyBoardLayoutStr( + /* [in] */ BSTR rhs) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_PluginDlls( + /* [in] */ BSTR rhs) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_IconFile( + /* [in] */ BSTR rhs) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_IconIndex( + /* [in] */ long rhs) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ContainerHandledFullScreen( + /* [in] */ long pContainerHandledFullScreen) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ContainerHandledFullScreen( + /* [retval][out] */ long *pContainerHandledFullScreen) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DisableRdpdr( + /* [in] */ long pDisableRdpdr) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DisableRdpdr( + /* [retval][out] */ long *pDisableRdpdr) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsTscAdvancedSettingsVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsTscAdvancedSettings * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsTscAdvancedSettings * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsTscAdvancedSettings * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsTscAdvancedSettings * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsTscAdvancedSettings * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsTscAdvancedSettings * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsTscAdvancedSettings * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Compress )( + IMsTscAdvancedSettings * This, + /* [in] */ long pcompress); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Compress )( + IMsTscAdvancedSettings * This, + /* [retval][out] */ long *pcompress); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPeristence )( + IMsTscAdvancedSettings * This, + /* [in] */ long pbitmapPeristence); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPeristence )( + IMsTscAdvancedSettings * This, + /* [retval][out] */ long *pbitmapPeristence); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_allowBackgroundInput )( + IMsTscAdvancedSettings * This, + /* [in] */ long pallowBackgroundInput); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_allowBackgroundInput )( + IMsTscAdvancedSettings * This, + /* [retval][out] */ long *pallowBackgroundInput); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyBoardLayoutStr )( + IMsTscAdvancedSettings * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PluginDlls )( + IMsTscAdvancedSettings * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconFile )( + IMsTscAdvancedSettings * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconIndex )( + IMsTscAdvancedSettings * This, + /* [in] */ long rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerHandledFullScreen )( + IMsTscAdvancedSettings * This, + /* [in] */ long pContainerHandledFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerHandledFullScreen )( + IMsTscAdvancedSettings * This, + /* [retval][out] */ long *pContainerHandledFullScreen); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableRdpdr )( + IMsTscAdvancedSettings * This, + /* [in] */ long pDisableRdpdr); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableRdpdr )( + IMsTscAdvancedSettings * This, + /* [retval][out] */ long *pDisableRdpdr); + + END_INTERFACE + } IMsTscAdvancedSettingsVtbl; + + interface IMsTscAdvancedSettings + { + CONST_VTBL struct IMsTscAdvancedSettingsVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsTscAdvancedSettings_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsTscAdvancedSettings_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsTscAdvancedSettings_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsTscAdvancedSettings_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsTscAdvancedSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsTscAdvancedSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsTscAdvancedSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IMsTscAdvancedSettings_put_Compress(This,pcompress) \ + ( (This)->lpVtbl -> put_Compress(This,pcompress) ) + +#define IMsTscAdvancedSettings_get_Compress(This,pcompress) \ + ( (This)->lpVtbl -> get_Compress(This,pcompress) ) + +#define IMsTscAdvancedSettings_put_BitmapPeristence(This,pbitmapPeristence) \ + ( (This)->lpVtbl -> put_BitmapPeristence(This,pbitmapPeristence) ) + +#define IMsTscAdvancedSettings_get_BitmapPeristence(This,pbitmapPeristence) \ + ( (This)->lpVtbl -> get_BitmapPeristence(This,pbitmapPeristence) ) + +#define IMsTscAdvancedSettings_put_allowBackgroundInput(This,pallowBackgroundInput) \ + ( (This)->lpVtbl -> put_allowBackgroundInput(This,pallowBackgroundInput) ) + +#define IMsTscAdvancedSettings_get_allowBackgroundInput(This,pallowBackgroundInput) \ + ( (This)->lpVtbl -> get_allowBackgroundInput(This,pallowBackgroundInput) ) + +#define IMsTscAdvancedSettings_put_KeyBoardLayoutStr(This,rhs) \ + ( (This)->lpVtbl -> put_KeyBoardLayoutStr(This,rhs) ) + +#define IMsTscAdvancedSettings_put_PluginDlls(This,rhs) \ + ( (This)->lpVtbl -> put_PluginDlls(This,rhs) ) + +#define IMsTscAdvancedSettings_put_IconFile(This,rhs) \ + ( (This)->lpVtbl -> put_IconFile(This,rhs) ) + +#define IMsTscAdvancedSettings_put_IconIndex(This,rhs) \ + ( (This)->lpVtbl -> put_IconIndex(This,rhs) ) + +#define IMsTscAdvancedSettings_put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ + ( (This)->lpVtbl -> put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) + +#define IMsTscAdvancedSettings_get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ + ( (This)->lpVtbl -> get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) + +#define IMsTscAdvancedSettings_put_DisableRdpdr(This,pDisableRdpdr) \ + ( (This)->lpVtbl -> put_DisableRdpdr(This,pDisableRdpdr) ) + +#define IMsTscAdvancedSettings_get_DisableRdpdr(This,pDisableRdpdr) \ + ( (This)->lpVtbl -> get_DisableRdpdr(This,pDisableRdpdr) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IMsTscAdvancedSettings_INTERFACE_DEFINED__ */ + + +#ifndef __IMsRdpClientAdvancedSettings_INTERFACE_DEFINED__ +#define __IMsRdpClientAdvancedSettings_INTERFACE_DEFINED__ + +/* interface IMsRdpClientAdvancedSettings */ +/* [object][oleautomation][dual][uuid] */ + + +EXTERN_C const IID IID_IMsRdpClientAdvancedSettings; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("3C65B4AB-12B3-465B-ACD4-B8DAD3BFF9E2") + IMsRdpClientAdvancedSettings : public IMsTscAdvancedSettings + { + public: + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_SmoothScroll( + /* [in] */ long psmoothScroll) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SmoothScroll( + /* [retval][out] */ long *psmoothScroll) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_AcceleratorPassthrough( + /* [in] */ long pacceleratorPassthrough) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AcceleratorPassthrough( + /* [retval][out] */ long *pacceleratorPassthrough) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ShadowBitmap( + /* [in] */ long pshadowBitmap) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ShadowBitmap( + /* [retval][out] */ long *pshadowBitmap) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_TransportType( + /* [in] */ long ptransportType) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_TransportType( + /* [retval][out] */ long *ptransportType) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_SasSequence( + /* [in] */ long psasSequence) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SasSequence( + /* [retval][out] */ long *psasSequence) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_EncryptionEnabled( + /* [in] */ long pencryptionEnabled) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_EncryptionEnabled( + /* [retval][out] */ long *pencryptionEnabled) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DedicatedTerminal( + /* [in] */ long pdedicatedTerminal) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DedicatedTerminal( + /* [retval][out] */ long *pdedicatedTerminal) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RDPPort( + /* [in] */ long prdpPort) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RDPPort( + /* [retval][out] */ long *prdpPort) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_EnableMouse( + /* [in] */ long penableMouse) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_EnableMouse( + /* [retval][out] */ long *penableMouse) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DisableCtrlAltDel( + /* [in] */ long pdisableCtrlAltDel) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DisableCtrlAltDel( + /* [retval][out] */ long *pdisableCtrlAltDel) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_EnableWindowsKey( + /* [in] */ long penableWindowsKey) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_EnableWindowsKey( + /* [retval][out] */ long *penableWindowsKey) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DoubleClickDetect( + /* [in] */ long pdoubleClickDetect) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DoubleClickDetect( + /* [retval][out] */ long *pdoubleClickDetect) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_MaximizeShell( + /* [in] */ long pmaximizeShell) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_MaximizeShell( + /* [retval][out] */ long *pmaximizeShell) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyFullScreen( + /* [in] */ long photKeyFullScreen) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyFullScreen( + /* [retval][out] */ long *photKeyFullScreen) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyCtrlEsc( + /* [in] */ long photKeyCtrlEsc) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyCtrlEsc( + /* [retval][out] */ long *photKeyCtrlEsc) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyAltEsc( + /* [in] */ long photKeyAltEsc) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyAltEsc( + /* [retval][out] */ long *photKeyAltEsc) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyAltTab( + /* [in] */ long photKeyAltTab) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyAltTab( + /* [retval][out] */ long *photKeyAltTab) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyAltShiftTab( + /* [in] */ long photKeyAltShiftTab) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyAltShiftTab( + /* [retval][out] */ long *photKeyAltShiftTab) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyAltSpace( + /* [in] */ long photKeyAltSpace) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyAltSpace( + /* [retval][out] */ long *photKeyAltSpace) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyCtrlAltDel( + /* [in] */ long photKeyCtrlAltDel) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyCtrlAltDel( + /* [retval][out] */ long *photKeyCtrlAltDel) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_orderDrawThreshold( + /* [in] */ long porderDrawThreshold) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_orderDrawThreshold( + /* [retval][out] */ long *porderDrawThreshold) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapCacheSize( + /* [in] */ long pbitmapCacheSize) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapCacheSize( + /* [retval][out] */ long *pbitmapCacheSize) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapVirtualCacheSize( + /* [in] */ long pbitmapVirtualCacheSize) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapVirtualCacheSize( + /* [retval][out] */ long *pbitmapVirtualCacheSize) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ScaleBitmapCachesByBPP( + /* [in] */ long pbScale) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ScaleBitmapCachesByBPP( + /* [retval][out] */ long *pbScale) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_NumBitmapCaches( + /* [in] */ long pnumBitmapCaches) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_NumBitmapCaches( + /* [retval][out] */ long *pnumBitmapCaches) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_CachePersistenceActive( + /* [in] */ long pcachePersistenceActive) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CachePersistenceActive( + /* [retval][out] */ long *pcachePersistenceActive) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_PersistCacheDirectory( + /* [in] */ BSTR rhs) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_brushSupportLevel( + /* [in] */ long pbrushSupportLevel) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_brushSupportLevel( + /* [retval][out] */ long *pbrushSupportLevel) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_minInputSendInterval( + /* [in] */ long pminInputSendInterval) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_minInputSendInterval( + /* [retval][out] */ long *pminInputSendInterval) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_InputEventsAtOnce( + /* [in] */ long pinputEventsAtOnce) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_InputEventsAtOnce( + /* [retval][out] */ long *pinputEventsAtOnce) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_maxEventCount( + /* [in] */ long pmaxEventCount) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_maxEventCount( + /* [retval][out] */ long *pmaxEventCount) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_keepAliveInterval( + /* [in] */ long pkeepAliveInterval) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_keepAliveInterval( + /* [retval][out] */ long *pkeepAliveInterval) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_shutdownTimeout( + /* [in] */ long pshutdownTimeout) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_shutdownTimeout( + /* [retval][out] */ long *pshutdownTimeout) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_overallConnectionTimeout( + /* [in] */ long poverallConnectionTimeout) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_overallConnectionTimeout( + /* [retval][out] */ long *poverallConnectionTimeout) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_singleConnectionTimeout( + /* [in] */ long psingleConnectionTimeout) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_singleConnectionTimeout( + /* [retval][out] */ long *psingleConnectionTimeout) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_KeyboardType( + /* [in] */ long pkeyboardType) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_KeyboardType( + /* [retval][out] */ long *pkeyboardType) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_KeyboardSubType( + /* [in] */ long pkeyboardSubType) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_KeyboardSubType( + /* [retval][out] */ long *pkeyboardSubType) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_KeyboardFunctionKey( + /* [in] */ long pkeyboardFunctionKey) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_KeyboardFunctionKey( + /* [retval][out] */ long *pkeyboardFunctionKey) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_WinceFixedPalette( + /* [in] */ long pwinceFixedPalette) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_WinceFixedPalette( + /* [retval][out] */ long *pwinceFixedPalette) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectToServerConsole( + /* [in] */ VARIANT_BOOL pConnectToConsole) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ConnectToServerConsole( + /* [retval][out] */ VARIANT_BOOL *pConnectToConsole) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapPersistence( + /* [in] */ long pbitmapPersistence) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapPersistence( + /* [retval][out] */ long *pbitmapPersistence) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_MinutesToIdleTimeout( + /* [in] */ long pminutesToIdleTimeout) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_MinutesToIdleTimeout( + /* [retval][out] */ long *pminutesToIdleTimeout) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_SmartSizing( + /* [in] */ VARIANT_BOOL pfSmartSizing) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SmartSizing( + /* [retval][out] */ VARIANT_BOOL *pfSmartSizing) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RdpdrLocalPrintingDocName( + /* [in] */ BSTR pLocalPrintingDocName) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RdpdrLocalPrintingDocName( + /* [retval][out] */ BSTR *pLocalPrintingDocName) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RdpdrClipCleanTempDirString( + /* [in] */ BSTR clipCleanTempDirString) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RdpdrClipCleanTempDirString( + /* [retval][out] */ BSTR *clipCleanTempDirString) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RdpdrClipPasteInfoString( + /* [in] */ BSTR clipPasteInfoString) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RdpdrClipPasteInfoString( + /* [retval][out] */ BSTR *clipPasteInfoString) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ClearTextPassword( + /* [in] */ BSTR rhs) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DisplayConnectionBar( + /* [in] */ VARIANT_BOOL pDisplayConnectionBar) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DisplayConnectionBar( + /* [retval][out] */ VARIANT_BOOL *pDisplayConnectionBar) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_PinConnectionBar( + /* [in] */ VARIANT_BOOL pPinConnectionBar) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_PinConnectionBar( + /* [retval][out] */ VARIANT_BOOL *pPinConnectionBar) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_GrabFocusOnConnect( + /* [in] */ VARIANT_BOOL pfGrabFocusOnConnect) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_GrabFocusOnConnect( + /* [retval][out] */ VARIANT_BOOL *pfGrabFocusOnConnect) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_LoadBalanceInfo( + /* [in] */ BSTR pLBInfo) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_LoadBalanceInfo( + /* [retval][out] */ BSTR *pLBInfo) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RedirectDrives( + /* [in] */ VARIANT_BOOL pRedirectDrives) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RedirectDrives( + /* [retval][out] */ VARIANT_BOOL *pRedirectDrives) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RedirectPrinters( + /* [in] */ VARIANT_BOOL pRedirectPrinters) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RedirectPrinters( + /* [retval][out] */ VARIANT_BOOL *pRedirectPrinters) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RedirectPorts( + /* [in] */ VARIANT_BOOL pRedirectPorts) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RedirectPorts( + /* [retval][out] */ VARIANT_BOOL *pRedirectPorts) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RedirectSmartCards( + /* [in] */ VARIANT_BOOL pRedirectSmartCards) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RedirectSmartCards( + /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapVirtualCache16BppSize( + /* [in] */ long pBitmapVirtualCache16BppSize) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapVirtualCache16BppSize( + /* [retval][out] */ long *pBitmapVirtualCache16BppSize) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapVirtualCache24BppSize( + /* [in] */ long pBitmapVirtualCache24BppSize) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapVirtualCache24BppSize( + /* [retval][out] */ long *pBitmapVirtualCache24BppSize) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_PerformanceFlags( + /* [in] */ long pDisableList) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_PerformanceFlags( + /* [retval][out] */ long *pDisableList) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectWithEndpoint( + /* [in] */ VARIANT *rhs) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_NotifyTSPublicKey( + /* [in] */ VARIANT_BOOL pfNotify) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_NotifyTSPublicKey( + /* [retval][out] */ VARIANT_BOOL *pfNotify) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsRdpClientAdvancedSettingsVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsRdpClientAdvancedSettings * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsRdpClientAdvancedSettings * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsRdpClientAdvancedSettings * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Compress )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pcompress); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Compress )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pcompress); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPeristence )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pbitmapPeristence); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPeristence )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pbitmapPeristence); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_allowBackgroundInput )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pallowBackgroundInput); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_allowBackgroundInput )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pallowBackgroundInput); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyBoardLayoutStr )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PluginDlls )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconFile )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconIndex )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerHandledFullScreen )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pContainerHandledFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerHandledFullScreen )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pContainerHandledFullScreen); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableRdpdr )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pDisableRdpdr); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableRdpdr )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pDisableRdpdr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmoothScroll )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long psmoothScroll); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmoothScroll )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *psmoothScroll); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AcceleratorPassthrough )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pacceleratorPassthrough); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AcceleratorPassthrough )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pacceleratorPassthrough); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShadowBitmap )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pshadowBitmap); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShadowBitmap )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pshadowBitmap); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TransportType )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long ptransportType); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TransportType )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *ptransportType); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SasSequence )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long psasSequence); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SasSequence )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *psasSequence); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EncryptionEnabled )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pencryptionEnabled); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EncryptionEnabled )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pencryptionEnabled); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DedicatedTerminal )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pdedicatedTerminal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DedicatedTerminal )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pdedicatedTerminal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RDPPort )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long prdpPort); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RDPPort )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *prdpPort); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableMouse )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long penableMouse); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableMouse )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *penableMouse); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableCtrlAltDel )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pdisableCtrlAltDel); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableCtrlAltDel )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pdisableCtrlAltDel); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableWindowsKey )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long penableWindowsKey); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableWindowsKey )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *penableWindowsKey); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DoubleClickDetect )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pdoubleClickDetect); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DoubleClickDetect )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pdoubleClickDetect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaximizeShell )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pmaximizeShell); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaximizeShell )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pmaximizeShell); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyFullScreen )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long photKeyFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyFullScreen )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *photKeyFullScreen); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlEsc )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long photKeyCtrlEsc); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlEsc )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *photKeyCtrlEsc); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltEsc )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long photKeyAltEsc); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltEsc )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *photKeyAltEsc); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltTab )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long photKeyAltTab); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltTab )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *photKeyAltTab); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltShiftTab )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long photKeyAltShiftTab); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltShiftTab )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *photKeyAltShiftTab); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltSpace )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long photKeyAltSpace); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltSpace )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *photKeyAltSpace); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlAltDel )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long photKeyCtrlAltDel); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlAltDel )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *photKeyCtrlAltDel); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_orderDrawThreshold )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long porderDrawThreshold); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_orderDrawThreshold )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *porderDrawThreshold); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapCacheSize )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pbitmapCacheSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapCacheSize )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pbitmapCacheSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCacheSize )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pbitmapVirtualCacheSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCacheSize )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pbitmapVirtualCacheSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleBitmapCachesByBPP )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pbScale); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleBitmapCachesByBPP )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pbScale); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NumBitmapCaches )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pnumBitmapCaches); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumBitmapCaches )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pnumBitmapCaches); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CachePersistenceActive )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pcachePersistenceActive); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CachePersistenceActive )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pcachePersistenceActive); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PersistCacheDirectory )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_brushSupportLevel )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pbrushSupportLevel); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_brushSupportLevel )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pbrushSupportLevel); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_minInputSendInterval )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pminInputSendInterval); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_minInputSendInterval )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pminInputSendInterval); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InputEventsAtOnce )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pinputEventsAtOnce); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InputEventsAtOnce )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pinputEventsAtOnce); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_maxEventCount )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pmaxEventCount); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_maxEventCount )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pmaxEventCount); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_keepAliveInterval )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pkeepAliveInterval); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_keepAliveInterval )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pkeepAliveInterval); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_shutdownTimeout )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pshutdownTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_shutdownTimeout )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pshutdownTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_overallConnectionTimeout )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long poverallConnectionTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_overallConnectionTimeout )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *poverallConnectionTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_singleConnectionTimeout )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long psingleConnectionTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_singleConnectionTimeout )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *psingleConnectionTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardType )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pkeyboardType); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardType )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pkeyboardType); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardSubType )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pkeyboardSubType); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardSubType )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pkeyboardSubType); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardFunctionKey )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pkeyboardFunctionKey); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardFunctionKey )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pkeyboardFunctionKey); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WinceFixedPalette )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pwinceFixedPalette); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WinceFixedPalette )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pwinceFixedPalette); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectToServerConsole )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ VARIANT_BOOL pConnectToConsole); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectToServerConsole )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ VARIANT_BOOL *pConnectToConsole); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPersistence )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pbitmapPersistence); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPersistence )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pbitmapPersistence); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MinutesToIdleTimeout )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pminutesToIdleTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MinutesToIdleTimeout )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pminutesToIdleTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmartSizing )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ VARIANT_BOOL pfSmartSizing); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmartSizing )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ VARIANT_BOOL *pfSmartSizing); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrLocalPrintingDocName )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ BSTR pLocalPrintingDocName); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrLocalPrintingDocName )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ BSTR *pLocalPrintingDocName); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipCleanTempDirString )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ BSTR clipCleanTempDirString); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipCleanTempDirString )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ BSTR *clipCleanTempDirString); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipPasteInfoString )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ BSTR clipPasteInfoString); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipPasteInfoString )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ BSTR *clipPasteInfoString); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisplayConnectionBar )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ VARIANT_BOOL pDisplayConnectionBar); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisplayConnectionBar )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ VARIANT_BOOL *pDisplayConnectionBar); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PinConnectionBar )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ VARIANT_BOOL pPinConnectionBar); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PinConnectionBar )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ VARIANT_BOOL *pPinConnectionBar); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GrabFocusOnConnect )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ VARIANT_BOOL pfGrabFocusOnConnect); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GrabFocusOnConnect )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ VARIANT_BOOL *pfGrabFocusOnConnect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LoadBalanceInfo )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ BSTR pLBInfo); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LoadBalanceInfo )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ BSTR *pLBInfo); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectDrives )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ VARIANT_BOOL pRedirectDrives); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectDrives )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectDrives); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPrinters )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ VARIANT_BOOL pRedirectPrinters); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPrinters )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectPrinters); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPorts )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ VARIANT_BOOL pRedirectPorts); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPorts )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectPorts); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectSmartCards )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ VARIANT_BOOL pRedirectSmartCards); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectSmartCards )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache16BppSize )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pBitmapVirtualCache16BppSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache16BppSize )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pBitmapVirtualCache16BppSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache24BppSize )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pBitmapVirtualCache24BppSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache24BppSize )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pBitmapVirtualCache24BppSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PerformanceFlags )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pDisableList); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PerformanceFlags )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pDisableList); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectWithEndpoint )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ VARIANT *rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NotifyTSPublicKey )( + IMsRdpClientAdvancedSettings * This, + /* [in] */ VARIANT_BOOL pfNotify); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NotifyTSPublicKey )( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ VARIANT_BOOL *pfNotify); + + END_INTERFACE + } IMsRdpClientAdvancedSettingsVtbl; + + interface IMsRdpClientAdvancedSettings + { + CONST_VTBL struct IMsRdpClientAdvancedSettingsVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsRdpClientAdvancedSettings_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsRdpClientAdvancedSettings_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsRdpClientAdvancedSettings_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsRdpClientAdvancedSettings_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsRdpClientAdvancedSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsRdpClientAdvancedSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsRdpClientAdvancedSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IMsRdpClientAdvancedSettings_put_Compress(This,pcompress) \ + ( (This)->lpVtbl -> put_Compress(This,pcompress) ) + +#define IMsRdpClientAdvancedSettings_get_Compress(This,pcompress) \ + ( (This)->lpVtbl -> get_Compress(This,pcompress) ) + +#define IMsRdpClientAdvancedSettings_put_BitmapPeristence(This,pbitmapPeristence) \ + ( (This)->lpVtbl -> put_BitmapPeristence(This,pbitmapPeristence) ) + +#define IMsRdpClientAdvancedSettings_get_BitmapPeristence(This,pbitmapPeristence) \ + ( (This)->lpVtbl -> get_BitmapPeristence(This,pbitmapPeristence) ) + +#define IMsRdpClientAdvancedSettings_put_allowBackgroundInput(This,pallowBackgroundInput) \ + ( (This)->lpVtbl -> put_allowBackgroundInput(This,pallowBackgroundInput) ) + +#define IMsRdpClientAdvancedSettings_get_allowBackgroundInput(This,pallowBackgroundInput) \ + ( (This)->lpVtbl -> get_allowBackgroundInput(This,pallowBackgroundInput) ) + +#define IMsRdpClientAdvancedSettings_put_KeyBoardLayoutStr(This,rhs) \ + ( (This)->lpVtbl -> put_KeyBoardLayoutStr(This,rhs) ) + +#define IMsRdpClientAdvancedSettings_put_PluginDlls(This,rhs) \ + ( (This)->lpVtbl -> put_PluginDlls(This,rhs) ) + +#define IMsRdpClientAdvancedSettings_put_IconFile(This,rhs) \ + ( (This)->lpVtbl -> put_IconFile(This,rhs) ) + +#define IMsRdpClientAdvancedSettings_put_IconIndex(This,rhs) \ + ( (This)->lpVtbl -> put_IconIndex(This,rhs) ) + +#define IMsRdpClientAdvancedSettings_put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ + ( (This)->lpVtbl -> put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) + +#define IMsRdpClientAdvancedSettings_get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ + ( (This)->lpVtbl -> get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) + +#define IMsRdpClientAdvancedSettings_put_DisableRdpdr(This,pDisableRdpdr) \ + ( (This)->lpVtbl -> put_DisableRdpdr(This,pDisableRdpdr) ) + +#define IMsRdpClientAdvancedSettings_get_DisableRdpdr(This,pDisableRdpdr) \ + ( (This)->lpVtbl -> get_DisableRdpdr(This,pDisableRdpdr) ) + + +#define IMsRdpClientAdvancedSettings_put_SmoothScroll(This,psmoothScroll) \ + ( (This)->lpVtbl -> put_SmoothScroll(This,psmoothScroll) ) + +#define IMsRdpClientAdvancedSettings_get_SmoothScroll(This,psmoothScroll) \ + ( (This)->lpVtbl -> get_SmoothScroll(This,psmoothScroll) ) + +#define IMsRdpClientAdvancedSettings_put_AcceleratorPassthrough(This,pacceleratorPassthrough) \ + ( (This)->lpVtbl -> put_AcceleratorPassthrough(This,pacceleratorPassthrough) ) + +#define IMsRdpClientAdvancedSettings_get_AcceleratorPassthrough(This,pacceleratorPassthrough) \ + ( (This)->lpVtbl -> get_AcceleratorPassthrough(This,pacceleratorPassthrough) ) + +#define IMsRdpClientAdvancedSettings_put_ShadowBitmap(This,pshadowBitmap) \ + ( (This)->lpVtbl -> put_ShadowBitmap(This,pshadowBitmap) ) + +#define IMsRdpClientAdvancedSettings_get_ShadowBitmap(This,pshadowBitmap) \ + ( (This)->lpVtbl -> get_ShadowBitmap(This,pshadowBitmap) ) + +#define IMsRdpClientAdvancedSettings_put_TransportType(This,ptransportType) \ + ( (This)->lpVtbl -> put_TransportType(This,ptransportType) ) + +#define IMsRdpClientAdvancedSettings_get_TransportType(This,ptransportType) \ + ( (This)->lpVtbl -> get_TransportType(This,ptransportType) ) + +#define IMsRdpClientAdvancedSettings_put_SasSequence(This,psasSequence) \ + ( (This)->lpVtbl -> put_SasSequence(This,psasSequence) ) + +#define IMsRdpClientAdvancedSettings_get_SasSequence(This,psasSequence) \ + ( (This)->lpVtbl -> get_SasSequence(This,psasSequence) ) + +#define IMsRdpClientAdvancedSettings_put_EncryptionEnabled(This,pencryptionEnabled) \ + ( (This)->lpVtbl -> put_EncryptionEnabled(This,pencryptionEnabled) ) + +#define IMsRdpClientAdvancedSettings_get_EncryptionEnabled(This,pencryptionEnabled) \ + ( (This)->lpVtbl -> get_EncryptionEnabled(This,pencryptionEnabled) ) + +#define IMsRdpClientAdvancedSettings_put_DedicatedTerminal(This,pdedicatedTerminal) \ + ( (This)->lpVtbl -> put_DedicatedTerminal(This,pdedicatedTerminal) ) + +#define IMsRdpClientAdvancedSettings_get_DedicatedTerminal(This,pdedicatedTerminal) \ + ( (This)->lpVtbl -> get_DedicatedTerminal(This,pdedicatedTerminal) ) + +#define IMsRdpClientAdvancedSettings_put_RDPPort(This,prdpPort) \ + ( (This)->lpVtbl -> put_RDPPort(This,prdpPort) ) + +#define IMsRdpClientAdvancedSettings_get_RDPPort(This,prdpPort) \ + ( (This)->lpVtbl -> get_RDPPort(This,prdpPort) ) + +#define IMsRdpClientAdvancedSettings_put_EnableMouse(This,penableMouse) \ + ( (This)->lpVtbl -> put_EnableMouse(This,penableMouse) ) + +#define IMsRdpClientAdvancedSettings_get_EnableMouse(This,penableMouse) \ + ( (This)->lpVtbl -> get_EnableMouse(This,penableMouse) ) + +#define IMsRdpClientAdvancedSettings_put_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ + ( (This)->lpVtbl -> put_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings_get_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ + ( (This)->lpVtbl -> get_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings_put_EnableWindowsKey(This,penableWindowsKey) \ + ( (This)->lpVtbl -> put_EnableWindowsKey(This,penableWindowsKey) ) + +#define IMsRdpClientAdvancedSettings_get_EnableWindowsKey(This,penableWindowsKey) \ + ( (This)->lpVtbl -> get_EnableWindowsKey(This,penableWindowsKey) ) + +#define IMsRdpClientAdvancedSettings_put_DoubleClickDetect(This,pdoubleClickDetect) \ + ( (This)->lpVtbl -> put_DoubleClickDetect(This,pdoubleClickDetect) ) + +#define IMsRdpClientAdvancedSettings_get_DoubleClickDetect(This,pdoubleClickDetect) \ + ( (This)->lpVtbl -> get_DoubleClickDetect(This,pdoubleClickDetect) ) + +#define IMsRdpClientAdvancedSettings_put_MaximizeShell(This,pmaximizeShell) \ + ( (This)->lpVtbl -> put_MaximizeShell(This,pmaximizeShell) ) + +#define IMsRdpClientAdvancedSettings_get_MaximizeShell(This,pmaximizeShell) \ + ( (This)->lpVtbl -> get_MaximizeShell(This,pmaximizeShell) ) + +#define IMsRdpClientAdvancedSettings_put_HotKeyFullScreen(This,photKeyFullScreen) \ + ( (This)->lpVtbl -> put_HotKeyFullScreen(This,photKeyFullScreen) ) + +#define IMsRdpClientAdvancedSettings_get_HotKeyFullScreen(This,photKeyFullScreen) \ + ( (This)->lpVtbl -> get_HotKeyFullScreen(This,photKeyFullScreen) ) + +#define IMsRdpClientAdvancedSettings_put_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ + ( (This)->lpVtbl -> put_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) + +#define IMsRdpClientAdvancedSettings_get_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ + ( (This)->lpVtbl -> get_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) + +#define IMsRdpClientAdvancedSettings_put_HotKeyAltEsc(This,photKeyAltEsc) \ + ( (This)->lpVtbl -> put_HotKeyAltEsc(This,photKeyAltEsc) ) + +#define IMsRdpClientAdvancedSettings_get_HotKeyAltEsc(This,photKeyAltEsc) \ + ( (This)->lpVtbl -> get_HotKeyAltEsc(This,photKeyAltEsc) ) + +#define IMsRdpClientAdvancedSettings_put_HotKeyAltTab(This,photKeyAltTab) \ + ( (This)->lpVtbl -> put_HotKeyAltTab(This,photKeyAltTab) ) + +#define IMsRdpClientAdvancedSettings_get_HotKeyAltTab(This,photKeyAltTab) \ + ( (This)->lpVtbl -> get_HotKeyAltTab(This,photKeyAltTab) ) + +#define IMsRdpClientAdvancedSettings_put_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ + ( (This)->lpVtbl -> put_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) + +#define IMsRdpClientAdvancedSettings_get_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ + ( (This)->lpVtbl -> get_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) + +#define IMsRdpClientAdvancedSettings_put_HotKeyAltSpace(This,photKeyAltSpace) \ + ( (This)->lpVtbl -> put_HotKeyAltSpace(This,photKeyAltSpace) ) + +#define IMsRdpClientAdvancedSettings_get_HotKeyAltSpace(This,photKeyAltSpace) \ + ( (This)->lpVtbl -> get_HotKeyAltSpace(This,photKeyAltSpace) ) + +#define IMsRdpClientAdvancedSettings_put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ + ( (This)->lpVtbl -> put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings_get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ + ( (This)->lpVtbl -> get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings_put_orderDrawThreshold(This,porderDrawThreshold) \ + ( (This)->lpVtbl -> put_orderDrawThreshold(This,porderDrawThreshold) ) + +#define IMsRdpClientAdvancedSettings_get_orderDrawThreshold(This,porderDrawThreshold) \ + ( (This)->lpVtbl -> get_orderDrawThreshold(This,porderDrawThreshold) ) + +#define IMsRdpClientAdvancedSettings_put_BitmapCacheSize(This,pbitmapCacheSize) \ + ( (This)->lpVtbl -> put_BitmapCacheSize(This,pbitmapCacheSize) ) + +#define IMsRdpClientAdvancedSettings_get_BitmapCacheSize(This,pbitmapCacheSize) \ + ( (This)->lpVtbl -> get_BitmapCacheSize(This,pbitmapCacheSize) ) + +#define IMsRdpClientAdvancedSettings_put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ + ( (This)->lpVtbl -> put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) + +#define IMsRdpClientAdvancedSettings_get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ + ( (This)->lpVtbl -> get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) + +#define IMsRdpClientAdvancedSettings_put_ScaleBitmapCachesByBPP(This,pbScale) \ + ( (This)->lpVtbl -> put_ScaleBitmapCachesByBPP(This,pbScale) ) + +#define IMsRdpClientAdvancedSettings_get_ScaleBitmapCachesByBPP(This,pbScale) \ + ( (This)->lpVtbl -> get_ScaleBitmapCachesByBPP(This,pbScale) ) + +#define IMsRdpClientAdvancedSettings_put_NumBitmapCaches(This,pnumBitmapCaches) \ + ( (This)->lpVtbl -> put_NumBitmapCaches(This,pnumBitmapCaches) ) + +#define IMsRdpClientAdvancedSettings_get_NumBitmapCaches(This,pnumBitmapCaches) \ + ( (This)->lpVtbl -> get_NumBitmapCaches(This,pnumBitmapCaches) ) + +#define IMsRdpClientAdvancedSettings_put_CachePersistenceActive(This,pcachePersistenceActive) \ + ( (This)->lpVtbl -> put_CachePersistenceActive(This,pcachePersistenceActive) ) + +#define IMsRdpClientAdvancedSettings_get_CachePersistenceActive(This,pcachePersistenceActive) \ + ( (This)->lpVtbl -> get_CachePersistenceActive(This,pcachePersistenceActive) ) + +#define IMsRdpClientAdvancedSettings_put_PersistCacheDirectory(This,rhs) \ + ( (This)->lpVtbl -> put_PersistCacheDirectory(This,rhs) ) + +#define IMsRdpClientAdvancedSettings_put_brushSupportLevel(This,pbrushSupportLevel) \ + ( (This)->lpVtbl -> put_brushSupportLevel(This,pbrushSupportLevel) ) + +#define IMsRdpClientAdvancedSettings_get_brushSupportLevel(This,pbrushSupportLevel) \ + ( (This)->lpVtbl -> get_brushSupportLevel(This,pbrushSupportLevel) ) + +#define IMsRdpClientAdvancedSettings_put_minInputSendInterval(This,pminInputSendInterval) \ + ( (This)->lpVtbl -> put_minInputSendInterval(This,pminInputSendInterval) ) + +#define IMsRdpClientAdvancedSettings_get_minInputSendInterval(This,pminInputSendInterval) \ + ( (This)->lpVtbl -> get_minInputSendInterval(This,pminInputSendInterval) ) + +#define IMsRdpClientAdvancedSettings_put_InputEventsAtOnce(This,pinputEventsAtOnce) \ + ( (This)->lpVtbl -> put_InputEventsAtOnce(This,pinputEventsAtOnce) ) + +#define IMsRdpClientAdvancedSettings_get_InputEventsAtOnce(This,pinputEventsAtOnce) \ + ( (This)->lpVtbl -> get_InputEventsAtOnce(This,pinputEventsAtOnce) ) + +#define IMsRdpClientAdvancedSettings_put_maxEventCount(This,pmaxEventCount) \ + ( (This)->lpVtbl -> put_maxEventCount(This,pmaxEventCount) ) + +#define IMsRdpClientAdvancedSettings_get_maxEventCount(This,pmaxEventCount) \ + ( (This)->lpVtbl -> get_maxEventCount(This,pmaxEventCount) ) + +#define IMsRdpClientAdvancedSettings_put_keepAliveInterval(This,pkeepAliveInterval) \ + ( (This)->lpVtbl -> put_keepAliveInterval(This,pkeepAliveInterval) ) + +#define IMsRdpClientAdvancedSettings_get_keepAliveInterval(This,pkeepAliveInterval) \ + ( (This)->lpVtbl -> get_keepAliveInterval(This,pkeepAliveInterval) ) + +#define IMsRdpClientAdvancedSettings_put_shutdownTimeout(This,pshutdownTimeout) \ + ( (This)->lpVtbl -> put_shutdownTimeout(This,pshutdownTimeout) ) + +#define IMsRdpClientAdvancedSettings_get_shutdownTimeout(This,pshutdownTimeout) \ + ( (This)->lpVtbl -> get_shutdownTimeout(This,pshutdownTimeout) ) + +#define IMsRdpClientAdvancedSettings_put_overallConnectionTimeout(This,poverallConnectionTimeout) \ + ( (This)->lpVtbl -> put_overallConnectionTimeout(This,poverallConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings_get_overallConnectionTimeout(This,poverallConnectionTimeout) \ + ( (This)->lpVtbl -> get_overallConnectionTimeout(This,poverallConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings_put_singleConnectionTimeout(This,psingleConnectionTimeout) \ + ( (This)->lpVtbl -> put_singleConnectionTimeout(This,psingleConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings_get_singleConnectionTimeout(This,psingleConnectionTimeout) \ + ( (This)->lpVtbl -> get_singleConnectionTimeout(This,psingleConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings_put_KeyboardType(This,pkeyboardType) \ + ( (This)->lpVtbl -> put_KeyboardType(This,pkeyboardType) ) + +#define IMsRdpClientAdvancedSettings_get_KeyboardType(This,pkeyboardType) \ + ( (This)->lpVtbl -> get_KeyboardType(This,pkeyboardType) ) + +#define IMsRdpClientAdvancedSettings_put_KeyboardSubType(This,pkeyboardSubType) \ + ( (This)->lpVtbl -> put_KeyboardSubType(This,pkeyboardSubType) ) + +#define IMsRdpClientAdvancedSettings_get_KeyboardSubType(This,pkeyboardSubType) \ + ( (This)->lpVtbl -> get_KeyboardSubType(This,pkeyboardSubType) ) + +#define IMsRdpClientAdvancedSettings_put_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ + ( (This)->lpVtbl -> put_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) + +#define IMsRdpClientAdvancedSettings_get_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ + ( (This)->lpVtbl -> get_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) + +#define IMsRdpClientAdvancedSettings_put_WinceFixedPalette(This,pwinceFixedPalette) \ + ( (This)->lpVtbl -> put_WinceFixedPalette(This,pwinceFixedPalette) ) + +#define IMsRdpClientAdvancedSettings_get_WinceFixedPalette(This,pwinceFixedPalette) \ + ( (This)->lpVtbl -> get_WinceFixedPalette(This,pwinceFixedPalette) ) + +#define IMsRdpClientAdvancedSettings_put_ConnectToServerConsole(This,pConnectToConsole) \ + ( (This)->lpVtbl -> put_ConnectToServerConsole(This,pConnectToConsole) ) + +#define IMsRdpClientAdvancedSettings_get_ConnectToServerConsole(This,pConnectToConsole) \ + ( (This)->lpVtbl -> get_ConnectToServerConsole(This,pConnectToConsole) ) + +#define IMsRdpClientAdvancedSettings_put_BitmapPersistence(This,pbitmapPersistence) \ + ( (This)->lpVtbl -> put_BitmapPersistence(This,pbitmapPersistence) ) + +#define IMsRdpClientAdvancedSettings_get_BitmapPersistence(This,pbitmapPersistence) \ + ( (This)->lpVtbl -> get_BitmapPersistence(This,pbitmapPersistence) ) + +#define IMsRdpClientAdvancedSettings_put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ + ( (This)->lpVtbl -> put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) + +#define IMsRdpClientAdvancedSettings_get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ + ( (This)->lpVtbl -> get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) + +#define IMsRdpClientAdvancedSettings_put_SmartSizing(This,pfSmartSizing) \ + ( (This)->lpVtbl -> put_SmartSizing(This,pfSmartSizing) ) + +#define IMsRdpClientAdvancedSettings_get_SmartSizing(This,pfSmartSizing) \ + ( (This)->lpVtbl -> get_SmartSizing(This,pfSmartSizing) ) + +#define IMsRdpClientAdvancedSettings_put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ + ( (This)->lpVtbl -> put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) + +#define IMsRdpClientAdvancedSettings_get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ + ( (This)->lpVtbl -> get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) + +#define IMsRdpClientAdvancedSettings_put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ + ( (This)->lpVtbl -> put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) + +#define IMsRdpClientAdvancedSettings_get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ + ( (This)->lpVtbl -> get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) + +#define IMsRdpClientAdvancedSettings_put_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ + ( (This)->lpVtbl -> put_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) + +#define IMsRdpClientAdvancedSettings_get_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ + ( (This)->lpVtbl -> get_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) + +#define IMsRdpClientAdvancedSettings_put_ClearTextPassword(This,rhs) \ + ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) + +#define IMsRdpClientAdvancedSettings_put_DisplayConnectionBar(This,pDisplayConnectionBar) \ + ( (This)->lpVtbl -> put_DisplayConnectionBar(This,pDisplayConnectionBar) ) + +#define IMsRdpClientAdvancedSettings_get_DisplayConnectionBar(This,pDisplayConnectionBar) \ + ( (This)->lpVtbl -> get_DisplayConnectionBar(This,pDisplayConnectionBar) ) + +#define IMsRdpClientAdvancedSettings_put_PinConnectionBar(This,pPinConnectionBar) \ + ( (This)->lpVtbl -> put_PinConnectionBar(This,pPinConnectionBar) ) + +#define IMsRdpClientAdvancedSettings_get_PinConnectionBar(This,pPinConnectionBar) \ + ( (This)->lpVtbl -> get_PinConnectionBar(This,pPinConnectionBar) ) + +#define IMsRdpClientAdvancedSettings_put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ + ( (This)->lpVtbl -> put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) + +#define IMsRdpClientAdvancedSettings_get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ + ( (This)->lpVtbl -> get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) + +#define IMsRdpClientAdvancedSettings_put_LoadBalanceInfo(This,pLBInfo) \ + ( (This)->lpVtbl -> put_LoadBalanceInfo(This,pLBInfo) ) + +#define IMsRdpClientAdvancedSettings_get_LoadBalanceInfo(This,pLBInfo) \ + ( (This)->lpVtbl -> get_LoadBalanceInfo(This,pLBInfo) ) + +#define IMsRdpClientAdvancedSettings_put_RedirectDrives(This,pRedirectDrives) \ + ( (This)->lpVtbl -> put_RedirectDrives(This,pRedirectDrives) ) + +#define IMsRdpClientAdvancedSettings_get_RedirectDrives(This,pRedirectDrives) \ + ( (This)->lpVtbl -> get_RedirectDrives(This,pRedirectDrives) ) + +#define IMsRdpClientAdvancedSettings_put_RedirectPrinters(This,pRedirectPrinters) \ + ( (This)->lpVtbl -> put_RedirectPrinters(This,pRedirectPrinters) ) + +#define IMsRdpClientAdvancedSettings_get_RedirectPrinters(This,pRedirectPrinters) \ + ( (This)->lpVtbl -> get_RedirectPrinters(This,pRedirectPrinters) ) + +#define IMsRdpClientAdvancedSettings_put_RedirectPorts(This,pRedirectPorts) \ + ( (This)->lpVtbl -> put_RedirectPorts(This,pRedirectPorts) ) + +#define IMsRdpClientAdvancedSettings_get_RedirectPorts(This,pRedirectPorts) \ + ( (This)->lpVtbl -> get_RedirectPorts(This,pRedirectPorts) ) + +#define IMsRdpClientAdvancedSettings_put_RedirectSmartCards(This,pRedirectSmartCards) \ + ( (This)->lpVtbl -> put_RedirectSmartCards(This,pRedirectSmartCards) ) + +#define IMsRdpClientAdvancedSettings_get_RedirectSmartCards(This,pRedirectSmartCards) \ + ( (This)->lpVtbl -> get_RedirectSmartCards(This,pRedirectSmartCards) ) + +#define IMsRdpClientAdvancedSettings_put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ + ( (This)->lpVtbl -> put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) + +#define IMsRdpClientAdvancedSettings_get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ + ( (This)->lpVtbl -> get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) + +#define IMsRdpClientAdvancedSettings_put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ + ( (This)->lpVtbl -> put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) + +#define IMsRdpClientAdvancedSettings_get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ + ( (This)->lpVtbl -> get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) + +#define IMsRdpClientAdvancedSettings_put_PerformanceFlags(This,pDisableList) \ + ( (This)->lpVtbl -> put_PerformanceFlags(This,pDisableList) ) + +#define IMsRdpClientAdvancedSettings_get_PerformanceFlags(This,pDisableList) \ + ( (This)->lpVtbl -> get_PerformanceFlags(This,pDisableList) ) + +#define IMsRdpClientAdvancedSettings_put_ConnectWithEndpoint(This,rhs) \ + ( (This)->lpVtbl -> put_ConnectWithEndpoint(This,rhs) ) + +#define IMsRdpClientAdvancedSettings_put_NotifyTSPublicKey(This,pfNotify) \ + ( (This)->lpVtbl -> put_NotifyTSPublicKey(This,pfNotify) ) + +#define IMsRdpClientAdvancedSettings_get_NotifyTSPublicKey(This,pfNotify) \ + ( (This)->lpVtbl -> get_NotifyTSPublicKey(This,pfNotify) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_get_RedirectSmartCards_Proxy( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards); + + +void __RPC_STUB IMsRdpClientAdvancedSettings_get_RedirectSmartCards_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_put_BitmapVirtualCache16BppSize_Proxy( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pBitmapVirtualCache16BppSize); + + +void __RPC_STUB IMsRdpClientAdvancedSettings_put_BitmapVirtualCache16BppSize_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_get_BitmapVirtualCache16BppSize_Proxy( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pBitmapVirtualCache16BppSize); + + +void __RPC_STUB IMsRdpClientAdvancedSettings_get_BitmapVirtualCache16BppSize_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_put_BitmapVirtualCache24BppSize_Proxy( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pBitmapVirtualCache24BppSize); + + +void __RPC_STUB IMsRdpClientAdvancedSettings_put_BitmapVirtualCache24BppSize_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_get_BitmapVirtualCache24BppSize_Proxy( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pBitmapVirtualCache24BppSize); + + +void __RPC_STUB IMsRdpClientAdvancedSettings_get_BitmapVirtualCache24BppSize_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_put_PerformanceFlags_Proxy( + IMsRdpClientAdvancedSettings * This, + /* [in] */ long pDisableList); + + +void __RPC_STUB IMsRdpClientAdvancedSettings_put_PerformanceFlags_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_get_PerformanceFlags_Proxy( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ long *pDisableList); + + +void __RPC_STUB IMsRdpClientAdvancedSettings_get_PerformanceFlags_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_put_ConnectWithEndpoint_Proxy( + IMsRdpClientAdvancedSettings * This, + /* [in] */ VARIANT *rhs); + + +void __RPC_STUB IMsRdpClientAdvancedSettings_put_ConnectWithEndpoint_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_put_NotifyTSPublicKey_Proxy( + IMsRdpClientAdvancedSettings * This, + /* [in] */ VARIANT_BOOL pfNotify); + + +void __RPC_STUB IMsRdpClientAdvancedSettings_put_NotifyTSPublicKey_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_get_NotifyTSPublicKey_Proxy( + IMsRdpClientAdvancedSettings * This, + /* [retval][out] */ VARIANT_BOOL *pfNotify); + + +void __RPC_STUB IMsRdpClientAdvancedSettings_get_NotifyTSPublicKey_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __IMsRdpClientAdvancedSettings_INTERFACE_DEFINED__ */ + + +#ifndef __IMsRdpClientAdvancedSettings2_INTERFACE_DEFINED__ +#define __IMsRdpClientAdvancedSettings2_INTERFACE_DEFINED__ + +/* interface IMsRdpClientAdvancedSettings2 */ +/* [object][oleautomation][dual][uuid] */ + + +EXTERN_C const IID IID_IMsRdpClientAdvancedSettings2; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("9AC42117-2B76-4320-AA44-0E616AB8437B") + IMsRdpClientAdvancedSettings2 : public IMsRdpClientAdvancedSettings + { + public: + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CanAutoReconnect( + /* [retval][out] */ VARIANT_BOOL *pfCanAutoReconnect) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_EnableAutoReconnect( + /* [in] */ VARIANT_BOOL pfEnableAutoReconnect) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_EnableAutoReconnect( + /* [retval][out] */ VARIANT_BOOL *pfEnableAutoReconnect) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_MaxReconnectAttempts( + /* [in] */ long pMaxReconnectAttempts) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_MaxReconnectAttempts( + /* [retval][out] */ long *pMaxReconnectAttempts) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsRdpClientAdvancedSettings2Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsRdpClientAdvancedSettings2 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsRdpClientAdvancedSettings2 * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsRdpClientAdvancedSettings2 * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Compress )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pcompress); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Compress )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pcompress); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPeristence )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pbitmapPeristence); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPeristence )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pbitmapPeristence); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_allowBackgroundInput )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pallowBackgroundInput); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_allowBackgroundInput )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pallowBackgroundInput); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyBoardLayoutStr )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PluginDlls )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconFile )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconIndex )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerHandledFullScreen )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pContainerHandledFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerHandledFullScreen )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pContainerHandledFullScreen); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableRdpdr )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pDisableRdpdr); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableRdpdr )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pDisableRdpdr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmoothScroll )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long psmoothScroll); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmoothScroll )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *psmoothScroll); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AcceleratorPassthrough )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pacceleratorPassthrough); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AcceleratorPassthrough )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pacceleratorPassthrough); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShadowBitmap )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pshadowBitmap); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShadowBitmap )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pshadowBitmap); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TransportType )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long ptransportType); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TransportType )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *ptransportType); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SasSequence )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long psasSequence); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SasSequence )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *psasSequence); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EncryptionEnabled )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pencryptionEnabled); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EncryptionEnabled )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pencryptionEnabled); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DedicatedTerminal )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pdedicatedTerminal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DedicatedTerminal )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pdedicatedTerminal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RDPPort )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long prdpPort); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RDPPort )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *prdpPort); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableMouse )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long penableMouse); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableMouse )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *penableMouse); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableCtrlAltDel )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pdisableCtrlAltDel); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableCtrlAltDel )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pdisableCtrlAltDel); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableWindowsKey )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long penableWindowsKey); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableWindowsKey )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *penableWindowsKey); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DoubleClickDetect )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pdoubleClickDetect); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DoubleClickDetect )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pdoubleClickDetect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaximizeShell )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pmaximizeShell); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaximizeShell )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pmaximizeShell); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyFullScreen )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long photKeyFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyFullScreen )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *photKeyFullScreen); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlEsc )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long photKeyCtrlEsc); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlEsc )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *photKeyCtrlEsc); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltEsc )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long photKeyAltEsc); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltEsc )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *photKeyAltEsc); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltTab )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long photKeyAltTab); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltTab )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *photKeyAltTab); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltShiftTab )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long photKeyAltShiftTab); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltShiftTab )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *photKeyAltShiftTab); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltSpace )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long photKeyAltSpace); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltSpace )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *photKeyAltSpace); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlAltDel )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long photKeyCtrlAltDel); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlAltDel )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *photKeyCtrlAltDel); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_orderDrawThreshold )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long porderDrawThreshold); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_orderDrawThreshold )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *porderDrawThreshold); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapCacheSize )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pbitmapCacheSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapCacheSize )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pbitmapCacheSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCacheSize )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pbitmapVirtualCacheSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCacheSize )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pbitmapVirtualCacheSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleBitmapCachesByBPP )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pbScale); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleBitmapCachesByBPP )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pbScale); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NumBitmapCaches )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pnumBitmapCaches); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumBitmapCaches )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pnumBitmapCaches); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CachePersistenceActive )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pcachePersistenceActive); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CachePersistenceActive )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pcachePersistenceActive); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PersistCacheDirectory )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_brushSupportLevel )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pbrushSupportLevel); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_brushSupportLevel )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pbrushSupportLevel); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_minInputSendInterval )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pminInputSendInterval); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_minInputSendInterval )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pminInputSendInterval); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InputEventsAtOnce )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pinputEventsAtOnce); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InputEventsAtOnce )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pinputEventsAtOnce); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_maxEventCount )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pmaxEventCount); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_maxEventCount )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pmaxEventCount); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_keepAliveInterval )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pkeepAliveInterval); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_keepAliveInterval )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pkeepAliveInterval); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_shutdownTimeout )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pshutdownTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_shutdownTimeout )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pshutdownTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_overallConnectionTimeout )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long poverallConnectionTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_overallConnectionTimeout )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *poverallConnectionTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_singleConnectionTimeout )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long psingleConnectionTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_singleConnectionTimeout )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *psingleConnectionTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardType )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pkeyboardType); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardType )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pkeyboardType); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardSubType )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pkeyboardSubType); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardSubType )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pkeyboardSubType); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardFunctionKey )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pkeyboardFunctionKey); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardFunctionKey )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pkeyboardFunctionKey); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WinceFixedPalette )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pwinceFixedPalette); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WinceFixedPalette )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pwinceFixedPalette); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectToServerConsole )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ VARIANT_BOOL pConnectToConsole); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectToServerConsole )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pConnectToConsole); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPersistence )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pbitmapPersistence); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPersistence )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pbitmapPersistence); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MinutesToIdleTimeout )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pminutesToIdleTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MinutesToIdleTimeout )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pminutesToIdleTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmartSizing )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ VARIANT_BOOL pfSmartSizing); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmartSizing )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pfSmartSizing); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrLocalPrintingDocName )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ BSTR pLocalPrintingDocName); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrLocalPrintingDocName )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ BSTR *pLocalPrintingDocName); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipCleanTempDirString )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ BSTR clipCleanTempDirString); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipCleanTempDirString )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ BSTR *clipCleanTempDirString); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipPasteInfoString )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ BSTR clipPasteInfoString); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipPasteInfoString )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ BSTR *clipPasteInfoString); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisplayConnectionBar )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ VARIANT_BOOL pDisplayConnectionBar); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisplayConnectionBar )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pDisplayConnectionBar); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PinConnectionBar )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ VARIANT_BOOL pPinConnectionBar); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PinConnectionBar )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pPinConnectionBar); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GrabFocusOnConnect )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ VARIANT_BOOL pfGrabFocusOnConnect); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GrabFocusOnConnect )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pfGrabFocusOnConnect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LoadBalanceInfo )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ BSTR pLBInfo); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LoadBalanceInfo )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ BSTR *pLBInfo); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectDrives )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ VARIANT_BOOL pRedirectDrives); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectDrives )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectDrives); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPrinters )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ VARIANT_BOOL pRedirectPrinters); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPrinters )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectPrinters); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPorts )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ VARIANT_BOOL pRedirectPorts); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPorts )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectPorts); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectSmartCards )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ VARIANT_BOOL pRedirectSmartCards); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectSmartCards )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache16BppSize )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pBitmapVirtualCache16BppSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache16BppSize )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pBitmapVirtualCache16BppSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache24BppSize )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pBitmapVirtualCache24BppSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache24BppSize )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pBitmapVirtualCache24BppSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PerformanceFlags )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pDisableList); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PerformanceFlags )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pDisableList); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectWithEndpoint )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ VARIANT *rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NotifyTSPublicKey )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ VARIANT_BOOL pfNotify); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NotifyTSPublicKey )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pfNotify); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CanAutoReconnect )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pfCanAutoReconnect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableAutoReconnect )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ VARIANT_BOOL pfEnableAutoReconnect); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableAutoReconnect )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pfEnableAutoReconnect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaxReconnectAttempts )( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pMaxReconnectAttempts); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaxReconnectAttempts )( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pMaxReconnectAttempts); + + END_INTERFACE + } IMsRdpClientAdvancedSettings2Vtbl; + + interface IMsRdpClientAdvancedSettings2 + { + CONST_VTBL struct IMsRdpClientAdvancedSettings2Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsRdpClientAdvancedSettings2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsRdpClientAdvancedSettings2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsRdpClientAdvancedSettings2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsRdpClientAdvancedSettings2_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsRdpClientAdvancedSettings2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsRdpClientAdvancedSettings2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsRdpClientAdvancedSettings2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IMsRdpClientAdvancedSettings2_put_Compress(This,pcompress) \ + ( (This)->lpVtbl -> put_Compress(This,pcompress) ) + +#define IMsRdpClientAdvancedSettings2_get_Compress(This,pcompress) \ + ( (This)->lpVtbl -> get_Compress(This,pcompress) ) + +#define IMsRdpClientAdvancedSettings2_put_BitmapPeristence(This,pbitmapPeristence) \ + ( (This)->lpVtbl -> put_BitmapPeristence(This,pbitmapPeristence) ) + +#define IMsRdpClientAdvancedSettings2_get_BitmapPeristence(This,pbitmapPeristence) \ + ( (This)->lpVtbl -> get_BitmapPeristence(This,pbitmapPeristence) ) + +#define IMsRdpClientAdvancedSettings2_put_allowBackgroundInput(This,pallowBackgroundInput) \ + ( (This)->lpVtbl -> put_allowBackgroundInput(This,pallowBackgroundInput) ) + +#define IMsRdpClientAdvancedSettings2_get_allowBackgroundInput(This,pallowBackgroundInput) \ + ( (This)->lpVtbl -> get_allowBackgroundInput(This,pallowBackgroundInput) ) + +#define IMsRdpClientAdvancedSettings2_put_KeyBoardLayoutStr(This,rhs) \ + ( (This)->lpVtbl -> put_KeyBoardLayoutStr(This,rhs) ) + +#define IMsRdpClientAdvancedSettings2_put_PluginDlls(This,rhs) \ + ( (This)->lpVtbl -> put_PluginDlls(This,rhs) ) + +#define IMsRdpClientAdvancedSettings2_put_IconFile(This,rhs) \ + ( (This)->lpVtbl -> put_IconFile(This,rhs) ) + +#define IMsRdpClientAdvancedSettings2_put_IconIndex(This,rhs) \ + ( (This)->lpVtbl -> put_IconIndex(This,rhs) ) + +#define IMsRdpClientAdvancedSettings2_put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ + ( (This)->lpVtbl -> put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) + +#define IMsRdpClientAdvancedSettings2_get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ + ( (This)->lpVtbl -> get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) + +#define IMsRdpClientAdvancedSettings2_put_DisableRdpdr(This,pDisableRdpdr) \ + ( (This)->lpVtbl -> put_DisableRdpdr(This,pDisableRdpdr) ) + +#define IMsRdpClientAdvancedSettings2_get_DisableRdpdr(This,pDisableRdpdr) \ + ( (This)->lpVtbl -> get_DisableRdpdr(This,pDisableRdpdr) ) + + +#define IMsRdpClientAdvancedSettings2_put_SmoothScroll(This,psmoothScroll) \ + ( (This)->lpVtbl -> put_SmoothScroll(This,psmoothScroll) ) + +#define IMsRdpClientAdvancedSettings2_get_SmoothScroll(This,psmoothScroll) \ + ( (This)->lpVtbl -> get_SmoothScroll(This,psmoothScroll) ) + +#define IMsRdpClientAdvancedSettings2_put_AcceleratorPassthrough(This,pacceleratorPassthrough) \ + ( (This)->lpVtbl -> put_AcceleratorPassthrough(This,pacceleratorPassthrough) ) + +#define IMsRdpClientAdvancedSettings2_get_AcceleratorPassthrough(This,pacceleratorPassthrough) \ + ( (This)->lpVtbl -> get_AcceleratorPassthrough(This,pacceleratorPassthrough) ) + +#define IMsRdpClientAdvancedSettings2_put_ShadowBitmap(This,pshadowBitmap) \ + ( (This)->lpVtbl -> put_ShadowBitmap(This,pshadowBitmap) ) + +#define IMsRdpClientAdvancedSettings2_get_ShadowBitmap(This,pshadowBitmap) \ + ( (This)->lpVtbl -> get_ShadowBitmap(This,pshadowBitmap) ) + +#define IMsRdpClientAdvancedSettings2_put_TransportType(This,ptransportType) \ + ( (This)->lpVtbl -> put_TransportType(This,ptransportType) ) + +#define IMsRdpClientAdvancedSettings2_get_TransportType(This,ptransportType) \ + ( (This)->lpVtbl -> get_TransportType(This,ptransportType) ) + +#define IMsRdpClientAdvancedSettings2_put_SasSequence(This,psasSequence) \ + ( (This)->lpVtbl -> put_SasSequence(This,psasSequence) ) + +#define IMsRdpClientAdvancedSettings2_get_SasSequence(This,psasSequence) \ + ( (This)->lpVtbl -> get_SasSequence(This,psasSequence) ) + +#define IMsRdpClientAdvancedSettings2_put_EncryptionEnabled(This,pencryptionEnabled) \ + ( (This)->lpVtbl -> put_EncryptionEnabled(This,pencryptionEnabled) ) + +#define IMsRdpClientAdvancedSettings2_get_EncryptionEnabled(This,pencryptionEnabled) \ + ( (This)->lpVtbl -> get_EncryptionEnabled(This,pencryptionEnabled) ) + +#define IMsRdpClientAdvancedSettings2_put_DedicatedTerminal(This,pdedicatedTerminal) \ + ( (This)->lpVtbl -> put_DedicatedTerminal(This,pdedicatedTerminal) ) + +#define IMsRdpClientAdvancedSettings2_get_DedicatedTerminal(This,pdedicatedTerminal) \ + ( (This)->lpVtbl -> get_DedicatedTerminal(This,pdedicatedTerminal) ) + +#define IMsRdpClientAdvancedSettings2_put_RDPPort(This,prdpPort) \ + ( (This)->lpVtbl -> put_RDPPort(This,prdpPort) ) + +#define IMsRdpClientAdvancedSettings2_get_RDPPort(This,prdpPort) \ + ( (This)->lpVtbl -> get_RDPPort(This,prdpPort) ) + +#define IMsRdpClientAdvancedSettings2_put_EnableMouse(This,penableMouse) \ + ( (This)->lpVtbl -> put_EnableMouse(This,penableMouse) ) + +#define IMsRdpClientAdvancedSettings2_get_EnableMouse(This,penableMouse) \ + ( (This)->lpVtbl -> get_EnableMouse(This,penableMouse) ) + +#define IMsRdpClientAdvancedSettings2_put_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ + ( (This)->lpVtbl -> put_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings2_get_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ + ( (This)->lpVtbl -> get_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings2_put_EnableWindowsKey(This,penableWindowsKey) \ + ( (This)->lpVtbl -> put_EnableWindowsKey(This,penableWindowsKey) ) + +#define IMsRdpClientAdvancedSettings2_get_EnableWindowsKey(This,penableWindowsKey) \ + ( (This)->lpVtbl -> get_EnableWindowsKey(This,penableWindowsKey) ) + +#define IMsRdpClientAdvancedSettings2_put_DoubleClickDetect(This,pdoubleClickDetect) \ + ( (This)->lpVtbl -> put_DoubleClickDetect(This,pdoubleClickDetect) ) + +#define IMsRdpClientAdvancedSettings2_get_DoubleClickDetect(This,pdoubleClickDetect) \ + ( (This)->lpVtbl -> get_DoubleClickDetect(This,pdoubleClickDetect) ) + +#define IMsRdpClientAdvancedSettings2_put_MaximizeShell(This,pmaximizeShell) \ + ( (This)->lpVtbl -> put_MaximizeShell(This,pmaximizeShell) ) + +#define IMsRdpClientAdvancedSettings2_get_MaximizeShell(This,pmaximizeShell) \ + ( (This)->lpVtbl -> get_MaximizeShell(This,pmaximizeShell) ) + +#define IMsRdpClientAdvancedSettings2_put_HotKeyFullScreen(This,photKeyFullScreen) \ + ( (This)->lpVtbl -> put_HotKeyFullScreen(This,photKeyFullScreen) ) + +#define IMsRdpClientAdvancedSettings2_get_HotKeyFullScreen(This,photKeyFullScreen) \ + ( (This)->lpVtbl -> get_HotKeyFullScreen(This,photKeyFullScreen) ) + +#define IMsRdpClientAdvancedSettings2_put_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ + ( (This)->lpVtbl -> put_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) + +#define IMsRdpClientAdvancedSettings2_get_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ + ( (This)->lpVtbl -> get_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) + +#define IMsRdpClientAdvancedSettings2_put_HotKeyAltEsc(This,photKeyAltEsc) \ + ( (This)->lpVtbl -> put_HotKeyAltEsc(This,photKeyAltEsc) ) + +#define IMsRdpClientAdvancedSettings2_get_HotKeyAltEsc(This,photKeyAltEsc) \ + ( (This)->lpVtbl -> get_HotKeyAltEsc(This,photKeyAltEsc) ) + +#define IMsRdpClientAdvancedSettings2_put_HotKeyAltTab(This,photKeyAltTab) \ + ( (This)->lpVtbl -> put_HotKeyAltTab(This,photKeyAltTab) ) + +#define IMsRdpClientAdvancedSettings2_get_HotKeyAltTab(This,photKeyAltTab) \ + ( (This)->lpVtbl -> get_HotKeyAltTab(This,photKeyAltTab) ) + +#define IMsRdpClientAdvancedSettings2_put_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ + ( (This)->lpVtbl -> put_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) + +#define IMsRdpClientAdvancedSettings2_get_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ + ( (This)->lpVtbl -> get_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) + +#define IMsRdpClientAdvancedSettings2_put_HotKeyAltSpace(This,photKeyAltSpace) \ + ( (This)->lpVtbl -> put_HotKeyAltSpace(This,photKeyAltSpace) ) + +#define IMsRdpClientAdvancedSettings2_get_HotKeyAltSpace(This,photKeyAltSpace) \ + ( (This)->lpVtbl -> get_HotKeyAltSpace(This,photKeyAltSpace) ) + +#define IMsRdpClientAdvancedSettings2_put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ + ( (This)->lpVtbl -> put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings2_get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ + ( (This)->lpVtbl -> get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings2_put_orderDrawThreshold(This,porderDrawThreshold) \ + ( (This)->lpVtbl -> put_orderDrawThreshold(This,porderDrawThreshold) ) + +#define IMsRdpClientAdvancedSettings2_get_orderDrawThreshold(This,porderDrawThreshold) \ + ( (This)->lpVtbl -> get_orderDrawThreshold(This,porderDrawThreshold) ) + +#define IMsRdpClientAdvancedSettings2_put_BitmapCacheSize(This,pbitmapCacheSize) \ + ( (This)->lpVtbl -> put_BitmapCacheSize(This,pbitmapCacheSize) ) + +#define IMsRdpClientAdvancedSettings2_get_BitmapCacheSize(This,pbitmapCacheSize) \ + ( (This)->lpVtbl -> get_BitmapCacheSize(This,pbitmapCacheSize) ) + +#define IMsRdpClientAdvancedSettings2_put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ + ( (This)->lpVtbl -> put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) + +#define IMsRdpClientAdvancedSettings2_get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ + ( (This)->lpVtbl -> get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) + +#define IMsRdpClientAdvancedSettings2_put_ScaleBitmapCachesByBPP(This,pbScale) \ + ( (This)->lpVtbl -> put_ScaleBitmapCachesByBPP(This,pbScale) ) + +#define IMsRdpClientAdvancedSettings2_get_ScaleBitmapCachesByBPP(This,pbScale) \ + ( (This)->lpVtbl -> get_ScaleBitmapCachesByBPP(This,pbScale) ) + +#define IMsRdpClientAdvancedSettings2_put_NumBitmapCaches(This,pnumBitmapCaches) \ + ( (This)->lpVtbl -> put_NumBitmapCaches(This,pnumBitmapCaches) ) + +#define IMsRdpClientAdvancedSettings2_get_NumBitmapCaches(This,pnumBitmapCaches) \ + ( (This)->lpVtbl -> get_NumBitmapCaches(This,pnumBitmapCaches) ) + +#define IMsRdpClientAdvancedSettings2_put_CachePersistenceActive(This,pcachePersistenceActive) \ + ( (This)->lpVtbl -> put_CachePersistenceActive(This,pcachePersistenceActive) ) + +#define IMsRdpClientAdvancedSettings2_get_CachePersistenceActive(This,pcachePersistenceActive) \ + ( (This)->lpVtbl -> get_CachePersistenceActive(This,pcachePersistenceActive) ) + +#define IMsRdpClientAdvancedSettings2_put_PersistCacheDirectory(This,rhs) \ + ( (This)->lpVtbl -> put_PersistCacheDirectory(This,rhs) ) + +#define IMsRdpClientAdvancedSettings2_put_brushSupportLevel(This,pbrushSupportLevel) \ + ( (This)->lpVtbl -> put_brushSupportLevel(This,pbrushSupportLevel) ) + +#define IMsRdpClientAdvancedSettings2_get_brushSupportLevel(This,pbrushSupportLevel) \ + ( (This)->lpVtbl -> get_brushSupportLevel(This,pbrushSupportLevel) ) + +#define IMsRdpClientAdvancedSettings2_put_minInputSendInterval(This,pminInputSendInterval) \ + ( (This)->lpVtbl -> put_minInputSendInterval(This,pminInputSendInterval) ) + +#define IMsRdpClientAdvancedSettings2_get_minInputSendInterval(This,pminInputSendInterval) \ + ( (This)->lpVtbl -> get_minInputSendInterval(This,pminInputSendInterval) ) + +#define IMsRdpClientAdvancedSettings2_put_InputEventsAtOnce(This,pinputEventsAtOnce) \ + ( (This)->lpVtbl -> put_InputEventsAtOnce(This,pinputEventsAtOnce) ) + +#define IMsRdpClientAdvancedSettings2_get_InputEventsAtOnce(This,pinputEventsAtOnce) \ + ( (This)->lpVtbl -> get_InputEventsAtOnce(This,pinputEventsAtOnce) ) + +#define IMsRdpClientAdvancedSettings2_put_maxEventCount(This,pmaxEventCount) \ + ( (This)->lpVtbl -> put_maxEventCount(This,pmaxEventCount) ) + +#define IMsRdpClientAdvancedSettings2_get_maxEventCount(This,pmaxEventCount) \ + ( (This)->lpVtbl -> get_maxEventCount(This,pmaxEventCount) ) + +#define IMsRdpClientAdvancedSettings2_put_keepAliveInterval(This,pkeepAliveInterval) \ + ( (This)->lpVtbl -> put_keepAliveInterval(This,pkeepAliveInterval) ) + +#define IMsRdpClientAdvancedSettings2_get_keepAliveInterval(This,pkeepAliveInterval) \ + ( (This)->lpVtbl -> get_keepAliveInterval(This,pkeepAliveInterval) ) + +#define IMsRdpClientAdvancedSettings2_put_shutdownTimeout(This,pshutdownTimeout) \ + ( (This)->lpVtbl -> put_shutdownTimeout(This,pshutdownTimeout) ) + +#define IMsRdpClientAdvancedSettings2_get_shutdownTimeout(This,pshutdownTimeout) \ + ( (This)->lpVtbl -> get_shutdownTimeout(This,pshutdownTimeout) ) + +#define IMsRdpClientAdvancedSettings2_put_overallConnectionTimeout(This,poverallConnectionTimeout) \ + ( (This)->lpVtbl -> put_overallConnectionTimeout(This,poverallConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings2_get_overallConnectionTimeout(This,poverallConnectionTimeout) \ + ( (This)->lpVtbl -> get_overallConnectionTimeout(This,poverallConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings2_put_singleConnectionTimeout(This,psingleConnectionTimeout) \ + ( (This)->lpVtbl -> put_singleConnectionTimeout(This,psingleConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings2_get_singleConnectionTimeout(This,psingleConnectionTimeout) \ + ( (This)->lpVtbl -> get_singleConnectionTimeout(This,psingleConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings2_put_KeyboardType(This,pkeyboardType) \ + ( (This)->lpVtbl -> put_KeyboardType(This,pkeyboardType) ) + +#define IMsRdpClientAdvancedSettings2_get_KeyboardType(This,pkeyboardType) \ + ( (This)->lpVtbl -> get_KeyboardType(This,pkeyboardType) ) + +#define IMsRdpClientAdvancedSettings2_put_KeyboardSubType(This,pkeyboardSubType) \ + ( (This)->lpVtbl -> put_KeyboardSubType(This,pkeyboardSubType) ) + +#define IMsRdpClientAdvancedSettings2_get_KeyboardSubType(This,pkeyboardSubType) \ + ( (This)->lpVtbl -> get_KeyboardSubType(This,pkeyboardSubType) ) + +#define IMsRdpClientAdvancedSettings2_put_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ + ( (This)->lpVtbl -> put_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) + +#define IMsRdpClientAdvancedSettings2_get_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ + ( (This)->lpVtbl -> get_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) + +#define IMsRdpClientAdvancedSettings2_put_WinceFixedPalette(This,pwinceFixedPalette) \ + ( (This)->lpVtbl -> put_WinceFixedPalette(This,pwinceFixedPalette) ) + +#define IMsRdpClientAdvancedSettings2_get_WinceFixedPalette(This,pwinceFixedPalette) \ + ( (This)->lpVtbl -> get_WinceFixedPalette(This,pwinceFixedPalette) ) + +#define IMsRdpClientAdvancedSettings2_put_ConnectToServerConsole(This,pConnectToConsole) \ + ( (This)->lpVtbl -> put_ConnectToServerConsole(This,pConnectToConsole) ) + +#define IMsRdpClientAdvancedSettings2_get_ConnectToServerConsole(This,pConnectToConsole) \ + ( (This)->lpVtbl -> get_ConnectToServerConsole(This,pConnectToConsole) ) + +#define IMsRdpClientAdvancedSettings2_put_BitmapPersistence(This,pbitmapPersistence) \ + ( (This)->lpVtbl -> put_BitmapPersistence(This,pbitmapPersistence) ) + +#define IMsRdpClientAdvancedSettings2_get_BitmapPersistence(This,pbitmapPersistence) \ + ( (This)->lpVtbl -> get_BitmapPersistence(This,pbitmapPersistence) ) + +#define IMsRdpClientAdvancedSettings2_put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ + ( (This)->lpVtbl -> put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) + +#define IMsRdpClientAdvancedSettings2_get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ + ( (This)->lpVtbl -> get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) + +#define IMsRdpClientAdvancedSettings2_put_SmartSizing(This,pfSmartSizing) \ + ( (This)->lpVtbl -> put_SmartSizing(This,pfSmartSizing) ) + +#define IMsRdpClientAdvancedSettings2_get_SmartSizing(This,pfSmartSizing) \ + ( (This)->lpVtbl -> get_SmartSizing(This,pfSmartSizing) ) + +#define IMsRdpClientAdvancedSettings2_put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ + ( (This)->lpVtbl -> put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) + +#define IMsRdpClientAdvancedSettings2_get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ + ( (This)->lpVtbl -> get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) + +#define IMsRdpClientAdvancedSettings2_put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ + ( (This)->lpVtbl -> put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) + +#define IMsRdpClientAdvancedSettings2_get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ + ( (This)->lpVtbl -> get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) + +#define IMsRdpClientAdvancedSettings2_put_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ + ( (This)->lpVtbl -> put_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) + +#define IMsRdpClientAdvancedSettings2_get_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ + ( (This)->lpVtbl -> get_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) + +#define IMsRdpClientAdvancedSettings2_put_ClearTextPassword(This,rhs) \ + ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) + +#define IMsRdpClientAdvancedSettings2_put_DisplayConnectionBar(This,pDisplayConnectionBar) \ + ( (This)->lpVtbl -> put_DisplayConnectionBar(This,pDisplayConnectionBar) ) + +#define IMsRdpClientAdvancedSettings2_get_DisplayConnectionBar(This,pDisplayConnectionBar) \ + ( (This)->lpVtbl -> get_DisplayConnectionBar(This,pDisplayConnectionBar) ) + +#define IMsRdpClientAdvancedSettings2_put_PinConnectionBar(This,pPinConnectionBar) \ + ( (This)->lpVtbl -> put_PinConnectionBar(This,pPinConnectionBar) ) + +#define IMsRdpClientAdvancedSettings2_get_PinConnectionBar(This,pPinConnectionBar) \ + ( (This)->lpVtbl -> get_PinConnectionBar(This,pPinConnectionBar) ) + +#define IMsRdpClientAdvancedSettings2_put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ + ( (This)->lpVtbl -> put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) + +#define IMsRdpClientAdvancedSettings2_get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ + ( (This)->lpVtbl -> get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) + +#define IMsRdpClientAdvancedSettings2_put_LoadBalanceInfo(This,pLBInfo) \ + ( (This)->lpVtbl -> put_LoadBalanceInfo(This,pLBInfo) ) + +#define IMsRdpClientAdvancedSettings2_get_LoadBalanceInfo(This,pLBInfo) \ + ( (This)->lpVtbl -> get_LoadBalanceInfo(This,pLBInfo) ) + +#define IMsRdpClientAdvancedSettings2_put_RedirectDrives(This,pRedirectDrives) \ + ( (This)->lpVtbl -> put_RedirectDrives(This,pRedirectDrives) ) + +#define IMsRdpClientAdvancedSettings2_get_RedirectDrives(This,pRedirectDrives) \ + ( (This)->lpVtbl -> get_RedirectDrives(This,pRedirectDrives) ) + +#define IMsRdpClientAdvancedSettings2_put_RedirectPrinters(This,pRedirectPrinters) \ + ( (This)->lpVtbl -> put_RedirectPrinters(This,pRedirectPrinters) ) + +#define IMsRdpClientAdvancedSettings2_get_RedirectPrinters(This,pRedirectPrinters) \ + ( (This)->lpVtbl -> get_RedirectPrinters(This,pRedirectPrinters) ) + +#define IMsRdpClientAdvancedSettings2_put_RedirectPorts(This,pRedirectPorts) \ + ( (This)->lpVtbl -> put_RedirectPorts(This,pRedirectPorts) ) + +#define IMsRdpClientAdvancedSettings2_get_RedirectPorts(This,pRedirectPorts) \ + ( (This)->lpVtbl -> get_RedirectPorts(This,pRedirectPorts) ) + +#define IMsRdpClientAdvancedSettings2_put_RedirectSmartCards(This,pRedirectSmartCards) \ + ( (This)->lpVtbl -> put_RedirectSmartCards(This,pRedirectSmartCards) ) + +#define IMsRdpClientAdvancedSettings2_get_RedirectSmartCards(This,pRedirectSmartCards) \ + ( (This)->lpVtbl -> get_RedirectSmartCards(This,pRedirectSmartCards) ) + +#define IMsRdpClientAdvancedSettings2_put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ + ( (This)->lpVtbl -> put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) + +#define IMsRdpClientAdvancedSettings2_get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ + ( (This)->lpVtbl -> get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) + +#define IMsRdpClientAdvancedSettings2_put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ + ( (This)->lpVtbl -> put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) + +#define IMsRdpClientAdvancedSettings2_get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ + ( (This)->lpVtbl -> get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) + +#define IMsRdpClientAdvancedSettings2_put_PerformanceFlags(This,pDisableList) \ + ( (This)->lpVtbl -> put_PerformanceFlags(This,pDisableList) ) + +#define IMsRdpClientAdvancedSettings2_get_PerformanceFlags(This,pDisableList) \ + ( (This)->lpVtbl -> get_PerformanceFlags(This,pDisableList) ) + +#define IMsRdpClientAdvancedSettings2_put_ConnectWithEndpoint(This,rhs) \ + ( (This)->lpVtbl -> put_ConnectWithEndpoint(This,rhs) ) + +#define IMsRdpClientAdvancedSettings2_put_NotifyTSPublicKey(This,pfNotify) \ + ( (This)->lpVtbl -> put_NotifyTSPublicKey(This,pfNotify) ) + +#define IMsRdpClientAdvancedSettings2_get_NotifyTSPublicKey(This,pfNotify) \ + ( (This)->lpVtbl -> get_NotifyTSPublicKey(This,pfNotify) ) + + +#define IMsRdpClientAdvancedSettings2_get_CanAutoReconnect(This,pfCanAutoReconnect) \ + ( (This)->lpVtbl -> get_CanAutoReconnect(This,pfCanAutoReconnect) ) + +#define IMsRdpClientAdvancedSettings2_put_EnableAutoReconnect(This,pfEnableAutoReconnect) \ + ( (This)->lpVtbl -> put_EnableAutoReconnect(This,pfEnableAutoReconnect) ) + +#define IMsRdpClientAdvancedSettings2_get_EnableAutoReconnect(This,pfEnableAutoReconnect) \ + ( (This)->lpVtbl -> get_EnableAutoReconnect(This,pfEnableAutoReconnect) ) + +#define IMsRdpClientAdvancedSettings2_put_MaxReconnectAttempts(This,pMaxReconnectAttempts) \ + ( (This)->lpVtbl -> put_MaxReconnectAttempts(This,pMaxReconnectAttempts) ) + +#define IMsRdpClientAdvancedSettings2_get_MaxReconnectAttempts(This,pMaxReconnectAttempts) \ + ( (This)->lpVtbl -> get_MaxReconnectAttempts(This,pMaxReconnectAttempts) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings2_get_CanAutoReconnect_Proxy( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pfCanAutoReconnect); + + +void __RPC_STUB IMsRdpClientAdvancedSettings2_get_CanAutoReconnect_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings2_put_EnableAutoReconnect_Proxy( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ VARIANT_BOOL pfEnableAutoReconnect); + + +void __RPC_STUB IMsRdpClientAdvancedSettings2_put_EnableAutoReconnect_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings2_get_EnableAutoReconnect_Proxy( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ VARIANT_BOOL *pfEnableAutoReconnect); + + +void __RPC_STUB IMsRdpClientAdvancedSettings2_get_EnableAutoReconnect_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings2_put_MaxReconnectAttempts_Proxy( + IMsRdpClientAdvancedSettings2 * This, + /* [in] */ long pMaxReconnectAttempts); + + +void __RPC_STUB IMsRdpClientAdvancedSettings2_put_MaxReconnectAttempts_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings2_get_MaxReconnectAttempts_Proxy( + IMsRdpClientAdvancedSettings2 * This, + /* [retval][out] */ long *pMaxReconnectAttempts); + + +void __RPC_STUB IMsRdpClientAdvancedSettings2_get_MaxReconnectAttempts_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __IMsRdpClientAdvancedSettings2_INTERFACE_DEFINED__ */ + + +#ifndef __IMsRdpClientAdvancedSettings3_INTERFACE_DEFINED__ +#define __IMsRdpClientAdvancedSettings3_INTERFACE_DEFINED__ + +/* interface IMsRdpClientAdvancedSettings3 */ +/* [object][oleautomation][dual][uuid] */ + + +EXTERN_C const IID IID_IMsRdpClientAdvancedSettings3; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("19CD856B-C542-4C53-ACEE-F127E3BE1A59") + IMsRdpClientAdvancedSettings3 : public IMsRdpClientAdvancedSettings2 + { + public: + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectionBarShowMinimizeButton( + /* [in] */ VARIANT_BOOL pfShowMinimize) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ConnectionBarShowMinimizeButton( + /* [retval][out] */ VARIANT_BOOL *pfShowMinimize) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectionBarShowRestoreButton( + /* [in] */ VARIANT_BOOL pfShowRestore) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ConnectionBarShowRestoreButton( + /* [retval][out] */ VARIANT_BOOL *pfShowRestore) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsRdpClientAdvancedSettings3Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsRdpClientAdvancedSettings3 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsRdpClientAdvancedSettings3 * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsRdpClientAdvancedSettings3 * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Compress )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pcompress); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Compress )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pcompress); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPeristence )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pbitmapPeristence); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPeristence )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pbitmapPeristence); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_allowBackgroundInput )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pallowBackgroundInput); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_allowBackgroundInput )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pallowBackgroundInput); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyBoardLayoutStr )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PluginDlls )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconFile )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconIndex )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerHandledFullScreen )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pContainerHandledFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerHandledFullScreen )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pContainerHandledFullScreen); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableRdpdr )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pDisableRdpdr); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableRdpdr )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pDisableRdpdr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmoothScroll )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long psmoothScroll); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmoothScroll )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *psmoothScroll); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AcceleratorPassthrough )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pacceleratorPassthrough); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AcceleratorPassthrough )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pacceleratorPassthrough); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShadowBitmap )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pshadowBitmap); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShadowBitmap )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pshadowBitmap); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TransportType )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long ptransportType); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TransportType )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *ptransportType); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SasSequence )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long psasSequence); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SasSequence )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *psasSequence); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EncryptionEnabled )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pencryptionEnabled); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EncryptionEnabled )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pencryptionEnabled); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DedicatedTerminal )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pdedicatedTerminal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DedicatedTerminal )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pdedicatedTerminal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RDPPort )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long prdpPort); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RDPPort )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *prdpPort); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableMouse )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long penableMouse); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableMouse )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *penableMouse); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableCtrlAltDel )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pdisableCtrlAltDel); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableCtrlAltDel )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pdisableCtrlAltDel); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableWindowsKey )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long penableWindowsKey); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableWindowsKey )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *penableWindowsKey); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DoubleClickDetect )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pdoubleClickDetect); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DoubleClickDetect )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pdoubleClickDetect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaximizeShell )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pmaximizeShell); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaximizeShell )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pmaximizeShell); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyFullScreen )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long photKeyFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyFullScreen )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *photKeyFullScreen); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlEsc )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long photKeyCtrlEsc); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlEsc )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *photKeyCtrlEsc); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltEsc )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long photKeyAltEsc); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltEsc )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *photKeyAltEsc); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltTab )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long photKeyAltTab); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltTab )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *photKeyAltTab); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltShiftTab )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long photKeyAltShiftTab); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltShiftTab )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *photKeyAltShiftTab); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltSpace )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long photKeyAltSpace); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltSpace )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *photKeyAltSpace); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlAltDel )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long photKeyCtrlAltDel); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlAltDel )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *photKeyCtrlAltDel); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_orderDrawThreshold )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long porderDrawThreshold); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_orderDrawThreshold )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *porderDrawThreshold); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapCacheSize )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pbitmapCacheSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapCacheSize )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pbitmapCacheSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCacheSize )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pbitmapVirtualCacheSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCacheSize )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pbitmapVirtualCacheSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleBitmapCachesByBPP )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pbScale); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleBitmapCachesByBPP )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pbScale); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NumBitmapCaches )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pnumBitmapCaches); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumBitmapCaches )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pnumBitmapCaches); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CachePersistenceActive )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pcachePersistenceActive); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CachePersistenceActive )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pcachePersistenceActive); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PersistCacheDirectory )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_brushSupportLevel )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pbrushSupportLevel); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_brushSupportLevel )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pbrushSupportLevel); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_minInputSendInterval )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pminInputSendInterval); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_minInputSendInterval )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pminInputSendInterval); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InputEventsAtOnce )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pinputEventsAtOnce); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InputEventsAtOnce )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pinputEventsAtOnce); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_maxEventCount )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pmaxEventCount); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_maxEventCount )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pmaxEventCount); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_keepAliveInterval )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pkeepAliveInterval); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_keepAliveInterval )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pkeepAliveInterval); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_shutdownTimeout )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pshutdownTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_shutdownTimeout )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pshutdownTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_overallConnectionTimeout )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long poverallConnectionTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_overallConnectionTimeout )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *poverallConnectionTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_singleConnectionTimeout )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long psingleConnectionTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_singleConnectionTimeout )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *psingleConnectionTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardType )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pkeyboardType); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardType )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pkeyboardType); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardSubType )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pkeyboardSubType); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardSubType )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pkeyboardSubType); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardFunctionKey )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pkeyboardFunctionKey); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardFunctionKey )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pkeyboardFunctionKey); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WinceFixedPalette )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pwinceFixedPalette); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WinceFixedPalette )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pwinceFixedPalette); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectToServerConsole )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pConnectToConsole); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectToServerConsole )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pConnectToConsole); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPersistence )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pbitmapPersistence); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPersistence )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pbitmapPersistence); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MinutesToIdleTimeout )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pminutesToIdleTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MinutesToIdleTimeout )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pminutesToIdleTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmartSizing )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pfSmartSizing); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmartSizing )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pfSmartSizing); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrLocalPrintingDocName )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ BSTR pLocalPrintingDocName); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrLocalPrintingDocName )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ BSTR *pLocalPrintingDocName); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipCleanTempDirString )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ BSTR clipCleanTempDirString); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipCleanTempDirString )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ BSTR *clipCleanTempDirString); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipPasteInfoString )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ BSTR clipPasteInfoString); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipPasteInfoString )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ BSTR *clipPasteInfoString); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisplayConnectionBar )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pDisplayConnectionBar); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisplayConnectionBar )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pDisplayConnectionBar); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PinConnectionBar )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pPinConnectionBar); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PinConnectionBar )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pPinConnectionBar); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GrabFocusOnConnect )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pfGrabFocusOnConnect); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GrabFocusOnConnect )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pfGrabFocusOnConnect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LoadBalanceInfo )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ BSTR pLBInfo); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LoadBalanceInfo )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ BSTR *pLBInfo); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectDrives )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pRedirectDrives); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectDrives )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectDrives); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPrinters )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pRedirectPrinters); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPrinters )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectPrinters); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPorts )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pRedirectPorts); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPorts )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectPorts); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectSmartCards )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pRedirectSmartCards); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectSmartCards )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache16BppSize )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pBitmapVirtualCache16BppSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache16BppSize )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pBitmapVirtualCache16BppSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache24BppSize )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pBitmapVirtualCache24BppSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache24BppSize )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pBitmapVirtualCache24BppSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PerformanceFlags )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pDisableList); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PerformanceFlags )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pDisableList); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectWithEndpoint )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT *rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NotifyTSPublicKey )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pfNotify); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NotifyTSPublicKey )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pfNotify); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CanAutoReconnect )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pfCanAutoReconnect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableAutoReconnect )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pfEnableAutoReconnect); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableAutoReconnect )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pfEnableAutoReconnect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaxReconnectAttempts )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ long pMaxReconnectAttempts); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaxReconnectAttempts )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ long *pMaxReconnectAttempts); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectionBarShowMinimizeButton )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pfShowMinimize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectionBarShowMinimizeButton )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pfShowMinimize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectionBarShowRestoreButton )( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pfShowRestore); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectionBarShowRestoreButton )( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pfShowRestore); + + END_INTERFACE + } IMsRdpClientAdvancedSettings3Vtbl; + + interface IMsRdpClientAdvancedSettings3 + { + CONST_VTBL struct IMsRdpClientAdvancedSettings3Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsRdpClientAdvancedSettings3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsRdpClientAdvancedSettings3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsRdpClientAdvancedSettings3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsRdpClientAdvancedSettings3_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsRdpClientAdvancedSettings3_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsRdpClientAdvancedSettings3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsRdpClientAdvancedSettings3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IMsRdpClientAdvancedSettings3_put_Compress(This,pcompress) \ + ( (This)->lpVtbl -> put_Compress(This,pcompress) ) + +#define IMsRdpClientAdvancedSettings3_get_Compress(This,pcompress) \ + ( (This)->lpVtbl -> get_Compress(This,pcompress) ) + +#define IMsRdpClientAdvancedSettings3_put_BitmapPeristence(This,pbitmapPeristence) \ + ( (This)->lpVtbl -> put_BitmapPeristence(This,pbitmapPeristence) ) + +#define IMsRdpClientAdvancedSettings3_get_BitmapPeristence(This,pbitmapPeristence) \ + ( (This)->lpVtbl -> get_BitmapPeristence(This,pbitmapPeristence) ) + +#define IMsRdpClientAdvancedSettings3_put_allowBackgroundInput(This,pallowBackgroundInput) \ + ( (This)->lpVtbl -> put_allowBackgroundInput(This,pallowBackgroundInput) ) + +#define IMsRdpClientAdvancedSettings3_get_allowBackgroundInput(This,pallowBackgroundInput) \ + ( (This)->lpVtbl -> get_allowBackgroundInput(This,pallowBackgroundInput) ) + +#define IMsRdpClientAdvancedSettings3_put_KeyBoardLayoutStr(This,rhs) \ + ( (This)->lpVtbl -> put_KeyBoardLayoutStr(This,rhs) ) + +#define IMsRdpClientAdvancedSettings3_put_PluginDlls(This,rhs) \ + ( (This)->lpVtbl -> put_PluginDlls(This,rhs) ) + +#define IMsRdpClientAdvancedSettings3_put_IconFile(This,rhs) \ + ( (This)->lpVtbl -> put_IconFile(This,rhs) ) + +#define IMsRdpClientAdvancedSettings3_put_IconIndex(This,rhs) \ + ( (This)->lpVtbl -> put_IconIndex(This,rhs) ) + +#define IMsRdpClientAdvancedSettings3_put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ + ( (This)->lpVtbl -> put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) + +#define IMsRdpClientAdvancedSettings3_get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ + ( (This)->lpVtbl -> get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) + +#define IMsRdpClientAdvancedSettings3_put_DisableRdpdr(This,pDisableRdpdr) \ + ( (This)->lpVtbl -> put_DisableRdpdr(This,pDisableRdpdr) ) + +#define IMsRdpClientAdvancedSettings3_get_DisableRdpdr(This,pDisableRdpdr) \ + ( (This)->lpVtbl -> get_DisableRdpdr(This,pDisableRdpdr) ) + + +#define IMsRdpClientAdvancedSettings3_put_SmoothScroll(This,psmoothScroll) \ + ( (This)->lpVtbl -> put_SmoothScroll(This,psmoothScroll) ) + +#define IMsRdpClientAdvancedSettings3_get_SmoothScroll(This,psmoothScroll) \ + ( (This)->lpVtbl -> get_SmoothScroll(This,psmoothScroll) ) + +#define IMsRdpClientAdvancedSettings3_put_AcceleratorPassthrough(This,pacceleratorPassthrough) \ + ( (This)->lpVtbl -> put_AcceleratorPassthrough(This,pacceleratorPassthrough) ) + +#define IMsRdpClientAdvancedSettings3_get_AcceleratorPassthrough(This,pacceleratorPassthrough) \ + ( (This)->lpVtbl -> get_AcceleratorPassthrough(This,pacceleratorPassthrough) ) + +#define IMsRdpClientAdvancedSettings3_put_ShadowBitmap(This,pshadowBitmap) \ + ( (This)->lpVtbl -> put_ShadowBitmap(This,pshadowBitmap) ) + +#define IMsRdpClientAdvancedSettings3_get_ShadowBitmap(This,pshadowBitmap) \ + ( (This)->lpVtbl -> get_ShadowBitmap(This,pshadowBitmap) ) + +#define IMsRdpClientAdvancedSettings3_put_TransportType(This,ptransportType) \ + ( (This)->lpVtbl -> put_TransportType(This,ptransportType) ) + +#define IMsRdpClientAdvancedSettings3_get_TransportType(This,ptransportType) \ + ( (This)->lpVtbl -> get_TransportType(This,ptransportType) ) + +#define IMsRdpClientAdvancedSettings3_put_SasSequence(This,psasSequence) \ + ( (This)->lpVtbl -> put_SasSequence(This,psasSequence) ) + +#define IMsRdpClientAdvancedSettings3_get_SasSequence(This,psasSequence) \ + ( (This)->lpVtbl -> get_SasSequence(This,psasSequence) ) + +#define IMsRdpClientAdvancedSettings3_put_EncryptionEnabled(This,pencryptionEnabled) \ + ( (This)->lpVtbl -> put_EncryptionEnabled(This,pencryptionEnabled) ) + +#define IMsRdpClientAdvancedSettings3_get_EncryptionEnabled(This,pencryptionEnabled) \ + ( (This)->lpVtbl -> get_EncryptionEnabled(This,pencryptionEnabled) ) + +#define IMsRdpClientAdvancedSettings3_put_DedicatedTerminal(This,pdedicatedTerminal) \ + ( (This)->lpVtbl -> put_DedicatedTerminal(This,pdedicatedTerminal) ) + +#define IMsRdpClientAdvancedSettings3_get_DedicatedTerminal(This,pdedicatedTerminal) \ + ( (This)->lpVtbl -> get_DedicatedTerminal(This,pdedicatedTerminal) ) + +#define IMsRdpClientAdvancedSettings3_put_RDPPort(This,prdpPort) \ + ( (This)->lpVtbl -> put_RDPPort(This,prdpPort) ) + +#define IMsRdpClientAdvancedSettings3_get_RDPPort(This,prdpPort) \ + ( (This)->lpVtbl -> get_RDPPort(This,prdpPort) ) + +#define IMsRdpClientAdvancedSettings3_put_EnableMouse(This,penableMouse) \ + ( (This)->lpVtbl -> put_EnableMouse(This,penableMouse) ) + +#define IMsRdpClientAdvancedSettings3_get_EnableMouse(This,penableMouse) \ + ( (This)->lpVtbl -> get_EnableMouse(This,penableMouse) ) + +#define IMsRdpClientAdvancedSettings3_put_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ + ( (This)->lpVtbl -> put_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings3_get_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ + ( (This)->lpVtbl -> get_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings3_put_EnableWindowsKey(This,penableWindowsKey) \ + ( (This)->lpVtbl -> put_EnableWindowsKey(This,penableWindowsKey) ) + +#define IMsRdpClientAdvancedSettings3_get_EnableWindowsKey(This,penableWindowsKey) \ + ( (This)->lpVtbl -> get_EnableWindowsKey(This,penableWindowsKey) ) + +#define IMsRdpClientAdvancedSettings3_put_DoubleClickDetect(This,pdoubleClickDetect) \ + ( (This)->lpVtbl -> put_DoubleClickDetect(This,pdoubleClickDetect) ) + +#define IMsRdpClientAdvancedSettings3_get_DoubleClickDetect(This,pdoubleClickDetect) \ + ( (This)->lpVtbl -> get_DoubleClickDetect(This,pdoubleClickDetect) ) + +#define IMsRdpClientAdvancedSettings3_put_MaximizeShell(This,pmaximizeShell) \ + ( (This)->lpVtbl -> put_MaximizeShell(This,pmaximizeShell) ) + +#define IMsRdpClientAdvancedSettings3_get_MaximizeShell(This,pmaximizeShell) \ + ( (This)->lpVtbl -> get_MaximizeShell(This,pmaximizeShell) ) + +#define IMsRdpClientAdvancedSettings3_put_HotKeyFullScreen(This,photKeyFullScreen) \ + ( (This)->lpVtbl -> put_HotKeyFullScreen(This,photKeyFullScreen) ) + +#define IMsRdpClientAdvancedSettings3_get_HotKeyFullScreen(This,photKeyFullScreen) \ + ( (This)->lpVtbl -> get_HotKeyFullScreen(This,photKeyFullScreen) ) + +#define IMsRdpClientAdvancedSettings3_put_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ + ( (This)->lpVtbl -> put_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) + +#define IMsRdpClientAdvancedSettings3_get_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ + ( (This)->lpVtbl -> get_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) + +#define IMsRdpClientAdvancedSettings3_put_HotKeyAltEsc(This,photKeyAltEsc) \ + ( (This)->lpVtbl -> put_HotKeyAltEsc(This,photKeyAltEsc) ) + +#define IMsRdpClientAdvancedSettings3_get_HotKeyAltEsc(This,photKeyAltEsc) \ + ( (This)->lpVtbl -> get_HotKeyAltEsc(This,photKeyAltEsc) ) + +#define IMsRdpClientAdvancedSettings3_put_HotKeyAltTab(This,photKeyAltTab) \ + ( (This)->lpVtbl -> put_HotKeyAltTab(This,photKeyAltTab) ) + +#define IMsRdpClientAdvancedSettings3_get_HotKeyAltTab(This,photKeyAltTab) \ + ( (This)->lpVtbl -> get_HotKeyAltTab(This,photKeyAltTab) ) + +#define IMsRdpClientAdvancedSettings3_put_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ + ( (This)->lpVtbl -> put_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) + +#define IMsRdpClientAdvancedSettings3_get_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ + ( (This)->lpVtbl -> get_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) + +#define IMsRdpClientAdvancedSettings3_put_HotKeyAltSpace(This,photKeyAltSpace) \ + ( (This)->lpVtbl -> put_HotKeyAltSpace(This,photKeyAltSpace) ) + +#define IMsRdpClientAdvancedSettings3_get_HotKeyAltSpace(This,photKeyAltSpace) \ + ( (This)->lpVtbl -> get_HotKeyAltSpace(This,photKeyAltSpace) ) + +#define IMsRdpClientAdvancedSettings3_put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ + ( (This)->lpVtbl -> put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings3_get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ + ( (This)->lpVtbl -> get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings3_put_orderDrawThreshold(This,porderDrawThreshold) \ + ( (This)->lpVtbl -> put_orderDrawThreshold(This,porderDrawThreshold) ) + +#define IMsRdpClientAdvancedSettings3_get_orderDrawThreshold(This,porderDrawThreshold) \ + ( (This)->lpVtbl -> get_orderDrawThreshold(This,porderDrawThreshold) ) + +#define IMsRdpClientAdvancedSettings3_put_BitmapCacheSize(This,pbitmapCacheSize) \ + ( (This)->lpVtbl -> put_BitmapCacheSize(This,pbitmapCacheSize) ) + +#define IMsRdpClientAdvancedSettings3_get_BitmapCacheSize(This,pbitmapCacheSize) \ + ( (This)->lpVtbl -> get_BitmapCacheSize(This,pbitmapCacheSize) ) + +#define IMsRdpClientAdvancedSettings3_put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ + ( (This)->lpVtbl -> put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) + +#define IMsRdpClientAdvancedSettings3_get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ + ( (This)->lpVtbl -> get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) + +#define IMsRdpClientAdvancedSettings3_put_ScaleBitmapCachesByBPP(This,pbScale) \ + ( (This)->lpVtbl -> put_ScaleBitmapCachesByBPP(This,pbScale) ) + +#define IMsRdpClientAdvancedSettings3_get_ScaleBitmapCachesByBPP(This,pbScale) \ + ( (This)->lpVtbl -> get_ScaleBitmapCachesByBPP(This,pbScale) ) + +#define IMsRdpClientAdvancedSettings3_put_NumBitmapCaches(This,pnumBitmapCaches) \ + ( (This)->lpVtbl -> put_NumBitmapCaches(This,pnumBitmapCaches) ) + +#define IMsRdpClientAdvancedSettings3_get_NumBitmapCaches(This,pnumBitmapCaches) \ + ( (This)->lpVtbl -> get_NumBitmapCaches(This,pnumBitmapCaches) ) + +#define IMsRdpClientAdvancedSettings3_put_CachePersistenceActive(This,pcachePersistenceActive) \ + ( (This)->lpVtbl -> put_CachePersistenceActive(This,pcachePersistenceActive) ) + +#define IMsRdpClientAdvancedSettings3_get_CachePersistenceActive(This,pcachePersistenceActive) \ + ( (This)->lpVtbl -> get_CachePersistenceActive(This,pcachePersistenceActive) ) + +#define IMsRdpClientAdvancedSettings3_put_PersistCacheDirectory(This,rhs) \ + ( (This)->lpVtbl -> put_PersistCacheDirectory(This,rhs) ) + +#define IMsRdpClientAdvancedSettings3_put_brushSupportLevel(This,pbrushSupportLevel) \ + ( (This)->lpVtbl -> put_brushSupportLevel(This,pbrushSupportLevel) ) + +#define IMsRdpClientAdvancedSettings3_get_brushSupportLevel(This,pbrushSupportLevel) \ + ( (This)->lpVtbl -> get_brushSupportLevel(This,pbrushSupportLevel) ) + +#define IMsRdpClientAdvancedSettings3_put_minInputSendInterval(This,pminInputSendInterval) \ + ( (This)->lpVtbl -> put_minInputSendInterval(This,pminInputSendInterval) ) + +#define IMsRdpClientAdvancedSettings3_get_minInputSendInterval(This,pminInputSendInterval) \ + ( (This)->lpVtbl -> get_minInputSendInterval(This,pminInputSendInterval) ) + +#define IMsRdpClientAdvancedSettings3_put_InputEventsAtOnce(This,pinputEventsAtOnce) \ + ( (This)->lpVtbl -> put_InputEventsAtOnce(This,pinputEventsAtOnce) ) + +#define IMsRdpClientAdvancedSettings3_get_InputEventsAtOnce(This,pinputEventsAtOnce) \ + ( (This)->lpVtbl -> get_InputEventsAtOnce(This,pinputEventsAtOnce) ) + +#define IMsRdpClientAdvancedSettings3_put_maxEventCount(This,pmaxEventCount) \ + ( (This)->lpVtbl -> put_maxEventCount(This,pmaxEventCount) ) + +#define IMsRdpClientAdvancedSettings3_get_maxEventCount(This,pmaxEventCount) \ + ( (This)->lpVtbl -> get_maxEventCount(This,pmaxEventCount) ) + +#define IMsRdpClientAdvancedSettings3_put_keepAliveInterval(This,pkeepAliveInterval) \ + ( (This)->lpVtbl -> put_keepAliveInterval(This,pkeepAliveInterval) ) + +#define IMsRdpClientAdvancedSettings3_get_keepAliveInterval(This,pkeepAliveInterval) \ + ( (This)->lpVtbl -> get_keepAliveInterval(This,pkeepAliveInterval) ) + +#define IMsRdpClientAdvancedSettings3_put_shutdownTimeout(This,pshutdownTimeout) \ + ( (This)->lpVtbl -> put_shutdownTimeout(This,pshutdownTimeout) ) + +#define IMsRdpClientAdvancedSettings3_get_shutdownTimeout(This,pshutdownTimeout) \ + ( (This)->lpVtbl -> get_shutdownTimeout(This,pshutdownTimeout) ) + +#define IMsRdpClientAdvancedSettings3_put_overallConnectionTimeout(This,poverallConnectionTimeout) \ + ( (This)->lpVtbl -> put_overallConnectionTimeout(This,poverallConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings3_get_overallConnectionTimeout(This,poverallConnectionTimeout) \ + ( (This)->lpVtbl -> get_overallConnectionTimeout(This,poverallConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings3_put_singleConnectionTimeout(This,psingleConnectionTimeout) \ + ( (This)->lpVtbl -> put_singleConnectionTimeout(This,psingleConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings3_get_singleConnectionTimeout(This,psingleConnectionTimeout) \ + ( (This)->lpVtbl -> get_singleConnectionTimeout(This,psingleConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings3_put_KeyboardType(This,pkeyboardType) \ + ( (This)->lpVtbl -> put_KeyboardType(This,pkeyboardType) ) + +#define IMsRdpClientAdvancedSettings3_get_KeyboardType(This,pkeyboardType) \ + ( (This)->lpVtbl -> get_KeyboardType(This,pkeyboardType) ) + +#define IMsRdpClientAdvancedSettings3_put_KeyboardSubType(This,pkeyboardSubType) \ + ( (This)->lpVtbl -> put_KeyboardSubType(This,pkeyboardSubType) ) + +#define IMsRdpClientAdvancedSettings3_get_KeyboardSubType(This,pkeyboardSubType) \ + ( (This)->lpVtbl -> get_KeyboardSubType(This,pkeyboardSubType) ) + +#define IMsRdpClientAdvancedSettings3_put_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ + ( (This)->lpVtbl -> put_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) + +#define IMsRdpClientAdvancedSettings3_get_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ + ( (This)->lpVtbl -> get_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) + +#define IMsRdpClientAdvancedSettings3_put_WinceFixedPalette(This,pwinceFixedPalette) \ + ( (This)->lpVtbl -> put_WinceFixedPalette(This,pwinceFixedPalette) ) + +#define IMsRdpClientAdvancedSettings3_get_WinceFixedPalette(This,pwinceFixedPalette) \ + ( (This)->lpVtbl -> get_WinceFixedPalette(This,pwinceFixedPalette) ) + +#define IMsRdpClientAdvancedSettings3_put_ConnectToServerConsole(This,pConnectToConsole) \ + ( (This)->lpVtbl -> put_ConnectToServerConsole(This,pConnectToConsole) ) + +#define IMsRdpClientAdvancedSettings3_get_ConnectToServerConsole(This,pConnectToConsole) \ + ( (This)->lpVtbl -> get_ConnectToServerConsole(This,pConnectToConsole) ) + +#define IMsRdpClientAdvancedSettings3_put_BitmapPersistence(This,pbitmapPersistence) \ + ( (This)->lpVtbl -> put_BitmapPersistence(This,pbitmapPersistence) ) + +#define IMsRdpClientAdvancedSettings3_get_BitmapPersistence(This,pbitmapPersistence) \ + ( (This)->lpVtbl -> get_BitmapPersistence(This,pbitmapPersistence) ) + +#define IMsRdpClientAdvancedSettings3_put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ + ( (This)->lpVtbl -> put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) + +#define IMsRdpClientAdvancedSettings3_get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ + ( (This)->lpVtbl -> get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) + +#define IMsRdpClientAdvancedSettings3_put_SmartSizing(This,pfSmartSizing) \ + ( (This)->lpVtbl -> put_SmartSizing(This,pfSmartSizing) ) + +#define IMsRdpClientAdvancedSettings3_get_SmartSizing(This,pfSmartSizing) \ + ( (This)->lpVtbl -> get_SmartSizing(This,pfSmartSizing) ) + +#define IMsRdpClientAdvancedSettings3_put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ + ( (This)->lpVtbl -> put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) + +#define IMsRdpClientAdvancedSettings3_get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ + ( (This)->lpVtbl -> get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) + +#define IMsRdpClientAdvancedSettings3_put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ + ( (This)->lpVtbl -> put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) + +#define IMsRdpClientAdvancedSettings3_get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ + ( (This)->lpVtbl -> get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) + +#define IMsRdpClientAdvancedSettings3_put_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ + ( (This)->lpVtbl -> put_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) + +#define IMsRdpClientAdvancedSettings3_get_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ + ( (This)->lpVtbl -> get_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) + +#define IMsRdpClientAdvancedSettings3_put_ClearTextPassword(This,rhs) \ + ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) + +#define IMsRdpClientAdvancedSettings3_put_DisplayConnectionBar(This,pDisplayConnectionBar) \ + ( (This)->lpVtbl -> put_DisplayConnectionBar(This,pDisplayConnectionBar) ) + +#define IMsRdpClientAdvancedSettings3_get_DisplayConnectionBar(This,pDisplayConnectionBar) \ + ( (This)->lpVtbl -> get_DisplayConnectionBar(This,pDisplayConnectionBar) ) + +#define IMsRdpClientAdvancedSettings3_put_PinConnectionBar(This,pPinConnectionBar) \ + ( (This)->lpVtbl -> put_PinConnectionBar(This,pPinConnectionBar) ) + +#define IMsRdpClientAdvancedSettings3_get_PinConnectionBar(This,pPinConnectionBar) \ + ( (This)->lpVtbl -> get_PinConnectionBar(This,pPinConnectionBar) ) + +#define IMsRdpClientAdvancedSettings3_put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ + ( (This)->lpVtbl -> put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) + +#define IMsRdpClientAdvancedSettings3_get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ + ( (This)->lpVtbl -> get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) + +#define IMsRdpClientAdvancedSettings3_put_LoadBalanceInfo(This,pLBInfo) \ + ( (This)->lpVtbl -> put_LoadBalanceInfo(This,pLBInfo) ) + +#define IMsRdpClientAdvancedSettings3_get_LoadBalanceInfo(This,pLBInfo) \ + ( (This)->lpVtbl -> get_LoadBalanceInfo(This,pLBInfo) ) + +#define IMsRdpClientAdvancedSettings3_put_RedirectDrives(This,pRedirectDrives) \ + ( (This)->lpVtbl -> put_RedirectDrives(This,pRedirectDrives) ) + +#define IMsRdpClientAdvancedSettings3_get_RedirectDrives(This,pRedirectDrives) \ + ( (This)->lpVtbl -> get_RedirectDrives(This,pRedirectDrives) ) + +#define IMsRdpClientAdvancedSettings3_put_RedirectPrinters(This,pRedirectPrinters) \ + ( (This)->lpVtbl -> put_RedirectPrinters(This,pRedirectPrinters) ) + +#define IMsRdpClientAdvancedSettings3_get_RedirectPrinters(This,pRedirectPrinters) \ + ( (This)->lpVtbl -> get_RedirectPrinters(This,pRedirectPrinters) ) + +#define IMsRdpClientAdvancedSettings3_put_RedirectPorts(This,pRedirectPorts) \ + ( (This)->lpVtbl -> put_RedirectPorts(This,pRedirectPorts) ) + +#define IMsRdpClientAdvancedSettings3_get_RedirectPorts(This,pRedirectPorts) \ + ( (This)->lpVtbl -> get_RedirectPorts(This,pRedirectPorts) ) + +#define IMsRdpClientAdvancedSettings3_put_RedirectSmartCards(This,pRedirectSmartCards) \ + ( (This)->lpVtbl -> put_RedirectSmartCards(This,pRedirectSmartCards) ) + +#define IMsRdpClientAdvancedSettings3_get_RedirectSmartCards(This,pRedirectSmartCards) \ + ( (This)->lpVtbl -> get_RedirectSmartCards(This,pRedirectSmartCards) ) + +#define IMsRdpClientAdvancedSettings3_put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ + ( (This)->lpVtbl -> put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) + +#define IMsRdpClientAdvancedSettings3_get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ + ( (This)->lpVtbl -> get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) + +#define IMsRdpClientAdvancedSettings3_put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ + ( (This)->lpVtbl -> put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) + +#define IMsRdpClientAdvancedSettings3_get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ + ( (This)->lpVtbl -> get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) + +#define IMsRdpClientAdvancedSettings3_put_PerformanceFlags(This,pDisableList) \ + ( (This)->lpVtbl -> put_PerformanceFlags(This,pDisableList) ) + +#define IMsRdpClientAdvancedSettings3_get_PerformanceFlags(This,pDisableList) \ + ( (This)->lpVtbl -> get_PerformanceFlags(This,pDisableList) ) + +#define IMsRdpClientAdvancedSettings3_put_ConnectWithEndpoint(This,rhs) \ + ( (This)->lpVtbl -> put_ConnectWithEndpoint(This,rhs) ) + +#define IMsRdpClientAdvancedSettings3_put_NotifyTSPublicKey(This,pfNotify) \ + ( (This)->lpVtbl -> put_NotifyTSPublicKey(This,pfNotify) ) + +#define IMsRdpClientAdvancedSettings3_get_NotifyTSPublicKey(This,pfNotify) \ + ( (This)->lpVtbl -> get_NotifyTSPublicKey(This,pfNotify) ) + + +#define IMsRdpClientAdvancedSettings3_get_CanAutoReconnect(This,pfCanAutoReconnect) \ + ( (This)->lpVtbl -> get_CanAutoReconnect(This,pfCanAutoReconnect) ) + +#define IMsRdpClientAdvancedSettings3_put_EnableAutoReconnect(This,pfEnableAutoReconnect) \ + ( (This)->lpVtbl -> put_EnableAutoReconnect(This,pfEnableAutoReconnect) ) + +#define IMsRdpClientAdvancedSettings3_get_EnableAutoReconnect(This,pfEnableAutoReconnect) \ + ( (This)->lpVtbl -> get_EnableAutoReconnect(This,pfEnableAutoReconnect) ) + +#define IMsRdpClientAdvancedSettings3_put_MaxReconnectAttempts(This,pMaxReconnectAttempts) \ + ( (This)->lpVtbl -> put_MaxReconnectAttempts(This,pMaxReconnectAttempts) ) + +#define IMsRdpClientAdvancedSettings3_get_MaxReconnectAttempts(This,pMaxReconnectAttempts) \ + ( (This)->lpVtbl -> get_MaxReconnectAttempts(This,pMaxReconnectAttempts) ) + + +#define IMsRdpClientAdvancedSettings3_put_ConnectionBarShowMinimizeButton(This,pfShowMinimize) \ + ( (This)->lpVtbl -> put_ConnectionBarShowMinimizeButton(This,pfShowMinimize) ) + +#define IMsRdpClientAdvancedSettings3_get_ConnectionBarShowMinimizeButton(This,pfShowMinimize) \ + ( (This)->lpVtbl -> get_ConnectionBarShowMinimizeButton(This,pfShowMinimize) ) + +#define IMsRdpClientAdvancedSettings3_put_ConnectionBarShowRestoreButton(This,pfShowRestore) \ + ( (This)->lpVtbl -> put_ConnectionBarShowRestoreButton(This,pfShowRestore) ) + +#define IMsRdpClientAdvancedSettings3_get_ConnectionBarShowRestoreButton(This,pfShowRestore) \ + ( (This)->lpVtbl -> get_ConnectionBarShowRestoreButton(This,pfShowRestore) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings3_put_ConnectionBarShowMinimizeButton_Proxy( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pfShowMinimize); + + +void __RPC_STUB IMsRdpClientAdvancedSettings3_put_ConnectionBarShowMinimizeButton_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings3_get_ConnectionBarShowMinimizeButton_Proxy( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pfShowMinimize); + + +void __RPC_STUB IMsRdpClientAdvancedSettings3_get_ConnectionBarShowMinimizeButton_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings3_put_ConnectionBarShowRestoreButton_Proxy( + IMsRdpClientAdvancedSettings3 * This, + /* [in] */ VARIANT_BOOL pfShowRestore); + + +void __RPC_STUB IMsRdpClientAdvancedSettings3_put_ConnectionBarShowRestoreButton_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings3_get_ConnectionBarShowRestoreButton_Proxy( + IMsRdpClientAdvancedSettings3 * This, + /* [retval][out] */ VARIANT_BOOL *pfShowRestore); + + +void __RPC_STUB IMsRdpClientAdvancedSettings3_get_ConnectionBarShowRestoreButton_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __IMsRdpClientAdvancedSettings3_INTERFACE_DEFINED__ */ + + +#ifndef __IMsRdpClientAdvancedSettings4_INTERFACE_DEFINED__ +#define __IMsRdpClientAdvancedSettings4_INTERFACE_DEFINED__ + +/* interface IMsRdpClientAdvancedSettings4 */ +/* [object][oleautomation][dual][uuid] */ + + +EXTERN_C const IID IID_IMsRdpClientAdvancedSettings4; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("FBA7F64E-7345-4405-AE50-FA4A763DC0DE") + IMsRdpClientAdvancedSettings4 : public IMsRdpClientAdvancedSettings3 + { + public: + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_AuthenticationLevel( + /* [in] */ unsigned int puiAuthLevel) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AuthenticationLevel( + /* [retval][out] */ unsigned int *puiAuthLevel) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsRdpClientAdvancedSettings4Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsRdpClientAdvancedSettings4 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsRdpClientAdvancedSettings4 * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsRdpClientAdvancedSettings4 * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Compress )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pcompress); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Compress )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pcompress); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPeristence )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pbitmapPeristence); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPeristence )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pbitmapPeristence); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_allowBackgroundInput )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pallowBackgroundInput); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_allowBackgroundInput )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pallowBackgroundInput); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyBoardLayoutStr )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PluginDlls )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconFile )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconIndex )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerHandledFullScreen )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pContainerHandledFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerHandledFullScreen )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pContainerHandledFullScreen); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableRdpdr )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pDisableRdpdr); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableRdpdr )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pDisableRdpdr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmoothScroll )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long psmoothScroll); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmoothScroll )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *psmoothScroll); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AcceleratorPassthrough )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pacceleratorPassthrough); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AcceleratorPassthrough )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pacceleratorPassthrough); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShadowBitmap )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pshadowBitmap); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShadowBitmap )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pshadowBitmap); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TransportType )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long ptransportType); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TransportType )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *ptransportType); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SasSequence )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long psasSequence); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SasSequence )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *psasSequence); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EncryptionEnabled )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pencryptionEnabled); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EncryptionEnabled )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pencryptionEnabled); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DedicatedTerminal )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pdedicatedTerminal); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DedicatedTerminal )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pdedicatedTerminal); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RDPPort )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long prdpPort); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RDPPort )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *prdpPort); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableMouse )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long penableMouse); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableMouse )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *penableMouse); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableCtrlAltDel )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pdisableCtrlAltDel); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableCtrlAltDel )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pdisableCtrlAltDel); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableWindowsKey )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long penableWindowsKey); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableWindowsKey )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *penableWindowsKey); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DoubleClickDetect )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pdoubleClickDetect); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DoubleClickDetect )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pdoubleClickDetect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaximizeShell )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pmaximizeShell); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaximizeShell )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pmaximizeShell); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyFullScreen )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long photKeyFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyFullScreen )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *photKeyFullScreen); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlEsc )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long photKeyCtrlEsc); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlEsc )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *photKeyCtrlEsc); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltEsc )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long photKeyAltEsc); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltEsc )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *photKeyAltEsc); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltTab )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long photKeyAltTab); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltTab )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *photKeyAltTab); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltShiftTab )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long photKeyAltShiftTab); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltShiftTab )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *photKeyAltShiftTab); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltSpace )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long photKeyAltSpace); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltSpace )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *photKeyAltSpace); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlAltDel )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long photKeyCtrlAltDel); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlAltDel )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *photKeyCtrlAltDel); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_orderDrawThreshold )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long porderDrawThreshold); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_orderDrawThreshold )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *porderDrawThreshold); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapCacheSize )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pbitmapCacheSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapCacheSize )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pbitmapCacheSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCacheSize )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pbitmapVirtualCacheSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCacheSize )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pbitmapVirtualCacheSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleBitmapCachesByBPP )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pbScale); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleBitmapCachesByBPP )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pbScale); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NumBitmapCaches )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pnumBitmapCaches); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumBitmapCaches )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pnumBitmapCaches); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CachePersistenceActive )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pcachePersistenceActive); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CachePersistenceActive )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pcachePersistenceActive); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PersistCacheDirectory )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_brushSupportLevel )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pbrushSupportLevel); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_brushSupportLevel )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pbrushSupportLevel); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_minInputSendInterval )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pminInputSendInterval); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_minInputSendInterval )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pminInputSendInterval); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InputEventsAtOnce )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pinputEventsAtOnce); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InputEventsAtOnce )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pinputEventsAtOnce); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_maxEventCount )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pmaxEventCount); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_maxEventCount )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pmaxEventCount); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_keepAliveInterval )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pkeepAliveInterval); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_keepAliveInterval )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pkeepAliveInterval); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_shutdownTimeout )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pshutdownTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_shutdownTimeout )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pshutdownTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_overallConnectionTimeout )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long poverallConnectionTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_overallConnectionTimeout )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *poverallConnectionTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_singleConnectionTimeout )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long psingleConnectionTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_singleConnectionTimeout )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *psingleConnectionTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardType )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pkeyboardType); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardType )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pkeyboardType); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardSubType )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pkeyboardSubType); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardSubType )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pkeyboardSubType); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardFunctionKey )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pkeyboardFunctionKey); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardFunctionKey )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pkeyboardFunctionKey); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WinceFixedPalette )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pwinceFixedPalette); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WinceFixedPalette )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pwinceFixedPalette); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectToServerConsole )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT_BOOL pConnectToConsole); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectToServerConsole )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pConnectToConsole); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPersistence )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pbitmapPersistence); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPersistence )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pbitmapPersistence); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MinutesToIdleTimeout )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pminutesToIdleTimeout); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MinutesToIdleTimeout )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pminutesToIdleTimeout); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmartSizing )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT_BOOL pfSmartSizing); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmartSizing )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pfSmartSizing); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrLocalPrintingDocName )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ BSTR pLocalPrintingDocName); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrLocalPrintingDocName )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ BSTR *pLocalPrintingDocName); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipCleanTempDirString )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ BSTR clipCleanTempDirString); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipCleanTempDirString )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ BSTR *clipCleanTempDirString); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipPasteInfoString )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ BSTR clipPasteInfoString); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipPasteInfoString )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ BSTR *clipPasteInfoString); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ BSTR rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisplayConnectionBar )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT_BOOL pDisplayConnectionBar); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisplayConnectionBar )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pDisplayConnectionBar); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PinConnectionBar )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT_BOOL pPinConnectionBar); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PinConnectionBar )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pPinConnectionBar); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GrabFocusOnConnect )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT_BOOL pfGrabFocusOnConnect); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GrabFocusOnConnect )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pfGrabFocusOnConnect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LoadBalanceInfo )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ BSTR pLBInfo); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LoadBalanceInfo )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ BSTR *pLBInfo); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectDrives )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT_BOOL pRedirectDrives); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectDrives )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectDrives); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPrinters )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT_BOOL pRedirectPrinters); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPrinters )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectPrinters); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPorts )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT_BOOL pRedirectPorts); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPorts )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectPorts); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectSmartCards )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT_BOOL pRedirectSmartCards); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectSmartCards )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache16BppSize )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pBitmapVirtualCache16BppSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache16BppSize )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pBitmapVirtualCache16BppSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache24BppSize )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pBitmapVirtualCache24BppSize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache24BppSize )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pBitmapVirtualCache24BppSize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PerformanceFlags )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pDisableList); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PerformanceFlags )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pDisableList); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectWithEndpoint )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT *rhs); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NotifyTSPublicKey )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT_BOOL pfNotify); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NotifyTSPublicKey )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pfNotify); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CanAutoReconnect )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pfCanAutoReconnect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableAutoReconnect )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT_BOOL pfEnableAutoReconnect); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableAutoReconnect )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pfEnableAutoReconnect); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaxReconnectAttempts )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ long pMaxReconnectAttempts); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaxReconnectAttempts )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ long *pMaxReconnectAttempts); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectionBarShowMinimizeButton )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT_BOOL pfShowMinimize); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectionBarShowMinimizeButton )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pfShowMinimize); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectionBarShowRestoreButton )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ VARIANT_BOOL pfShowRestore); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectionBarShowRestoreButton )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ VARIANT_BOOL *pfShowRestore); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AuthenticationLevel )( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ unsigned int puiAuthLevel); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AuthenticationLevel )( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ unsigned int *puiAuthLevel); + + END_INTERFACE + } IMsRdpClientAdvancedSettings4Vtbl; + + interface IMsRdpClientAdvancedSettings4 + { + CONST_VTBL struct IMsRdpClientAdvancedSettings4Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsRdpClientAdvancedSettings4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsRdpClientAdvancedSettings4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsRdpClientAdvancedSettings4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsRdpClientAdvancedSettings4_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsRdpClientAdvancedSettings4_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsRdpClientAdvancedSettings4_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsRdpClientAdvancedSettings4_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IMsRdpClientAdvancedSettings4_put_Compress(This,pcompress) \ + ( (This)->lpVtbl -> put_Compress(This,pcompress) ) + +#define IMsRdpClientAdvancedSettings4_get_Compress(This,pcompress) \ + ( (This)->lpVtbl -> get_Compress(This,pcompress) ) + +#define IMsRdpClientAdvancedSettings4_put_BitmapPeristence(This,pbitmapPeristence) \ + ( (This)->lpVtbl -> put_BitmapPeristence(This,pbitmapPeristence) ) + +#define IMsRdpClientAdvancedSettings4_get_BitmapPeristence(This,pbitmapPeristence) \ + ( (This)->lpVtbl -> get_BitmapPeristence(This,pbitmapPeristence) ) + +#define IMsRdpClientAdvancedSettings4_put_allowBackgroundInput(This,pallowBackgroundInput) \ + ( (This)->lpVtbl -> put_allowBackgroundInput(This,pallowBackgroundInput) ) + +#define IMsRdpClientAdvancedSettings4_get_allowBackgroundInput(This,pallowBackgroundInput) \ + ( (This)->lpVtbl -> get_allowBackgroundInput(This,pallowBackgroundInput) ) + +#define IMsRdpClientAdvancedSettings4_put_KeyBoardLayoutStr(This,rhs) \ + ( (This)->lpVtbl -> put_KeyBoardLayoutStr(This,rhs) ) + +#define IMsRdpClientAdvancedSettings4_put_PluginDlls(This,rhs) \ + ( (This)->lpVtbl -> put_PluginDlls(This,rhs) ) + +#define IMsRdpClientAdvancedSettings4_put_IconFile(This,rhs) \ + ( (This)->lpVtbl -> put_IconFile(This,rhs) ) + +#define IMsRdpClientAdvancedSettings4_put_IconIndex(This,rhs) \ + ( (This)->lpVtbl -> put_IconIndex(This,rhs) ) + +#define IMsRdpClientAdvancedSettings4_put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ + ( (This)->lpVtbl -> put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) + +#define IMsRdpClientAdvancedSettings4_get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \ + ( (This)->lpVtbl -> get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) ) + +#define IMsRdpClientAdvancedSettings4_put_DisableRdpdr(This,pDisableRdpdr) \ + ( (This)->lpVtbl -> put_DisableRdpdr(This,pDisableRdpdr) ) + +#define IMsRdpClientAdvancedSettings4_get_DisableRdpdr(This,pDisableRdpdr) \ + ( (This)->lpVtbl -> get_DisableRdpdr(This,pDisableRdpdr) ) + + +#define IMsRdpClientAdvancedSettings4_put_SmoothScroll(This,psmoothScroll) \ + ( (This)->lpVtbl -> put_SmoothScroll(This,psmoothScroll) ) + +#define IMsRdpClientAdvancedSettings4_get_SmoothScroll(This,psmoothScroll) \ + ( (This)->lpVtbl -> get_SmoothScroll(This,psmoothScroll) ) + +#define IMsRdpClientAdvancedSettings4_put_AcceleratorPassthrough(This,pacceleratorPassthrough) \ + ( (This)->lpVtbl -> put_AcceleratorPassthrough(This,pacceleratorPassthrough) ) + +#define IMsRdpClientAdvancedSettings4_get_AcceleratorPassthrough(This,pacceleratorPassthrough) \ + ( (This)->lpVtbl -> get_AcceleratorPassthrough(This,pacceleratorPassthrough) ) + +#define IMsRdpClientAdvancedSettings4_put_ShadowBitmap(This,pshadowBitmap) \ + ( (This)->lpVtbl -> put_ShadowBitmap(This,pshadowBitmap) ) + +#define IMsRdpClientAdvancedSettings4_get_ShadowBitmap(This,pshadowBitmap) \ + ( (This)->lpVtbl -> get_ShadowBitmap(This,pshadowBitmap) ) + +#define IMsRdpClientAdvancedSettings4_put_TransportType(This,ptransportType) \ + ( (This)->lpVtbl -> put_TransportType(This,ptransportType) ) + +#define IMsRdpClientAdvancedSettings4_get_TransportType(This,ptransportType) \ + ( (This)->lpVtbl -> get_TransportType(This,ptransportType) ) + +#define IMsRdpClientAdvancedSettings4_put_SasSequence(This,psasSequence) \ + ( (This)->lpVtbl -> put_SasSequence(This,psasSequence) ) + +#define IMsRdpClientAdvancedSettings4_get_SasSequence(This,psasSequence) \ + ( (This)->lpVtbl -> get_SasSequence(This,psasSequence) ) + +#define IMsRdpClientAdvancedSettings4_put_EncryptionEnabled(This,pencryptionEnabled) \ + ( (This)->lpVtbl -> put_EncryptionEnabled(This,pencryptionEnabled) ) + +#define IMsRdpClientAdvancedSettings4_get_EncryptionEnabled(This,pencryptionEnabled) \ + ( (This)->lpVtbl -> get_EncryptionEnabled(This,pencryptionEnabled) ) + +#define IMsRdpClientAdvancedSettings4_put_DedicatedTerminal(This,pdedicatedTerminal) \ + ( (This)->lpVtbl -> put_DedicatedTerminal(This,pdedicatedTerminal) ) + +#define IMsRdpClientAdvancedSettings4_get_DedicatedTerminal(This,pdedicatedTerminal) \ + ( (This)->lpVtbl -> get_DedicatedTerminal(This,pdedicatedTerminal) ) + +#define IMsRdpClientAdvancedSettings4_put_RDPPort(This,prdpPort) \ + ( (This)->lpVtbl -> put_RDPPort(This,prdpPort) ) + +#define IMsRdpClientAdvancedSettings4_get_RDPPort(This,prdpPort) \ + ( (This)->lpVtbl -> get_RDPPort(This,prdpPort) ) + +#define IMsRdpClientAdvancedSettings4_put_EnableMouse(This,penableMouse) \ + ( (This)->lpVtbl -> put_EnableMouse(This,penableMouse) ) + +#define IMsRdpClientAdvancedSettings4_get_EnableMouse(This,penableMouse) \ + ( (This)->lpVtbl -> get_EnableMouse(This,penableMouse) ) + +#define IMsRdpClientAdvancedSettings4_put_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ + ( (This)->lpVtbl -> put_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings4_get_DisableCtrlAltDel(This,pdisableCtrlAltDel) \ + ( (This)->lpVtbl -> get_DisableCtrlAltDel(This,pdisableCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings4_put_EnableWindowsKey(This,penableWindowsKey) \ + ( (This)->lpVtbl -> put_EnableWindowsKey(This,penableWindowsKey) ) + +#define IMsRdpClientAdvancedSettings4_get_EnableWindowsKey(This,penableWindowsKey) \ + ( (This)->lpVtbl -> get_EnableWindowsKey(This,penableWindowsKey) ) + +#define IMsRdpClientAdvancedSettings4_put_DoubleClickDetect(This,pdoubleClickDetect) \ + ( (This)->lpVtbl -> put_DoubleClickDetect(This,pdoubleClickDetect) ) + +#define IMsRdpClientAdvancedSettings4_get_DoubleClickDetect(This,pdoubleClickDetect) \ + ( (This)->lpVtbl -> get_DoubleClickDetect(This,pdoubleClickDetect) ) + +#define IMsRdpClientAdvancedSettings4_put_MaximizeShell(This,pmaximizeShell) \ + ( (This)->lpVtbl -> put_MaximizeShell(This,pmaximizeShell) ) + +#define IMsRdpClientAdvancedSettings4_get_MaximizeShell(This,pmaximizeShell) \ + ( (This)->lpVtbl -> get_MaximizeShell(This,pmaximizeShell) ) + +#define IMsRdpClientAdvancedSettings4_put_HotKeyFullScreen(This,photKeyFullScreen) \ + ( (This)->lpVtbl -> put_HotKeyFullScreen(This,photKeyFullScreen) ) + +#define IMsRdpClientAdvancedSettings4_get_HotKeyFullScreen(This,photKeyFullScreen) \ + ( (This)->lpVtbl -> get_HotKeyFullScreen(This,photKeyFullScreen) ) + +#define IMsRdpClientAdvancedSettings4_put_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ + ( (This)->lpVtbl -> put_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) + +#define IMsRdpClientAdvancedSettings4_get_HotKeyCtrlEsc(This,photKeyCtrlEsc) \ + ( (This)->lpVtbl -> get_HotKeyCtrlEsc(This,photKeyCtrlEsc) ) + +#define IMsRdpClientAdvancedSettings4_put_HotKeyAltEsc(This,photKeyAltEsc) \ + ( (This)->lpVtbl -> put_HotKeyAltEsc(This,photKeyAltEsc) ) + +#define IMsRdpClientAdvancedSettings4_get_HotKeyAltEsc(This,photKeyAltEsc) \ + ( (This)->lpVtbl -> get_HotKeyAltEsc(This,photKeyAltEsc) ) + +#define IMsRdpClientAdvancedSettings4_put_HotKeyAltTab(This,photKeyAltTab) \ + ( (This)->lpVtbl -> put_HotKeyAltTab(This,photKeyAltTab) ) + +#define IMsRdpClientAdvancedSettings4_get_HotKeyAltTab(This,photKeyAltTab) \ + ( (This)->lpVtbl -> get_HotKeyAltTab(This,photKeyAltTab) ) + +#define IMsRdpClientAdvancedSettings4_put_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ + ( (This)->lpVtbl -> put_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) + +#define IMsRdpClientAdvancedSettings4_get_HotKeyAltShiftTab(This,photKeyAltShiftTab) \ + ( (This)->lpVtbl -> get_HotKeyAltShiftTab(This,photKeyAltShiftTab) ) + +#define IMsRdpClientAdvancedSettings4_put_HotKeyAltSpace(This,photKeyAltSpace) \ + ( (This)->lpVtbl -> put_HotKeyAltSpace(This,photKeyAltSpace) ) + +#define IMsRdpClientAdvancedSettings4_get_HotKeyAltSpace(This,photKeyAltSpace) \ + ( (This)->lpVtbl -> get_HotKeyAltSpace(This,photKeyAltSpace) ) + +#define IMsRdpClientAdvancedSettings4_put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ + ( (This)->lpVtbl -> put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings4_get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) \ + ( (This)->lpVtbl -> get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) ) + +#define IMsRdpClientAdvancedSettings4_put_orderDrawThreshold(This,porderDrawThreshold) \ + ( (This)->lpVtbl -> put_orderDrawThreshold(This,porderDrawThreshold) ) + +#define IMsRdpClientAdvancedSettings4_get_orderDrawThreshold(This,porderDrawThreshold) \ + ( (This)->lpVtbl -> get_orderDrawThreshold(This,porderDrawThreshold) ) + +#define IMsRdpClientAdvancedSettings4_put_BitmapCacheSize(This,pbitmapCacheSize) \ + ( (This)->lpVtbl -> put_BitmapCacheSize(This,pbitmapCacheSize) ) + +#define IMsRdpClientAdvancedSettings4_get_BitmapCacheSize(This,pbitmapCacheSize) \ + ( (This)->lpVtbl -> get_BitmapCacheSize(This,pbitmapCacheSize) ) + +#define IMsRdpClientAdvancedSettings4_put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ + ( (This)->lpVtbl -> put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) + +#define IMsRdpClientAdvancedSettings4_get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \ + ( (This)->lpVtbl -> get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) ) + +#define IMsRdpClientAdvancedSettings4_put_ScaleBitmapCachesByBPP(This,pbScale) \ + ( (This)->lpVtbl -> put_ScaleBitmapCachesByBPP(This,pbScale) ) + +#define IMsRdpClientAdvancedSettings4_get_ScaleBitmapCachesByBPP(This,pbScale) \ + ( (This)->lpVtbl -> get_ScaleBitmapCachesByBPP(This,pbScale) ) + +#define IMsRdpClientAdvancedSettings4_put_NumBitmapCaches(This,pnumBitmapCaches) \ + ( (This)->lpVtbl -> put_NumBitmapCaches(This,pnumBitmapCaches) ) + +#define IMsRdpClientAdvancedSettings4_get_NumBitmapCaches(This,pnumBitmapCaches) \ + ( (This)->lpVtbl -> get_NumBitmapCaches(This,pnumBitmapCaches) ) + +#define IMsRdpClientAdvancedSettings4_put_CachePersistenceActive(This,pcachePersistenceActive) \ + ( (This)->lpVtbl -> put_CachePersistenceActive(This,pcachePersistenceActive) ) + +#define IMsRdpClientAdvancedSettings4_get_CachePersistenceActive(This,pcachePersistenceActive) \ + ( (This)->lpVtbl -> get_CachePersistenceActive(This,pcachePersistenceActive) ) + +#define IMsRdpClientAdvancedSettings4_put_PersistCacheDirectory(This,rhs) \ + ( (This)->lpVtbl -> put_PersistCacheDirectory(This,rhs) ) + +#define IMsRdpClientAdvancedSettings4_put_brushSupportLevel(This,pbrushSupportLevel) \ + ( (This)->lpVtbl -> put_brushSupportLevel(This,pbrushSupportLevel) ) + +#define IMsRdpClientAdvancedSettings4_get_brushSupportLevel(This,pbrushSupportLevel) \ + ( (This)->lpVtbl -> get_brushSupportLevel(This,pbrushSupportLevel) ) + +#define IMsRdpClientAdvancedSettings4_put_minInputSendInterval(This,pminInputSendInterval) \ + ( (This)->lpVtbl -> put_minInputSendInterval(This,pminInputSendInterval) ) + +#define IMsRdpClientAdvancedSettings4_get_minInputSendInterval(This,pminInputSendInterval) \ + ( (This)->lpVtbl -> get_minInputSendInterval(This,pminInputSendInterval) ) + +#define IMsRdpClientAdvancedSettings4_put_InputEventsAtOnce(This,pinputEventsAtOnce) \ + ( (This)->lpVtbl -> put_InputEventsAtOnce(This,pinputEventsAtOnce) ) + +#define IMsRdpClientAdvancedSettings4_get_InputEventsAtOnce(This,pinputEventsAtOnce) \ + ( (This)->lpVtbl -> get_InputEventsAtOnce(This,pinputEventsAtOnce) ) + +#define IMsRdpClientAdvancedSettings4_put_maxEventCount(This,pmaxEventCount) \ + ( (This)->lpVtbl -> put_maxEventCount(This,pmaxEventCount) ) + +#define IMsRdpClientAdvancedSettings4_get_maxEventCount(This,pmaxEventCount) \ + ( (This)->lpVtbl -> get_maxEventCount(This,pmaxEventCount) ) + +#define IMsRdpClientAdvancedSettings4_put_keepAliveInterval(This,pkeepAliveInterval) \ + ( (This)->lpVtbl -> put_keepAliveInterval(This,pkeepAliveInterval) ) + +#define IMsRdpClientAdvancedSettings4_get_keepAliveInterval(This,pkeepAliveInterval) \ + ( (This)->lpVtbl -> get_keepAliveInterval(This,pkeepAliveInterval) ) + +#define IMsRdpClientAdvancedSettings4_put_shutdownTimeout(This,pshutdownTimeout) \ + ( (This)->lpVtbl -> put_shutdownTimeout(This,pshutdownTimeout) ) + +#define IMsRdpClientAdvancedSettings4_get_shutdownTimeout(This,pshutdownTimeout) \ + ( (This)->lpVtbl -> get_shutdownTimeout(This,pshutdownTimeout) ) + +#define IMsRdpClientAdvancedSettings4_put_overallConnectionTimeout(This,poverallConnectionTimeout) \ + ( (This)->lpVtbl -> put_overallConnectionTimeout(This,poverallConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings4_get_overallConnectionTimeout(This,poverallConnectionTimeout) \ + ( (This)->lpVtbl -> get_overallConnectionTimeout(This,poverallConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings4_put_singleConnectionTimeout(This,psingleConnectionTimeout) \ + ( (This)->lpVtbl -> put_singleConnectionTimeout(This,psingleConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings4_get_singleConnectionTimeout(This,psingleConnectionTimeout) \ + ( (This)->lpVtbl -> get_singleConnectionTimeout(This,psingleConnectionTimeout) ) + +#define IMsRdpClientAdvancedSettings4_put_KeyboardType(This,pkeyboardType) \ + ( (This)->lpVtbl -> put_KeyboardType(This,pkeyboardType) ) + +#define IMsRdpClientAdvancedSettings4_get_KeyboardType(This,pkeyboardType) \ + ( (This)->lpVtbl -> get_KeyboardType(This,pkeyboardType) ) + +#define IMsRdpClientAdvancedSettings4_put_KeyboardSubType(This,pkeyboardSubType) \ + ( (This)->lpVtbl -> put_KeyboardSubType(This,pkeyboardSubType) ) + +#define IMsRdpClientAdvancedSettings4_get_KeyboardSubType(This,pkeyboardSubType) \ + ( (This)->lpVtbl -> get_KeyboardSubType(This,pkeyboardSubType) ) + +#define IMsRdpClientAdvancedSettings4_put_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ + ( (This)->lpVtbl -> put_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) + +#define IMsRdpClientAdvancedSettings4_get_KeyboardFunctionKey(This,pkeyboardFunctionKey) \ + ( (This)->lpVtbl -> get_KeyboardFunctionKey(This,pkeyboardFunctionKey) ) + +#define IMsRdpClientAdvancedSettings4_put_WinceFixedPalette(This,pwinceFixedPalette) \ + ( (This)->lpVtbl -> put_WinceFixedPalette(This,pwinceFixedPalette) ) + +#define IMsRdpClientAdvancedSettings4_get_WinceFixedPalette(This,pwinceFixedPalette) \ + ( (This)->lpVtbl -> get_WinceFixedPalette(This,pwinceFixedPalette) ) + +#define IMsRdpClientAdvancedSettings4_put_ConnectToServerConsole(This,pConnectToConsole) \ + ( (This)->lpVtbl -> put_ConnectToServerConsole(This,pConnectToConsole) ) + +#define IMsRdpClientAdvancedSettings4_get_ConnectToServerConsole(This,pConnectToConsole) \ + ( (This)->lpVtbl -> get_ConnectToServerConsole(This,pConnectToConsole) ) + +#define IMsRdpClientAdvancedSettings4_put_BitmapPersistence(This,pbitmapPersistence) \ + ( (This)->lpVtbl -> put_BitmapPersistence(This,pbitmapPersistence) ) + +#define IMsRdpClientAdvancedSettings4_get_BitmapPersistence(This,pbitmapPersistence) \ + ( (This)->lpVtbl -> get_BitmapPersistence(This,pbitmapPersistence) ) + +#define IMsRdpClientAdvancedSettings4_put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ + ( (This)->lpVtbl -> put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) + +#define IMsRdpClientAdvancedSettings4_get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) \ + ( (This)->lpVtbl -> get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) ) + +#define IMsRdpClientAdvancedSettings4_put_SmartSizing(This,pfSmartSizing) \ + ( (This)->lpVtbl -> put_SmartSizing(This,pfSmartSizing) ) + +#define IMsRdpClientAdvancedSettings4_get_SmartSizing(This,pfSmartSizing) \ + ( (This)->lpVtbl -> get_SmartSizing(This,pfSmartSizing) ) + +#define IMsRdpClientAdvancedSettings4_put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ + ( (This)->lpVtbl -> put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) + +#define IMsRdpClientAdvancedSettings4_get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \ + ( (This)->lpVtbl -> get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) ) + +#define IMsRdpClientAdvancedSettings4_put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ + ( (This)->lpVtbl -> put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) + +#define IMsRdpClientAdvancedSettings4_get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) \ + ( (This)->lpVtbl -> get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) ) + +#define IMsRdpClientAdvancedSettings4_put_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ + ( (This)->lpVtbl -> put_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) + +#define IMsRdpClientAdvancedSettings4_get_RdpdrClipPasteInfoString(This,clipPasteInfoString) \ + ( (This)->lpVtbl -> get_RdpdrClipPasteInfoString(This,clipPasteInfoString) ) + +#define IMsRdpClientAdvancedSettings4_put_ClearTextPassword(This,rhs) \ + ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) ) + +#define IMsRdpClientAdvancedSettings4_put_DisplayConnectionBar(This,pDisplayConnectionBar) \ + ( (This)->lpVtbl -> put_DisplayConnectionBar(This,pDisplayConnectionBar) ) + +#define IMsRdpClientAdvancedSettings4_get_DisplayConnectionBar(This,pDisplayConnectionBar) \ + ( (This)->lpVtbl -> get_DisplayConnectionBar(This,pDisplayConnectionBar) ) + +#define IMsRdpClientAdvancedSettings4_put_PinConnectionBar(This,pPinConnectionBar) \ + ( (This)->lpVtbl -> put_PinConnectionBar(This,pPinConnectionBar) ) + +#define IMsRdpClientAdvancedSettings4_get_PinConnectionBar(This,pPinConnectionBar) \ + ( (This)->lpVtbl -> get_PinConnectionBar(This,pPinConnectionBar) ) + +#define IMsRdpClientAdvancedSettings4_put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ + ( (This)->lpVtbl -> put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) + +#define IMsRdpClientAdvancedSettings4_get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \ + ( (This)->lpVtbl -> get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) ) + +#define IMsRdpClientAdvancedSettings4_put_LoadBalanceInfo(This,pLBInfo) \ + ( (This)->lpVtbl -> put_LoadBalanceInfo(This,pLBInfo) ) + +#define IMsRdpClientAdvancedSettings4_get_LoadBalanceInfo(This,pLBInfo) \ + ( (This)->lpVtbl -> get_LoadBalanceInfo(This,pLBInfo) ) + +#define IMsRdpClientAdvancedSettings4_put_RedirectDrives(This,pRedirectDrives) \ + ( (This)->lpVtbl -> put_RedirectDrives(This,pRedirectDrives) ) + +#define IMsRdpClientAdvancedSettings4_get_RedirectDrives(This,pRedirectDrives) \ + ( (This)->lpVtbl -> get_RedirectDrives(This,pRedirectDrives) ) + +#define IMsRdpClientAdvancedSettings4_put_RedirectPrinters(This,pRedirectPrinters) \ + ( (This)->lpVtbl -> put_RedirectPrinters(This,pRedirectPrinters) ) + +#define IMsRdpClientAdvancedSettings4_get_RedirectPrinters(This,pRedirectPrinters) \ + ( (This)->lpVtbl -> get_RedirectPrinters(This,pRedirectPrinters) ) + +#define IMsRdpClientAdvancedSettings4_put_RedirectPorts(This,pRedirectPorts) \ + ( (This)->lpVtbl -> put_RedirectPorts(This,pRedirectPorts) ) + +#define IMsRdpClientAdvancedSettings4_get_RedirectPorts(This,pRedirectPorts) \ + ( (This)->lpVtbl -> get_RedirectPorts(This,pRedirectPorts) ) + +#define IMsRdpClientAdvancedSettings4_put_RedirectSmartCards(This,pRedirectSmartCards) \ + ( (This)->lpVtbl -> put_RedirectSmartCards(This,pRedirectSmartCards) ) + +#define IMsRdpClientAdvancedSettings4_get_RedirectSmartCards(This,pRedirectSmartCards) \ + ( (This)->lpVtbl -> get_RedirectSmartCards(This,pRedirectSmartCards) ) + +#define IMsRdpClientAdvancedSettings4_put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ + ( (This)->lpVtbl -> put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) + +#define IMsRdpClientAdvancedSettings4_get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) \ + ( (This)->lpVtbl -> get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) ) + +#define IMsRdpClientAdvancedSettings4_put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ + ( (This)->lpVtbl -> put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) + +#define IMsRdpClientAdvancedSettings4_get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) \ + ( (This)->lpVtbl -> get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) ) + +#define IMsRdpClientAdvancedSettings4_put_PerformanceFlags(This,pDisableList) \ + ( (This)->lpVtbl -> put_PerformanceFlags(This,pDisableList) ) + +#define IMsRdpClientAdvancedSettings4_get_PerformanceFlags(This,pDisableList) \ + ( (This)->lpVtbl -> get_PerformanceFlags(This,pDisableList) ) + +#define IMsRdpClientAdvancedSettings4_put_ConnectWithEndpoint(This,rhs) \ + ( (This)->lpVtbl -> put_ConnectWithEndpoint(This,rhs) ) + +#define IMsRdpClientAdvancedSettings4_put_NotifyTSPublicKey(This,pfNotify) \ + ( (This)->lpVtbl -> put_NotifyTSPublicKey(This,pfNotify) ) + +#define IMsRdpClientAdvancedSettings4_get_NotifyTSPublicKey(This,pfNotify) \ + ( (This)->lpVtbl -> get_NotifyTSPublicKey(This,pfNotify) ) + + +#define IMsRdpClientAdvancedSettings4_get_CanAutoReconnect(This,pfCanAutoReconnect) \ + ( (This)->lpVtbl -> get_CanAutoReconnect(This,pfCanAutoReconnect) ) + +#define IMsRdpClientAdvancedSettings4_put_EnableAutoReconnect(This,pfEnableAutoReconnect) \ + ( (This)->lpVtbl -> put_EnableAutoReconnect(This,pfEnableAutoReconnect) ) + +#define IMsRdpClientAdvancedSettings4_get_EnableAutoReconnect(This,pfEnableAutoReconnect) \ + ( (This)->lpVtbl -> get_EnableAutoReconnect(This,pfEnableAutoReconnect) ) + +#define IMsRdpClientAdvancedSettings4_put_MaxReconnectAttempts(This,pMaxReconnectAttempts) \ + ( (This)->lpVtbl -> put_MaxReconnectAttempts(This,pMaxReconnectAttempts) ) + +#define IMsRdpClientAdvancedSettings4_get_MaxReconnectAttempts(This,pMaxReconnectAttempts) \ + ( (This)->lpVtbl -> get_MaxReconnectAttempts(This,pMaxReconnectAttempts) ) + + +#define IMsRdpClientAdvancedSettings4_put_ConnectionBarShowMinimizeButton(This,pfShowMinimize) \ + ( (This)->lpVtbl -> put_ConnectionBarShowMinimizeButton(This,pfShowMinimize) ) + +#define IMsRdpClientAdvancedSettings4_get_ConnectionBarShowMinimizeButton(This,pfShowMinimize) \ + ( (This)->lpVtbl -> get_ConnectionBarShowMinimizeButton(This,pfShowMinimize) ) + +#define IMsRdpClientAdvancedSettings4_put_ConnectionBarShowRestoreButton(This,pfShowRestore) \ + ( (This)->lpVtbl -> put_ConnectionBarShowRestoreButton(This,pfShowRestore) ) + +#define IMsRdpClientAdvancedSettings4_get_ConnectionBarShowRestoreButton(This,pfShowRestore) \ + ( (This)->lpVtbl -> get_ConnectionBarShowRestoreButton(This,pfShowRestore) ) + + +#define IMsRdpClientAdvancedSettings4_put_AuthenticationLevel(This,puiAuthLevel) \ + ( (This)->lpVtbl -> put_AuthenticationLevel(This,puiAuthLevel) ) + +#define IMsRdpClientAdvancedSettings4_get_AuthenticationLevel(This,puiAuthLevel) \ + ( (This)->lpVtbl -> get_AuthenticationLevel(This,puiAuthLevel) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + +/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings4_put_AuthenticationLevel_Proxy( + IMsRdpClientAdvancedSettings4 * This, + /* [in] */ unsigned int puiAuthLevel); + + +void __RPC_STUB IMsRdpClientAdvancedSettings4_put_AuthenticationLevel_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings4_get_AuthenticationLevel_Proxy( + IMsRdpClientAdvancedSettings4 * This, + /* [retval][out] */ unsigned int *puiAuthLevel); + + +void __RPC_STUB IMsRdpClientAdvancedSettings4_get_AuthenticationLevel_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __IMsRdpClientAdvancedSettings4_INTERFACE_DEFINED__ */ + + +#ifndef __IMsTscSecuredSettings_INTERFACE_DEFINED__ +#define __IMsTscSecuredSettings_INTERFACE_DEFINED__ + +/* interface IMsTscSecuredSettings */ +/* [object][oleautomation][dual][uuid] */ + + +EXTERN_C const IID IID_IMsTscSecuredSettings; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("C9D65442-A0F9-45B2-8F73-D61D2DB8CBB6") + IMsTscSecuredSettings : public IDispatch + { + public: + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_StartProgram( + /* [in] */ BSTR pStartProgram) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_StartProgram( + /* [retval][out] */ BSTR *pStartProgram) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_WorkDir( + /* [in] */ BSTR pWorkDir) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_WorkDir( + /* [retval][out] */ BSTR *pWorkDir) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_FullScreen( + /* [in] */ long pfFullScreen) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_FullScreen( + /* [retval][out] */ long *pfFullScreen) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsTscSecuredSettingsVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsTscSecuredSettings * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsTscSecuredSettings * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsTscSecuredSettings * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsTscSecuredSettings * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsTscSecuredSettings * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsTscSecuredSettings * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsTscSecuredSettings * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartProgram )( + IMsTscSecuredSettings * This, + /* [in] */ BSTR pStartProgram); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartProgram )( + IMsTscSecuredSettings * This, + /* [retval][out] */ BSTR *pStartProgram); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WorkDir )( + IMsTscSecuredSettings * This, + /* [in] */ BSTR pWorkDir); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WorkDir )( + IMsTscSecuredSettings * This, + /* [retval][out] */ BSTR *pWorkDir); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )( + IMsTscSecuredSettings * This, + /* [in] */ long pfFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )( + IMsTscSecuredSettings * This, + /* [retval][out] */ long *pfFullScreen); + + END_INTERFACE + } IMsTscSecuredSettingsVtbl; + + interface IMsTscSecuredSettings + { + CONST_VTBL struct IMsTscSecuredSettingsVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsTscSecuredSettings_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsTscSecuredSettings_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsTscSecuredSettings_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsTscSecuredSettings_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsTscSecuredSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsTscSecuredSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsTscSecuredSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IMsTscSecuredSettings_put_StartProgram(This,pStartProgram) \ + ( (This)->lpVtbl -> put_StartProgram(This,pStartProgram) ) + +#define IMsTscSecuredSettings_get_StartProgram(This,pStartProgram) \ + ( (This)->lpVtbl -> get_StartProgram(This,pStartProgram) ) + +#define IMsTscSecuredSettings_put_WorkDir(This,pWorkDir) \ + ( (This)->lpVtbl -> put_WorkDir(This,pWorkDir) ) + +#define IMsTscSecuredSettings_get_WorkDir(This,pWorkDir) \ + ( (This)->lpVtbl -> get_WorkDir(This,pWorkDir) ) + +#define IMsTscSecuredSettings_put_FullScreen(This,pfFullScreen) \ + ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) ) + +#define IMsTscSecuredSettings_get_FullScreen(This,pfFullScreen) \ + ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IMsTscSecuredSettings_INTERFACE_DEFINED__ */ + + +#ifndef __IMsRdpClientSecuredSettings_INTERFACE_DEFINED__ +#define __IMsRdpClientSecuredSettings_INTERFACE_DEFINED__ + +/* interface IMsRdpClientSecuredSettings */ +/* [object][oleautomation][dual][uuid] */ + + +EXTERN_C const IID IID_IMsRdpClientSecuredSettings; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("605BEFCF-39C1-45CC-A811-068FB7BE346D") + IMsRdpClientSecuredSettings : public IMsTscSecuredSettings + { + public: + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_KeyboardHookMode( + /* [in] */ long pkeyboardHookMode) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_KeyboardHookMode( + /* [retval][out] */ long *pkeyboardHookMode) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_AudioRedirectionMode( + /* [in] */ long pAudioRedirectionMode) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AudioRedirectionMode( + /* [retval][out] */ long *pAudioRedirectionMode) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsRdpClientSecuredSettingsVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsRdpClientSecuredSettings * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsRdpClientSecuredSettings * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsRdpClientSecuredSettings * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsRdpClientSecuredSettings * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsRdpClientSecuredSettings * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsRdpClientSecuredSettings * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsRdpClientSecuredSettings * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartProgram )( + IMsRdpClientSecuredSettings * This, + /* [in] */ BSTR pStartProgram); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartProgram )( + IMsRdpClientSecuredSettings * This, + /* [retval][out] */ BSTR *pStartProgram); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WorkDir )( + IMsRdpClientSecuredSettings * This, + /* [in] */ BSTR pWorkDir); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WorkDir )( + IMsRdpClientSecuredSettings * This, + /* [retval][out] */ BSTR *pWorkDir); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )( + IMsRdpClientSecuredSettings * This, + /* [in] */ long pfFullScreen); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )( + IMsRdpClientSecuredSettings * This, + /* [retval][out] */ long *pfFullScreen); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardHookMode )( + IMsRdpClientSecuredSettings * This, + /* [in] */ long pkeyboardHookMode); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardHookMode )( + IMsRdpClientSecuredSettings * This, + /* [retval][out] */ long *pkeyboardHookMode); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AudioRedirectionMode )( + IMsRdpClientSecuredSettings * This, + /* [in] */ long pAudioRedirectionMode); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AudioRedirectionMode )( + IMsRdpClientSecuredSettings * This, + /* [retval][out] */ long *pAudioRedirectionMode); + + END_INTERFACE + } IMsRdpClientSecuredSettingsVtbl; + + interface IMsRdpClientSecuredSettings + { + CONST_VTBL struct IMsRdpClientSecuredSettingsVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsRdpClientSecuredSettings_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsRdpClientSecuredSettings_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsRdpClientSecuredSettings_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsRdpClientSecuredSettings_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsRdpClientSecuredSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsRdpClientSecuredSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsRdpClientSecuredSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IMsRdpClientSecuredSettings_put_StartProgram(This,pStartProgram) \ + ( (This)->lpVtbl -> put_StartProgram(This,pStartProgram) ) + +#define IMsRdpClientSecuredSettings_get_StartProgram(This,pStartProgram) \ + ( (This)->lpVtbl -> get_StartProgram(This,pStartProgram) ) + +#define IMsRdpClientSecuredSettings_put_WorkDir(This,pWorkDir) \ + ( (This)->lpVtbl -> put_WorkDir(This,pWorkDir) ) + +#define IMsRdpClientSecuredSettings_get_WorkDir(This,pWorkDir) \ + ( (This)->lpVtbl -> get_WorkDir(This,pWorkDir) ) + +#define IMsRdpClientSecuredSettings_put_FullScreen(This,pfFullScreen) \ + ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) ) + +#define IMsRdpClientSecuredSettings_get_FullScreen(This,pfFullScreen) \ + ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) ) + + +#define IMsRdpClientSecuredSettings_put_KeyboardHookMode(This,pkeyboardHookMode) \ + ( (This)->lpVtbl -> put_KeyboardHookMode(This,pkeyboardHookMode) ) + +#define IMsRdpClientSecuredSettings_get_KeyboardHookMode(This,pkeyboardHookMode) \ + ( (This)->lpVtbl -> get_KeyboardHookMode(This,pkeyboardHookMode) ) + +#define IMsRdpClientSecuredSettings_put_AudioRedirectionMode(This,pAudioRedirectionMode) \ + ( (This)->lpVtbl -> put_AudioRedirectionMode(This,pAudioRedirectionMode) ) + +#define IMsRdpClientSecuredSettings_get_AudioRedirectionMode(This,pAudioRedirectionMode) \ + ( (This)->lpVtbl -> get_AudioRedirectionMode(This,pAudioRedirectionMode) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IMsRdpClientSecuredSettings_INTERFACE_DEFINED__ */ + + +#ifndef __IMsTscDebug_INTERFACE_DEFINED__ +#define __IMsTscDebug_INTERFACE_DEFINED__ + +/* interface IMsTscDebug */ +/* [object][oleautomation][dual][hidden][uuid] */ + + +EXTERN_C const IID IID_IMsTscDebug; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("209D0EB9-6254-47B1-9033-A98DAE55BB27") + IMsTscDebug : public IDispatch + { + public: + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HatchBitmapPDU( + /* [in] */ long phatchBitmapPDU) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HatchBitmapPDU( + /* [retval][out] */ long *phatchBitmapPDU) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HatchSSBOrder( + /* [in] */ long phatchSSBOrder) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HatchSSBOrder( + /* [retval][out] */ long *phatchSSBOrder) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HatchMembltOrder( + /* [in] */ long phatchMembltOrder) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HatchMembltOrder( + /* [retval][out] */ long *phatchMembltOrder) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HatchIndexPDU( + /* [in] */ long phatchIndexPDU) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HatchIndexPDU( + /* [retval][out] */ long *phatchIndexPDU) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_LabelMemblt( + /* [in] */ long plabelMemblt) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_LabelMemblt( + /* [retval][out] */ long *plabelMemblt) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapCacheMonitor( + /* [in] */ long pbitmapCacheMonitor) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapCacheMonitor( + /* [retval][out] */ long *pbitmapCacheMonitor) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_MallocFailuresPercent( + /* [in] */ long pmallocFailuresPercent) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_MallocFailuresPercent( + /* [retval][out] */ long *pmallocFailuresPercent) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_MallocHugeFailuresPercent( + /* [in] */ long pmallocHugeFailuresPercent) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_MallocHugeFailuresPercent( + /* [retval][out] */ long *pmallocHugeFailuresPercent) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_NetThroughput( + /* [in] */ long NetThroughput) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_NetThroughput( + /* [retval][out] */ long *NetThroughput) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_CLXCmdLine( + /* [in] */ BSTR pCLXCmdLine) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CLXCmdLine( + /* [retval][out] */ BSTR *pCLXCmdLine) = 0; + + virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_CLXDll( + /* [in] */ BSTR pCLXDll) = 0; + + virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CLXDll( + /* [retval][out] */ BSTR *pCLXDll) = 0; + + }; + +#else /* C style interface */ + + typedef struct IMsTscDebugVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IMsTscDebug * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IMsTscDebug * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IMsTscDebug * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IMsTscDebug * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IMsTscDebug * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IMsTscDebug * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IMsTscDebug * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HatchBitmapPDU )( + IMsTscDebug * This, + /* [in] */ long phatchBitmapPDU); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HatchBitmapPDU )( + IMsTscDebug * This, + /* [retval][out] */ long *phatchBitmapPDU); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HatchSSBOrder )( + IMsTscDebug * This, + /* [in] */ long phatchSSBOrder); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HatchSSBOrder )( + IMsTscDebug * This, + /* [retval][out] */ long *phatchSSBOrder); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HatchMembltOrder )( + IMsTscDebug * This, + /* [in] */ long phatchMembltOrder); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HatchMembltOrder )( + IMsTscDebug * This, + /* [retval][out] */ long *phatchMembltOrder); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HatchIndexPDU )( + IMsTscDebug * This, + /* [in] */ long phatchIndexPDU); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HatchIndexPDU )( + IMsTscDebug * This, + /* [retval][out] */ long *phatchIndexPDU); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LabelMemblt )( + IMsTscDebug * This, + /* [in] */ long plabelMemblt); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LabelMemblt )( + IMsTscDebug * This, + /* [retval][out] */ long *plabelMemblt); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapCacheMonitor )( + IMsTscDebug * This, + /* [in] */ long pbitmapCacheMonitor); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapCacheMonitor )( + IMsTscDebug * This, + /* [retval][out] */ long *pbitmapCacheMonitor); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MallocFailuresPercent )( + IMsTscDebug * This, + /* [in] */ long pmallocFailuresPercent); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MallocFailuresPercent )( + IMsTscDebug * This, + /* [retval][out] */ long *pmallocFailuresPercent); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MallocHugeFailuresPercent )( + IMsTscDebug * This, + /* [in] */ long pmallocHugeFailuresPercent); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MallocHugeFailuresPercent )( + IMsTscDebug * This, + /* [retval][out] */ long *pmallocHugeFailuresPercent); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NetThroughput )( + IMsTscDebug * This, + /* [in] */ long NetThroughput); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NetThroughput )( + IMsTscDebug * This, + /* [retval][out] */ long *NetThroughput); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CLXCmdLine )( + IMsTscDebug * This, + /* [in] */ BSTR pCLXCmdLine); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CLXCmdLine )( + IMsTscDebug * This, + /* [retval][out] */ BSTR *pCLXCmdLine); + + /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CLXDll )( + IMsTscDebug * This, + /* [in] */ BSTR pCLXDll); + + /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CLXDll )( + IMsTscDebug * This, + /* [retval][out] */ BSTR *pCLXDll); + + END_INTERFACE + } IMsTscDebugVtbl; + + interface IMsTscDebug + { + CONST_VTBL struct IMsTscDebugVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IMsTscDebug_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IMsTscDebug_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IMsTscDebug_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IMsTscDebug_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IMsTscDebug_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IMsTscDebug_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IMsTscDebug_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IMsTscDebug_put_HatchBitmapPDU(This,phatchBitmapPDU) \ + ( (This)->lpVtbl -> put_HatchBitmapPDU(This,phatchBitmapPDU) ) + +#define IMsTscDebug_get_HatchBitmapPDU(This,phatchBitmapPDU) \ + ( (This)->lpVtbl -> get_HatchBitmapPDU(This,phatchBitmapPDU) ) + +#define IMsTscDebug_put_HatchSSBOrder(This,phatchSSBOrder) \ + ( (This)->lpVtbl -> put_HatchSSBOrder(This,phatchSSBOrder) ) + +#define IMsTscDebug_get_HatchSSBOrder(This,phatchSSBOrder) \ + ( (This)->lpVtbl -> get_HatchSSBOrder(This,phatchSSBOrder) ) + +#define IMsTscDebug_put_HatchMembltOrder(This,phatchMembltOrder) \ + ( (This)->lpVtbl -> put_HatchMembltOrder(This,phatchMembltOrder) ) + +#define IMsTscDebug_get_HatchMembltOrder(This,phatchMembltOrder) \ + ( (This)->lpVtbl -> get_HatchMembltOrder(This,phatchMembltOrder) ) + +#define IMsTscDebug_put_HatchIndexPDU(This,phatchIndexPDU) \ + ( (This)->lpVtbl -> put_HatchIndexPDU(This,phatchIndexPDU) ) + +#define IMsTscDebug_get_HatchIndexPDU(This,phatchIndexPDU) \ + ( (This)->lpVtbl -> get_HatchIndexPDU(This,phatchIndexPDU) ) + +#define IMsTscDebug_put_LabelMemblt(This,plabelMemblt) \ + ( (This)->lpVtbl -> put_LabelMemblt(This,plabelMemblt) ) + +#define IMsTscDebug_get_LabelMemblt(This,plabelMemblt) \ + ( (This)->lpVtbl -> get_LabelMemblt(This,plabelMemblt) ) + +#define IMsTscDebug_put_BitmapCacheMonitor(This,pbitmapCacheMonitor) \ + ( (This)->lpVtbl -> put_BitmapCacheMonitor(This,pbitmapCacheMonitor) ) + +#define IMsTscDebug_get_BitmapCacheMonitor(This,pbitmapCacheMonitor) \ + ( (This)->lpVtbl -> get_BitmapCacheMonitor(This,pbitmapCacheMonitor) ) + +#define IMsTscDebug_put_MallocFailuresPercent(This,pmallocFailuresPercent) \ + ( (This)->lpVtbl -> put_MallocFailuresPercent(This,pmallocFailuresPercent) ) + +#define IMsTscDebug_get_MallocFailuresPercent(This,pmallocFailuresPercent) \ + ( (This)->lpVtbl -> get_MallocFailuresPercent(This,pmallocFailuresPercent) ) + +#define IMsTscDebug_put_MallocHugeFailuresPercent(This,pmallocHugeFailuresPercent) \ + ( (This)->lpVtbl -> put_MallocHugeFailuresPercent(This,pmallocHugeFailuresPercent) ) + +#define IMsTscDebug_get_MallocHugeFailuresPercent(This,pmallocHugeFailuresPercent) \ + ( (This)->lpVtbl -> get_MallocHugeFailuresPercent(This,pmallocHugeFailuresPercent) ) + +#define IMsTscDebug_put_NetThroughput(This,NetThroughput) \ + ( (This)->lpVtbl -> put_NetThroughput(This,NetThroughput) ) + +#define IMsTscDebug_get_NetThroughput(This,NetThroughput) \ + ( (This)->lpVtbl -> get_NetThroughput(This,NetThroughput) ) + +#define IMsTscDebug_put_CLXCmdLine(This,pCLXCmdLine) \ + ( (This)->lpVtbl -> put_CLXCmdLine(This,pCLXCmdLine) ) + +#define IMsTscDebug_get_CLXCmdLine(This,pCLXCmdLine) \ + ( (This)->lpVtbl -> get_CLXCmdLine(This,pCLXCmdLine) ) + +#define IMsTscDebug_put_CLXDll(This,pCLXDll) \ + ( (This)->lpVtbl -> put_CLXDll(This,pCLXDll) ) + +#define IMsTscDebug_get_CLXDll(This,pCLXDll) \ + ( (This)->lpVtbl -> get_CLXDll(This,pCLXDll) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IMsTscDebug_INTERFACE_DEFINED__ */ + + +EXTERN_C const CLSID CLSID_MsTscAx; + +#ifdef __cplusplus + +class DECLSPEC_UUID("1FB464C8-09BB-4017-A2F5-EB742F04392F") +MsTscAx; +#endif + +EXTERN_C const CLSID CLSID_MsRdpClient; + +#ifdef __cplusplus + +class DECLSPEC_UUID("791FA017-2DE3-492E-ACC5-53C67A2B94D0") +MsRdpClient; +#endif + +EXTERN_C const CLSID CLSID_MsRdpClient2; + +#ifdef __cplusplus + +class DECLSPEC_UUID("9059F30F-4EB1-4BD2-9FDC-36F43A218F4A") +MsRdpClient2; +#endif + +EXTERN_C const CLSID CLSID_MsRdpClient3; + +#ifdef __cplusplus + +class DECLSPEC_UUID("7584C670-2274-4EFB-B00B-D6AABA6D3850") +MsRdpClient3; +#endif + +EXTERN_C const CLSID CLSID_MsRdpClient4; + +#ifdef __cplusplus + +class DECLSPEC_UUID("6AE29350-321B-42BE-BBE5-12FB5270C0DE") +MsRdpClient4; +#endif +#endif /* __MSTSCLib_LIBRARY_DEFINED__ */ + +/* Additional Prototypes for ALL interfaces */ + +/* end of Additional Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif + + diff --git a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_redist_i.c b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_redist_i.c index 5930c974073..49842cefa2f 100644 --- a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_redist_i.c +++ b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_redist_i.c @@ -1,145 +1,145 @@ - - -/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ - -/* link this file in with the server and any clients */ - - - /* File created by MIDL compiler version 7.00.0493 */ -/* at Sun Aug 13 16:46:05 2006 - */ -/* Compiler settings for .\mstsclib_redist.idl: - Oicf, W1, Zp8, env=Win32 (32b run) - protocol : dce , ms_ext, c_ext, robust - error checks: allocation ref bounds_check enum stub_data - VC __declspec() decoration level: - __declspec(uuid()), __declspec(selectany), __declspec(novtable) - DECLSPEC_UUID(), MIDL_INTERFACE() -*/ -//@@MIDL_FILE_HEADING( ) - -#pragma warning( disable: 4049 ) /* more than 64k source lines */ - - -#ifdef __cplusplus -extern "C"{ -#endif - - -#include -#include - -#ifdef _MIDL_USE_GUIDDEF_ - -#ifndef INITGUID -#define INITGUID -#include -#undef INITGUID -#else -#include -#endif - -#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ - DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) - -#else // !_MIDL_USE_GUIDDEF_ - -#ifndef __IID_DEFINED__ -#define __IID_DEFINED__ - -typedef struct _IID -{ - unsigned long x; - unsigned short s1; - unsigned short s2; - unsigned char c[8]; -} IID; - -#endif // __IID_DEFINED__ - -#ifndef CLSID_DEFINED -#define CLSID_DEFINED -typedef IID CLSID; -#endif // CLSID_DEFINED - -#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ - const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} - -#endif !_MIDL_USE_GUIDDEF_ - -MIDL_DEFINE_GUID(IID, LIBID_MSTSCLib,0xAF586AAE,0xB62A,0x420E,0xB7,0x96,0x29,0x4E,0x7E,0xE6,0x4C,0x70); - - -MIDL_DEFINE_GUID(IID, DIID_IMsTscAxEvents,0x336D5562,0xEFA8,0x482E,0x8C,0xB3,0xC5,0xC0,0xFC,0x7A,0x7D,0xB6); - - -MIDL_DEFINE_GUID(IID, IID_IMsTscAx,0x327BB5CD,0x834E,0x4400,0xAE,0xF2,0xB3,0x0E,0x15,0xE5,0xD6,0x82); - - -MIDL_DEFINE_GUID(IID, IID_IMsRdpClient,0x92B4A539,0x7115,0x4B7C,0xA5,0xA9,0xE5,0xD9,0xEF,0xC2,0x78,0x0A); - - -MIDL_DEFINE_GUID(IID, IID_IMsRdpClient2,0xE7E17DC4,0x3B71,0x4BA7,0xA8,0xE6,0x28,0x1F,0xFA,0xDC,0xA2,0x8F); - - -MIDL_DEFINE_GUID(IID, IID_IMsRdpClient3,0x91B7CBC5,0xA72E,0x4FA0,0x93,0x00,0xD6,0x47,0xD7,0xE8,0x97,0xFF); - - -MIDL_DEFINE_GUID(IID, IID_IMsRdpClient4,0x095E0738,0xD97D,0x488B,0xB9,0xF6,0xDD,0x0E,0x8D,0x66,0xC0,0xDE); - - -MIDL_DEFINE_GUID(IID, IID_IMsTscNonScriptable,0xC1E6743A,0x41C1,0x4A74,0x83,0x2A,0x0D,0xD0,0x6C,0x1C,0x7A,0x0E); - - -MIDL_DEFINE_GUID(IID, IID_IMsRdpClientNonScriptable,0x2F079C4C,0x87B2,0x4AFD,0x97,0xAB,0x20,0xCD,0xB4,0x30,0x38,0xAE); - - -MIDL_DEFINE_GUID(IID, IID_IMsRdpClientNonScriptable2,0x17A5E535,0x4072,0x4FA4,0xAF,0x32,0xC8,0xD0,0xD4,0x73,0x45,0xE9); - - -MIDL_DEFINE_GUID(IID, IID_IMsTscAdvancedSettings,0x809945CC,0x4B3B,0x4A92,0xA6,0xB0,0xDB,0xF9,0xB5,0xF2,0xEF,0x2D); - - -MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings,0x3C65B4AB,0x12B3,0x465B,0xAC,0xD4,0xB8,0xDA,0xD3,0xBF,0xF9,0xE2); - - -MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings2,0x9AC42117,0x2B76,0x4320,0xAA,0x44,0x0E,0x61,0x6A,0xB8,0x43,0x7B); - - -MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings3,0x19CD856B,0xC542,0x4C53,0xAC,0xEE,0xF1,0x27,0xE3,0xBE,0x1A,0x59); - - -MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings4,0xFBA7F64E,0x7345,0x4405,0xAE,0x50,0xFA,0x4A,0x76,0x3D,0xC0,0xDE); - - -MIDL_DEFINE_GUID(IID, IID_IMsTscSecuredSettings,0xC9D65442,0xA0F9,0x45B2,0x8F,0x73,0xD6,0x1D,0x2D,0xB8,0xCB,0xB6); - - -MIDL_DEFINE_GUID(IID, IID_IMsRdpClientSecuredSettings,0x605BEFCF,0x39C1,0x45CC,0xA8,0x11,0x06,0x8F,0xB7,0xBE,0x34,0x6D); - - -MIDL_DEFINE_GUID(IID, IID_IMsTscDebug,0x209D0EB9,0x6254,0x47B1,0x90,0x33,0xA9,0x8D,0xAE,0x55,0xBB,0x27); - - -MIDL_DEFINE_GUID(CLSID, CLSID_MsTscAx,0x1FB464C8,0x09BB,0x4017,0xA2,0xF5,0xEB,0x74,0x2F,0x04,0x39,0x2F); - - -MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient,0x791FA017,0x2DE3,0x492E,0xAC,0xC5,0x53,0xC6,0x7A,0x2B,0x94,0xD0); - - -MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient2,0x9059F30F,0x4EB1,0x4BD2,0x9F,0xDC,0x36,0xF4,0x3A,0x21,0x8F,0x4A); - - -MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient3,0x7584C670,0x2274,0x4EFB,0xB0,0x0B,0xD6,0xAA,0xBA,0x6D,0x38,0x50); - - -MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient4,0x6AE29350,0x321B,0x42BE,0xBB,0xE5,0x12,0xFB,0x52,0x70,0xC0,0xDE); - -#undef MIDL_DEFINE_GUID - -#ifdef __cplusplus -} -#endif - - - + + +/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ + +/* link this file in with the server and any clients */ + + + /* File created by MIDL compiler version 7.00.0493 */ +/* at Sun Aug 13 16:46:05 2006 + */ +/* Compiler settings for .\mstsclib_redist.idl: + Oicf, W1, Zp8, env=Win32 (32b run) + protocol : dce , ms_ext, c_ext, robust + error checks: allocation ref bounds_check enum stub_data + VC __declspec() decoration level: + __declspec(uuid()), __declspec(selectany), __declspec(novtable) + DECLSPEC_UUID(), MIDL_INTERFACE() +*/ +//@@MIDL_FILE_HEADING( ) + +#pragma warning( disable: 4049 ) /* more than 64k source lines */ + + +#ifdef __cplusplus +extern "C"{ +#endif + + +#include +#include + +#ifdef _MIDL_USE_GUIDDEF_ + +#ifndef INITGUID +#define INITGUID +#include +#undef INITGUID +#else +#include +#endif + +#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ + DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) + +#else // !_MIDL_USE_GUIDDEF_ + +#ifndef __IID_DEFINED__ +#define __IID_DEFINED__ + +typedef struct _IID +{ + unsigned long x; + unsigned short s1; + unsigned short s2; + unsigned char c[8]; +} IID; + +#endif // __IID_DEFINED__ + +#ifndef CLSID_DEFINED +#define CLSID_DEFINED +typedef IID CLSID; +#endif // CLSID_DEFINED + +#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ + const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} + +#endif !_MIDL_USE_GUIDDEF_ + +MIDL_DEFINE_GUID(IID, LIBID_MSTSCLib,0xAF586AAE,0xB62A,0x420E,0xB7,0x96,0x29,0x4E,0x7E,0xE6,0x4C,0x70); + + +MIDL_DEFINE_GUID(IID, DIID_IMsTscAxEvents,0x336D5562,0xEFA8,0x482E,0x8C,0xB3,0xC5,0xC0,0xFC,0x7A,0x7D,0xB6); + + +MIDL_DEFINE_GUID(IID, IID_IMsTscAx,0x327BB5CD,0x834E,0x4400,0xAE,0xF2,0xB3,0x0E,0x15,0xE5,0xD6,0x82); + + +MIDL_DEFINE_GUID(IID, IID_IMsRdpClient,0x92B4A539,0x7115,0x4B7C,0xA5,0xA9,0xE5,0xD9,0xEF,0xC2,0x78,0x0A); + + +MIDL_DEFINE_GUID(IID, IID_IMsRdpClient2,0xE7E17DC4,0x3B71,0x4BA7,0xA8,0xE6,0x28,0x1F,0xFA,0xDC,0xA2,0x8F); + + +MIDL_DEFINE_GUID(IID, IID_IMsRdpClient3,0x91B7CBC5,0xA72E,0x4FA0,0x93,0x00,0xD6,0x47,0xD7,0xE8,0x97,0xFF); + + +MIDL_DEFINE_GUID(IID, IID_IMsRdpClient4,0x095E0738,0xD97D,0x488B,0xB9,0xF6,0xDD,0x0E,0x8D,0x66,0xC0,0xDE); + + +MIDL_DEFINE_GUID(IID, IID_IMsTscNonScriptable,0xC1E6743A,0x41C1,0x4A74,0x83,0x2A,0x0D,0xD0,0x6C,0x1C,0x7A,0x0E); + + +MIDL_DEFINE_GUID(IID, IID_IMsRdpClientNonScriptable,0x2F079C4C,0x87B2,0x4AFD,0x97,0xAB,0x20,0xCD,0xB4,0x30,0x38,0xAE); + + +MIDL_DEFINE_GUID(IID, IID_IMsRdpClientNonScriptable2,0x17A5E535,0x4072,0x4FA4,0xAF,0x32,0xC8,0xD0,0xD4,0x73,0x45,0xE9); + + +MIDL_DEFINE_GUID(IID, IID_IMsTscAdvancedSettings,0x809945CC,0x4B3B,0x4A92,0xA6,0xB0,0xDB,0xF9,0xB5,0xF2,0xEF,0x2D); + + +MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings,0x3C65B4AB,0x12B3,0x465B,0xAC,0xD4,0xB8,0xDA,0xD3,0xBF,0xF9,0xE2); + + +MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings2,0x9AC42117,0x2B76,0x4320,0xAA,0x44,0x0E,0x61,0x6A,0xB8,0x43,0x7B); + + +MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings3,0x19CD856B,0xC542,0x4C53,0xAC,0xEE,0xF1,0x27,0xE3,0xBE,0x1A,0x59); + + +MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings4,0xFBA7F64E,0x7345,0x4405,0xAE,0x50,0xFA,0x4A,0x76,0x3D,0xC0,0xDE); + + +MIDL_DEFINE_GUID(IID, IID_IMsTscSecuredSettings,0xC9D65442,0xA0F9,0x45B2,0x8F,0x73,0xD6,0x1D,0x2D,0xB8,0xCB,0xB6); + + +MIDL_DEFINE_GUID(IID, IID_IMsRdpClientSecuredSettings,0x605BEFCF,0x39C1,0x45CC,0xA8,0x11,0x06,0x8F,0xB7,0xBE,0x34,0x6D); + + +MIDL_DEFINE_GUID(IID, IID_IMsTscDebug,0x209D0EB9,0x6254,0x47B1,0x90,0x33,0xA9,0x8D,0xAE,0x55,0xBB,0x27); + + +MIDL_DEFINE_GUID(CLSID, CLSID_MsTscAx,0x1FB464C8,0x09BB,0x4017,0xA2,0xF5,0xEB,0x74,0x2F,0x04,0x39,0x2F); + + +MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient,0x791FA017,0x2DE3,0x492E,0xAC,0xC5,0x53,0xC6,0x7A,0x2B,0x94,0xD0); + + +MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient2,0x9059F30F,0x4EB1,0x4BD2,0x9F,0xDC,0x36,0xF4,0x3A,0x21,0x8F,0x4A); + + +MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient3,0x7584C670,0x2274,0x4EFB,0xB0,0x0B,0xD6,0xAA,0xBA,0x6D,0x38,0x50); + + +MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient4,0x6AE29350,0x321B,0x42BE,0xBB,0xE5,0x12,0xFB,0x52,0x70,0xC0,0xDE); + +#undef MIDL_DEFINE_GUID + +#ifdef __cplusplus +} +#endif + + + diff --git a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/rdesktop-core-tester.cpp b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/rdesktop-core-tester.cpp index 42304753671..29992767db0 100644 --- a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/rdesktop-core-tester.cpp +++ b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/rdesktop-core-tester.cpp @@ -1,653 +1,653 @@ -#include "stdafx.h" - -#include - -#include "rdesktop/rdesktop.h" -#include "rdesktop/proto.h" - -extern "C" -{ - /* ==== BEGIN POOP ==== */ - // Temporary implementations of stuff we totally positively need to make the Real Thing happy - /* produce a hex dump */ - void - hexdump(unsigned char *p, unsigned int len) - { - unsigned char *line = p; - int i, thisline; - unsigned int offset = 0; - - while (offset < len) - { - printf("%04x ", offset); - thisline = len - offset; - if (thisline > 16) - thisline = 16; - - for (i = 0; i < thisline; i++) - printf("%02x ", line[i]); - - for (; i < 16; i++) - printf(" "); - - for (i = 0; i < thisline; i++) - printf("%c", (line[i] >= 0x20 && line[i] < 0x7f) ? line[i] : '.'); - - printf("\n"); - offset += thisline; - line += thisline; - } - } - - void generate_random(uint8 * random) - { - memcpy(random, "12345678901234567890123456789012", 32); - } - - /* report an error */ - void - error(char *format, ...) - { - va_list ap; - - fprintf(stderr, "ERROR: "); - - va_start(ap, format); - vfprintf(stderr, format, ap); - va_end(ap); - } - - /* report a warning */ - void - warning(char *format, ...) - { - va_list ap; - - fprintf(stderr, "WARNING: "); - - va_start(ap, format); - vfprintf(stderr, format, ap); - va_end(ap); - } - - /* report an unimplemented protocol feature */ - void - unimpl(char *format, ...) - { - va_list ap; - - fprintf(stderr, "NOT IMPLEMENTED: "); - - va_start(ap, format); - vfprintf(stderr, format, ap); - va_end(ap); - } - - /* Create the bitmap cache directory */ - BOOL - rd_pstcache_mkdir(void) - { - char *home; - char bmpcache_dir[256]; - - home = getenv("HOME"); - - if (home == NULL) - return False; - - sprintf(bmpcache_dir, "%s/%s", home, ".rdesktop"); - - if ((_mkdir(bmpcache_dir) == -1) && errno != EEXIST) - { - perror(bmpcache_dir); - return False; - } - - sprintf(bmpcache_dir, "%s/%s", home, ".rdesktop/cache"); - - if ((_mkdir(bmpcache_dir) == -1) && errno != EEXIST) - { - perror(bmpcache_dir); - return False; - } - - return True; - } - - /* open a file in the .rdesktop directory */ - int - rd_open_file(char *filename) - { - char *home; - char fn[256]; - int fd; - - home = getenv("HOME"); - if (home == NULL) - return -1; - sprintf(fn, "%s/.rdesktop/%s", home, filename); - fd = _open(fn, _O_RDWR | _O_CREAT, 0); - if (fd == -1) - perror(fn); - return fd; - } - - /* close file */ - void - rd_close_file(int fd) - { - _close(fd); - } - - /* read from file*/ - int - rd_read_file(int fd, void *ptr, int len) - { - return _read(fd, ptr, len); - } - - /* write to file */ - int - rd_write_file(int fd, void *ptr, int len) - { - return _write(fd, ptr, len); - } - - /* move file pointer */ - int - rd_lseek_file(int fd, int offset) - { - return _lseek(fd, offset, SEEK_SET); - } - - /* do a write lock on a file */ - BOOL - rd_lock_file(int fd, int start, int len) - { - // TODOOO... - return False; - } - - int - load_licence(RDPCLIENT * This, unsigned char **data) - { - return -1; - } - - void - save_licence(RDPCLIENT * This, unsigned char *data, int length) - { - } - - /* ==== END POOP ==== */ - - /* ==== UI ==== */ - // Globals are totally teh evil, but cut me some slack here - HWND hwnd; - HBITMAP hbmBuffer; - PVOID pBuffer; - HDC hdcBuffer; - UINT wmZMouseWheel; - -}; - -static -void -mstsc_mousewheel(RDPCLIENT * This, int value, LPARAM lparam) -{ - uint16 button; - - if(value < 0) - button = MOUSE_FLAG_BUTTON5; - else - button = MOUSE_FLAG_BUTTON4; - - if(value < 0) - value = - value; - - for(int click = 0; click < value; click += WHEEL_DELTA) - rdp_send_input(This, GetTickCount(), RDP_INPUT_MOUSE, button | MOUSE_FLAG_DOWN, LOWORD(lparam), HIWORD(lparam)); -} - -static -LRESULT -CALLBACK -mstsc_WndProc(HWND hwnd, UINT uMsg, WPARAM wparam, LPARAM lparam) -{ - // BUGBUG: LongToPtr & PtrToLong will break on Win64 - - RDPCLIENT * This = reinterpret_cast(LongToPtr(GetWindowLongPtr(hwnd, GWLP_USERDATA))); - - switch(uMsg) - { - case WM_CLOSE: - DestroyWindow(hwnd); - break; - - // FIXME: temporary - case WM_DESTROY: - PostQuitMessage(0); - break; - - /* Initialization */ - case WM_CREATE: - This = static_cast(reinterpret_cast(lparam)->lpCreateParams); - SetWindowLongPtr(hwnd, GWLP_USERDATA, PtrToLong(This)); - break; - - /* Painting */ - case WM_PRINTCLIENT: - if(wparam == 0) - break; - - case WM_PAINT: - { - HDC hdc = (HDC)wparam; - - // A DC was provided: print the whole client area into it - if(hdc) - { - RECT rc; - GetClientRect(hwnd, &rc); - BitBlt(hdc, 0, 0, rc.right, rc.bottom, hdcBuffer, 0, 0, SRCCOPY); - } - // Otherwise, we're refreshing to screen - else - { - PAINTSTRUCT ps; - hdc = BeginPaint(hwnd, &ps); - - BitBlt - ( - hdc, - ps.rcPaint.left, - ps.rcPaint.top, - ps.rcPaint.right - ps.rcPaint.left, - ps.rcPaint.bottom - ps.rcPaint.top, - hdcBuffer, - ps.rcPaint.left, - ps.rcPaint.top, - SRCCOPY - ); - - EndPaint(hwnd, &ps); - } - } - - break; - - /* Keyboard stuff */ - case WM_SYSKEYDOWN: - case WM_KEYDOWN: - rdp_send_input(This, GetMessageTime(), RDP_INPUT_SCANCODE, RDP_KEYPRESS | (lparam & 0x1000000 ? KBD_FLAG_EXT : 0), LOBYTE(HIWORD(lparam)), 0); - break; - - case WM_SYSKEYUP: - case WM_KEYUP: - rdp_send_input(This, GetMessageTime(), RDP_INPUT_SCANCODE, RDP_KEYRELEASE | (lparam & 0x1000000 ? KBD_FLAG_EXT : 0), LOBYTE(HIWORD(lparam)), 0); - break; - - /* Mouse stuff */ - // Cursor shape - case WM_SETCURSOR: - if(LOWORD(lparam) == HTCLIENT) - { - //SetCursor(hcursor); - return TRUE; - } - - break; - - // Movement - case WM_MOUSEMOVE: - //if(This->sendmotion || wparam & (MK_LBUTTON | MK_RBUTTON | MK_MBUTTON | MK_XBUTTON1 | MK_XBUTTON2)) - rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_MOVE, LOWORD(lparam), HIWORD(lparam)); - - break; - - // Buttons - // TODO: X buttons - case WM_LBUTTONDOWN: - rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON1 | MOUSE_FLAG_DOWN, LOWORD(lparam), HIWORD(lparam)); - break; - - case WM_RBUTTONDOWN: - rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON2 | MOUSE_FLAG_DOWN, LOWORD(lparam), HIWORD(lparam)); - break; - - case WM_MBUTTONDOWN: - rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON3 | MOUSE_FLAG_DOWN, LOWORD(lparam), HIWORD(lparam)); - break; - - case WM_LBUTTONUP: - rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON1, LOWORD(lparam), HIWORD(lparam)); - break; - - case WM_RBUTTONUP: - rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON2, LOWORD(lparam), HIWORD(lparam)); - break; - - case WM_MBUTTONUP: - rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON3, LOWORD(lparam), HIWORD(lparam)); - break; - - // Wheel - case WM_MOUSEWHEEL: - mstsc_mousewheel(This, (SHORT)HIWORD(wparam), lparam); - break; - - default: - /* Registered messages */ - // Z-Mouse wheel support - you know, just in case - if(uMsg == wmZMouseWheel) - { - mstsc_mousewheel(This, (int)wparam, lparam); - break; - } - - /* Unhandled messages */ - return DefWindowProc(hwnd, uMsg, wparam, lparam); - } - - return 0; -} - -static -DWORD -WINAPI -mstsc_ProtocolIOThread -( - LPVOID lpArgument -) -{ - RDPCLIENT * This = static_cast(lpArgument); - - WCHAR hostname[MAX_COMPUTERNAME_LENGTH + 1]; - DWORD dw = ARRAYSIZE(hostname); - GetComputerNameW(hostname, &dw); - - uint32 flags = RDP_LOGON_NORMAL | RDP_LOGON_COMPRESSION | RDP_LOGON_COMPRESSION2; - - rdp_connect(This, "10.0.0.3", flags, L"Administrator", L"", L"", L"", L"", hostname, ""); - //rdp_connect(This, "192.168.7.232", flags, "", "", "", ""); - - hdcBuffer = CreateCompatibleDC(NULL); - - BITMAPINFO bmi; - bmi.bmiHeader.biSize = sizeof(bmi.bmiHeader); - bmi.bmiHeader.biWidth = This->width; - bmi.bmiHeader.biHeight = This->height; - bmi.bmiHeader.biPlanes = 1; - bmi.bmiHeader.biBitCount = This->server_depth; - bmi.bmiHeader.biCompression = BI_RGB; - bmi.bmiHeader.biSizeImage = 0; - bmi.bmiHeader.biXPelsPerMeter = 0; - bmi.bmiHeader.biYPelsPerMeter = 0; - bmi.bmiHeader.biClrUsed = 0; // TODO! palette displays - bmi.bmiHeader.biClrImportant = 0; // TODO! palette displays - - hbmBuffer = CreateDIBSection(hdcBuffer, &bmi, DIB_RGB_COLORS, &pBuffer, NULL, 0); - - SelectObject(hdcBuffer, hbmBuffer); - -#if 0 - rcClip.left = 0; - rcClip.top = 0; - rcClip.right = This->width + 1; - rcClip.bottom = This->height + 1; -#endif - - BOOL deactivated; - uint32 ext_disc_reason; - - rdp_main_loop(This, &deactivated, &ext_disc_reason); - // TODO: handle redirection - // EVENT: OnDisconnect - - SendMessage(hwnd, WM_CLOSE, 0, 0); - - return 0; -} - -/* Virtual channel stuff */ -extern "C" void channel_process(RDPCLIENT * This, STREAM s, uint16 mcs_channel) -{ -} - -DWORD tlsIndex; - -typedef struct CHANNEL_HANDLE_ -{ - RDPCLIENT * client; - int channel; -} -CHANNEL_HANDLE; - -static -UINT -VCAPITYPE -VirtualChannelInit -( - LPVOID * ppInitHandle, - PCHANNEL_DEF pChannel, - INT channelCount, - ULONG versionRequested, - PCHANNEL_INIT_EVENT_FN pChannelInitEventProc -) -{ - if(channelCount <= 0) - return CHANNEL_RC_BAD_CHANNEL; - - if(ppInitHandle == NULL) - return CHANNEL_RC_BAD_INIT_HANDLE; - - if(pChannel == NULL) - return CHANNEL_RC_BAD_CHANNEL; - - if(pChannelInitEventProc == NULL) - return CHANNEL_RC_BAD_PROC; - - RDPCLIENT * This = (RDPCLIENT *)TlsGetValue(tlsIndex); - - if(This == NULL) - return CHANNEL_RC_NOT_IN_VIRTUALCHANNELENTRY; - - if(This->num_channels + channelCount > CHANNEL_MAX_COUNT) - return CHANNEL_RC_TOO_MANY_CHANNELS; - - for(INT i = 0; i < channelCount; ++ i) - { - if(strlen(pChannel[i].name) > CHANNEL_NAME_LEN) - return CHANNEL_RC_BAD_CHANNEL; - } - - memcpy(This->channel_defs + This->num_channels, pChannel, sizeof(*pChannel) * channelCount); - -#if 0 // TODO - for(INT i = 0; i < channelCount; ++ i) - { - pChannel[i].options |= CHANNEL_OPTION_INITIALIZED; - - int j = This->num_channels + i; - This->channel_data[j].opened = 0; - This->channel_data[j].pChannelInitEventProc = pChannelInitEventProc; - This->channel_data[j].pChannelOpenEventProc = NULL; - } -#endif - - This->num_channels += channelCount; - - *ppInitHandle = This; - - return CHANNEL_RC_OK; -} - -UINT -VCAPITYPE -VirtualChannelOpen -( - LPVOID pInitHandle, - LPDWORD pOpenHandle, - PCHAR pChannelName, - PCHANNEL_OPEN_EVENT_FN pChannelOpenEventProc -) -{ - if(pInitHandle == NULL) - return CHANNEL_RC_BAD_INIT_HANDLE; - - if(pOpenHandle == NULL) - return CHANNEL_RC_BAD_CHANNEL_HANDLE; - - if(pChannelName == NULL) - return CHANNEL_RC_UNKNOWN_CHANNEL_NAME; - - if(pChannelOpenEventProc == NULL) - return CHANNEL_RC_BAD_PROC; - - RDPCLIENT * This = (RDPCLIENT *)pInitHandle; - -#if 0 // TODO - for(unsigned i = 0; i < This->num_channels; ++ i) - { - if(strcmp(pChannelName, This->channel_defs[i].name) == 0) - { - if(This->channel_data[i].opened) - return CHANNEL_RC_ALREADY_OPEN; - - This->channel_data[i].opened = 1; - This->channel_data[i].pChannelOpenEventProc = pChannelOpenEventProc; - - // TODO: allocate a handle here - *pOpenHandle = 0; - - break; - } - } -#endif - - return CHANNEL_RC_OK; -} - -UINT VCAPITYPE VirtualChannelClose -( - DWORD openHandle -) -{ - // TODO: channel handle management - return CHANNEL_RC_BAD_CHANNEL_HANDLE; -} - -UINT VCAPITYPE VirtualChannelWrite -( - DWORD openHandle, - LPVOID pData, - ULONG dataLength, - LPVOID pUserData -) -{ - // TODO - return CHANNEL_RC_BAD_CHANNEL_HANDLE; -} - -int wmain() -{ - WSADATA wsd; - WSAStartup(MAKEWORD(2, 2), &wsd); - - static RDPCLIENT This_; // NOTE: this is HUGE and would overflow the stack! - ZeroMemory(&This_, sizeof(This_)); - - RDPCLIENT * This = &This_; - - /* - Threading model for MissTosca: - - main thread is the GUI thread. Message loop maintained by caller - - protocol I/O is handled in an I/O thread (or thread pool) - - extra threads maintained by virtual channel handlers. Virtual channel writes are thread-neutral - - How we handle drawing: at the moment just an off-screen buffer we dump on-screen when asked to. - Still considering how to draw on-screen directly and *then* buffering off-screen (for example, - when running inside another remote session) - */ - - // FIXME: keyboard mess - This->keylayout = 0x409; - This->keyboard_type = 0x4; - This->keyboard_subtype = 0x0; - This->keyboard_functionkeys = 0xc; - This->width = 800; - This->height = 600; - This->server_depth = 24; - This->bitmap_compression = True; - //This->sendmotion = True; - This->bitmap_cache = True; - This->bitmap_cache_persist_enable = False; - This->bitmap_cache_precache = True; - This->encryption = True; - This->packet_encryption = True; - This->desktop_save = True; - This->polygon_ellipse_orders = False; // = True; - //This->fullscreen = False; - //This->grab_keyboard = True; - //This->hide_decorations = False; - This->use_rdp5 = True; - //This->rdpclip = True; - This->console_session = False; - //This->numlock_sync = False; - //This->seamless_rdp = False; - This->rdp5_performanceflags = RDP5_NO_WALLPAPER | RDP5_NO_FULLWINDOWDRAG | RDP5_NO_MENUANIMATIONS; - This->tcp_port_rdp = TCP_PORT_RDP; - -#define NOT_SET -1 - This->cache.bmpcache_lru[0] = NOT_SET; - This->cache.bmpcache_lru[1] = NOT_SET; - This->cache.bmpcache_lru[2] = NOT_SET; - This->cache.bmpcache_mru[0] = NOT_SET; - This->cache.bmpcache_mru[1] = NOT_SET; - This->cache.bmpcache_mru[2] = NOT_SET; - - This->rdp.current_status = 1; - - //hcursor = NULL; - - WNDCLASS wc; - ZeroMemory(&wc, sizeof(wc)); - - wc.lpfnWndProc = mstsc_WndProc; - wc.hbrBackground = static_cast(GetStockObject(HOLLOW_BRUSH)); - wc.lpszClassName = TEXT("MissTosca_Desktop"); - - wmZMouseWheel = RegisterWindowMessage(MSH_MOUSEWHEEL); - - ATOM a = RegisterClass(&wc); - - hwnd = CreateWindow - ( - MAKEINTATOM(a), - NULL, - WS_POPUP | WS_VISIBLE, - CW_USEDEFAULT, - CW_USEDEFAULT, - This->width, - This->height, - NULL, - NULL, - NULL, - This - ); - - // The righ time to start the protocol thread - DWORD dwThreadId; - HANDLE hThread = CreateThread(NULL, 0, mstsc_ProtocolIOThread, This, 0, &dwThreadId); - - // Your standard, garden variety message loop - MSG msg; - - while(GetMessage(&msg, NULL, 0, 0)) - { - TranslateMessage(&msg); - DispatchMessage(&msg); - } -} - -// EOF +#include "stdafx.h" + +#include + +#include "rdesktop/rdesktop.h" +#include "rdesktop/proto.h" + +extern "C" +{ + /* ==== BEGIN POOP ==== */ + // Temporary implementations of stuff we totally positively need to make the Real Thing happy + /* produce a hex dump */ + void + hexdump(unsigned char *p, unsigned int len) + { + unsigned char *line = p; + int i, thisline; + unsigned int offset = 0; + + while (offset < len) + { + printf("%04x ", offset); + thisline = len - offset; + if (thisline > 16) + thisline = 16; + + for (i = 0; i < thisline; i++) + printf("%02x ", line[i]); + + for (; i < 16; i++) + printf(" "); + + for (i = 0; i < thisline; i++) + printf("%c", (line[i] >= 0x20 && line[i] < 0x7f) ? line[i] : '.'); + + printf("\n"); + offset += thisline; + line += thisline; + } + } + + void generate_random(uint8 * random) + { + memcpy(random, "12345678901234567890123456789012", 32); + } + + /* report an error */ + void + error(char *format, ...) + { + va_list ap; + + fprintf(stderr, "ERROR: "); + + va_start(ap, format); + vfprintf(stderr, format, ap); + va_end(ap); + } + + /* report a warning */ + void + warning(char *format, ...) + { + va_list ap; + + fprintf(stderr, "WARNING: "); + + va_start(ap, format); + vfprintf(stderr, format, ap); + va_end(ap); + } + + /* report an unimplemented protocol feature */ + void + unimpl(char *format, ...) + { + va_list ap; + + fprintf(stderr, "NOT IMPLEMENTED: "); + + va_start(ap, format); + vfprintf(stderr, format, ap); + va_end(ap); + } + + /* Create the bitmap cache directory */ + BOOL + rd_pstcache_mkdir(void) + { + char *home; + char bmpcache_dir[256]; + + home = getenv("HOME"); + + if (home == NULL) + return False; + + sprintf(bmpcache_dir, "%s/%s", home, ".rdesktop"); + + if ((_mkdir(bmpcache_dir) == -1) && errno != EEXIST) + { + perror(bmpcache_dir); + return False; + } + + sprintf(bmpcache_dir, "%s/%s", home, ".rdesktop/cache"); + + if ((_mkdir(bmpcache_dir) == -1) && errno != EEXIST) + { + perror(bmpcache_dir); + return False; + } + + return True; + } + + /* open a file in the .rdesktop directory */ + int + rd_open_file(char *filename) + { + char *home; + char fn[256]; + int fd; + + home = getenv("HOME"); + if (home == NULL) + return -1; + sprintf(fn, "%s/.rdesktop/%s", home, filename); + fd = _open(fn, _O_RDWR | _O_CREAT, 0); + if (fd == -1) + perror(fn); + return fd; + } + + /* close file */ + void + rd_close_file(int fd) + { + _close(fd); + } + + /* read from file*/ + int + rd_read_file(int fd, void *ptr, int len) + { + return _read(fd, ptr, len); + } + + /* write to file */ + int + rd_write_file(int fd, void *ptr, int len) + { + return _write(fd, ptr, len); + } + + /* move file pointer */ + int + rd_lseek_file(int fd, int offset) + { + return _lseek(fd, offset, SEEK_SET); + } + + /* do a write lock on a file */ + BOOL + rd_lock_file(int fd, int start, int len) + { + // TODOOO... + return False; + } + + int + load_licence(RDPCLIENT * This, unsigned char **data) + { + return -1; + } + + void + save_licence(RDPCLIENT * This, unsigned char *data, int length) + { + } + + /* ==== END POOP ==== */ + + /* ==== UI ==== */ + // Globals are totally teh evil, but cut me some slack here + HWND hwnd; + HBITMAP hbmBuffer; + PVOID pBuffer; + HDC hdcBuffer; + UINT wmZMouseWheel; + +}; + +static +void +mstsc_mousewheel(RDPCLIENT * This, int value, LPARAM lparam) +{ + uint16 button; + + if(value < 0) + button = MOUSE_FLAG_BUTTON5; + else + button = MOUSE_FLAG_BUTTON4; + + if(value < 0) + value = - value; + + for(int click = 0; click < value; click += WHEEL_DELTA) + rdp_send_input(This, GetTickCount(), RDP_INPUT_MOUSE, button | MOUSE_FLAG_DOWN, LOWORD(lparam), HIWORD(lparam)); +} + +static +LRESULT +CALLBACK +mstsc_WndProc(HWND hwnd, UINT uMsg, WPARAM wparam, LPARAM lparam) +{ + // BUGBUG: LongToPtr & PtrToLong will break on Win64 + + RDPCLIENT * This = reinterpret_cast(LongToPtr(GetWindowLongPtr(hwnd, GWLP_USERDATA))); + + switch(uMsg) + { + case WM_CLOSE: + DestroyWindow(hwnd); + break; + + // FIXME: temporary + case WM_DESTROY: + PostQuitMessage(0); + break; + + /* Initialization */ + case WM_CREATE: + This = static_cast(reinterpret_cast(lparam)->lpCreateParams); + SetWindowLongPtr(hwnd, GWLP_USERDATA, PtrToLong(This)); + break; + + /* Painting */ + case WM_PRINTCLIENT: + if(wparam == 0) + break; + + case WM_PAINT: + { + HDC hdc = (HDC)wparam; + + // A DC was provided: print the whole client area into it + if(hdc) + { + RECT rc; + GetClientRect(hwnd, &rc); + BitBlt(hdc, 0, 0, rc.right, rc.bottom, hdcBuffer, 0, 0, SRCCOPY); + } + // Otherwise, we're refreshing to screen + else + { + PAINTSTRUCT ps; + hdc = BeginPaint(hwnd, &ps); + + BitBlt + ( + hdc, + ps.rcPaint.left, + ps.rcPaint.top, + ps.rcPaint.right - ps.rcPaint.left, + ps.rcPaint.bottom - ps.rcPaint.top, + hdcBuffer, + ps.rcPaint.left, + ps.rcPaint.top, + SRCCOPY + ); + + EndPaint(hwnd, &ps); + } + } + + break; + + /* Keyboard stuff */ + case WM_SYSKEYDOWN: + case WM_KEYDOWN: + rdp_send_input(This, GetMessageTime(), RDP_INPUT_SCANCODE, RDP_KEYPRESS | (lparam & 0x1000000 ? KBD_FLAG_EXT : 0), LOBYTE(HIWORD(lparam)), 0); + break; + + case WM_SYSKEYUP: + case WM_KEYUP: + rdp_send_input(This, GetMessageTime(), RDP_INPUT_SCANCODE, RDP_KEYRELEASE | (lparam & 0x1000000 ? KBD_FLAG_EXT : 0), LOBYTE(HIWORD(lparam)), 0); + break; + + /* Mouse stuff */ + // Cursor shape + case WM_SETCURSOR: + if(LOWORD(lparam) == HTCLIENT) + { + //SetCursor(hcursor); + return TRUE; + } + + break; + + // Movement + case WM_MOUSEMOVE: + //if(This->sendmotion || wparam & (MK_LBUTTON | MK_RBUTTON | MK_MBUTTON | MK_XBUTTON1 | MK_XBUTTON2)) + rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_MOVE, LOWORD(lparam), HIWORD(lparam)); + + break; + + // Buttons + // TODO: X buttons + case WM_LBUTTONDOWN: + rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON1 | MOUSE_FLAG_DOWN, LOWORD(lparam), HIWORD(lparam)); + break; + + case WM_RBUTTONDOWN: + rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON2 | MOUSE_FLAG_DOWN, LOWORD(lparam), HIWORD(lparam)); + break; + + case WM_MBUTTONDOWN: + rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON3 | MOUSE_FLAG_DOWN, LOWORD(lparam), HIWORD(lparam)); + break; + + case WM_LBUTTONUP: + rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON1, LOWORD(lparam), HIWORD(lparam)); + break; + + case WM_RBUTTONUP: + rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON2, LOWORD(lparam), HIWORD(lparam)); + break; + + case WM_MBUTTONUP: + rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON3, LOWORD(lparam), HIWORD(lparam)); + break; + + // Wheel + case WM_MOUSEWHEEL: + mstsc_mousewheel(This, (SHORT)HIWORD(wparam), lparam); + break; + + default: + /* Registered messages */ + // Z-Mouse wheel support - you know, just in case + if(uMsg == wmZMouseWheel) + { + mstsc_mousewheel(This, (int)wparam, lparam); + break; + } + + /* Unhandled messages */ + return DefWindowProc(hwnd, uMsg, wparam, lparam); + } + + return 0; +} + +static +DWORD +WINAPI +mstsc_ProtocolIOThread +( + LPVOID lpArgument +) +{ + RDPCLIENT * This = static_cast(lpArgument); + + WCHAR hostname[MAX_COMPUTERNAME_LENGTH + 1]; + DWORD dw = ARRAYSIZE(hostname); + GetComputerNameW(hostname, &dw); + + uint32 flags = RDP_LOGON_NORMAL | RDP_LOGON_COMPRESSION | RDP_LOGON_COMPRESSION2; + + rdp_connect(This, "10.0.0.3", flags, L"Administrator", L"", L"", L"", L"", hostname, ""); + //rdp_connect(This, "192.168.7.232", flags, "", "", "", ""); + + hdcBuffer = CreateCompatibleDC(NULL); + + BITMAPINFO bmi; + bmi.bmiHeader.biSize = sizeof(bmi.bmiHeader); + bmi.bmiHeader.biWidth = This->width; + bmi.bmiHeader.biHeight = This->height; + bmi.bmiHeader.biPlanes = 1; + bmi.bmiHeader.biBitCount = This->server_depth; + bmi.bmiHeader.biCompression = BI_RGB; + bmi.bmiHeader.biSizeImage = 0; + bmi.bmiHeader.biXPelsPerMeter = 0; + bmi.bmiHeader.biYPelsPerMeter = 0; + bmi.bmiHeader.biClrUsed = 0; // TODO! palette displays + bmi.bmiHeader.biClrImportant = 0; // TODO! palette displays + + hbmBuffer = CreateDIBSection(hdcBuffer, &bmi, DIB_RGB_COLORS, &pBuffer, NULL, 0); + + SelectObject(hdcBuffer, hbmBuffer); + +#if 0 + rcClip.left = 0; + rcClip.top = 0; + rcClip.right = This->width + 1; + rcClip.bottom = This->height + 1; +#endif + + BOOL deactivated; + uint32 ext_disc_reason; + + rdp_main_loop(This, &deactivated, &ext_disc_reason); + // TODO: handle redirection + // EVENT: OnDisconnect + + SendMessage(hwnd, WM_CLOSE, 0, 0); + + return 0; +} + +/* Virtual channel stuff */ +extern "C" void channel_process(RDPCLIENT * This, STREAM s, uint16 mcs_channel) +{ +} + +DWORD tlsIndex; + +typedef struct CHANNEL_HANDLE_ +{ + RDPCLIENT * client; + int channel; +} +CHANNEL_HANDLE; + +static +UINT +VCAPITYPE +VirtualChannelInit +( + LPVOID * ppInitHandle, + PCHANNEL_DEF pChannel, + INT channelCount, + ULONG versionRequested, + PCHANNEL_INIT_EVENT_FN pChannelInitEventProc +) +{ + if(channelCount <= 0) + return CHANNEL_RC_BAD_CHANNEL; + + if(ppInitHandle == NULL) + return CHANNEL_RC_BAD_INIT_HANDLE; + + if(pChannel == NULL) + return CHANNEL_RC_BAD_CHANNEL; + + if(pChannelInitEventProc == NULL) + return CHANNEL_RC_BAD_PROC; + + RDPCLIENT * This = (RDPCLIENT *)TlsGetValue(tlsIndex); + + if(This == NULL) + return CHANNEL_RC_NOT_IN_VIRTUALCHANNELENTRY; + + if(This->num_channels + channelCount > CHANNEL_MAX_COUNT) + return CHANNEL_RC_TOO_MANY_CHANNELS; + + for(INT i = 0; i < channelCount; ++ i) + { + if(strlen(pChannel[i].name) > CHANNEL_NAME_LEN) + return CHANNEL_RC_BAD_CHANNEL; + } + + memcpy(This->channel_defs + This->num_channels, pChannel, sizeof(*pChannel) * channelCount); + +#if 0 // TODO + for(INT i = 0; i < channelCount; ++ i) + { + pChannel[i].options |= CHANNEL_OPTION_INITIALIZED; + + int j = This->num_channels + i; + This->channel_data[j].opened = 0; + This->channel_data[j].pChannelInitEventProc = pChannelInitEventProc; + This->channel_data[j].pChannelOpenEventProc = NULL; + } +#endif + + This->num_channels += channelCount; + + *ppInitHandle = This; + + return CHANNEL_RC_OK; +} + +UINT +VCAPITYPE +VirtualChannelOpen +( + LPVOID pInitHandle, + LPDWORD pOpenHandle, + PCHAR pChannelName, + PCHANNEL_OPEN_EVENT_FN pChannelOpenEventProc +) +{ + if(pInitHandle == NULL) + return CHANNEL_RC_BAD_INIT_HANDLE; + + if(pOpenHandle == NULL) + return CHANNEL_RC_BAD_CHANNEL_HANDLE; + + if(pChannelName == NULL) + return CHANNEL_RC_UNKNOWN_CHANNEL_NAME; + + if(pChannelOpenEventProc == NULL) + return CHANNEL_RC_BAD_PROC; + + RDPCLIENT * This = (RDPCLIENT *)pInitHandle; + +#if 0 // TODO + for(unsigned i = 0; i < This->num_channels; ++ i) + { + if(strcmp(pChannelName, This->channel_defs[i].name) == 0) + { + if(This->channel_data[i].opened) + return CHANNEL_RC_ALREADY_OPEN; + + This->channel_data[i].opened = 1; + This->channel_data[i].pChannelOpenEventProc = pChannelOpenEventProc; + + // TODO: allocate a handle here + *pOpenHandle = 0; + + break; + } + } +#endif + + return CHANNEL_RC_OK; +} + +UINT VCAPITYPE VirtualChannelClose +( + DWORD openHandle +) +{ + // TODO: channel handle management + return CHANNEL_RC_BAD_CHANNEL_HANDLE; +} + +UINT VCAPITYPE VirtualChannelWrite +( + DWORD openHandle, + LPVOID pData, + ULONG dataLength, + LPVOID pUserData +) +{ + // TODO + return CHANNEL_RC_BAD_CHANNEL_HANDLE; +} + +int wmain() +{ + WSADATA wsd; + WSAStartup(MAKEWORD(2, 2), &wsd); + + static RDPCLIENT This_; // NOTE: this is HUGE and would overflow the stack! + ZeroMemory(&This_, sizeof(This_)); + + RDPCLIENT * This = &This_; + + /* + Threading model for MissTosca: + - main thread is the GUI thread. Message loop maintained by caller + - protocol I/O is handled in an I/O thread (or thread pool) + - extra threads maintained by virtual channel handlers. Virtual channel writes are thread-neutral + + How we handle drawing: at the moment just an off-screen buffer we dump on-screen when asked to. + Still considering how to draw on-screen directly and *then* buffering off-screen (for example, + when running inside another remote session) + */ + + // FIXME: keyboard mess + This->keylayout = 0x409; + This->keyboard_type = 0x4; + This->keyboard_subtype = 0x0; + This->keyboard_functionkeys = 0xc; + This->width = 800; + This->height = 600; + This->server_depth = 24; + This->bitmap_compression = True; + //This->sendmotion = True; + This->bitmap_cache = True; + This->bitmap_cache_persist_enable = False; + This->bitmap_cache_precache = True; + This->encryption = True; + This->packet_encryption = True; + This->desktop_save = True; + This->polygon_ellipse_orders = False; // = True; + //This->fullscreen = False; + //This->grab_keyboard = True; + //This->hide_decorations = False; + This->use_rdp5 = True; + //This->rdpclip = True; + This->console_session = False; + //This->numlock_sync = False; + //This->seamless_rdp = False; + This->rdp5_performanceflags = RDP5_NO_WALLPAPER | RDP5_NO_FULLWINDOWDRAG | RDP5_NO_MENUANIMATIONS; + This->tcp_port_rdp = TCP_PORT_RDP; + +#define NOT_SET -1 + This->cache.bmpcache_lru[0] = NOT_SET; + This->cache.bmpcache_lru[1] = NOT_SET; + This->cache.bmpcache_lru[2] = NOT_SET; + This->cache.bmpcache_mru[0] = NOT_SET; + This->cache.bmpcache_mru[1] = NOT_SET; + This->cache.bmpcache_mru[2] = NOT_SET; + + This->rdp.current_status = 1; + + //hcursor = NULL; + + WNDCLASS wc; + ZeroMemory(&wc, sizeof(wc)); + + wc.lpfnWndProc = mstsc_WndProc; + wc.hbrBackground = static_cast(GetStockObject(HOLLOW_BRUSH)); + wc.lpszClassName = TEXT("MissTosca_Desktop"); + + wmZMouseWheel = RegisterWindowMessage(MSH_MOUSEWHEEL); + + ATOM a = RegisterClass(&wc); + + hwnd = CreateWindow + ( + MAKEINTATOM(a), + NULL, + WS_POPUP | WS_VISIBLE, + CW_USEDEFAULT, + CW_USEDEFAULT, + This->width, + This->height, + NULL, + NULL, + NULL, + This + ); + + // The righ time to start the protocol thread + DWORD dwThreadId; + HANDLE hThread = CreateThread(NULL, 0, mstsc_ProtocolIOThread, This, 0, &dwThreadId); + + // Your standard, garden variety message loop + MSG msg; + + while(GetMessage(&msg, NULL, 0, 0)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } +} + +// EOF diff --git a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/rdesktop-core-tester.vcproj b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/rdesktop-core-tester.vcproj index 1b9c3db7c12..3e91425b3b5 100644 --- a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/rdesktop-core-tester.vcproj +++ b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/rdesktop-core-tester.vcproj @@ -1,377 +1,377 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/stdafx.cpp b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/stdafx.cpp index 0bc452e65b3..1e9dbf2c515 100644 --- a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/stdafx.cpp +++ b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/stdafx.cpp @@ -1,3 +1,3 @@ -#include "stdafx.h" - -// EOF +#include "stdafx.h" + +// EOF diff --git a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/stdafx.h b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/stdafx.h index 3815a3ebce6..87956e633cb 100644 --- a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/stdafx.h +++ b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/stdafx.h @@ -1,32 +1,32 @@ -#pragma once - -#define _CRT_SECURE_NO_DEPRECATE -#define _SECURE_SCL 0 - -#include -#include - -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#define WIN32_LEAN_AND_MEAN -#include -#include - -#include -#include -#include -#include -#include - -#include - -// EOF +#pragma once + +#define _CRT_SECURE_NO_DEPRECATE +#define _SECURE_SCL 0 + +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#define WIN32_LEAN_AND_MEAN +#include +#include + +#include +#include +#include +#include +#include + +#include + +// EOF diff --git a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/typelib.rh b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/typelib.rh index 172e1a6cce2..e14a7da2c05 100644 --- a/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/typelib.rh +++ b/reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/typelib.rh @@ -1,21 +1,21 @@ -#define TOSTRING_(X) #X -#define TOSTRING(X) TOSTRING_(X) - -LANGUAGE 0, 0 - -#ifndef TYPELIB_PATH__ -#error TYPELIB_PATH__ not defined -#endif - -#ifndef TYPELIB_RESOURCEID__ -#error TYPELIB_RESOURCEID__ not defined -#endif - -/* - NOTE: - TYPELIB_PATH__ is defined on the command line (-D TYPELIB_PATH__=) - TYPELIB_RESOURCEID__ is defined before this file is included -*/ -TYPELIB_RESOURCEID__ TYPELIB TOSTRING(TYPELIB_PATH__) - -// EOF +#define TOSTRING_(X) #X +#define TOSTRING(X) TOSTRING_(X) + +LANGUAGE 0, 0 + +#ifndef TYPELIB_PATH__ +#error TYPELIB_PATH__ not defined +#endif + +#ifndef TYPELIB_RESOURCEID__ +#error TYPELIB_RESOURCEID__ not defined +#endif + +/* + NOTE: + TYPELIB_PATH__ is defined on the command line (-D TYPELIB_PATH__=) + TYPELIB_RESOURCEID__ is defined before this file is included +*/ +TYPELIB_RESOURCEID__ TYPELIB TOSTRING(TYPELIB_PATH__) + +// EOF diff --git a/reactos/base/applications/tsclient/rdesktop/COPYING b/reactos/base/applications/tsclient/rdesktop/COPYING index 15fb334c821..43d773001a8 100644 --- a/reactos/base/applications/tsclient/rdesktop/COPYING +++ b/reactos/base/applications/tsclient/rdesktop/COPYING @@ -1,346 +1,346 @@ -This software is released under the GNU General Public License -(reproduced below) with the additional exemption that compiling, -linking, and/or using OpenSSL together with this software is -allowed. - ---- - - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 675 Mass Ave, Cambridge, MA 02139, USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) 19yy - - 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. - - This 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. - - You 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. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. +This software is released under the GNU General Public License +(reproduced below) with the additional exemption that compiling, +linking, and/or using OpenSSL together with this software is +allowed. + +--- + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + 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. + + This 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. + + You 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. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/reactos/base/applications/tsclient/rdesktop/Makefile.in b/reactos/base/applications/tsclient/rdesktop/Makefile.in index b2edc5d063d..17d5522fac3 100644 --- a/reactos/base/applications/tsclient/rdesktop/Makefile.in +++ b/reactos/base/applications/tsclient/rdesktop/Makefile.in @@ -1,158 +1,158 @@ -# -# rdesktop: A Remote Desktop Protocol client -# Makefile.in -# Copyright (C) Matthew Chapman 1999-2005 -# - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -bindir = @bindir@ -mandir = @mandir@ -datadir = @datadir@ - -VERSION = @PACKAGE_VERSION@ -KEYMAP_PATH = $(datadir)/rdesktop/keymaps/ - -CC = @CC@ -INSTALL = @INSTALL@ -CFLAGS = @CFLAGS@ @X_CFLAGS@ @DEFS@ -DKEYMAP_PATH=\"$(KEYMAP_PATH)\" -LDFLAGS = @LDFLAGS@ @LIBS@ @X_LIBS@ @X_EXTRA_LIBS@ -STRIP = @STRIP@ - -TARGETS = rdesktop @RDP2VNCTARGET@ -VNCINC = @VNCINC@ -LDVNC = @LDVNC@ -VNCLINK = @VNCLINK@ -SOUNDOBJ = @SOUNDOBJ@ - -RDPOBJ = tcp.o iso.o mcs.o secure.o licence.o rdp.o orders.o bitmap.o cache.o rdp5.o channels.o rdpdr.o serial.o printer.o disk.o parallel.o printercache.o mppc.o pstcache.o lspci.o seamless.o -X11OBJ = rdesktop.o xwin.o xkeymap.o ewmhints.o xclip.o cliprdr.o -VNCOBJ = vnc/rdp2vnc.o vnc/vnc.o vnc/xkeymap.o vnc/x11stubs.o - -.PHONY: all -all: $(TARGETS) - -rdesktop: $(X11OBJ) $(SOUNDOBJ) $(RDPOBJ) - $(CC) $(CFLAGS) -o rdesktop $(X11OBJ) $(SOUNDOBJ) $(RDPOBJ) $(LDFLAGS) -lX11 - -rdp2vnc: $(VNCOBJ) $(SOUNDOBJ) $(RDPOBJ) - $(VNCLINK) $(CFLAGS) -o rdp2vnc $(VNCOBJ) $(SOUNDOBJ) $(RDPOBJ) $(LDFLAGS) $(LDVNC) - -vnc/rdp2vnc.o: rdesktop.c - $(CC) $(CFLAGS) $(VNCINC) -DRDP2VNC -o vnc/rdp2vnc.o -c rdesktop.c - -vnc/vnc.o: vnc/vnc.c - $(CC) $(CFLAGS) $(VNCINC) -DRDP2VNC -o vnc/vnc.o -c vnc/vnc.c - -vnc/xkeymap.o: xkeymap.c - $(CC) $(CFLAGS) $(VNCINC) -DRDP2VNC -o vnc/xkeymap.o -c xkeymap.c - -vnc/x11stubs.o: vnc/x11stubs.c - $(CC) $(CFLAGS) $(VNCINC) -o vnc/x11stubs.o -c vnc/x11stubs.c - -.PHONY: install -install: installbin installkeymaps installman - -.PHONY: installbin -installbin: rdesktop - mkdir -p $(DESTDIR)$(bindir) - $(INSTALL) rdesktop $(DESTDIR)$(bindir) - $(STRIP) $(DESTDIR)$(bindir)/rdesktop - chmod 755 $(DESTDIR)$(bindir)/rdesktop - -.PHONY: installman -installman: doc/rdesktop.1 - mkdir -p $(DESTDIR)$(mandir)/man1 - cp doc/rdesktop.1 $(DESTDIR)$(mandir)/man1 - chmod 644 $(DESTDIR)$(mandir)/man1/rdesktop.1 - -.PHONY: installkeymaps -installkeymaps: - mkdir -p $(DESTDIR)$(KEYMAP_PATH) -# Prevent copying the CVS directory - cp keymaps/?? keymaps/??-?? $(DESTDIR)$(KEYMAP_PATH) - cp keymaps/common $(DESTDIR)$(KEYMAP_PATH) - cp keymaps/modifiers $(DESTDIR)$(KEYMAP_PATH) - chmod 644 $(DESTDIR)$(KEYMAP_PATH)/* - -.PHONY: proto -proto: - cat proto.head > proto.h - cproto -DMAKE_PROTO \ - bitmap.c cache.c channels.c cliprdr.c disk.c mppc.c ewmhints.c \ - iso.c licence.c mcs.c orders.c parallel.c printer.c printercache.c \ - pstcache.c rdesktop.c rdp5.c rdp.c rdpdr.c rdpsnd.c rdpsnd_oss.c \ - secure.c serial.c tcp.c xclip.c xkeymap.c xwin.c lspci.c seamless.c >> proto.h - cat proto.tail >> proto.h - -.PHONY: clean -clean: - rm -f *.o *~ vnc/*.o vnc/*~ rdesktop rdp2vnc - -.PHONY: distclean -distclean: clean - rm -rf autom4te.cache config.log config.status Makefile - -.PHONY: dist -dist: rdesktop-$(VERSION).tar.gz - -rdesktop-$(VERSION).tar.gz: Makefile configure - mkdir -p /tmp/rdesktop-make-dist-dir - ln -sf `pwd` /tmp/rdesktop-make-dist-dir/rdesktop-$(VERSION) - (cd /tmp/rdesktop-make-dist-dir; \ - tar zcvf rdesktop-$(VERSION)/rdesktop-$(VERSION).tar.gz \ - rdesktop-$(VERSION)/COPYING \ - rdesktop-$(VERSION)/README \ - rdesktop-$(VERSION)/configure \ - rdesktop-$(VERSION)/configure.ac \ - rdesktop-$(VERSION)/config.sub \ - rdesktop-$(VERSION)/config.guess \ - rdesktop-$(VERSION)/bootstrap \ - rdesktop-$(VERSION)/install-sh \ - rdesktop-$(VERSION)/Makefile.in \ - rdesktop-$(VERSION)/rdesktop.spec \ - rdesktop-$(VERSION)/*.c \ - rdesktop-$(VERSION)/*.h \ - rdesktop-$(VERSION)/proto.head \ - rdesktop-$(VERSION)/proto.tail \ - rdesktop-$(VERSION)/keymaps/?? \ - rdesktop-$(VERSION)/keymaps/??-?? \ - rdesktop-$(VERSION)/keymaps/common \ - rdesktop-$(VERSION)/keymaps/modifiers \ - rdesktop-$(VERSION)/keymaps/convert-map \ - rdesktop-$(VERSION)/doc/HACKING \ - rdesktop-$(VERSION)/doc/AUTHORS \ - rdesktop-$(VERSION)/doc/TODO \ - rdesktop-$(VERSION)/doc/ChangeLog \ - rdesktop-$(VERSION)/doc/keymapping.txt \ - rdesktop-$(VERSION)/doc/keymap-names.txt \ - rdesktop-$(VERSION)/doc/ipv6.txt \ - rdesktop-$(VERSION)/doc/licensing.txt \ - rdesktop-$(VERSION)/doc/patches.txt \ - rdesktop-$(VERSION)/doc/redirection.txt \ - rdesktop-$(VERSION)/doc/rdesktop.1 ) - rm -rf /tmp/rdesktop-make-dist-dir - -.PHONY: dist-noversion -dist-noversion: rdesktop.tar.gz - -rdesktop.tar.gz: rdesktop-$(VERSION).tar.gz - mkdir -p /tmp/rdesktop-make-dist-dir - tar zxvf $< -C /tmp/rdesktop-make-dist-dir - mv /tmp/rdesktop-make-dist-dir/rdesktop-$(VERSION) /tmp/rdesktop-make-dist-dir/rdesktop - ls /tmp/rdesktop-make-dist-dir/rdesktop - tar zcvf $@ -C /tmp/rdesktop-make-dist-dir rdesktop - rm -rf /tmp/rdesktop-make-dist-dir - -Makefile: Makefile.in configure - ./config.status - -configure: configure.ac - ./bootstrap - -.SUFFIXES: -.SUFFIXES: .c .o - -.c.o: - $(CC) $(CFLAGS) -o $@ -c $< - +# +# rdesktop: A Remote Desktop Protocol client +# Makefile.in +# Copyright (C) Matthew Chapman 1999-2005 +# + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +bindir = @bindir@ +mandir = @mandir@ +datadir = @datadir@ + +VERSION = @PACKAGE_VERSION@ +KEYMAP_PATH = $(datadir)/rdesktop/keymaps/ + +CC = @CC@ +INSTALL = @INSTALL@ +CFLAGS = @CFLAGS@ @X_CFLAGS@ @DEFS@ -DKEYMAP_PATH=\"$(KEYMAP_PATH)\" +LDFLAGS = @LDFLAGS@ @LIBS@ @X_LIBS@ @X_EXTRA_LIBS@ +STRIP = @STRIP@ + +TARGETS = rdesktop @RDP2VNCTARGET@ +VNCINC = @VNCINC@ +LDVNC = @LDVNC@ +VNCLINK = @VNCLINK@ +SOUNDOBJ = @SOUNDOBJ@ + +RDPOBJ = tcp.o iso.o mcs.o secure.o licence.o rdp.o orders.o bitmap.o cache.o rdp5.o channels.o rdpdr.o serial.o printer.o disk.o parallel.o printercache.o mppc.o pstcache.o lspci.o seamless.o +X11OBJ = rdesktop.o xwin.o xkeymap.o ewmhints.o xclip.o cliprdr.o +VNCOBJ = vnc/rdp2vnc.o vnc/vnc.o vnc/xkeymap.o vnc/x11stubs.o + +.PHONY: all +all: $(TARGETS) + +rdesktop: $(X11OBJ) $(SOUNDOBJ) $(RDPOBJ) + $(CC) $(CFLAGS) -o rdesktop $(X11OBJ) $(SOUNDOBJ) $(RDPOBJ) $(LDFLAGS) -lX11 + +rdp2vnc: $(VNCOBJ) $(SOUNDOBJ) $(RDPOBJ) + $(VNCLINK) $(CFLAGS) -o rdp2vnc $(VNCOBJ) $(SOUNDOBJ) $(RDPOBJ) $(LDFLAGS) $(LDVNC) + +vnc/rdp2vnc.o: rdesktop.c + $(CC) $(CFLAGS) $(VNCINC) -DRDP2VNC -o vnc/rdp2vnc.o -c rdesktop.c + +vnc/vnc.o: vnc/vnc.c + $(CC) $(CFLAGS) $(VNCINC) -DRDP2VNC -o vnc/vnc.o -c vnc/vnc.c + +vnc/xkeymap.o: xkeymap.c + $(CC) $(CFLAGS) $(VNCINC) -DRDP2VNC -o vnc/xkeymap.o -c xkeymap.c + +vnc/x11stubs.o: vnc/x11stubs.c + $(CC) $(CFLAGS) $(VNCINC) -o vnc/x11stubs.o -c vnc/x11stubs.c + +.PHONY: install +install: installbin installkeymaps installman + +.PHONY: installbin +installbin: rdesktop + mkdir -p $(DESTDIR)$(bindir) + $(INSTALL) rdesktop $(DESTDIR)$(bindir) + $(STRIP) $(DESTDIR)$(bindir)/rdesktop + chmod 755 $(DESTDIR)$(bindir)/rdesktop + +.PHONY: installman +installman: doc/rdesktop.1 + mkdir -p $(DESTDIR)$(mandir)/man1 + cp doc/rdesktop.1 $(DESTDIR)$(mandir)/man1 + chmod 644 $(DESTDIR)$(mandir)/man1/rdesktop.1 + +.PHONY: installkeymaps +installkeymaps: + mkdir -p $(DESTDIR)$(KEYMAP_PATH) +# Prevent copying the CVS directory + cp keymaps/?? keymaps/??-?? $(DESTDIR)$(KEYMAP_PATH) + cp keymaps/common $(DESTDIR)$(KEYMAP_PATH) + cp keymaps/modifiers $(DESTDIR)$(KEYMAP_PATH) + chmod 644 $(DESTDIR)$(KEYMAP_PATH)/* + +.PHONY: proto +proto: + cat proto.head > proto.h + cproto -DMAKE_PROTO \ + bitmap.c cache.c channels.c cliprdr.c disk.c mppc.c ewmhints.c \ + iso.c licence.c mcs.c orders.c parallel.c printer.c printercache.c \ + pstcache.c rdesktop.c rdp5.c rdp.c rdpdr.c rdpsnd.c rdpsnd_oss.c \ + secure.c serial.c tcp.c xclip.c xkeymap.c xwin.c lspci.c seamless.c >> proto.h + cat proto.tail >> proto.h + +.PHONY: clean +clean: + rm -f *.o *~ vnc/*.o vnc/*~ rdesktop rdp2vnc + +.PHONY: distclean +distclean: clean + rm -rf autom4te.cache config.log config.status Makefile + +.PHONY: dist +dist: rdesktop-$(VERSION).tar.gz + +rdesktop-$(VERSION).tar.gz: Makefile configure + mkdir -p /tmp/rdesktop-make-dist-dir + ln -sf `pwd` /tmp/rdesktop-make-dist-dir/rdesktop-$(VERSION) + (cd /tmp/rdesktop-make-dist-dir; \ + tar zcvf rdesktop-$(VERSION)/rdesktop-$(VERSION).tar.gz \ + rdesktop-$(VERSION)/COPYING \ + rdesktop-$(VERSION)/README \ + rdesktop-$(VERSION)/configure \ + rdesktop-$(VERSION)/configure.ac \ + rdesktop-$(VERSION)/config.sub \ + rdesktop-$(VERSION)/config.guess \ + rdesktop-$(VERSION)/bootstrap \ + rdesktop-$(VERSION)/install-sh \ + rdesktop-$(VERSION)/Makefile.in \ + rdesktop-$(VERSION)/rdesktop.spec \ + rdesktop-$(VERSION)/*.c \ + rdesktop-$(VERSION)/*.h \ + rdesktop-$(VERSION)/proto.head \ + rdesktop-$(VERSION)/proto.tail \ + rdesktop-$(VERSION)/keymaps/?? \ + rdesktop-$(VERSION)/keymaps/??-?? \ + rdesktop-$(VERSION)/keymaps/common \ + rdesktop-$(VERSION)/keymaps/modifiers \ + rdesktop-$(VERSION)/keymaps/convert-map \ + rdesktop-$(VERSION)/doc/HACKING \ + rdesktop-$(VERSION)/doc/AUTHORS \ + rdesktop-$(VERSION)/doc/TODO \ + rdesktop-$(VERSION)/doc/ChangeLog \ + rdesktop-$(VERSION)/doc/keymapping.txt \ + rdesktop-$(VERSION)/doc/keymap-names.txt \ + rdesktop-$(VERSION)/doc/ipv6.txt \ + rdesktop-$(VERSION)/doc/licensing.txt \ + rdesktop-$(VERSION)/doc/patches.txt \ + rdesktop-$(VERSION)/doc/redirection.txt \ + rdesktop-$(VERSION)/doc/rdesktop.1 ) + rm -rf /tmp/rdesktop-make-dist-dir + +.PHONY: dist-noversion +dist-noversion: rdesktop.tar.gz + +rdesktop.tar.gz: rdesktop-$(VERSION).tar.gz + mkdir -p /tmp/rdesktop-make-dist-dir + tar zxvf $< -C /tmp/rdesktop-make-dist-dir + mv /tmp/rdesktop-make-dist-dir/rdesktop-$(VERSION) /tmp/rdesktop-make-dist-dir/rdesktop + ls /tmp/rdesktop-make-dist-dir/rdesktop + tar zcvf $@ -C /tmp/rdesktop-make-dist-dir rdesktop + rm -rf /tmp/rdesktop-make-dist-dir + +Makefile: Makefile.in configure + ./config.status + +configure: configure.ac + ./bootstrap + +.SUFFIXES: +.SUFFIXES: .c .o + +.c.o: + $(CC) $(CFLAGS) -o $@ -c $< + diff --git a/reactos/base/applications/tsclient/rdesktop/README b/reactos/base/applications/tsclient/rdesktop/README index 11a5c8faac5..d554582ba6d 100644 --- a/reactos/base/applications/tsclient/rdesktop/README +++ b/reactos/base/applications/tsclient/rdesktop/README @@ -1,32 +1,32 @@ -=========================================== -rdesktop: A Remote Desktop Protocol client. -=========================================== - -rdesktop is a client for Microsoft Windows NT Terminal Server, Windows 2000 -Terminal Services, Windows 2003 Terminal Services/Remote Desktop, Windows XP -Remote Desktop, and possibly other Terminal Services products. -rdesktop currently implements the RDP version 4 and 5 protocols. - -Installation ------------- -rdesktop uses a typical GNU-style build procedure: - - % ./configure [options] - % make - % make install - -where documentation for [options] can be found by running "./configure --help". -Usually no options are necessary. The default is to install under /usr/local, -this can be changed with --prefix=directory. - -Invocation ----------- - - % rdesktop [options] server - -where server is the name of the Terminal Services machine. Note: if you -receive "Connection refused", this probably means that the server does not have -Terminal Services enabled, or there is a firewall blocking access. - -The rdesktop manual page lists the possible options ("man rdesktop"). - +=========================================== +rdesktop: A Remote Desktop Protocol client. +=========================================== + +rdesktop is a client for Microsoft Windows NT Terminal Server, Windows 2000 +Terminal Services, Windows 2003 Terminal Services/Remote Desktop, Windows XP +Remote Desktop, and possibly other Terminal Services products. +rdesktop currently implements the RDP version 4 and 5 protocols. + +Installation +------------ +rdesktop uses a typical GNU-style build procedure: + + % ./configure [options] + % make + % make install + +where documentation for [options] can be found by running "./configure --help". +Usually no options are necessary. The default is to install under /usr/local, +this can be changed with --prefix=directory. + +Invocation +---------- + + % rdesktop [options] server + +where server is the name of the Terminal Services machine. Note: if you +receive "Connection refused", this probably means that the server does not have +Terminal Services enabled, or there is a firewall blocking access. + +The rdesktop manual page lists the possible options ("man rdesktop"). + diff --git a/reactos/base/applications/tsclient/rdesktop/bitmap.c b/reactos/base/applications/tsclient/rdesktop/bitmap.c index 5db5ddfb7a9..a29308448a2 100644 --- a/reactos/base/applications/tsclient/rdesktop/bitmap.c +++ b/reactos/base/applications/tsclient/rdesktop/bitmap.c @@ -1,1112 +1,1112 @@ -/* -*- c-basic-offset: 8 -*- - rdesktop: A Remote Desktop Protocol client. - Bitmap decompression routines - Copyright (C) Matthew Chapman 1999-2005 - - 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. - - This 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. - - You 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. -*/ - -/* three seperate function for speed when decompressing the bitmaps */ -/* when modifing one function make the change in the others */ -/* comment out #define BITMAP_SPEED_OVER_SIZE below for one slower function */ -/* j@american-data.com */ - -#define BITMAP_SPEED_OVER_SIZE - -/* indent is confused by this file */ -/* *INDENT-OFF* */ - -#include "rdesktop.h" - -#define CVAL(p) (*(p++)) -#ifdef NEED_ALIGN -#ifdef L_ENDIAN -#define CVAL2(p, v) { v = (*(p++)); v |= (*(p++)) << 8; } -#else -#define CVAL2(p, v) { v = (*(p++)) << 8; v |= (*(p++)); } -#endif /* L_ENDIAN */ -#else -#define CVAL2(p, v) { v = (*((uint16*)p)); p += 2; } -#endif /* NEED_ALIGN */ - -#define UNROLL8(exp) { exp exp exp exp exp exp exp exp } - -#define REPEAT(statement) \ -{ \ - while((count & ~0x7) && ((x+8) < width)) \ - UNROLL8( statement; count--; x++; ); \ - \ - while((count > 0) && (x < width)) \ - { \ - statement; \ - count--; \ - x++; \ - } \ -} - -#define MASK_UPDATE() \ -{ \ - mixmask <<= 1; \ - if (mixmask == 0) \ - { \ - mask = fom_mask ? fom_mask : CVAL(input); \ - mixmask = 1; \ - } \ -} - -#ifdef BITMAP_SPEED_OVER_SIZE - -/* 1 byte bitmap decompress */ -static BOOL -bitmap_decompress1(uint8 * output, int width, int height, uint8 * input, int size) -{ - uint8 *end = input + size; - uint8 *prevline = NULL; - int opcode, count, offset, isfillormix; - int lastopcode = -1, insertmix = False, bicolour = False; - uint8 code; - uint8 colour1 = 0, colour2 = 0; - uint8 mixmask, mask = 0; - uint8 mix = 0xff; - int fom_mask = 0; -#if 0 - uint8 *line = NULL; - int x = width; -#else - uint8 *line = output; - int x = 0; - int y = 0; -#endif - - while (input < end) - { - fom_mask = 0; - code = CVAL(input); - opcode = code >> 4; - /* Handle different opcode forms */ - switch (opcode) - { - case 0xc: - case 0xd: - case 0xe: - opcode -= 6; - count = code & 0xf; - offset = 16; - break; - case 0xf: - opcode = code & 0xf; - if (opcode < 9) - { - count = CVAL(input); - count |= CVAL(input) << 8; - } - else - { - count = (opcode < 0xb) ? 8 : 1; - } - offset = 0; - break; - default: - opcode >>= 1; - count = code & 0x1f; - offset = 32; - break; - } - /* Handle strange cases for counts */ - if (offset != 0) - { - isfillormix = ((opcode == 2) || (opcode == 7)); - if (count == 0) - { - if (isfillormix) - count = CVAL(input) + 1; - else - count = CVAL(input) + offset; - } - else if (isfillormix) - { - count <<= 3; - } - } - /* Read preliminary data */ - switch (opcode) - { - case 0: /* Fill */ - if ((lastopcode == opcode) && !((x == width) && (prevline == NULL))) - insertmix = True; - break; - case 8: /* Bicolour */ - colour1 = CVAL(input); - case 3: /* Colour */ - colour2 = CVAL(input); - break; - case 6: /* SetMix/Mix */ - case 7: /* SetMix/FillOrMix */ - mix = CVAL(input); - opcode -= 5; - break; - case 9: /* FillOrMix_1 */ - mask = 0x03; - opcode = 0x02; - fom_mask = 3; - break; - case 0x0a: /* FillOrMix_2 */ - mask = 0x05; - opcode = 0x02; - fom_mask = 5; - break; - } - lastopcode = opcode; - mixmask = 0; - /* Output body */ - while (count > 0) - { - if (x >= width) - { -#if 0 - if (height <= 0) -#else - if (y >= height) -#endif - return False; - x = 0; - -#if 0 - height--; -#else - y ++; -#endif - - prevline = line; - -#if 0 - line = output + height * width; -#else - line = output + y * width; -#endif - } - switch (opcode) - { - case 0: /* Fill */ - if (insertmix) - { - if (prevline == NULL) - line[x] = mix; - else - line[x] = prevline[x] ^ mix; - insertmix = False; - count--; - x++; - } - if (prevline == NULL) - { - REPEAT(line[x] = 0) - } - else - { - REPEAT(line[x] = prevline[x]) - } - break; - case 1: /* Mix */ - if (prevline == NULL) - { - REPEAT(line[x] = mix) - } - else - { - REPEAT(line[x] = prevline[x] ^ mix) - } - break; - case 2: /* Fill or Mix */ - if (prevline == NULL) - { - REPEAT - ( - MASK_UPDATE(); - if (mask & mixmask) - line[x] = mix; - else - line[x] = 0; - ) - } - else - { - REPEAT - ( - MASK_UPDATE(); - if (mask & mixmask) - line[x] = prevline[x] ^ mix; - else - line[x] = prevline[x]; - ) - } - break; - case 3: /* Colour */ - REPEAT(line[x] = colour2) - break; - case 4: /* Copy */ - REPEAT(line[x] = CVAL(input)) - break; - case 8: /* Bicolour */ - REPEAT - ( - if (bicolour) - { - line[x] = colour2; - bicolour = False; - } - else - { - line[x] = colour1; - bicolour = True; count++; - } - ) - break; - case 0xd: /* White */ - REPEAT(line[x] = 0xff) - break; - case 0xe: /* Black */ - REPEAT(line[x] = 0) - break; - default: - unimpl("bitmap opcode 0x%x\n", opcode); - return False; - } - } - } - return True; -} - -/* 2 byte bitmap decompress */ -static BOOL -bitmap_decompress2(uint8 * output, int width, int height, uint8 * input, int size) -{ - uint8 *end = input + size; - uint16 *prevline = NULL; - int opcode, count, offset, isfillormix; - int lastopcode = -1, insertmix = False, bicolour = False; - uint8 code; - uint16 colour1 = 0, colour2 = 0; - uint8 mixmask, mask = 0; - uint16 mix = 0xffff; - int fom_mask = 0; -#if 0 - uint8 *line = NULL; - int x = width; -#else - uint8 *line = output; - int x = 0; - int y = 0; -#endif - - while (input < end) - { - fom_mask = 0; - code = CVAL(input); - opcode = code >> 4; - /* Handle different opcode forms */ - switch (opcode) - { - case 0xc: - case 0xd: - case 0xe: - opcode -= 6; - count = code & 0xf; - offset = 16; - break; - case 0xf: - opcode = code & 0xf; - if (opcode < 9) - { - count = CVAL(input); - count |= CVAL(input) << 8; - } - else - { - count = (opcode < 0xb) ? 8 : 1; - } - offset = 0; - break; - default: - opcode >>= 1; - count = code & 0x1f; - offset = 32; - break; - } - /* Handle strange cases for counts */ - if (offset != 0) - { - isfillormix = ((opcode == 2) || (opcode == 7)); - if (count == 0) - { - if (isfillormix) - count = CVAL(input) + 1; - else - count = CVAL(input) + offset; - } - else if (isfillormix) - { - count <<= 3; - } - } - /* Read preliminary data */ - switch (opcode) - { - case 0: /* Fill */ - if ((lastopcode == opcode) && !((x == width) && (prevline == NULL))) - insertmix = True; - break; - case 8: /* Bicolour */ - CVAL2(input, colour1); - case 3: /* Colour */ - CVAL2(input, colour2); - break; - case 6: /* SetMix/Mix */ - case 7: /* SetMix/FillOrMix */ - CVAL2(input, mix); - opcode -= 5; - break; - case 9: /* FillOrMix_1 */ - mask = 0x03; - opcode = 0x02; - fom_mask = 3; - break; - case 0x0a: /* FillOrMix_2 */ - mask = 0x05; - opcode = 0x02; - fom_mask = 5; - break; - } - lastopcode = opcode; - mixmask = 0; - /* Output body */ - while (count > 0) - { - if (x >= width) - { -#if 0 - if (height <= 0) -#else - if (y >= height) -#endif - return False; - x = 0; - -#if 0 - height--; -#else - y ++; -#endif - - prevline = line; - -#if 0 - line = ((uint16 *) output) + height * width; -#else - line = ((uint16 *) output) + y * width; -#endif - } - switch (opcode) - { - case 0: /* Fill */ - if (insertmix) - { - if (prevline == NULL) - line[x] = mix; - else - line[x] = prevline[x] ^ mix; - insertmix = False; - count--; - x++; - } - if (prevline == NULL) - { - REPEAT(line[x] = 0) - } - else - { - REPEAT(line[x] = prevline[x]) - } - break; - case 1: /* Mix */ - if (prevline == NULL) - { - REPEAT(line[x] = mix) - } - else - { - REPEAT(line[x] = prevline[x] ^ mix) - } - break; - case 2: /* Fill or Mix */ - if (prevline == NULL) - { - REPEAT - ( - MASK_UPDATE(); - if (mask & mixmask) - line[x] = mix; - else - line[x] = 0; - ) - } - else - { - REPEAT - ( - MASK_UPDATE(); - if (mask & mixmask) - line[x] = prevline[x] ^ mix; - else - line[x] = prevline[x]; - ) - } - break; - case 3: /* Colour */ - REPEAT(line[x] = colour2) - break; - case 4: /* Copy */ - REPEAT(CVAL2(input, line[x])) - break; - case 8: /* Bicolour */ - REPEAT - ( - if (bicolour) - { - line[x] = colour2; - bicolour = False; - } - else - { - line[x] = colour1; - bicolour = True; - count++; - } - ) - break; - case 0xd: /* White */ - REPEAT(line[x] = 0xffff) - break; - case 0xe: /* Black */ - REPEAT(line[x] = 0) - break; - default: - unimpl("bitmap opcode 0x%x\n", opcode); - return False; - } - } - } - return True; -} - -/* 3 byte bitmap decompress */ -static BOOL -bitmap_decompress3(uint8 * output, int width, int height, uint8 * input, int size) -{ - uint8 *end = input + size; - uint8 *prevline = NULL; - int opcode, count, offset, isfillormix; - int lastopcode = -1, insertmix = False, bicolour = False; - uint8 code; - uint8 colour1[3] = {0, 0, 0}, colour2[3] = {0, 0, 0}; - uint8 mixmask, mask = 0; - uint8 mix[3] = {0xff, 0xff, 0xff}; - int fom_mask = 0; -#if 0 - uint8 *line = NULL; - int x = width; -#else - uint8 *line = output; - int x = 0; - int y = 0; -#endif - - while (input < end) - { - fom_mask = 0; - code = CVAL(input); - opcode = code >> 4; - /* Handle different opcode forms */ - switch (opcode) - { - case 0xc: - case 0xd: - case 0xe: - opcode -= 6; - count = code & 0xf; - offset = 16; - break; - case 0xf: - opcode = code & 0xf; - if (opcode < 9) - { - count = CVAL(input); - count |= CVAL(input) << 8; - } - else - { - count = (opcode < - 0xb) ? 8 : 1; - } - offset = 0; - break; - default: - opcode >>= 1; - count = code & 0x1f; - offset = 32; - break; - } - /* Handle strange cases for counts */ - if (offset != 0) - { - isfillormix = ((opcode == 2) || (opcode == 7)); - if (count == 0) - { - if (isfillormix) - count = CVAL(input) + 1; - else - count = CVAL(input) + offset; - } - else if (isfillormix) - { - count <<= 3; - } - } - /* Read preliminary data */ - switch (opcode) - { - case 0: /* Fill */ - if ((lastopcode == opcode) && !((x == width) && (prevline == NULL))) - insertmix = True; - break; - case 8: /* Bicolour */ - colour1[0] = CVAL(input); - colour1[1] = CVAL(input); - colour1[2] = CVAL(input); - case 3: /* Colour */ - colour2[0] = CVAL(input); - colour2[1] = CVAL(input); - colour2[2] = CVAL(input); - break; - case 6: /* SetMix/Mix */ - case 7: /* SetMix/FillOrMix */ - mix[0] = CVAL(input); - mix[1] = CVAL(input); - mix[2] = CVAL(input); - opcode -= 5; - break; - case 9: /* FillOrMix_1 */ - mask = 0x03; - opcode = 0x02; - fom_mask = 3; - break; - case 0x0a: /* FillOrMix_2 */ - mask = 0x05; - opcode = 0x02; - fom_mask = 5; - break; - } - lastopcode = opcode; - mixmask = 0; - /* Output body */ - while (count > 0) - { - if (x >= width) - { -#if 0 - if (height <= 0) -#else - if (y >= height) -#endif - return False; - x = 0; - -#if 0 - height--; -#else - y ++; -#endif - - prevline = line; - -#if 0 - line = output + height * (width * 3); -#else - line = output + y * (width * 3); -#endif - } - switch (opcode) - { - case 0: /* Fill */ - if (insertmix) - { - if (prevline == NULL) - { - line[x * 3] = mix[0]; - line[x * 3 + 1] = mix[1]; - line[x * 3 + 2] = mix[2]; - } - else - { - line[x * 3] = - prevline[x * 3] ^ mix[0]; - line[x * 3 + 1] = - prevline[x * 3 + 1] ^ mix[1]; - line[x * 3 + 2] = - prevline[x * 3 + 2] ^ mix[2]; - } - insertmix = False; - count--; - x++; - } - if (prevline == NULL) - { - REPEAT - ( - line[x * 3] = 0; - line[x * 3 + 1] = 0; - line[x * 3 + 2] = 0; - ) - } - else - { - REPEAT - ( - line[x * 3] = prevline[x * 3]; - line[x * 3 + 1] = prevline[x * 3 + 1]; - line[x * 3 + 2] = prevline[x * 3 + 2]; - ) - } - break; - case 1: /* Mix */ - if (prevline == NULL) - { - REPEAT - ( - line[x * 3] = mix[0]; - line[x * 3 + 1] = mix[1]; - line[x * 3 + 2] = mix[2]; - ) - } - else - { - REPEAT - ( - line[x * 3] = - prevline[x * 3] ^ mix[0]; - line[x * 3 + 1] = - prevline[x * 3 + 1] ^ mix[1]; - line[x * 3 + 2] = - prevline[x * 3 + 2] ^ mix[2]; - ) - } - break; - case 2: /* Fill or Mix */ - if (prevline == NULL) - { - REPEAT - ( - MASK_UPDATE(); - if (mask & mixmask) - { - line[x * 3] = mix[0]; - line[x * 3 + 1] = mix[1]; - line[x * 3 + 2] = mix[2]; - } - else - { - line[x * 3] = 0; - line[x * 3 + 1] = 0; - line[x * 3 + 2] = 0; - } - ) - } - else - { - REPEAT - ( - MASK_UPDATE(); - if (mask & mixmask) - { - line[x * 3] = - prevline[x * 3] ^ mix [0]; - line[x * 3 + 1] = - prevline[x * 3 + 1] ^ mix [1]; - line[x * 3 + 2] = - prevline[x * 3 + 2] ^ mix [2]; - } - else - { - line[x * 3] = - prevline[x * 3]; - line[x * 3 + 1] = - prevline[x * 3 + 1]; - line[x * 3 + 2] = - prevline[x * 3 + 2]; - } - ) - } - break; - case 3: /* Colour */ - REPEAT - ( - line[x * 3] = colour2 [0]; - line[x * 3 + 1] = colour2 [1]; - line[x * 3 + 2] = colour2 [2]; - ) - break; - case 4: /* Copy */ - REPEAT - ( - line[x * 3] = CVAL(input); - line[x * 3 + 1] = CVAL(input); - line[x * 3 + 2] = CVAL(input); - ) - break; - case 8: /* Bicolour */ - REPEAT - ( - if (bicolour) - { - line[x * 3] = colour2[0]; - line[x * 3 + 1] = colour2[1]; - line[x * 3 + 2] = colour2[2]; - bicolour = False; - } - else - { - line[x * 3] = colour1[0]; - line[x * 3 + 1] = colour1[1]; - line[x * 3 + 2] = colour1[2]; - bicolour = True; - count++; - } - ) - break; - case 0xd: /* White */ - REPEAT - ( - line[x * 3] = 0xff; - line[x * 3 + 1] = 0xff; - line[x * 3 + 2] = 0xff; - ) - break; - case 0xe: /* Black */ - REPEAT - ( - line[x * 3] = 0; - line[x * 3 + 1] = 0; - line[x * 3 + 2] = 0; - ) - break; - default: - unimpl("bitmap opcode 0x%x\n", opcode); - return False; - } - } - } - return True; -} - -#else - -static uint32 -cvalx(uint8 **input, int Bpp) -{ - uint32 rv = 0; - memcpy(&rv, *input, Bpp); - *input += Bpp; - return rv; -} - -static void -setli(uint8 *input, int offset, uint32 value, int Bpp) -{ - input += offset * Bpp; - memcpy(input, &value, Bpp); -} - -static uint32 -getli(uint8 *input, int offset, int Bpp) -{ - uint32 rv = 0; - input += offset * Bpp; - memcpy(&rv, input, Bpp); - return rv; -} - -static BOOL -bitmap_decompressx(uint8 *output, int width, int height, uint8 *input, int size, int Bpp) -{ - uint8 *end = input + size; - uint8 *prevline = NULL; - int opcode, count, offset, isfillormix; - int lastopcode = -1, insertmix = False, bicolour = False; - uint8 code; - uint32 colour1 = 0, colour2 = 0; - uint8 mixmask, mask = 0; - uint32 mix = 0xffffffff; - int fom_mask = 0; -#if 0 - uint8 *line = NULL; - int x = width; -#else - uint8 *line = output; - int x = 0; - int y = 0; -#endif - - while (input < end) - { - fom_mask = 0; - code = CVAL(input); - opcode = code >> 4; - - /* Handle different opcode forms */ - switch (opcode) - { - case 0xc: - case 0xd: - case 0xe: - opcode -= 6; - count = code & 0xf; - offset = 16; - break; - - case 0xf: - opcode = code & 0xf; - if (opcode < 9) - { - count = CVAL(input); - count |= CVAL(input) << 8; - } - else - { - count = (opcode < 0xb) ? 8 : 1; - } - offset = 0; - break; - - default: - opcode >>= 1; - count = code & 0x1f; - offset = 32; - break; - } - - /* Handle strange cases for counts */ - if (offset != 0) - { - isfillormix = ((opcode == 2) || (opcode == 7)); - - if (count == 0) - { - if (isfillormix) - count = CVAL(input) + 1; - else - count = CVAL(input) + offset; - } - else if (isfillormix) - { - count <<= 3; - } - } - - /* Read preliminary data */ - switch (opcode) - { - case 0: /* Fill */ - if ((lastopcode == opcode) && !((x == width) && (prevline == NULL))) - insertmix = True; - break; - case 8: /* Bicolour */ - colour1 = cvalx(&input, Bpp); - case 3: /* Colour */ - colour2 = cvalx(&input, Bpp); - break; - case 6: /* SetMix/Mix */ - case 7: /* SetMix/FillOrMix */ - mix = cvalx(&input, Bpp); - opcode -= 5; - break; - case 9: /* FillOrMix_1 */ - mask = 0x03; - opcode = 0x02; - fom_mask = 3; - break; - case 0x0a: /* FillOrMix_2 */ - mask = 0x05; - opcode = 0x02; - fom_mask = 5; - break; - - } - - lastopcode = opcode; - mixmask = 0; - - /* Output body */ - while (count > 0) - { - if (x >= width) - { -#if 0 - if (height <= 0) -#else - if (y >= height) -#endif - return False; - - x = 0; - -#if 0 - height--; -#else - y ++; -#endif - - prevline = line; - -#if 0 - line = output + height * width * Bpp; -#else - line = output + y * width * Bpp; -#endif - } - - switch (opcode) - { - case 0: /* Fill */ - if (insertmix) - { - if (prevline == NULL) - setli(line, x, mix, Bpp); - else - setli(line, x, - getli(prevline, x, Bpp) ^ mix, Bpp); - - insertmix = False; - count--; - x++; - } - - if (prevline == NULL) - { - REPEAT(setli(line, x, 0, Bpp))} - else - { - REPEAT(setli - (line, x, getli(prevline, x, Bpp), Bpp)); - } - break; - - case 1: /* Mix */ - if (prevline == NULL) - { - REPEAT(setli(line, x, mix, Bpp)); - } - else - { - REPEAT(setli - (line, x, getli(prevline, x, Bpp) ^ mix, - Bpp)); - } - break; - - case 2: /* Fill or Mix */ - if (prevline == NULL) - { - REPEAT(MASK_UPDATE(); - if (mask & mixmask) setli(line, x, mix, Bpp); - else - setli(line, x, 0, Bpp);); - } - else - { - REPEAT(MASK_UPDATE(); - if (mask & mixmask) - setli(line, x, getli(prevline, x, Bpp) ^ mix, - Bpp); - else - setli(line, x, getli(prevline, x, Bpp), - Bpp);); - } - break; - - case 3: /* Colour */ - REPEAT(setli(line, x, colour2, Bpp)); - break; - - case 4: /* Copy */ - REPEAT(setli(line, x, cvalx(&input, Bpp), Bpp)); - break; - - case 8: /* Bicolour */ - REPEAT(if (bicolour) - { - setli(line, x, colour2, Bpp); bicolour = False;} - else - { - setli(line, x, colour1, Bpp); bicolour = True; - count++;} - ); - break; - - case 0xd: /* White */ - REPEAT(setli(line, x, 0xffffffff, Bpp)); - break; - - case 0xe: /* Black */ - REPEAT(setli(line, x, 0, Bpp)); - break; - - default: - unimpl("bitmap opcode 0x%x\n", opcode); - return False; - } - } - } - - return True; -} - -#endif - -/* main decompress function */ -BOOL -bitmap_decompress(uint8 * output, int width, int height, uint8 * input, int size, int Bpp) -{ -#ifdef BITMAP_SPEED_OVER_SIZE - BOOL rv = False; - switch (Bpp) - { - case 1: - rv = bitmap_decompress1(output, width, height, input, size); - break; - case 2: - rv = bitmap_decompress2(output, width, height, input, size); - break; - case 3: - rv = bitmap_decompress3(output, width, height, input, size); - break; - } -#else - BOOL rv; - rv = bitmap_decompressx(output, width, height, input, size, Bpp); -#endif - return rv; -} - -/* *INDENT-ON* */ +/* -*- c-basic-offset: 8 -*- + rdesktop: A Remote Desktop Protocol client. + Bitmap decompression routines + Copyright (C) Matthew Chapman 1999-2005 + + 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. + + This 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. + + You 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. +*/ + +/* three seperate function for speed when decompressing the bitmaps */ +/* when modifing one function make the change in the others */ +/* comment out #define BITMAP_SPEED_OVER_SIZE below for one slower function */ +/* j@american-data.com */ + +#define BITMAP_SPEED_OVER_SIZE + +/* indent is confused by this file */ +/* *INDENT-OFF* */ + +#include "rdesktop.h" + +#define CVAL(p) (*(p++)) +#ifdef NEED_ALIGN +#ifdef L_ENDIAN +#define CVAL2(p, v) { v = (*(p++)); v |= (*(p++)) << 8; } +#else +#define CVAL2(p, v) { v = (*(p++)) << 8; v |= (*(p++)); } +#endif /* L_ENDIAN */ +#else +#define CVAL2(p, v) { v = (*((uint16*)p)); p += 2; } +#endif /* NEED_ALIGN */ + +#define UNROLL8(exp) { exp exp exp exp exp exp exp exp } + +#define REPEAT(statement) \ +{ \ + while((count & ~0x7) && ((x+8) < width)) \ + UNROLL8( statement; count--; x++; ); \ + \ + while((count > 0) && (x < width)) \ + { \ + statement; \ + count--; \ + x++; \ + } \ +} + +#define MASK_UPDATE() \ +{ \ + mixmask <<= 1; \ + if (mixmask == 0) \ + { \ + mask = fom_mask ? fom_mask : CVAL(input); \ + mixmask = 1; \ + } \ +} + +#ifdef BITMAP_SPEED_OVER_SIZE + +/* 1 byte bitmap decompress */ +static BOOL +bitmap_decompress1(uint8 * output, int width, int height, uint8 * input, int size) +{ + uint8 *end = input + size; + uint8 *prevline = NULL; + int opcode, count, offset, isfillormix; + int lastopcode = -1, insertmix = False, bicolour = False; + uint8 code; + uint8 colour1 = 0, colour2 = 0; + uint8 mixmask, mask = 0; + uint8 mix = 0xff; + int fom_mask = 0; +#if 0 + uint8 *line = NULL; + int x = width; +#else + uint8 *line = output; + int x = 0; + int y = 0; +#endif + + while (input < end) + { + fom_mask = 0; + code = CVAL(input); + opcode = code >> 4; + /* Handle different opcode forms */ + switch (opcode) + { + case 0xc: + case 0xd: + case 0xe: + opcode -= 6; + count = code & 0xf; + offset = 16; + break; + case 0xf: + opcode = code & 0xf; + if (opcode < 9) + { + count = CVAL(input); + count |= CVAL(input) << 8; + } + else + { + count = (opcode < 0xb) ? 8 : 1; + } + offset = 0; + break; + default: + opcode >>= 1; + count = code & 0x1f; + offset = 32; + break; + } + /* Handle strange cases for counts */ + if (offset != 0) + { + isfillormix = ((opcode == 2) || (opcode == 7)); + if (count == 0) + { + if (isfillormix) + count = CVAL(input) + 1; + else + count = CVAL(input) + offset; + } + else if (isfillormix) + { + count <<= 3; + } + } + /* Read preliminary data */ + switch (opcode) + { + case 0: /* Fill */ + if ((lastopcode == opcode) && !((x == width) && (prevline == NULL))) + insertmix = True; + break; + case 8: /* Bicolour */ + colour1 = CVAL(input); + case 3: /* Colour */ + colour2 = CVAL(input); + break; + case 6: /* SetMix/Mix */ + case 7: /* SetMix/FillOrMix */ + mix = CVAL(input); + opcode -= 5; + break; + case 9: /* FillOrMix_1 */ + mask = 0x03; + opcode = 0x02; + fom_mask = 3; + break; + case 0x0a: /* FillOrMix_2 */ + mask = 0x05; + opcode = 0x02; + fom_mask = 5; + break; + } + lastopcode = opcode; + mixmask = 0; + /* Output body */ + while (count > 0) + { + if (x >= width) + { +#if 0 + if (height <= 0) +#else + if (y >= height) +#endif + return False; + x = 0; + +#if 0 + height--; +#else + y ++; +#endif + + prevline = line; + +#if 0 + line = output + height * width; +#else + line = output + y * width; +#endif + } + switch (opcode) + { + case 0: /* Fill */ + if (insertmix) + { + if (prevline == NULL) + line[x] = mix; + else + line[x] = prevline[x] ^ mix; + insertmix = False; + count--; + x++; + } + if (prevline == NULL) + { + REPEAT(line[x] = 0) + } + else + { + REPEAT(line[x] = prevline[x]) + } + break; + case 1: /* Mix */ + if (prevline == NULL) + { + REPEAT(line[x] = mix) + } + else + { + REPEAT(line[x] = prevline[x] ^ mix) + } + break; + case 2: /* Fill or Mix */ + if (prevline == NULL) + { + REPEAT + ( + MASK_UPDATE(); + if (mask & mixmask) + line[x] = mix; + else + line[x] = 0; + ) + } + else + { + REPEAT + ( + MASK_UPDATE(); + if (mask & mixmask) + line[x] = prevline[x] ^ mix; + else + line[x] = prevline[x]; + ) + } + break; + case 3: /* Colour */ + REPEAT(line[x] = colour2) + break; + case 4: /* Copy */ + REPEAT(line[x] = CVAL(input)) + break; + case 8: /* Bicolour */ + REPEAT + ( + if (bicolour) + { + line[x] = colour2; + bicolour = False; + } + else + { + line[x] = colour1; + bicolour = True; count++; + } + ) + break; + case 0xd: /* White */ + REPEAT(line[x] = 0xff) + break; + case 0xe: /* Black */ + REPEAT(line[x] = 0) + break; + default: + unimpl("bitmap opcode 0x%x\n", opcode); + return False; + } + } + } + return True; +} + +/* 2 byte bitmap decompress */ +static BOOL +bitmap_decompress2(uint8 * output, int width, int height, uint8 * input, int size) +{ + uint8 *end = input + size; + uint16 *prevline = NULL; + int opcode, count, offset, isfillormix; + int lastopcode = -1, insertmix = False, bicolour = False; + uint8 code; + uint16 colour1 = 0, colour2 = 0; + uint8 mixmask, mask = 0; + uint16 mix = 0xffff; + int fom_mask = 0; +#if 0 + uint8 *line = NULL; + int x = width; +#else + uint8 *line = output; + int x = 0; + int y = 0; +#endif + + while (input < end) + { + fom_mask = 0; + code = CVAL(input); + opcode = code >> 4; + /* Handle different opcode forms */ + switch (opcode) + { + case 0xc: + case 0xd: + case 0xe: + opcode -= 6; + count = code & 0xf; + offset = 16; + break; + case 0xf: + opcode = code & 0xf; + if (opcode < 9) + { + count = CVAL(input); + count |= CVAL(input) << 8; + } + else + { + count = (opcode < 0xb) ? 8 : 1; + } + offset = 0; + break; + default: + opcode >>= 1; + count = code & 0x1f; + offset = 32; + break; + } + /* Handle strange cases for counts */ + if (offset != 0) + { + isfillormix = ((opcode == 2) || (opcode == 7)); + if (count == 0) + { + if (isfillormix) + count = CVAL(input) + 1; + else + count = CVAL(input) + offset; + } + else if (isfillormix) + { + count <<= 3; + } + } + /* Read preliminary data */ + switch (opcode) + { + case 0: /* Fill */ + if ((lastopcode == opcode) && !((x == width) && (prevline == NULL))) + insertmix = True; + break; + case 8: /* Bicolour */ + CVAL2(input, colour1); + case 3: /* Colour */ + CVAL2(input, colour2); + break; + case 6: /* SetMix/Mix */ + case 7: /* SetMix/FillOrMix */ + CVAL2(input, mix); + opcode -= 5; + break; + case 9: /* FillOrMix_1 */ + mask = 0x03; + opcode = 0x02; + fom_mask = 3; + break; + case 0x0a: /* FillOrMix_2 */ + mask = 0x05; + opcode = 0x02; + fom_mask = 5; + break; + } + lastopcode = opcode; + mixmask = 0; + /* Output body */ + while (count > 0) + { + if (x >= width) + { +#if 0 + if (height <= 0) +#else + if (y >= height) +#endif + return False; + x = 0; + +#if 0 + height--; +#else + y ++; +#endif + + prevline = line; + +#if 0 + line = ((uint16 *) output) + height * width; +#else + line = ((uint16 *) output) + y * width; +#endif + } + switch (opcode) + { + case 0: /* Fill */ + if (insertmix) + { + if (prevline == NULL) + line[x] = mix; + else + line[x] = prevline[x] ^ mix; + insertmix = False; + count--; + x++; + } + if (prevline == NULL) + { + REPEAT(line[x] = 0) + } + else + { + REPEAT(line[x] = prevline[x]) + } + break; + case 1: /* Mix */ + if (prevline == NULL) + { + REPEAT(line[x] = mix) + } + else + { + REPEAT(line[x] = prevline[x] ^ mix) + } + break; + case 2: /* Fill or Mix */ + if (prevline == NULL) + { + REPEAT + ( + MASK_UPDATE(); + if (mask & mixmask) + line[x] = mix; + else + line[x] = 0; + ) + } + else + { + REPEAT + ( + MASK_UPDATE(); + if (mask & mixmask) + line[x] = prevline[x] ^ mix; + else + line[x] = prevline[x]; + ) + } + break; + case 3: /* Colour */ + REPEAT(line[x] = colour2) + break; + case 4: /* Copy */ + REPEAT(CVAL2(input, line[x])) + break; + case 8: /* Bicolour */ + REPEAT + ( + if (bicolour) + { + line[x] = colour2; + bicolour = False; + } + else + { + line[x] = colour1; + bicolour = True; + count++; + } + ) + break; + case 0xd: /* White */ + REPEAT(line[x] = 0xffff) + break; + case 0xe: /* Black */ + REPEAT(line[x] = 0) + break; + default: + unimpl("bitmap opcode 0x%x\n", opcode); + return False; + } + } + } + return True; +} + +/* 3 byte bitmap decompress */ +static BOOL +bitmap_decompress3(uint8 * output, int width, int height, uint8 * input, int size) +{ + uint8 *end = input + size; + uint8 *prevline = NULL; + int opcode, count, offset, isfillormix; + int lastopcode = -1, insertmix = False, bicolour = False; + uint8 code; + uint8 colour1[3] = {0, 0, 0}, colour2[3] = {0, 0, 0}; + uint8 mixmask, mask = 0; + uint8 mix[3] = {0xff, 0xff, 0xff}; + int fom_mask = 0; +#if 0 + uint8 *line = NULL; + int x = width; +#else + uint8 *line = output; + int x = 0; + int y = 0; +#endif + + while (input < end) + { + fom_mask = 0; + code = CVAL(input); + opcode = code >> 4; + /* Handle different opcode forms */ + switch (opcode) + { + case 0xc: + case 0xd: + case 0xe: + opcode -= 6; + count = code & 0xf; + offset = 16; + break; + case 0xf: + opcode = code & 0xf; + if (opcode < 9) + { + count = CVAL(input); + count |= CVAL(input) << 8; + } + else + { + count = (opcode < + 0xb) ? 8 : 1; + } + offset = 0; + break; + default: + opcode >>= 1; + count = code & 0x1f; + offset = 32; + break; + } + /* Handle strange cases for counts */ + if (offset != 0) + { + isfillormix = ((opcode == 2) || (opcode == 7)); + if (count == 0) + { + if (isfillormix) + count = CVAL(input) + 1; + else + count = CVAL(input) + offset; + } + else if (isfillormix) + { + count <<= 3; + } + } + /* Read preliminary data */ + switch (opcode) + { + case 0: /* Fill */ + if ((lastopcode == opcode) && !((x == width) && (prevline == NULL))) + insertmix = True; + break; + case 8: /* Bicolour */ + colour1[0] = CVAL(input); + colour1[1] = CVAL(input); + colour1[2] = CVAL(input); + case 3: /* Colour */ + colour2[0] = CVAL(input); + colour2[1] = CVAL(input); + colour2[2] = CVAL(input); + break; + case 6: /* SetMix/Mix */ + case 7: /* SetMix/FillOrMix */ + mix[0] = CVAL(input); + mix[1] = CVAL(input); + mix[2] = CVAL(input); + opcode -= 5; + break; + case 9: /* FillOrMix_1 */ + mask = 0x03; + opcode = 0x02; + fom_mask = 3; + break; + case 0x0a: /* FillOrMix_2 */ + mask = 0x05; + opcode = 0x02; + fom_mask = 5; + break; + } + lastopcode = opcode; + mixmask = 0; + /* Output body */ + while (count > 0) + { + if (x >= width) + { +#if 0 + if (height <= 0) +#else + if (y >= height) +#endif + return False; + x = 0; + +#if 0 + height--; +#else + y ++; +#endif + + prevline = line; + +#if 0 + line = output + height * (width * 3); +#else + line = output + y * (width * 3); +#endif + } + switch (opcode) + { + case 0: /* Fill */ + if (insertmix) + { + if (prevline == NULL) + { + line[x * 3] = mix[0]; + line[x * 3 + 1] = mix[1]; + line[x * 3 + 2] = mix[2]; + } + else + { + line[x * 3] = + prevline[x * 3] ^ mix[0]; + line[x * 3 + 1] = + prevline[x * 3 + 1] ^ mix[1]; + line[x * 3 + 2] = + prevline[x * 3 + 2] ^ mix[2]; + } + insertmix = False; + count--; + x++; + } + if (prevline == NULL) + { + REPEAT + ( + line[x * 3] = 0; + line[x * 3 + 1] = 0; + line[x * 3 + 2] = 0; + ) + } + else + { + REPEAT + ( + line[x * 3] = prevline[x * 3]; + line[x * 3 + 1] = prevline[x * 3 + 1]; + line[x * 3 + 2] = prevline[x * 3 + 2]; + ) + } + break; + case 1: /* Mix */ + if (prevline == NULL) + { + REPEAT + ( + line[x * 3] = mix[0]; + line[x * 3 + 1] = mix[1]; + line[x * 3 + 2] = mix[2]; + ) + } + else + { + REPEAT + ( + line[x * 3] = + prevline[x * 3] ^ mix[0]; + line[x * 3 + 1] = + prevline[x * 3 + 1] ^ mix[1]; + line[x * 3 + 2] = + prevline[x * 3 + 2] ^ mix[2]; + ) + } + break; + case 2: /* Fill or Mix */ + if (prevline == NULL) + { + REPEAT + ( + MASK_UPDATE(); + if (mask & mixmask) + { + line[x * 3] = mix[0]; + line[x * 3 + 1] = mix[1]; + line[x * 3 + 2] = mix[2]; + } + else + { + line[x * 3] = 0; + line[x * 3 + 1] = 0; + line[x * 3 + 2] = 0; + } + ) + } + else + { + REPEAT + ( + MASK_UPDATE(); + if (mask & mixmask) + { + line[x * 3] = + prevline[x * 3] ^ mix [0]; + line[x * 3 + 1] = + prevline[x * 3 + 1] ^ mix [1]; + line[x * 3 + 2] = + prevline[x * 3 + 2] ^ mix [2]; + } + else + { + line[x * 3] = + prevline[x * 3]; + line[x * 3 + 1] = + prevline[x * 3 + 1]; + line[x * 3 + 2] = + prevline[x * 3 + 2]; + } + ) + } + break; + case 3: /* Colour */ + REPEAT + ( + line[x * 3] = colour2 [0]; + line[x * 3 + 1] = colour2 [1]; + line[x * 3 + 2] = colour2 [2]; + ) + break; + case 4: /* Copy */ + REPEAT + ( + line[x * 3] = CVAL(input); + line[x * 3 + 1] = CVAL(input); + line[x * 3 + 2] = CVAL(input); + ) + break; + case 8: /* Bicolour */ + REPEAT + ( + if (bicolour) + { + line[x * 3] = colour2[0]; + line[x * 3 + 1] = colour2[1]; + line[x * 3 + 2] = colour2[2]; + bicolour = False; + } + else + { + line[x * 3] = colour1[0]; + line[x * 3 + 1] = colour1[1]; + line[x * 3 + 2] = colour1[2]; + bicolour = True; + count++; + } + ) + break; + case 0xd: /* White */ + REPEAT + ( + line[x * 3] = 0xff; + line[x * 3 + 1] = 0xff; + line[x * 3 + 2] = 0xff; + ) + break; + case 0xe: /* Black */ + REPEAT + ( + line[x * 3] = 0; + line[x * 3 + 1] = 0; + line[x * 3 + 2] = 0; + ) + break; + default: + unimpl("bitmap opcode 0x%x\n", opcode); + return False; + } + } + } + return True; +} + +#else + +static uint32 +cvalx(uint8 **input, int Bpp) +{ + uint32 rv = 0; + memcpy(&rv, *input, Bpp); + *input += Bpp; + return rv; +} + +static void +setli(uint8 *input, int offset, uint32 value, int Bpp) +{ + input += offset * Bpp; + memcpy(input, &value, Bpp); +} + +static uint32 +getli(uint8 *input, int offset, int Bpp) +{ + uint32 rv = 0; + input += offset * Bpp; + memcpy(&rv, input, Bpp); + return rv; +} + +static BOOL +bitmap_decompressx(uint8 *output, int width, int height, uint8 *input, int size, int Bpp) +{ + uint8 *end = input + size; + uint8 *prevline = NULL; + int opcode, count, offset, isfillormix; + int lastopcode = -1, insertmix = False, bicolour = False; + uint8 code; + uint32 colour1 = 0, colour2 = 0; + uint8 mixmask, mask = 0; + uint32 mix = 0xffffffff; + int fom_mask = 0; +#if 0 + uint8 *line = NULL; + int x = width; +#else + uint8 *line = output; + int x = 0; + int y = 0; +#endif + + while (input < end) + { + fom_mask = 0; + code = CVAL(input); + opcode = code >> 4; + + /* Handle different opcode forms */ + switch (opcode) + { + case 0xc: + case 0xd: + case 0xe: + opcode -= 6; + count = code & 0xf; + offset = 16; + break; + + case 0xf: + opcode = code & 0xf; + if (opcode < 9) + { + count = CVAL(input); + count |= CVAL(input) << 8; + } + else + { + count = (opcode < 0xb) ? 8 : 1; + } + offset = 0; + break; + + default: + opcode >>= 1; + count = code & 0x1f; + offset = 32; + break; + } + + /* Handle strange cases for counts */ + if (offset != 0) + { + isfillormix = ((opcode == 2) || (opcode == 7)); + + if (count == 0) + { + if (isfillormix) + count = CVAL(input) + 1; + else + count = CVAL(input) + offset; + } + else if (isfillormix) + { + count <<= 3; + } + } + + /* Read preliminary data */ + switch (opcode) + { + case 0: /* Fill */ + if ((lastopcode == opcode) && !((x == width) && (prevline == NULL))) + insertmix = True; + break; + case 8: /* Bicolour */ + colour1 = cvalx(&input, Bpp); + case 3: /* Colour */ + colour2 = cvalx(&input, Bpp); + break; + case 6: /* SetMix/Mix */ + case 7: /* SetMix/FillOrMix */ + mix = cvalx(&input, Bpp); + opcode -= 5; + break; + case 9: /* FillOrMix_1 */ + mask = 0x03; + opcode = 0x02; + fom_mask = 3; + break; + case 0x0a: /* FillOrMix_2 */ + mask = 0x05; + opcode = 0x02; + fom_mask = 5; + break; + + } + + lastopcode = opcode; + mixmask = 0; + + /* Output body */ + while (count > 0) + { + if (x >= width) + { +#if 0 + if (height <= 0) +#else + if (y >= height) +#endif + return False; + + x = 0; + +#if 0 + height--; +#else + y ++; +#endif + + prevline = line; + +#if 0 + line = output + height * width * Bpp; +#else + line = output + y * width * Bpp; +#endif + } + + switch (opcode) + { + case 0: /* Fill */ + if (insertmix) + { + if (prevline == NULL) + setli(line, x, mix, Bpp); + else + setli(line, x, + getli(prevline, x, Bpp) ^ mix, Bpp); + + insertmix = False; + count--; + x++; + } + + if (prevline == NULL) + { + REPEAT(setli(line, x, 0, Bpp))} + else + { + REPEAT(setli + (line, x, getli(prevline, x, Bpp), Bpp)); + } + break; + + case 1: /* Mix */ + if (prevline == NULL) + { + REPEAT(setli(line, x, mix, Bpp)); + } + else + { + REPEAT(setli + (line, x, getli(prevline, x, Bpp) ^ mix, + Bpp)); + } + break; + + case 2: /* Fill or Mix */ + if (prevline == NULL) + { + REPEAT(MASK_UPDATE(); + if (mask & mixmask) setli(line, x, mix, Bpp); + else + setli(line, x, 0, Bpp);); + } + else + { + REPEAT(MASK_UPDATE(); + if (mask & mixmask) + setli(line, x, getli(prevline, x, Bpp) ^ mix, + Bpp); + else + setli(line, x, getli(prevline, x, Bpp), + Bpp);); + } + break; + + case 3: /* Colour */ + REPEAT(setli(line, x, colour2, Bpp)); + break; + + case 4: /* Copy */ + REPEAT(setli(line, x, cvalx(&input, Bpp), Bpp)); + break; + + case 8: /* Bicolour */ + REPEAT(if (bicolour) + { + setli(line, x, colour2, Bpp); bicolour = False;} + else + { + setli(line, x, colour1, Bpp); bicolour = True; + count++;} + ); + break; + + case 0xd: /* White */ + REPEAT(setli(line, x, 0xffffffff, Bpp)); + break; + + case 0xe: /* Black */ + REPEAT(setli(line, x, 0, Bpp)); + break; + + default: + unimpl("bitmap opcode 0x%x\n", opcode); + return False; + } + } + } + + return True; +} + +#endif + +/* main decompress function */ +BOOL +bitmap_decompress(uint8 * output, int width, int height, uint8 * input, int size, int Bpp) +{ +#ifdef BITMAP_SPEED_OVER_SIZE + BOOL rv = False; + switch (Bpp) + { + case 1: + rv = bitmap_decompress1(output, width, height, input, size); + break; + case 2: + rv = bitmap_decompress2(output, width, height, input, size); + break; + case 3: + rv = bitmap_decompress3(output, width, height, input, size); + break; + } +#else + BOOL rv; + rv = bitmap_decompressx(output, width, height, input, size, Bpp); +#endif + return rv; +} + +/* *INDENT-ON* */ diff --git a/reactos/base/applications/tsclient/rdesktop/bootstrap b/reactos/base/applications/tsclient/rdesktop/bootstrap index c640c1de4e2..73979144b4b 100644 --- a/reactos/base/applications/tsclient/rdesktop/bootstrap +++ b/reactos/base/applications/tsclient/rdesktop/bootstrap @@ -1,3 +1,3 @@ -#!/bin/sh -rm -rf autom4te.cache -autoreconf -i +#!/bin/sh +rm -rf autom4te.cache +autoreconf -i diff --git a/reactos/base/applications/tsclient/rdesktop/cache.c b/reactos/base/applications/tsclient/rdesktop/cache.c index 1240be83117..4d476fb44e8 100644 --- a/reactos/base/applications/tsclient/rdesktop/cache.c +++ b/reactos/base/applications/tsclient/rdesktop/cache.c @@ -1,414 +1,414 @@ -/* -*- c-basic-offset: 8 -*- - rdesktop: A Remote Desktop Protocol client. - Cache routines - Copyright (C) Matthew Chapman 1999-2005 - Copyright (C) Jeroen Meijer 2005 - - 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. - - This 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. - - You 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. -*/ - -#include "rdesktop.h" - -#undef IS_SET // !!!FIXME!!! - -/* BITMAP CACHE */ -#define NUM_ELEMENTS(array) (sizeof(array) / sizeof(array[0])) -#define IS_PERSISTENT(id) (This->pstcache_fd[id] > 0) -#define TO_TOP -1 -#define NOT_SET -1 -#define IS_SET(idx) (idx >= 0) - -/* - * TODO: Test for optimal value of BUMP_COUNT. TO_TOP gives lowest cpu utilisation but using - * a positive value will hopefully result in less frequently used bitmaps having a greater chance - * of being evicted from the cache, and therby reducing the need to load bitmaps from disk. - * (Jeroen) - */ -#define BUMP_COUNT 40 - -/* Setup the bitmap cache lru/mru linked list */ -void -cache_rebuild_bmpcache_linked_list(RDPCLIENT * This, uint8 id, sint16 * idx, int count) -{ - int n = count, c = 0; - sint16 n_idx; - - /* find top, skip evicted bitmaps */ - while (--n >= 0 && This->cache.bmpcache[id][idx[n]].bitmap == NULL); - if (n < 0) - { - This->cache.bmpcache_mru[id] = This->cache.bmpcache_lru[id] = NOT_SET; - return; - } - - This->cache.bmpcache_mru[id] = idx[n]; - This->cache.bmpcache[id][idx[n]].next = NOT_SET; - n_idx = idx[n]; - c++; - - /* link list */ - while (n >= 0) - { - /* skip evicted bitmaps */ - while (--n >= 0 && This->cache.bmpcache[id][idx[n]].bitmap == NULL); - - if (n < 0) - break; - - This->cache.bmpcache[id][n_idx].previous = idx[n]; - This->cache.bmpcache[id][idx[n]].next = n_idx; - n_idx = idx[n]; - c++; - } - - This->cache.bmpcache[id][n_idx].previous = NOT_SET; - This->cache.bmpcache_lru[id] = n_idx; - - if (c != This->cache.bmpcache_count[id]) - { - error("Oops. %d in bitmap cache linked list, %d in ui cache...\n", c, - This->cache.bmpcache_count[id]); - exit(1); - } -} - -/* Move a bitmap to a new position in the linked list. */ -void -cache_bump_bitmap(RDPCLIENT * This, uint8 id, uint16 idx, int bump) -{ - int p_idx, n_idx, n; - - if (!IS_PERSISTENT(id)) - return; - - if (This->cache.bmpcache_mru[id] == idx) - return; - - DEBUG_RDP5(("bump bitmap: id=%d, idx=%d, bump=%d\n", id, idx, bump)); - - n_idx = This->cache.bmpcache[id][idx].next; - p_idx = This->cache.bmpcache[id][idx].previous; - - if (IS_SET(n_idx)) - { - /* remove */ - --This->cache.bmpcache_count[id]; - if (IS_SET(p_idx)) - This->cache.bmpcache[id][p_idx].next = n_idx; - else - This->cache.bmpcache_lru[id] = n_idx; - if (IS_SET(n_idx)) - This->cache.bmpcache[id][n_idx].previous = p_idx; - else - This->cache.bmpcache_mru[id] = p_idx; - } - else - { - p_idx = NOT_SET; - n_idx = This->cache.bmpcache_lru[id]; - } - - if (bump >= 0) - { - for (n = 0; n < bump && IS_SET(n_idx); n++) - { - p_idx = n_idx; - n_idx = This->cache.bmpcache[id][p_idx].next; - } - } - else - { - p_idx = This->cache.bmpcache_mru[id]; - n_idx = NOT_SET; - } - - /* insert */ - ++This->cache.bmpcache_count[id]; - This->cache.bmpcache[id][idx].previous = p_idx; - This->cache.bmpcache[id][idx].next = n_idx; - - if (p_idx >= 0) - This->cache.bmpcache[id][p_idx].next = idx; - else - This->cache.bmpcache_lru[id] = idx; - - if (n_idx >= 0) - This->cache.bmpcache[id][n_idx].previous = idx; - else - This->cache.bmpcache_mru[id] = idx; -} - -/* Evict the least-recently used bitmap from the cache */ -void -cache_evict_bitmap(RDPCLIENT * This, uint8 id) -{ - uint16 idx; - int n_idx; - - if (!IS_PERSISTENT(id)) - return; - - idx = This->cache.bmpcache_lru[id]; - n_idx = This->cache.bmpcache[id][idx].next; - DEBUG_RDP5(("evict bitmap: id=%d idx=%d n_idx=%d bmp=0x%x\n", id, idx, n_idx, - This->cache.bmpcache[id][idx].bitmap)); - - ui_destroy_bitmap(This, This->cache.bmpcache[id][idx].bitmap); - --This->cache.bmpcache_count[id]; - This->cache.bmpcache[id][idx].bitmap = 0; - - This->cache.bmpcache_lru[id] = n_idx; - This->cache.bmpcache[id][n_idx].previous = NOT_SET; - - pstcache_touch_bitmap(This, id, idx, 0); -} - -/* Retrieve a bitmap from the cache */ -HBITMAP -cache_get_bitmap(RDPCLIENT * This, uint8 id, uint16 idx) -{ - if ((id < NUM_ELEMENTS(This->cache.bmpcache)) && (idx < NUM_ELEMENTS(This->cache.bmpcache[0]))) - { - if (This->cache.bmpcache[id][idx].bitmap || pstcache_load_bitmap(This, id, idx)) - { - if (IS_PERSISTENT(id)) - cache_bump_bitmap(This, id, idx, BUMP_COUNT); - - return This->cache.bmpcache[id][idx].bitmap; - } - } - else if ((id < NUM_ELEMENTS(This->cache.volatile_bc)) && (idx == 0x7fff)) - { - return This->cache.volatile_bc[id]; - } - - error("get bitmap %d:%d\n", id, idx); - return NULL; -} - -/* Store a bitmap in the cache */ -void -cache_put_bitmap(RDPCLIENT * This, uint8 id, uint16 idx, HBITMAP bitmap) -{ - HBITMAP old; - - if ((id < NUM_ELEMENTS(This->cache.bmpcache)) && (idx < NUM_ELEMENTS(This->cache.bmpcache[0]))) - { - old = This->cache.bmpcache[id][idx].bitmap; - if (old != NULL) - ui_destroy_bitmap(This, old); - This->cache.bmpcache[id][idx].bitmap = bitmap; - - if (IS_PERSISTENT(id)) - { - if (old == NULL) - This->cache.bmpcache[id][idx].previous = This->cache.bmpcache[id][idx].next = NOT_SET; - - cache_bump_bitmap(This, id, idx, TO_TOP); - if (This->cache.bmpcache_count[id] > BMPCACHE2_C2_CELLS) - cache_evict_bitmap(This, id); - } - } - else if ((id < NUM_ELEMENTS(This->cache.volatile_bc)) && (idx == 0x7fff)) - { - old = This->cache.volatile_bc[id]; - if (old != NULL) - ui_destroy_bitmap(This, old); - This->cache.volatile_bc[id] = bitmap; - } - else - { - error("put bitmap %d:%d\n", id, idx); - } -} - -/* Updates the persistent bitmap cache MRU information on exit */ -void -cache_save_state(RDPCLIENT * This) -{ - uint32 id = 0, t = 0; - int idx; - - for (id = 0; id < NUM_ELEMENTS(This->cache.bmpcache); id++) - if (IS_PERSISTENT(id)) - { - DEBUG_RDP5(("Saving cache state for bitmap cache %d...", id)); - idx = This->cache.bmpcache_lru[id]; - while (idx >= 0) - { - pstcache_touch_bitmap(This, id, idx, ++t); - idx = This->cache.bmpcache[id][idx].next; - } - DEBUG_RDP5((" %d stamps written.\n", t)); - } -} - - -/* FONT CACHE */ -/* Retrieve a glyph from the font cache */ -FONTGLYPH * -cache_get_font(RDPCLIENT * This, uint8 font, uint16 character) -{ - FONTGLYPH *glyph; - - if ((font < NUM_ELEMENTS(This->cache.fontcache)) && (character < NUM_ELEMENTS(This->cache.fontcache[0]))) - { - glyph = &This->cache.fontcache[font][character]; - if (glyph->pixmap != NULL) - return glyph; - } - - error("get font %d:%d\n", font, character); - return NULL; -} - -/* Store a glyph in the font cache */ -void -cache_put_font(RDPCLIENT * This, uint8 font, uint16 character, uint16 offset, - uint16 baseline, uint16 width, uint16 height, HGLYPH pixmap) -{ - FONTGLYPH *glyph; - - if ((font < NUM_ELEMENTS(This->cache.fontcache)) && (character < NUM_ELEMENTS(This->cache.fontcache[0]))) - { - glyph = &This->cache.fontcache[font][character]; - if (glyph->pixmap != NULL) - ui_destroy_glyph(This, glyph->pixmap); - - glyph->offset = offset; - glyph->baseline = baseline; - glyph->width = width; - glyph->height = height; - glyph->pixmap = pixmap; - } - else - { - error("put font %d:%d\n", font, character); - } -} - - -/* TEXT CACHE */ -/* Retrieve a text item from the cache */ -DATABLOB * -cache_get_text(RDPCLIENT * This, uint8 cache_id) -{ - DATABLOB *text; - - text = &This->cache.textcache[cache_id]; - return text; -} - -/* Store a text item in the cache */ -void -cache_put_text(RDPCLIENT * This, uint8 cache_id, void *data, int length) -{ - DATABLOB *text; - void * p = malloc(length); - - if(p == NULL) - return; - - text = &This->cache.textcache[cache_id]; - if (text->data != NULL) - free(text->data); - text->data = p; - text->size = length; - memcpy(text->data, data, length); -} - - -/* DESKTOP CACHE */ -/* Retrieve desktop data from the cache */ -uint8 * -cache_get_desktop(RDPCLIENT * This, uint32 offset, int cx, int cy, int bytes_per_pixel) -{ - int length = cx * cy * bytes_per_pixel; - - if (offset > sizeof(This->cache.deskcache)) - offset = 0; - - if ((offset + length) <= sizeof(This->cache.deskcache)) - { - return &This->cache.deskcache[offset]; - } - - error("get desktop %d:%d\n", offset, length); - return NULL; -} - -/* Store desktop data in the cache */ -void -cache_put_desktop(RDPCLIENT * This, uint32 offset, int cx, int cy, int scanline, int bytes_per_pixel, uint8 * data) -{ - int length = cx * cy * bytes_per_pixel; - - if (offset > sizeof(This->cache.deskcache)) - offset = 0; - - if ((offset + length) <= sizeof(This->cache.deskcache)) - { - cx *= bytes_per_pixel; - while (cy--) - { - memcpy(&This->cache.deskcache[offset], data, cx); - data += scanline; - offset += cx; - } - } - else - { - error("put desktop %d:%d\n", offset, length); - } -} - - -/* CURSOR CACHE */ -/* Retrieve cursor from cache */ -HCURSOR -cache_get_cursor(RDPCLIENT * This, uint16 cache_idx) -{ - HCURSOR cursor; - - if (cache_idx < NUM_ELEMENTS(This->cache.cursorcache)) - { - cursor = This->cache.cursorcache[cache_idx]; - if (cursor != NULL) - return cursor; - } - - error("get cursor %d\n", cache_idx); - return NULL; -} - -/* Store cursor in cache */ -void -cache_put_cursor(RDPCLIENT * This, uint16 cache_idx, HCURSOR cursor) -{ - HCURSOR old; - - if (cache_idx < NUM_ELEMENTS(This->cache.cursorcache)) - { - old = This->cache.cursorcache[cache_idx]; - if (old != NULL) - ui_destroy_cursor(This, old); - - This->cache.cursorcache[cache_idx] = cursor; - } - else - { - error("put cursor %d\n", cache_idx); - } -} +/* -*- c-basic-offset: 8 -*- + rdesktop: A Remote Desktop Protocol client. + Cache routines + Copyright (C) Matthew Chapman 1999-2005 + Copyright (C) Jeroen Meijer 2005 + + 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. + + This 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. + + You 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. +*/ + +#include "rdesktop.h" + +#undef IS_SET // !!!FIXME!!! + +/* BITMAP CACHE */ +#define NUM_ELEMENTS(array) (sizeof(array) / sizeof(array[0])) +#define IS_PERSISTENT(id) (This->pstcache_fd[id] > 0) +#define TO_TOP -1 +#define NOT_SET -1 +#define IS_SET(idx) (idx >= 0) + +/* + * TODO: Test for optimal value of BUMP_COUNT. TO_TOP gives lowest cpu utilisation but using + * a positive value will hopefully result in less frequently used bitmaps having a greater chance + * of being evicted from the cache, and therby reducing the need to load bitmaps from disk. + * (Jeroen) + */ +#define BUMP_COUNT 40 + +/* Setup the bitmap cache lru/mru linked list */ +void +cache_rebuild_bmpcache_linked_list(RDPCLIENT * This, uint8 id, sint16 * idx, int count) +{ + int n = count, c = 0; + sint16 n_idx; + + /* find top, skip evicted bitmaps */ + while (--n >= 0 && This->cache.bmpcache[id][idx[n]].bitmap == NULL); + if (n < 0) + { + This->cache.bmpcache_mru[id] = This->cache.bmpcache_lru[id] = NOT_SET; + return; + } + + This->cache.bmpcache_mru[id] = idx[n]; + This->cache.bmpcache[id][idx[n]].next = NOT_SET; + n_idx = idx[n]; + c++; + + /* link list */ + while (n >= 0) + { + /* skip evicted bitmaps */ + while (--n >= 0 && This->cache.bmpcache[id][idx[n]].bitmap == NULL); + + if (n < 0) + break; + + This->cache.bmpcache[id][n_idx].previous = idx[n]; + This->cache.bmpcache[id][idx[n]].next = n_idx; + n_idx = idx[n]; + c++; + } + + This->cache.bmpcache[id][n_idx].previous = NOT_SET; + This->cache.bmpcache_lru[id] = n_idx; + + if (c != This->cache.bmpcache_count[id]) + { + error("Oops. %d in bitmap cache linked list, %d in ui cache...\n", c, + This->cache.bmpcache_count[id]); + exit(1); + } +} + +/* Move a bitmap to a new position in the linked list. */ +void +cache_bump_bitmap(RDPCLIENT * This, uint8 id, uint16 idx, int bump) +{ + int p_idx, n_idx, n; + + if (!IS_PERSISTENT(id)) + return; + + if (This->cache.bmpcache_mru[id] == idx) + return; + + DEBUG_RDP5(("bump bitmap: id=%d, idx=%d, bump=%d\n", id, idx, bump)); + + n_idx = This->cache.bmpcache[id][idx].next; + p_idx = This->cache.bmpcache[id][idx].previous; + + if (IS_SET(n_idx)) + { + /* remove */ + --This->cache.bmpcache_count[id]; + if (IS_SET(p_idx)) + This->cache.bmpcache[id][p_idx].next = n_idx; + else + This->cache.bmpcache_lru[id] = n_idx; + if (IS_SET(n_idx)) + This->cache.bmpcache[id][n_idx].previous = p_idx; + else + This->cache.bmpcache_mru[id] = p_idx; + } + else + { + p_idx = NOT_SET; + n_idx = This->cache.bmpcache_lru[id]; + } + + if (bump >= 0) + { + for (n = 0; n < bump && IS_SET(n_idx); n++) + { + p_idx = n_idx; + n_idx = This->cache.bmpcache[id][p_idx].next; + } + } + else + { + p_idx = This->cache.bmpcache_mru[id]; + n_idx = NOT_SET; + } + + /* insert */ + ++This->cache.bmpcache_count[id]; + This->cache.bmpcache[id][idx].previous = p_idx; + This->cache.bmpcache[id][idx].next = n_idx; + + if (p_idx >= 0) + This->cache.bmpcache[id][p_idx].next = idx; + else + This->cache.bmpcache_lru[id] = idx; + + if (n_idx >= 0) + This->cache.bmpcache[id][n_idx].previous = idx; + else + This->cache.bmpcache_mru[id] = idx; +} + +/* Evict the least-recently used bitmap from the cache */ +void +cache_evict_bitmap(RDPCLIENT * This, uint8 id) +{ + uint16 idx; + int n_idx; + + if (!IS_PERSISTENT(id)) + return; + + idx = This->cache.bmpcache_lru[id]; + n_idx = This->cache.bmpcache[id][idx].next; + DEBUG_RDP5(("evict bitmap: id=%d idx=%d n_idx=%d bmp=0x%x\n", id, idx, n_idx, + This->cache.bmpcache[id][idx].bitmap)); + + ui_destroy_bitmap(This, This->cache.bmpcache[id][idx].bitmap); + --This->cache.bmpcache_count[id]; + This->cache.bmpcache[id][idx].bitmap = 0; + + This->cache.bmpcache_lru[id] = n_idx; + This->cache.bmpcache[id][n_idx].previous = NOT_SET; + + pstcache_touch_bitmap(This, id, idx, 0); +} + +/* Retrieve a bitmap from the cache */ +HBITMAP +cache_get_bitmap(RDPCLIENT * This, uint8 id, uint16 idx) +{ + if ((id < NUM_ELEMENTS(This->cache.bmpcache)) && (idx < NUM_ELEMENTS(This->cache.bmpcache[0]))) + { + if (This->cache.bmpcache[id][idx].bitmap || pstcache_load_bitmap(This, id, idx)) + { + if (IS_PERSISTENT(id)) + cache_bump_bitmap(This, id, idx, BUMP_COUNT); + + return This->cache.bmpcache[id][idx].bitmap; + } + } + else if ((id < NUM_ELEMENTS(This->cache.volatile_bc)) && (idx == 0x7fff)) + { + return This->cache.volatile_bc[id]; + } + + error("get bitmap %d:%d\n", id, idx); + return NULL; +} + +/* Store a bitmap in the cache */ +void +cache_put_bitmap(RDPCLIENT * This, uint8 id, uint16 idx, HBITMAP bitmap) +{ + HBITMAP old; + + if ((id < NUM_ELEMENTS(This->cache.bmpcache)) && (idx < NUM_ELEMENTS(This->cache.bmpcache[0]))) + { + old = This->cache.bmpcache[id][idx].bitmap; + if (old != NULL) + ui_destroy_bitmap(This, old); + This->cache.bmpcache[id][idx].bitmap = bitmap; + + if (IS_PERSISTENT(id)) + { + if (old == NULL) + This->cache.bmpcache[id][idx].previous = This->cache.bmpcache[id][idx].next = NOT_SET; + + cache_bump_bitmap(This, id, idx, TO_TOP); + if (This->cache.bmpcache_count[id] > BMPCACHE2_C2_CELLS) + cache_evict_bitmap(This, id); + } + } + else if ((id < NUM_ELEMENTS(This->cache.volatile_bc)) && (idx == 0x7fff)) + { + old = This->cache.volatile_bc[id]; + if (old != NULL) + ui_destroy_bitmap(This, old); + This->cache.volatile_bc[id] = bitmap; + } + else + { + error("put bitmap %d:%d\n", id, idx); + } +} + +/* Updates the persistent bitmap cache MRU information on exit */ +void +cache_save_state(RDPCLIENT * This) +{ + uint32 id = 0, t = 0; + int idx; + + for (id = 0; id < NUM_ELEMENTS(This->cache.bmpcache); id++) + if (IS_PERSISTENT(id)) + { + DEBUG_RDP5(("Saving cache state for bitmap cache %d...", id)); + idx = This->cache.bmpcache_lru[id]; + while (idx >= 0) + { + pstcache_touch_bitmap(This, id, idx, ++t); + idx = This->cache.bmpcache[id][idx].next; + } + DEBUG_RDP5((" %d stamps written.\n", t)); + } +} + + +/* FONT CACHE */ +/* Retrieve a glyph from the font cache */ +FONTGLYPH * +cache_get_font(RDPCLIENT * This, uint8 font, uint16 character) +{ + FONTGLYPH *glyph; + + if ((font < NUM_ELEMENTS(This->cache.fontcache)) && (character < NUM_ELEMENTS(This->cache.fontcache[0]))) + { + glyph = &This->cache.fontcache[font][character]; + if (glyph->pixmap != NULL) + return glyph; + } + + error("get font %d:%d\n", font, character); + return NULL; +} + +/* Store a glyph in the font cache */ +void +cache_put_font(RDPCLIENT * This, uint8 font, uint16 character, uint16 offset, + uint16 baseline, uint16 width, uint16 height, HGLYPH pixmap) +{ + FONTGLYPH *glyph; + + if ((font < NUM_ELEMENTS(This->cache.fontcache)) && (character < NUM_ELEMENTS(This->cache.fontcache[0]))) + { + glyph = &This->cache.fontcache[font][character]; + if (glyph->pixmap != NULL) + ui_destroy_glyph(This, glyph->pixmap); + + glyph->offset = offset; + glyph->baseline = baseline; + glyph->width = width; + glyph->height = height; + glyph->pixmap = pixmap; + } + else + { + error("put font %d:%d\n", font, character); + } +} + + +/* TEXT CACHE */ +/* Retrieve a text item from the cache */ +DATABLOB * +cache_get_text(RDPCLIENT * This, uint8 cache_id) +{ + DATABLOB *text; + + text = &This->cache.textcache[cache_id]; + return text; +} + +/* Store a text item in the cache */ +void +cache_put_text(RDPCLIENT * This, uint8 cache_id, void *data, int length) +{ + DATABLOB *text; + void * p = malloc(length); + + if(p == NULL) + return; + + text = &This->cache.textcache[cache_id]; + if (text->data != NULL) + free(text->data); + text->data = p; + text->size = length; + memcpy(text->data, data, length); +} + + +/* DESKTOP CACHE */ +/* Retrieve desktop data from the cache */ +uint8 * +cache_get_desktop(RDPCLIENT * This, uint32 offset, int cx, int cy, int bytes_per_pixel) +{ + int length = cx * cy * bytes_per_pixel; + + if (offset > sizeof(This->cache.deskcache)) + offset = 0; + + if ((offset + length) <= sizeof(This->cache.deskcache)) + { + return &This->cache.deskcache[offset]; + } + + error("get desktop %d:%d\n", offset, length); + return NULL; +} + +/* Store desktop data in the cache */ +void +cache_put_desktop(RDPCLIENT * This, uint32 offset, int cx, int cy, int scanline, int bytes_per_pixel, uint8 * data) +{ + int length = cx * cy * bytes_per_pixel; + + if (offset > sizeof(This->cache.deskcache)) + offset = 0; + + if ((offset + length) <= sizeof(This->cache.deskcache)) + { + cx *= bytes_per_pixel; + while (cy--) + { + memcpy(&This->cache.deskcache[offset], data, cx); + data += scanline; + offset += cx; + } + } + else + { + error("put desktop %d:%d\n", offset, length); + } +} + + +/* CURSOR CACHE */ +/* Retrieve cursor from cache */ +HCURSOR +cache_get_cursor(RDPCLIENT * This, uint16 cache_idx) +{ + HCURSOR cursor; + + if (cache_idx < NUM_ELEMENTS(This->cache.cursorcache)) + { + cursor = This->cache.cursorcache[cache_idx]; + if (cursor != NULL) + return cursor; + } + + error("get cursor %d\n", cache_idx); + return NULL; +} + +/* Store cursor in cache */ +void +cache_put_cursor(RDPCLIENT * This, uint16 cache_idx, HCURSOR cursor) +{ + HCURSOR old; + + if (cache_idx < NUM_ELEMENTS(This->cache.cursorcache)) + { + old = This->cache.cursorcache[cache_idx]; + if (old != NULL) + ui_destroy_cursor(This, old); + + This->cache.cursorcache[cache_idx] = cursor; + } + else + { + error("put cursor %d\n", cache_idx); + } +} diff --git a/reactos/base/applications/tsclient/rdesktop/channels.c b/reactos/base/applications/tsclient/rdesktop/channels.c index 44bdd91a8eb..e8f999109d7 100644 --- a/reactos/base/applications/tsclient/rdesktop/channels.c +++ b/reactos/base/applications/tsclient/rdesktop/channels.c @@ -1,177 +1,177 @@ -/* -*- c-basic-offset: 8 -*- - rdesktop: A Remote Desktop Protocol client. - Protocol services - Virtual channels - Copyright (C) Erik Forsberg 2003 - Copyright (C) Matthew Chapman 2003-2005 - - 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. - - This 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. - - You 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. -*/ - -#include "rdesktop.h" - -// FIXME: header mess -#if 0 -#define CHANNEL_CHUNK_LENGTH 1600 -#define CHANNEL_FLAG_FIRST 0x01 -#define CHANNEL_FLAG_LAST 0x02 -#define CHANNEL_FLAG_SHOW_PROTOCOL 0x10 -#endif - -/* FIXME: We should use the information in TAG_SRV_CHANNELS to map RDP5 - channels to MCS channels. - - The format of TAG_SRV_CHANNELS seems to be - - global_channel_no (uint16le) - number_of_other_channels (uint16le) - ..followed by uint16les for the other channels. -*/ - -VCHANNEL * -channel_register(RDPCLIENT * This, char *name, uint32 flags, void (*callback) (RDPCLIENT *, STREAM)) -{ - VCHANNEL *channel; - - if (!This->use_rdp5) - return NULL; - - if (This->num_channels >= MAX_CHANNELS) - { - error("Channel table full, increase MAX_CHANNELS\n"); - return NULL; - } - - channel = &This->channels[This->num_channels]; - channel->mcs_id = MCS_GLOBAL_CHANNEL + 1 + This->num_channels; - strncpy(channel->name, name, 8); - channel->flags = flags; - channel->process = callback; - This->num_channels++; - return channel; -} - -STREAM -channel_init(RDPCLIENT * This, VCHANNEL * channel, uint32 length) -{ - STREAM s; - - s = sec_init(This, This->encryption ? SEC_ENCRYPT : 0, length + 8); - s_push_layer(s, channel_hdr, 8); - return s; -} - -void -channel_send(RDPCLIENT * This, STREAM s, VCHANNEL * channel) -{ - uint32 length, flags; - uint32 thislength, remaining; - uint8 *data; - - /* first fragment sent in-place */ - s_pop_layer(s, channel_hdr); - length = s->end - s->p - sizeof(CHANNEL_PDU_HEADER); - - DEBUG_CHANNEL(("channel_send, length = %d\n", length)); - - thislength = MIN(length, CHANNEL_CHUNK_LENGTH); -/* Note: In the original clipboard implementation, this number was - 1592, not 1600. However, I don't remember the reason and 1600 seems - to work so.. This applies only to *this* length, not the length of - continuation or ending packets. */ - remaining = length - thislength; - flags = (remaining == 0) ? CHANNEL_FLAG_FIRST | CHANNEL_FLAG_LAST : CHANNEL_FLAG_FIRST; - if (channel->flags & CHANNEL_OPTION_SHOW_PROTOCOL) - flags |= CHANNEL_FLAG_SHOW_PROTOCOL; - - out_uint32_le(s, length); - out_uint32_le(s, flags); - data = s->end = s->p + thislength; - DEBUG_CHANNEL(("Sending %d bytes with FLAG_FIRST\n", thislength)); - sec_send_to_channel(This, s, This->encryption ? SEC_ENCRYPT : 0, channel->mcs_id); - - /* subsequent segments copied (otherwise would have to generate headers backwards) */ - while (remaining > 0) - { - thislength = MIN(remaining, CHANNEL_CHUNK_LENGTH); - remaining -= thislength; - flags = (remaining == 0) ? CHANNEL_FLAG_LAST : 0; - if (channel->flags & CHANNEL_OPTION_SHOW_PROTOCOL) - flags |= CHANNEL_FLAG_SHOW_PROTOCOL; - - DEBUG_CHANNEL(("Sending %d bytes with flags %d\n", thislength, flags)); - - s = sec_init(This, This->encryption ? SEC_ENCRYPT : 0, thislength + 8); - out_uint32_le(s, length); - out_uint32_le(s, flags); - out_uint8p(s, data, thislength); - s_mark_end(s); - sec_send_to_channel(This, s, This->encryption ? SEC_ENCRYPT : 0, channel->mcs_id); - - data += thislength; - } -} - -void -channel_process(RDPCLIENT * This, STREAM s, uint16 mcs_channel) -{ - uint32 length, flags; - uint32 thislength; - VCHANNEL *channel = NULL; - unsigned int i; - STREAM in; - - for (i = 0; i < This->num_channels; i++) - { - channel = &This->channels[i]; - if (channel->mcs_id == mcs_channel) - break; - } - - if (i >= This->num_channels) - return; - - in_uint32_le(s, length); - in_uint32_le(s, flags); - if ((flags & CHANNEL_FLAG_FIRST) && (flags & CHANNEL_FLAG_LAST)) - { - /* single fragment - pass straight up */ - channel->process(This, s); - } - else - { - /* add fragment to defragmentation buffer */ - in = &channel->in; - if (flags & CHANNEL_FLAG_FIRST) - { - if (length > in->size) - { - in->data = (uint8 *) xrealloc(in->data, length); - in->size = length; - } - in->p = in->data; - } - - thislength = MIN(s->end - s->p, in->data + in->size - in->p); - memcpy(in->p, s->p, thislength); - in->p += thislength; - - if (flags & CHANNEL_FLAG_LAST) - { - in->end = in->p; - in->p = in->data; - channel->process(This, in); - } - } -} +/* -*- c-basic-offset: 8 -*- + rdesktop: A Remote Desktop Protocol client. + Protocol services - Virtual channels + Copyright (C) Erik Forsberg 2003 + Copyright (C) Matthew Chapman 2003-2005 + + 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. + + This 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. + + You 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. +*/ + +#include "rdesktop.h" + +// FIXME: header mess +#if 0 +#define CHANNEL_CHUNK_LENGTH 1600 +#define CHANNEL_FLAG_FIRST 0x01 +#define CHANNEL_FLAG_LAST 0x02 +#define CHANNEL_FLAG_SHOW_PROTOCOL 0x10 +#endif + +/* FIXME: We should use the information in TAG_SRV_CHANNELS to map RDP5 + channels to MCS channels. + + The format of TAG_SRV_CHANNELS seems to be + + global_channel_no (uint16le) + number_of_other_channels (uint16le) + ..followed by uint16les for the other channels. +*/ + +VCHANNEL * +channel_register(RDPCLIENT * This, char *name, uint32 flags, void (*callback) (RDPCLIENT *, STREAM)) +{ + VCHANNEL *channel; + + if (!This->use_rdp5) + return NULL; + + if (This->num_channels >= MAX_CHANNELS) + { + error("Channel table full, increase MAX_CHANNELS\n"); + return NULL; + } + + channel = &This->channels[This->num_channels]; + channel->mcs_id = MCS_GLOBAL_CHANNEL + 1 + This->num_channels; + strncpy(channel->name, name, 8); + channel->flags = flags; + channel->process = callback; + This->num_channels++; + return channel; +} + +STREAM +channel_init(RDPCLIENT * This, VCHANNEL * channel, uint32 length) +{ + STREAM s; + + s = sec_init(This, This->encryption ? SEC_ENCRYPT : 0, length + 8); + s_push_layer(s, channel_hdr, 8); + return s; +} + +void +channel_send(RDPCLIENT * This, STREAM s, VCHANNEL * channel) +{ + uint32 length, flags; + uint32 thislength, remaining; + uint8 *data; + + /* first fragment sent in-place */ + s_pop_layer(s, channel_hdr); + length = s->end - s->p - sizeof(CHANNEL_PDU_HEADER); + + DEBUG_CHANNEL(("channel_send, length = %d\n", length)); + + thislength = MIN(length, CHANNEL_CHUNK_LENGTH); +/* Note: In the original clipboard implementation, this number was + 1592, not 1600. However, I don't remember the reason and 1600 seems + to work so.. This applies only to *this* length, not the length of + continuation or ending packets. */ + remaining = length - thislength; + flags = (remaining == 0) ? CHANNEL_FLAG_FIRST | CHANNEL_FLAG_LAST : CHANNEL_FLAG_FIRST; + if (channel->flags & CHANNEL_OPTION_SHOW_PROTOCOL) + flags |= CHANNEL_FLAG_SHOW_PROTOCOL; + + out_uint32_le(s, length); + out_uint32_le(s, flags); + data = s->end = s->p + thislength; + DEBUG_CHANNEL(("Sending %d bytes with FLAG_FIRST\n", thislength)); + sec_send_to_channel(This, s, This->encryption ? SEC_ENCRYPT : 0, channel->mcs_id); + + /* subsequent segments copied (otherwise would have to generate headers backwards) */ + while (remaining > 0) + { + thislength = MIN(remaining, CHANNEL_CHUNK_LENGTH); + remaining -= thislength; + flags = (remaining == 0) ? CHANNEL_FLAG_LAST : 0; + if (channel->flags & CHANNEL_OPTION_SHOW_PROTOCOL) + flags |= CHANNEL_FLAG_SHOW_PROTOCOL; + + DEBUG_CHANNEL(("Sending %d bytes with flags %d\n", thislength, flags)); + + s = sec_init(This, This->encryption ? SEC_ENCRYPT : 0, thislength + 8); + out_uint32_le(s, length); + out_uint32_le(s, flags); + out_uint8p(s, data, thislength); + s_mark_end(s); + sec_send_to_channel(This, s, This->encryption ? SEC_ENCRYPT : 0, channel->mcs_id); + + data += thislength; + } +} + +void +channel_process(RDPCLIENT * This, STREAM s, uint16 mcs_channel) +{ + uint32 length, flags; + uint32 thislength; + VCHANNEL *channel = NULL; + unsigned int i; + STREAM in; + + for (i = 0; i < This->num_channels; i++) + { + channel = &This->channels[i]; + if (channel->mcs_id == mcs_channel) + break; + } + + if (i >= This->num_channels) + return; + + in_uint32_le(s, length); + in_uint32_le(s, flags); + if ((flags & CHANNEL_FLAG_FIRST) && (flags & CHANNEL_FLAG_LAST)) + { + /* single fragment - pass straight up */ + channel->process(This, s); + } + else + { + /* add fragment to defragmentation buffer */ + in = &channel->in; + if (flags & CHANNEL_FLAG_FIRST) + { + if (length > in->size) + { + in->data = (uint8 *) xrealloc(in->data, length); + in->size = length; + } + in->p = in->data; + } + + thislength = MIN(s->end - s->p, in->data + in->size - in->p); + memcpy(in->p, s->p, thislength); + in->p += thislength; + + if (flags & CHANNEL_FLAG_LAST) + { + in->end = in->p; + in->p = in->data; + channel->process(This, in); + } + } +} diff --git a/reactos/base/applications/tsclient/rdesktop/cliprdr.c b/reactos/base/applications/tsclient/rdesktop/cliprdr.c index 75cb6bd82c7..2e3b5156fcb 100644 --- a/reactos/base/applications/tsclient/rdesktop/cliprdr.c +++ b/reactos/base/applications/tsclient/rdesktop/cliprdr.c @@ -1,182 +1,182 @@ -/* -*- c-basic-offset: 8 -*- - rdesktop: A Remote Desktop Protocol client. - Protocol services - Clipboard functions - Copyright (C) Erik Forsberg 2003 - Copyright (C) Matthew Chapman 2003 - - 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. - - This 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. - - You 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. -*/ - -#include "rdesktop.h" - -#define CLIPRDR_CONNECT 1 -#define CLIPRDR_FORMAT_ANNOUNCE 2 -#define CLIPRDR_FORMAT_ACK 3 -#define CLIPRDR_DATA_REQUEST 4 -#define CLIPRDR_DATA_RESPONSE 5 - -#define CLIPRDR_REQUEST 0 -#define CLIPRDR_RESPONSE 1 -#define CLIPRDR_ERROR 2 - -static void -cliprdr_send_packet(RDPCLIENT * This, uint16 type, uint16 status, uint8 * data, uint32 length) -{ - STREAM s; - - DEBUG_CLIPBOARD(("CLIPRDR send: type=%d, status=%d, length=%d\n", type, status, length)); - - s = channel_init(This, This->cliprdr.channel, length + 12); - out_uint16_le(s, type); - out_uint16_le(s, status); - out_uint32_le(s, length); - out_uint8p(s, data, length); - out_uint32(s, 0); /* pad? */ - s_mark_end(s); - channel_send(This, s, This->cliprdr.channel); -} - -/* Helper which announces our readiness to supply clipboard data - in a single format (such as CF_TEXT) to the RDP side. - To announce more than one format at a time, use - cliprdr_send_native_format_announce. - */ -void -cliprdr_send_simple_native_format_announce(RDPCLIENT * This, uint32 format) -{ - uint8 buffer[36]; - - DEBUG_CLIPBOARD(("cliprdr_send_simple_native_format_announce\n")); - - buf_out_uint32(buffer, format); - memset(buffer + 4, 0, sizeof(buffer) - 4); /* description */ - cliprdr_send_native_format_announce(This, buffer, sizeof(buffer)); -} - -/* Announces our readiness to supply clipboard data in multiple - formats, each denoted by a 36-byte format descriptor of - [ uint32 format + 32-byte description ]. - */ -void -cliprdr_send_native_format_announce(RDPCLIENT * This, uint8 * formats_data, uint32 formats_data_length) -{ - DEBUG_CLIPBOARD(("cliprdr_send_native_format_announce\n")); - - cliprdr_send_packet(This, CLIPRDR_FORMAT_ANNOUNCE, CLIPRDR_REQUEST, formats_data, - formats_data_length); - - if (formats_data != This->cliprdr.last_formats) - { - if (This->cliprdr.last_formats) - xfree(This->cliprdr.last_formats); - - This->cliprdr.last_formats = xmalloc(formats_data_length); - memcpy(This->cliprdr.last_formats, formats_data, formats_data_length); - This->cliprdr.last_formats_length = formats_data_length; - } -} - -void -cliprdr_send_data_request(RDPCLIENT * This, uint32 format) -{ - uint8 buffer[4]; - - DEBUG_CLIPBOARD(("cliprdr_send_data_request\n")); - buf_out_uint32(buffer, format); - cliprdr_send_packet(This, CLIPRDR_DATA_REQUEST, CLIPRDR_REQUEST, buffer, sizeof(buffer)); -} - -void -cliprdr_send_data(RDPCLIENT * This, uint8 * data, uint32 length) -{ - DEBUG_CLIPBOARD(("cliprdr_send_data\n")); - cliprdr_send_packet(This, CLIPRDR_DATA_RESPONSE, CLIPRDR_RESPONSE, data, length); -} - -static void -cliprdr_process(RDPCLIENT * This, STREAM s) -{ - uint16 type, status; - uint32 length, format; - uint8 *data; - - in_uint16_le(s, type); - in_uint16_le(s, status); - in_uint32_le(s, length); - data = s->p; - - DEBUG_CLIPBOARD(("CLIPRDR recv: type=%d, status=%d, length=%d\n", type, status, length)); - - if (status == CLIPRDR_ERROR) - { - switch (type) - { - case CLIPRDR_FORMAT_ACK: - /* FIXME: We seem to get this when we send an announce while the server is - still processing a paste. Try sending another announce. */ - cliprdr_send_native_format_announce(This, This->cliprdr.last_formats, - This->cliprdr.last_formats_length); - break; - case CLIPRDR_DATA_RESPONSE: - ui_clip_request_failed(This); - break; - default: - DEBUG_CLIPBOARD(("CLIPRDR error (type=%d)\n", type)); - } - - return; - } - - switch (type) - { - case CLIPRDR_CONNECT: - ui_clip_sync(This); - break; - case CLIPRDR_FORMAT_ANNOUNCE: - ui_clip_format_announce(This, data, length); - cliprdr_send_packet(This, CLIPRDR_FORMAT_ACK, CLIPRDR_RESPONSE, NULL, 0); - return; - case CLIPRDR_FORMAT_ACK: - break; - case CLIPRDR_DATA_REQUEST: - in_uint32_le(s, format); - ui_clip_request_data(This, format); - break; - case CLIPRDR_DATA_RESPONSE: - ui_clip_handle_data(This, data, length); - break; - case 7: /* TODO: W2K3 SP1 sends this on connect with a value of 1 */ - break; - default: - unimpl("CLIPRDR packet type %d\n", type); - } -} - -void -cliprdr_set_mode(RDPCLIENT * This, const char *optarg) -{ - ui_clip_set_mode(This, optarg); -} - -BOOL -cliprdr_init(RDPCLIENT * This) -{ - This->cliprdr.channel = - channel_register(This, "cliprdr", - CHANNEL_OPTION_INITIALIZED | CHANNEL_OPTION_ENCRYPT_RDP | - CHANNEL_OPTION_COMPRESS_RDP | CHANNEL_OPTION_SHOW_PROTOCOL, - cliprdr_process); - return (This->cliprdr.channel != NULL); -} +/* -*- c-basic-offset: 8 -*- + rdesktop: A Remote Desktop Protocol client. + Protocol services - Clipboard functions + Copyright (C) Erik Forsberg 2003 + Copyright (C) Matthew Chapman 2003 + + 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. + + This 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. + + You 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. +*/ + +#include "rdesktop.h" + +#define CLIPRDR_CONNECT 1 +#define CLIPRDR_FORMAT_ANNOUNCE 2 +#define CLIPRDR_FORMAT_ACK 3 +#define CLIPRDR_DATA_REQUEST 4 +#define CLIPRDR_DATA_RESPONSE 5 + +#define CLIPRDR_REQUEST 0 +#define CLIPRDR_RESPONSE 1 +#define CLIPRDR_ERROR 2 + +static void +cliprdr_send_packet(RDPCLIENT * This, uint16 type, uint16 status, uint8 * data, uint32 length) +{ + STREAM s; + + DEBUG_CLIPBOARD(("CLIPRDR send: type=%d, status=%d, length=%d\n", type, status, length)); + + s = channel_init(This, This->cliprdr.channel, length + 12); + out_uint16_le(s, type); + out_uint16_le(s, status); + out_uint32_le(s, length); + out_uint8p(s, data, length); + out_uint32(s, 0); /* pad? */ + s_mark_end(s); + channel_send(This, s, This->cliprdr.channel); +} + +/* Helper which announces our readiness to supply clipboard data + in a single format (such as CF_TEXT) to the RDP side. + To announce more than one format at a time, use + cliprdr_send_native_format_announce. + */ +void +cliprdr_send_simple_native_format_announce(RDPCLIENT * This, uint32 format) +{ + uint8 buffer[36]; + + DEBUG_CLIPBOARD(("cliprdr_send_simple_native_format_announce\n")); + + buf_out_uint32(buffer, format); + memset(buffer + 4, 0, sizeof(buffer) - 4); /* description */ + cliprdr_send_native_format_announce(This, buffer, sizeof(buffer)); +} + +/* Announces our readiness to supply clipboard data in multiple + formats, each denoted by a 36-byte format descriptor of + [ uint32 format + 32-byte description ]. + */ +void +cliprdr_send_native_format_announce(RDPCLIENT * This, uint8 * formats_data, uint32 formats_data_length) +{ + DEBUG_CLIPBOARD(("cliprdr_send_native_format_announce\n")); + + cliprdr_send_packet(This, CLIPRDR_FORMAT_ANNOUNCE, CLIPRDR_REQUEST, formats_data, + formats_data_length); + + if (formats_data != This->cliprdr.last_formats) + { + if (This->cliprdr.last_formats) + xfree(This->cliprdr.last_formats); + + This->cliprdr.last_formats = xmalloc(formats_data_length); + memcpy(This->cliprdr.last_formats, formats_data, formats_data_length); + This->cliprdr.last_formats_length = formats_data_length; + } +} + +void +cliprdr_send_data_request(RDPCLIENT * This, uint32 format) +{ + uint8 buffer[4]; + + DEBUG_CLIPBOARD(("cliprdr_send_data_request\n")); + buf_out_uint32(buffer, format); + cliprdr_send_packet(This, CLIPRDR_DATA_REQUEST, CLIPRDR_REQUEST, buffer, sizeof(buffer)); +} + +void +cliprdr_send_data(RDPCLIENT * This, uint8 * data, uint32 length) +{ + DEBUG_CLIPBOARD(("cliprdr_send_data\n")); + cliprdr_send_packet(This, CLIPRDR_DATA_RESPONSE, CLIPRDR_RESPONSE, data, length); +} + +static void +cliprdr_process(RDPCLIENT * This, STREAM s) +{ + uint16 type, status; + uint32 length, format; + uint8 *data; + + in_uint16_le(s, type); + in_uint16_le(s, status); + in_uint32_le(s, length); + data = s->p; + + DEBUG_CLIPBOARD(("CLIPRDR recv: type=%d, status=%d, length=%d\n", type, status, length)); + + if (status == CLIPRDR_ERROR) + { + switch (type) + { + case CLIPRDR_FORMAT_ACK: + /* FIXME: We seem to get this when we send an announce while the server is + still processing a paste. Try sending another announce. */ + cliprdr_send_native_format_announce(This, This->cliprdr.last_formats, + This->cliprdr.last_formats_length); + break; + case CLIPRDR_DATA_RESPONSE: + ui_clip_request_failed(This); + break; + default: + DEBUG_CLIPBOARD(("CLIPRDR error (type=%d)\n", type)); + } + + return; + } + + switch (type) + { + case CLIPRDR_CONNECT: + ui_clip_sync(This); + break; + case CLIPRDR_FORMAT_ANNOUNCE: + ui_clip_format_announce(This, data, length); + cliprdr_send_packet(This, CLIPRDR_FORMAT_ACK, CLIPRDR_RESPONSE, NULL, 0); + return; + case CLIPRDR_FORMAT_ACK: + break; + case CLIPRDR_DATA_REQUEST: + in_uint32_le(s, format); + ui_clip_request_data(This, format); + break; + case CLIPRDR_DATA_RESPONSE: + ui_clip_handle_data(This, data, length); + break; + case 7: /* TODO: W2K3 SP1 sends this on connect with a value of 1 */ + break; + default: + unimpl("CLIPRDR packet type %d\n", type); + } +} + +void +cliprdr_set_mode(RDPCLIENT * This, const char *optarg) +{ + ui_clip_set_mode(This, optarg); +} + +BOOL +cliprdr_init(RDPCLIENT * This) +{ + This->cliprdr.channel = + channel_register(This, "cliprdr", + CHANNEL_OPTION_INITIALIZED | CHANNEL_OPTION_ENCRYPT_RDP | + CHANNEL_OPTION_COMPRESS_RDP | CHANNEL_OPTION_SHOW_PROTOCOL, + cliprdr_process); + return (This->cliprdr.channel != NULL); +} diff --git a/reactos/base/applications/tsclient/rdesktop/config.guess b/reactos/base/applications/tsclient/rdesktop/config.guess index 654648f1711..2fc3acce2ea 100644 --- a/reactos/base/applications/tsclient/rdesktop/config.guess +++ b/reactos/base/applications/tsclient/rdesktop/config.guess @@ -1,1411 +1,1411 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -timestamp='2003-06-17' - -# This file 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. -# -# This 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. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Originally written by Per Bothner . -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. -# -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. -# -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; - --version | -v ) - echo "$version" ; exit 0 ;; - --help | --h* | -h ) - echo "$usage"; exit 0 ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - -trap 'exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ;' - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -## for Red Hat Linux -if test -f /etc/redhat-release ; then - VENDOR=redhat ; -else - VENDOR= ; -fi - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in - Debian*) - release='-gnu' - ;; - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit 0 ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - macppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvmeppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mipseb-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sun3:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - alpha:OSF1:*:*) - if test $UNAME_RELEASE = "V4.0"; then - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - fi - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; - "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; - "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; - "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; - "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; - "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; - "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; - "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; - "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; - "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; - Alpha*:OpenVMS:*:*) - echo alpha-hp-vms - exit 0 ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit 0 ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit 0 ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit 0;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit 0 ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit 0 ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit 0 ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit 0;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit 0;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit 0 ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit 0 ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit 0 ;; - DRS?6000:UNIX_SV:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7 && exit 0 ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - i86pc:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit 0 ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit 0 ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit 0 ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit 0 ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit 0 ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit 0 ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit 0 ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit 0 ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit 0 ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c \ - && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && exit 0 - echo mips-mips-riscos${UNAME_RELEASE} - exit 0 ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit 0 ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit 0 ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit 0 ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit 0 ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit 0 ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit 0 ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit 0 ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit 0 ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit 0 ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit 0 ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit 0 ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit 0 ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit 0 ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit 0 ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit 0 ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 - echo rs6000-ibm-aix3.2.5 - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit 0 ;; - *:AIX:*:[45]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit 0 ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit 0 ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit 0 ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit 0 ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit 0 ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit 0 ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit 0 ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit 0 ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac - fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then - # avoid double evaluation of $set_cc_for_build - test -n "$CC_FOR_BUILD" || eval $set_cc_for_build - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit 0 ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit 0 ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 - echo unknown-hitachi-hiuxwe2 - exit 0 ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit 0 ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit 0 ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit 0 ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit 0 ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit 0 ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit 0 ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit 0 ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit 0 ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit 0 ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit 0 ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit 0 ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - *:UNICOS/mp:*:*) - echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit 0 ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - *:FreeBSD:*:*|*:GNU/FreeBSD:*:*) - # Determine whether the default compiler uses glibc. - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #if __GLIBC__ >= 2 - LIBC=gnu - #else - LIBC= - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} - exit 0 ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit 0 ;; - i*:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit 0 ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit 0 ;; - x86:Interix*:[34]*) - echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' - exit 0 ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit 0 ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit 0 ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit 0 ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit 0 ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - *:GNU:*:*) - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit 0 ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit 0 ;; - arm*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - cris:Linux:*:*) - echo cris-axis-linux-gnu - exit 0 ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-${VENDOR:-unknown}-linux-gnu - exit 0 ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mips64el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 - ;; - ppc:Linux:*:*) - echo powerpc-${VENDOR:-unknown}-linux-gnu - exit 0 ;; - ppc64:Linux:*:*) - echo powerpc64-${VENDOR:-unknown}-linux-gnu - exit 0 ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit 0 ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac - exit 0 ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu - exit 0 ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-${VENDOR:-ibm}-linux-gnu - exit 0 ;; - sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - x86_64:Linux:*:*) - echo x86_64-${VENDOR:-unknown}-linux-gnu - exit 0 ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g - s/.*supported targets: *// - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit 0 ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit 0 ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit 0 ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #ifdef __INTEL_COMPILER - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - test x"${LIBC}" != x && echo "${UNAME_MACHINE}-${VENDOR:-pc}-linux-${LIBC}" && exit 0 - test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 - exit 0 ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit 0 ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit 0 ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit 0 ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit 0 ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit 0 ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi - exit 0 ;; - i*86:*:5:[78]*) - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit 0 ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit 0 ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp - exit 0 ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit 0 ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit 0 ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit 0 ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit 0 ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit 0 ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit 0 ;; - M68*:*:R3V[567]*:*) - test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4.3${OS_REL} && exit 0 - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4 && exit 0 ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit 0 ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit 0 ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit 0 ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit 0 ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit 0 ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit 0 ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit 0 ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit 0 ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit 0 ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit 0 ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit 0 ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit 0 ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit 0 ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit 0 ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit 0 ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit 0 ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit 0 ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit 0 ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; - *:Darwin:*:*) - case `uname -p` in - *86) UNAME_PROCESSOR=i686 ;; - powerpc) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit 0 ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit 0 ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit 0 ;; - NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit 0 ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit 0 ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit 0 ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit 0 ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit 0 ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit 0 ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit 0 ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit 0 ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit 0 ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit 0 ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit 0 ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit 0 ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -eval $set_cc_for_build -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit 0 ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - c34*) - echo c34-convex-bsd - exit 0 ;; - c38*) - echo c38-convex-bsd - exit 0 ;; - c4*) - echo c4-convex-bsd - exit 0 ;; - esac -fi - -cat >&2 < in order to provide the needed -information to handle your system. - -config.guess timestamp = $timestamp - -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. + +timestamp='2003-06-17' + +# This file 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. +# +# This 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. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Per Bothner . +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# The plan is that this can be called by configure scripts if you +# don't specify an explicit build system type. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit 0 ;; + --version | -v ) + echo "$version" ; exit 0 ;; + --help | --h* | -h ) + echo "$usage"; exit 0 ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +## for Red Hat Linux +if test -f /etc/redhat-release ; then + VENDOR=redhat ; +else + VENDOR= ; +fi + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep __ELF__ >/dev/null + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit 0 ;; + amiga:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + arc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + hp300:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mac68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + macppc:OpenBSD:*:*) + echo powerpc-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme88k:OpenBSD:*:*) + echo m88k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvmeppc:OpenBSD:*:*) + echo powerpc-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + pmax:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sgi:OpenBSD:*:*) + echo mipseb-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sun3:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + wgrisc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + *:OpenBSD:*:*) + echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + alpha:OSF1:*:*) + if test $UNAME_RELEASE = "V4.0"; then + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + fi + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit 0 ;; + Alpha*:OpenVMS:*:*) + echo alpha-hp-vms + exit 0 ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit 0 ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit 0 ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit 0;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit 0 ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit 0 ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit 0 ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit 0;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit 0;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit 0 ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit 0 ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit 0 ;; + DRS?6000:UNIX_SV:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7 && exit 0 ;; + esac ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + i86pc:SunOS:5.*:*) + echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit 0 ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit 0 ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit 0 ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit 0 ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit 0 ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit 0 ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit 0 ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit 0 ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit 0 ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit 0 ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c \ + && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ + && exit 0 + echo mips-mips-riscos${UNAME_RELEASE} + exit 0 ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit 0 ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit 0 ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit 0 ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit 0 ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit 0 ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit 0 ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit 0 ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit 0 ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit 0 ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit 0 ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit 0 ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit 0 ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit 0 ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit 0 ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit 0 ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 + echo rs6000-ibm-aix3.2.5 + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit 0 ;; + *:AIX:*:[45]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit 0 ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit 0 ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit 0 ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit 0 ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit 0 ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit 0 ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit 0 ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit 0 ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + # avoid double evaluation of $set_cc_for_build + test -n "$CC_FOR_BUILD" || eval $set_cc_for_build + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit 0 ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit 0 ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 + echo unknown-hitachi-hiuxwe2 + exit 0 ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit 0 ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit 0 ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit 0 ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit 0 ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit 0 ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit 0 ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit 0 ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit 0 ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit 0 ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit 0 ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit 0 ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + *:UNICOS/mp:*:*) + echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit 0 ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit 0 ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; + *:FreeBSD:*:*|*:GNU/FreeBSD:*:*) + # Determine whether the default compiler uses glibc. + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + #if __GLIBC__ >= 2 + LIBC=gnu + #else + LIBC= + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} + exit 0 ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit 0 ;; + i*:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit 0 ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit 0 ;; + x86:Interix*:[34]*) + echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' + exit 0 ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit 0 ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit 0 ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit 0 ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit 0 ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + *:GNU:*:*) + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit 0 ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit 0 ;; + arm*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit 0 ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-${VENDOR:-unknown}-linux-gnu + exit 0 ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + mips:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips + #undef mipsel + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mipsel + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` + test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 + ;; + mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips64 + #undef mips64el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mips64el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips64 + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` + test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 + ;; + ppc:Linux:*:*) + echo powerpc-${VENDOR:-unknown}-linux-gnu + exit 0 ;; + ppc64:Linux:*:*) + echo powerpc64-${VENDOR:-unknown}-linux-gnu + exit 0 ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit 0 ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit 0 ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit 0 ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-${VENDOR:-ibm}-linux-gnu + exit 0 ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + x86_64:Linux:*:*) + echo x86_64-${VENDOR:-unknown}-linux-gnu + exit 0 ;; + i*86:Linux:*:*) + # The BFD linker knows what the default object file format is, so + # first see if it will tell us. cd to the root directory to prevent + # problems with other programs or directories called `ld' in the path. + # Set LC_ALL=C to ensure ld outputs messages in English. + ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ + | sed -ne '/supported targets:/!d + s/[ ][ ]*/ /g + s/.*supported targets: *// + s/ .*// + p'` + case "$ld_supported_targets" in + elf32-i386) + TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" + ;; + a.out-i386-linux) + echo "${UNAME_MACHINE}-pc-linux-gnuaout" + exit 0 ;; + coff-i386) + echo "${UNAME_MACHINE}-pc-linux-gnucoff" + exit 0 ;; + "") + # Either a pre-BFD a.out linker (linux-gnuoldld) or + # one that does not give us useful --help. + echo "${UNAME_MACHINE}-pc-linux-gnuoldld" + exit 0 ;; + esac + # Determine whether the default compiler is a.out or elf + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + #ifdef __ELF__ + # ifdef __GLIBC__ + # if __GLIBC__ >= 2 + LIBC=gnu + # else + LIBC=gnulibc1 + # endif + # else + LIBC=gnulibc1 + # endif + #else + #ifdef __INTEL_COMPILER + LIBC=gnu + #else + LIBC=gnuaout + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` + test x"${LIBC}" != x && echo "${UNAME_MACHINE}-${VENDOR:-pc}-linux-${LIBC}" && exit 0 + test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 + ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit 0 ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit 0 ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit 0 ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit 0 ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit 0 ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit 0 ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit 0 ;; + i*86:*:5:[78]*) + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit 0 ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit 0 ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i386. + echo i386-pc-msdosdjgpp + exit 0 ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit 0 ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit 0 ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit 0 ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit 0 ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit 0 ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit 0 ;; + M68*:*:R3V[567]*:*) + test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; + 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4.3${OS_REL} && exit 0 + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4 && exit 0 ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit 0 ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit 0 ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit 0 ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit 0 ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit 0 ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit 0 ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit 0 ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit 0 ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit 0 ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit 0 ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit 0 ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit 0 ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit 0 ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit 0 ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit 0 ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit 0 ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit 0 ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit 0 ;; + *:Darwin:*:*) + case `uname -p` in + *86) UNAME_PROCESSOR=i686 ;; + powerpc) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit 0 ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit 0 ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit 0 ;; + NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit 0 ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit 0 ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit 0 ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit 0 ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit 0 ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit 0 ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit 0 ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit 0 ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit 0 ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit 0 ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit 0 ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit 0 ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +eval $set_cc_for_build +cat >$dummy.c < +# include +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit 0 ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + c34*) + echo c34-convex-bsd + exit 0 ;; + c38*) + echo c38-convex-bsd + exit 0 ;; + c4*) + echo c4-convex-bsd + exit 0 ;; + esac +fi + +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/reactos/base/applications/tsclient/rdesktop/config.sub b/reactos/base/applications/tsclient/rdesktop/config.sub index 3ec9d2845b3..7cee3d6ec7f 100644 --- a/reactos/base/applications/tsclient/rdesktop/config.sub +++ b/reactos/base/applications/tsclient/rdesktop/config.sub @@ -1,1500 +1,1500 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -timestamp='2003-06-18' - -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine. It does not imply ALL GNU software can. -# -# This file 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. -# -# This 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. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS - -Canonicalize a configuration name. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.sub ($timestamp) - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; - --version | -v ) - echo "$version" ; exit 0 ;; - --help | --h* | -h ) - echo "$usage"; exit 0 ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit 0;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ - | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ - | ip2k \ - | m32r | m68000 | m68k | m88k | mcore \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64vr | mips64vrel \ - | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | msp430 \ - | ns16k | ns32k \ - | openrisc | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ - | s390 | s390x \ - | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ - | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ - | x86 | xscale | xstormy16 | xtensa \ - | z8k) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* \ - | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* \ - | m32r-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | mcore-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ - | msp430-* \ - | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ - | s390-* | s390x-* \ - | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ - | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ - | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ - | xtensa-* \ - | ymp-* \ - | z8k-*) - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - crds | unos) - basic_machine=m68k-crds - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - mmix*) - basic_machine=mmix-knuth - os=-mmixware - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - nv1) - basic_machine=nv1-cray - os=-unicosmp - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - or32 | or32-*) - basic_machine=or32-unknown - os=-coff - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; - sei) - basic_machine=mips-sei - os=-seiux - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparc | sparcv9 | sparcv9b) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ - | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova - ;; - -ns2 ) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - c4x-* | tic4x-*) - os=-coff - ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; - *-ibm) - os=-aix - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=-uxpv - ;; - *-rom68k) - os=-coff - ;; - *-*bug) - os=-coff - ;; - *-apple) - os=-macos - ;; - *-atari*) - os=-mint - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -aix*) - vendor=ibm - ;; - -beos*) - vendor=be - ;; - -hpux*) - vendor=hp - ;; - -mpeix*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi - ;; - -mpw* | -macos*) - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; - -vos*) - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os -exit 0 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: +#! /bin/sh +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. + +timestamp='2003-06-18' + +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# This file 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. +# +# This 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. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit 0 ;; + --version | -v ) + echo "$version" ; exit 0 ;; + --help | --h* | -h ) + echo "$usage"; exit 0 ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit 0;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis) + os= + basic_machine=$1 + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ + | ip2k \ + | m32r | m68000 | m68k | m88k | mcore \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64vr | mips64vrel \ + | mips64orion | mips64orionel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | msp430 \ + | ns16k | ns32k \ + | openrisc | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | pyramid \ + | s390 | s390x \ + | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ + | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ + | v850 | v850e \ + | we32k \ + | x86 | xscale | xstormy16 | xtensa \ + | z8k) + basic_machine=$basic_machine-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* \ + | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* \ + | m32r-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | mcore-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | msp430-* \ + | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | pyramid-* \ + | romp-* | rs6000-* \ + | s390-* | s390x-* \ + | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ + | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tron-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ + | xtensa-* \ + | ymp-* \ + | z8k-*) + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + crds | unos) + basic_machine=m68k-crds + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + mmix*) + basic_machine=mmix-knuth + os=-mmixware + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + nv1) + basic_machine=nv1-cray + os=-unicosmp + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + or32 | or32-*) + basic_machine=or32-unknown + os=-coff + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tic54x | c54x*) + basic_machine=tic54x-unknown + os=-coff + ;; + tic55x | c55x*) + basic_machine=tic55x-unknown + os=-coff + ;; + tic6x | c6x*) + basic_machine=tic6x-unknown + os=-coff + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparc | sparcv9 | sparcv9b) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ + | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-ibm) + os=-aix + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/reactos/base/applications/tsclient/rdesktop/configure.ac b/reactos/base/applications/tsclient/rdesktop/configure.ac index 91c993f5378..34a4e79c211 100644 --- a/reactos/base/applications/tsclient/rdesktop/configure.ac +++ b/reactos/base/applications/tsclient/rdesktop/configure.ac @@ -1,727 +1,727 @@ -AC_INIT(rdesktop, 1.4.1) - -AC_CONFIG_SRCDIR([rdesktop.c]) - -AC_PROG_CC -if test "$GCC" = yes; then - CFLAGS="$CFLAGS -Wall" -fi - -AC_PROG_INSTALL -AC_LANG_C -AC_HEADER_STDC -AC_C_BIGENDIAN([AC_DEFINE(B_ENDIAN)], [AC_DEFINE(L_ENDIAN)]) -AC_PATH_XTRA - -AC_SEARCH_LIBS(socket, socket) -AC_SEARCH_LIBS(inet_aton, resolv) - -AC_CHECK_HEADER(sys/select.h, AC_DEFINE(HAVE_SYS_SELECT_H)) -AC_CHECK_HEADER(sys/modem.h, AC_DEFINE(HAVE_SYS_MODEM_H)) -AC_CHECK_HEADER(sys/filio.h, AC_DEFINE(HAVE_SYS_FILIO_H)) -AC_CHECK_HEADER(sys/strtio.h, AC_DEFINE(HAVE_SYS_STRTIO_H)) -AC_CHECK_HEADER(locale.h, AC_DEFINE(HAVE_LOCALE_H)) -AC_CHECK_HEADER(langinfo.h, AC_DEFINE(HAVE_LANGINFO_H)) - -AC_CHECK_TOOL(STRIP, strip, :) - -rpath="" - -# -# OpenSSL detection borrowed from stunnel -# -checkssldir() { : - if test -f "$1/include/openssl/ssl.h"; then - ssldir="$1" - return 0 - fi - return 1 -} -AC_MSG_CHECKING([for OpenSSL directory]) -AC_ARG_WITH(openssl, - [ --with-openssl=DIR look for OpenSSL at DIR/include, DIR/lib], - [ - dnl Check the specified location only - checkssldir "$withval" - ], - [ - dnl Search default locations of OpenSSL library - for maindir in /usr/local /usr/lib /usr/pkg /usr /var/ssl /opt; do - for dir in $maindir $maindir/openssl $maindir/ssl; do - checkssldir $dir && break 2 - done - done - ] -) -if test -z "$ssldir"; then - AC_MSG_RESULT([Not found]) - echo - echo "Couldn't find your OpenSSL library installation dir" - echo "Use --with-openssl option to fix this problem" - echo - exit 1 -fi -AC_MSG_RESULT([$ssldir]) -AC_SUBST(ssldir) -AC_DEFINE_UNQUOTED(ssldir, "$ssldir") - -dnl Add OpenSSL includes and libraries -CFLAGS="$CFLAGS -I$ssldir/include" -AC_ARG_ENABLE(static-openssl, - [ --enable-static-openssl link OpenSSL statically], - [ -LIBS="$LIBS $ssldir/lib/libcrypto.a" - ], - [ -LIBS="$LIBS -L$ssldir/lib -lcrypto" -rpath="$rpath:$ssldir/lib" - ]) - - -# -# Alignment -# -AC_MSG_CHECKING([if architecture needs alignment]) -AC_TRY_RUN([ -#include -#include -int main(int argc, char **argv) -{ - unsigned char test[8] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88 }; - signal(SIGBUS, exit); - signal(SIGABRT, exit); - signal(SIGSEGV, exit); - if (*((unsigned int *)(test + 1)) != 0x55443322 && *((unsigned int *)(test + 1)) != 0x22334455) { - return 1; - } - return 0; -}], - [AC_MSG_RESULT(no)], - [AC_MSG_RESULT(yes) - AC_DEFINE(NEED_ALIGN)], - [AC_MSG_RESULT(assuming yes) - AC_DEFINE(NEED_ALIGN)]) - - -# -# EGD -# -AC_ARG_WITH(egd-socket, - [ --with-egd-socket=PATH look for Entropy Gathering Daemon socket at PATH], - [EGD_SOCKET="$withval"], - [EGD_SOCKET="/var/run/egd-pool"] -) -AC_DEFINE_UNQUOTED(EGD_SOCKET, "$EGD_SOCKET") - - -# -# rdp2vnc -# -vncserverconfig=libvncserver-config -AC_ARG_WITH(libvncserver-config, - [ --with-libvncserver-config=CMD use CMD as libvncserver-config], - [vncserverconfig="$withval"] -) -AC_ARG_WITH(libvncserver, - [ --with-libvncserver make rdp2vnc], - [ - VNCINC=`$vncserverconfig --cflags` - AC_SUBST(VNCINC) - LDVNC=`$vncserverconfig --libs` - AC_SUBST(LDVNC) - VNCLINK=`$vncserverconfig --link` - AC_SUBST(VNCLINK) - RDP2VNCTARGET="rdp2vnc" - AC_SUBST(RDP2VNCTARGET) - ] -) - -# -# sound -# -AC_ARG_WITH(libao, - [ --with-libao=DIR look for libao at DIR/include, DIR/lib], - [ - CFLAGS="$CFLAGS -I$withval/include" - CPPFLAGS="$CPPFLAGS -I$withval/include" - LIBS="$LIBS -L$withval/lib" - rpath="$rpath:$withval/lib" - ] -) - -sound="yes" -AC_ARG_WITH(sound, - [ --with-sound select sound system ("oss", "sgi", "sun" or "libao") ], - [ - sound="$withval" - ]) -if test "$sound" = yes; then - AC_CHECK_HEADER(ao/ao.h, [sound=libao]) - AC_CHECK_HEADER(sys/soundcard.h, [sound=oss]) - AC_CHECK_HEADER(dmedia/audio.h, [sound=sgi]) - AC_CHECK_HEADER(sys/audioio.h, [sound=sun]) -fi -if test "$sound" = no; then - break -elif test "$sound" = oss; then - SOUNDOBJ="rdpsnd.o rdpsnd_oss.o" - AC_DEFINE(WITH_RDPSND) -elif test "$sound" = sgi; then - SOUNDOBJ="rdpsnd.o rdpsnd_sgi.o" - LDFLAGS="$LDFLAGS -laudio" - AC_DEFINE(WITH_RDPSND) -elif test "$sound" = sun; then - SOUNDOBJ="rdpsnd.o rdpsnd_sun.o" - AC_DEFINE(WITH_RDPSND) -elif test "$sound" = libao; then - SOUNDOBJ="rdpsnd.o rdpsnd_libao.o" - LDFLAGS="$LDFLAGS -lao" - AC_DEFINE(WITH_RDPSND) -else - AC_MSG_WARN([sound support disabled]) - AC_MSG_WARN([Currently supported systems are Open Sound System (oss), SGI AL (sgi), Sun/BSD (sun) and libao]) -fi -AC_SUBST(SOUNDOBJ) - -# -# dirfd -# -dnl Find out how to get the file descriptor associated with an open DIR*. -dnl From Jim Meyering - -AC_DEFUN([UTILS_FUNC_DIRFD], -[ - - AC_HEADER_DIRENT - dirfd_headers=' -#if HAVE_DIRENT_H -# include -#else /* not HAVE_DIRENT_H */ -# define dirent direct -# if HAVE_SYS_NDIR_H -# include -# endif /* HAVE_SYS_NDIR_H */ -# if HAVE_SYS_DIR_H -# include -# endif /* HAVE_SYS_DIR_H */ -# if HAVE_NDIR_H -# include -# endif /* HAVE_NDIR_H */ -#endif /* HAVE_DIRENT_H */ -' - AC_CHECK_FUNCS(dirfd) - AC_CHECK_DECLS([dirfd], , , $dirfd_headers) - - AC_CACHE_CHECK([whether dirfd is a macro], - jm_cv_func_dirfd_macro, - [AC_EGREP_CPP([dirent_header_defines_dirfd], [$dirfd_headers -#ifdef dirfd - dirent_header_defines_dirfd -#endif], - jm_cv_func_dirfd_macro=yes, - jm_cv_func_dirfd_macro=no)]) - - # Use the replacement only if we have no function, macro, - # or declaration with that name. - if test $ac_cv_func_dirfd,$ac_cv_have_decl_dirfd,$jm_cv_func_dirfd_macro \ - = no,no,no; then - AC_REPLACE_FUNCS([dirfd]) - AC_CACHE_CHECK( - [how to get the file descriptor associated with an open DIR*], - gl_cv_sys_dir_fd_member_name, - [ - dirfd_save_CFLAGS=$CFLAGS - for ac_expr in d_fd dd_fd; do - - CFLAGS="$CFLAGS -DDIR_FD_MEMBER_NAME=$ac_expr" - AC_TRY_COMPILE( - [$dirfd_headers - ], - [DIR *dir_p = opendir("."); (void) dir_p->DIR_FD_MEMBER_NAME;], - dir_fd_found=yes - ) - CFLAGS=$dirfd_save_CFLAGS - test "$dir_fd_found" = yes && break - done - test "$dir_fd_found" = yes || ac_expr=no_such_member - - gl_cv_sys_dir_fd_member_name=$ac_expr - ] - ) - if test $gl_cv_sys_dir_fd_member_name != no_such_member; then - AC_DEFINE_UNQUOTED(DIR_FD_MEMBER_NAME, - $gl_cv_sys_dir_fd_member_name, - [the name of the file descriptor member of DIR]) - fi - AH_VERBATIM(DIR_TO_FD, - [#ifdef DIR_FD_MEMBER_NAME -# define DIR_TO_FD(Dir_p) ((Dir_p)->DIR_FD_MEMBER_NAME) -#else -# define DIR_TO_FD(Dir_p) -1 -#endif -] - ) - fi -]) - -UTILS_FUNC_DIRFD - -# -# iconv -# - -dnl This macros shamelessly stolen from -dnl http://gcc.gnu.org/ml/gcc-bugs/2001-06/msg01398.html. -dnl Written by Bruno Haible. - -AC_DEFUN([UTILS_FUNC_ICONV], -[ - dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and - dnl those with the standalone portable GNU libiconv installed). - - AC_ARG_WITH([libiconv-prefix], -[ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib], [ - for dir in `echo "$withval" | tr : ' '`; do - if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi - if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi - done - ]) - AC_CHECK_HEADER(iconv.h, AC_DEFINE(HAVE_ICONV_H)) - - AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ - am_cv_func_iconv="no, consider installing GNU libiconv" - am_cv_lib_iconv=no - AC_TRY_LINK([#include -#include ], - [iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd);], - am_cv_func_iconv=yes) - if test "$am_cv_func_iconv" != yes; then - am_save_LIBS="$LIBS" - LIBS="$LIBS -liconv" - AC_TRY_LINK([#include -#include ], - [iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd);], - am_cv_lib_iconv=yes - am_cv_func_iconv=yes) - LIBS="$am_save_LIBS" - fi - ]) - if test "$am_cv_func_iconv" = yes; then - AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) - AC_MSG_CHECKING([for iconv declaration]) - AC_CACHE_VAL(am_cv_proto_iconv, [ - AC_TRY_COMPILE([ -#include -#include -extern -#ifdef __cplusplus -"C" -#endif -#if defined(__STDC__) || defined(__cplusplus) -size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); -#else -size_t iconv(); -#endif -], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") - am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) - am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` - AC_MSG_RESULT([$]{ac_t:- - }[$]am_cv_proto_iconv) - AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, - [Define as const if the declaration of iconv() needs const.]) - fi - LIBICONV= - if test "$am_cv_lib_iconv" = yes; then - LIBICONV="-liconv" - fi - AC_SUBST(LIBICONV) -]) - -UTILS_FUNC_ICONV -LIBS="$LIBS $LIBICONV" - -# -# socklen_t -# from curl - -dnl Check for socklen_t: historically on BSD it is an int, and in -dnl POSIX 1g it is a type of its own, but some platforms use different -dnl types for the argument to getsockopt, getpeername, etc. So we -dnl have to test to find something that will work. -AC_DEFUN([TYPE_SOCKLEN_T], -[ - AC_CHECK_TYPE([socklen_t], ,[ - AC_MSG_CHECKING([for socklen_t equivalent]) - AC_CACHE_VAL([socklen_t_equiv], - [ - # Systems have either "struct sockaddr *" or - # "void *" as the second argument to getpeername - socklen_t_equiv= - for arg2 in "struct sockaddr" void; do - for t in int size_t unsigned long "unsigned long"; do - AC_TRY_COMPILE([ - #include - #include - - int getpeername (int, $arg2 *, $t *); - ],[ - $t len; - getpeername(0,0,&len); - ],[ - socklen_t_equiv="$t" - break - ]) - done - done - - if test "x$socklen_t_equiv" = x; then - AC_MSG_ERROR([Cannot find a type to use in place of socklen_t]) - fi - ]) - AC_MSG_RESULT($socklen_t_equiv) - AC_DEFINE_UNQUOTED(socklen_t, $socklen_t_equiv, - [type to use in place of socklen_t if not defined])], - [#include -#include ]) -]) - -TYPE_SOCKLEN_T - -# -# statfs stuff -# -AC_CHECK_HEADERS(sys/vfs.h) -AC_CHECK_HEADERS(sys/statvfs.h) -AC_CHECK_HEADERS(sys/statfs.h) -AC_CHECK_HEADERS(sys/param.h) - -mount_includes="\ - $ac_includes_default - #if HAVE_SYS_PARAM_H - # include - #endif - " - -AC_CHECK_HEADERS(sys/mount.h,,,[$mount_includes]) - -################################################# -# these tests are taken from the GNU fileutils package -AC_CHECKING(how to get filesystem space usage) -space=no - -# Test for statvfs64. -if test $space = no; then - # SVR4 - AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64, - [AC_TRY_RUN([ -#if defined(HAVE_UNISTD_H) -#include -#endif -#include -#include - main () - { - struct statvfs64 fsd; - exit (statvfs64 (".", &fsd)); - }], - fu_cv_sys_stat_statvfs64=yes, - fu_cv_sys_stat_statvfs64=no, - fu_cv_sys_stat_statvfs64=cross)]) - if test $fu_cv_sys_stat_statvfs64 = yes; then - space=yes - AC_DEFINE(STAT_STATVFS64,1,[Whether statvfs64() is available]) - fi -fi - -# Perform only the link test since it seems there are no variants of the -# statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs) -# because that got a false positive on SCO OSR5. Adding the declaration -# of a `struct statvfs' causes this test to fail (as it should) on such -# systems. That system is reported to work fine with STAT_STATFS4 which -# is what it gets when this test fails. -if test $space = no; then - # SVR4 - AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs, - [AC_TRY_LINK([#include -#include ], - [struct statvfs fsd; statvfs (0, &fsd);], - fu_cv_sys_stat_statvfs=yes, - fu_cv_sys_stat_statvfs=no)]) - if test $fu_cv_sys_stat_statvfs = yes; then - space=yes - AC_DEFINE(STAT_STATVFS,1,[Whether statvfs() is available]) - fi -fi - -if test $space = no; then - # DEC Alpha running OSF/1 - AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)]) - AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1, - [AC_TRY_RUN([ -#include -#include -#include - main () - { - struct statfs fsd; - fsd.f_fsize = 0; - exit (statfs (".", &fsd, sizeof (struct statfs))); - }], - fu_cv_sys_stat_statfs3_osf1=yes, - fu_cv_sys_stat_statfs3_osf1=no, - fu_cv_sys_stat_statfs3_osf1=no)]) - - -#C_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1) - if test $fu_cv_sys_stat_statfs3_osf1 = yes; then - space=yes - AC_DEFINE(STAT_STATFS3_OSF1,1,[Whether statfs requires 3 arguments]) - fi -fi - -if test $space = no; then -# AIX - AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl -member (AIX, 4.3BSD)]) - AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize, - [AC_TRY_RUN([ -#ifdef HAVE_SYS_PARAM_H -#include -#endif -#ifdef HAVE_SYS_MOUNT_H -#include -#endif -#ifdef HAVE_SYS_VFS_H -#include -#endif - main () - { - struct statfs fsd; - fsd.f_bsize = 0; - exit (statfs (".", &fsd)); - }], - fu_cv_sys_stat_statfs2_bsize=yes, - fu_cv_sys_stat_statfs2_bsize=no, - fu_cv_sys_stat_statfs2_bsize=no)]) - AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize) - if test $fu_cv_sys_stat_statfs2_bsize = yes; then - space=yes - AC_DEFINE(STAT_STATFS2_BSIZE,1,[Whether statfs requires two arguments and struct statfs has bsize property]) - fi -fi - -if test $space = no; then -# SVR3 - AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)]) - AC_CACHE_VAL(fu_cv_sys_stat_statfs4, - [AC_TRY_RUN([#include -#include - main () - { - struct statfs fsd; - exit (statfs (".", &fsd, sizeof fsd, 0)); - }], - fu_cv_sys_stat_statfs4=yes, - fu_cv_sys_stat_statfs4=no, - fu_cv_sys_stat_statfs4=no)]) - AC_MSG_RESULT($fu_cv_sys_stat_statfs4) - if test $fu_cv_sys_stat_statfs4 = yes; then - space=yes - AC_DEFINE(STAT_STATFS4,1,[Whether statfs requires 4 arguments]) - fi -fi - -if test $space = no; then -# 4.4BSD and NetBSD - AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl -member (4.4BSD and NetBSD)]) - AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize, - [AC_TRY_RUN([#include -#ifdef HAVE_SYS_PARAM_H -#include -#endif -#ifdef HAVE_SYS_MOUNT_H -#include -#endif - main () - { - struct statfs fsd; - fsd.f_fsize = 0; - exit (statfs (".", &fsd)); - }], - fu_cv_sys_stat_statfs2_fsize=yes, - fu_cv_sys_stat_statfs2_fsize=no, - fu_cv_sys_stat_statfs2_fsize=no)]) - AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize) - if test $fu_cv_sys_stat_statfs2_fsize = yes; then - space=yes - AC_DEFINE(STAT_STATFS2_FSIZE,1,[Whether statfs requires 2 arguments and struct statfs has fsize]) - fi -fi - -if test $space = no; then - # Ultrix - AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)]) - AC_CACHE_VAL(fu_cv_sys_stat_fs_data, - [AC_TRY_RUN([#include -#ifdef HAVE_SYS_PARAM_H -#include -#endif -#ifdef HAVE_SYS_MOUNT_H -#include -#endif -#ifdef HAVE_SYS_FS_TYPES_H -#include -#endif - main () - { - struct fs_data fsd; - /* Ultrix's statfs returns 1 for success, - 0 for not mounted, -1 for failure. */ - exit (statfs (".", &fsd) != 1); - }], - fu_cv_sys_stat_fs_data=yes, - fu_cv_sys_stat_fs_data=no, - fu_cv_sys_stat_fs_data=no)]) - AC_MSG_RESULT($fu_cv_sys_stat_fs_data) - if test $fu_cv_sys_stat_fs_data = yes; then - space=yes - AC_DEFINE(STAT_STATFS2_FS_DATA,1,[Whether statfs requires 2 arguments and struct fs_data is available]) - fi -fi - - statxfs_includes="\ -$ac_includes_default -#if HAVE_SYS_STATVFS_H -# include -#endif -#if HAVE_SYS_VFS_H -# include -#endif -#if !HAVE_SYS_STATVFS_H && !HAVE_SYS_VFS_H -# if HAVE_SYS_MOUNT_H && HAVE_SYS_PARAM_H -/* NetBSD 1.5.2 needs these, for the declaration of struct statfs. */ -# include -# include -# elif HAVE_NETINET_IN_H && HAVE_NFS_NFS_CLNT_H && HAVE_NFS_VFS_H -/* Ultrix 4.4 needs these for the declaration of struct statfs. */ -# include -# include -# include -# endif -#endif -" - -AC_CHECK_MEMBERS([struct statfs.f_namemax],,,[$statxfs_includes]) -AC_CHECK_MEMBERS([struct statvfs.f_namemax],,,[$statxfs_includes]) -AC_CHECK_MEMBERS([struct statfs.f_namelen],,,[$statxfs_includes]) -AC_CHECK_MEMBERS([struct statvfs.f_namelen],,,[$statxfs_includes]) - -# -# Large file support -# -AC_SYS_LARGEFILE - -# -# mntent -# -AC_CHECK_HEADER(mntent.h, AC_DEFINE(HAVE_MNTENT_H)) -AC_CHECK_FUNCS(setmntent) - -# -# IPv6 -# -AC_ARG_WITH(ipv6, - [ --with-ipv6 enable IPv6-support], - [ - if test $withval != "no"; - then - AC_DEFINE(IPv6,1) - fi - ]) - - -# -# debugging -# -AC_ARG_WITH(debug, - [ --with-debug enable protocol debugging output], - [ - if test $withval != "no"; - then - AC_DEFINE(WITH_DEBUG,1) - fi - ]) - -AC_ARG_WITH(debug-kbd, - [ --with-debug-kbd enable debugging of keyboard handling], - [ - if test $withval != "no"; - then - AC_DEFINE(WITH_DEBUG_KBD,1) - fi - ]) - -AC_ARG_WITH(debug-rdp5, - [ --with-debug-rdp5 enable debugging of RDP5 code], - [ - if test $withval != "no"; - then - AC_DEFINE(WITH_DEBUG_RDP5,1) - fi - ]) - -AC_ARG_WITH(debug-clipboard, - [ --with-debug-clipboard enable debugging of clipboard code], - [ - if test $withval != "no"; - then - AC_DEFINE(WITH_DEBUG_CLIPBOARD,1) - fi - ]) - -AC_ARG_WITH(debug-channel, - [ --with-debug-channel enable debugging of virtual channel code], - [ - if test $withval != "no"; - then - AC_DEFINE(WITH_DEBUG_CHANNEL,1) - fi - ]) - - -# -# target-specific stuff -# -# strip leading colon from rpath -rpath=`echo $rpath |sed 's/^://'` -AC_CANONICAL_HOST -case "$host" in -*-*-solaris*) - LDFLAGS="$LDFLAGS -R$rpath" - ;; -*-dec-osf*) - LDFLAGS="$LDFLAGS -Wl,-rpath,$rpath" - ;; -*-*-hpux*) - CFLAGS="$CFLAGS -D_XOPEN_SOURCE_EXTENDED" - ;; -*-*-irix6.5*) - LIBS="$LIBS -L$ssldir/lib32 -lcrypto" - CFLAGS="$CFLAGS -D__SGI_IRIX__" - ;; -esac - - -AC_OUTPUT(Makefile) - -dnl Local Variables: -dnl comment-start: "dnl " -dnl comment-end: "" -dnl comment-start-skip: "\\bdnl\\b\\s *" -dnl compile-command: "autoconf" -dnl End: +AC_INIT(rdesktop, 1.4.1) + +AC_CONFIG_SRCDIR([rdesktop.c]) + +AC_PROG_CC +if test "$GCC" = yes; then + CFLAGS="$CFLAGS -Wall" +fi + +AC_PROG_INSTALL +AC_LANG_C +AC_HEADER_STDC +AC_C_BIGENDIAN([AC_DEFINE(B_ENDIAN)], [AC_DEFINE(L_ENDIAN)]) +AC_PATH_XTRA + +AC_SEARCH_LIBS(socket, socket) +AC_SEARCH_LIBS(inet_aton, resolv) + +AC_CHECK_HEADER(sys/select.h, AC_DEFINE(HAVE_SYS_SELECT_H)) +AC_CHECK_HEADER(sys/modem.h, AC_DEFINE(HAVE_SYS_MODEM_H)) +AC_CHECK_HEADER(sys/filio.h, AC_DEFINE(HAVE_SYS_FILIO_H)) +AC_CHECK_HEADER(sys/strtio.h, AC_DEFINE(HAVE_SYS_STRTIO_H)) +AC_CHECK_HEADER(locale.h, AC_DEFINE(HAVE_LOCALE_H)) +AC_CHECK_HEADER(langinfo.h, AC_DEFINE(HAVE_LANGINFO_H)) + +AC_CHECK_TOOL(STRIP, strip, :) + +rpath="" + +# +# OpenSSL detection borrowed from stunnel +# +checkssldir() { : + if test -f "$1/include/openssl/ssl.h"; then + ssldir="$1" + return 0 + fi + return 1 +} +AC_MSG_CHECKING([for OpenSSL directory]) +AC_ARG_WITH(openssl, + [ --with-openssl=DIR look for OpenSSL at DIR/include, DIR/lib], + [ + dnl Check the specified location only + checkssldir "$withval" + ], + [ + dnl Search default locations of OpenSSL library + for maindir in /usr/local /usr/lib /usr/pkg /usr /var/ssl /opt; do + for dir in $maindir $maindir/openssl $maindir/ssl; do + checkssldir $dir && break 2 + done + done + ] +) +if test -z "$ssldir"; then + AC_MSG_RESULT([Not found]) + echo + echo "Couldn't find your OpenSSL library installation dir" + echo "Use --with-openssl option to fix this problem" + echo + exit 1 +fi +AC_MSG_RESULT([$ssldir]) +AC_SUBST(ssldir) +AC_DEFINE_UNQUOTED(ssldir, "$ssldir") + +dnl Add OpenSSL includes and libraries +CFLAGS="$CFLAGS -I$ssldir/include" +AC_ARG_ENABLE(static-openssl, + [ --enable-static-openssl link OpenSSL statically], + [ +LIBS="$LIBS $ssldir/lib/libcrypto.a" + ], + [ +LIBS="$LIBS -L$ssldir/lib -lcrypto" +rpath="$rpath:$ssldir/lib" + ]) + + +# +# Alignment +# +AC_MSG_CHECKING([if architecture needs alignment]) +AC_TRY_RUN([ +#include +#include +int main(int argc, char **argv) +{ + unsigned char test[8] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88 }; + signal(SIGBUS, exit); + signal(SIGABRT, exit); + signal(SIGSEGV, exit); + if (*((unsigned int *)(test + 1)) != 0x55443322 && *((unsigned int *)(test + 1)) != 0x22334455) { + return 1; + } + return 0; +}], + [AC_MSG_RESULT(no)], + [AC_MSG_RESULT(yes) + AC_DEFINE(NEED_ALIGN)], + [AC_MSG_RESULT(assuming yes) + AC_DEFINE(NEED_ALIGN)]) + + +# +# EGD +# +AC_ARG_WITH(egd-socket, + [ --with-egd-socket=PATH look for Entropy Gathering Daemon socket at PATH], + [EGD_SOCKET="$withval"], + [EGD_SOCKET="/var/run/egd-pool"] +) +AC_DEFINE_UNQUOTED(EGD_SOCKET, "$EGD_SOCKET") + + +# +# rdp2vnc +# +vncserverconfig=libvncserver-config +AC_ARG_WITH(libvncserver-config, + [ --with-libvncserver-config=CMD use CMD as libvncserver-config], + [vncserverconfig="$withval"] +) +AC_ARG_WITH(libvncserver, + [ --with-libvncserver make rdp2vnc], + [ + VNCINC=`$vncserverconfig --cflags` + AC_SUBST(VNCINC) + LDVNC=`$vncserverconfig --libs` + AC_SUBST(LDVNC) + VNCLINK=`$vncserverconfig --link` + AC_SUBST(VNCLINK) + RDP2VNCTARGET="rdp2vnc" + AC_SUBST(RDP2VNCTARGET) + ] +) + +# +# sound +# +AC_ARG_WITH(libao, + [ --with-libao=DIR look for libao at DIR/include, DIR/lib], + [ + CFLAGS="$CFLAGS -I$withval/include" + CPPFLAGS="$CPPFLAGS -I$withval/include" + LIBS="$LIBS -L$withval/lib" + rpath="$rpath:$withval/lib" + ] +) + +sound="yes" +AC_ARG_WITH(sound, + [ --with-sound select sound system ("oss", "sgi", "sun" or "libao") ], + [ + sound="$withval" + ]) +if test "$sound" = yes; then + AC_CHECK_HEADER(ao/ao.h, [sound=libao]) + AC_CHECK_HEADER(sys/soundcard.h, [sound=oss]) + AC_CHECK_HEADER(dmedia/audio.h, [sound=sgi]) + AC_CHECK_HEADER(sys/audioio.h, [sound=sun]) +fi +if test "$sound" = no; then + break +elif test "$sound" = oss; then + SOUNDOBJ="rdpsnd.o rdpsnd_oss.o" + AC_DEFINE(WITH_RDPSND) +elif test "$sound" = sgi; then + SOUNDOBJ="rdpsnd.o rdpsnd_sgi.o" + LDFLAGS="$LDFLAGS -laudio" + AC_DEFINE(WITH_RDPSND) +elif test "$sound" = sun; then + SOUNDOBJ="rdpsnd.o rdpsnd_sun.o" + AC_DEFINE(WITH_RDPSND) +elif test "$sound" = libao; then + SOUNDOBJ="rdpsnd.o rdpsnd_libao.o" + LDFLAGS="$LDFLAGS -lao" + AC_DEFINE(WITH_RDPSND) +else + AC_MSG_WARN([sound support disabled]) + AC_MSG_WARN([Currently supported systems are Open Sound System (oss), SGI AL (sgi), Sun/BSD (sun) and libao]) +fi +AC_SUBST(SOUNDOBJ) + +# +# dirfd +# +dnl Find out how to get the file descriptor associated with an open DIR*. +dnl From Jim Meyering + +AC_DEFUN([UTILS_FUNC_DIRFD], +[ + + AC_HEADER_DIRENT + dirfd_headers=' +#if HAVE_DIRENT_H +# include +#else /* not HAVE_DIRENT_H */ +# define dirent direct +# if HAVE_SYS_NDIR_H +# include +# endif /* HAVE_SYS_NDIR_H */ +# if HAVE_SYS_DIR_H +# include +# endif /* HAVE_SYS_DIR_H */ +# if HAVE_NDIR_H +# include +# endif /* HAVE_NDIR_H */ +#endif /* HAVE_DIRENT_H */ +' + AC_CHECK_FUNCS(dirfd) + AC_CHECK_DECLS([dirfd], , , $dirfd_headers) + + AC_CACHE_CHECK([whether dirfd is a macro], + jm_cv_func_dirfd_macro, + [AC_EGREP_CPP([dirent_header_defines_dirfd], [$dirfd_headers +#ifdef dirfd + dirent_header_defines_dirfd +#endif], + jm_cv_func_dirfd_macro=yes, + jm_cv_func_dirfd_macro=no)]) + + # Use the replacement only if we have no function, macro, + # or declaration with that name. + if test $ac_cv_func_dirfd,$ac_cv_have_decl_dirfd,$jm_cv_func_dirfd_macro \ + = no,no,no; then + AC_REPLACE_FUNCS([dirfd]) + AC_CACHE_CHECK( + [how to get the file descriptor associated with an open DIR*], + gl_cv_sys_dir_fd_member_name, + [ + dirfd_save_CFLAGS=$CFLAGS + for ac_expr in d_fd dd_fd; do + + CFLAGS="$CFLAGS -DDIR_FD_MEMBER_NAME=$ac_expr" + AC_TRY_COMPILE( + [$dirfd_headers + ], + [DIR *dir_p = opendir("."); (void) dir_p->DIR_FD_MEMBER_NAME;], + dir_fd_found=yes + ) + CFLAGS=$dirfd_save_CFLAGS + test "$dir_fd_found" = yes && break + done + test "$dir_fd_found" = yes || ac_expr=no_such_member + + gl_cv_sys_dir_fd_member_name=$ac_expr + ] + ) + if test $gl_cv_sys_dir_fd_member_name != no_such_member; then + AC_DEFINE_UNQUOTED(DIR_FD_MEMBER_NAME, + $gl_cv_sys_dir_fd_member_name, + [the name of the file descriptor member of DIR]) + fi + AH_VERBATIM(DIR_TO_FD, + [#ifdef DIR_FD_MEMBER_NAME +# define DIR_TO_FD(Dir_p) ((Dir_p)->DIR_FD_MEMBER_NAME) +#else +# define DIR_TO_FD(Dir_p) -1 +#endif +] + ) + fi +]) + +UTILS_FUNC_DIRFD + +# +# iconv +# + +dnl This macros shamelessly stolen from +dnl http://gcc.gnu.org/ml/gcc-bugs/2001-06/msg01398.html. +dnl Written by Bruno Haible. + +AC_DEFUN([UTILS_FUNC_ICONV], +[ + dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and + dnl those with the standalone portable GNU libiconv installed). + + AC_ARG_WITH([libiconv-prefix], +[ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib], [ + for dir in `echo "$withval" | tr : ' '`; do + if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi + if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi + done + ]) + AC_CHECK_HEADER(iconv.h, AC_DEFINE(HAVE_ICONV_H)) + + AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + AC_TRY_LINK([#include +#include ], + [iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);], + am_cv_func_iconv=yes) + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS -liconv" + AC_TRY_LINK([#include +#include ], + [iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);], + am_cv_lib_iconv=yes + am_cv_func_iconv=yes) + LIBS="$am_save_LIBS" + fi + ]) + if test "$am_cv_func_iconv" = yes; then + AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) + AC_MSG_CHECKING([for iconv declaration]) + AC_CACHE_VAL(am_cv_proto_iconv, [ + AC_TRY_COMPILE([ +#include +#include +extern +#ifdef __cplusplus +"C" +#endif +#if defined(__STDC__) || defined(__cplusplus) +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); +#else +size_t iconv(); +#endif +], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") + am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) + am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` + AC_MSG_RESULT([$]{ac_t:- + }[$]am_cv_proto_iconv) + AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, + [Define as const if the declaration of iconv() needs const.]) + fi + LIBICONV= + if test "$am_cv_lib_iconv" = yes; then + LIBICONV="-liconv" + fi + AC_SUBST(LIBICONV) +]) + +UTILS_FUNC_ICONV +LIBS="$LIBS $LIBICONV" + +# +# socklen_t +# from curl + +dnl Check for socklen_t: historically on BSD it is an int, and in +dnl POSIX 1g it is a type of its own, but some platforms use different +dnl types for the argument to getsockopt, getpeername, etc. So we +dnl have to test to find something that will work. +AC_DEFUN([TYPE_SOCKLEN_T], +[ + AC_CHECK_TYPE([socklen_t], ,[ + AC_MSG_CHECKING([for socklen_t equivalent]) + AC_CACHE_VAL([socklen_t_equiv], + [ + # Systems have either "struct sockaddr *" or + # "void *" as the second argument to getpeername + socklen_t_equiv= + for arg2 in "struct sockaddr" void; do + for t in int size_t unsigned long "unsigned long"; do + AC_TRY_COMPILE([ + #include + #include + + int getpeername (int, $arg2 *, $t *); + ],[ + $t len; + getpeername(0,0,&len); + ],[ + socklen_t_equiv="$t" + break + ]) + done + done + + if test "x$socklen_t_equiv" = x; then + AC_MSG_ERROR([Cannot find a type to use in place of socklen_t]) + fi + ]) + AC_MSG_RESULT($socklen_t_equiv) + AC_DEFINE_UNQUOTED(socklen_t, $socklen_t_equiv, + [type to use in place of socklen_t if not defined])], + [#include +#include ]) +]) + +TYPE_SOCKLEN_T + +# +# statfs stuff +# +AC_CHECK_HEADERS(sys/vfs.h) +AC_CHECK_HEADERS(sys/statvfs.h) +AC_CHECK_HEADERS(sys/statfs.h) +AC_CHECK_HEADERS(sys/param.h) + +mount_includes="\ + $ac_includes_default + #if HAVE_SYS_PARAM_H + # include + #endif + " + +AC_CHECK_HEADERS(sys/mount.h,,,[$mount_includes]) + +################################################# +# these tests are taken from the GNU fileutils package +AC_CHECKING(how to get filesystem space usage) +space=no + +# Test for statvfs64. +if test $space = no; then + # SVR4 + AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64, + [AC_TRY_RUN([ +#if defined(HAVE_UNISTD_H) +#include +#endif +#include +#include + main () + { + struct statvfs64 fsd; + exit (statvfs64 (".", &fsd)); + }], + fu_cv_sys_stat_statvfs64=yes, + fu_cv_sys_stat_statvfs64=no, + fu_cv_sys_stat_statvfs64=cross)]) + if test $fu_cv_sys_stat_statvfs64 = yes; then + space=yes + AC_DEFINE(STAT_STATVFS64,1,[Whether statvfs64() is available]) + fi +fi + +# Perform only the link test since it seems there are no variants of the +# statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs) +# because that got a false positive on SCO OSR5. Adding the declaration +# of a `struct statvfs' causes this test to fail (as it should) on such +# systems. That system is reported to work fine with STAT_STATFS4 which +# is what it gets when this test fails. +if test $space = no; then + # SVR4 + AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs, + [AC_TRY_LINK([#include +#include ], + [struct statvfs fsd; statvfs (0, &fsd);], + fu_cv_sys_stat_statvfs=yes, + fu_cv_sys_stat_statvfs=no)]) + if test $fu_cv_sys_stat_statvfs = yes; then + space=yes + AC_DEFINE(STAT_STATVFS,1,[Whether statvfs() is available]) + fi +fi + +if test $space = no; then + # DEC Alpha running OSF/1 + AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)]) + AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1, + [AC_TRY_RUN([ +#include +#include +#include + main () + { + struct statfs fsd; + fsd.f_fsize = 0; + exit (statfs (".", &fsd, sizeof (struct statfs))); + }], + fu_cv_sys_stat_statfs3_osf1=yes, + fu_cv_sys_stat_statfs3_osf1=no, + fu_cv_sys_stat_statfs3_osf1=no)]) + + +#C_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1) + if test $fu_cv_sys_stat_statfs3_osf1 = yes; then + space=yes + AC_DEFINE(STAT_STATFS3_OSF1,1,[Whether statfs requires 3 arguments]) + fi +fi + +if test $space = no; then +# AIX + AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl +member (AIX, 4.3BSD)]) + AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize, + [AC_TRY_RUN([ +#ifdef HAVE_SYS_PARAM_H +#include +#endif +#ifdef HAVE_SYS_MOUNT_H +#include +#endif +#ifdef HAVE_SYS_VFS_H +#include +#endif + main () + { + struct statfs fsd; + fsd.f_bsize = 0; + exit (statfs (".", &fsd)); + }], + fu_cv_sys_stat_statfs2_bsize=yes, + fu_cv_sys_stat_statfs2_bsize=no, + fu_cv_sys_stat_statfs2_bsize=no)]) + AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize) + if test $fu_cv_sys_stat_statfs2_bsize = yes; then + space=yes + AC_DEFINE(STAT_STATFS2_BSIZE,1,[Whether statfs requires two arguments and struct statfs has bsize property]) + fi +fi + +if test $space = no; then +# SVR3 + AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)]) + AC_CACHE_VAL(fu_cv_sys_stat_statfs4, + [AC_TRY_RUN([#include +#include + main () + { + struct statfs fsd; + exit (statfs (".", &fsd, sizeof fsd, 0)); + }], + fu_cv_sys_stat_statfs4=yes, + fu_cv_sys_stat_statfs4=no, + fu_cv_sys_stat_statfs4=no)]) + AC_MSG_RESULT($fu_cv_sys_stat_statfs4) + if test $fu_cv_sys_stat_statfs4 = yes; then + space=yes + AC_DEFINE(STAT_STATFS4,1,[Whether statfs requires 4 arguments]) + fi +fi + +if test $space = no; then +# 4.4BSD and NetBSD + AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl +member (4.4BSD and NetBSD)]) + AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize, + [AC_TRY_RUN([#include +#ifdef HAVE_SYS_PARAM_H +#include +#endif +#ifdef HAVE_SYS_MOUNT_H +#include +#endif + main () + { + struct statfs fsd; + fsd.f_fsize = 0; + exit (statfs (".", &fsd)); + }], + fu_cv_sys_stat_statfs2_fsize=yes, + fu_cv_sys_stat_statfs2_fsize=no, + fu_cv_sys_stat_statfs2_fsize=no)]) + AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize) + if test $fu_cv_sys_stat_statfs2_fsize = yes; then + space=yes + AC_DEFINE(STAT_STATFS2_FSIZE,1,[Whether statfs requires 2 arguments and struct statfs has fsize]) + fi +fi + +if test $space = no; then + # Ultrix + AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)]) + AC_CACHE_VAL(fu_cv_sys_stat_fs_data, + [AC_TRY_RUN([#include +#ifdef HAVE_SYS_PARAM_H +#include +#endif +#ifdef HAVE_SYS_MOUNT_H +#include +#endif +#ifdef HAVE_SYS_FS_TYPES_H +#include +#endif + main () + { + struct fs_data fsd; + /* Ultrix's statfs returns 1 for success, + 0 for not mounted, -1 for failure. */ + exit (statfs (".", &fsd) != 1); + }], + fu_cv_sys_stat_fs_data=yes, + fu_cv_sys_stat_fs_data=no, + fu_cv_sys_stat_fs_data=no)]) + AC_MSG_RESULT($fu_cv_sys_stat_fs_data) + if test $fu_cv_sys_stat_fs_data = yes; then + space=yes + AC_DEFINE(STAT_STATFS2_FS_DATA,1,[Whether statfs requires 2 arguments and struct fs_data is available]) + fi +fi + + statxfs_includes="\ +$ac_includes_default +#if HAVE_SYS_STATVFS_H +# include +#endif +#if HAVE_SYS_VFS_H +# include +#endif +#if !HAVE_SYS_STATVFS_H && !HAVE_SYS_VFS_H +# if HAVE_SYS_MOUNT_H && HAVE_SYS_PARAM_H +/* NetBSD 1.5.2 needs these, for the declaration of struct statfs. */ +# include +# include +# elif HAVE_NETINET_IN_H && HAVE_NFS_NFS_CLNT_H && HAVE_NFS_VFS_H +/* Ultrix 4.4 needs these for the declaration of struct statfs. */ +# include +# include +# include +# endif +#endif +" + +AC_CHECK_MEMBERS([struct statfs.f_namemax],,,[$statxfs_includes]) +AC_CHECK_MEMBERS([struct statvfs.f_namemax],,,[$statxfs_includes]) +AC_CHECK_MEMBERS([struct statfs.f_namelen],,,[$statxfs_includes]) +AC_CHECK_MEMBERS([struct statvfs.f_namelen],,,[$statxfs_includes]) + +# +# Large file support +# +AC_SYS_LARGEFILE + +# +# mntent +# +AC_CHECK_HEADER(mntent.h, AC_DEFINE(HAVE_MNTENT_H)) +AC_CHECK_FUNCS(setmntent) + +# +# IPv6 +# +AC_ARG_WITH(ipv6, + [ --with-ipv6 enable IPv6-support], + [ + if test $withval != "no"; + then + AC_DEFINE(IPv6,1) + fi + ]) + + +# +# debugging +# +AC_ARG_WITH(debug, + [ --with-debug enable protocol debugging output], + [ + if test $withval != "no"; + then + AC_DEFINE(WITH_DEBUG,1) + fi + ]) + +AC_ARG_WITH(debug-kbd, + [ --with-debug-kbd enable debugging of keyboard handling], + [ + if test $withval != "no"; + then + AC_DEFINE(WITH_DEBUG_KBD,1) + fi + ]) + +AC_ARG_WITH(debug-rdp5, + [ --with-debug-rdp5 enable debugging of RDP5 code], + [ + if test $withval != "no"; + then + AC_DEFINE(WITH_DEBUG_RDP5,1) + fi + ]) + +AC_ARG_WITH(debug-clipboard, + [ --with-debug-clipboard enable debugging of clipboard code], + [ + if test $withval != "no"; + then + AC_DEFINE(WITH_DEBUG_CLIPBOARD,1) + fi + ]) + +AC_ARG_WITH(debug-channel, + [ --with-debug-channel enable debugging of virtual channel code], + [ + if test $withval != "no"; + then + AC_DEFINE(WITH_DEBUG_CHANNEL,1) + fi + ]) + + +# +# target-specific stuff +# +# strip leading colon from rpath +rpath=`echo $rpath |sed 's/^://'` +AC_CANONICAL_HOST +case "$host" in +*-*-solaris*) + LDFLAGS="$LDFLAGS -R$rpath" + ;; +*-dec-osf*) + LDFLAGS="$LDFLAGS -Wl,-rpath,$rpath" + ;; +*-*-hpux*) + CFLAGS="$CFLAGS -D_XOPEN_SOURCE_EXTENDED" + ;; +*-*-irix6.5*) + LIBS="$LIBS -L$ssldir/lib32 -lcrypto" + CFLAGS="$CFLAGS -D__SGI_IRIX__" + ;; +esac + + +AC_OUTPUT(Makefile) + +dnl Local Variables: +dnl comment-start: "dnl " +dnl comment-end: "" +dnl comment-start-skip: "\\bdnl\\b\\s *" +dnl compile-command: "autoconf" +dnl End: diff --git a/reactos/base/applications/tsclient/rdesktop/constants.h b/reactos/base/applications/tsclient/rdesktop/constants.h index 462f9028fdf..c1862cdf826 100644 --- a/reactos/base/applications/tsclient/rdesktop/constants.h +++ b/reactos/base/applications/tsclient/rdesktop/constants.h @@ -1,430 +1,430 @@ -/* - rdesktop: A Remote Desktop Protocol client. - Miscellaneous protocol constants - Copyright (C) Matthew Chapman 1999-2005 - - 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. - - This 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. - - You 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. -*/ - -/* TCP port for Remote Desktop Protocol */ -#define TCP_PORT_RDP 3389 - -#define DEFAULT_CODEPAGE "UTF-8" -#define WINDOWS_CODEPAGE "UTF-16LE" - -/* ISO PDU codes */ -enum ISO_PDU_CODE -{ - ISO_PDU_CR = 0xE0, /* Connection Request */ - ISO_PDU_CC = 0xD0, /* Connection Confirm */ - ISO_PDU_DR = 0x80, /* Disconnect Request */ - ISO_PDU_DT = 0xF0, /* Data */ - ISO_PDU_ER = 0x70 /* Error */ -}; - -/* MCS PDU codes */ -enum MCS_PDU_TYPE -{ - MCS_EDRQ = 1, /* Erect Domain Request */ - MCS_DPUM = 8, /* Disconnect Provider Ultimatum */ - MCS_AURQ = 10, /* Attach User Request */ - MCS_AUCF = 11, /* Attach User Confirm */ - MCS_CJRQ = 14, /* Channel Join Request */ - MCS_CJCF = 15, /* Channel Join Confirm */ - MCS_SDRQ = 25, /* Send Data Request */ - MCS_SDIN = 26 /* Send Data Indication */ -}; - -#define MCS_CONNECT_INITIAL 0x7f65 -#define MCS_CONNECT_RESPONSE 0x7f66 - -#define BER_TAG_BOOLEAN 1 -#define BER_TAG_INTEGER 2 -#define BER_TAG_OCTET_STRING 4 -#define BER_TAG_RESULT 10 -#define MCS_TAG_DOMAIN_PARAMS 0x30 - -#define MCS_GLOBAL_CHANNEL 1003 -#define MCS_USERCHANNEL_BASE 1001 - -/* RDP secure transport constants */ -#define SEC_RANDOM_SIZE 32 -#define SEC_MODULUS_SIZE 64 -#define SEC_MAX_MODULUS_SIZE 256 -#define SEC_PADDING_SIZE 8 -#define SEC_EXPONENT_SIZE 4 - -#define SEC_CLIENT_RANDOM 0x0001 -#define SEC_ENCRYPT 0x0008 -#define SEC_LOGON_INFO 0x0040 -#define SEC_LICENCE_NEG 0x0080 -#define SEC_REDIRECT_ENCRYPT 0x0C00 - -#define SEC_TAG_SRV_INFO 0x0c01 -#define SEC_TAG_SRV_CRYPT 0x0c02 -#define SEC_TAG_SRV_CHANNELS 0x0c03 - -#define SEC_TAG_CLI_INFO 0xc001 -#define SEC_TAG_CLI_CRYPT 0xc002 -#define SEC_TAG_CLI_CHANNELS 0xc003 -#define SEC_TAG_CLI_4 0xc004 - -#define SEC_TAG_PUBKEY 0x0006 -#define SEC_TAG_KEYSIG 0x0008 - -#define SEC_RSA_MAGIC 0x31415352 /* RSA1 */ - -/* RDP licensing constants */ -#define LICENCE_TOKEN_SIZE 10 -#define LICENCE_HWID_SIZE 20 -#define LICENCE_SIGNATURE_SIZE 16 - -#define LICENCE_TAG_DEMAND 0x01 -#define LICENCE_TAG_AUTHREQ 0x02 -#define LICENCE_TAG_ISSUE 0x03 -#define LICENCE_TAG_REISSUE 0x04 -#define LICENCE_TAG_PRESENT 0x12 -#define LICENCE_TAG_REQUEST 0x13 -#define LICENCE_TAG_AUTHRESP 0x15 -#define LICENCE_TAG_RESULT 0xff - -#define LICENCE_TAG_USER 0x000f -#define LICENCE_TAG_HOST 0x0010 - -/* RDP PDU codes */ -enum RDP_PDU_TYPE -{ - RDP_PDU_DEMAND_ACTIVE = 1, - RDP_PDU_CONFIRM_ACTIVE = 3, - RDP_PDU_REDIRECT = 4, /* MS Server 2003 Session Redirect */ - RDP_PDU_DEACTIVATE = 6, - RDP_PDU_DATA = 7 -}; - -enum RDP_DATA_PDU_TYPE -{ - RDP_DATA_PDU_UPDATE = 2, - RDP_DATA_PDU_CONTROL = 20, - RDP_DATA_PDU_POINTER = 27, - RDP_DATA_PDU_INPUT = 28, - RDP_DATA_PDU_SYNCHRONISE = 31, - RDP_DATA_PDU_BELL = 34, - RDP_DATA_PDU_CLIENT_WINDOW_STATUS = 35, - RDP_DATA_PDU_LOGON = 38, - RDP_DATA_PDU_FONT2 = 39, - RDP_DATA_PDU_KEYBOARD_INDICATORS = 41, - RDP_DATA_PDU_DISCONNECT = 47 -}; - -enum RDP_CONTROL_PDU_TYPE -{ - RDP_CTL_REQUEST_CONTROL = 1, - RDP_CTL_GRANT_CONTROL = 2, - RDP_CTL_DETACH = 3, - RDP_CTL_COOPERATE = 4 -}; - -enum RDP_UPDATE_PDU_TYPE -{ - RDP_UPDATE_ORDERS = 0, - RDP_UPDATE_BITMAP = 1, - RDP_UPDATE_PALETTE = 2, - RDP_UPDATE_SYNCHRONIZE = 3 -}; - -enum RDP_POINTER_PDU_TYPE -{ - RDP_POINTER_SYSTEM = 1, - RDP_POINTER_MOVE = 3, - RDP_POINTER_COLOR = 6, - RDP_POINTER_CACHED = 7 -}; - -enum RDP_SYSTEM_POINTER_TYPE -{ - RDP_NULL_POINTER = 0, - RDP_DEFAULT_POINTER = 0x7F00 -}; - -enum RDP_INPUT_DEVICE -{ - RDP_INPUT_SYNCHRONIZE = 0, - RDP_INPUT_CODEPOINT = 1, - RDP_INPUT_VIRTKEY = 2, - RDP_INPUT_SCANCODE = 4, - RDP_INPUT_MOUSE = 0x8001 -}; - -/* Device flags */ -#define KBD_FLAG_RIGHT 0x0001 -#define KBD_FLAG_EXT 0x0100 -#define KBD_FLAG_QUIET 0x1000 -#define KBD_FLAG_DOWN 0x4000 -#define KBD_FLAG_UP 0x8000 - -/* These are for synchronization; not for keystrokes */ -#define KBD_FLAG_SCROLL 0x0001 -#define KBD_FLAG_NUMLOCK 0x0002 -#define KBD_FLAG_CAPITAL 0x0004 - -/* See T.128 */ -#define RDP_KEYPRESS 0 -#define RDP_KEYRELEASE (KBD_FLAG_DOWN | KBD_FLAG_UP) - -#define MOUSE_FLAG_MOVE 0x0800 -#define MOUSE_FLAG_BUTTON1 0x1000 -#define MOUSE_FLAG_BUTTON2 0x2000 -#define MOUSE_FLAG_BUTTON3 0x4000 -#define MOUSE_FLAG_BUTTON4 0x0280 -#define MOUSE_FLAG_BUTTON5 0x0380 -#define MOUSE_FLAG_DOWN 0x8000 - -/* Raster operation masks */ -#define ROP2_S(rop3) (rop3 & 0xf) -#define ROP2_P(rop3) ((rop3 & 0x3) | ((rop3 & 0x30) >> 2)) - -#define ROP2_COPY 0xc -#define ROP2_XOR 0x6 -#define ROP2_AND 0x8 -#define ROP2_NXOR 0x9 -#define ROP2_OR 0xe - -#define MIX_TRANSPARENT 0 -#define MIX_OPAQUE 1 - -#define TEXT2_VERTICAL 0x04 -#define TEXT2_IMPLICIT_X 0x20 - -#define ALTERNATE 1 -#define WINDING 2 - -/* RDP bitmap cache (version 2) constants */ -#define BMPCACHE2_C0_CELLS 0x78 -#define BMPCACHE2_C1_CELLS 0x78 -#define BMPCACHE2_C2_CELLS 0x150 -#define BMPCACHE2_NUM_PSTCELLS 0x9f6 - -#define PDU_FLAG_FIRST 0x01 -#define PDU_FLAG_LAST 0x02 - -/* RDP capabilities */ -#define RDP_CAPSET_GENERAL 1 /* Maps to generalCapabilitySet in T.128 page 138 */ -#define RDP_CAPLEN_GENERAL 0x18 -#define OS_MAJOR_TYPE_UNIX 4 -#define OS_MINOR_TYPE_XSERVER 7 - -#define RDP_CAPSET_BITMAP 2 -#define RDP_CAPLEN_BITMAP 0x1C - -#define RDP_CAPSET_ORDER 3 -#define RDP_CAPLEN_ORDER 0x58 -#define ORDER_CAP_NEGOTIATE 2 -#define ORDER_CAP_NOSUPPORT 4 - -#define RDP_CAPSET_BMPCACHE 4 -#define RDP_CAPLEN_BMPCACHE 0x28 - -#define RDP_CAPSET_CONTROL 5 -#define RDP_CAPLEN_CONTROL 0x0C - -#define RDP_CAPSET_ACTIVATE 7 -#define RDP_CAPLEN_ACTIVATE 0x0C - -#define RDP_CAPSET_POINTER 8 -#define RDP_CAPLEN_POINTER 0x08 - -#define RDP_CAPSET_SHARE 9 -#define RDP_CAPLEN_SHARE 0x08 - -#define RDP_CAPSET_COLCACHE 10 -#define RDP_CAPLEN_COLCACHE 0x08 - -#define RDP_CAPSET_BMPCACHE2 19 -#define RDP_CAPLEN_BMPCACHE2 0x28 -#define BMPCACHE2_FLAG_PERSIST ((uint32)1<<31) - -#define RDP_SOURCE "MSTSC" - -/* Logon flags */ -#define RDP_LOGON_AUTO 0x0008 -#define RDP_LOGON_NORMAL 0x0033 -#define RDP_LOGON_COMPRESSION 0x0080 /* mppc compression with 8kB histroy buffer */ -#define RDP_LOGON_BLOB 0x0100 -#define RDP_LOGON_COMPRESSION2 0x0200 /* rdp5 mppc compression with 64kB history buffer */ -#define RDP_LOGON_LEAVE_AUDIO 0x2000 - -#define RDP5_DISABLE_NOTHING 0x00 -#define RDP5_NO_WALLPAPER 0x01 -#define RDP5_NO_FULLWINDOWDRAG 0x02 -#define RDP5_NO_MENUANIMATIONS 0x04 -#define RDP5_NO_THEMING 0x08 -#define RDP5_NO_CURSOR_SHADOW 0x20 -#define RDP5_NO_CURSORSETTINGS 0x40 /* disables cursor blinking */ - -/* compression types */ -#define RDP_MPPC_BIG 0x01 -#define RDP_MPPC_COMPRESSED 0x20 -#define RDP_MPPC_RESET 0x40 -#define RDP_MPPC_FLUSH 0x80 -#define RDP_MPPC_DICT_SIZE 65536 - -#define RDP5_COMPRESSED 0x80 - -/* Keymap flags */ -#define MapRightShiftMask (1<<0) -#define MapLeftShiftMask (1<<1) -#define MapShiftMask (MapRightShiftMask | MapLeftShiftMask) - -#define MapRightAltMask (1<<2) -#define MapLeftAltMask (1<<3) -#define MapAltGrMask MapRightAltMask - -#define MapRightCtrlMask (1<<4) -#define MapLeftCtrlMask (1<<5) -#define MapCtrlMask (MapRightCtrlMask | MapLeftCtrlMask) - -#define MapRightWinMask (1<<6) -#define MapLeftWinMask (1<<7) -#define MapWinMask (MapRightWinMask | MapLeftWinMask) - -#define MapNumLockMask (1<<8) -#define MapCapsLockMask (1<<9) - -#define MapLocalStateMask (1<<10) - -#define MapInhibitMask (1<<11) - -#define MASK_ADD_BITS(var, mask) (var |= mask) -#define MASK_REMOVE_BITS(var, mask) (var &= ~mask) -#define MASK_HAS_BITS(var, mask) ((var & mask)>0) -#define MASK_CHANGE_BIT(var, mask, active) (var = ((var & ~mask) | (active ? mask : 0))) - -/* Clipboard constants, "borrowed" from GCC system headers in - the w32 cross compiler */ - -#if 0 -#define CF_TEXT 1 -#define CF_BITMAP 2 -#define CF_METAFILEPICT 3 -#define CF_SYLK 4 -#define CF_DIF 5 -#define CF_TIFF 6 -#define CF_OEMTEXT 7 -#define CF_DIB 8 -#define CF_PALETTE 9 -#define CF_PENDATA 10 -#define CF_RIFF 11 -#define CF_WAVE 12 -#define CF_UNICODETEXT 13 -#define CF_ENHMETAFILE 14 -#define CF_HDROP 15 -#define CF_LOCALE 16 -#define CF_MAX 17 -#define CF_OWNERDISPLAY 128 -#define CF_DSPTEXT 129 -#define CF_DSPBITMAP 130 -#define CF_DSPMETAFILEPICT 131 -#define CF_DSPENHMETAFILE 142 -#define CF_PRIVATEFIRST 512 -#define CF_PRIVATELAST 767 -#define CF_GDIOBJFIRST 768 -#define CF_GDIOBJLAST 1023 - -/* Sound format constants */ -#define WAVE_FORMAT_PCM 1 -#define WAVE_FORMAT_ADPCM 2 -#define WAVE_FORMAT_ALAW 6 -#define WAVE_FORMAT_MULAW 7 - -/* Virtual channel options */ -#define CHANNEL_OPTION_INITIALIZED 0x80000000 -#define CHANNEL_OPTION_ENCRYPT_RDP 0x40000000 -#define CHANNEL_OPTION_COMPRESS_RDP 0x00800000 -#define CHANNEL_OPTION_SHOW_PROTOCOL 0x00200000 - -/* NT status codes for RDPDR */ -#define STATUS_SUCCESS 0x00000000 -#define STATUS_NOT_IMPLEMENTED 0x00000001 -#define STATUS_PENDING 0x00000103 - -#define STATUS_NO_MORE_FILES 0x80000006 -#define STATUS_DEVICE_PAPER_EMPTY 0x8000000e -#define STATUS_DEVICE_POWERED_OFF 0x8000000f -#define STATUS_DEVICE_OFF_LINE 0x80000010 -#define STATUS_DEVICE_BUSY 0x80000011 - -#define STATUS_INVALID_HANDLE 0xc0000008 -#define STATUS_INVALID_PARAMETER 0xc000000d -#define STATUS_NO_SUCH_FILE 0xc000000f -#define STATUS_INVALID_DEVICE_REQUEST 0xc0000010 -#define STATUS_ACCESS_DENIED 0xc0000022 -#define STATUS_OBJECT_NAME_COLLISION 0xc0000035 -#define STATUS_DISK_FULL 0xc000007f -#define STATUS_FILE_IS_A_DIRECTORY 0xc00000ba -#define STATUS_NOT_SUPPORTED 0xc00000bb -#define STATUS_TIMEOUT 0xc0000102 -#define STATUS_NOTIFY_ENUM_DIR 0xc000010c -#define STATUS_CANCELLED 0xc0000120 - -/* RDPDR constants */ -#define RDPDR_MAX_DEVICES 0x10 -#define DEVICE_TYPE_SERIAL 0x01 -#define DEVICE_TYPE_PARALLEL 0x02 -#define DEVICE_TYPE_PRINTER 0x04 -#define DEVICE_TYPE_DISK 0x08 -#define DEVICE_TYPE_SCARD 0x20 - -#define FILE_DIRECTORY_FILE 0x00000001 -#define FILE_NON_DIRECTORY_FILE 0x00000040 -#define FILE_COMPLETE_IF_OPLOCKED 0x00000100 -#define FILE_DELETE_ON_CLOSE 0x00001000 -#define FILE_OPEN_FOR_FREE_SPACE_QUERY 0x00800000 - -/* RDP5 disconnect PDU */ -#define exDiscReasonNoInfo 0x0000 -#define exDiscReasonAPIInitiatedDisconnect 0x0001 -#define exDiscReasonAPIInitiatedLogoff 0x0002 -#define exDiscReasonServerIdleTimeout 0x0003 -#define exDiscReasonServerLogonTimeout 0x0004 -#define exDiscReasonReplacedByOtherConnection 0x0005 -#define exDiscReasonOutOfMemory 0x0006 -#define exDiscReasonServerDeniedConnection 0x0007 -#define exDiscReasonServerDeniedConnectionFips 0x0008 -#define exDiscReasonLicenseInternal 0x0100 -#define exDiscReasonLicenseNoLicenseServer 0x0101 -#define exDiscReasonLicenseNoLicense 0x0102 -#define exDiscReasonLicenseErrClientMsg 0x0103 -#define exDiscReasonLicenseHwidDoesntMatchLicense 0x0104 -#define exDiscReasonLicenseErrClientLicense 0x0105 -#define exDiscReasonLicenseCantFinishProtocol 0x0106 -#define exDiscReasonLicenseClientEndedProtocol 0x0107 -#define exDiscReasonLicenseErrClientEncryption 0x0108 -#define exDiscReasonLicenseCantUpgradeLicense 0x0109 -#define exDiscReasonLicenseNoRemoteConnections 0x010a -#endif - -#if 0 -/* SeamlessRDP constants */ -#define SEAMLESSRDP_NOTYETMAPPED -1 -#define SEAMLESSRDP_NORMAL 0 -#define SEAMLESSRDP_MINIMIZED 1 -#define SEAMLESSRDP_MAXIMIZED 2 -#define SEAMLESSRDP_POSITION_TIMER 200000 - -#define SEAMLESSRDP_CREATE_MODAL 0x0001 - -#define SEAMLESSRDP_HELLO_RECONNECT 0x0001 -#define SEAMLESSRDP_HELLO_HIDDEN 0x0002 -#endif +/* + rdesktop: A Remote Desktop Protocol client. + Miscellaneous protocol constants + Copyright (C) Matthew Chapman 1999-2005 + + 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. + + This 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. + + You 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. +*/ + +/* TCP port for Remote Desktop Protocol */ +#define TCP_PORT_RDP 3389 + +#define DEFAULT_CODEPAGE "UTF-8" +#define WINDOWS_CODEPAGE "UTF-16LE" + +/* ISO PDU codes */ +enum ISO_PDU_CODE +{ + ISO_PDU_CR = 0xE0, /* Connection Request */ + ISO_PDU_CC = 0xD0, /* Connection Confirm */ + ISO_PDU_DR = 0x80, /* Disconnect Request */ + ISO_PDU_DT = 0xF0, /* Data */ + ISO_PDU_ER = 0x70 /* Error */ +}; + +/* MCS PDU codes */ +enum MCS_PDU_TYPE +{ + MCS_EDRQ = 1, /* Erect Domain Request */ + MCS_DPUM = 8, /* Disconnect Provider Ultimatum */ + MCS_AURQ = 10, /* Attach User Request */ + MCS_AUCF = 11, /* Attach User Confirm */ + MCS_CJRQ = 14, /* Channel Join Request */ + MCS_CJCF = 15, /* Channel Join Confirm */ + MCS_SDRQ = 25, /* Send Data Request */ + MCS_SDIN = 26 /* Send Data Indication */ +}; + +#define MCS_CONNECT_INITIAL 0x7f65 +#define MCS_CONNECT_RESPONSE 0x7f66 + +#define BER_TAG_BOOLEAN 1 +#define BER_TAG_INTEGER 2 +#define BER_TAG_OCTET_STRING 4 +#define BER_TAG_RESULT 10 +#define MCS_TAG_DOMAIN_PARAMS 0x30 + +#define MCS_GLOBAL_CHANNEL 1003 +#define MCS_USERCHANNEL_BASE 1001 + +/* RDP secure transport constants */ +#define SEC_RANDOM_SIZE 32 +#define SEC_MODULUS_SIZE 64 +#define SEC_MAX_MODULUS_SIZE 256 +#define SEC_PADDING_SIZE 8 +#define SEC_EXPONENT_SIZE 4 + +#define SEC_CLIENT_RANDOM 0x0001 +#define SEC_ENCRYPT 0x0008 +#define SEC_LOGON_INFO 0x0040 +#define SEC_LICENCE_NEG 0x0080 +#define SEC_REDIRECT_ENCRYPT 0x0C00 + +#define SEC_TAG_SRV_INFO 0x0c01 +#define SEC_TAG_SRV_CRYPT 0x0c02 +#define SEC_TAG_SRV_CHANNELS 0x0c03 + +#define SEC_TAG_CLI_INFO 0xc001 +#define SEC_TAG_CLI_CRYPT 0xc002 +#define SEC_TAG_CLI_CHANNELS 0xc003 +#define SEC_TAG_CLI_4 0xc004 + +#define SEC_TAG_PUBKEY 0x0006 +#define SEC_TAG_KEYSIG 0x0008 + +#define SEC_RSA_MAGIC 0x31415352 /* RSA1 */ + +/* RDP licensing constants */ +#define LICENCE_TOKEN_SIZE 10 +#define LICENCE_HWID_SIZE 20 +#define LICENCE_SIGNATURE_SIZE 16 + +#define LICENCE_TAG_DEMAND 0x01 +#define LICENCE_TAG_AUTHREQ 0x02 +#define LICENCE_TAG_ISSUE 0x03 +#define LICENCE_TAG_REISSUE 0x04 +#define LICENCE_TAG_PRESENT 0x12 +#define LICENCE_TAG_REQUEST 0x13 +#define LICENCE_TAG_AUTHRESP 0x15 +#define LICENCE_TAG_RESULT 0xff + +#define LICENCE_TAG_USER 0x000f +#define LICENCE_TAG_HOST 0x0010 + +/* RDP PDU codes */ +enum RDP_PDU_TYPE +{ + RDP_PDU_DEMAND_ACTIVE = 1, + RDP_PDU_CONFIRM_ACTIVE = 3, + RDP_PDU_REDIRECT = 4, /* MS Server 2003 Session Redirect */ + RDP_PDU_DEACTIVATE = 6, + RDP_PDU_DATA = 7 +}; + +enum RDP_DATA_PDU_TYPE +{ + RDP_DATA_PDU_UPDATE = 2, + RDP_DATA_PDU_CONTROL = 20, + RDP_DATA_PDU_POINTER = 27, + RDP_DATA_PDU_INPUT = 28, + RDP_DATA_PDU_SYNCHRONISE = 31, + RDP_DATA_PDU_BELL = 34, + RDP_DATA_PDU_CLIENT_WINDOW_STATUS = 35, + RDP_DATA_PDU_LOGON = 38, + RDP_DATA_PDU_FONT2 = 39, + RDP_DATA_PDU_KEYBOARD_INDICATORS = 41, + RDP_DATA_PDU_DISCONNECT = 47 +}; + +enum RDP_CONTROL_PDU_TYPE +{ + RDP_CTL_REQUEST_CONTROL = 1, + RDP_CTL_GRANT_CONTROL = 2, + RDP_CTL_DETACH = 3, + RDP_CTL_COOPERATE = 4 +}; + +enum RDP_UPDATE_PDU_TYPE +{ + RDP_UPDATE_ORDERS = 0, + RDP_UPDATE_BITMAP = 1, + RDP_UPDATE_PALETTE = 2, + RDP_UPDATE_SYNCHRONIZE = 3 +}; + +enum RDP_POINTER_PDU_TYPE +{ + RDP_POINTER_SYSTEM = 1, + RDP_POINTER_MOVE = 3, + RDP_POINTER_COLOR = 6, + RDP_POINTER_CACHED = 7 +}; + +enum RDP_SYSTEM_POINTER_TYPE +{ + RDP_NULL_POINTER = 0, + RDP_DEFAULT_POINTER = 0x7F00 +}; + +enum RDP_INPUT_DEVICE +{ + RDP_INPUT_SYNCHRONIZE = 0, + RDP_INPUT_CODEPOINT = 1, + RDP_INPUT_VIRTKEY = 2, + RDP_INPUT_SCANCODE = 4, + RDP_INPUT_MOUSE = 0x8001 +}; + +/* Device flags */ +#define KBD_FLAG_RIGHT 0x0001 +#define KBD_FLAG_EXT 0x0100 +#define KBD_FLAG_QUIET 0x1000 +#define KBD_FLAG_DOWN 0x4000 +#define KBD_FLAG_UP 0x8000 + +/* These are for synchronization; not for keystrokes */ +#define KBD_FLAG_SCROLL 0x0001 +#define KBD_FLAG_NUMLOCK 0x0002 +#define KBD_FLAG_CAPITAL 0x0004 + +/* See T.128 */ +#define RDP_KEYPRESS 0 +#define RDP_KEYRELEASE (KBD_FLAG_DOWN | KBD_FLAG_UP) + +#define MOUSE_FLAG_MOVE 0x0800 +#define MOUSE_FLAG_BUTTON1 0x1000 +#define MOUSE_FLAG_BUTTON2 0x2000 +#define MOUSE_FLAG_BUTTON3 0x4000 +#define MOUSE_FLAG_BUTTON4 0x0280 +#define MOUSE_FLAG_BUTTON5 0x0380 +#define MOUSE_FLAG_DOWN 0x8000 + +/* Raster operation masks */ +#define ROP2_S(rop3) (rop3 & 0xf) +#define ROP2_P(rop3) ((rop3 & 0x3) | ((rop3 & 0x30) >> 2)) + +#define ROP2_COPY 0xc +#define ROP2_XOR 0x6 +#define ROP2_AND 0x8 +#define ROP2_NXOR 0x9 +#define ROP2_OR 0xe + +#define MIX_TRANSPARENT 0 +#define MIX_OPAQUE 1 + +#define TEXT2_VERTICAL 0x04 +#define TEXT2_IMPLICIT_X 0x20 + +#define ALTERNATE 1 +#define WINDING 2 + +/* RDP bitmap cache (version 2) constants */ +#define BMPCACHE2_C0_CELLS 0x78 +#define BMPCACHE2_C1_CELLS 0x78 +#define BMPCACHE2_C2_CELLS 0x150 +#define BMPCACHE2_NUM_PSTCELLS 0x9f6 + +#define PDU_FLAG_FIRST 0x01 +#define PDU_FLAG_LAST 0x02 + +/* RDP capabilities */ +#define RDP_CAPSET_GENERAL 1 /* Maps to generalCapabilitySet in T.128 page 138 */ +#define RDP_CAPLEN_GENERAL 0x18 +#define OS_MAJOR_TYPE_UNIX 4 +#define OS_MINOR_TYPE_XSERVER 7 + +#define RDP_CAPSET_BITMAP 2 +#define RDP_CAPLEN_BITMAP 0x1C + +#define RDP_CAPSET_ORDER 3 +#define RDP_CAPLEN_ORDER 0x58 +#define ORDER_CAP_NEGOTIATE 2 +#define ORDER_CAP_NOSUPPORT 4 + +#define RDP_CAPSET_BMPCACHE 4 +#define RDP_CAPLEN_BMPCACHE 0x28 + +#define RDP_CAPSET_CONTROL 5 +#define RDP_CAPLEN_CONTROL 0x0C + +#define RDP_CAPSET_ACTIVATE 7 +#define RDP_CAPLEN_ACTIVATE 0x0C + +#define RDP_CAPSET_POINTER 8 +#define RDP_CAPLEN_POINTER 0x08 + +#define RDP_CAPSET_SHARE 9 +#define RDP_CAPLEN_SHARE 0x08 + +#define RDP_CAPSET_COLCACHE 10 +#define RDP_CAPLEN_COLCACHE 0x08 + +#define RDP_CAPSET_BMPCACHE2 19 +#define RDP_CAPLEN_BMPCACHE2 0x28 +#define BMPCACHE2_FLAG_PERSIST ((uint32)1<<31) + +#define RDP_SOURCE "MSTSC" + +/* Logon flags */ +#define RDP_LOGON_AUTO 0x0008 +#define RDP_LOGON_NORMAL 0x0033 +#define RDP_LOGON_COMPRESSION 0x0080 /* mppc compression with 8kB histroy buffer */ +#define RDP_LOGON_BLOB 0x0100 +#define RDP_LOGON_COMPRESSION2 0x0200 /* rdp5 mppc compression with 64kB history buffer */ +#define RDP_LOGON_LEAVE_AUDIO 0x2000 + +#define RDP5_DISABLE_NOTHING 0x00 +#define RDP5_NO_WALLPAPER 0x01 +#define RDP5_NO_FULLWINDOWDRAG 0x02 +#define RDP5_NO_MENUANIMATIONS 0x04 +#define RDP5_NO_THEMING 0x08 +#define RDP5_NO_CURSOR_SHADOW 0x20 +#define RDP5_NO_CURSORSETTINGS 0x40 /* disables cursor blinking */ + +/* compression types */ +#define RDP_MPPC_BIG 0x01 +#define RDP_MPPC_COMPRESSED 0x20 +#define RDP_MPPC_RESET 0x40 +#define RDP_MPPC_FLUSH 0x80 +#define RDP_MPPC_DICT_SIZE 65536 + +#define RDP5_COMPRESSED 0x80 + +/* Keymap flags */ +#define MapRightShiftMask (1<<0) +#define MapLeftShiftMask (1<<1) +#define MapShiftMask (MapRightShiftMask | MapLeftShiftMask) + +#define MapRightAltMask (1<<2) +#define MapLeftAltMask (1<<3) +#define MapAltGrMask MapRightAltMask + +#define MapRightCtrlMask (1<<4) +#define MapLeftCtrlMask (1<<5) +#define MapCtrlMask (MapRightCtrlMask | MapLeftCtrlMask) + +#define MapRightWinMask (1<<6) +#define MapLeftWinMask (1<<7) +#define MapWinMask (MapRightWinMask | MapLeftWinMask) + +#define MapNumLockMask (1<<8) +#define MapCapsLockMask (1<<9) + +#define MapLocalStateMask (1<<10) + +#define MapInhibitMask (1<<11) + +#define MASK_ADD_BITS(var, mask) (var |= mask) +#define MASK_REMOVE_BITS(var, mask) (var &= ~mask) +#define MASK_HAS_BITS(var, mask) ((var & mask)>0) +#define MASK_CHANGE_BIT(var, mask, active) (var = ((var & ~mask) | (active ? mask : 0))) + +/* Clipboard constants, "borrowed" from GCC system headers in + the w32 cross compiler */ + +#if 0 +#define CF_TEXT 1 +#define CF_BITMAP 2 +#define CF_METAFILEPICT 3 +#define CF_SYLK 4 +#define CF_DIF 5 +#define CF_TIFF 6 +#define CF_OEMTEXT 7 +#define CF_DIB 8 +#define CF_PALETTE 9 +#define CF_PENDATA 10 +#define CF_RIFF 11 +#define CF_WAVE 12 +#define CF_UNICODETEXT 13 +#define CF_ENHMETAFILE 14 +#define CF_HDROP 15 +#define CF_LOCALE 16 +#define CF_MAX 17 +#define CF_OWNERDISPLAY 128 +#define CF_DSPTEXT 129 +#define CF_DSPBITMAP 130 +#define CF_DSPMETAFILEPICT 131 +#define CF_DSPENHMETAFILE 142 +#define CF_PRIVATEFIRST 512 +#define CF_PRIVATELAST 767 +#define CF_GDIOBJFIRST 768 +#define CF_GDIOBJLAST 1023 + +/* Sound format constants */ +#define WAVE_FORMAT_PCM 1 +#define WAVE_FORMAT_ADPCM 2 +#define WAVE_FORMAT_ALAW 6 +#define WAVE_FORMAT_MULAW 7 + +/* Virtual channel options */ +#define CHANNEL_OPTION_INITIALIZED 0x80000000 +#define CHANNEL_OPTION_ENCRYPT_RDP 0x40000000 +#define CHANNEL_OPTION_COMPRESS_RDP 0x00800000 +#define CHANNEL_OPTION_SHOW_PROTOCOL 0x00200000 + +/* NT status codes for RDPDR */ +#define STATUS_SUCCESS 0x00000000 +#define STATUS_NOT_IMPLEMENTED 0x00000001 +#define STATUS_PENDING 0x00000103 + +#define STATUS_NO_MORE_FILES 0x80000006 +#define STATUS_DEVICE_PAPER_EMPTY 0x8000000e +#define STATUS_DEVICE_POWERED_OFF 0x8000000f +#define STATUS_DEVICE_OFF_LINE 0x80000010 +#define STATUS_DEVICE_BUSY 0x80000011 + +#define STATUS_INVALID_HANDLE 0xc0000008 +#define STATUS_INVALID_PARAMETER 0xc000000d +#define STATUS_NO_SUCH_FILE 0xc000000f +#define STATUS_INVALID_DEVICE_REQUEST 0xc0000010 +#define STATUS_ACCESS_DENIED 0xc0000022 +#define STATUS_OBJECT_NAME_COLLISION 0xc0000035 +#define STATUS_DISK_FULL 0xc000007f +#define STATUS_FILE_IS_A_DIRECTORY 0xc00000ba +#define STATUS_NOT_SUPPORTED 0xc00000bb +#define STATUS_TIMEOUT 0xc0000102 +#define STATUS_NOTIFY_ENUM_DIR 0xc000010c +#define STATUS_CANCELLED 0xc0000120 + +/* RDPDR constants */ +#define RDPDR_MAX_DEVICES 0x10 +#define DEVICE_TYPE_SERIAL 0x01 +#define DEVICE_TYPE_PARALLEL 0x02 +#define DEVICE_TYPE_PRINTER 0x04 +#define DEVICE_TYPE_DISK 0x08 +#define DEVICE_TYPE_SCARD 0x20 + +#define FILE_DIRECTORY_FILE 0x00000001 +#define FILE_NON_DIRECTORY_FILE 0x00000040 +#define FILE_COMPLETE_IF_OPLOCKED 0x00000100 +#define FILE_DELETE_ON_CLOSE 0x00001000 +#define FILE_OPEN_FOR_FREE_SPACE_QUERY 0x00800000 + +/* RDP5 disconnect PDU */ +#define exDiscReasonNoInfo 0x0000 +#define exDiscReasonAPIInitiatedDisconnect 0x0001 +#define exDiscReasonAPIInitiatedLogoff 0x0002 +#define exDiscReasonServerIdleTimeout 0x0003 +#define exDiscReasonServerLogonTimeout 0x0004 +#define exDiscReasonReplacedByOtherConnection 0x0005 +#define exDiscReasonOutOfMemory 0x0006 +#define exDiscReasonServerDeniedConnection 0x0007 +#define exDiscReasonServerDeniedConnectionFips 0x0008 +#define exDiscReasonLicenseInternal 0x0100 +#define exDiscReasonLicenseNoLicenseServer 0x0101 +#define exDiscReasonLicenseNoLicense 0x0102 +#define exDiscReasonLicenseErrClientMsg 0x0103 +#define exDiscReasonLicenseHwidDoesntMatchLicense 0x0104 +#define exDiscReasonLicenseErrClientLicense 0x0105 +#define exDiscReasonLicenseCantFinishProtocol 0x0106 +#define exDiscReasonLicenseClientEndedProtocol 0x0107 +#define exDiscReasonLicenseErrClientEncryption 0x0108 +#define exDiscReasonLicenseCantUpgradeLicense 0x0109 +#define exDiscReasonLicenseNoRemoteConnections 0x010a +#endif + +#if 0 +/* SeamlessRDP constants */ +#define SEAMLESSRDP_NOTYETMAPPED -1 +#define SEAMLESSRDP_NORMAL 0 +#define SEAMLESSRDP_MINIMIZED 1 +#define SEAMLESSRDP_MAXIMIZED 2 +#define SEAMLESSRDP_POSITION_TIMER 200000 + +#define SEAMLESSRDP_CREATE_MODAL 0x0001 + +#define SEAMLESSRDP_HELLO_RECONNECT 0x0001 +#define SEAMLESSRDP_HELLO_HIDDEN 0x0002 +#endif diff --git a/reactos/base/applications/tsclient/rdesktop/disk.c b/reactos/base/applications/tsclient/rdesktop/disk.c index c97e682c596..e7d5f54c4ab 100644 --- a/reactos/base/applications/tsclient/rdesktop/disk.c +++ b/reactos/base/applications/tsclient/rdesktop/disk.c @@ -1,1246 +1,1246 @@ -/* -*- c-basic-offset: 8 -*- - rdesktop: A Remote Desktop Protocol client. - Disk Redirection - Copyright (C) Jeroen Meijer 2003 - - 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. - - This 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. - - You 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. -*/ - -#include "disk.h" - -#include -#include -#include -#include /* open, close */ -#include /* opendir, closedir, readdir */ -#include -#include /* errno */ -#include - -#include -#include /* ctime */ - -#if (defined(HAVE_DIRFD) || (HAVE_DECL_DIRFD == 1)) -#define DIRFD(a) (dirfd(a)) -#else -#define DIRFD(a) ((a)->DIR_FD_MEMBER_NAME) -#endif - -/* TODO: Fix mntent-handling for solaris - * #include */ -#if (defined(HAVE_MNTENT_H) && defined(HAVE_SETMNTENT)) -#include -#define MNTENT_PATH "/etc/mtab" -#define USE_SETMNTENT -#endif - -#ifdef HAVE_SYS_VFS_H -#include -#endif - -#ifdef HAVE_SYS_STATVFS_H -#include -#endif - -#ifdef HAVE_SYS_STATFS_H -#include -#endif - -#ifdef HAVE_SYS_PARAM_H -#include -#endif - -#ifdef HAVE_SYS_MOUNT_H -#include -#endif - -#include "rdesktop.h" - -#ifdef STAT_STATFS3_OSF1 -#define STATFS_FN(path, buf) (statfs(path,buf,sizeof(buf))) -#define STATFS_T statfs -#define USE_STATFS -#endif - -#ifdef STAT_STATVFS -#define STATFS_FN(path, buf) (statvfs(path,buf)) -#define STATFS_T statvfs -#define USE_STATVFS -#endif - -#ifdef STAT_STATVFS64 -#define STATFS_FN(path, buf) (statvfs64(path,buf)) -#define STATFS_T statvfs64 -#define USE_STATVFS -#endif - -#if (defined(STAT_STATFS2_FS_DATA) || defined(STAT_STATFS2_BSIZE) || defined(STAT_STATFS2_FSIZE)) -#define STATFS_FN(path, buf) (statfs(path,buf)) -#define STATFS_T statfs -#define USE_STATFS -#endif - -#ifdef STAT_STATFS4 -#define STATFS_FN(path, buf) (statfs(path,buf,sizeof(buf),0)) -#define STATFS_T statfs -#define USE_STATFS -#endif - -#if ((defined(USE_STATFS) && defined(HAVE_STRUCT_STATFS_F_NAMEMAX)) || (defined(USE_STATVFS) && defined(HAVE_STRUCT_STATVFS_F_NAMEMAX))) -#define F_NAMELEN(buf) ((buf).f_namemax) -#endif - -#if ((defined(USE_STATFS) && defined(HAVE_STRUCT_STATFS_F_NAMELEN)) || (defined(USE_STATVFS) && defined(HAVE_STRUCT_STATVFS_F_NAMELEN))) -#define F_NAMELEN(buf) ((buf).f_namelen) -#endif - -#ifndef F_NAMELEN -#define F_NAMELEN(buf) (255) -#endif - -/* Dummy statfs fallback */ -#ifndef STATFS_T -struct dummy_statfs_t -{ - long f_bfree; - long f_bsize; - long f_blocks; - int f_namelen; - int f_namemax; -}; - -static int -dummy_statfs(struct dummy_statfs_t *buf) -{ - buf->f_blocks = 262144; - buf->f_bfree = 131072; - buf->f_bsize = 512; - buf->f_namelen = 255; - buf->f_namemax = 255; - - return 0; -} - -#define STATFS_T dummy_statfs_t -#define STATFS_FN(path,buf) (dummy_statfs(buf)) -#endif - -typedef struct -{ - char name[PATH_MAX]; - char label[PATH_MAX]; - unsigned long serial; - char type[PATH_MAX]; -} FsInfoType; - -static NTSTATUS NotifyInfo(RDPCLIENT * This, NTHANDLE handle, uint32 info_class, NOTIFY * p); - -static time_t -get_create_time(struct stat *st) -{ - time_t ret, ret1; - - ret = MIN(st->st_ctime, st->st_mtime); - ret1 = MIN(ret, st->st_atime); - - if (ret1 != (time_t) 0) - return ret1; - - return ret; -} - -/* Convert seconds since 1970 to a filetime */ -static void -seconds_since_1970_to_filetime(time_t seconds, uint32 * high, uint32 * low) -{ - unsigned long long ticks; - - ticks = (seconds + 11644473600LL) * 10000000; - *low = (uint32) ticks; - *high = (uint32) (ticks >> 32); -} - -/* Convert seconds since 1970 back to filetime */ -static time_t -convert_1970_to_filetime(uint32 high, uint32 low) -{ - unsigned long long ticks; - time_t val; - - ticks = low + (((unsigned long long) high) << 32); - ticks /= 10000000; - ticks -= 11644473600LL; - - val = (time_t) ticks; - return (val); - -} - -/* A wrapper for ftruncate which supports growing files, even if the - native ftruncate doesn't. This is needed on Linux FAT filesystems, - for example. */ -static int -ftruncate_growable(int fd, off_t length) -{ - int ret; - off_t pos; - static const char zero = 0; - - /* Try the simple method first */ - if ((ret = ftruncate(fd, length)) != -1) - { - return ret; - } - - /* - * Some kind of error. Perhaps we were trying to grow. Retry - * in a safe way. - */ - - /* Get current position */ - if ((pos = lseek(fd, 0, SEEK_CUR)) == -1) - { - perror("lseek"); - return -1; - } - - /* Seek to new size */ - if (lseek(fd, length, SEEK_SET) == -1) - { - perror("lseek"); - return -1; - } - - /* Write a zero */ - if (write(fd, &zero, 1) == -1) - { - perror("write"); - return -1; - } - - /* Truncate. This shouldn't fail. */ - if (ftruncate(fd, length) == -1) - { - perror("ftruncate"); - return -1; - } - - /* Restore position */ - if (lseek(fd, pos, SEEK_SET) == -1) - { - perror("lseek"); - return -1; - } - - return 0; -} - -/* Just like open(2), but if a open with O_EXCL fails, retry with - GUARDED semantics. This might be necessary because some filesystems - (such as NFS filesystems mounted from a unfsd server) doesn't - support O_EXCL. GUARDED semantics are subject to race conditions, - but we can live with that. -*/ -static int -open_weak_exclusive(const char *pathname, int flags, mode_t mode) -{ - int ret; - struct stat statbuf; - - ret = open(pathname, flags, mode); - if (ret != -1 || !(flags & O_EXCL)) - { - /* Success, or not using O_EXCL */ - return ret; - } - - /* An error occured, and we are using O_EXCL. In case the FS - doesn't support O_EXCL, some kind of error will be - returned. Unfortunately, we don't know which one. Linux - 2.6.8 seems to return 524, but I cannot find a documented - #define for this case. So, we'll return only on errors that - we know aren't related to O_EXCL. */ - switch (errno) - { - case EACCES: - case EEXIST: - case EINTR: - case EISDIR: - case ELOOP: - case ENAMETOOLONG: - case ENOENT: - case ENOTDIR: - return ret; - } - - /* Retry with GUARDED semantics */ - if (stat(pathname, &statbuf) != -1) - { - /* File exists */ - errno = EEXIST; - return -1; - } - else - { - return open(pathname, flags & ~O_EXCL, mode); - } -} - -/* Enumeration of devices from rdesktop.c */ -/* returns numer of units found and initialized. */ -/* optarg looks like ':h=/mnt/floppy,b=/mnt/usbdevice1' */ -/* when it arrives to this function. */ -int -disk_enum_devices(RDPCLIENT * This, uint32 * id, char *optarg) -{ - char *pos = optarg; - char *pos2; - int count = 0; - - /* skip the first colon */ - optarg++; - while ((pos = next_arg(optarg, ',')) && *id < RDPDR_MAX_DEVICES) - { - pos2 = next_arg(optarg, '='); - - strncpy(This->rdpdr_device[*id].name, optarg, sizeof(This->rdpdr_device[*id].name) - 1); - if (strlen(optarg) > (sizeof(This->rdpdr_device[*id].name) - 1)) - fprintf(stderr, "share name %s truncated to %s\n", optarg, - This->rdpdr_device[*id].name); - - This->rdpdr_device[*id].local_path = (char *) xmalloc(strlen(pos2) + 1); - strcpy(This->rdpdr_device[*id].local_path, pos2); - This->rdpdr_device[*id].device_type = DEVICE_TYPE_DISK; - count++; - (*id)++; - - optarg = pos; - } - return count; -} - -/* Opens or creates a file or directory */ -static NTSTATUS -disk_create(RDPCLIENT * This, uint32 device_id, uint32 accessmask, uint32 sharemode, uint32 create_disposition, - uint32 flags_and_attributes, char *filename, NTHANDLE * phandle) -{ - NTHANDLE handle; - DIR *dirp; - int flags, mode; - char path[PATH_MAX]; - struct stat filestat; - - handle = 0; - dirp = NULL; - flags = 0; - mode = S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH; - - if (*filename && filename[strlen(filename) - 1] == '/') - filename[strlen(filename) - 1] = 0; - sprintf(path, "%s%s", This->rdpdr_device[device_id].local_path, filename); - - switch (create_disposition) - { - case CREATE_ALWAYS: - - /* Delete existing file/link. */ - unlink(path); - flags |= O_CREAT; - break; - - case CREATE_NEW: - - /* If the file already exists, then fail. */ - flags |= O_CREAT | O_EXCL; - break; - - case OPEN_ALWAYS: - - /* Create if not already exists. */ - flags |= O_CREAT; - break; - - case OPEN_EXISTING: - - /* Default behaviour */ - break; - - case TRUNCATE_EXISTING: - - /* If the file does not exist, then fail. */ - flags |= O_TRUNC; - break; - } - - /*printf("Open: \"%s\" flags: %X, accessmask: %X sharemode: %X create disp: %X\n", path, flags_and_attributes, accessmask, sharemode, create_disposition); */ - - /* Get information about file and set that flag ourselfs */ - if ((stat(path, &filestat) == 0) && (S_ISDIR(filestat.st_mode))) - { - if (flags_and_attributes & FILE_NON_DIRECTORY_FILE) - return STATUS_FILE_IS_A_DIRECTORY; - else - flags_and_attributes |= FILE_DIRECTORY_FILE; - } - - if (flags_and_attributes & FILE_DIRECTORY_FILE) - { - if (flags & O_CREAT) - { - mkdir(path, mode); - } - - dirp = opendir(path); - if (!dirp) - { - switch (errno) - { - case EACCES: - - return STATUS_ACCESS_DENIED; - - case ENOENT: - - return STATUS_NO_SUCH_FILE; - - default: - - perror("opendir"); - return STATUS_NO_SUCH_FILE; - } - } - handle = DIRFD(dirp); - } - else - { - - if (accessmask & GENERIC_ALL - || (accessmask & GENERIC_READ && accessmask & GENERIC_WRITE)) - { - flags |= O_RDWR; - } - else if ((accessmask & GENERIC_WRITE) && !(accessmask & GENERIC_READ)) - { - flags |= O_WRONLY; - } - else - { - flags |= O_RDONLY; - } - - handle = open_weak_exclusive(path, flags, mode); - if (handle == -1) - { - switch (errno) - { - case EISDIR: - - return STATUS_FILE_IS_A_DIRECTORY; - - case EACCES: - - return STATUS_ACCESS_DENIED; - - case ENOENT: - - return STATUS_NO_SUCH_FILE; - case EEXIST: - - return STATUS_OBJECT_NAME_COLLISION; - default: - - perror("open"); - return STATUS_NO_SUCH_FILE; - } - } - - /* all read and writes of files should be non blocking */ - if (fcntl(handle, F_SETFL, O_NONBLOCK) == -1) - perror("fcntl"); - } - - if (handle >= MAX_OPEN_FILES) - { - error("Maximum number of open files (%s) reached. Increase MAX_OPEN_FILES!\n", - handle); - exit(1); - } - - if (dirp) - This->fileinfo[handle].pdir = dirp; - else - This->fileinfo[handle].pdir = NULL; - - This->fileinfo[handle].device_id = device_id; - This->fileinfo[handle].flags_and_attributes = flags_and_attributes; - This->fileinfo[handle].accessmask = accessmask; - strncpy(This->fileinfo[handle].path, path, PATH_MAX - 1); - This->fileinfo[handle].delete_on_close = False; - This->notify_stamp = True; - - *phandle = handle; - return STATUS_SUCCESS; -} - -static NTSTATUS -disk_close(RDPCLIENT * This, NTHANDLE handle) -{ - struct fileinfo *pfinfo; - - pfinfo = &(This->fileinfo[handle]); - - This->notify_stamp = True; - - rdpdr_abort_io(This, handle, 0, STATUS_CANCELLED); - - if (pfinfo->pdir) - { - if (closedir(pfinfo->pdir) < 0) - { - perror("closedir"); - return STATUS_INVALID_HANDLE; - } - - if (pfinfo->delete_on_close) - if (rmdir(pfinfo->path) < 0) - { - perror(pfinfo->path); - return STATUS_ACCESS_DENIED; - } - pfinfo->delete_on_close = False; - } - else - { - if (close(handle) < 0) - { - perror("close"); - return STATUS_INVALID_HANDLE; - } - if (pfinfo->delete_on_close) - if (unlink(pfinfo->path) < 0) - { - perror(pfinfo->path); - return STATUS_ACCESS_DENIED; - } - - pfinfo->delete_on_close = False; - } - - return STATUS_SUCCESS; -} - -static NTSTATUS -disk_read(RDPCLIENT * This, NTHANDLE handle, uint8 * data, uint32 length, uint32 offset, uint32 * result) -{ - int n; - -#if 0 - /* browsing dir ???? */ - /* each request is 24 bytes */ - if (This->fileinfo[handle].flags_and_attributes & FILE_DIRECTORY_FILE) - { - *result = 0; - return STATUS_SUCCESS; - } -#endif - - lseek(handle, offset, SEEK_SET); - - n = read(handle, data, length); - - if (n < 0) - { - *result = 0; - switch (errno) - { - case EISDIR: - /* Implement 24 Byte directory read ?? - with STATUS_NOT_IMPLEMENTED server doesn't read again */ - /* return STATUS_FILE_IS_A_DIRECTORY; */ - return STATUS_NOT_IMPLEMENTED; - default: - perror("read"); - return STATUS_INVALID_PARAMETER; - } - } - - *result = n; - - return STATUS_SUCCESS; -} - -static NTSTATUS -disk_write(RDPCLIENT * This, NTHANDLE handle, uint8 * data, uint32 length, uint32 offset, uint32 * result) -{ - int n; - - lseek(handle, offset, SEEK_SET); - - n = write(handle, data, length); - - if (n < 0) - { - perror("write"); - *result = 0; - switch (errno) - { - case ENOSPC: - return STATUS_DISK_FULL; - default: - return STATUS_ACCESS_DENIED; - } - } - - *result = n; - - return STATUS_SUCCESS; -} - -NTSTATUS -disk_query_information(RDPCLIENT * This, NTHANDLE handle, uint32 info_class, STREAM out) -{ - uint32 file_attributes, ft_high, ft_low; - struct stat filestat; - char *path, *filename; - - path = This->fileinfo[handle].path; - - /* Get information about file */ - if (fstat(handle, &filestat) != 0) - { - perror("stat"); - out_uint8(out, 0); - return STATUS_ACCESS_DENIED; - } - - /* Set file attributes */ - file_attributes = 0; - if (S_ISDIR(filestat.st_mode)) - file_attributes |= FILE_ATTRIBUTE_DIRECTORY; - - filename = 1 + strrchr(path, '/'); - if (filename && filename[0] == '.') - file_attributes |= FILE_ATTRIBUTE_HIDDEN; - - if (!file_attributes) - file_attributes |= FILE_ATTRIBUTE_NORMAL; - - if (!(filestat.st_mode & S_IWUSR)) - file_attributes |= FILE_ATTRIBUTE_READONLY; - - /* Return requested data */ - switch (info_class) - { - case FileBasicInformation: - seconds_since_1970_to_filetime(get_create_time(&filestat), &ft_high, - &ft_low); - out_uint32_le(out, ft_low); /* create_access_time */ - out_uint32_le(out, ft_high); - - seconds_since_1970_to_filetime(filestat.st_atime, &ft_high, &ft_low); - out_uint32_le(out, ft_low); /* last_access_time */ - out_uint32_le(out, ft_high); - - seconds_since_1970_to_filetime(filestat.st_mtime, &ft_high, &ft_low); - out_uint32_le(out, ft_low); /* last_write_time */ - out_uint32_le(out, ft_high); - - seconds_since_1970_to_filetime(filestat.st_ctime, &ft_high, &ft_low); - out_uint32_le(out, ft_low); /* last_change_time */ - out_uint32_le(out, ft_high); - - out_uint32_le(out, file_attributes); - break; - - case FileStandardInformation: - - out_uint32_le(out, filestat.st_size); /* Allocation size */ - out_uint32_le(out, 0); - out_uint32_le(out, filestat.st_size); /* End of file */ - out_uint32_le(out, 0); - out_uint32_le(out, filestat.st_nlink); /* Number of links */ - out_uint8(out, 0); /* Delete pending */ - out_uint8(out, S_ISDIR(filestat.st_mode) ? 1 : 0); /* Directory */ - break; - - case FileObjectIdInformation: - - out_uint32_le(out, file_attributes); /* File Attributes */ - out_uint32_le(out, 0); /* Reparse Tag */ - break; - - default: - - unimpl("IRP Query (File) Information class: 0x%x\n", info_class); - return STATUS_INVALID_PARAMETER; - } - return STATUS_SUCCESS; -} - -NTSTATUS -disk_set_information(RDPCLIENT * This, NTHANDLE handle, uint32 info_class, STREAM in, STREAM out) -{ - uint32 length, file_attributes, ft_high, ft_low, delete_on_close; - char newname[PATH_MAX], fullpath[PATH_MAX]; - struct fileinfo *pfinfo; - int mode; - struct stat filestat; - time_t write_time, change_time, access_time, mod_time; - struct utimbuf tvs; - struct STATFS_T stat_fs; - - pfinfo = &(This->fileinfo[handle]); - This->notify_stamp = True; - - switch (info_class) - { - case FileBasicInformation: - write_time = change_time = access_time = 0; - - in_uint8s(in, 4); /* Handle of root dir? */ - in_uint8s(in, 24); /* unknown */ - - /* CreationTime */ - in_uint32_le(in, ft_low); - in_uint32_le(in, ft_high); - - /* AccessTime */ - in_uint32_le(in, ft_low); - in_uint32_le(in, ft_high); - if (ft_low || ft_high) - access_time = convert_1970_to_filetime(ft_high, ft_low); - - /* WriteTime */ - in_uint32_le(in, ft_low); - in_uint32_le(in, ft_high); - if (ft_low || ft_high) - write_time = convert_1970_to_filetime(ft_high, ft_low); - - /* ChangeTime */ - in_uint32_le(in, ft_low); - in_uint32_le(in, ft_high); - if (ft_low || ft_high) - change_time = convert_1970_to_filetime(ft_high, ft_low); - - in_uint32_le(in, file_attributes); - - if (fstat(handle, &filestat)) - return STATUS_ACCESS_DENIED; - - tvs.modtime = filestat.st_mtime; - tvs.actime = filestat.st_atime; - if (access_time) - tvs.actime = access_time; - - - if (write_time || change_time) - mod_time = MIN(write_time, change_time); - else - mod_time = write_time ? write_time : change_time; - - if (mod_time) - tvs.modtime = mod_time; - - - if (access_time || write_time || change_time) - { -#if WITH_DEBUG_RDP5 - printf("FileBasicInformation access time %s", - ctime(&tvs.actime)); - printf("FileBasicInformation modification time %s", - ctime(&tvs.modtime)); -#endif - if (utime(pfinfo->path, &tvs) && errno != EPERM) - return STATUS_ACCESS_DENIED; - } - - if (!file_attributes) - break; /* not valid */ - - mode = filestat.st_mode; - - if (file_attributes & FILE_ATTRIBUTE_READONLY) - mode &= ~(S_IWUSR | S_IWGRP | S_IWOTH); - else - mode |= S_IWUSR; - - mode &= 0777; -#if WITH_DEBUG_RDP5 - printf("FileBasicInformation set access mode 0%o", mode); -#endif - - if (fchmod(handle, mode)) - return STATUS_ACCESS_DENIED; - - break; - - case FileRenameInformation: - - in_uint8s(in, 4); /* Handle of root dir? */ - in_uint8s(in, 0x1a); /* unknown */ - in_uint32_le(in, length); - - if (length && (length / 2) < 256) - { - rdp_in_unistr(This, in, newname, length); - convert_to_unix_filename(newname); - } - else - { - return STATUS_INVALID_PARAMETER; - } - - sprintf(fullpath, "%s%s", This->rdpdr_device[pfinfo->device_id].local_path, - newname); - - if (rename(pfinfo->path, fullpath) != 0) - { - perror("rename"); - return STATUS_ACCESS_DENIED; - } - break; - - case FileDispositionInformation: - /* As far as I understand it, the correct - thing to do here is to *schedule* a delete, - so it will be deleted when the file is - closed. Subsequent - FileDispositionInformation requests with - DeleteFile set to FALSE should unschedule - the delete. See - http://www.osronline.com/article.cfm?article=245. */ - - in_uint32_le(in, delete_on_close); - - if (delete_on_close || - (pfinfo-> - accessmask & (FILE_DELETE_ON_CLOSE | FILE_COMPLETE_IF_OPLOCKED))) - { - pfinfo->delete_on_close = True; - } - - break; - - case FileAllocationInformation: - /* Fall through to FileEndOfFileInformation, - which uses ftrunc. This is like Samba with - "strict allocation = false", and means that - we won't detect out-of-quota errors, for - example. */ - - case FileEndOfFileInformation: - in_uint8s(in, 28); /* unknown */ - in_uint32_le(in, length); /* file size */ - - /* prevents start of writing if not enough space left on device */ - if (STATFS_FN(This->rdpdr_device[pfinfo->device_id].local_path, &stat_fs) == 0) - if (stat_fs.f_bfree * stat_fs.f_bsize < length) - return STATUS_DISK_FULL; - - if (ftruncate_growable(handle, length) != 0) - { - return STATUS_DISK_FULL; - } - - break; - default: - - unimpl("IRP Set File Information class: 0x%x\n", info_class); - return STATUS_INVALID_PARAMETER; - } - return STATUS_SUCCESS; -} - -NTSTATUS -disk_check_notify(RDPCLIENT * This, NTHANDLE handle) -{ - struct fileinfo *pfinfo; - NTSTATUS status = STATUS_PENDING; - - NOTIFY notify; - - pfinfo = &(This->fileinfo[handle]); - if (!pfinfo->pdir) - return STATUS_INVALID_DEVICE_REQUEST; - - - - status = NotifyInfo(This, handle, pfinfo->info_class, ¬ify); - - if (status != STATUS_PENDING) - return status; - - if (memcmp(&pfinfo->notify, ¬ify, sizeof(NOTIFY))) - { - /*printf("disk_check_notify found changed event\n"); */ - memcpy(&pfinfo->notify, ¬ify, sizeof(NOTIFY)); - status = STATUS_NOTIFY_ENUM_DIR; - } - - return status; - - -} - -NTSTATUS -disk_create_notify(RDPCLIENT * This, NTHANDLE handle, uint32 info_class) -{ - - struct fileinfo *pfinfo; - NTSTATUS ret = STATUS_PENDING; - - /* printf("start disk_create_notify info_class %X\n", info_class); */ - - pfinfo = &(This->fileinfo[handle]); - pfinfo->info_class = info_class; - - ret = NotifyInfo(This, handle, info_class, &pfinfo->notify); - - if (info_class & 0x1000) - { /* ???? */ - if (ret == STATUS_PENDING) - return STATUS_SUCCESS; - } - - /* printf("disk_create_notify: num_entries %d\n", pfinfo->notify.num_entries); */ - - - return ret; - -} - -static NTSTATUS -NotifyInfo(RDPCLIENT * This, NTHANDLE handle, uint32 info_class, NOTIFY * p) -{ - struct fileinfo *pfinfo; - struct stat buf; - struct dirent *dp; - char *fullname; - DIR *dpr; - - pfinfo = &(This->fileinfo[handle]); - if (fstat(handle, &buf) < 0) - { - perror("NotifyInfo"); - return STATUS_ACCESS_DENIED; - } - p->modify_time = buf.st_mtime; - p->status_time = buf.st_ctime; - p->num_entries = 0; - p->total_time = 0; - - - dpr = opendir(pfinfo->path); - if (!dpr) - { - perror("NotifyInfo"); - return STATUS_ACCESS_DENIED; - } - - - while ((dp = readdir(dpr))) - { - if (!strcmp(dp->d_name, ".") || !strcmp(dp->d_name, "..")) - continue; - p->num_entries++; - fullname = (char *) xmalloc(strlen(pfinfo->path) + strlen(dp->d_name) + 2); - sprintf(fullname, "%s/%s", pfinfo->path, dp->d_name); - - if (!stat(fullname, &buf)) - { - p->total_time += (buf.st_mtime + buf.st_ctime); - } - - xfree(fullname); - } - closedir(dpr); - - return STATUS_PENDING; -} - -static FsInfoType * -FsVolumeInfo(char *fpath) -{ - - static FsInfoType info; -#ifdef USE_SETMNTENT - FILE *fdfs; - struct mntent *e; -#endif - - /* initialize */ - memset(&info, 0, sizeof(info)); - strcpy(info.label, "RDESKTOP"); - strcpy(info.type, "RDPFS"); - -#ifdef USE_SETMNTENT - fdfs = setmntent(MNTENT_PATH, "r"); - if (!fdfs) - return &info; - - while ((e = getmntent(fdfs))) - { - if (str_startswith(e->mnt_dir, fpath)) - { - strcpy(info.type, e->mnt_type); - strcpy(info.name, e->mnt_fsname); - if (strstr(e->mnt_opts, "vfat") || strstr(e->mnt_opts, "iso9660")) - { - int fd = open(e->mnt_fsname, O_RDONLY); - if (fd >= 0) - { - unsigned char buf[512]; - memset(buf, 0, sizeof(buf)); - if (strstr(e->mnt_opts, "vfat")) - /*FAT*/ - { - strcpy(info.type, "vfat"); - read(fd, buf, sizeof(buf)); - info.serial = - (buf[42] << 24) + (buf[41] << 16) + - (buf[40] << 8) + buf[39]; - strncpy(info.label, buf + 43, 10); - info.label[10] = '\0'; - } - else if (lseek(fd, 32767, SEEK_SET) >= 0) /* ISO9660 */ - { - read(fd, buf, sizeof(buf)); - strncpy(info.label, buf + 41, 32); - info.label[32] = '\0'; - /* info.Serial = (buf[128]<<24)+(buf[127]<<16)+(buf[126]<<8)+buf[125]; */ - } - close(fd); - } - } - } - } - endmntent(fdfs); -#else - /* initialize */ - memset(&info, 0, sizeof(info)); - strcpy(info.label, "RDESKTOP"); - strcpy(info.type, "RDPFS"); - -#endif - return &info; -} - - -NTSTATUS -disk_query_volume_information(RDPCLIENT * This, NTHANDLE handle, uint32 info_class, STREAM out) -{ - struct STATFS_T stat_fs; - struct fileinfo *pfinfo; - FsInfoType *fsinfo; - - pfinfo = &(This->fileinfo[handle]); - - if (STATFS_FN(pfinfo->path, &stat_fs) != 0) - { - perror("statfs"); - return STATUS_ACCESS_DENIED; - } - - fsinfo = FsVolumeInfo(pfinfo->path); - - switch (info_class) - { - case FileFsVolumeInformation: - - out_uint32_le(out, 0); /* volume creation time low */ - out_uint32_le(out, 0); /* volume creation time high */ - out_uint32_le(out, fsinfo->serial); /* serial */ - - out_uint32_le(out, 2 * strlen(fsinfo->label)); /* length of string */ - - out_uint8(out, 0); /* support objects? */ - rdp_out_unistr(This, out, fsinfo->label, 2 * strlen(fsinfo->label) - 2); - break; - - case FileFsSizeInformation: - - out_uint32_le(out, stat_fs.f_blocks); /* Total allocation units low */ - out_uint32_le(out, 0); /* Total allocation high units */ - out_uint32_le(out, stat_fs.f_bfree); /* Available allocation units */ - out_uint32_le(out, 0); /* Available allowcation units */ - out_uint32_le(out, stat_fs.f_bsize / 0x200); /* Sectors per allocation unit */ - out_uint32_le(out, 0x200); /* Bytes per sector */ - break; - - case FileFsAttributeInformation: - - out_uint32_le(out, FS_CASE_SENSITIVE | FS_CASE_IS_PRESERVED); /* fs attributes */ - out_uint32_le(out, F_NAMELEN(stat_fs)); /* max length of filename */ - - out_uint32_le(out, 2 * strlen(fsinfo->type)); /* length of fs_type */ - rdp_out_unistr(This, out, fsinfo->type, 2 * strlen(fsinfo->type) - 2); - break; - - case FileFsLabelInformation: - case FileFsDeviceInformation: - case FileFsControlInformation: - case FileFsFullSizeInformation: - case FileFsObjectIdInformation: - case FileFsMaximumInformation: - - default: - - unimpl("IRP Query Volume Information class: 0x%x\n", info_class); - return STATUS_INVALID_PARAMETER; - } - return STATUS_SUCCESS; -} - -NTSTATUS -disk_query_directory(RDPCLIENT * This, NTHANDLE handle, uint32 info_class, char *pattern, STREAM out) -{ - uint32 file_attributes, ft_low, ft_high; - char *dirname, fullpath[PATH_MAX]; - DIR *pdir; - struct dirent *pdirent; - struct stat fstat; - struct fileinfo *pfinfo; - - pfinfo = &(This->fileinfo[handle]); - pdir = pfinfo->pdir; - dirname = pfinfo->path; - file_attributes = 0; - - switch (info_class) - { - case FileBothDirectoryInformation: - - /* If a search pattern is received, remember this pattern, and restart search */ - if (pattern[0] != 0) - { - strncpy(pfinfo->pattern, 1 + strrchr(pattern, '/'), PATH_MAX - 1); - rewinddir(pdir); - } - - /* find next dirent matching pattern */ - pdirent = readdir(pdir); - while (pdirent && fnmatch(pfinfo->pattern, pdirent->d_name, 0) != 0) - pdirent = readdir(pdir); - - if (pdirent == NULL) - return STATUS_NO_MORE_FILES; - - /* Get information for directory entry */ - sprintf(fullpath, "%s/%s", dirname, pdirent->d_name); - - if (stat(fullpath, &fstat)) - { - switch (errno) - { - case ENOENT: - case ELOOP: - case EACCES: - /* These are non-fatal errors. */ - memset(&fstat, 0, sizeof(fstat)); - break; - default: - /* Fatal error. By returning STATUS_NO_SUCH_FILE, - the directory list operation will be aborted */ - perror(fullpath); - out_uint8(out, 0); - return STATUS_NO_SUCH_FILE; - } - } - - if (S_ISDIR(fstat.st_mode)) - file_attributes |= FILE_ATTRIBUTE_DIRECTORY; - if (pdirent->d_name[0] == '.') - file_attributes |= FILE_ATTRIBUTE_HIDDEN; - if (!file_attributes) - file_attributes |= FILE_ATTRIBUTE_NORMAL; - if (!(fstat.st_mode & S_IWUSR)) - file_attributes |= FILE_ATTRIBUTE_READONLY; - - /* Return requested information */ - out_uint8s(out, 8); /* unknown zero */ - - seconds_since_1970_to_filetime(get_create_time(&fstat), &ft_high, &ft_low); - out_uint32_le(out, ft_low); /* create time */ - out_uint32_le(out, ft_high); - - seconds_since_1970_to_filetime(fstat.st_atime, &ft_high, &ft_low); - out_uint32_le(out, ft_low); /* last_access_time */ - out_uint32_le(out, ft_high); - - seconds_since_1970_to_filetime(fstat.st_mtime, &ft_high, &ft_low); - out_uint32_le(out, ft_low); /* last_write_time */ - out_uint32_le(out, ft_high); - - seconds_since_1970_to_filetime(fstat.st_ctime, &ft_high, &ft_low); - out_uint32_le(out, ft_low); /* change_write_time */ - out_uint32_le(out, ft_high); - - out_uint32_le(out, fstat.st_size); /* filesize low */ - out_uint32_le(out, 0); /* filesize high */ - out_uint32_le(out, fstat.st_size); /* filesize low */ - out_uint32_le(out, 0); /* filesize high */ - out_uint32_le(out, file_attributes); - out_uint8(out, 2 * strlen(pdirent->d_name) + 2); /* unicode length */ - out_uint8s(out, 7); /* pad? */ - out_uint8(out, 0); /* 8.3 file length */ - out_uint8s(out, 2 * 12); /* 8.3 unicode length */ - rdp_out_unistr(This, out, pdirent->d_name, 2 * strlen(pdirent->d_name)); - break; - - default: - /* FIXME: Support FileDirectoryInformation, - FileFullDirectoryInformation, and - FileNamesInformation */ - - unimpl("IRP Query Directory sub: 0x%x\n", info_class); - return STATUS_INVALID_PARAMETER; - } - - return STATUS_SUCCESS; -} - - - -static NTSTATUS -disk_device_control(RDPCLIENT * This, NTHANDLE handle, uint32 request, STREAM in, STREAM out) -{ - if (((request >> 16) != 20) || ((request >> 16) != 9)) - return STATUS_INVALID_PARAMETER; - - /* extract operation */ - request >>= 2; - request &= 0xfff; - - printf("DISK IOCTL %d\n", request); - - switch (request) - { - case 25: /* ? */ - case 42: /* ? */ - default: - unimpl("DISK IOCTL %d\n", request); - return STATUS_INVALID_PARAMETER; - } - - return STATUS_SUCCESS; -} - -DEVICE_FNS disk_fns = { - disk_create, - disk_close, - disk_read, - disk_write, - disk_device_control /* device_control */ -}; +/* -*- c-basic-offset: 8 -*- + rdesktop: A Remote Desktop Protocol client. + Disk Redirection + Copyright (C) Jeroen Meijer 2003 + + 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. + + This 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. + + You 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. +*/ + +#include "disk.h" + +#include +#include +#include +#include /* open, close */ +#include /* opendir, closedir, readdir */ +#include +#include /* errno */ +#include + +#include +#include /* ctime */ + +#if (defined(HAVE_DIRFD) || (HAVE_DECL_DIRFD == 1)) +#define DIRFD(a) (dirfd(a)) +#else +#define DIRFD(a) ((a)->DIR_FD_MEMBER_NAME) +#endif + +/* TODO: Fix mntent-handling for solaris + * #include */ +#if (defined(HAVE_MNTENT_H) && defined(HAVE_SETMNTENT)) +#include +#define MNTENT_PATH "/etc/mtab" +#define USE_SETMNTENT +#endif + +#ifdef HAVE_SYS_VFS_H +#include +#endif + +#ifdef HAVE_SYS_STATVFS_H +#include +#endif + +#ifdef HAVE_SYS_STATFS_H +#include +#endif + +#ifdef HAVE_SYS_PARAM_H +#include +#endif + +#ifdef HAVE_SYS_MOUNT_H +#include +#endif + +#include "rdesktop.h" + +#ifdef STAT_STATFS3_OSF1 +#define STATFS_FN(path, buf) (statfs(path,buf,sizeof(buf))) +#define STATFS_T statfs +#define USE_STATFS +#endif + +#ifdef STAT_STATVFS +#define STATFS_FN(path, buf) (statvfs(path,buf)) +#define STATFS_T statvfs +#define USE_STATVFS +#endif + +#ifdef STAT_STATVFS64 +#define STATFS_FN(path, buf) (statvfs64(path,buf)) +#define STATFS_T statvfs64 +#define USE_STATVFS +#endif + +#if (defined(STAT_STATFS2_FS_DATA) || defined(STAT_STATFS2_BSIZE) || defined(STAT_STATFS2_FSIZE)) +#define STATFS_FN(path, buf) (statfs(path,buf)) +#define STATFS_T statfs +#define USE_STATFS +#endif + +#ifdef STAT_STATFS4 +#define STATFS_FN(path, buf) (statfs(path,buf,sizeof(buf),0)) +#define STATFS_T statfs +#define USE_STATFS +#endif + +#if ((defined(USE_STATFS) && defined(HAVE_STRUCT_STATFS_F_NAMEMAX)) || (defined(USE_STATVFS) && defined(HAVE_STRUCT_STATVFS_F_NAMEMAX))) +#define F_NAMELEN(buf) ((buf).f_namemax) +#endif + +#if ((defined(USE_STATFS) && defined(HAVE_STRUCT_STATFS_F_NAMELEN)) || (defined(USE_STATVFS) && defined(HAVE_STRUCT_STATVFS_F_NAMELEN))) +#define F_NAMELEN(buf) ((buf).f_namelen) +#endif + +#ifndef F_NAMELEN +#define F_NAMELEN(buf) (255) +#endif + +/* Dummy statfs fallback */ +#ifndef STATFS_T +struct dummy_statfs_t +{ + long f_bfree; + long f_bsize; + long f_blocks; + int f_namelen; + int f_namemax; +}; + +static int +dummy_statfs(struct dummy_statfs_t *buf) +{ + buf->f_blocks = 262144; + buf->f_bfree = 131072; + buf->f_bsize = 512; + buf->f_namelen = 255; + buf->f_namemax = 255; + + return 0; +} + +#define STATFS_T dummy_statfs_t +#define STATFS_FN(path,buf) (dummy_statfs(buf)) +#endif + +typedef struct +{ + char name[PATH_MAX]; + char label[PATH_MAX]; + unsigned long serial; + char type[PATH_MAX]; +} FsInfoType; + +static NTSTATUS NotifyInfo(RDPCLIENT * This, NTHANDLE handle, uint32 info_class, NOTIFY * p); + +static time_t +get_create_time(struct stat *st) +{ + time_t ret, ret1; + + ret = MIN(st->st_ctime, st->st_mtime); + ret1 = MIN(ret, st->st_atime); + + if (ret1 != (time_t) 0) + return ret1; + + return ret; +} + +/* Convert seconds since 1970 to a filetime */ +static void +seconds_since_1970_to_filetime(time_t seconds, uint32 * high, uint32 * low) +{ + unsigned long long ticks; + + ticks = (seconds + 11644473600LL) * 10000000; + *low = (uint32) ticks; + *high = (uint32) (ticks >> 32); +} + +/* Convert seconds since 1970 back to filetime */ +static time_t +convert_1970_to_filetime(uint32 high, uint32 low) +{ + unsigned long long ticks; + time_t val; + + ticks = low + (((unsigned long long) high) << 32); + ticks /= 10000000; + ticks -= 11644473600LL; + + val = (time_t) ticks; + return (val); + +} + +/* A wrapper for ftruncate which supports growing files, even if the + native ftruncate doesn't. This is needed on Linux FAT filesystems, + for example. */ +static int +ftruncate_growable(int fd, off_t length) +{ + int ret; + off_t pos; + static const char zero = 0; + + /* Try the simple method first */ + if ((ret = ftruncate(fd, length)) != -1) + { + return ret; + } + + /* + * Some kind of error. Perhaps we were trying to grow. Retry + * in a safe way. + */ + + /* Get current position */ + if ((pos = lseek(fd, 0, SEEK_CUR)) == -1) + { + perror("lseek"); + return -1; + } + + /* Seek to new size */ + if (lseek(fd, length, SEEK_SET) == -1) + { + perror("lseek"); + return -1; + } + + /* Write a zero */ + if (write(fd, &zero, 1) == -1) + { + perror("write"); + return -1; + } + + /* Truncate. This shouldn't fail. */ + if (ftruncate(fd, length) == -1) + { + perror("ftruncate"); + return -1; + } + + /* Restore position */ + if (lseek(fd, pos, SEEK_SET) == -1) + { + perror("lseek"); + return -1; + } + + return 0; +} + +/* Just like open(2), but if a open with O_EXCL fails, retry with + GUARDED semantics. This might be necessary because some filesystems + (such as NFS filesystems mounted from a unfsd server) doesn't + support O_EXCL. GUARDED semantics are subject to race conditions, + but we can live with that. +*/ +static int +open_weak_exclusive(const char *pathname, int flags, mode_t mode) +{ + int ret; + struct stat statbuf; + + ret = open(pathname, flags, mode); + if (ret != -1 || !(flags & O_EXCL)) + { + /* Success, or not using O_EXCL */ + return ret; + } + + /* An error occured, and we are using O_EXCL. In case the FS + doesn't support O_EXCL, some kind of error will be + returned. Unfortunately, we don't know which one. Linux + 2.6.8 seems to return 524, but I cannot find a documented + #define for this case. So, we'll return only on errors that + we know aren't related to O_EXCL. */ + switch (errno) + { + case EACCES: + case EEXIST: + case EINTR: + case EISDIR: + case ELOOP: + case ENAMETOOLONG: + case ENOENT: + case ENOTDIR: + return ret; + } + + /* Retry with GUARDED semantics */ + if (stat(pathname, &statbuf) != -1) + { + /* File exists */ + errno = EEXIST; + return -1; + } + else + { + return open(pathname, flags & ~O_EXCL, mode); + } +} + +/* Enumeration of devices from rdesktop.c */ +/* returns numer of units found and initialized. */ +/* optarg looks like ':h=/mnt/floppy,b=/mnt/usbdevice1' */ +/* when it arrives to this function. */ +int +disk_enum_devices(RDPCLIENT * This, uint32 * id, char *optarg) +{ + char *pos = optarg; + char *pos2; + int count = 0; + + /* skip the first colon */ + optarg++; + while ((pos = next_arg(optarg, ',')) && *id < RDPDR_MAX_DEVICES) + { + pos2 = next_arg(optarg, '='); + + strncpy(This->rdpdr_device[*id].name, optarg, sizeof(This->rdpdr_device[*id].name) - 1); + if (strlen(optarg) > (sizeof(This->rdpdr_device[*id].name) - 1)) + fprintf(stderr, "share name %s truncated to %s\n", optarg, + This->rdpdr_device[*id].name); + + This->rdpdr_device[*id].local_path = (char *) xmalloc(strlen(pos2) + 1); + strcpy(This->rdpdr_device[*id].local_path, pos2); + This->rdpdr_device[*id].device_type = DEVICE_TYPE_DISK; + count++; + (*id)++; + + optarg = pos; + } + return count; +} + +/* Opens or creates a file or directory */ +static NTSTATUS +disk_create(RDPCLIENT * This, uint32 device_id, uint32 accessmask, uint32 sharemode, uint32 create_disposition, + uint32 flags_and_attributes, char *filename, NTHANDLE * phandle) +{ + NTHANDLE handle; + DIR *dirp; + int flags, mode; + char path[PATH_MAX]; + struct stat filestat; + + handle = 0; + dirp = NULL; + flags = 0; + mode = S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH; + + if (*filename && filename[strlen(filename) - 1] == '/') + filename[strlen(filename) - 1] = 0; + sprintf(path, "%s%s", This->rdpdr_device[device_id].local_path, filename); + + switch (create_disposition) + { + case CREATE_ALWAYS: + + /* Delete existing file/link. */ + unlink(path); + flags |= O_CREAT; + break; + + case CREATE_NEW: + + /* If the file already exists, then fail. */ + flags |= O_CREAT | O_EXCL; + break; + + case OPEN_ALWAYS: + + /* Create if not already exists. */ + flags |= O_CREAT; + break; + + case OPEN_EXISTING: + + /* Default behaviour */ + break; + + case TRUNCATE_EXISTING: + + /* If the file does not exist, then fail. */ + flags |= O_TRUNC; + break; + } + + /*printf("Open: \"%s\" flags: %X, accessmask: %X sharemode: %X create disp: %X\n", path, flags_and_attributes, accessmask, sharemode, create_disposition); */ + + /* Get information about file and set that flag ourselfs */ + if ((stat(path, &filestat) == 0) && (S_ISDIR(filestat.st_mode))) + { + if (flags_and_attributes & FILE_NON_DIRECTORY_FILE) + return STATUS_FILE_IS_A_DIRECTORY; + else + flags_and_attributes |= FILE_DIRECTORY_FILE; + } + + if (flags_and_attributes & FILE_DIRECTORY_FILE) + { + if (flags & O_CREAT) + { + mkdir(path, mode); + } + + dirp = opendir(path); + if (!dirp) + { + switch (errno) + { + case EACCES: + + return STATUS_ACCESS_DENIED; + + case ENOENT: + + return STATUS_NO_SUCH_FILE; + + default: + + perror("opendir"); + return STATUS_NO_SUCH_FILE; + } + } + handle = DIRFD(dirp); + } + else + { + + if (accessmask & GENERIC_ALL + || (accessmask & GENERIC_READ && accessmask & GENERIC_WRITE)) + { + flags |= O_RDWR; + } + else if ((accessmask & GENERIC_WRITE) && !(accessmask & GENERIC_READ)) + { + flags |= O_WRONLY; + } + else + { + flags |= O_RDONLY; + } + + handle = open_weak_exclusive(path, flags, mode); + if (handle == -1) + { + switch (errno) + { + case EISDIR: + + return STATUS_FILE_IS_A_DIRECTORY; + + case EACCES: + + return STATUS_ACCESS_DENIED; + + case ENOENT: + + return STATUS_NO_SUCH_FILE; + case EEXIST: + + return STATUS_OBJECT_NAME_COLLISION; + default: + + perror("open"); + return STATUS_NO_SUCH_FILE; + } + } + + /* all read and writes of files should be non blocking */ + if (fcntl(handle, F_SETFL, O_NONBLOCK) == -1) + perror("fcntl"); + } + + if (handle >= MAX_OPEN_FILES) + { + error("Maximum number of open files (%s) reached. Increase MAX_OPEN_FILES!\n", + handle); + exit(1); + } + + if (dirp) + This->fileinfo[handle].pdir = dirp; + else + This->fileinfo[handle].pdir = NULL; + + This->fileinfo[handle].device_id = device_id; + This->fileinfo[handle].flags_and_attributes = flags_and_attributes; + This->fileinfo[handle].accessmask = accessmask; + strncpy(This->fileinfo[handle].path, path, PATH_MAX - 1); + This->fileinfo[handle].delete_on_close = False; + This->notify_stamp = True; + + *phandle = handle; + return STATUS_SUCCESS; +} + +static NTSTATUS +disk_close(RDPCLIENT * This, NTHANDLE handle) +{ + struct fileinfo *pfinfo; + + pfinfo = &(This->fileinfo[handle]); + + This->notify_stamp = True; + + rdpdr_abort_io(This, handle, 0, STATUS_CANCELLED); + + if (pfinfo->pdir) + { + if (closedir(pfinfo->pdir) < 0) + { + perror("closedir"); + return STATUS_INVALID_HANDLE; + } + + if (pfinfo->delete_on_close) + if (rmdir(pfinfo->path) < 0) + { + perror(pfinfo->path); + return STATUS_ACCESS_DENIED; + } + pfinfo->delete_on_close = False; + } + else + { + if (close(handle) < 0) + { + perror("close"); + return STATUS_INVALID_HANDLE; + } + if (pfinfo->delete_on_close) + if (unlink(pfinfo->path) < 0) + { + perror(pfinfo->path); + return STATUS_ACCESS_DENIED; + } + + pfinfo->delete_on_close = False; + } + + return STATUS_SUCCESS; +} + +static NTSTATUS +disk_read(RDPCLIENT * This, NTHANDLE handle, uint8 * data, uint32 length, uint32 offset, uint32 * result) +{ + int n; + +#if 0 + /* browsing dir ???? */ + /* each request is 24 bytes */ + if (This->fileinfo[handle].flags_and_attributes & FILE_DIRECTORY_FILE) + { + *result = 0; + return STATUS_SUCCESS; + } +#endif + + lseek(handle, offset, SEEK_SET); + + n = read(handle, data, length); + + if (n < 0) + { + *result = 0; + switch (errno) + { + case EISDIR: + /* Implement 24 Byte directory read ?? + with STATUS_NOT_IMPLEMENTED server doesn't read again */ + /* return STATUS_FILE_IS_A_DIRECTORY; */ + return STATUS_NOT_IMPLEMENTED; + default: + perror("read"); + return STATUS_INVALID_PARAMETER; + } + } + + *result = n; + + return STATUS_SUCCESS; +} + +static NTSTATUS +disk_write(RDPCLIENT * This, NTHANDLE handle, uint8 * data, uint32 length, uint32 offset, uint32 * result) +{ + int n; + + lseek(handle, offset, SEEK_SET); + + n = write(handle, data, length); + + if (n < 0) + { + perror("write"); + *result = 0; + switch (errno) + { + case ENOSPC: + return STATUS_DISK_FULL; + default: + return STATUS_ACCESS_DENIED; + } + } + + *result = n; + + return STATUS_SUCCESS; +} + +NTSTATUS +disk_query_information(RDPCLIENT * This, NTHANDLE handle, uint32 info_class, STREAM out) +{ + uint32 file_attributes, ft_high, ft_low; + struct stat filestat; + char *path, *filename; + + path = This->fileinfo[handle].path; + + /* Get information about file */ + if (fstat(handle, &filestat) != 0) + { + perror("stat"); + out_uint8(out, 0); + return STATUS_ACCESS_DENIED; + } + + /* Set file attributes */ + file_attributes = 0; + if (S_ISDIR(filestat.st_mode)) + file_attributes |= FILE_ATTRIBUTE_DIRECTORY; + + filename = 1 + strrchr(path, '/'); + if (filename && filename[0] == '.') + file_attributes |= FILE_ATTRIBUTE_HIDDEN; + + if (!file_attributes) + file_attributes |= FILE_ATTRIBUTE_NORMAL; + + if (!(filestat.st_mode & S_IWUSR)) + file_attributes |= FILE_ATTRIBUTE_READONLY; + + /* Return requested data */ + switch (info_class) + { + case FileBasicInformation: + seconds_since_1970_to_filetime(get_create_time(&filestat), &ft_high, + &ft_low); + out_uint32_le(out, ft_low); /* create_access_time */ + out_uint32_le(out, ft_high); + + seconds_since_1970_to_filetime(filestat.st_atime, &ft_high, &ft_low); + out_uint32_le(out, ft_low); /* last_access_time */ + out_uint32_le(out, ft_high); + + seconds_since_1970_to_filetime(filestat.st_mtime, &ft_high, &ft_low); + out_uint32_le(out, ft_low); /* last_write_time */ + out_uint32_le(out, ft_high); + + seconds_since_1970_to_filetime(filestat.st_ctime, &ft_high, &ft_low); + out_uint32_le(out, ft_low); /* last_change_time */ + out_uint32_le(out, ft_high); + + out_uint32_le(out, file_attributes); + break; + + case FileStandardInformation: + + out_uint32_le(out, filestat.st_size); /* Allocation size */ + out_uint32_le(out, 0); + out_uint32_le(out, filestat.st_size); /* End of file */ + out_uint32_le(out, 0); + out_uint32_le(out, filestat.st_nlink); /* Number of links */ + out_uint8(out, 0); /* Delete pending */ + out_uint8(out, S_ISDIR(filestat.st_mode) ? 1 : 0); /* Directory */ + break; + + case FileObjectIdInformation: + + out_uint32_le(out, file_attributes); /* File Attributes */ + out_uint32_le(out, 0); /* Reparse Tag */ + break; + + default: + + unimpl("IRP Query (File) Information class: 0x%x\n", info_class); + return STATUS_INVALID_PARAMETER; + } + return STATUS_SUCCESS; +} + +NTSTATUS +disk_set_information(RDPCLIENT * This, NTHANDLE handle, uint32 info_class, STREAM in, STREAM out) +{ + uint32 length, file_attributes, ft_high, ft_low, delete_on_close; + char newname[PATH_MAX], fullpath[PATH_MAX]; + struct fileinfo *pfinfo; + int mode; + struct stat filestat; + time_t write_time, change_time, access_time, mod_time; + struct utimbuf tvs; + struct STATFS_T stat_fs; + + pfinfo = &(This->fileinfo[handle]); + This->notify_stamp = True; + + switch (info_class) + { + case FileBasicInformation: + write_time = change_time = access_time = 0; + + in_uint8s(in, 4); /* Handle of root dir? */ + in_uint8s(in, 24); /* unknown */ + + /* CreationTime */ + in_uint32_le(in, ft_low); + in_uint32_le(in, ft_high); + + /* AccessTime */ + in_uint32_le(in, ft_low); + in_uint32_le(in, ft_high); + if (ft_low || ft_high) + access_time = convert_1970_to_filetime(ft_high, ft_low); + + /* WriteTime */ + in_uint32_le(in, ft_low); + in_uint32_le(in, ft_high); + if (ft_low || ft_high) + write_time = convert_1970_to_filetime(ft_high, ft_low); + + /* ChangeTime */ + in_uint32_le(in, ft_low); + in_uint32_le(in, ft_high); + if (ft_low || ft_high) + change_time = convert_1970_to_filetime(ft_high, ft_low); + + in_uint32_le(in, file_attributes); + + if (fstat(handle, &filestat)) + return STATUS_ACCESS_DENIED; + + tvs.modtime = filestat.st_mtime; + tvs.actime = filestat.st_atime; + if (access_time) + tvs.actime = access_time; + + + if (write_time || change_time) + mod_time = MIN(write_time, change_time); + else + mod_time = write_time ? write_time : change_time; + + if (mod_time) + tvs.modtime = mod_time; + + + if (access_time || write_time || change_time) + { +#if WITH_DEBUG_RDP5 + printf("FileBasicInformation access time %s", + ctime(&tvs.actime)); + printf("FileBasicInformation modification time %s", + ctime(&tvs.modtime)); +#endif + if (utime(pfinfo->path, &tvs) && errno != EPERM) + return STATUS_ACCESS_DENIED; + } + + if (!file_attributes) + break; /* not valid */ + + mode = filestat.st_mode; + + if (file_attributes & FILE_ATTRIBUTE_READONLY) + mode &= ~(S_IWUSR | S_IWGRP | S_IWOTH); + else + mode |= S_IWUSR; + + mode &= 0777; +#if WITH_DEBUG_RDP5 + printf("FileBasicInformation set access mode 0%o", mode); +#endif + + if (fchmod(handle, mode)) + return STATUS_ACCESS_DENIED; + + break; + + case FileRenameInformation: + + in_uint8s(in, 4); /* Handle of root dir? */ + in_uint8s(in, 0x1a); /* unknown */ + in_uint32_le(in, length); + + if (length && (length / 2) < 256) + { + rdp_in_unistr(This, in, newname, length); + convert_to_unix_filename(newname); + } + else + { + return STATUS_INVALID_PARAMETER; + } + + sprintf(fullpath, "%s%s", This->rdpdr_device[pfinfo->device_id].local_path, + newname); + + if (rename(pfinfo->path, fullpath) != 0) + { + perror("rename"); + return STATUS_ACCESS_DENIED; + } + break; + + case FileDispositionInformation: + /* As far as I understand it, the correct + thing to do here is to *schedule* a delete, + so it will be deleted when the file is + closed. Subsequent + FileDispositionInformation requests with + DeleteFile set to FALSE should unschedule + the delete. See + http://www.osronline.com/article.cfm?article=245. */ + + in_uint32_le(in, delete_on_close); + + if (delete_on_close || + (pfinfo-> + accessmask & (FILE_DELETE_ON_CLOSE | FILE_COMPLETE_IF_OPLOCKED))) + { + pfinfo->delete_on_close = True; + } + + break; + + case FileAllocationInformation: + /* Fall through to FileEndOfFileInformation, + which uses ftrunc. This is like Samba with + "strict allocation = false", and means that + we won't detect out-of-quota errors, for + example. */ + + case FileEndOfFileInformation: + in_uint8s(in, 28); /* unknown */ + in_uint32_le(in, length); /* file size */ + + /* prevents start of writing if not enough space left on device */ + if (STATFS_FN(This->rdpdr_device[pfinfo->device_id].local_path, &stat_fs) == 0) + if (stat_fs.f_bfree * stat_fs.f_bsize < length) + return STATUS_DISK_FULL; + + if (ftruncate_growable(handle, length) != 0) + { + return STATUS_DISK_FULL; + } + + break; + default: + + unimpl("IRP Set File Information class: 0x%x\n", info_class); + return STATUS_INVALID_PARAMETER; + } + return STATUS_SUCCESS; +} + +NTSTATUS +disk_check_notify(RDPCLIENT * This, NTHANDLE handle) +{ + struct fileinfo *pfinfo; + NTSTATUS status = STATUS_PENDING; + + NOTIFY notify; + + pfinfo = &(This->fileinfo[handle]); + if (!pfinfo->pdir) + return STATUS_INVALID_DEVICE_REQUEST; + + + + status = NotifyInfo(This, handle, pfinfo->info_class, ¬ify); + + if (status != STATUS_PENDING) + return status; + + if (memcmp(&pfinfo->notify, ¬ify, sizeof(NOTIFY))) + { + /*printf("disk_check_notify found changed event\n"); */ + memcpy(&pfinfo->notify, ¬ify, sizeof(NOTIFY)); + status = STATUS_NOTIFY_ENUM_DIR; + } + + return status; + + +} + +NTSTATUS +disk_create_notify(RDPCLIENT * This, NTHANDLE handle, uint32 info_class) +{ + + struct fileinfo *pfinfo; + NTSTATUS ret = STATUS_PENDING; + + /* printf("start disk_create_notify info_class %X\n", info_class); */ + + pfinfo = &(This->fileinfo[handle]); + pfinfo->info_class = info_class; + + ret = NotifyInfo(This, handle, info_class, &pfinfo->notify); + + if (info_class & 0x1000) + { /* ???? */ + if (ret == STATUS_PENDING) + return STATUS_SUCCESS; + } + + /* printf("disk_create_notify: num_entries %d\n", pfinfo->notify.num_entries); */ + + + return ret; + +} + +static NTSTATUS +NotifyInfo(RDPCLIENT * This, NTHANDLE handle, uint32 info_class, NOTIFY * p) +{ + struct fileinfo *pfinfo; + struct stat buf; + struct dirent *dp; + char *fullname; + DIR *dpr; + + pfinfo = &(This->fileinfo[handle]); + if (fstat(handle, &buf) < 0) + { + perror("NotifyInfo"); + return STATUS_ACCESS_DENIED; + } + p->modify_time = buf.st_mtime; + p->status_time = buf.st_ctime; + p->num_entries = 0; + p->total_time = 0; + + + dpr = opendir(pfinfo->path); + if (!dpr) + { + perror("NotifyInfo"); + return STATUS_ACCESS_DENIED; + } + + + while ((dp = readdir(dpr))) + { + if (!strcmp(dp->d_name, ".") || !strcmp(dp->d_name, "..")) + continue; + p->num_entries++; + fullname = (char *) xmalloc(strlen(pfinfo->path) + strlen(dp->d_name) + 2); + sprintf(fullname, "%s/%s", pfinfo->path, dp->d_name); + + if (!stat(fullname, &buf)) + { + p->total_time += (buf.st_mtime + buf.st_ctime); + } + + xfree(fullname); + } + closedir(dpr); + + return STATUS_PENDING; +} + +static FsInfoType * +FsVolumeInfo(char *fpath) +{ + + static FsInfoType info; +#ifdef USE_SETMNTENT + FILE *fdfs; + struct mntent *e; +#endif + + /* initialize */ + memset(&info, 0, sizeof(info)); + strcpy(info.label, "RDESKTOP"); + strcpy(info.type, "RDPFS"); + +#ifdef USE_SETMNTENT + fdfs = setmntent(MNTENT_PATH, "r"); + if (!fdfs) + return &info; + + while ((e = getmntent(fdfs))) + { + if (str_startswith(e->mnt_dir, fpath)) + { + strcpy(info.type, e->mnt_type); + strcpy(info.name, e->mnt_fsname); + if (strstr(e->mnt_opts, "vfat") || strstr(e->mnt_opts, "iso9660")) + { + int fd = open(e->mnt_fsname, O_RDONLY); + if (fd >= 0) + { + unsigned char buf[512]; + memset(buf, 0, sizeof(buf)); + if (strstr(e->mnt_opts, "vfat")) + /*FAT*/ + { + strcpy(info.type, "vfat"); + read(fd, buf, sizeof(buf)); + info.serial = + (buf[42] << 24) + (buf[41] << 16) + + (buf[40] << 8) + buf[39]; + strncpy(info.label, buf + 43, 10); + info.label[10] = '\0'; + } + else if (lseek(fd, 32767, SEEK_SET) >= 0) /* ISO9660 */ + { + read(fd, buf, sizeof(buf)); + strncpy(info.label, buf + 41, 32); + info.label[32] = '\0'; + /* info.Serial = (buf[128]<<24)+(buf[127]<<16)+(buf[126]<<8)+buf[125]; */ + } + close(fd); + } + } + } + } + endmntent(fdfs); +#else + /* initialize */ + memset(&info, 0, sizeof(info)); + strcpy(info.label, "RDESKTOP"); + strcpy(info.type, "RDPFS"); + +#endif + return &info; +} + + +NTSTATUS +disk_query_volume_information(RDPCLIENT * This, NTHANDLE handle, uint32 info_class, STREAM out) +{ + struct STATFS_T stat_fs; + struct fileinfo *pfinfo; + FsInfoType *fsinfo; + + pfinfo = &(This->fileinfo[handle]); + + if (STATFS_FN(pfinfo->path, &stat_fs) != 0) + { + perror("statfs"); + return STATUS_ACCESS_DENIED; + } + + fsinfo = FsVolumeInfo(pfinfo->path); + + switch (info_class) + { + case FileFsVolumeInformation: + + out_uint32_le(out, 0); /* volume creation time low */ + out_uint32_le(out, 0); /* volume creation time high */ + out_uint32_le(out, fsinfo->serial); /* serial */ + + out_uint32_le(out, 2 * strlen(fsinfo->label)); /* length of string */ + + out_uint8(out, 0); /* support objects? */ + rdp_out_unistr(This, out, fsinfo->label, 2 * strlen(fsinfo->label) - 2); + break; + + case FileFsSizeInformation: + + out_uint32_le(out, stat_fs.f_blocks); /* Total allocation units low */ + out_uint32_le(out, 0); /* Total allocation high units */ + out_uint32_le(out, stat_fs.f_bfree); /* Available allocation units */ + out_uint32_le(out, 0); /* Available allowcation units */ + out_uint32_le(out, stat_fs.f_bsize / 0x200); /* Sectors per allocation unit */ + out_uint32_le(out, 0x200); /* Bytes per sector */ + break; + + case FileFsAttributeInformation: + + out_uint32_le(out, FS_CASE_SENSITIVE | FS_CASE_IS_PRESERVED); /* fs attributes */ + out_uint32_le(out, F_NAMELEN(stat_fs)); /* max length of filename */ + + out_uint32_le(out, 2 * strlen(fsinfo->type)); /* length of fs_type */ + rdp_out_unistr(This, out, fsinfo->type, 2 * strlen(fsinfo->type) - 2); + break; + + case FileFsLabelInformation: + case FileFsDeviceInformation: + case FileFsControlInformation: + case FileFsFullSizeInformation: + case FileFsObjectIdInformation: + case FileFsMaximumInformation: + + default: + + unimpl("IRP Query Volume Information class: 0x%x\n", info_class); + return STATUS_INVALID_PARAMETER; + } + return STATUS_SUCCESS; +} + +NTSTATUS +disk_query_directory(RDPCLIENT * This, NTHANDLE handle, uint32 info_class, char *pattern, STREAM out) +{ + uint32 file_attributes, ft_low, ft_high; + char *dirname, fullpath[PATH_MAX]; + DIR *pdir; + struct dirent *pdirent; + struct stat fstat; + struct fileinfo *pfinfo; + + pfinfo = &(This->fileinfo[handle]); + pdir = pfinfo->pdir; + dirname = pfinfo->path; + file_attributes = 0; + + switch (info_class) + { + case FileBothDirectoryInformation: + + /* If a search pattern is received, remember this pattern, and restart search */ + if (pattern[0] != 0) + { + strncpy(pfinfo->pattern, 1 + strrchr(pattern, '/'), PATH_MAX - 1); + rewinddir(pdir); + } + + /* find next dirent matching pattern */ + pdirent = readdir(pdir); + while (pdirent && fnmatch(pfinfo->pattern, pdirent->d_name, 0) != 0) + pdirent = readdir(pdir); + + if (pdirent == NULL) + return STATUS_NO_MORE_FILES; + + /* Get information for directory entry */ + sprintf(fullpath, "%s/%s", dirname, pdirent->d_name); + + if (stat(fullpath, &fstat)) + { + switch (errno) + { + case ENOENT: + case ELOOP: + case EACCES: + /* These are non-fatal errors. */ + memset(&fstat, 0, sizeof(fstat)); + break; + default: + /* Fatal error. By returning STATUS_NO_SUCH_FILE, + the directory list operation will be aborted */ + perror(fullpath); + out_uint8(out, 0); + return STATUS_NO_SUCH_FILE; + } + } + + if (S_ISDIR(fstat.st_mode)) + file_attributes |= FILE_ATTRIBUTE_DIRECTORY; + if (pdirent->d_name[0] == '.') + file_attributes |= FILE_ATTRIBUTE_HIDDEN; + if (!file_attributes) + file_attributes |= FILE_ATTRIBUTE_NORMAL; + if (!(fstat.st_mode & S_IWUSR)) + file_attributes |= FILE_ATTRIBUTE_READONLY; + + /* Return requested information */ + out_uint8s(out, 8); /* unknown zero */ + + seconds_since_1970_to_filetime(get_create_time(&fstat), &ft_high, &ft_low); + out_uint32_le(out, ft_low); /* create time */ + out_uint32_le(out, ft_high); + + seconds_since_1970_to_filetime(fstat.st_atime, &ft_high, &ft_low); + out_uint32_le(out, ft_low); /* last_access_time */ + out_uint32_le(out, ft_high); + + seconds_since_1970_to_filetime(fstat.st_mtime, &ft_high, &ft_low); + out_uint32_le(out, ft_low); /* last_write_time */ + out_uint32_le(out, ft_high); + + seconds_since_1970_to_filetime(fstat.st_ctime, &ft_high, &ft_low); + out_uint32_le(out, ft_low); /* change_write_time */ + out_uint32_le(out, ft_high); + + out_uint32_le(out, fstat.st_size); /* filesize low */ + out_uint32_le(out, 0); /* filesize high */ + out_uint32_le(out, fstat.st_size); /* filesize low */ + out_uint32_le(out, 0); /* filesize high */ + out_uint32_le(out, file_attributes); + out_uint8(out, 2 * strlen(pdirent->d_name) + 2); /* unicode length */ + out_uint8s(out, 7); /* pad? */ + out_uint8(out, 0); /* 8.3 file length */ + out_uint8s(out, 2 * 12); /* 8.3 unicode length */ + rdp_out_unistr(This, out, pdirent->d_name, 2 * strlen(pdirent->d_name)); + break; + + default: + /* FIXME: Support FileDirectoryInformation, + FileFullDirectoryInformation, and + FileNamesInformation */ + + unimpl("IRP Query Directory sub: 0x%x\n", info_class); + return STATUS_INVALID_PARAMETER; + } + + return STATUS_SUCCESS; +} + + + +static NTSTATUS +disk_device_control(RDPCLIENT * This, NTHANDLE handle, uint32 request, STREAM in, STREAM out) +{ + if (((request >> 16) != 20) || ((request >> 16) != 9)) + return STATUS_INVALID_PARAMETER; + + /* extract operation */ + request >>= 2; + request &= 0xfff; + + printf("DISK IOCTL %d\n", request); + + switch (request) + { + case 25: /* ? */ + case 42: /* ? */ + default: + unimpl("DISK IOCTL %d\n", request); + return STATUS_INVALID_PARAMETER; + } + + return STATUS_SUCCESS; +} + +DEVICE_FNS disk_fns = { + disk_create, + disk_close, + disk_read, + disk_write, + disk_device_control /* device_control */ +}; diff --git a/reactos/base/applications/tsclient/rdesktop/disk.h b/reactos/base/applications/tsclient/rdesktop/disk.h index c7f74445fdf..e3a40675858 100644 --- a/reactos/base/applications/tsclient/rdesktop/disk.h +++ b/reactos/base/applications/tsclient/rdesktop/disk.h @@ -1,139 +1,139 @@ -/* - rdesktop: A Remote Desktop Protocol client. - Disk Redirection definitions - Copyright (C) Jeroen Meijer 2003 - Copyright (C) Peter Astrand 2004 - - 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. - - This 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. - - You 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. -*/ - -#define FILE_ATTRIBUTE_READONLY 0x00000001 -#define FILE_ATTRIBUTE_HIDDEN 0x00000002 -#define FILE_ATTRIBUTE_SYSTEM 0x00000004 -#define FILE_ATTRIBUTE_DIRECTORY 0x00000010 -#define FILE_ATTRIBUTE_ARCHIVE 0x00000020 -#define FILE_ATTRIBUTE_DEVICE 0x00000040 -#define FILE_ATTRIBUTE_UNKNOWNXXX0 0x00000060 /* ??? ACTION i.e. 0x860 == compress this file ? */ -#define FILE_ATTRIBUTE_NORMAL 0x00000080 -#define FILE_ATTRIBUTE_TEMPORARY 0x00000100 -#define FILE_ATTRIBUTE_SPARSE_FILE 0x00000200 -#define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400 -#define FILE_ATTRIBUTE_COMPRESSED 0x00000800 -#define FILE_ATTRIBUTE_OFFLINE 0x00001000 -#define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000 -#define FILE_ATTRIBUTE_ENCRYPTED 0x00004000 - -#define FILE_FLAG_OPEN_NO_RECALL 0x00100000 -#define FILE_FLAG_OPEN_REPARSE_POINT 0x00200000 -#define FILE_FLAG_POSIX_SEMANTICS 0x01000000 -#define FILE_FLAG_BACKUP_SEMANTICS 0x02000000 /* sometimes used to create a directory */ -#define FILE_FLAG_DELETE_ON_CLOSE 0x04000000 -#define FILE_FLAG_SEQUENTIAL_SCAN 0x08000000 -#define FILE_FLAG_RANDOM_ACCESS 0x10000000 -#define FILE_FLAG_NO_BUFFERING 0x20000000 -#define FILE_FLAG_OVERLAPPED 0x40000000 -#define FILE_FLAG_WRITE_THROUGH 0x80000000 - -#define FILE_SHARE_READ 0x01 -#define FILE_SHARE_WRITE 0x02 -#define FILE_SHARE_DELETE 0x04 - -#define FILE_BASIC_INFORMATION 0x04 -#define FILE_STANDARD_INFORMATION 0x05 - -#define FS_CASE_SENSITIVE 0x00000001 -#define FS_CASE_IS_PRESERVED 0x00000002 -#define FS_UNICODE_STORED_ON_DISK 0x00000004 -#define FS_PERSISTENT_ACLS 0x00000008 -#define FS_FILE_COMPRESSION 0x00000010 -#define FS_VOLUME_QUOTAS 0x00000020 -#define FS_SUPPORTS_SPARSE_FILES 0x00000040 -#define FS_SUPPORTS_REPARSE_POINTS 0x00000080 -#define FS_SUPPORTS_REMOTE_STORAGE 0X00000100 -#define FS_VOL_IS_COMPRESSED 0x00008000 -#define FILE_READ_ONLY_VOLUME 0x00080000 - -#define OPEN_EXISTING 1 -#define CREATE_NEW 2 -#define OPEN_ALWAYS 3 -#define TRUNCATE_EXISTING 4 -#define CREATE_ALWAYS 5 - -#define GENERIC_READ 0x80000000 -#define GENERIC_WRITE 0x40000000 -#define GENERIC_EXECUTE 0x20000000 -#define GENERIC_ALL 0x10000000 - -#define ERROR_FILE_NOT_FOUND 2L -#define ERROR_ALREADY_EXISTS 183L - -typedef enum _FILE_INFORMATION_CLASS -{ - FileDirectoryInformation = 1, - FileFullDirectoryInformation, - FileBothDirectoryInformation, - FileBasicInformation, - FileStandardInformation, - FileInternalInformation, - FileEaInformation, - FileAccessInformation, - FileNameInformation, - FileRenameInformation, - FileLinkInformation, - FileNamesInformation, - FileDispositionInformation, - FilePositionInformation, - FileFullEaInformation, - FileModeInformation, - FileAlignmentInformation, - FileAllInformation, - FileAllocationInformation, - FileEndOfFileInformation, - FileAlternateNameInformation, - FileStreamInformation, - FilePipeInformation, - FilePipeLocalInformation, - FilePipeRemoteInformation, - FileMailslotQueryInformation, - FileMailslotSetInformation, - FileCompressionInformation, - FileCopyOnWriteInformation, - FileCompletionInformation, - FileMoveClusterInformation, - FileOleClassIdInformation, - FileOleStateBitsInformation, - FileNetworkOpenInformation, - FileObjectIdInformation, - FileOleAllInformation, - FileOleDirectoryInformation, - FileContentIndexInformation, - FileInheritContentIndexInformation, - FileOleInformation, - FileMaximumInformation -} FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS; - -typedef enum _FSINFOCLASS -{ - FileFsVolumeInformation = 1, - FileFsLabelInformation, - FileFsSizeInformation, - FileFsDeviceInformation, - FileFsAttributeInformation, - FileFsControlInformation, - FileFsFullSizeInformation, - FileFsObjectIdInformation, - FileFsDriverPathInformation, - FileFsMaximumInformation -} FS_INFORMATION_CLASS, *PFS_INFORMATION_CLASS; +/* + rdesktop: A Remote Desktop Protocol client. + Disk Redirection definitions + Copyright (C) Jeroen Meijer 2003 + Copyright (C) Peter Astrand 2004 + + 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. + + This 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. + + You 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. +*/ + +#define FILE_ATTRIBUTE_READONLY 0x00000001 +#define FILE_ATTRIBUTE_HIDDEN 0x00000002 +#define FILE_ATTRIBUTE_SYSTEM 0x00000004 +#define FILE_ATTRIBUTE_DIRECTORY 0x00000010 +#define FILE_ATTRIBUTE_ARCHIVE 0x00000020 +#define FILE_ATTRIBUTE_DEVICE 0x00000040 +#define FILE_ATTRIBUTE_UNKNOWNXXX0 0x00000060 /* ??? ACTION i.e. 0x860 == compress this file ? */ +#define FILE_ATTRIBUTE_NORMAL 0x00000080 +#define FILE_ATTRIBUTE_TEMPORARY 0x00000100 +#define FILE_ATTRIBUTE_SPARSE_FILE 0x00000200 +#define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400 +#define FILE_ATTRIBUTE_COMPRESSED 0x00000800 +#define FILE_ATTRIBUTE_OFFLINE 0x00001000 +#define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000 +#define FILE_ATTRIBUTE_ENCRYPTED 0x00004000 + +#define FILE_FLAG_OPEN_NO_RECALL 0x00100000 +#define FILE_FLAG_OPEN_REPARSE_POINT 0x00200000 +#define FILE_FLAG_POSIX_SEMANTICS 0x01000000 +#define FILE_FLAG_BACKUP_SEMANTICS 0x02000000 /* sometimes used to create a directory */ +#define FILE_FLAG_DELETE_ON_CLOSE 0x04000000 +#define FILE_FLAG_SEQUENTIAL_SCAN 0x08000000 +#define FILE_FLAG_RANDOM_ACCESS 0x10000000 +#define FILE_FLAG_NO_BUFFERING 0x20000000 +#define FILE_FLAG_OVERLAPPED 0x40000000 +#define FILE_FLAG_WRITE_THROUGH 0x80000000 + +#define FILE_SHARE_READ 0x01 +#define FILE_SHARE_WRITE 0x02 +#define FILE_SHARE_DELETE 0x04 + +#define FILE_BASIC_INFORMATION 0x04 +#define FILE_STANDARD_INFORMATION 0x05 + +#define FS_CASE_SENSITIVE 0x00000001 +#define FS_CASE_IS_PRESERVED 0x00000002 +#define FS_UNICODE_STORED_ON_DISK 0x00000004 +#define FS_PERSISTENT_ACLS 0x00000008 +#define FS_FILE_COMPRESSION 0x00000010 +#define FS_VOLUME_QUOTAS 0x00000020 +#define FS_SUPPORTS_SPARSE_FILES 0x00000040 +#define FS_SUPPORTS_REPARSE_POINTS 0x00000080 +#define FS_SUPPORTS_REMOTE_STORAGE 0X00000100 +#define FS_VOL_IS_COMPRESSED 0x00008000 +#define FILE_READ_ONLY_VOLUME 0x00080000 + +#define OPEN_EXISTING 1 +#define CREATE_NEW 2 +#define OPEN_ALWAYS 3 +#define TRUNCATE_EXISTING 4 +#define CREATE_ALWAYS 5 + +#define GENERIC_READ 0x80000000 +#define GENERIC_WRITE 0x40000000 +#define GENERIC_EXECUTE 0x20000000 +#define GENERIC_ALL 0x10000000 + +#define ERROR_FILE_NOT_FOUND 2L +#define ERROR_ALREADY_EXISTS 183L + +typedef enum _FILE_INFORMATION_CLASS +{ + FileDirectoryInformation = 1, + FileFullDirectoryInformation, + FileBothDirectoryInformation, + FileBasicInformation, + FileStandardInformation, + FileInternalInformation, + FileEaInformation, + FileAccessInformation, + FileNameInformation, + FileRenameInformation, + FileLinkInformation, + FileNamesInformation, + FileDispositionInformation, + FilePositionInformation, + FileFullEaInformation, + FileModeInformation, + FileAlignmentInformation, + FileAllInformation, + FileAllocationInformation, + FileEndOfFileInformation, + FileAlternateNameInformation, + FileStreamInformation, + FilePipeInformation, + FilePipeLocalInformation, + FilePipeRemoteInformation, + FileMailslotQueryInformation, + FileMailslotSetInformation, + FileCompressionInformation, + FileCopyOnWriteInformation, + FileCompletionInformation, + FileMoveClusterInformation, + FileOleClassIdInformation, + FileOleStateBitsInformation, + FileNetworkOpenInformation, + FileObjectIdInformation, + FileOleAllInformation, + FileOleDirectoryInformation, + FileContentIndexInformation, + FileInheritContentIndexInformation, + FileOleInformation, + FileMaximumInformation +} FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS; + +typedef enum _FSINFOCLASS +{ + FileFsVolumeInformation = 1, + FileFsLabelInformation, + FileFsSizeInformation, + FileFsDeviceInformation, + FileFsAttributeInformation, + FileFsControlInformation, + FileFsFullSizeInformation, + FileFsObjectIdInformation, + FileFsDriverPathInformation, + FileFsMaximumInformation +} FS_INFORMATION_CLASS, *PFS_INFORMATION_CLASS; diff --git a/reactos/base/applications/tsclient/rdesktop/doc/AUTHORS b/reactos/base/applications/tsclient/rdesktop/doc/AUTHORS index 047cd0fc18d..a0824584e49 100644 --- a/reactos/base/applications/tsclient/rdesktop/doc/AUTHORS +++ b/reactos/base/applications/tsclient/rdesktop/doc/AUTHORS @@ -1,14 +1,14 @@ -This is an attempt at a list of people who have made significant -contributions to the code. If you have been unintentionally omitted -please let one of the team members know. - -Matt Chapman -Peter Kallden -Hugo Trippaers -Jay Sorg -Peter Еstrand -Michal Mihalik -Norbert Federa -Erik Forsberg -Michael Gernoth -Jeroen Meijer +This is an attempt at a list of people who have made significant +contributions to the code. If you have been unintentionally omitted +please let one of the team members know. + +Matt Chapman +Peter Kallden +Hugo Trippaers +Jay Sorg +Peter Еstrand +Michal Mihalik +Norbert Federa +Erik Forsberg +Michael Gernoth +Jeroen Meijer diff --git a/reactos/base/applications/tsclient/rdesktop/doc/ChangeLog b/reactos/base/applications/tsclient/rdesktop/doc/ChangeLog index 4119619d462..4c096a03e43 100644 --- a/reactos/base/applications/tsclient/rdesktop/doc/ChangeLog +++ b/reactos/base/applications/tsclient/rdesktop/doc/ChangeLog @@ -1,86 +1,86 @@ -rdesktop (1.?.?) - * SeamlessRDP - seamless windows support - * Keymap fixes - * Fix connection issues with Windows XP RTM - * Keyboard handling improvements and fixes - * SGI/Irix sound-driver fixes - * Support for clipboard INCR protocol - * Session Directory support (patch from Brian Chapeau ) - * Support for long filenames on redirected drives - * XOR ellipse drawing fix - * Clipboard unicode support (Ilya Konstantinov) - * Refactoring of color depth code (Ilya Konstantinov) - -rdesktop (1.4.1) - * persistent bitmap cache optimisations - * support for more RDP-orders (ellipse, polygon) - * libao sound-driver (for Mac OSX and others) - * Unicode support for transmitted strings/filenames - * Added korean keymap - * Xembed fixes to work with krdc correctly - * Portability fixes - * Support for RDP-compression (all bpps) - * process RDP recv queue if send queue is full (Debian bug #246461) - * SGI/Irix sound-driver fixes - - -- Michael Gernoth Sun, 8 May 2005 19:55:35 +0200 (CEST) - -rdesktop (1.4.0) - * Basic disk-, parallel-, printer- and serial-redirection - * Fix timezone-redirection - * Backing-store fixes - * Fix client-IP sent to TS - * XEmbed support for embedding rdesktop in other applications (KRDC) - * Support for setting the RDP5 experience - * Keyboard and keymap fixes - * Performance improvements - * Report disconnect-reason - * Support for RDP-compression (currently only for 8bpp) - * Support for persistent bitmap caching - * Sound-driver for SGI/Irix - - -- Michael Gernoth Sun, 6 Mar 2005 22:09:55 +0100 (CET) - -rdesktop (1.3.1) - * Crypto fixes for RDP5 - * Keyboard and keymap fixes - * some endianess fixes for high color - * portability enhancements - - -- Matthew Chapman Tue, 21 Jan 2004 20:34 - -rdesktop (1.3.0) - - * RDP5 - * 15, 16 and 24 bit color depths - * Basic clipboard redirection - * Sound - * IPv6 - * Attaching to console on Windows 2003 - - -- Peter Astrand Wed, 29 Oct 2003 16:40:58 +0100 (CET) - -rdesktop (1.2.0) - - * new - more portable - key mapping code - * support for "high" (128-bit) encryption - * toggling out of full-screen mode with Ctrl-Alt-Enter - * a few extra options including host:port syntax - * many, many bug fixes and optimisations - - -- Matthew Chapman Thu, 30 Jan 2003 04:29 - -rdesktop (1.1.0) - - * solves arith.c licensing issue by taking big number routines from - OpenSSL - * keyboard support not merged from unified patches yet - * still no manpage - - -- Matthew Chapman Mon, 17 Sep 2001 23:14:28 +1000 (AEST) - -rdesktop (1.0.0) - - * initial release - - -- Matthew Chapman +rdesktop (1.?.?) + * SeamlessRDP - seamless windows support + * Keymap fixes + * Fix connection issues with Windows XP RTM + * Keyboard handling improvements and fixes + * SGI/Irix sound-driver fixes + * Support for clipboard INCR protocol + * Session Directory support (patch from Brian Chapeau ) + * Support for long filenames on redirected drives + * XOR ellipse drawing fix + * Clipboard unicode support (Ilya Konstantinov) + * Refactoring of color depth code (Ilya Konstantinov) + +rdesktop (1.4.1) + * persistent bitmap cache optimisations + * support for more RDP-orders (ellipse, polygon) + * libao sound-driver (for Mac OSX and others) + * Unicode support for transmitted strings/filenames + * Added korean keymap + * Xembed fixes to work with krdc correctly + * Portability fixes + * Support for RDP-compression (all bpps) + * process RDP recv queue if send queue is full (Debian bug #246461) + * SGI/Irix sound-driver fixes + + -- Michael Gernoth Sun, 8 May 2005 19:55:35 +0200 (CEST) + +rdesktop (1.4.0) + * Basic disk-, parallel-, printer- and serial-redirection + * Fix timezone-redirection + * Backing-store fixes + * Fix client-IP sent to TS + * XEmbed support for embedding rdesktop in other applications (KRDC) + * Support for setting the RDP5 experience + * Keyboard and keymap fixes + * Performance improvements + * Report disconnect-reason + * Support for RDP-compression (currently only for 8bpp) + * Support for persistent bitmap caching + * Sound-driver for SGI/Irix + + -- Michael Gernoth Sun, 6 Mar 2005 22:09:55 +0100 (CET) + +rdesktop (1.3.1) + * Crypto fixes for RDP5 + * Keyboard and keymap fixes + * some endianess fixes for high color + * portability enhancements + + -- Matthew Chapman Tue, 21 Jan 2004 20:34 + +rdesktop (1.3.0) + + * RDP5 + * 15, 16 and 24 bit color depths + * Basic clipboard redirection + * Sound + * IPv6 + * Attaching to console on Windows 2003 + + -- Peter Astrand Wed, 29 Oct 2003 16:40:58 +0100 (CET) + +rdesktop (1.2.0) + + * new - more portable - key mapping code + * support for "high" (128-bit) encryption + * toggling out of full-screen mode with Ctrl-Alt-Enter + * a few extra options including host:port syntax + * many, many bug fixes and optimisations + + -- Matthew Chapman Thu, 30 Jan 2003 04:29 + +rdesktop (1.1.0) + + * solves arith.c licensing issue by taking big number routines from + OpenSSL + * keyboard support not merged from unified patches yet + * still no manpage + + -- Matthew Chapman Mon, 17 Sep 2001 23:14:28 +1000 (AEST) + +rdesktop (1.0.0) + + * initial release + + -- Matthew Chapman diff --git a/reactos/base/applications/tsclient/rdesktop/doc/HACKING b/reactos/base/applications/tsclient/rdesktop/doc/HACKING index bb5ec669678..f7689763817 100644 --- a/reactos/base/applications/tsclient/rdesktop/doc/HACKING +++ b/reactos/base/applications/tsclient/rdesktop/doc/HACKING @@ -1,28 +1,28 @@ - -Code style / indentation ------------------------- -The file indent-all.sh contains information about the current code -style. Run this script before commits. - - -Variable argument macros ------------------------- -Variable argument macros are non-portable in general, and should be -avoided. Either use a second set of parentheses like DEBUG, or create -a variable argument function like error. - - -Structure ---------- -The core protocol stack should be system-independent (i.e. ANSI C -only) so that it is easy to port. This currently applies to the -following files: - -bitmap.c licence.c orders.c rdp.c rdp5.c cache.c iso.c mcs.c -secure.c mppc.c channels.c -rdesktop.c - - -RDP resources -------------- -http://dev.remotenetworktechnology.com/refdata.htm + +Code style / indentation +------------------------ +The file indent-all.sh contains information about the current code +style. Run this script before commits. + + +Variable argument macros +------------------------ +Variable argument macros are non-portable in general, and should be +avoided. Either use a second set of parentheses like DEBUG, or create +a variable argument function like error. + + +Structure +--------- +The core protocol stack should be system-independent (i.e. ANSI C +only) so that it is easy to port. This currently applies to the +following files: + +bitmap.c licence.c orders.c rdp.c rdp5.c cache.c iso.c mcs.c +secure.c mppc.c channels.c +rdesktop.c + + +RDP resources +------------- +http://dev.remotenetworktechnology.com/refdata.htm diff --git a/reactos/base/applications/tsclient/rdesktop/doc/TODO b/reactos/base/applications/tsclient/rdesktop/doc/TODO index 8b9c852bd33..1aa830a4069 100644 --- a/reactos/base/applications/tsclient/rdesktop/doc/TODO +++ b/reactos/base/applications/tsclient/rdesktop/doc/TODO @@ -1,89 +1,89 @@ - -* Clipboard: - - * Support other data types than plain text. - - * Conversion between different character sets. - - -* Drive Redirection: - - * Real support for file locking - - * Handle reconnections correctly. - - * Various deficiencies; see FIXMEs in source code. - - -* Serial Port Redirection: - - * More testing needed. - - -* Printer Redirection: - - * More testing needed. - - -* Keymapping: - - -* Sound redirection - - * Use timestamps in audio packets. - - * Add resampling to supported samplerates of audio-hardware. - - * Lower CPU-usage with an audio thread. - - -* Smartcard redirection - - * Merge patches currently implementing sc-redirection. - - -* Miscellaneous - - * Clean up header files. The current "proto.h" and "xproto.h" is far - from optimal. - - * Go through the many trackers (bugs/patches/RFEs) at SourceForge. - - * More fancy homepage. - - * Enhance documentation. Write a FAQ. - - -* SeamlessRDP mode - - * Add a client to server message for starting additional - applications. - - * Support cmd.exe. - - * Support for Input Contexts. - - * Enhanced support for WM_DELETE_WINDOW: Instead of terminating - rdesktop, close the window on the server side. - - * Systray support. - - * Support for transferring the application taskbar icon. - - * Better support for non-EWMH window managers. - - * Support for non-rectangular windows. - - * The focus handling of menus is a bit crude. - - * Support for sending focus information from client to server. - - * Implement something similiar to explhook.dll - support for running - explorer.exe in non-shell mode. - - * Better compatibility with Task Manager. - - * XINERAMA support. - - * When enumerating windows, make sure to send info about windows - that are transient for other windows after the referred window. + +* Clipboard: + + * Support other data types than plain text. + + * Conversion between different character sets. + + +* Drive Redirection: + + * Real support for file locking + + * Handle reconnections correctly. + + * Various deficiencies; see FIXMEs in source code. + + +* Serial Port Redirection: + + * More testing needed. + + +* Printer Redirection: + + * More testing needed. + + +* Keymapping: + + +* Sound redirection + + * Use timestamps in audio packets. + + * Add resampling to supported samplerates of audio-hardware. + + * Lower CPU-usage with an audio thread. + + +* Smartcard redirection + + * Merge patches currently implementing sc-redirection. + + +* Miscellaneous + + * Clean up header files. The current "proto.h" and "xproto.h" is far + from optimal. + + * Go through the many trackers (bugs/patches/RFEs) at SourceForge. + + * More fancy homepage. + + * Enhance documentation. Write a FAQ. + + +* SeamlessRDP mode + + * Add a client to server message for starting additional + applications. + + * Support cmd.exe. + + * Support for Input Contexts. + + * Enhanced support for WM_DELETE_WINDOW: Instead of terminating + rdesktop, close the window on the server side. + + * Systray support. + + * Support for transferring the application taskbar icon. + + * Better support for non-EWMH window managers. + + * Support for non-rectangular windows. + + * The focus handling of menus is a bit crude. + + * Support for sending focus information from client to server. + + * Implement something similiar to explhook.dll - support for running + explorer.exe in non-shell mode. + + * Better compatibility with Task Manager. + + * XINERAMA support. + + * When enumerating windows, make sure to send info about windows + that are transient for other windows after the referred window. diff --git a/reactos/base/applications/tsclient/rdesktop/doc/ipv6.txt b/reactos/base/applications/tsclient/rdesktop/doc/ipv6.txt index d96d173eee1..1d3ef2341c2 100644 --- a/reactos/base/applications/tsclient/rdesktop/doc/ipv6.txt +++ b/reactos/base/applications/tsclient/rdesktop/doc/ipv6.txt @@ -1,29 +1,29 @@ - -IPv6 support in rdesktop -======================== -The IPv6 support was developed by Mike Dawson : - - Attached is a patch to tcp.c to enable IPv6 support. Build with - 'IPv6' defined to enable it. It's so far only been tested on - Linux 2.4.21 connecting to Windows XP SP1. - - Since terminal services doesn't seem to bind to the ipv6 interface - on XP I had to run 'netsh interface portproxy add v6tov4 - listenport=3389 connectport=3389' from the windows command prompt - to get it to work. - - -rdesktop now supports numeric IPv6 addresses: - - It checks for two or more colons in an address to decide what it's - dealing with so you can now do: - - rdesktop 2001:1:2:3::4 - - without it getting confused with an ipv4:port specification. I've - also followed the square bracket convention used by browsers - (http://www.ietf.org/rfc/rfc2732.txt) so if you want to specify a - non-standard port with an ipv6 address you can use the format: - - rdesktop [2001:1:2:3::4]:3390 - + +IPv6 support in rdesktop +======================== +The IPv6 support was developed by Mike Dawson : + + Attached is a patch to tcp.c to enable IPv6 support. Build with + 'IPv6' defined to enable it. It's so far only been tested on + Linux 2.4.21 connecting to Windows XP SP1. + + Since terminal services doesn't seem to bind to the ipv6 interface + on XP I had to run 'netsh interface portproxy add v6tov4 + listenport=3389 connectport=3389' from the windows command prompt + to get it to work. + + +rdesktop now supports numeric IPv6 addresses: + + It checks for two or more colons in an address to decide what it's + dealing with so you can now do: + + rdesktop 2001:1:2:3::4 + + without it getting confused with an ipv4:port specification. I've + also followed the square bracket convention used by browsers + (http://www.ietf.org/rfc/rfc2732.txt) so if you want to specify a + non-standard port with an ipv6 address you can use the format: + + rdesktop [2001:1:2:3::4]:3390 + diff --git a/reactos/base/applications/tsclient/rdesktop/doc/keymap-names.txt b/reactos/base/applications/tsclient/rdesktop/doc/keymap-names.txt index 44614cd85d5..3da698b2935 100644 --- a/reactos/base/applications/tsclient/rdesktop/doc/keymap-names.txt +++ b/reactos/base/applications/tsclient/rdesktop/doc/keymap-names.txt @@ -1,124 +1,124 @@ - -0x0436 af Afrikaans -0x041C sq Albanian -0x0001 ar Arabic -0x0401 ar-sa Arabic (Saudi Arabia) -0x0801 ar-iq Arabic (Iraq) -0x0C01 ar-eg Arabic (Egypt) -0x1001 ar-ly Arabic (Libya) -0x1401 ar-dz Arabic (Algeria) -0x1801 ar-ma Arabic (Morocco) -0x1C01 ar-tn Arabic (Tunisia) -0x2001 ar-om Arabic (Oman) -0x2401 ar-ye Arabic (Yemen) -0x2801 ar-sy Arabic (Syria) -0x2C01 ar-jo Arabic (Jordan) -0x3001 ar-lb Arabic (Lebanon) -0x3401 ar-kw Arabic (Kuwait) -0x3801 ar-ae Arabic (U.A.E.) -0x3C01 ar-bh Arabic (Bahrain) -0x4001 ar-qa Arabic (Qatar) -0x042D eu Basque -0x0402 bg Bulgarian -0x0423 be Belarusian -0x0403 ca Catalan -0x0004 zh Chinese -0x0404 zh-tw Chinese (Taiwan) -0x0804 zh-cn Chinese (China) -0x0C04 zh-hk Chinese (Hong Kong SAR) -0x1004 zh-sg Chinese (Singapore) -0x041A hr Croatian -0x0405 cs Czech -0x0406 da Danish -0x0413 nl Dutch (Netherlands) -0x0813 nl-be Dutch (Belgium) -0x0009 en English -0x0409 en-us English (United States) -0x0809 en-gb English (United Kingdom) -0x0C09 en-au English (Australia) -0x1009 en-ca English (Canada) -0x1409 en-nz English (New Zealand) -0x1809 en-ie English (Ireland) -0x1C09 en-za English (South Africa) -0x2009 en-jm English (Jamaica) -0x2809 en-bz English (Belize) -0x2C09 en-tt English (Trinidad) -0x0425 et Estonian -0x0438 fo Faeroese -0x0429 fa Farsi -0x040B fi Finnish -0x040C fr French (France) -0x080C fr-be French (Belgium) -0x0C0C fr-ca French (Canada) -0x100C fr-ch French (Switzerland) -0x140C fr-lu French (Luxembourg) -0x043C gd Gaelic -0x0407 de German (Germany) -0x0807 de-ch German (Switzerland) -0x0C07 de-at German (Austria) -0x1007 de-lu German (Luxembourg) -0x1407 de-li German (Liechtenstein) -0x0408 el Greek -0x040D he Hebrew -0x0439 hi Hindi -0x040E hu Hungarian -0x040F is Icelandic -0x0421 in Indonesian -0x0410 it Italian (Italy) -0x0810 it-ch Italian (Switzerland) -0x0411 ja Japanese -0x0412 ko Korean -0x0426 lv Latvian -0x0427 lt Lithuanian -0x042F mk FYRO Macedonian -0x043E ms Malay (Malaysia) -0x043A mt Maltese -0x0414 no Norwegian (Bokmal) -0x0814 no Norwegian (Nynorsk) -0x0415 pl Polish -0x0416 pt-br Portuguese (Brazil) -0x0816 pt Portuguese (Portugal) -0x0417 rm Rhaeto-Romanic -0x0418 ro Romanian -0x0818 ro-mo Romanian (Moldova) -0x0419 ru Russian -0x0819 ru-mo Russian (Moldova) -0x0C1A sr Serbian (Cyrillic) -0x081A sr Serbian (Latin) -0x041B sk Slovak -0x0424 sl Slovenian -0x042E sb Sorbian -0x040A es Spanish (Traditional Sort) -0x080A es-mx Spanish (Mexico) -0x0C0A es Spanish (International Sort) -0x100A es-gt Spanish (Guatemala) -0x140A es-cr Spanish (Costa Rica) -0x180A es-pa Spanish (Panama) -0x1C0A es-do Spanish (Dominican Republic) -0x200A es-ve Spanish (Venezuela) -0x240A es-co Spanish (Colombia) -0x280A es-pe Spanish (Peru) -0x2C0A es-ar Spanish (Argentina) -0x300A es-ec Spanish (Ecuador) -0x340A es-cl Spanish (Chile) -0x380A es-uy Spanish (Uruguay) -0x3C0A es-py Spanish (Paraguay) -0x400A es-bo Spanish (Bolivia) -0x440A es-sv Spanish (El Salvador) -0x480A es-hn Spanish (Honduras) -0x4C0A es-ni Spanish (Nicaragua) -0x500A es-pr Spanish (Puerto Rico) -0x0430 sx Sutu -0x041D sv Swedish -0x081D sv-fi Swedish (Finland) -0x041E th Thai -0x0431 ts Tsonga -0x0432 tn Tswana -0x041F tr Turkish -0x0422 uk Ukrainian -0x0420 ur Urdu -0x042A vi Vietnamese -0x0434 xh Xhosa -0x043D ji Yiddish -0x0435 zu Zulu - + +0x0436 af Afrikaans +0x041C sq Albanian +0x0001 ar Arabic +0x0401 ar-sa Arabic (Saudi Arabia) +0x0801 ar-iq Arabic (Iraq) +0x0C01 ar-eg Arabic (Egypt) +0x1001 ar-ly Arabic (Libya) +0x1401 ar-dz Arabic (Algeria) +0x1801 ar-ma Arabic (Morocco) +0x1C01 ar-tn Arabic (Tunisia) +0x2001 ar-om Arabic (Oman) +0x2401 ar-ye Arabic (Yemen) +0x2801 ar-sy Arabic (Syria) +0x2C01 ar-jo Arabic (Jordan) +0x3001 ar-lb Arabic (Lebanon) +0x3401 ar-kw Arabic (Kuwait) +0x3801 ar-ae Arabic (U.A.E.) +0x3C01 ar-bh Arabic (Bahrain) +0x4001 ar-qa Arabic (Qatar) +0x042D eu Basque +0x0402 bg Bulgarian +0x0423 be Belarusian +0x0403 ca Catalan +0x0004 zh Chinese +0x0404 zh-tw Chinese (Taiwan) +0x0804 zh-cn Chinese (China) +0x0C04 zh-hk Chinese (Hong Kong SAR) +0x1004 zh-sg Chinese (Singapore) +0x041A hr Croatian +0x0405 cs Czech +0x0406 da Danish +0x0413 nl Dutch (Netherlands) +0x0813 nl-be Dutch (Belgium) +0x0009 en English +0x0409 en-us English (United States) +0x0809 en-gb English (United Kingdom) +0x0C09 en-au English (Australia) +0x1009 en-ca English (Canada) +0x1409 en-nz English (New Zealand) +0x1809 en-ie English (Ireland) +0x1C09 en-za English (South Africa) +0x2009 en-jm English (Jamaica) +0x2809 en-bz English (Belize) +0x2C09 en-tt English (Trinidad) +0x0425 et Estonian +0x0438 fo Faeroese +0x0429 fa Farsi +0x040B fi Finnish +0x040C fr French (France) +0x080C fr-be French (Belgium) +0x0C0C fr-ca French (Canada) +0x100C fr-ch French (Switzerland) +0x140C fr-lu French (Luxembourg) +0x043C gd Gaelic +0x0407 de German (Germany) +0x0807 de-ch German (Switzerland) +0x0C07 de-at German (Austria) +0x1007 de-lu German (Luxembourg) +0x1407 de-li German (Liechtenstein) +0x0408 el Greek +0x040D he Hebrew +0x0439 hi Hindi +0x040E hu Hungarian +0x040F is Icelandic +0x0421 in Indonesian +0x0410 it Italian (Italy) +0x0810 it-ch Italian (Switzerland) +0x0411 ja Japanese +0x0412 ko Korean +0x0426 lv Latvian +0x0427 lt Lithuanian +0x042F mk FYRO Macedonian +0x043E ms Malay (Malaysia) +0x043A mt Maltese +0x0414 no Norwegian (Bokmal) +0x0814 no Norwegian (Nynorsk) +0x0415 pl Polish +0x0416 pt-br Portuguese (Brazil) +0x0816 pt Portuguese (Portugal) +0x0417 rm Rhaeto-Romanic +0x0418 ro Romanian +0x0818 ro-mo Romanian (Moldova) +0x0419 ru Russian +0x0819 ru-mo Russian (Moldova) +0x0C1A sr Serbian (Cyrillic) +0x081A sr Serbian (Latin) +0x041B sk Slovak +0x0424 sl Slovenian +0x042E sb Sorbian +0x040A es Spanish (Traditional Sort) +0x080A es-mx Spanish (Mexico) +0x0C0A es Spanish (International Sort) +0x100A es-gt Spanish (Guatemala) +0x140A es-cr Spanish (Costa Rica) +0x180A es-pa Spanish (Panama) +0x1C0A es-do Spanish (Dominican Republic) +0x200A es-ve Spanish (Venezuela) +0x240A es-co Spanish (Colombia) +0x280A es-pe Spanish (Peru) +0x2C0A es-ar Spanish (Argentina) +0x300A es-ec Spanish (Ecuador) +0x340A es-cl Spanish (Chile) +0x380A es-uy Spanish (Uruguay) +0x3C0A es-py Spanish (Paraguay) +0x400A es-bo Spanish (Bolivia) +0x440A es-sv Spanish (El Salvador) +0x480A es-hn Spanish (Honduras) +0x4C0A es-ni Spanish (Nicaragua) +0x500A es-pr Spanish (Puerto Rico) +0x0430 sx Sutu +0x041D sv Swedish +0x081D sv-fi Swedish (Finland) +0x041E th Thai +0x0431 ts Tsonga +0x0432 tn Tswana +0x041F tr Turkish +0x0422 uk Ukrainian +0x0420 ur Urdu +0x042A vi Vietnamese +0x0434 xh Xhosa +0x043D ji Yiddish +0x0435 zu Zulu + diff --git a/reactos/base/applications/tsclient/rdesktop/doc/keymapping.txt b/reactos/base/applications/tsclient/rdesktop/doc/keymapping.txt index 27b70640c5b..6d10eae5b87 100644 --- a/reactos/base/applications/tsclient/rdesktop/doc/keymapping.txt +++ b/reactos/base/applications/tsclient/rdesktop/doc/keymapping.txt @@ -1,243 +1,243 @@ -Keyboard mapping -================ -This release of rdesktop uses a new, portable keyboard mapping -implementation. It should hopefully work on all X11 systems. This new -implementation only looks at X11 keysyms: Not on (nonportable) -keycodes or modifier status. This means that rdesktop will obey your -local keyboard configuration. For example, if you have swapped -CapsLock and Control, rdesktop will use this mapping. - -XKB is currently not used. It seems like a good idea to me, but since -some X servers (like Xvnc) does not support XKB, we still need to use -the plain old interface as well, at least. - -There are still some small problems. - -* CapsLock: CapsLock changes are never sent to the RDP - server. rdesktop does not know which keys that are modified by - CapsLock and which are not. So, the CapsLock indicator in Wordpad - etc will always be off. - -Composing/Multi_key is supported. For more information, see: - - MIT: $SRC/xc/nls/X11/locale/Compose/iso8859-1 - XFree86: /usr/X11R6/lib/X11/locale/*/Compose - Solaris' Openwin: /usr/openwin/include/X11/Suncompose.h - /usr/openwin/lib/locale/*/Compose - Irix6: compose(5) - - -Keymap files -============ -The names of the keymaps follows RFC1766. - -(You can find a translation from Windows keyboard layout numbers to -keymap names by looking at -HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MIME\Database\RFC1766 in the -registry.) - - -Contents of keymap files -======================== -The keymaps are line based. There are four different types of lines: - -1) include lines -Syntax: -include - -Example: -include common - - -2) map lines -Syntax: -map - -Example: -map 0x41d - -Map-lines specifies how the remote RDP server should interpret the -sent scancodes. - - -3) Translation lines -Syntax: - [flags..] - -Example: -onehalf 0x29 shift - -The scancode can be found in scancodes.h. Note: The scancode value for -extended keys can be calculated by OR:ing with 0x80. Example: The -Delete key have the scancode sequence 0xe0, 0x52. You can get the -scancode value to put into the map file by running: - -python -c "print hex(0x80 | 0x52)" - -If flags are "altgr", "shift", the scancode sent for this keysym will -be prefixed with AltGr, or Shift. - -If flags includes "addupper", a translation for this keysyms uppercase -name will be added as well, in addition to the non-uppercase -name. Example: - -x 2d addupper - -...will add an translation for "X" automatically, just like if you -would specify: - -X 2d shift - -If flags include "localstate", the modifier to send will be determined -by the local modifier state. - -If flags is "inhibit", nothing will be sent to the server. - -If flags is "numlock", rdesktop will make sure that the remote NumLock -state is on before generating the key event. Otherwise, it will make -sure NumLock is off. - - -4) enable_compose - -If any line starts with the keyword "enable_compose", rdesktop will -enable local Compose/Multi_key handling. Enabling this will often make -it impossible to compose characters with dead keys (on the remote -side). This is because when local compose support is enabled, dead -keys will not be sent to the remote side. - - -5) sequence lines -Syntax: -sequence ... - -Examples: -sequence eacute dead_acute e -sequence F12 f o o at e x a m p l e period c o m - -Sequence lines allows you to specify that multiple scancodes should be -sent to the RDP server, in response to one X11 keyboard event. Note: -The sequence is sent at the X11 KeyPress event. Nothing is sent at -KeyRelease. - - -6) keyboard_type lines -Syntax: -keyboard_type - -keyboard_type lines specifies the keyboard type. Default value is 0x4 -(en-us 101/104 keys keyboard). - - -7) keyboard_subtype lines -Syntax: -keyboard_subtype - -keyboard_subtype lines specifies the keyboard subtype. Default value -is 0x0 (en-us 101/104 keys keyboard). - - -8) keyboard_functionkeys lines -Syntax: -keyboard_functionkeys - -keyboard_functionkeys specifies the number of keyboard function -keys. Default value is 0xc (12, for standard 101/104 keys keyboard). - - - - -Suggested X11 keysym mapping on PCs -=================================== -Unfortunately, there is no standard for which keysyms a given key -should generate. If you have a PC-keyboard with Windows keys, I suggest this mapping: - -Keyboard keys: -CtrlLeft WinLeft AltLeft Space AltGr WinRight Menu CtrlRight - -...should generate keysyms: -Control_L Super_L Alt_L space Mode_switch Super_R Menu Control_R - -Additionally: -Shift-Alt should produce Meta_L -Shift-AltGr should produce Multi_Key. - -Use a modifier-map like this: - -shift Shift_L (0x32), Shift_R (0x3e) -lock Caps_Lock (0x25) -control Control_L (0x42), Control_R (0x6d) -mod1 Alt_L (0x40) -mod2 Num_Lock (0x4d) -mod3 Mode_switch (0x71) -mod4 Super_L (0x73), Super_R (0x74) -mod5 Scroll_Lock (0x4e) - - -Updating / writing keymap files -=============================== -When writing new or updating keymap files, please use comments and -blanks, to increase readability. The "sv" keymap is a good template. - -When you need to add a translation to a keymap file, do: - - 1. Get the "key number" for this key, by looking at keynums.png. - - 2. Take a look at scancodes.h, and look for - SCANCODE_KEY_. The scancode value is at the end of - the line. If the line contains (SCANCODE_EXTENDED | 0xsomething), - then you should OR 0x80 to this value. For example, you can do: - - python -c "print hex(0x80 | 0xsomething)" - - 3. Put the scancode (from step 2) and keysym name (found in the - error message) into the keymap file. - - -Special keys -============ - -* The combination Ctrl-Alt-Enter toggles between fullscreen and - non-fullscreen mode. - -* Meta, Hyper and Super are treated as windows keys. RDP4 does not - support the windows keys though, so if you are running RDP4, these - keys will translate to Ctrl-Esc. - - -Links -===== -http://www.win.tue.nl/~aeb/linux/kbd/scancodes.html - - -Test cases -========== -When changing the keyboard code, make sure all these tests in Notepad -works: - -1. Ctrl+f should bring up Find dialog, with CapsLock both on and off. - -2. Ctrl+Shift+arrows should mark text, with CapsLock both on and off. - -3. Test a sequence, like egrave. - -4. Test a char generated with AltGr, such as @ on a swedish keyboard. - -5. Test Ctrl-Alt-Delete. - -6. Ctrl-Alt-Enter should toggle fullscreen. - -7. Test NumLock synchronization using the -N option. Excel is able to - indicate the current NumLock state. Verify that the status is - updated correctly on reconnects. - -8. Test the Windows keys, standalone as well as in combination with, - say, E. - -9. Make sure the system menu (via Alt-space) cannot be accessed in - single app mode. - -10. Make sure keymaps can be loaded from ~/.rdesktop/keymaps, - KEYMAP_PATH, $CWD/keymaps, and from an absolute path. - - +Keyboard mapping +================ +This release of rdesktop uses a new, portable keyboard mapping +implementation. It should hopefully work on all X11 systems. This new +implementation only looks at X11 keysyms: Not on (nonportable) +keycodes or modifier status. This means that rdesktop will obey your +local keyboard configuration. For example, if you have swapped +CapsLock and Control, rdesktop will use this mapping. + +XKB is currently not used. It seems like a good idea to me, but since +some X servers (like Xvnc) does not support XKB, we still need to use +the plain old interface as well, at least. + +There are still some small problems. + +* CapsLock: CapsLock changes are never sent to the RDP + server. rdesktop does not know which keys that are modified by + CapsLock and which are not. So, the CapsLock indicator in Wordpad + etc will always be off. + +Composing/Multi_key is supported. For more information, see: + + MIT: $SRC/xc/nls/X11/locale/Compose/iso8859-1 + XFree86: /usr/X11R6/lib/X11/locale/*/Compose + Solaris' Openwin: /usr/openwin/include/X11/Suncompose.h + /usr/openwin/lib/locale/*/Compose + Irix6: compose(5) + + +Keymap files +============ +The names of the keymaps follows RFC1766. + +(You can find a translation from Windows keyboard layout numbers to +keymap names by looking at +HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MIME\Database\RFC1766 in the +registry.) + + +Contents of keymap files +======================== +The keymaps are line based. There are four different types of lines: + +1) include lines +Syntax: +include + +Example: +include common + + +2) map lines +Syntax: +map + +Example: +map 0x41d + +Map-lines specifies how the remote RDP server should interpret the +sent scancodes. + + +3) Translation lines +Syntax: + [flags..] + +Example: +onehalf 0x29 shift + +The scancode can be found in scancodes.h. Note: The scancode value for +extended keys can be calculated by OR:ing with 0x80. Example: The +Delete key have the scancode sequence 0xe0, 0x52. You can get the +scancode value to put into the map file by running: + +python -c "print hex(0x80 | 0x52)" + +If flags are "altgr", "shift", the scancode sent for this keysym will +be prefixed with AltGr, or Shift. + +If flags includes "addupper", a translation for this keysyms uppercase +name will be added as well, in addition to the non-uppercase +name. Example: + +x 2d addupper + +...will add an translation for "X" automatically, just like if you +would specify: + +X 2d shift + +If flags include "localstate", the modifier to send will be determined +by the local modifier state. + +If flags is "inhibit", nothing will be sent to the server. + +If flags is "numlock", rdesktop will make sure that the remote NumLock +state is on before generating the key event. Otherwise, it will make +sure NumLock is off. + + +4) enable_compose + +If any line starts with the keyword "enable_compose", rdesktop will +enable local Compose/Multi_key handling. Enabling this will often make +it impossible to compose characters with dead keys (on the remote +side). This is because when local compose support is enabled, dead +keys will not be sent to the remote side. + + +5) sequence lines +Syntax: +sequence ... + +Examples: +sequence eacute dead_acute e +sequence F12 f o o at e x a m p l e period c o m + +Sequence lines allows you to specify that multiple scancodes should be +sent to the RDP server, in response to one X11 keyboard event. Note: +The sequence is sent at the X11 KeyPress event. Nothing is sent at +KeyRelease. + + +6) keyboard_type lines +Syntax: +keyboard_type + +keyboard_type lines specifies the keyboard type. Default value is 0x4 +(en-us 101/104 keys keyboard). + + +7) keyboard_subtype lines +Syntax: +keyboard_subtype + +keyboard_subtype lines specifies the keyboard subtype. Default value +is 0x0 (en-us 101/104 keys keyboard). + + +8) keyboard_functionkeys lines +Syntax: +keyboard_functionkeys + +keyboard_functionkeys specifies the number of keyboard function +keys. Default value is 0xc (12, for standard 101/104 keys keyboard). + + + + +Suggested X11 keysym mapping on PCs +=================================== +Unfortunately, there is no standard for which keysyms a given key +should generate. If you have a PC-keyboard with Windows keys, I suggest this mapping: + +Keyboard keys: +CtrlLeft WinLeft AltLeft Space AltGr WinRight Menu CtrlRight + +...should generate keysyms: +Control_L Super_L Alt_L space Mode_switch Super_R Menu Control_R + +Additionally: +Shift-Alt should produce Meta_L +Shift-AltGr should produce Multi_Key. + +Use a modifier-map like this: + +shift Shift_L (0x32), Shift_R (0x3e) +lock Caps_Lock (0x25) +control Control_L (0x42), Control_R (0x6d) +mod1 Alt_L (0x40) +mod2 Num_Lock (0x4d) +mod3 Mode_switch (0x71) +mod4 Super_L (0x73), Super_R (0x74) +mod5 Scroll_Lock (0x4e) + + +Updating / writing keymap files +=============================== +When writing new or updating keymap files, please use comments and +blanks, to increase readability. The "sv" keymap is a good template. + +When you need to add a translation to a keymap file, do: + + 1. Get the "key number" for this key, by looking at keynums.png. + + 2. Take a look at scancodes.h, and look for + SCANCODE_KEY_. The scancode value is at the end of + the line. If the line contains (SCANCODE_EXTENDED | 0xsomething), + then you should OR 0x80 to this value. For example, you can do: + + python -c "print hex(0x80 | 0xsomething)" + + 3. Put the scancode (from step 2) and keysym name (found in the + error message) into the keymap file. + + +Special keys +============ + +* The combination Ctrl-Alt-Enter toggles between fullscreen and + non-fullscreen mode. + +* Meta, Hyper and Super are treated as windows keys. RDP4 does not + support the windows keys though, so if you are running RDP4, these + keys will translate to Ctrl-Esc. + + +Links +===== +http://www.win.tue.nl/~aeb/linux/kbd/scancodes.html + + +Test cases +========== +When changing the keyboard code, make sure all these tests in Notepad +works: + +1. Ctrl+f should bring up Find dialog, with CapsLock both on and off. + +2. Ctrl+Shift+arrows should mark text, with CapsLock both on and off. + +3. Test a sequence, like egrave. + +4. Test a char generated with AltGr, such as @ on a swedish keyboard. + +5. Test Ctrl-Alt-Delete. + +6. Ctrl-Alt-Enter should toggle fullscreen. + +7. Test NumLock synchronization using the -N option. Excel is able to + indicate the current NumLock state. Verify that the status is + updated correctly on reconnects. + +8. Test the Windows keys, standalone as well as in combination with, + say, E. + +9. Make sure the system menu (via Alt-space) cannot be accessed in + single app mode. + +10. Make sure keymaps can be loaded from ~/.rdesktop/keymaps, + KEYMAP_PATH, $CWD/keymaps, and from an absolute path. + + diff --git a/reactos/base/applications/tsclient/rdesktop/doc/licensing.txt b/reactos/base/applications/tsclient/rdesktop/doc/licensing.txt index 10ad4ee1a1b..d8006d2eb72 100644 --- a/reactos/base/applications/tsclient/rdesktop/doc/licensing.txt +++ b/reactos/base/applications/tsclient/rdesktop/doc/licensing.txt @@ -1,56 +1,56 @@ - -To be able to connect to Microsoft Windows 2000 Terminal Services (and -probably later versions), you'll need to deal with licensing. This is -complicated. This file is supposed to contain some information about -how rdesktop works with Microsofts license systems. - -There's a lot of information on the MS web site, for example, -http://support.microsoft.com/default.aspx?scid=kb;EN-US;287687. - -From the rdesktop mailing list: - -Peter Еstrand , 2003-02-06 - -> We are running rdesktop 1.2 on machine A and connects to a Windows 2000 -> Server (machine B). The W2K machine has 5 real licenses installed ("Windows -> 2000 Terminal Services Client Access License", "Open" type). This can be -> verifier by using "Terminal Services Licensing". The problem is that all -> issued licenses have an expire-date. The expire date for the license issued -> to A was reached today, and no more connections could be made until we -> changed the client name (by using -n). -> -> We also have another similiar systems, with Linux machine C and W2K server -> D. This server has 200 licenses installed of the type "Select". On this -> server, the issued licenses seems to be permanent: The expire date is set -> to "-", and we have no problem with this system. -> -> The question of course is why the first system issues license with -> expiration date, while the second system issues permanent licenses. - - -Darryn Capes-Davis, 2003-02-07 - -> I have been through the problems and can tell you what is going -> on. The main difference of Machine B (Server 1) and Machine D (Server -> 2) is that from what I see Machine B has Service Pack 3 installed and -> Machine D does not. You see in Service Pack 3 there was a change made -> to TS Licencing in that Microsoft introduced a licence recovery -> mechanism. To cut to the point (I don't know the details) rdesktop 1.2 -> with SAVE_LICENCE defined works fine. In the new lic method the -> terminal server expects a valid licence to be presented to renew -> it. Otherwise it just expires it - and a day later you will see it -> actually gone (it does housekeeping once a day)! So if SAVE_LICENCE -> code is not enabled then it just expires and you can't use the licence -> until it cleans it away - and this is where a little gotcha is - if -> you move from using an rdesktop without SAVE_LICENCE to one with -> SAVE_LICENCE then it still won't recover an 'expired' licence. You -> have to wait for the daily housekeeping to clean it up - this really -> had me going for half a day or so! This is exactly what happened to -> you. -> -> The Server pre Spk 3 has the old model where licences never expire. To -> recover a licence that you never wanted to use again you have to call -> the Microsoft Clearing House. That's why they introduced the new -> method. And if you upgrade a Pre Spk3 server to Spk3 then the licences -> granted still stay with the old method - only new licences granted -> will use the new expiry method. + +To be able to connect to Microsoft Windows 2000 Terminal Services (and +probably later versions), you'll need to deal with licensing. This is +complicated. This file is supposed to contain some information about +how rdesktop works with Microsofts license systems. + +There's a lot of information on the MS web site, for example, +http://support.microsoft.com/default.aspx?scid=kb;EN-US;287687. + +From the rdesktop mailing list: + +Peter Еstrand , 2003-02-06 + +> We are running rdesktop 1.2 on machine A and connects to a Windows 2000 +> Server (machine B). The W2K machine has 5 real licenses installed ("Windows +> 2000 Terminal Services Client Access License", "Open" type). This can be +> verifier by using "Terminal Services Licensing". The problem is that all +> issued licenses have an expire-date. The expire date for the license issued +> to A was reached today, and no more connections could be made until we +> changed the client name (by using -n). +> +> We also have another similiar systems, with Linux machine C and W2K server +> D. This server has 200 licenses installed of the type "Select". On this +> server, the issued licenses seems to be permanent: The expire date is set +> to "-", and we have no problem with this system. +> +> The question of course is why the first system issues license with +> expiration date, while the second system issues permanent licenses. + + +Darryn Capes-Davis, 2003-02-07 + +> I have been through the problems and can tell you what is going +> on. The main difference of Machine B (Server 1) and Machine D (Server +> 2) is that from what I see Machine B has Service Pack 3 installed and +> Machine D does not. You see in Service Pack 3 there was a change made +> to TS Licencing in that Microsoft introduced a licence recovery +> mechanism. To cut to the point (I don't know the details) rdesktop 1.2 +> with SAVE_LICENCE defined works fine. In the new lic method the +> terminal server expects a valid licence to be presented to renew +> it. Otherwise it just expires it - and a day later you will see it +> actually gone (it does housekeeping once a day)! So if SAVE_LICENCE +> code is not enabled then it just expires and you can't use the licence +> until it cleans it away - and this is where a little gotcha is - if +> you move from using an rdesktop without SAVE_LICENCE to one with +> SAVE_LICENCE then it still won't recover an 'expired' licence. You +> have to wait for the daily housekeeping to clean it up - this really +> had me going for half a day or so! This is exactly what happened to +> you. +> +> The Server pre Spk 3 has the old model where licences never expire. To +> recover a licence that you never wanted to use again you have to call +> the Microsoft Clearing House. That's why they introduced the new +> method. And if you upgrade a Pre Spk3 server to Spk3 then the licences +> granted still stay with the old method - only new licences granted +> will use the new expiry method. diff --git a/reactos/base/applications/tsclient/rdesktop/doc/lspci-channel.txt b/reactos/base/applications/tsclient/rdesktop/doc/lspci-channel.txt index 96f99e171a5..78645171e2a 100644 --- a/reactos/base/applications/tsclient/rdesktop/doc/lspci-channel.txt +++ b/reactos/base/applications/tsclient/rdesktop/doc/lspci-channel.txt @@ -1,39 +1,39 @@ - -Protocol overview -================= - -The lspci virtual channel makes it possible for the remote RDP server -to enumerate the local PCI devices. The protocol on this channel is -text based and line oriented: One single line per request or -response. UNIX-style LF line breaks are used. The maximum line length -is 1023, newline included. - -rdesktop acts as a server, with only one request: - - LSPCI - -The response is several lines with this syntax: - -,,,,,, - -After the last line, a line with a single dot is sent. - -Example: - -0300,102b,0525,102b,0338,04,00 -0401,8086,24d5,1028,0174,02,8f -. - - -Usage -===== - -To enable to lspci virtual channel, run rdesktop with "-r lspci". - - -References -========== - -http://www.microsoft.com/msj/1099/terminal/terminal.aspx -http://msdn.microsoft.com/library/default.asp?url=/library/en-us/termserv/termserv/terminal_services_virtual_channels.asp - + +Protocol overview +================= + +The lspci virtual channel makes it possible for the remote RDP server +to enumerate the local PCI devices. The protocol on this channel is +text based and line oriented: One single line per request or +response. UNIX-style LF line breaks are used. The maximum line length +is 1023, newline included. + +rdesktop acts as a server, with only one request: + + LSPCI + +The response is several lines with this syntax: + +,,,,,, + +After the last line, a line with a single dot is sent. + +Example: + +0300,102b,0525,102b,0338,04,00 +0401,8086,24d5,1028,0174,02,8f +. + + +Usage +===== + +To enable to lspci virtual channel, run rdesktop with "-r lspci". + + +References +========== + +http://www.microsoft.com/msj/1099/terminal/terminal.aspx +http://msdn.microsoft.com/library/default.asp?url=/library/en-us/termserv/termserv/terminal_services_virtual_channels.asp + diff --git a/reactos/base/applications/tsclient/rdesktop/doc/patches.txt b/reactos/base/applications/tsclient/rdesktop/doc/patches.txt index e0e7c55f81f..08ffe59f7a8 100644 --- a/reactos/base/applications/tsclient/rdesktop/doc/patches.txt +++ b/reactos/base/applications/tsclient/rdesktop/doc/patches.txt @@ -1,340 +1,340 @@ -This file documents some of all patches for rdesktop, floating around -the net, and how they are related to the current (CVS) version of -rdesktop. Things left to do are marked with TBD (To Be Done). - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/Makefile.diff -Description: -Makefile changes which makes it possible to compile rdesktop on SunOS -and OSF1. -Status: -Applied (slightly modified) - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/assar_19-7-2.hostlen.patch -Description: -Fix for hostnames longer than 30 chars. -Status: -Applied (revision 1.11 of secure.c) - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/backingstore+privatecolormap-for-19-3-9.patch -Description: -This adds support for 1) Private color maps (useful for 8 bpp mode) -and 2) backingstore selection. -Status: -1) is not needed anymore; rdesktop automatically uses Private color -map in 8 bpp mode. 2) is, as far as I understand, also not -need. rdesktop automatically uses a software backing store if the -Xserver does not provide one. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/ben_xwin.c.diff -Description: -Fixes for CapsLock and NumLock. -Status: -Not needed anymore, with the new keyboard mapping implementation. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/ctrl1nohang.diff -Description: -Fixes problem with ctrl1 hangs. -Status: -Not needed anymore, with the new keyboard mapping implementation. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/downkeypatch.diff -Description: -Seems to keep track of the remote modifier status. -Status: -Not needed anymore, with the new keyboard mapping implementation. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/fasttext2+nobackpixmap.patch -Description: -(From http://mail.rdesktop.org/archive/2001/msg00218.html): - -1) Added --no-backpixmap option to disable the ugly double drawing in -xwin.c (I have a very robust backing storage in my X, so I don't need -it ;) - -2) More optimizations to text draw (previous fast-text patch was -included in 192-3-6-2). In text drawing with solid background the -glyphs are drawn with stippled fill instead of XCopyPlane (runs faster -on my S3Trio64 with XFree 3.3.6, please test it on other -configurations to validate this). The WinTach not show any improvement -with this change, it seems to use all transparent background text -draws, but with a old PC Magazine Winbench (3.1) doing the scroll text -test the speed gain is significative. - -3) My Previous patch to disable backing storage in fullscreen - -Status: -1) is not relevant any more, since rdesktop only uses backing store if -the Xserver does not provide backing store. -Need to examine if 2) and 3) are still useful. TBD. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/francisco_fix_patblt.html -Description: -The colors in patterns drawn with "pattern blt" order was inverted (fg -& bg). (See the background of the yellow help banners) -Status: -Applied (in revision 1.29, 2002/07/14) - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/frank_1linerfix.html -Description: -ui_create_glyph was not called with ipattern. -Status: -Applied (in revision 1.29, 2002/07/14). - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/frank_fasttext.patch.txt -Description: -Some kind of performence improvements. -Status: -From what I can tell, this patch is no longer necessary. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/hostname-patch -Description: -(From http://mail.rdesktop.org/archive/2001/msg00163.html): - -rdesktop uses gethostname to figure out the hostname, but gethostname -under linux returns an error when the hostname is longer than the -buffer. This hack gives gethostname a 64 char buffer and then strips -the first 16 chars or upto the first '.' and puts the result in -hostname[16]. - -Status: -Applied in version 1.10 of rdesktop.c. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/hove-19-7-2endian.diff -Description: -Includes a program for testing endianness. -Status: -rdesktop determines endianness at runtime. This patch is not needed -anymore. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/mmihalik_19-7-3-keyfix-4.patch -Description: -Some kind of new alternative keyboard mapping imlementation. -Status: -Not needed anymore, with the new keyboard mapping implementation. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/norbert_fullscreen.patch -Description: -Fullscreen mode. -Status: -Applied. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/norbert_percent.txt -Description: -Makes is possible to specify RDP geometry based a percent value of the -current desktop size. -Status: -Not applied. I don't think many people will need this. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/norbert_rdp_tcp_port.diff -Description: -Command line tcp port argument. -Status: -Applied. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/patch19-7-2.xyPos.emptyPassword.patch -Description: -This patch adds: -1) Support for empty passwords -2) Support for asking for password interactively -3) Support for ++ geometry. - -Status: -1) and 2) can be solved by the -P parameter; patch not needed. -Functionality for 3) is currently missing. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdesktop-1.0.0-19-7-1-mmihalik-3.diff -Description: -Defines DO_GLYPH() etc. -Status: -As far as I understand, this patch is applied. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdesktop-1.0.0-mmihalik-1.diff -Description: -Misc drawing changes. -Status: -As far as I understand, this patch is applied. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdesktop-1.0.0-pl19-7-2-mmihalik-1.diff -Description: -Some kind of new alternative keyboard mapping implementation. -Status: -Not needed anymore, with the new keyboard mapping implementation. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdesktop-gmp.patch -Description: -Use GMP for RSA crypto. -Status: -Not needed since rdesktop now use OpenSSL for all of the crypto. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdesktop-new_kb.patch -Description: -Modifies one of the old keyboard mapping implementations in some way. -Status: -Not needed anymore, with the new keyboard mapping implementation. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdesktop-openssl.patch -Description: -Support for linking rdesktop with OpenSSL. -Status: -Not needed anymore, rdesktop can optionally use system -OpenSSL. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdesktop.vncviewer_patch -Description: -Hack for making the old (broken) keyboard mapping implementation work -with the VNC Xserver. -Status: -Not needed anymore, with the new keyboard mapping implementation. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdesktop_keymap.patch -Description: -Some kind of new alternative keyboard mapping implementation. -Status: -Not needed anymore, with the new keyboard mapping implementation. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdp-srvr-19-6-6.diff -Description: -Basic RDP server. -Status: -Not applied. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/scroll-to-death-patch.txt -Description: -Fixes scroll-to-death problem in Excel and other applications. -Status: -Not needed; fixed in another way in recent versions of rdesktop. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/spark-manpage-patch-19.4 -Description: -Adds a manual page. -Status: -Not needed; rdesktop contains a manual page now. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/spark-manpage-patch-19.4-1 -Description: -Adds a manual page. -Status: -Not needed; rdesktop contains a manual page now. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/spark_xinerama-patch2 -Description: -Adds XINERAMA support to rdesktop. -Status: -Not applied yet. TBD. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/svenni_dis_wmkeybnds.patch -Description: -Commandline flag to disable keyboard grabbing. -Status: -Applied. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/svenni_disable_bs_in_x-tiny-patch -Description: -Disables backing store for TinyX. -Status: -As far as I understand, this patch is not need any longer. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/vincent_19-7-2.license.patch -Description: -TBD -Status: -Not yet examined. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/vincent_19-7-2.secure.patch -Description: -Fixes a problem during the connection to a French NT4 TSE (a French -NT4 TSE doesn't use encryptation). -Status: -Applied. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/vincent_19-7-3_excel.patch -Description: -Makes matrixes appear better, such as those found in Excel/toad etc. -Status: -Applied. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/vincent_8bpp.patch -Description: -Support a 8bpp display (256 colours). -Status: -An enhanced version is included in rdesktop; this patch is not needed any more. - - -URL: -http://bibl4.oru.se/projects/rdesktop/patch19/patches/vpypatch.txt -Description: -Various changes for one of the old keyboard stuff. -Status: -Not needed anymore, with the new keyboard mapping implementation. +This file documents some of all patches for rdesktop, floating around +the net, and how they are related to the current (CVS) version of +rdesktop. Things left to do are marked with TBD (To Be Done). + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/Makefile.diff +Description: +Makefile changes which makes it possible to compile rdesktop on SunOS +and OSF1. +Status: +Applied (slightly modified) + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/assar_19-7-2.hostlen.patch +Description: +Fix for hostnames longer than 30 chars. +Status: +Applied (revision 1.11 of secure.c) + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/backingstore+privatecolormap-for-19-3-9.patch +Description: +This adds support for 1) Private color maps (useful for 8 bpp mode) +and 2) backingstore selection. +Status: +1) is not needed anymore; rdesktop automatically uses Private color +map in 8 bpp mode. 2) is, as far as I understand, also not +need. rdesktop automatically uses a software backing store if the +Xserver does not provide one. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/ben_xwin.c.diff +Description: +Fixes for CapsLock and NumLock. +Status: +Not needed anymore, with the new keyboard mapping implementation. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/ctrl1nohang.diff +Description: +Fixes problem with ctrl1 hangs. +Status: +Not needed anymore, with the new keyboard mapping implementation. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/downkeypatch.diff +Description: +Seems to keep track of the remote modifier status. +Status: +Not needed anymore, with the new keyboard mapping implementation. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/fasttext2+nobackpixmap.patch +Description: +(From http://mail.rdesktop.org/archive/2001/msg00218.html): + +1) Added --no-backpixmap option to disable the ugly double drawing in +xwin.c (I have a very robust backing storage in my X, so I don't need +it ;) + +2) More optimizations to text draw (previous fast-text patch was +included in 192-3-6-2). In text drawing with solid background the +glyphs are drawn with stippled fill instead of XCopyPlane (runs faster +on my S3Trio64 with XFree 3.3.6, please test it on other +configurations to validate this). The WinTach not show any improvement +with this change, it seems to use all transparent background text +draws, but with a old PC Magazine Winbench (3.1) doing the scroll text +test the speed gain is significative. + +3) My Previous patch to disable backing storage in fullscreen + +Status: +1) is not relevant any more, since rdesktop only uses backing store if +the Xserver does not provide backing store. +Need to examine if 2) and 3) are still useful. TBD. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/francisco_fix_patblt.html +Description: +The colors in patterns drawn with "pattern blt" order was inverted (fg +& bg). (See the background of the yellow help banners) +Status: +Applied (in revision 1.29, 2002/07/14) + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/frank_1linerfix.html +Description: +ui_create_glyph was not called with ipattern. +Status: +Applied (in revision 1.29, 2002/07/14). + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/frank_fasttext.patch.txt +Description: +Some kind of performence improvements. +Status: +From what I can tell, this patch is no longer necessary. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/hostname-patch +Description: +(From http://mail.rdesktop.org/archive/2001/msg00163.html): + +rdesktop uses gethostname to figure out the hostname, but gethostname +under linux returns an error when the hostname is longer than the +buffer. This hack gives gethostname a 64 char buffer and then strips +the first 16 chars or upto the first '.' and puts the result in +hostname[16]. + +Status: +Applied in version 1.10 of rdesktop.c. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/hove-19-7-2endian.diff +Description: +Includes a program for testing endianness. +Status: +rdesktop determines endianness at runtime. This patch is not needed +anymore. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/mmihalik_19-7-3-keyfix-4.patch +Description: +Some kind of new alternative keyboard mapping imlementation. +Status: +Not needed anymore, with the new keyboard mapping implementation. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/norbert_fullscreen.patch +Description: +Fullscreen mode. +Status: +Applied. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/norbert_percent.txt +Description: +Makes is possible to specify RDP geometry based a percent value of the +current desktop size. +Status: +Not applied. I don't think many people will need this. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/norbert_rdp_tcp_port.diff +Description: +Command line tcp port argument. +Status: +Applied. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/patch19-7-2.xyPos.emptyPassword.patch +Description: +This patch adds: +1) Support for empty passwords +2) Support for asking for password interactively +3) Support for ++ geometry. + +Status: +1) and 2) can be solved by the -P parameter; patch not needed. +Functionality for 3) is currently missing. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdesktop-1.0.0-19-7-1-mmihalik-3.diff +Description: +Defines DO_GLYPH() etc. +Status: +As far as I understand, this patch is applied. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdesktop-1.0.0-mmihalik-1.diff +Description: +Misc drawing changes. +Status: +As far as I understand, this patch is applied. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdesktop-1.0.0-pl19-7-2-mmihalik-1.diff +Description: +Some kind of new alternative keyboard mapping implementation. +Status: +Not needed anymore, with the new keyboard mapping implementation. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdesktop-gmp.patch +Description: +Use GMP for RSA crypto. +Status: +Not needed since rdesktop now use OpenSSL for all of the crypto. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdesktop-new_kb.patch +Description: +Modifies one of the old keyboard mapping implementations in some way. +Status: +Not needed anymore, with the new keyboard mapping implementation. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdesktop-openssl.patch +Description: +Support for linking rdesktop with OpenSSL. +Status: +Not needed anymore, rdesktop can optionally use system +OpenSSL. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdesktop.vncviewer_patch +Description: +Hack for making the old (broken) keyboard mapping implementation work +with the VNC Xserver. +Status: +Not needed anymore, with the new keyboard mapping implementation. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdesktop_keymap.patch +Description: +Some kind of new alternative keyboard mapping implementation. +Status: +Not needed anymore, with the new keyboard mapping implementation. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdp-srvr-19-6-6.diff +Description: +Basic RDP server. +Status: +Not applied. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/scroll-to-death-patch.txt +Description: +Fixes scroll-to-death problem in Excel and other applications. +Status: +Not needed; fixed in another way in recent versions of rdesktop. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/spark-manpage-patch-19.4 +Description: +Adds a manual page. +Status: +Not needed; rdesktop contains a manual page now. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/spark-manpage-patch-19.4-1 +Description: +Adds a manual page. +Status: +Not needed; rdesktop contains a manual page now. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/spark_xinerama-patch2 +Description: +Adds XINERAMA support to rdesktop. +Status: +Not applied yet. TBD. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/svenni_dis_wmkeybnds.patch +Description: +Commandline flag to disable keyboard grabbing. +Status: +Applied. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/svenni_disable_bs_in_x-tiny-patch +Description: +Disables backing store for TinyX. +Status: +As far as I understand, this patch is not need any longer. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/vincent_19-7-2.license.patch +Description: +TBD +Status: +Not yet examined. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/vincent_19-7-2.secure.patch +Description: +Fixes a problem during the connection to a French NT4 TSE (a French +NT4 TSE doesn't use encryptation). +Status: +Applied. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/vincent_19-7-3_excel.patch +Description: +Makes matrixes appear better, such as those found in Excel/toad etc. +Status: +Applied. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/vincent_8bpp.patch +Description: +Support a 8bpp display (256 colours). +Status: +An enhanced version is included in rdesktop; this patch is not needed any more. + + +URL: +http://bibl4.oru.se/projects/rdesktop/patch19/patches/vpypatch.txt +Description: +Various changes for one of the old keyboard stuff. +Status: +Not needed anymore, with the new keyboard mapping implementation. diff --git a/reactos/base/applications/tsclient/rdesktop/doc/rdesktop.1 b/reactos/base/applications/tsclient/rdesktop/doc/rdesktop.1 index 5a78c2f3ce3..585cf8ec376 100644 --- a/reactos/base/applications/tsclient/rdesktop/doc/rdesktop.1 +++ b/reactos/base/applications/tsclient/rdesktop/doc/rdesktop.1 @@ -1,217 +1,217 @@ -.TH rdesktop 1 "November 2005" -.SH NAME -.I rdesktop -\- Remote Desktop Protocol client -.SH SYNOPSIS -.B rdesktop [options] server[:port] -.br -.SH DESCRIPTION -.I rdesktop -is a client for Remote Desktop Protocol (RDP), used in a number of Microsoft -products including Windows NT Terminal Server, Windows 2000 Server, Windows XP -and Windows 2003 Server. - -.SH OPTIONS -.TP -.BR "-u " -Username for authentication on the server. -.TP -.BR "-d " -Domain for authentication. -.TP -.BR "-s " -Startup shell for the user - starts a specific application instead of Explorer. -.TP -.BR "-c " -The initial working directory for the user. Often used in combination with -s -to set up a fixed login environment. -.TP -.BR "-p " -The password to authenticate with. Note that this may have no effect if -"Always prompt for password" is enabled on the server. WARNING: if you specify -a password on the command line it may be visible to other users when they use -tools like ps. Use -p - to make rdesktop request a password at startup (from -standard input). -.TP -.BR "-n " -Client hostname. Normally rdesktop automatically obtains the hostname of the -client. -.TP -.BR "-k " -Keyboard layout to emulate. This requires a corresponding keymap file to be -installed. The standard keymaps provided with rdesktop follow the RFC1766 -naming scheme: a language code followed by a country code if necessary - e.g. -en-us, en-gb, de, fr, sv, etc. - -The default keyboard map depends on the current locale (LC_* and LANG -environment variables). If the current locale is unknown, the default -keyboard map is en-us (a US English keyboard). - -The keyboard maps are file names, which means that they are case -sensitive. The standard keymaps are all in lowercase. - -The keyboard maps are searched relative to the directories -$HOME/.rdesktop/keymaps, KEYMAP_PATH (specified at build time), and -$CWD/keymaps, in this order. The keyboard-map argument can also be an -absolute filename. - -The special value `none' can be used instead of a keyboard map. -In this case, rdesktop will guess the scancodes from the X11 event key -codes using an internal mapping method. This method only supports the -basic alphanumeric keys and may not work properly on all platforms -so its use is discouraged. -.TP -.BR "-g " -Desktop geometry (WxH). If geometry is the special word "workarea", the geometry -will be fetched from the extended window manager hints property _NET_WORKAREA, from -the root window. The geometry can also be specified as a percentage of the whole -screen, e.g. "-g 80%". -.TP -.BR "-f" -Enable fullscreen mode. This overrides the window manager and causes the -rdesktop window to fully cover the current screen. Fullscreen mode can be -toggled at any time using Ctrl-Alt-Enter. -.TP -.BR "-b" -Force the server to send screen updates as bitmaps rather than using -higher-level drawing operations. -.TP -.BR "-A" -Enable SeamlessRDP. In this mode, rdesktop creates a X11 window for -each window on the server side. This mode requires the SeamlessRDP -server side component. When using this option, you should specify a -startup shell which launches the desired application through -SeamlessRDP. Example: rdesktop -A -s 'seamlessrdpshell notepad'. -.TP -.BR "-B" -Use the BackingStore of the Xserver instead of the integrated one in -rdesktop. -.TP -.BR "-e" -Disable encryption. This option is only needed (and will only work) if you -have a French version of NT TSE. -.TP -.BR "-E" -Disable encryption from client to server. This sends an encrypted login packet, -but everything after this is unencrypted (including interactive logins). -.TP -.BR "-m" -Do not send mouse motion events. This saves bandwidth, although some Windows -applications may rely on receiving mouse motion. -.TP -.BR "-C" -Use private colourmap. This will improve colour accuracy on an 8-bit display, -but rdesktop will appear in false colour when not focused. -.TP -.BR "-D" -Hide window manager decorations, by using MWM hints. -.TP -.BR "-K" -Do not override window manager key bindings. By default rdesktop attempts -to grab all keyboard input when it is in focus. -.TP -.BR "-S