Einfhrung zu LHALIB.LZH
------------------------

In zunehmendem Mae werden heute komprimierte Dateien und Archive zur
Verteilung groer Datenmengen benutzt. blicherweise werden dabei
die notwenigen Dekomprimierprogramme mit den Dateien zu einer logischen
Datei, dem selbstentpackenden Archiv, verbunden.

Whrend der unter DOS arbeitende Programmierer zumeist nur das Startprogramm 
eines solchen Archives zu starten braucht, ist dies unter Windows nicht mehr
so einfach mglich.

Die LHALIB ermglich es dem Windows-Programmierer, LHA-Archive (Dateiendung
normalerweise ".LZH") vom Anwendungsprogramm aus anzusprechen. Dabei knnen
bestimmte Dateien aus dem Archiv ausgewhlt werden und der Fortschritt
der Dekompression kann durch eine Callback-Funktion angezeigt werden.


Die Demo-Programm WINLHA und DLLTST
-----------------------------------

Winlha ist ein Beispielprogramm, das die Verwendung von LHALIB in einem 
Anwendungsprogramm beispielhaft demonstriert. Im Sourcecode erkennen Sie 
leicht Funktionen wie Dateiauswahl, Abbruch und Fortschrittsanzeige.

WINLHA bearbeitet das Archiv, dessen Dateiname Sie in der Kommandozeile
angeben.

DLLTST ist eine abgewandelte Version von WINLHA, die statt den Assemblercode 
direkt in die EXE-Datei einzubinden eine DLL benutzt. Dadurch wird LHALIB auch
fr Visual-Basic-Programmierer interessant. Zustzlich wird im Quellcode
die Verwendung der LHAMessage-Routine gezeigt, die im Falle eines Fehlers
eine MessageBox mit einem Klartext-Fehler ausgibt. Diese Funktion ist nur
in der DLL vorhanden


Funktionsweise von LHALIB.ASM
-----------------------------

LHALIB ist als Assemblerprogramm LHALIB.ASM implementiert. Zur Verbindung
mit Ihren C-Anwendungsprogrammen dienen LHALIB.H und LHALIB.RC.

In LHALIB.H sind alle bentigten Funktionsprototypen abgelegt, whrend
in LHALIB.RC ein Vorschlag zur Unterbringung von Fehlermeldungen in einem
Resourcen-Script zu finden ist.

Die Kommunikation zwischen Anwendungsprogramm und LHALIB findet mittels der
Prozeduren LHAExpand und einer als bergabeparameter angegebenen CALLBACK-
Routine statt.

Zu verschiedenen Zeiten ruft LHAExpand die CALLBACK-Routine des 
Anwendungsprogrammes auf. Diese kann den Fortschritt bei der
Dekompression anzeigen und durch entsprechende Rckgabeparameter die
zu dekomprimierenden Dateien auswhlen oder die Dekompression abbrechen. 

Falls beim Aufruf von LHAExpand keine CALLBACK-Routine im 4. Parameter 
angegeben wird (NULL), werden alle Dateien des Archives dekomprimiert.

Durch den 2. Parameter  kann das Anwendungsprogramm ein anderes als
das aktuelle Verzeichnis als Zielverzeichnis auswhlen, z.B. D:\TEMP\



Benutzung von LHALIB.DLL
------------------------

Die LHALIB.DLL enthlt den Programmcode der LHALIB.ASM, den DLL-Verwaltungs-
programmcode, Klartextfehlermeldungen als Resource und einer zustzlichen
Routine zur Ausgabe von Fehlermeldungen.

For C-Programmierer steht die LHALIB.LIB-Datei zur Verfgung, die die
von LHALIB.DLL exportierten Funktionen zur Verfgung stellt. Die
Kommunikation mit dem Hauptprogramm erfolgt auf dieselbe Weise wie bei
LHALIB.OBJ. 

Programmierer anderer Programmiersorachen wie Visual Basic , Word Basic
usw. werden hiermit herzlich gebeten, mir ihre Header-Dateien zwecks
weiterer Verbreitung zu bersenden.


Soweit bekannt msste die LHALIB.DLL mehrinstanzenfhig sein, d.h. 
mehrere Anwendungsprogramme knnen gleichzeitig an der Dekompression
von Archiven arbeiten.


Urheberrechte
-------------

LHALIB ist wurde mit groem Arbeitsaufwand aus einem frei verfgbaren 
Quelltext des Authors von LHA, Haruyasu Yoshizaki abgeleitet.

Die nderungen fr LHALIB wurden von Durchgefhrt von

Bernd Herd
Heidelberger Landstr. 316
64297 Darmstadt
Germany

Tel.: 06151/591216      EMai: 100545.3001@compuserve.com
Fax.: 06151/591216

Die von mir durchgefhrten nderungen an den ursprnglichen Quelltexten
sind Public Domain. Falls Sie LHALIB fr Ihre Anwendungen einsetzen, wre
dennoch eine kleine finanzielle Beteiligung zw. 40 und 80 DM angebracht.
Dies wrde Ihnen auch den unverzglichen Erhalt der neuesten Version sicher-
stellen.



Weitere thematisch verbundene Produkte von uns.
-----------------------------------------------

ASETUP: Sehr leistungsfhiges Setup-Programm installiert Software
        basierend auf der LHA-Dekompression Public Domain mit C-Quellcode
HEXE:   Workshop fr ASetup erlaubt die Erstellung von Distributions-
	Disketten Mausgefhrt und ohne Programmierkenntnisse.
	Shareware. Lizenz: 199 DM
WITCH:  Hexe in Englischer Sprache.
JPANI:	LHA- und JPG-Komprimierte Bilder/Fotos in Windows-Hilfedateien 
	verwenden.
LZAPI:	Programmierschnittstelle und DLLs zur Benutzung von
	Archiven von ZIP/ARC/LHA/TAR/RAR/ARJ. 
	- Archivinhalt listen
	- Datei(en) extrahieren
	- Datei(en) hinzufgen oder archiv erstellen
	- Datei(en) Lschen
	- Archivtyp feststellen
	Auerdem: Module zur Benutung LHA-Komprimierter 
	Programm-Ressourcen (Bitmaps, WAV-Files etc.).
	Erhltlich fr WIN32 und WIN16
	Shareware. Lizenz 149 DM.


Verbesserunge in Version 1.1
----------------------------

Version 1.1 bentigt nun ca. 50 kByte weniger auf der Festplatte und whrend 
der Ausfhrung der Anwendung, solange LHAExpand nicht aufgerufen wird, da
der Pufferspeicher nun erst beim Start der Prozedur LHAExpand zugeordnet wird
und anschlieend sofort wieder freigegeben wird.



Verbesserungen in Version 1.2
-----------------------------

Problem mit LHA 2.12 - Archiven bei Dateien mit rckgesetztem Archiv-
Attribut behoben.

LHALIB.DLL hinzugefgt, zustzliche Routine zur Ausgabe der Fehlermeldung
DLLTST hinzugefgt.



Verbesserungen in Version 1.3
-----------------------------

Anstelle des Dateinamens kann nun ein File-Handle einer bereits erffneten Datei 
benutzt werden. Dieses File-Handle kann z.B. auf eine Ressource in einer
EXE-Datei oder DLL verweisen.


Verbesserungen in Version 1.4
-----------------------------

LHAExpand kann nun einen ganzen Verzeichnisbaum expandieren, der mit dem -x Parameter
von LHA gespeichert wurde.

Funktion LHAExpand und die LZHEAD-Struktur erhielen einern User-Parameter mit dessen
Hilfe der Callback auf Instanzendaten des Aufrufers speichern kann.


