UmlauteKonverter - SDK


 
 
Steuerung über OLE
 

Steuerung über Remote-Dateien
 

Steuerung über Batch-Dateien
 

Registrierung


 
 
 
 



Steuerung über OLE

UmlauteKonverter stellt über OLE folgende Funktionen zur Verfügung:

CString AutodetectTextType(LPCTSTR lpszName, LPCTSTR lpszRegKey, LPCTSTR chBuf, long ulLength);
Mit dieser Funktion kann das Format eines Textes ermittelt werden.
Die Werte für lpszName und lpszRegKey erhalten Sie, wenn Sie sich registrieren. Für Testzwecke oder falls ihr Programm Freeware ist, können Sie hier auch NULL oder leere Strings übergeben. In diesem Fall meldet sich UmlauteKonverter hie und da mit einem entsprechenden Hinweis.
chBuf zeigt auf den Text, dessen Format bestimmt werden soll, und ulLength beinhaltet die Länge dieses Textes (inklusive abschließendem Nullbyte!).
Als Rückgabewert erhält man einen String, der sich in Formatstatistiken unterteilt, die jeweils durch ein '#' getrennt sind. Die letzte Statistik schließt mit einem '##' ab.
Eine Formatstatistik hat folgenden Aufbau:
FormatID : FormatName : Anzahl_der_gefundenen_Umlaute
Der String "0:DOS:0 # 1:WINDOWS:0 # 2:Standard (sz):5 ##" bedeutet also z.B., dass in dem Text weder DOS- noch WINDOWS-Umlaute vorkommen, dafür aber 5 Umlaute im systemunabhängigen Format (ae, Ae, ..., sz)
CString ConvertText(LPCTSTR lpszName, LPCTSTR lpszRegKey, LPCTSTR lpszSrc, long ulSrcLength, long ulSrcType, long ulDestType);
Mit dieser Funktion kann ein Text konvertiert werden.
lpszName und lpszRegKey haben die gleiche Funktion wie oben. lpszSrc ist der Zeiger auf den Quelltext, der umgewandelt werden soll, ulSrcLength ist seine Länge inklusive abschließendem Nullbyte.
ulSrcType und ulDestType entsprechen obiger FormatID und sind wie folgt definiert:
#define umlautetyp_DOS       0x00 // Umlaut nach DOS-Zeichensatz
#define umlautetyp_WINDOWS   0x01 // Umlaut nach WINDOWS-Zeichensatz
#define umlautetyp_Std_sz    0x02 // Umlaut systemunabhängig Ae, ae, ..., sz
#define umlautetyp_Std_ss    0x03 // Umlaut systemunabhängig Ae, ae, ..., ss
#define umlautetyp_undefined 0xff // Autodetect (nur für ulSrcType)
Wählen Sie  ulSrcType = umlautetyp_undefined, wenn sie wollen, dass UmlauteKonverter das Format des Quelltextes selbstständig ermittelt.


Die benötigte Type-Library, sowie ein Beispielprogramm in C++ finden Sie im Verzeichnis \OLE.
 
 
 
 
 



Steuerung über Remote-Dateien

Sie können UmlauteKonverter auch über die Kommandozeile steuern. Hierfür müssen Sie zunächst eine Remote-Datei erzeugen, die folgendes Format hat:

Länge (Bytes)
Name
Typ
Beschreibung
4
Header
char[4]
Entspricht dem Text "UmlK"
4
Version
DWORD
Muss 1 sein
4
NameLen
DWORD
Länge des Namensstrings inklusive Nullbyte
NameLen
szName
char[]
Namensstring inklusive Nullbyte
4
RegKeyLen
DWORD
Länge des Schlüssels inklusive Nullbyte
RegKeyLen
szRegKey
char[]
Schlüssel inklusive Nullbyte
4
InFilePathLen
DWORD
Länge des Pfades der Datei, die den Quelltext beinhaltet (inklusive Nullbyte)
InFilePathLen
szInFilePath
char[]
Pfad der Datei, die den Quelltext beinhaltet (inklusive Nullbyte)
2
SrcType
WORD
Format des Quelltextes.Wenn UmlauteKonverter mittels Autodetect eine Formatbestimmung durchführen soll, so kann hier der Wert für umlautetyp_undefined gewählt werden.
4
OutFilePathLen
DWORD
Länge des Pfades der Datei, in die der umgewandelte Text geschrieben werden soll (inklusive Nullbyte)
OutFilePathLen
szOutFilePath
char[]
Pfad der Datei, in die der umgewandelte Textgeschrieben werden soll (inklusive Nullbyte)
2
DestType
WORD
Format, in welches der Quelltexte konvertiert werden soll.
4
hwndProgress
HWND
Handle einer Progress-Control oder eines anderen Fensters, welches den Befehl PBM_SETPOS (Range von 0 bis 100) verarbeiten kann. Es ist darauf zu achten, dass bei Nutzung der Autodetect-Funktion der Fortschrittsbalken zweimal durchlaufen wird.
Kann NULL gesetzt werden.
4
hwndMessage
HWND
Handle eines Fensters für die Nachrichtenbearbeitung. Diesem Fenster werden folgende Befehle übermittelt (Bei Verwendung von Autodetect für den AutoDetect-Vorgang zusätzlich zum Convert-Vorgang, insgesamt also zweimal):

#define WM_USER_BeginKonversion       (WM_USER + 2)
#define WM_USER_AskForAbortFlag       (WM_USER + 3)
#define WM_USER_EndOfKonversion_OK    (WM_USER + 4)
#define WM_USER_EndOfKonversion_ERROR (WM_USER + 5)

WM_USER_BeginKonversion: Zeigt Beginn der Konvertierung an
WM_USER_AskForAbortFlag: Ist der Rückgabewert der Windows-Prozedur Null, so wird mit der Bearbeitung fortgefahren, ansonsten erfolgt der Abbruch.
WM_USER_EndOfKonversion_OK: Die Konvertierung/Autodetect wurde erfolgreich durchgeführt.
WM_USER_EndOfKonversion_ERROR: Die Konvertierung/Autodetect wurde mit einem Fehler oder Benutzerabbruch (als Antwort auf WM_USER_AskForAbortFlag) abgebrochen.

Kann NULL gesetzt werden.

Anschließend rufen Sie UmlauteKonverter mit dem vollständigen Pfad der Remotedatei als ersten Kommandozeilenparameter auf.

Ein kleines C++-Beispielprogramm, das auch eine einfach zu handhabende Klasse zur Erzeugung der Remote-Dateien enthält, finden Sie im Verzeichnis \RemoteFile.
 
 
 
 
 



Steuerung über Batch-Dateien

Da das Erstellen von Remote-Dateien aus Batch-Dateien heraus schwierig bis unmöglich ist, habe ich das Tool Batch_UK entwickelt, welches im Verzeichnis \BatchRemote zu finden ist.

Zunächst setzt man den Benutzernamen und den Registrationsschlüssel (s. Registrierung) in den Umgebungsvariablen UK_NAME und UK_REGKEY, also z.B.:

set UK_NAME=Manfred Mustermann
set UK_REGKEY=123456789ABCDEF
Dann ruft man Batch_UK auf, wobei in der Kommandozeile Eingabe-, Ausgabe- und Remotedatei spezifiziert werden. Batch_UK erstellt die Remotedatei, stellt fest, wo UmlauteKonverter installiert ist, und führt ihn mit der Remotedatei aus.

Die genaue Syntax der Kommandozeile erfahren Sie, wenn sie Batch_UK ohne Kommandozeilenparameter starten (Demo.bat ist eine Batchdatei, die ein Beispiel darstellt.).

Die Steuerung über Batch-Dateien sollte allerdings nur verwendet werden, wenn keine der anderen Steuerungsmöglichkeiten zur Verfügung steht. Da bei jedem Aufruf Batch_UK gestartet wird, jedesmal der Standort von UmlauteKonverter ermittelt werden muss und UmlauteKonverter jedesmal neu geladen und ausgeführt wird, kann es zu merklichen Verzögerungen kommen.

Batch_UK muss nicht installiert werden. Kopieren Sie es einfach in ein beliebiges Verzeichnis, und wenn Sie es nicht mehr benötigen, können Sie es einfach löschen. Um kurze Pfade zu erhalten (Bedenken Sie, dass die Gesamtlänge der Kommandozeile begrenzt ist!), sollten Sie Batch_UK, die Remotedateien und die erstellten Ausgabedateien vielleicht im Ordner c:\uk unterbringen.
 
 
 
 
 



Registrierung

Gemäß den Lizenzbedingungen müssen Sie sich gegebenenfalls registrieren (wie, ist in der Lizenz von UmlauteKonverter beschrieben).
Nach erfolgter Registrierung erhalten Sie einen Namensstring und einen zugehörigen Schlüssel (RegKey). Beide benötigen Sie, um die Registrationshinweise beim Aufruf von UmlauteKonverter abzustellen.