Friday 27 June 2008

Common Compatibility Issues

One of the most common (and yet rarely publicized) issues to affect almost all applications that are over two years old will be Help file compatibility. Microsoft has deprecated all Microsoft Help file formats and components. Meaning, help files are not supported under Windows Vista and definitely will not be supported under Longhorn Server (due H2 2007).

Help files (HLP extension) are the files that include the application specific documentation on usage, troubleshooting and further support options. While not absolutely essential to application functionality they are a key element to the user experience.

In addition to no longer allowing users to read/use Help (HLP) files; the following Help file components are no longer supported under Windows Vista;

Windows.hlp
Winhlp32.hlp
Winhlp32.cnt
Winhelp.cnt
Nocntnt.cnt

Reading the Microsoft knowledge base article (KB917607), Microsoft has the following to say about Help files on Windows Vista,

"The .HLP files that depend on these files may return an error when users try to open them. These files will be available in the future from the Microsoft download center to address compatibility issues. "


When Microsoft "deprecates a component" it effectively does four things;

1) Disable support for that component on the target OS - meaning it will no longer work
2) No longer provide technical support for that component - meaning Microsoft will not help you on this issue
3) Actively encourage you to try other options - i.e. direct to you to a later component
4) Possibly remove support for component dependencies


Following this methodology, Microsoft no longer will "load" a help file and display it's contents. Instead you will receive a message indicating that this functionality is now longer supported and will direct you to a Microsoft knowledge base article detailing the security issues surrounding Help files.

This will cause a number of "Known Issues" when using Help files including;

· Help Macros are disabled
· You cannot access .HLP files that are stored on intranet sites
· Non-interactive user access has been blocked
· Drag-and-drop functionality has been disabled


I am really surprised at this approach. The WinHelp.EXE engine (version 5.0x) under Windows XP SP2 may be a significant security issue so I understand that an upgrade or update is necessary. However, why not include WinHelp.exe (version 6.0) in Windows Vista?

Microsoft makes an update available (version 6.0 of the WinHelp engine) on their knowledge base website (http://www.microsoft.com/downloads/details.aspx?familyid=6EBCFAD9-D3F5-4365-8070-334CD175D4BB&displaylang=en).

So, you can download it and continue using older, "non-compatible" HLP files as long as you like. Hmmm...

Actually, there are two further points. If you need to support any of the following features you also need to add the following registry entries on your target machine.

Allow Help Macros
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WinHelp
Value: AllowProgrammaticMacros
Type: DWORD

Unblock .HLP files that are stored on the intranet
Key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WinHelp
Value: AllowIntranetAccess
Type: DWORD


No comments: