# Virtual Network Computing
from ORL

## What's new in the Windows VNC package?

### Explaining the versions...

The overall VNC system has a version number, currently 3.3.2 at the time of writing, which basically means it's the second package based on protocol version 3.3. We have been adding features to the Windows package fairly frequently, so there may be several Revision numbers within a given version. We don't release all our revisions, so there are gaps in the numbers. Think of it as the build number of the WinVNC server.

A more complete list of changes can be found in the files called History.txt included in the source packages of both the viewer and the server. This is just a summary.

### New in windows package 3.3.2 R5

See the documentation for further details. The R5 package consists of:

- Revision 5 of the WinVNC server
- Revision 9 of the Windows VNC viewer.

#### Windows VNCviewer (R9)

More internal restructuring so that more code can be shared with the Windows CE viewer. Fixed some resource/handle leaks.

Added a 'Request Refresh' option to the menu.

#### WinVNC Server (R5)

The WinVNC registry settings have now been reorganized and improved to allow better control over individual user's capabilities when running it, whether as an application or as a service. Full details in the documentation.

Mouse events are now produced to reflect those sent on the wire, regardless of whether the mouse buttons would locally be swapped by the OS. This means that left- or right- handedness is a client-side feature.

If you hold the mouse over the WinVNC icon in the System Tray, it will attempt to display the local IP addresses of the machine. Useful if these are dynamically allocated.

Some of the more important fixes:

If a client chose to send multiple update requests to the server without waiting for the update data, then the server would only consider the last request. This behaviour was incorrect and has now been fixed. As a result, WinVNC will now work properly with the PalmVNC viewer.

The HTTP server section of WinVNC could end up listening on the wrong port number when automatic display number selection was in use. This is now fixed.

A small memory leak in the WinNT side of the vncService::CurrentUser function has been fixed. Although the amount lost on each execution was small, the function is called often enough for this to cause problems over long periods of use.

Fixed a potential lockup when the Properties dialog is closed by the OS rather than by the Ok or Cancel buttons.

### New in windows package 3.3.2 R2

See the documentation for further details. The R2 package consists of:

- Revision 2 of the WinVNC server
- Revision 5 of the Windows VNC viewer.

#### Windows VNCviewer (R5)

Added full-screen mode. Many thanks to Greg Hewgill <greg@hewgill.com> for providing much of the basis for this.

Creates a palette for much better colour on 256-colour clients.

Added -viewonly and -restricted switches.

In addition to Ctrl-Alt-Del, you can send individual Ctrl-up, Ctrl-down, Alt-up and Alt-down keystrokes from the menu.

Updates are not requested from the server while iconified.

The initial state of the clipboard is not sent on connection as it was in the past.

Substantial source code restructuring.

The local 'dot cursor' is only used when the viewer window has the focus.

The modifiers are all raised when losing focus.

In 'listen' mode, the tray icon is checked every 15 seconds and restored if not there. If your Explorer dies as often as mine, you might appreciate this.

Fixed session dialog box so longer host names could be entered.

#### WinVNC Server (R2)

Palette-based clients (such as the Linux SVGAlib client) are now properly supported by WinVNC.

Local-loopback connections, from viewers on the same machine as the server, can now be enabled.

Null-password connections can now be enabled.

WinVNC server logging features are in place, allowing remote connections and error conditions to be logged.

More of the keypad keys are now recognised from remote clients. This means that Ctrl-Alt-keypadDel will cause the server to perform the standard Ctrl-Alt-Del procedure.

Extra hook code is in place to make updates of pop-up menus, etc, work better.

The new ConnectPriority option is available, on a per-machine basis, to indicate how the server should deal with multiple non-shared connections.

Automatic display number selection is now available.

The CopyRect optimisations are now better handled.

Screen update notifications are now handled more efficiently.

The WinVNC -kill command will now wait until any old copies of WinVNC have quit before attempting to continue.

### New in 3.3.2

The MRU (most recently used) list on the viewer now works much better. Extra command line options allow for more debugging output.

WinVNC now returns explanatory message text to the viewer when an incoming connection is refused because of an empty Password field or a local-loopback connection.

Mouse movements are now pre-processed by the Desktop handler and only passed to the Client handlers immediately before an update is triggered, resulting in less overhead and therefore lower latency.

If a client requests the CopyRect encoding in the list of encodings it supports then WinVNC will now use the CopyRect primitive when doing simple tasks like dragging windows. This still has some flaws in it but generally improves performance.

Updated the Java classes exported by WinVNC to include the Send-Ctrl-Alt-Del button.

Added a "-about" option, which will cause an _already running_ copy of WinVNC to display its About box, making it easier to check that you have the latest version!

Added version information to the VNCHooks Dynamic Link Library. This can be viewed selecting the properties dialog for the vnchooks.dll file.

### New in 3.3.1 Revision 19:

MS-DOS applications can now by typed into! Thanks to Gur Stavi for pointing out that WinVNC didn't previously generate keyboard scancodes for key events. This means that the COMMAND.COM and EDIT programs, for example, may now be used through VNC.

Lookup-table based colour translations are now incorporated into WinVNC. This means a small increase in memory usage but delivers a noticable performance boost on most screen formats.

1, 4 and 8 bit palette-based local displays are now handled directly by WinVNC, resulting in a significant performance boost, although there are currently problems with the palette layout being confused in places.

More intelligent culling of unchanged regions of the screen from the list of rectangles to be sent has been implemented. Generally, this isn't noticable but over low-bandwidth links, it should have a significant effect.

WM_ENDSESSION is handled properly for full system shutdown. WM_DISPLAYCHANGE is now handled, so that when the display resolution changes, all remote VNC users are disconnected, to prevent corrupt display updates.

The mouse cursor rendered to VNC clients is now correct most of the time.

When installing WinVNC as a service, quotes are now placed around the executable's name, to avoid problems if there are whitespace characters in the path. (Common because of installing to "program files\orl\vnc").

The command-line options available have changed slightly - see the WinVNC documentation for details.

The Java viewer class files have been updated. The new classes are slightly more compatible with borderline Java VMs.

Deferred update messages are no longer removed from the application's message queue behind its back, hopefully resulting in more reliable behaviour & fewer lock-ups.

The screen-saver is now not disabled when WinVNC is running in service mode and a connection is made, to avoid a potential race condition. This will be handled better in a future revision.

#### WIN-NT ONLY:

When running as a system service, WinVNC no longer disconnects all remote VNC connections whenever the current desktop changes.

Corrected some problems with shift-key release code confusing Windows NT.

#### WIN-95 ONLY:

WM_USERCHANGED is handled, so that when no user is logged in, the machine-local password is used, otherwise the user's own VNC password and settings are used. (This assumes that Windows 95 is set to Multiple User Profile mode)

Under Windows 95, WinVNC running in service mode no longer crashes when told to stop by the -kill or -remove options.

The main text area of the Windows 95 console will now be polled by WinVNC properly when the Poll Console Windows Only option is set.

### New in 3.3.1 Revision 16:

The big change is that WinVNC can now run as a service under both 95 and NT, so you can log in and log out remotely. This is still under development, so please excuse some rough edges! For more details see the WinVNC documentation. It will still run in its conventional mode if preferred.

The viewer now has a 'Send Ctrl-Alt-Del' option on the menu for use with the above. Unix viewers can generally send this anyway, as can Java viewers on platforms which don't use it locally.

A bug which often caused the entire screen to be transmitted twice to a connecting client is now fixed.

The general Shift, Alt and Control-related bugs, affecting non-UK/US keyboard layouts in particular, are now corrected, with one important exception:

When typing into an application set to use international keyboard layout A, using WinVNC run with keyboard layout B, problems may be experienced because WinVNC sets the wrong Shift key states to generate particular characters. As long as only one keyboard layout is used consistently across all applications, this shouldn't be a problem.

The viewer now generates AltGr international characters according to the keyboard layout in use. The right Ctrl key can be combined with these so that on a German keyboard, for example, AltGr-Q gives @ and RightCtrl-AltGr-Q gives Ctrl-@. Dead keys are not properly supported yet.

### New in 3.3.1 Revision 13:

The Caps-Lock, Num-Lock and Scroll-Lock keys are now correctly disabled whenever a new client connects, if that client has keyboard input enabled.

Left and right versions of the Shift, Alt and Control keys can now be distinguished on NT if the viewer distinguishes.

The right and middle mouse buttons can now be set to trigger window updates, although by default these options are not used. This can be handy for things which use right-click for something other than popping up a menu.

For comments, feedback, etc, please see the 'Keeping in touch' page.
Copyright 1998 - The Olivetti & Oracle Research Lab