1. ULTRACONNECT DOKUMENTATION	2
1.1 Was ist UltraConnect ?	3
1.2 Was ist das Besondere an UltraConnect?	3
1.3. Wie komme ich an eine aktuelle UltraConnect - Version?	4
2. DIE PROGRAMMIERSCHNITTSTELLE VON ULTRACONNECT	4
2.1. Vorraussetzungen auf Anwenderseite	5
2.2. Update - Control System	6
2.2.1. Das Standardverhalten des Update - Control Systems	6
2.2.2. Die Struktur UpdateControl	6
2.2.3. Praktische Anwendung	9
2.2.4. Die Funktion GetFileDateAndTime	9
2.2.5. Die Funktion EncodeDateTime	10
2.3. Das Hilfsprogramm uconinst.exe	10
2.4. Installationsfunktion	10
2.4.1. Praktische Anwendung	10
2.5. Die Datei - Nachfrage Funktion (File Request)	11
2.5.1. Die Struktur RequestControl	11
2.5.2. Praktische Anwendung	12
2.6. Die Dateiliste	12
2.7. Die Upload - Funktion	12
2.7.1. Praktische Anwendung	13
2.8. Modem / ISDN - Konfigurierung des Clients	13
3. DER ULTRACONNECT - SERVER	13
3.1 Installation	13
3.2. Nhere Hinweise zum Betrieb	14
3.2.1. Protokolldatei	14
3.2.2. Datenbertragungsprotokolle	14
3.2.3. Hardwareempfehlungen fr den Server	14
3.3. Die Terminalfunktion des UltraConnect - Servers	15
4. DIE KUNDENVERWALTUNG CUSTOMER.EXE	15
5. ALLGEMEINE HINWEISE	15
5.1. Geplante Erweiterungen	15
6. COPYRIGHT UND LIZENZBESTIMMUNGEN	16
7. PREISE	16


1. UltraConnect Dokumentation
1.1 Was ist UltraConnect ?
"UltraConnect" besteht aus mehreren DLLs, die Sie in Ihre Programme einbinden knnen. Mit wenigen  
Funktionsaufrufen dieser Bibliothek knnen Sie  komfortabel ein spezielles Mailboxsystem und ein Update - 
Kontroll und Servicesystem in Ihre eigenen Programme einbinden.
"UltraConnect" besteht aus mehreren Teilen. Der erste Teil besteht aus der Programmierbibliothek. Mit 
wenigen  Funktionsaufrufen dieser Bibliothek knnen Sie  komfortabel ein spezielles Mailboxsystem und ein 
Update - Kontroll und Servicesystem in Ihre eigenen Programme einbinden.
Ihre Kunden knnen dann z.B. auf einfachste Weise eine neue Version, ein Update oder ein Bugfix per Modem 
oder ISDN bertragen und automatisch installieren lassen. Auf dem UltraConnect - Server wird eine 
Kundenstammdatei und eine Zugriffsdatei gefhrt, in der die Zugriffsberechtigungen verwaltet werden und die 
einzelnen Zugriffe nach Datum, Zeit, Online - Zeit und abgerufenem Volumen registriert werden.
Sie knnen so, falls Sie dies wnschen, jedem Ihrer Kunden eine individuelle Rechnung fr Ihre 
Supportleistungen erstellen. Eine weitere Variante dieses Verfahrens wren die 0190er Nummern der Telekom.

1.2 Was ist das Besondere an UltraConnect?
UltraConnect bietet  Programmieren und Softwarehusern die Mglichkeit, die Untersttzung fr Ihre Kunden 
wesentlich zu verbessern. 

Update - Service
Ihre Kunden knnen sich auf einfachste und schnellste Weise eine neue Version ihrer Software von 
einem zentralen Server installieren lassen - ein paar Mausklicks gengen.

Mailbox - Service
 Sie knnen auf dem Server stndig aktuelle Treiber, Tools und Infos bereithalten - Ihr Kunde kann auf 
denkbar schnellste und einfachste Weise darauf zugreifen. 

Geringe Online - Zeiten
UltraConnect wurde auf Reduzierung der Online - Zeiten hin optimiert, soda Ihr Kunde Telefonkosten 
spart, Leerlaufzeiten, in denen nichts bertragen wird, weil das System auf Eingaben wartet, entstehen 
nicht.

Multi - Plattform Untersttzung
Die Programmierbibliotheken fr das UltraConnect - Paket  sind  momentan fr die Betriebssysteme 
OS/2 und Windows 3.1 erhltlich. Die 16-Bit Bibliothek fr Windows 3.1 funktioniert auch unter 
Windows 95. Eine 32-Bit Version fr Windows 95 und Windows NT ist geplant. 
Das Serverprogramm gibt es momentan nur fr OS/2 , es ist aber auch eine Windows NT Version 
geplant. Wir empfehlen aber die OS/2 Version, weil OS/2 fr DF - Anwendungen besser geeignet ist.

Geringe Belastung des Servers durch UltraConnect
Der UltraConnect - Server nutzt die Mglichkeit moderner Betriebssysteme, Programmteile in einzelne 
Threads aufzulsen (Multithreading). So hat jeder Kanal seinen eigenen Thread. Diese Threads sind 
nicht immer aktiv, sondern schlafen die meiste Zeit und schauen nach einer einstellbaren Zeit nach, 
ob ein Anruf vorliegt, erst dann wird der Thread aktiv. Durch dieses Konzept bentigt der UltraConnect 
- Server im Ruhezustand fast keine CPU - Zeit, er belastet das System somit so gut wie nicht. Auf diese 
Weise eignet er sich auch hervorragend als Hintergrund - Server.

Untersttzung analoger Modems, externer und interner ISDN - Adapter
UltraConnect untersttzt auf Client - Seite wie auch auf Server - Seite interne ISDN - Karten, externe 
ISDN - Adapter und analoge Modems. Im Falle einer ISDN - Verbindung wird ein selbstentwickeltes 
Protokoll eingesetzt, das einen hheren Datendurchsatz ermglicht als das bei einer analogen 
Verbindung verwendete ZModem - Protokoll.


Schnelligkeit
Sie knnen mit UltraConnect Daten viel schneller bertragen, als das im  Internet in der Regel mglich 
ist. Wenn Sie unter ISDN Kanalbndelung einsetzen, erreichen Sie fast 16000 cps (Zeichen in der 
Sekunde).

Kostengnstig
Ihr Kunde kann die bertragung z.B. automatisch nachts ausfhren lassen, um so die sehr gnstigen 
Nachttarife auszuntzen.

Server - Hosting
Wenn Sie keinen eigenen OS/2 - Rechner in Ihrem Hause betreiben wollen, bieten wir Ihnen die 
Mglichkeit diesen als "virtuellen Server" in unserem Hause zu betreiben. Kontaktieren Sie uns!

Erweiterungen und Anpassungen
Sollten Sie Funktionen bentigen, die UltraConnect noch nicht zur Verfgung stellt, knnen wir unter 
Beteiligung an den Entwicklungskosten diese eventuell noch nachliefern. Auch kundenspezifische 
Anpassungen sind mglich.

1.3. Wie komme ich an eine aktuelle UltraConnect - Version?
Wenn Sie diese Dokumentation lesen, sind Sie wahrscheinlich schon im Besitz des Demoprogramms. Mit Hilfe 
des Demoprogramms knnen Sie ber die Dateiliste die neueste Demoversion des UltraConnect - Pakets 
kostenlos von unserem Server herunterladen. Registrierte Benutzer haben berdies die Mglichkeit, auch die 
neueste Vollversion auf diesem Weg zu beziehen. Wenn Sie noch kein Demoprogramm haben sollten, knnen 
Sie mit jedem Terminalprogramm die Nummer 07663-940160 whlen und das Demoprogramm von unserem 
Server herunterladen. Falls Sie UltraConnect via Diskette beziehen wollen, berechnen wir Ihnen DM 20.-.
UltraConnect ist noch in der Beta - Phase, d.h. es ist noch nicht praxiserprobt, mit kleineren Fehlern mu 
gerechnet werden. 

2. Die Programmierschnittstelle von UltraConnect 
UltraConnect ist in C++ geschrieben und kann ber DLLs eingebunden werden. Ihr Programm mu nicht in C 
oder C++ geschrieben sein, sie sollten eigentlich mit jeder Sprache in der Lage sein, DLL - Funktionen unter 
Windows und OS/2 in Ihre Programme einzubinden. 

Statisch linken
Wenn Sie die DLLs statisch linken wollen, mssen Sie die jeweiligen beigefgten Importbibliotheken (.lib) 
zu Ihren Programmen hinzulinken.  UltraConnect ist zwar in C++ geschrieben (die entsprechenden Funktionen 
sind  mangled (tragen vom Compiler codierte Namen)), aber wir haben in jeder Bibliothek auch ein C - 
Modul integriert das die codierten Namen aufruft. Sie knnen deshalb die UltraConnect - Funktionen  ganz 
normal aufrufen (ohne das Schlsselwort C++ verwenden zu mssen), ob Ihr Programm nun in C++ 
geschrieben ist oder nicht. Selbstverstndlich mssen Sie, wenn Sie z.B. in Pascal programmieren,  die 
Funktionen aber trotzdem als C - Funktionen deklarieren.

Dynamisch linken
Sie knnen  die UltraConnect - DLLs auch dynamisch (zur Lauzeit) linken.  Wenn Sie die Funktionsadressen 
erfragen, knnen Sie dabei die entprechenden Ordinalzahlen (Funktionsindex) angeben, Sie finden diese in der 
Datei ordinal.h. Ein Beispiel fr diese Vorgehensweise finden Sie in der Datei client.cpp. Sie knnen aber 
auch direkt die Funktionsadressen erfragen.

Externes Programm verwenden
Sie knnen das UltraConnect - System auch ber ein externes Programm ansprechen. Es heit client.exe (der 
Quellcode liegt bei).
Das Programm erwartet eine Kommandozeile mit folgendem Format:
	Kommando=Datei
"Kommando" kann die folgenden Werte annehmen:
	"Update" (Aufruf von update_control)
	"Install" (Aufruf von call_install)
	"Request" (Aufruf von filebase)
	"Upload"  (Aufruf von FileUpload)

"Datei" ist der Dateiname, der die Struktur "RequestControl" bzw. "UpdateControl" enthlt. Erzeugen Sie in 
Ihrem Programm eine Binrdatei mit dem Inhalt der entprechenden Struktur und rufen Sie client exe auf.
Wir haben auf diese Weise eine sog. Pipe implementiert. Aus Kompatibilittsgrnden verzichteten wir bisher 
auf  richtige Pipes unter OS/2.


2.1. Vorraussetzungen auf Anwenderseite
Wenn Sie die UltraConnect - Pakete in Ihre Programme einbinden, mssen Sie sicherstellen, dass bei Ihren 
Kunden folgende Vorraussetzungen erfllt sind:

1. Das Arbeitsverzeichnis bzw. das aktuelle Verzeichnis zum Zeitpunkt der Aktivierung des Update - 
ControlSystems, mu zwei Unterverzeichnisse haben, eines mit Namen empfang und eines mit Namen 
send. In diesen Unterverzeichnissen werden temporre Dateien und Steuerdateien des UltraConnect - System 
abgelegt.

2. Im Arbeitsverzeichnis mu eine ASCII - Datei namens telno.ini vorhanden sein. Diese Datei enthlt die 
Telefonnummer, die der UltraConnect - Client anwhlt.

Hinweis fr Windows 3.1:
Die Windows 3.1 Version der UltraConnect - Client Software verwendet die DLL ctl3dv2.dll, diese 
mu sich im Windows - Systemverzeichnis befinden. Beachten Sie dies bitte bei der Installation Ihrer 
Software beim Kunden.

Folgende DLLs mssen auerdem unter Windows 3.1 bei Ihrem Kunden im Zugriff sein:

FARBE.DLL
FILEBASE.DLL   (nur wenn filebase oder FileUpload aufgerufen wird)
MCONFIG.DLL
MODEM.DLL
PROTOCOL.DLL
SUPERCOM.DLL
UCONTROL.DLL (wenn das Update - Control System benutzt wird)
SCHOOK.DLL 
FCLDLGW.DLL
GCUAWB3D.DLL
GDLGWB3D.DLL
GTMFWB3D.DLL
FCLSPBW.DLL
GTIMWB3D.DLL
BC450RTL.DLL
G21AWB3D.DLL
GFIOWB3D.DLL
FAMAPI.DLL

Hinweis fr OS/2:
Folgende DLLs mssen unter OS/2 bei Ihrem Kunden im Zugriff sein:

FARBE.DLL
FILEBASE.DLL   (nur wenn filebase oder FileUpload aufgerufen wird)
G21AOI2D.DLL
GCRTOI2D.DLL
MCONFIG.DLL
MODEM.DLL
PROTOCOL.DLL
SUPERCOM.DLL
UCONTROL.DLL   (wenn das Update - Control System benutzt wird)

     

 
2.2. Update - Control System
Wenn Sie das Update - Control System einbinden wollen, mssen Sie die DLL ucontrol.dll statisch oder 
dynamisch linken. Alle anderen DLLs (mit Ausnahme von filebase.dll) mssen im Zugriff sein (im selben 
Verzeichnis oder im Suchpfad), sie brauchen aber nicht gelinkt zu werden.
Packen Sie auf Serverseite alle Ihre Programmkomponenten mit Hilfe eines der gngigen 
Kompressionsprogramme (pkzip, arj, rar, usw.) zu einer einzigen Datei zusammen.

Das Update - Controll - System wird durch folgende Funktion aufgerufen:

 short update_control (UpdateControl *)

Dieser Funktion wird ein Zeiger auf eine Struktur namens UpdateControl bergeben. Der Inhalt dieser 
Struktur steuert das Verhalten des Update - Control Systems.

2.2.1. Das Standardverhalten des Update - Control Systems
Wenn die Funktion update_control aufgerufen wird, erscheint zunchst ein Auswahlfenster, in dem der 
Anwender die gewnschte Betriebssystemversion auswhlen kann. Auerdem kann er ber eine Checkbox 
bestimmen, ob die Aktualittskontrolle greifen soll oder nicht. Klickt er in diesem Fenster ok an, wird das 
Sende- und Empfangsmodul aktiviert. Hier kann er gleich auf Senden klicken oder auf Warten. Im 
letzteren Fall wird zu einem angebbaren spteren Zeitpunkt die Verbindung aufgebaut. Nach 
Verbindungsaufbau wird ber eine Aktualittskontrolle geprft, ob der Anwender nicht schon die neueste 
Version hat. Wenn ja, wird nichts bertragen und der Anwender erhlt einen entprechenden Hinweis. Wenn 
nein, wird die entprechende Datei ins Zielverzeichnis des Anwenders bertragen. Dann erscheint ein 
Installationsfenster, in dem der Anwender angeben kann, ob die neue Version die alte berschreiben soll, ob 
die neue Version in ein anderes Verzeichnis installiert werden soll oder ob erst mal garnichts geschehen soll. 
Whlt der Anwender die erste oder zweite Mglichkeit wird automatisch ein Systemabschluss durchgefhrt und 
neu gebootet. Vor dem Neustart von Windows wird unter DOS das Programm uconinst.exe ausgefhrt. 
Dieses Programm ruft seinerseits einen Entpacker auf, der die abgerufene Datei entkomprimiert. Das  Ganze 
funktioniert auch unter Windows 95! Ein solch aufwendiges Verfahren ist oft ntig, da unter Windows 3.1 
geffnete DLLs im Speicher verbleiben und nicht nachgeladen werden, bzw. auf der Festplatte erst gar nicht 
berschrieben werden knnen. Unterschiedliche Versionen von DLLs auf Festplatte und Hauptspeicher knnen 
allerhand Chaos anrichten! Testen Sie im Zweifelsfall Ihre Anwendungssoftware, ob ein berschreiben 
ausreicht oder ob neu gebootet werden mu. Nach Programmende von uconinst.exe wird Windows wieder 
geladen. Unter OS/2 wird  nur ein Systemabschluss durchgefhrt und automatisch neu gebootet.

2.2.2. Die Struktur UpdateControl 
Durch diese Struktur erhlt das Update - Control System alle Informationen, die es braucht und Sie knnen als 
Programmierer das Verhalten des Systems bestimmen, indem Sie die einzelnen Elemente der Struktur 
verschieden fllen.
Die Definition dieser Struktur befindet sich in der Datei upcon.h.


typedef struct
{
long Handle;          /* Reserved  */
char win31 [80];    /* Win31 - Version */
char win95 [80];   /* Win95 - Version */
char winNT [80];   /* Win NT  */
char os2   [80];   /* OS/2  */
long vers;          /* Version - Id   */
long deflt;          /* Default - Focus Radiobuttons */
long options;
char dir [80];        /* Target - Directory  */
char UserExe [80];  /* Program that is invoked before shutting down the system / after Decompression - Tool */ 
char UserParam [40]; /* Parameter passed to UserExe                                  */
char PackExe [40];  /* Decompression - Program (may be invoked by InstExe)   */
char InstExe [40];   /* Program that is invoked before the system restarts (Windows 3.1 only) */
char PackParam [40]; /* Parameter passed to PackExe           */
char customer_id [12];  /* Customer Identification String 10 Bytes used */
long reg_nr;                 /* Your Registration number   */
} UpdateControl;

Die Bedeutung der einzelnen Elemente:

Handle:
Das Handle des Elternfensters (HWND). Es kann NULL sein. Aus Kompatibilittsgrnden wurde hier ein long 
- Wert verwendet.

win31:
Dateiname der gepackten Windows - 3.1 Version Ihrer Software. Wenn dieses Element leer ist (mit 0 
initialisiert), ist der betreffende Radiobutton im Versionsauswahlfenster deaktiviert.

win95:
wie win31 fr  die Windows 95 Version Ihrer Software.

winNT:
wie win31 fr die Windows NT Version Ihrer Software.

os2:
wie win31 fr die OS/2 Version Ihrer Software.


vers:
Versionsnummer Ihrer Software. Sie knnen auf dem Server eine Tabelle (update.tab) mit Dateinamen und 
zugehrigen Versionsnummern hinterlegen. Wird eine Datei nachgefragt, deren Versionsnummer kleiner oder 
gleich der hier eingetragenen ist, erhlt der Kunde den Hinweis Version ist aktuell und die Datei wird nicht 
bertragen (es sei denn, er aktiviert die Checkbox immer bertragen). Hat dieses  Element den Wert 0, dann 
ist im Versionsauswahlfenster die Checkbox nicht zu sehen, die Aktualittsprfung ist ausgeschaltet. Wenn der 
Server die nachgefragte Datei in der Tabelle nicht findet, dann wird die Datei bertragen.

dflt:
Gibt an, welcher Radiobutton im Versionsauswahlfenster den Focus beim Aufruf der Funktion erhalten soll. 
1 = Windows 3.1
2 = Windows 95
3 = Windows NT
4 = OS/2

options:
Dieses Feld ndert das Standardverhalten des Update - Control Systems:

Define     	Bedeutung
OPT_NOREBOOT   	Nach dem Erhalt des Updates (der Datei) wird kein Systemabschluss 
durchgefhrt.

OPT_NOQUESTION	Nach dem Erhalt des Updates (der Datei) wird kein 
Installationsfenster aufgeblendet.

OPT_USEREXE_OVER	Das Programm UserExe berschreibt  das Elternprogramm 
(UserExe wird gestartet und danach wird das Elternprogramm 
beendet). Dies kann wichtig sein, um geffnete Dateien (DLLs und 
EXE) zu berschreiben.

OPT_BATCH           	Das Sende- und Empfangsmodul wartet nicht auf 
Anwendereingaben. Dies kann bei automatischen Anrufen ntzlich 
sein.

OPT_NOCHOICE                   	Das Versionsauswahlfenster wird nicht aufgeblendet. Es wird das 
bertragen, was in win31 (falls es sich um eine Windows 3.1 
Anwendung handelt), bzw. win95, winNT oder os2 steht.

OPT_OVERLAY    	Das Dekompressionsprogramm berschreibt das Elternprogramm.

OPT_CHECKOS 	Es wird geprft, ob der Anwender eine Version fr dasselbe 
Betriebssystem abruft, das er gerade benutzt. Wenn nicht, mu er die 
neue Version in einem anderen Verzeichnis installieren.

OPT_CHECKFILEDATE        	Das Feld vers wird als codierte Datums- und Zeitangabe interpretiert. 
Es wird geprft, ob das Datum und die Uhrzeit der letzten 
Modifikation der hinterlegten Datei neuer ist, als das im Feld vers 
codierte. Siehe Funktion GetFileAndDate

Die einzelnen Optionen knnen einfach addiert werden (soweit sinnvoll).

dir:
Gibt das Zielverzeichnis an (wo die abgerufene Datei abgelegt wird). Ist dieses Element leer, wird die Datei im 
aktuellen Verzeichnis abgelegt.

UserExe:
Name des Programms, das nach dem Erhalt und der Dekompression (falls angegeben) der abgerufenen Datei 
aufgerufen werden soll. Hier knnen Sie z.B. ein eigenes Installationsprogramm aufrufen. Dieses Programm 
wird nur aufgerufen, wenn die Option OPT_NOREBOOT angegeben wurde.

UserParam:
Parameter, die an UserExe beim Aufruf bergeben werden sollen.

PackExe:
Name des Dekompressionstools. Dieses mu sich natrlich schon beim Anwender befinden und im Zugriff 
sein. Wenn Sie hier nichts angeben und eine selbstextrahierende Datei bertragen, erkennt das Update - 
Control System dies von selbst und ruft diese Datei auf.


InstExe:
Name des Programms, das nach einem Systemabschluss aufgerufen wird (nur Windows 3.1 Version). Wird hier 
nichts angegeben, wird nach dem Systemabschluss das mitgelieferte Programm uconinst.exe aufgerufen.

PackParam:
Parameter, die an das Dekompressions  Tool weitergegeben werden.

customer_id:
Dies ist die Kundenkennung, anhand derer der Anrufer identifiziert wird. Es werden nur die ersten 10 Bytes 
bercksichtigt. Diese Kennung mu identisch sein mit der, die mit Hilfe des Programms customer.exe im 
Kundenstamm fr den betreffenden Kunden hinterlegt wurde. Eine leere Kennung ist unzulssig. Es wird 
zwischen Gro- und Kleinschreibung unterschieden. Es sind alle Ascii - Zeichen von 1-127 zulssig.

reg_nr:
Ihre Registrierungsnummer. Wenn dieses Feld nicht belegt ist, oder mit einer falschen Nummer initialisiert 
wird, erscheint beim Senden der Hinweis, dass eine unregistrierte Version vorliegt (sonst gibt es keine weiteren 
Einschrnkungen).

Der Rckkehrcode von update_control (sofern die Funktion zurckkehrt) gibt an, ob  die Installation 
durchgefhrt wurde (TRUE) oder nicht (FALSE).
2.2.3. Praktische Anwendung

Dies ist ein Beispiel aus dem beigefgten Demoprogramm. So ruft das Demoprogramm sein eigenes Update 
vom UltraConnect- Server ab.

void GetNewVersion (char *kennung)
{
UpdateControl uc;

// Wichtig: Die Struktur immer mit 0 initialisieren!!!
memset (&uc,0,sizeof (UpdateControl));
strcpy (uc.win31,"CDemoW31.zip");        // Windows 3.1
strcpy (uc.os2,"CDemos2.zip");                //  OS/2
strcpy (uc.PackExe,"unzip.exe");              // So heit der Entpacker
strcpy (uc.PackParam,"-o");                      // Option -o bedeutet vorhandene Dateien berschreiben
uc.vers = 2;                                               // Interne Versionsnummer / aktiviert Versionskontrolle
uc.options = OPT_NOREBOOT + OPT_OVERLAY +  OPT_CHECKOS;    // Entpacker berschreibt Parent
strcpy (uc.customer_id,kennung);             // Kundenkennung z.b: Demokunde oder hnliches
update_control (&uc);
}

Ein weiteres Beispiel, so fordert das Demoprogramm vom Server eine neue Dateiliste an und installiert diese:

void GetFileList (char *kennung)
{
UpdateControl uc;
memset (&uc,0,sizeof (UpdateControl));  // unbedingt mit 0 initialisieren!!!
#ifdef _Windows
strcpy (uc.win31,"Datlist.zip");                   // So heit unsere Dateiliste
#endif
#ifdef __OS2__
strcpy (uc.os2,"Datlist.zip");
#endif
strcpy (uc.PackExe,"unzip.exe");                
strcpy (uc.PackParam,"-o");
strcpy (uc.dir,"empfang");                          // In dieses Unterverzeichnis soll die Dateiliste bertragen werden

/* Um die Dateiliste zu installieren, brauchen wir keinen Systemabschluss, es gibt auch keine verschiedenen 
Versionen und das Installationsfenster soll auch nicht aufgeblendet werden.                                           */

uc.options = OPT_NOREBOOT + OPT_NOCHOICE + OPT_NOQUESTION;  
strcpy (uc.customer_id,kennung);   // Wichtig: Kennung 
update_control (&uc);
}
 
2.2.4. Die Funktion GetFileDateAndTime
Syntax:

	unsigned long GetFileDateAndTime (char *filename)

Beschreibung:
Diese Funktion gibt einen unsigned long Wert zurck, der in codierter Form das Datum und die Uhrzeit der 
letzten Modifikation der angegebenen Datei enthlt. Diesen Wert knnen Sie dann in das Feld vers der 
Struktur UpdateControl schreiben. Zusammen mit der Option OPT_CHECKFILEDATE wird auf Serverseite 
nach dem Verbindungsaufbau geprft, ob die hinterlegte Datei neueren Datums ist, als diejenige, die beim 
Anrufer  vor Ort vorhanden ist. Im Fehlerfall gibt die Funktion 0 zurck.  Mit Hilfe dieses Verfahrens brauchen 
Sie auf dem Server die Versionstabelle nicht zu pflegen, bzw. ein eventueller Eintrag in der Versionstabelle 
wird ignoriert Wenn die Datei sich nicht im aktuellen Verzeichnis befindet, mssen Sie einen relativen oder 
absoluten Pfadnamen angeben. Achten Sie darauf, da die Datei nicht gegen alle Zugriffe gesperrt ist.

2.2.5. Die Funktion EncodeDateTime 
Syntax:
	unsigned long EncodeDateTime (struct tm *t);

Beschreibung:
Diese Funktion codiert das Modifikationsdatum und die Modifikationszeit (letzte nderung), enthalten in der 
Struktur tm, in einen unsigned long - Wert. Die Struktur tm  wird von C -  Funktionen wie z.B. fstat etc. 
gefllt. Diesen Wert knnen Sie in das Feld vers der Struktur UpdateControl schreiben.
2.3. Das Hilfsprogramm uconinst.exe

Der Windows 3.1 Version liegt ein Programm namens uconinst.exe vor. Es wird von der 
Installationsprozedur nach dem Systemabschlu und vor dem Neustart von Windows aufgerufen (also unter 
DOS). Es hat zur Aufgabe, die erhaltene Datei zu entpacken. Das Programm erwartet in der Kommandozeile 
vier Paramter :
1. Zielverzeichnis (Wo befindet sich die zu entpackende Datei)
2. Name der zu entpackenden Datei
3. Name des Entpackungsprogramms (z.b. unzip.exe etc.)
4. Kommandozeilenparameter der dem Dekompressionsprogramm bergeben wird .

Das Programm liegt im Quellcode vor. Sie knnen vom Update Control System an dieser Stelle auch ein 
anderes Programm aufrufen lassen. Dazu mssen Sie das Feld InstExe in der Struktur UpdateControl 
entprechend fllen. Diesem Programm werden dann die beschriebenen Parameter bergeben.
2.4. Installationsfunktion
Wenn Sie ein Update installieren wollen, das bereits vom Server abgeholt wurde, knnen Sie die Funktion

short call_install (UpdateControl *);

verwenden. Diese Funktion setzt an der Stelle auf, nachdem die abgerufene Datei empfangen wurde. Sie hat 
den Zweck, die Installation fortzufhren, wenn der Anwender nach dem Erhalt der Datei im 
Installationsfenster die Option Jetzt nicht ausgewhlt hatte. Ansonsten ist diese Funktion identisch mit der 
Funktion update_control.

2.4.1. Praktische Anwendung

Das Demoprogramm verwendet diese Funktion so:


void InstallNewVersion (void)
{
UpdateControl uc;
  memset (&uc,0,sizeof (UpdateControl));   // immer schn mit 0 initialisieren
  strcpy (uc.win31,"CDemow31.zip");
  strcpy (uc.os2,"CDemos2.zip");  
  strcpy (uc.PackExe,"UNZIP.exe");
  strcpy (uc.PackParam,"-o");
  uc.options = OPT_NOREBOOT + OPT_OVERLAY;
// Eine Kennung brauchen wir jetzt nicht, da keine Verbindung aufgebaut wird
  call_install (&uc);
}  




2.5. Die Datei - Nachfrage Funktion (File Request)

Sie knnen auf dem UltraConnect - Server fr Ihre Kunden ntzliche Programme, Tools und Infos hinterlegen. 
Die File - Request - Funktion des UltraConnect - Pakets gestattet es Ihren Kunden auf sehr einfache und 
komfortable Weise diese Dateien zu sichten und anzufordern. Um die File - Request Funktion in Ihre 
Programme einzubinden mssen Sie die DLL filebase.dll dynamisch oder statisch zu Ihren Programmen 
dazulinken. Die File - Request - Funktionen ist wie folgt deklariert: 

short filebase (RequestControl *)

Nach Aufruf dieser Funktion wird eine Dateiliste aufgeblendet, in der der Anwender nhere Informationen zu 
Ihrem Angebot an Dateien einsehen kann, Dateien markieren und vom UltraConnect - Server herunterladen 
kann.
Der Return - Wert der Funktion ist zur Zeit immer FALSE.

2.5.1. Die Struktur RequestControl
Diese Struktur ist wie folgt definiert:

typedef struct
{
long Handle;       /* Handle (HWND) des, derzeit nicht genutzt  */
long options;      /* Optionen                                                             */
char dir [80];        /* Zielverzeichnis */
char file_list [80];   /* Name der Dateiliste       */
char customer_id [12];  /* Kundenkennung 10 Bytes genutzt*/
long reg_nr;               /* Ihre Registriernummer                              */
} RequestControl;

Die einzelnen Elemente der Struktur:

Handle:
Wird derzeit noch nicht genutzt

options:
Zur Zeit nur OPT_BATCH mglich (siehe 2.2.2).

dir:
Zielverzeichnis (wohin die angeforderten Dateien beim Anwender bertragen werden)

file_list:
Name der Dateiliste. Wenn sich die Dateiliste nicht im aktuellen Verzeichnis befindet, mu ein relativer oder 
absoluter Pfad angegeben werden.

customer_id:
Kennung anhand derer der Anrufer identifiziert wird.

reg_nr:
Ihre Registriernummer, diese bekommen Sie von uns beim Kauf einer Vollversion zugewiesen.


2.5.2. Praktische Anwendung
Das Demoprogramm verwendet diese Funktion wie folgt:

void GetFiles (char *kennung)
{
RequestControl rc ;
    memset (&rc, 0, sizeof (RequestControl)) ;    // Wichtig: initialisieren mit 0
    strcpy (rc.customer_id, kennung) ;                 // Kundenkennung nicht vergessen!
    strcpy (rc.file_list,"empfang\\DatList.txt") ;   // So heit die Dateiliste
    filebase (&rc) ;
}


2.6. Die Dateiliste
Die Dateiliste steuert die Anzeige in der Funktion filebase. Diese Liste wird vom Client indiziert, was auch 
bei einer groen Liste zu einer schnellen Anzeige fhrt. Der Index wird immer dann neu aufgebaut, wenn der 
Index nicht vorhanden ist oder die Dateiliste jnger ist als der Index (weil der Anwender eine neue Dateiliste 
angefordert hat).  Das Dateiauswahlfenster unterteilt die eizelnen Dateieintrge in sogenannte Kategorien. Es 
werden in der Listbox immer nur Dateien einer Kategorie angezeigt. 
Die Programmierung dieser Liste ist einfach und erfolgt durch Sonderzeichen :


Zeichen	Bedeutung
** 	Kommentar - die ganze Zeile wird ignoriert
$Listdate:	Erstelldatum der Liste. Dieses Datum wird im Dateiauswahlfenster links oben 
angezeigt 
$Category:	Kategorie, hier beginnt eine neue Kategorie unter der die folgenden Eintrge 
subsummiert werden.
$N:   	Name, Name der Datei die abgerufen werden kann.
$S:   	Size, Gre der betreffenden Datei.
$D:	Date, Erstelldatum der betreffenden Datei
$C: 	Comment, Kommentar, dieser Text (sollte mglichst kurz sein) ist eine nhere 
Erluterung zur betreffenden Datei.


Alle Angaben zu einer Datei mssen in einer Zeile stehen. Text in der nachfolgenden Zeile wird als 
Detailinformation zur vorhergenden Datei interpretiert. Sehen Sie sich auch die zugehrige Online - Hilfe an 
und nehmen Sie die Datei datlist.txt im Verzeichnis empfang als Beispiel.

Wenn Sie Ihren Kunden einen File - Request Service anbieten wollen, hinterlegen Sie die betreffenden Dateien 
auf dem Server (vergessen Sie nicht, die zu durchsuchenden Verzeichnisse anzugeben, siehe Programm 
customer) und packen Sie die Dateiliste mit einem der blichen Kompressionsprogramme.
2.7. Die Upload - Funktion 

Ihr Kunde kann mittels des UltraConnect - Pakets auch Dateien von seinem PC auf den UltraConnect - Server 
bertragen. Wenn Sie die Upload - Funktion in Ihre Programme einbinden wollen, mssen Sie die DLL 
filebase.dll dynamisch oder statisch linken. Die Upload - Funktion ist wie folgt deklariert:

short FileUpload (RequestControl *)
Rckgabewert:
Die Funktion gibt TRUE zurck, wenn eine Verbindung zum Server zustandekam und FALSE wenn nicht.

Die Struktur RequestControl wurde schon weiter oben erklrt. Bei der Anwendung mit der Funktion 
FileUpload ergeben sich noch folgende Besonderheiten:

dir:
Enthlt nicht das Zielverzeichnis, sondern den Namen der Datei, die bertragen werden soll. Ist dieses Element 
leer, wird ein Dialogfenster aufgeblendet, in dem der Anwender selbst eine Datei auswhlen kann.

file_list:
Der Inhalt dieses Elementes wird ignoriert.

Sie mssen im Konfigurationsfenster Verschiedenes des Servers ein Verzeichnis angeben, wohin die Dateien, 
die Ihr Kunde Ihnen schickt, bertragen werden.
2.7.1. Praktische Anwendung
Das Demoprogramm verwendet diese Funktion wie folgt:

void Upload (char *kennung)
{
    RequestControl req ;
    memset (&req, 0, sizeof (RequestControl)) ; // INITIALISIEREN mit 0 !!!
    strcpy (req.customer_id, kennung) ;   // Kundenkennung nicht vergessen
    FileUpload (&req) ;
}

2.8. Modem / ISDN - Konfigurierung des Clients
Zur Konfigurierung der seriellen Schnittstelle, des Modems oder des ISDN - Adapters dient die Funktion 
ModemConfig . Nach Aufruf dieser Funktion wird ein Fenster aufgeblendet, in dem der Anwender alle 
ntigen Einstellungen vornehmen kann. Die Funktion befindet sich in der DLL mconfig.dll und ist wie folgt 
deklariert:

short ModemConfig (long Handle)

Rckgabewert:
TRUE falls der Anwender den ok - Button gedrckt hat und FALSE falls der Anwender den Abbruch - 
Button bettigt hat.

Handle bezeichnet das  Handle des Elternfensters, es kann hier auch ein 0 - Wert bergeben werden.

3. Der UltraConnect - Server

Der Server  untersttzt interne ISDN - Karten (setzt direkt auf der CAPI auf) und externe ISDN - Adapter. Wir 
empfehlen den Einsatz von externen ISDN - Adaptern, da es hier zu keinen Problemen mit CAPI - Treibern 
kommen kann, externe Adapter in der Regel aktiv sind und den Server nicht so belasten, wie das passive 
interne Karten tun und die Terminal - Funktion des Servers bei einem ISDN - Anruf derzeit nur mit diesen 
externen Adaptern funktioniert. Der Nachteil der externen ISDN - Adapter ist die bertragung der Daten ber 
die serielle Schnittstelle. 
Das Serverprogramm untersttzt derzeit acht Kanle. Eine Erweiterung auf bis zu 128 Kanle pro PC ist 
mglich.

3.1 Installation
Entpacken Sie die Datei server.zip mit dem Dekompressionsprogramm unzip.exe in einem separaten 
Verzeichnis.
1. Starten Sie den Server mit der Option /N (Aufruf: server /N).
2. Legen Sie unter dem Menpunkt Konfig->Verschiedenes ein Arbeitsverzeichnis an.
3. Zu jedem Kanal, den Sie aktivieren wollen, mu es ein gleichnamiges Unterverzeichnis in diesem 
Arbeitsverzeichnis geben (z.B. c:\server\1 fr den ersten Kanal).
4. Gehen Sie in das Fenster Konfig->Kanle  und konfigurieren Sie die einzelnen Kanle nach Ihren 
Wnschen. 
5.Klicken Sie "Ende" an und starten Sie den UltraConnect - Server erneut. Die Konfigurationseinstellungen 
werden in der Regel erst nach einem Neustart aktiv!
6. Wenn Sie den UltraConnect - Server mit dem Parameter "/N" starten, wird der eigentliche Server nicht 
gestartet und Sie knnen nur die Konfigurationseinstellungen ndern.
7. Starten Sie das Programm "customer.exe" und erfassen Sie die dort mindestens einen Kundendatensatz (incl. 
zu durchsuchende Verzeichnisse). 

Dies sind die minimal durchzufhrenden Installationschritte. Weitere Hinweise entnehmen Sie bitte der 
eingebauten Online - Hilfe.


3.2. Nhere Hinweise zum Betrieb
3.2.1. Protokolldatei
Alle Aktivitten des Servers werden protokolliert (Log - File). Diese Protolldatei wird im Ascii - Format 
gefhrt und ist mit jedem Ascii - Editor einsehbar (siehe Online - Hilfe). Wir empfehlen Ihnen den Ersatz des 
Com - Treibers Com.sys von OS/2 Warp durch den Treiber Sio.sys von Raymond Gwinn. Sie knnen eine 
unregistrierte Version dieses Treibers von unserem Server herunterladen (siehe Dateiliste Demo - Programm).

3.2.2. Datenbertragungsprotokolle
Fr die analoge bertragung via Modem verwenden wir das Protokoll ZMODEM, fr die digitale bertragung 
via ISDN haben wir ein  auf hchsten Datendurchsatz optimiertes eigenes Protokoll (ZMODEM wre fr eine 
ISDN - bertragung der reinste "Overkill") implementiert. Wir erreichen auf diese Weise einen etwa 6% 
hheren Durchsatz als bei der Verwendung von ZMODEM. Bei der Verbindungsaufnahme erkennt 
UltraConnect automatisch, welches Protokoll der Anrufer verwendet, soda auch externe ISDN - Adapter 
verwendet werden knnen. Wir  untersttzen im Fall von ZMODEM auch die Option "Recovery" (bei einer 
unterbrochenen Dateibertragung wird da wiederaufgesetzt, wo abgebrochen wurde). Im Falle einer ISDN - 
bertragung gehen wir davon aus, dass diese stabil ist. Unser eigenes Protokoll verwendet 32K - groe Blcke 
mit Prfsummenberechnung. Nach dem OSI - Schichtenmodell wre eine Prfsummenberechnung auf dieser 
Ebene unntig, da der Datentransport und die Datensicherung duch die darunterliegenden Protokolle der ISDN 
- Spezifikation erfolgt. Im Falle der Verwendung externer ISDN - Adapter kann es jedoch beim Empfang einer 
Datei zu berlufen an der seriellen Schnittstelle kommen. Um dies zu erkennen, ist eine Integrittsprfung 
der empfangenen Daten auf dieser Ebene ntig. Unser Protokoll  fordert einen korrupten Block bis jetzt nicht 
erneut an, sondern bricht die bertragung ab (Sie sollten in diesem Fall Ihre Server - Hardware aufrsten).  
Wenn Sie externe ISDN - Adapter verwenden (was an sich empfehlenswert ist), sollten Sie intelligente serielle 
Schnittstellenkarten einsetzen. Hier kann es nicht zu solchen berlufen kommen.
Wir haben unser Protokoll auch daraufhin konzipiert, beliebig viele Kanle parallel schalten zu knnen, d.h. in 
Zukunft (wenn wir dieses Feature implementiert haben) ist es mglich mehrere  ISDN - Kanle als auch 
analoge Modems quasi parallel zu schalten und dadurch die Datenbertragungsgeschwindigkeit zu 
vervielfachen.

3.2.3. Hardwareempfehlungen fr den Server
Sie brauchen fr das UltraConnect - Serverprogramm mindestens:
Einen PC 486er, FIFO - gepufferte serielle Schnittstelle (fr Modem) und/ oder eine interne ISDN - Karte mit 
OS/2 - CAPI Treiber 1.1 oder 2.0 (besser). Dazu bentigen Sie OS/2 WARP ab der Version 3.0.
Damit knnen Sie bis zu vier Kanle gleichzeitig betreiben. Falls Sie mehr Kanle gleichzeitig betreiben 
mchten, empfehlen wir Ihnen den Einsatz eines Pentiums und einer multiseriellen Schnittstellenkarte. Diese 
Karten gibt es auch in "intelligenter" Ausfhrung mit eigener CPU, was den  Rechner merklich entlastet. 
Interne ISDN - Karten empfehlen wir nur eingeschrnkt. Intelligente multiserielle Karten sind beim Einsatz 
externer ISDN - Adapter generell zu empfehlen.


3.3. Die Terminalfunktion des UltraConnect - Servers
Sie knnen im Arbeitsverzeichnis des UltraConnect - Servers eine ASCII - Datei namens terminal.txt 
hinterlegen. Wenn diese Datei vorhanden ist, ist die Terminalfunktion des UltraConnect - Servers aktiviert. 
Das bedeutet konkret: wenn jemand den Server mit einem der blichen Terminalprogramme anruft, bekommt 
der Anrufer den Inhalt dieser Textdatei auf seinem Terminal angezeigt. Zustzlich knnen Sie auch noch eine 
Tabelle im ASCII - Format namens terminal.ini hinterlegen. Das Format dieser Datei ist einfach: 
Die erste Spalte bezeichnet die Datei, die zum Download bereitsteht, die zweite Spalte den ASCII - Code der 
Taste, die die Auswahl bewirken soll. Die beiden Spalten werden durch ein Gleichheitszeichen getrennt.

Beispiel:
Cdemow31.zip=49
Cdemos2.zip=50

Wenn der Anrufer jetzt die Taste 1 auf seiner Tastatur drckt, wird die Datei Cdemow31.zip auf seinen PC 
geladen. Natrlich mssen Sie in terminal.txt den Anrufer auf seine Mglichkeiten hinweisen. Zuvor erhlt 
er aber noch die Wahl des Protokolls: Zmodem, Xmodem oder Ymodem. Weisen Sie in terminal.txt darauf 
hin, dass der Anrufer nach Mglichkeit Zmodem whlen sollte. Die Eingabe des Zeichens E (fr Ende) 
beendet die Verbindung vorzeitig. Nach der Dateibertragung wird die Verbindung vom Server automatisch 
unterbrochen. Terminal.txt mu mit einem ASCII - Editor erstellt werden und darf keine Steuerzeichen einer 
Textverarbeitung enthalten. Diese Funktion dient in erster Linie dazu, Kunden (oder potentiellen Kunden) die 
Mglichkeit zu geben, das eigentliche bertragungsprogramm (in userem Fall: Demo.exe) vom Server 
herunterzuladen. Die Anzahl der Eintrge in terminal.ini ist auf 10 begrenzt.
4. Die Kundenverwaltung customer.exe
Dieses Programm ist eine spezielle Kundenstammverwaltung fr das Programmpaket "UltraConnect". Damit 
Ihre Kunden auf  den UltraConnect - Server zugreifen knnen, mu fr jeden Kunden ein Datensatz angelegt 
werden. Es gengt auch nur einen Datensatz anzulegen oder fr jede Kundengruppe einen. In diesem Fall kann 
verstndlicherweise keine Zugriffsstatistik individuell fr jeden Ihrer Kunden angelegt werden. Neue Kunden 
werden ber den Menpunkt Kunden->Neu erfasst. Wenn Sie einen neuen Kunden angelegt haben, mssen Sie 
ihm auch den Zugriff freigeben (Kundenstammmaske->Menpunkt "Zugriffe")! Eine bersicht ber bereits 
erfasste Kunden erhalten Sie unter dem Menpunkt Kunden->bersicht. Hier knnen Sie nach verschiedenen 
Sortierkriterien whlen.
Der Menpunkt Datenbank->Zugriffe ffnet eine bersichtsliste mit allen Zugriffsdaten eines Kunden. Diese 
Datenstze knnen nicht gelscht werden. Falls die betreffende Datei zu gro wird, sichern Sie diese 
("zugriffe.*").
Unter "Stammdaten->Verzeichnisse" knnen Sie voreingestellte Verzeichnisse erstellen, die bei der Neuanlage 
eines Kundendatensatzes vorgeblendet werden. Diese Verzeichnisse werden bei einer Dateianfrage durchsucht. 
Der anrufende Kunde hat nur Zugriff auf die eingetragenen Verzeichnisse! Sie knnen also fr jeden 
Kunden individuell zu durchsuchende Verzeichnisse angeben.
Das Programm customer.exe mu sich im selben Verzeichnis befinden wie server.exe.
5. Allgemeine Hinweise

Vermischen Sie niemals die DLLs fr die verschiedenen Betriebssysteme, diese haben oft denselben Namen!
5.1. Geplante Erweiterungen
Dynamische Update Kontrolle (Aktualittscheck und packen whrend des Anrufs)
Untersttzung auf Client - Seite fr Windows 95 (32 Bit) und Windows NT.
Integrierte Dekompressionsfunktionen
Kanalbndelung beliebig vieler digitaler und analoger Kanle.
Windows NT Version auf Server - Seite.
Implementation einer internen Datenbank, Mglichkeit externe Datenbanken anzubinden.
Englische Version, bzw. Mglichkeit auf Client - Seite eigene Texte zu hinterlegen.
Verbesserte Zugriffsstatistik.

Wir fhren gegen Beteiligung an den Entwicklungskosten auch Ergnzungen nach Ihren Wnschen durch!




6. Copyright und Lizenzbestimmungen
Copyright:				
Hansjrg Pfister					Tel.: 07663 - 942015
Kirchweg 3			Fax: 07663 - 942016 
79268 Btzingen

Email: Hansjoerg.Pfister@t-online.de
WWW: http://www.reith-pfister.de

Dieses Programmpaket ist urheberrechtlich geschtzt. Jegliche nderung des Programmcodes, insbesondere 
Patches, sind untersagt. Die unregistrierte Version darf zu Prfzwecken auf unbestimmte Zeit benutzt werden. 
Die unregistrierte Version ist leistungsmig nicht eingeschrnkt, sie enthlt nur Registrierungshinweise. Die 
Vollversion darf uneinschrnkt in Ihre Programme integriert werden. Es ist untersagt, die Demoversion wie 
auch die Vollversion direkt als solche oder in der Form, dass die Voll- oder Demoversion als technische Basis 
eines Produkts dient,  an einem Wettbewerb gleich welcher Art teilnehmen zu lassen und sich als alleiniger 
Urheber dieses Produkts auszugeben.

7. Preise
Stand der Preiliste: 17.4.1997, alle Preise verstehen sich in DM excl. MwSt..

Demoversion UltraConnect auf Diskette 	20.-
Vollversion UltraConnect    	1400.- (incl. Client fr 1 Betriebssystem)
Client - Programmierbibliothek
fr  ein weiteres Betriebssystem:         	400.- 

Server-Hosting
Einrichtungsgebhr (einmalig):	100 - 300.- (nach Anzahl der Kundenstammstze) 
Grundgebhr (monatlich)     	50.-
Online-Gebhr	0,05 pro Minute

