# WinHelp

WinHelp war ein Hilfeformat, das erstmals im Jahr 1990 mit Windows 3.0 eingeführt wurde und noch bis Windows XP unterstützt wurde. Das Format ist nicht öffentlich dokumentiert, konnte aber inzwischen erfolgreich mittels Reverse Engineering entschlüsselt werden.

## Versionen

Es gab vier Versionen von WinHelp:
* Version 3.0: Dies war die erste Version, die zusammen mit Windows 3.0 erschien. Als Compiler diente HC.EXE bzw. später HC30.EXE.
* Version 3.1: Diese Version erschien zusammen mit Windows 3.1 und unterstützte Makros, Tabellen sowie zahlreiche neue Bildformate. Als Compiler diente HC31.EXE.
* Version 4.0: Diese Version war Bestandteil von Windows 95 und fügte erstmals ein Inhaltsverzeichnis sowie eine Volltextsuche hinzu. Außerdem wurden zahlreiche Beschränkungen früherer Formate (z. B. Beschränkung eingebetteter Bilder auf 16 Farben) aufgehoben.
* Multimedia Viewer: Ein mit WinHelp eng verwandtes Format, das beliebige Dateien (z. B. auch Sounds, Videos oder ausführbare Dateien) enthalten konnte. Zum Erstellen von Hilfedateien in diesem Format gab es das kostenpflichtige Multimedia Publishing Toolkit. Die Dateien hatten die Dateiendung .MVB und benötigten einen speziellen Betrachter. Dieses Format wurde u. a. von frühen Version von Microsoft Encarta, aber auch von der MSDN Library verwendet.

## Beschreibung

WinHelp basierte auf dem Dateiformat RTF. Hilfedateien konnten somit mit einem beliebigen Textverarbeitungsprogramm (z. B. Microsoft Word) erstellt werden. Spezielle Anweisungen für den Compiler wurden in geschweiften Klammern festgehalten, zur abschnittsweisen Unterteilung der Hilfedatei dienten Fußnoten. Hinzu kam noch eine Datei mit der Dateiendung .HPJ. Diese entsprach von der Funktion her den Makefiles gängiger Programmiersprachen und enthielt u. a. Verweise auf sämtliche Dateien, die Bestandteil der kompilierten Hilfedatei werden sollten.
Bilder konnten entweder direkt in das RTF eingefügt werden (waren dann aber auf eine Größe von 32 KB beschränkt) oder als Referenz eingebettet werden, wobei das Bild erst bei Laufzeit eingefügt wird. Unterstützt wurden zunächst ausschließlich Bitmaps, ab Windows 3.1 WMF-Dateien sowie zwei proprietäre Bildformate.
Mithilfe von Makros konnten entweder Funktionen über eine mitgelieferte DLL-Datei ausgeführt werden, oder auch unmittelbar aus der Hilfedatei heraus auf die Windows-API zugegriffen werden. Insbesondere letzteres galt später als eklatantes Sicherheitsrisiko.
Optional konnte eine Hilfedatei Schlüsselwörter definieren, die dann über einen Index durchsucht werden konnten. Ab Windows 95 gab es dann auch eine echte Volltextsuche innerhalb von Hilfedateien.
Die Compiler waren noch bis Windows 3.1 MS-DOS-Programme und somit auf die 640 KB konventioneller Speicher begrenzt, auch wenn Microsoft später eine Version des Compilers veröffentlichte, die DOS-Extender unterstützte und somit nicht mehr von dieser Beschränkung betroffen war. Ab Windows 95 gab es dann den grafischen Help Compiler, der auch kostenlos zum Download von der Microsoft-Webseite angeboten wurde.

## Ablösung des Formats

Mit Windows 98 wurde WinHelp durch das HTML-Help-Format ersetzt, WinHelp wurde aber aus Gründen der Abwärtskompatibilität weiter unterstützt.
Windows Vista enthält keine Unterstützung für WinHelp mehr. Der Betrachter kann aber bei Bedarf von der Microsoft-Webseite heruntergeladen werden. Auch für Windows 7 und Windows 8 kann ein Betrachter für WinHelp noch von der Microsoft-Webseite heruntergeladen werden. Spätere Versionen unterstützten das WinHelp-Format nicht mehr.