"SfR Fresh" - the SfR Freeware/Shareware Archive

Member "vnc_winsrc/winvnc/History.txt" of archive tightvnc-1.3.9_winsrc.zip:


As a special service "SfR Fresh" has tried to format the requested source page into HTML format using source code syntax highlighting with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. That can be also achieved for any archive member file by clicking within an archive contents listing on the first character of the file(path) respectively on the according byte size field.
    1 WinVNC Version History
    2 
    3 Version 3.3.3 (VNC Version 3.3.3, revision 9)
    4 Changes from Version 3.3.3 Revision 8:
    5 
    6 	Fixed handling of empty (match all) AuthHosts filters.
    7 
    8 	WinVNC.log will now be moved to WinVNC.log.bak when WinVNC runs.
    9 
   10 Version 3.3.3 (VNC Version 3.3.3, revision 8)
   11 Changes from Version 3.3.3 Revision 7:
   12 
   13 -=-	Bug Fixes to WinVNC:
   14 
   15 	Fixed clipboard handling.
   16 
   17 	Fixed AddClient semantics in vncServer to avoid a socket leak.
   18 
   19 	Fixed AuthHosts dialog display.  Now flashes titlebar/tray button if not foreground window.
   20 
   21 	Fixed AuthHosts string parsing.  Filters such as 10.0.0.1 no longer match 10.0.0.10.
   22 
   23 	QuerySetting didn't work correctly if the AuthHosts string was empty.  Fixed.
   24 
   25 	Closing the screen-saver now works, so it's back in there.
   26 
   27 	Changed the shutdown-dialog behaviour.  It now only operates in application mode.
   28 
   29 -=-	Bug Fixes to VNCHooks:
   30 
   31 	Added HooksType() function to VNChooks so that the library may be replaced with a reliable
   32 	hooking version easily.
   33 	
   34 	VNCHooks DLL did not remove properties from windows correctly when
   35 	UnsetHooks() was called.  Fixed.
   36 
   37 -=-	Minor Fixes
   38 
   39 	Implemented the wallpaper-culling feature during remote connections.
   40 
   41 	Added automatic culling of "idle" connections, if required, via the IdleTimeout setting.
   42 	An idle connection is one in which the client has sent no data for a fixed period,
   43 	whether the data be an update request, input events, or clipboard data.
   44 
   45 	Only incoming connections are now checked for validity.  Outgoing (Add New Client)
   46 	or CORBA-initiated connections are not checked via AuthHosts.
   47 
   48 Version 3.3.3 (VNC Version 3.3.3, revision 7)
   49 Changes from Version 3.3.3 Revision 6:
   50 
   51 	WinVNC did not correctly handle Winsock1.1, causing all client connections to be
   52 	erroneously dropped by the anti-DoS code.  Now fixed.
   53 
   54 Version 3.3.3 (VNC Version 3.3.3, revision 6)
   55 Changes from Version 3.3.3 Revision 4:
   56 
   57 	The anti denial-of-service blacklist code was very buggy.  It's now fixed.
   58 
   59 	An serious potential deadlock condition in the negotiation phase of new
   60 	clients has been fixed.  The problem was incredibly rare on uniprocessors
   61 	but much more noticable on multiprocessors, unsurprisingly.
   62 
   63 	Pointer is now rendered slightly better.
   64 
   65 Version 3.3.3 (VNC Version 3.3.3, revision 4)
   66 Changes from Version 3.3.3 Revision 3:
   67 
   68 	Implemented some simple Denial-of-Service protection.  After five consecutive failed
   69 	connection attempts from a client, that client is "blacklisted" for ten seconds.
   70 	In addition, connections which hang before the authentication stage has completed are
   71 	timed out after thirty seconds, to prevent malicious users gradually eating up socket
   72 	resources.
   73 
   74 	Corrected a bug initialising the back-buffer.
   75 
   76 	Added hooking for dialog boxes, menus and scrollbars.  Seems to fix some dialogs but not
   77 	many scrollbars or menus..
   78 
   79 	Improved the GetChangesRect code with some alignment patches suggested by Will Dean.
   80 
   81 	Fixed an *IDIOTIC* bug in the handling of user-specific settings.  They were completely
   82 	broken before.  Now they should work.  I'm such an idiot.  Idiot idiot idiot.
   83 	See MS Knowledge Base article Q168877 & Q199190.
   84 
   85 	The idiot bug-fix above broke roaming profiles on NT domains!  That's now fixed, too.
   86 	Idiot idiot idiot.
   87 
   88 	Added a dialog to query whether to accept or reject incoming connections.  The dialog is
   89 	currently controlled ONLY via the registry!  The AuthHosts setting is now extended, while
   90 	some new user-specific settings are provided so that users can tailor the query feature.
   91 	Relevant keys are:
   92 	- QuerySetting (DWORD) (local&global user-specific)
   93 		[Least secure]
   94 		0 - Accept or Query.  If AuthHosts says Reject then query, otherwise Accept.
   95 		1 - Accept or Reject.  Reject if AuthHosts says so, otherwise Accept.
   96 		2 - Obey AuthHosts.  Obey AuthHosts Accept, Query, Reject settings. [Default!]
   97 		3 - Query or Reject.  If AuthHosts says Reject then Reject, otherwise Query.
   98 		4 - Ultimate Paranoia.  If AuthHosts says Accept then Query, otherwise Reject!
   99 		[Most secure]
  100 
  101 		Summary:	Actual Effect
  102 		Setting		Accept	Query	Reject
  103 		0			a		a		q
  104 		1			a		a		r
  105 		2			a		q		r
  106 		3			q		q		r
  107 		4			q		r		r
  108 
  109 	- QueryTimeout (DWORD) (local&global user-specific)
  110 		Number of seconds before Accept/Reject dialog should timeout and reject.
  111 	- AuthHosts (SZ) (machine-local)
  112 		Match terms may now start with "-", "+" or "?".  "?" indicates that the connection
  113 		attempt should be queried.
  114 
  115 Version 3.3.3 (VNC Version 3.3.3, revision 3)
  116 Changes from Version 3.3.3 Revision 2:
  117 
  118 	Implemented Will Dean's DIBsection patch to retrive screen data.  This reduces
  119 	both the retrieval time & the memory usage of WinVNC but currently only works
  120 	for VNC-format-compatible 16 and 32 bit displays.  If your display is incompatible
  121 	then WinVNC falls back to the old, slow, memory hungry mode.
  122 
  123 	Fixed a bug in VNCHooks which cause very large updates to be spuriously created on occasion.
  124 
  125 	vncKeymap now filters out the three Lock keys (CapsLock, NumLock, ScrollLock), so that
  126 	they can be safely used at the client side without generating random keystrokes on the
  127 	server.
  128 
  129 Version 3.3.3 (VNC Version 3.3.3, revision 2)
  130 Changes from Version 3.3.3 Revision 1:
  131 
  132 	Added the new "Disable Local Keyboard & Pointer" option to the Properties dialog.
  133 	This features currently allows the keyboard & pointer of the sever machine to be
  134 	disabled while a remote connection is in progress.
  135 	The feature only works under Windows NT at present.
  136 	NB:This is a BETA feature, with a known limitation - if the setting
  137 	is changed then all clients must disconnect and reconnect to achieve the desired
  138 	effect.
  139 
  140 	The -connect command-line option has been added, allowing new outgoing connections
  141 	to be made using a script or an icon.
  142 
  143 	The Add New Client and -connect options now make shared outgoing connections, since
  144 	this is usually preferable to unshared outgoing connections.
  145 
  146 	Improved the way preferences are loaded, reducing the number of times the client will
  147 	be disconnected when settings are loaded & saved.
  148 
  149 Version 3.3.3 (VNC Version 3.3.3, revision 1)
  150 Release version, patched for HTML bug below.
  151 
  152 	[The initial 3.3.3 release featured a bug in the rendering of HTML for the Java-based
  153 	viewer.  3.3.3 was quickly withdrawn and 3.3.3R1 is now the base Version 3.3.3 release.]
  154 
  155 	-=- NEW FEATURES:
  156 
  157 	REGISTRY SETTINGS ARE NOW LOADED CORRECTLY FROM THE CURRENT_USER REGISTRY HIVE!
  158 	When running as a service under Windows NT, WinVNC was unable to correctly load
  159 	settings stored in the current user's HKEY_CURRENT_USER hive.  As a workaround
  160 	for this, a special helper-hook is installed when the service itself is
  161 	installed.  The helper-hook runs when a user logs in and passes enough information
  162 	to the WinVNC service for it to locate their preferences correctly.
  163 	If the helper hook fails to install or isn't run for some reason, then WinVNC
  164 	will continue to operate based on ALL the WinVNC HKEY_LOCAL_MACHINE settings.
  165 
  166 	A new command-line option, -defaultsettings, has been added, which will cause the
  167 	running WinVNC server to show a Default Properties dialog, through which the default
  168 	local properties can be editted.  (While the dialog is displayed, the properties used
  169 	will be the default ones.  When it dissappears, WinVNC reverts to the user's settings.)
  170 
  171 	Nagle's algorithm is now disabled on all WinVNC connections, decreasing latency
  172 	considerably.
  173 
  174 	Timestamp information is now added in the debug log output.
  175 
  176 	Limited client IP-address based filtering of connections is now supported.
  177 	The new Machine-Local registry setting "AuthHosts" may be specified, and should
  178 	be of type "string".
  179 	Match terms look like:
  180 		+<ip-address-template>
  181 		-<ip-address-tamplate>
  182 	where ip-address-template is the leftmost bytes of the stringified IP-address,
  183 	e.g. 158.97 would match both 158.97.54.1 and 158.97.128.6, for example.
  184 	Multiple Match terms may be specified, delimited by the ':' character.
  185 	Match terms later in the list take precedence over earlier ones.
  186 	e.g. -:+158.97:
  187 	[This scheme does not currently filter by DNS name]
  188 
  189 	In addition to the above, incoming connections may be restricted on a server-wide
  190 	basis to being accepted only on the local-loopback interface.  This is controlled
  191 	through the LoopbackOnly registry setting, which overrides the AllowLoopback and
  192 	AuthHosts settings when active.
  193 
  194 	The WinVNC priority is now increased while processing its message queue and put
  195 	back to normal while preparing updates for sending.  This results in apparent
  196 	increase in performance, particularly when used in conjunction with some common
  197 	applications.
  198 
  199 	The machine's name is now included in the title of the web page used to access the
  200 	Java version of the VNC client.
  201 
  202 	-=- BUG FIXES:
  203 	- Major:
  204 
  205 	Under Windows NT, a handle was leaked whenever the SelectDesktop function was
  206 	called to move a thread into a different desktop.  In practice, this meant a leak
  207 	everytime someone logged in, connected remotely, or used C-A-D to access security
  208 	features in NT.  Not pretty.
  209 
  210 	Related to the above fix:  When simulating Ctrl-Alt-Del, WinVNC would switch a
  211 	dedicated thread into the WinLogon desktop to achieve the desired effect.  When
  212 	the thread quit, the handle to the WinLogon desktop was not properly freed by
  213 	WinNT.  This is now worked around by WinVNC internally.
  214 
  215 	When killing the vncServer object, a race condition occurred because
  216 	WaitUntilAuthEmpty() was used to wait for ALL clients being removed - potentially,
  217 	there could have been active, unauthorised clients connected to the vncServer
  218 	object, which would crash if the server object was deleted before they had quit.
  219 	A new function, WaitUntilUnauthEmpty, is now used as well as WaitUntilAuthEmpty,
  220 	to remove this race condition.
  221 
  222 	- Minor:
  223 
  224 	The LockSetting option was not correctly loaded by the Properties class in some
  225 	common cases.  This is now fixed.
  226 
  227 	WinVNC was using ExitWindows but specifying parameters according to the
  228 	specification of ExitWindowsEx.  ExitWindowsEx is now used instead.
  229 
  230 	-=- OTHER MODIFICATIONS:
  231 
  232 	When starting up without a password set, WinVNC will first check whether the
  233 	Properties dialog has been disabled with AllowProperties=0 before attempting
  234 	to open it for the user to set one.  Instead a dialog indicating the problem
  235 	will be displayed.
  236 
  237 	-=- NOTES:
  238 
  239 	BUGLET:PLANAR vs CHUNKY.  It transpires that problems encountered with WinVNC and
  240 	16-colour Windows 95 displays are due to Win95 VGA drivers giving a "planar" view
  241 	of the world.  Internally, Win95 is very bad at handling planar pixels and is
  242 	also very bad at making them chunky.  WinNT does not have this problem.  A new
  243 	error dialog has been added to warn about this problem on Win95.
  244 
  245 Version 3.3.2 (VNC Version 3.3.2, revision 8)
  246 Changes from revision 7:
  247 
  248 	Fix in VNCHooks.cpp (part of the WinVNC hooks library) to place
  249 	the hook handles in a shared segment of DLL memory, so that they are correctly
  250 	accessed by the hook code itself.
  251 
  252 	Fix in vncKeymap.cpp which should sort out the CapsLock on connect problem.
  253 
  254 	Added an Initiate Outgoing Connection (Add New Client) dialog.  If a machine is
  255 	running a vncviewer with the -listen option then WinVNC can be made to export
  256 	the display it is managing to this listening viewer.
  257 
  258 	NOTE : Outgoing connections are treated as 'non-shared'.
  259 
  260 	NOTES ON BUILDING UNDER VC6:
  261 	For compatibility reasons, WinVNC will remain a VC5 distribution for the moment.
  262 	However, some problems arise when compiling WinVNC under VC6.
  263 
  264 		- vncControl.idl is not supplied in the distribution and is ONLY USED
  265 			INTERNALLY at the AT&T Labs Cambridge.
  266 			It is disabled in the VC5 version of the project but conversion to VC6 format
  267 			re-enables it.
  268 		Solution : remove vncControl.idl from the project once it is imported into
  269 		Visual C++ 6, before compilation.
  270 
  271 	Fixed minor bug in Log.cpp code relating to invalid handles being returned by file
  272 	open call
  273 
  274 Version 3.3.2 (VNC Version 3.3.2, revision 7)
  275 Changes from revision 6:
  276 
  277 	Fixed HANDLE to HINSTANCE casting problem in VNCHooks.cpp, which prevented WinVNC
  278 	from compiling under Microsoft Visual C++ 6.0
  279 
  280 	Tray icon is now refreshed every five seconds.  This may help detect dynamically added
  281 	IP addresses correctly
  282 
  283 	Every five seconds, WinVNC will re-attempt to add the tray icon, even under Win95.
  284 	If Explorer crashes or Windows 95 is being run then this should ensure the icon appears.
  285 
  286 Version 3.3.2 (VNC Version 3.3.2, revision 6)
  287 Changes from revision 5:
  288 
  289 	Fixed minor protocol non-compliance bug with regard to clients which fail to send
  290 	SetPixelFormat messages.
  291 
  292 	Fixed DOS-prompt polling under Windows 95.  DOS boxes are now polled correctly.
  293 
  294 Version 3.3.2 (VNC Version 3.3.2, revision 5)
  295 Changes from revision 4:
  296 
  297 	Prepared WinVNC for release.
  298 	
  299 	Fixed AuthRequired race condition.
  300 
  301 	Fixed AutoPortSelect bug.
  302 
  303 Version 3.3.2 (VNC Version 3.3.2, revision 4)
  304 Changes from revision 3:
  305 
  306 	Fixed a tray icon bug, in which the tray icon was being produced before the menu
  307 	had been loaded.
  308 
  309 	Replaced the thread package with the latest version, which fixes a few resource leaks.
  310 
  311 	Mouse events are now produced to reflect those sent on the wire, regardless of whether
  312 	the mouse buttons would locally be swapped by the OS.  This means that left- or right-
  313 	handedness is a client-side feature.
  314 
  315 Version 3.3.2 (VNC Version 3.3.2, revision 3)
  316 Changes from revision 2:
  317 
  318 	SETTINGS REORGANIZED!
  319 	The WinVNC registry settings have now been reorganized and improved to allow better
  320 	control over individual user's capabilities when running it, whether as an application
  321 	or as a service.
  322 
  323 	Local machine settings are stored under HKEY_LOCAL_MACHINE/Software/ORL/WinVNC3
  324 	Local per user settings are stored under HKEY_LOCAL_MACHINE/Software/ORL/WinVNC3/<username>
  325 	Local default user settings are stored under HKEY_LOCAL_MACHINE/Software/ORL/WinVNC3/Default
  326 	Local no-user settings are stored under HKEY_LOCAL_MACHINE/Software/ORL/WinVNC3/SYSTEM
  327 	Global per user settings are stored under HKEY_CURRENT_USER/Software/ORL/WinVNC3
  328 	
  329 	These groups of settings have the following priority:
  330 	1.	Machine settings are always read, from the machine settings location.  Not overridable.
  331 	2.	Default user settings are read.
  332 	3.	Local-machine, per-user settings are read for the current user, or for SYSTEM if
  333 		there is no current user.  These override the Default settings.
  334 	4.	If AllowProperties is not zero, the global per-user settings are read.
  335 		These override both the Default settings & the local-machine, per-user settings.
  336 
  337 	- Local Only, Machine Settings		: DebugMode, DebugLevel, AllowLoopback,
  338 									AuthRequired, ConnectPriority.
  339 	- Local Only, Per User Settings		: AllowShutdown, AllowProperties.
  340 	- Local/Global, Per User Settings	: SocketConnect, AutoPortSelect, PortNumber, Password,
  341 									CORBAConnect, InputsEnabled, LockSetting, PollUnderCursor,
  342 									PollForeground, PollFullScreen, OnlyPollConsole,
  343 									OnlyPollOnEvent
  344 
  345 	UPDATE ROUTINES FIXED!
  346 	If a client chose to send multiple update requests to the server without waiting for
  347 	the update data, then the server would only consider the last request.  This behaviour
  348 	was incorrect and has now been fixed.  As a result, WinVNC will now work properly with
  349 	the PalmVNC viewer.
  350 
  351 	HTTP SERVER FIXED!
  352 	The HTTP server section of WinVNC could end up listening on the wrong port number when
  353 	automatic display number selection was in use.  This is now fixed.
  354 
  355 	MEMORY LEAK FIXED!
  356 	A small memory leak in the WinNT side of the vncService::CurrentUser function has been fixed.
  357 	Although the amount lost on each execution was small, the function is called often enough
  358 	for this to cause problems over long periods of use.
  359 
  360 	Established that the Ctrl-Alt-Del problem under NT 3.51 is because GetAsyncKeyState for
  361 	ctrl and alt ALWAYS returns zero.  Don't know why...
  362 
  363 	Fixed a potential lockup when the Properties dialog is closed by the OS rather than by
  364 	the Ok or Cancel buttons.
  365 
  366 Version 3.3.2 (VNC Version 3.3.2, revision 2)
  367 Changes from revision 1:
  368 
  369 	CTRL-ALT-DEL IMPROVED!
  370 	Ctrl-Alt-Del will now work both with the Delete key and with the keypad Del key, from
  371 	Unix clients.  Unix clients treat these two keys differently but Windows doesn't, so
  372 	WinVNC now maps both on to VK_DELETE internally.
  373 
  374 	MENU UPDATES IMPROVED!
  375 	Extra hook code has been added to the VNCHooks library to catch the messages used to
  376 	update the contents of pop-up menus, etc.  As a result, menus tend to suffer much less
  377 	from the characteristic colour-smear effect.
  378 
  379 	Code is now in place to perform automatic locking or logoff of the workstation
  380 	when all remote clients have closed, for security reasons.  Unfortunately, the
  381 	LockWorkstation function doesn't work on pre-NT5 machines, so only the logoff
  382 	functionality is implemented.
  383 
  384 	The new ConnectPriority option is available, on a per-machine basis.  The
  385 	HKEY_LOCAL_MACHINE/Software/ORL/WinVNC3/ConnectPriority
  386 	setting can take one of three values:
  387 		0 - new, non-shared incoming connections kick off existing ones.
  388 		1 - all incoming connections are treated as shared, regardless of the -shared viewer option.
  389 		2 - new, non-shared incoming connections will be refused if a current connection exists.
  390 
  391 	Automatic display number selection is now available.  This option is set through the WinVNC
  392 	properties dialog.  When this option is used, the display number parameter in the dialog
  393 	is ignored and the display number to use is instead allocated on the fly by WinVNC.
  394 
  395 Version 3.3.2 (VNC Version 3.3.2, revision 1)
  396 Changes from base 3.3.2 release:
  397 
  398 	PALETTE-BASED CLIENTS SUPPORTED!
  399 	Clients which request 8-bit palette-based data are now supported by WinVNC.
  400 	Palette-based clients will get the best results from 8-bit palette mode
  401 	servers, due to the way in which truecolour is culled into 8-bit palettes.
  402 	svncviewer will now work with 8-bit WinVNC desktops as well as Xvnc ones.
  403 
  404 	LOGGING SUPPORTED!
  405 	Run-time logging of all internal debug messages is now supported.  Log data
  406 	may be output to a file or a console window (or the MSVC debugger if the
  407 	program was compiled with debugging active.)
  408 	Two registry keys under HKEY_LOCAL_MACHINE/Software/ORL/WinVNC3 are used:
  409 	DebugMode indicates which logging methods to use.
  410 		[1 = MSVC debugger]
  411 		2 = Output to log file Winvnc.log in the WinVNC directory
  412 		4 = Output to a console window, displayed on-screen
  413 	Any combination of the above values may be used.
  414 	DebugLevel indicates how much debug information to present.  Any positive
  415 	integer is valid.  Zero indicates that no debugging information should be
  416 	produced and is the default.
  417 
  418 	Loopback (local-machine) connections to WinVNC will now be allowed if the
  419 	HKEY_LOCAL_MACHINE/Software/ORL/WinVNC3/AllowLoopback registry entry is set
  420 	to 1.  The default is 0.
  421 
  422 	Connections may now be made to WinVNC servers without requiring authentication
  423 	if the HKEY_LOCAL_MACHINE/Software/ORL/WinVNC3/AuthRequired registry entry is
  424 	set to 0.  The default is 1.
  425 
  426 	Microsoft Developer Studio configurations are included (but not tested) for 
  427 	Alpha NT, to make compilations for this platform more straightforward.
  428 
  429 	CopyRect is now handled differently and tends to give better results when
  430 	windows are dragged around the screen.
  431 
  432 	All notifications of potential updates to the screen are cached into a vncRegion
  433 	object in the vncDesktop thread and are only flushed to clients immediately
  434 	before TriggerUpdate is called, to improve performance.
  435 
  436 	Added a delay when the -kill option is used, to give the running copy time to quit.
  437 
  438 	Fixed a CopyRect-related bug which caused windows to scroll oddly when dragged
  439 	partially off the left or top of the screen.
  440 
  441 Version 3.3.2 (VNC Version 3.3.2)
  442 Release version.
  443 
  444 Version 3.3.1 (VNC Version 3.3, revision 20a)
  445 Changes from revision 19:
  446 
  447 	WinVNC now returns explanatory message text to the viewer when an incoming
  448 	connection is refused because of an empty Password field or a local-loopback
  449 	connection.
  450 
  451 	Mouse movements are now pre-processed by the Desktop handler and only passed to
  452 	the Client handlers immediately before an update is triggered, resulting in less
  453 	overhead and therefore lower latency.
  454 
  455 	If a client requests the CopyRect encoding in the list of encodings it supports
  456 	then WinVNC will now use the CopyRect primitive when doing simple tasks like
  457 	dragging windows.  This still has some flaws in it but generally improves performance.
  458 
  459 	Updated the Java classes exported by WinVNC to include the Send-Ctrl-Alt-Del button.
  460 
  461 	Added a "-about" option, which will cause an _already running_ copy of WinVNC to
  462 	display its About box, making it easier to check that you have the latest version!
  463 
  464 	Added version information to the VNCHooks Dynamic Link Library.  This can be viewed
  465 	selecting the properties dialog for the vnchooks.dll file.
  466 
  467 Version 3.3.1 (VNC Version 3.3, revision 19)
  468 Changes from revision 17:
  469 
  470 	A bug in the new region culling routine was fixed.
  471 
  472 Version 3.3.1 (VNC Version 3.3, revision 17)
  473 Changes from revision 16:
  474 
  475 	WIN-NT & WIN-95:
  476 
  477 	MS-DOS applications can now by typed into!  Thanks to Gur Stavi for pointing
  478 	out that WinVNC didn't previously generate keyboard scancodes for key events.
  479 	This means that the COMMAND.COM and EDIT programs, for example, may now be
  480 	used through VNC.
  481 
  482 	Lookup-table based colour translations are now incorporated into WinVNC.
  483 	This means an increase in memory usage but delivers a noticable performance
  484 	boost on most screen formats.
  485 
  486 	1, 4 and 8 bit palette-based local displays are now handled directly by
  487 	WinVNC, resulting in a significant performance boost, although there are
  488 	currently problems with the palette layout being confused in places.
  489 
  490 	More intelligent culling of unchanged regions of the screen from the list of
  491 	rectangles to be sent has been implemented.  Generally, this isn't noticable
  492 	but over low-bandwidth links, it should have a significant effect.
  493 
  494 	WM_ENDSESSION is handled properly for full system shutdown.
  495 
  496 	WM_DISPLAYCHANGE is now handled, so that when the display resolution changes,
  497 	all remote VNC users are disconnected, to prevent corrupt display updates.
  498 
  499 	The mouse cursor rendered to VNC clients is now correct most of the time.
  500 
  501 	When installing WinVNC as a service, quotes are now placed around the
  502 	executable's name, to avoid problems if there are whitespace characters
  503 	in the path.  (Common because of installing to "program files\orl\vnc")
  504 
  505 	The command-line options available have changed slightly:
  506 	-run			Causes WinVNC to run normally & ignore rest of command-line.
  507 	-install		Installs the WinVNC service and continues reading the command-line.
  508 	-remove			Removes the WinVNC service and continues reading the command-line.
  509 	-settings		Tells a running copy of WinVNC to show its Properties box.
  510 	-kill			Kills a running copy of WinVNC.
  511 	If no options are given then WinVNC runs normally.
  512 	Multiple option may be given, so, for example, to upgrade from a running copy
  513 	if WinVNC to a new one, you could use:
  514 		WinVNC_new -remove -install
  515 	which will stop & remove the old copy & install the new one, or
  516 		WinVNC_new -kill -run
  517 	which will stop the running copy & run the new version normally.
  518 
  519 	The Java viewer class files have been updated.  The new classes are slightly more
  520 	compatible with borderline Java VMs.
  521 
  522 	Deferred update messages are no longer removed from the application's message queue
  523 	behind it's back, hopefully resulting in more reliable behaviour & fewer lock-ups.
  524 
  525 	The screen-saver is now not disabled when WinVNC is running in service mode and a
  526 	connection is made, to avoid a potential race condition.  This will be handled better
  527 	in a future revision.
  528 
  529 	WIN-NT ONLY:
  530 
  531 	When running as a system service, WinVNC no longer disconnects all remote
  532 	VNC connections whenever the current desktop changes.
  533 
  534 	Corrected some problems with shift-key release code confusing Windows NT.
  535 
  536 	WIN-95 ONLY:
  537 
  538 	WM_USERCHANGED is handled, so that when no user is logged in, the
  539 	machine-local password is used, otherwise the user's own VNC password and
  540 	settings are used.
  541 	(This assumes that Windows 95 is set to Multiple User Profile mode)
  542 
  543 	Under Windows 95, WinVNC running in service mode no longer crashes when
  544 	told to stop by the -kill or -remove options.
  545 
  546 	The main text area of the Windows 95 console will now be polled by WinVNC
  547 	properly when the Poll Console Windows Only option is set.
  548 
  549 Version 3.3.1 (VNC Version 3.3, revision 16)
  550 Changes from revision 15:
  551 
  552 	The Revision 15 build was broken due to file timestamp corruption.
  553 	Revision 16 is a complete re-build.
  554 
  555 Version 3.3.1 (VNC Version 3.3, revision 15)
  556 Changes from revision 13:
  557 
  558 	WIN-NT & WIN-95:
  559 
  560 	WinVNC will now run as a service on both Windows NT and Windows 95.
  561 	Running WinVNC with the -install command-line option will install it into the system
  562 	service control manager and set it to auto-run on bootup.  The -remove option will stop
  563 	the service if necessary and will then remove it.
  564 	WIN-95 : winvnc -install will cause the service to run immediately.
  565 	WIN-NT : winvnc -install will install the service into the manager but not start it.
  566 
  567 	To allow the per-machine settings for WinVNC to be changed even when WinVNC is running as
  568 	a service, the "-settings" option will cause the service to pop-up the properties dialog.
  569 
  570 	A bug which often caused the entire screen to be transmitted twice to a connecting
  571 	client is now fixed.
  572 
  573 	The general Shift, Alt and Control-related bugs, affecting non-UK/US keyboard layouts in
  574 	particular, are now corrected, with one important exception, mentioned in the NOTES
  575 	section below.
  576 
  577 	WIN-NT ONLY:
  578 
  579 	Ctrl-Alt-Del can be simulated by WinVNC if a client sends it, allowing users to log on
  580 	and off and to lock the workstation remotely.
  581 
  582 	WIN-95 ONLY:
  583 
  584 	Shift, Alt and Control were broken in Revision 13, since Windows 95 cannot distinguish
  585 	left and right shift keys at all.  This is now fixed.
  586 
  587 	NOTES:
  588 
  589 	When typing into an application set to use keyboard layout A, using WinVNC run with
  590 	keyboard layout B, problems may be experienced because of WinVNC setting the wrong Shift
  591 	key states to generate particular characters.  As long as only one keyboard layout is used
  592 	consistently across all applications, this shouldn't be a problem.
  593 
  594 Version 3.3.1 (VNC Version 3.3, revision 13)
  595 Changes from revision 12:
  596 
  597 	The Caps-Lock, Num-Lock and Scroll-Lock keys are now correctly disabled whenever a new
  598 	client connects, if that client has keyboard input enabled.
  599 
  600 	Left and right versions of the Shift, Alt and Control keys can now be distinguished.
  601 
  602 	The right and middle mouse buttons can now be set to trigger updates, although by default
  603 	these options are not used.
  604 
  605 Version 3.3.1 (VNC Version 3.3, revision 12)
  606 Changes from revision 10:
  607 
  608 	It is now no longer possible to accept unauthenticated incoming connections.
  609 
  610 	If WinVNC fails to access the local root window then any remote connection will be refused.
  611 
  612 Version 3.3.1 (VNC Version 3.3, revision 10)
  613 Changes from revision 9:
  614 
  615 	Black-background initial update bug is now fixed.
  616 
  617 	Border redrawing bug is now fixed.
  618 
  619 Version 3.3.1 (VNC Version 3.3, revision 9)
  620 Changes from revision 8:
  621 
  622 	Local connections to WinVNC servers are now filtered out.
  623 
  624 	The OMNIthread package is now included as part of the WinVNC source distribution.
  625 
  626 	The VTypes header file is now included in the WinVNC source distribution.
  627 
  628 	WM_NCPAINT messages are hooked, resulting in better updates of window borders.
  629 
  630 Version 3.3.1 (VNC Version 3.3, revision 8)
  631 Changes from revision 5:
  632 
  633 	The resource leak while rendering the mouse pointer has been fixed.
  634 
  635 	The WinVNC tray icon changes colour when there is a remote connection.
  636 
  637 	An Apply button has been added to the Properties dialog so that it can be used as the main
  638 	WinVNC window on Windows NT 3.51 (or any other system without a system tray.)
  639 
  640 	The Non-CORBA installer now generates an uninstall option properly.
  641 
  642 	WinVNC may now be run in a view-only mode, in which remote users have no control.
  643 
  644 Version 3.3.1 (VNC Version 3.3, revision 5)
  645 Changes from revision 4:
  646 
  647 	The machine name is now converted to lowercase to get the desktop name.
  648 
  649 	The CORBA control object is properly removed from the Naming Service on exit.
  650 
  651 Version 3.3.1 (VNC Version 3.3, revision 4)
  652 Changes from revision 1:
  653 
  654 	WinVNC now warns if no password has been set for the current user.
  655 
  656 Version 3.3.1 (VNC Version 3.3, revision 1)
  657 Changes from version 3.05:
  658 
  659 	WinVNC now listens on a socket for incoming HTTP connections and produces HTML accordingly.
  660 	This allows the server to be connected to from any web browser that supports Java, without
  661 	any plug-ins or other software having to be installed on the client system.
  662 
  663 	The server now copes gracefully with the absence of a valid CORBA setup and warns the user.
  664 
  665 	Any previous, running instance of WinVNC is detected, to prevent further instances from
  666 	running.
  667 
  668 	The new, DES-based authentication scheme is used. This results in incompatibility with VNC
  669 	clients using version 3.2 or lower of the protocol. To avoid this problem, connect via the
  670 	HTTP interface, which provides the correct version of the Java viewer. Version 3.3+ based
  671 	clients will handle the new scheme correctly.
  672 
  673 	Shared VNC client connections are now fully supported.
  674 
  675 James "Wez" Weatherall
  676 7 November 1997
  677 
  678