Conversion Engine API
- Former user (Deleted)
- Dennis Balzuweit
Funktionscodes
Folgende Funktionscodes werden von der API unterstützt.
Funktion | Code | Beschreibung |
---|---|---|
ccfCode_CE_Initialize | 100 | Initialisierung der Schnittstelle |
ccfCode_CE_GetInterfaceVersion | 101 | Abfrage der Interface Version (Default ist 1) |
ccfCode_CE_GetVersion | 105 | Versionsabfrage |
ccfCode_CE_SetConfig | 110 | Übergabe der Konfigurationsdaten vom aufrufenden Programm |
ccfCode_CE_SetParameter | 115 | Parameterübergabe |
ccfCode_CE_SetOEMInfos | 116 | OEM Informationen übergeben |
ccfCode_CE_GetDocPath | 120 | Abfrage des Ablageverzeichnisses für Dateien |
ccfCode_CE_SetDocPath | 130 | Übergabe des Ablageverzeichnisses für Dateien |
ccfCode_CE_GetDocCount | 200 | Abfrage der Dateimenge nach der Konvertierung |
ccfCode_CE_GetBlob | 300 | Abfrage einer Datei nach der Konvertierung über Id (0 based) |
ccfCode_CE_AddField | 400 | Übergabe von Feldwerten |
ccfCode_CE_AddTableData | 450 | Übergabe von Positionsdaten |
ccfCode_CE_AddBlob | 500 | Übergabe eines Blobs als Pfadangabe (full qualified) |
ccfCode_CE_Reset | 550 | Zurücksetzen der Schnittstelle – Vorbereitung für neuen Lauf |
ccfCode_CE_Convert | 600 | Konvertierung |
ccfCode_CE_StartStack | 700 | Markiert den Beginn eines Dokumentstapels |
ccfCode_CE_EndStack | 710 | Markiert das Ende eines Dokumentstapels in der Verarbeitung |
ccfCode_CE_CallCfgDlg | 800 | Aufruf des Konfigurationsdialogs (im Return die Konfigurationsdaten übergeben) |
ccfCode_CE_GetConfig | 850 | Abfrage der Konfigurationsdaten |
ccfCode_CE_Finalize | 900 | Freigabe der Schnittstelle |
Funktionsdeklaration ANSI
function ccConvert( fCode : LongInt; fData : PChar; fSize : LongInt; Msg : PChar ) : LongInt;
Mit der Übergabe eines Funktionscodes in der Variable fCode wird die entsprechende Funktion ausgewählt (siehe Tabelle).
Im Erfolgsfall wird im Funktionsresult 0 zurückgegeben. Im Fehlerfall ein Wert von -1 (grundsätzlich <> 0). Der Returncode -3 zeigt ein Lizenzproblem an.
Die Variable Msg nimmt einen Meldungstext auf welcher im Problemfall durch die aufrufende Anwendung im entsprechenden Logfile protokolliert wird. Eine Erfolgsmeldung nach ccfCode_CE_Convert wird je nach Anwendung ebenfalls protokolliert.
fData nimmt alle übrigen Übergabedaten, wie z.B. die Indexfelder, auf. Zugehörig muss immer fSize mit der entsprechenden Größe von fData gesetzt werden.
Das ANSI Interface ist optional und nur zur Abwärtskompatibilität erforderlich (z.B. eWork 2.x).
Funktionsdeklaration UNICODE
function ccWideConvert( fCode : LongInt; fData : PWideChar; fSize : LongInt; Msg : PWideChar ) : LongInt;
ANSI und UNICODE Interfaces können in einer Conversion Engine gleichzeitig verwendet werden.
Übergabe von Metadaten
Die Übergabe erfolgt als String und hat nachfolgenden Aufbau.
Datentypen werden direkt unterstützt und als Variant-Type mit übergeben.
Funktion | Übergabestruktur |
---|---|
ccfCode_ES_AddField | FieldName[DataType]=Value |
ccfCode_ES_AddTableData | ColumnName[DataType],Row=Value |
Delphi Codeframe
Auf Basis von Delphi XE5 bzw. Lazarus.
// ================================================================ {$R *.res} {$WARN UNIT_PLATFORM OFF} {$WARN SYMBOL_PLATFORM OFF} // ================================================================ uses Classes; // ================================================================ const Version = '1.0.0'; // ---------------------------------------------------------------- const ccfCode_CE_Initialize = 100; ccfCode_CE_GetInterfaceVersion = 101; ccfCode_CE_GetVersion = 105; ccfCode_CE_SetConfig = 110; ccfCode_CE_SetParameter = 115; ccfCode_CE_SetOEMInfos = 116; ccfCode_CE_GetDocPath = 120; ccfCode_CE_SetDocPath = 130; ccfCode_CE_GetDocCount = 200; ccfCode_CE_GetBlob = 300; ccfCode_CE_AddField = 400; ccfCode_CE_AddTableData = 450; ccfCode_CE_AddBlob = 500; ccfCode_CE_Reset = 550; ccfCode_CE_Convert = 600; ccfCode_CE_StartStack = 700; ccfCode_CE_EndStack = 710; ccfCode_CE_CallCfgDlg = 800; ccfCode_CE_GetConfig = 850; ccfCode_CE_Finalize = 900; // ---------------------------------------------------------------- const ccfCode_FB_Common = 100; // ================================================================ function ccConvert( fCode : LongInt; fData : PChar; fSize : LongInt; Msg : PChar ) : LongInt; begin Result := 0; try case fCode of // --------------------------------- // Initialisierung // --------------------------------- ccfCode_CE_Initialize : begin CoInitialize(nil); end; // --------------------------------- // Get Version // --------------------------------- ccfCode_CE_GetVersion : begin strpcopy(fData,GetProgramVersion); end; // --------------------------------- // Konfiguration übergeben // --------------------------------- ccfCode_CE_GetInterfaceVersion: begin // Feld- und Positionsdatenübergabe aktivieren strpcopy(fData,'3'); end; // --------------------------------- // Konfiguration übergeben // --------------------------------- ccfCode_CE_SetConfig : begin end; // --------------------------------- // Parameterübergabe // --------------------------------- ccfCode_CE_SetParameter : begin end; // --------------------------------- // OEM Infos übergeben // --------------------------------- ccfCode_UX_SetOEMInfos : begin end; // --------------------------------- // Index // --------------------------------- ccfCode_CE_AddField: begin end; // --------------------------------- // Positionsdaten // --------------------------------- ccfCode_CE_AddTableData: begin end; // --------------------------------- // Reset // --------------------------------- ccfCode_CE_Reset : begin end; // --------------------------------- // Dokumentablage // --------------------------------- ccfCode_CE_GetDocPath : begin end; // --------------------------------- // Blobs // --------------------------------- ccfCode_CE_AddBlob : begin end; // --------------------------------- // Blobcount abfragen // --------------------------------- ccfCode_CE_GetDocCount : begin end; // --------------------------------- // Blobs abfragen // --------------------------------- ccfCode_CE_GetBlob : begin end; // --------------------------------- // Konvertierung // --------------------------------- ccfCode_CE_Convert : begin end; // --------------------------------- // Schliessen // --------------------------------- ccfCode_CE_Finalize : begin end; // --------------------------------- // Konfigurationsdialog öffnen // --------------------------------- ccfCode_CE_CallCfgDlg : begin end; // --------------------------------- // Konfiguration abfragen // --------------------------------- ccfCode_CE_GetConfig : begin end; end; except on e: exception do begin strpcopy(msg,e.classname + ' - ' + e.Message); Result := -1; end; end; end; // ================================================================ // clarc final builder Engine Test Function // ================================================================ function ccBuildTest( fCode : LongInt; fData : PWideChar; Msg : PWideChar ) : LongInt; begin Result := -1; case fCode of // --------------------------------- // Common // --------------------------------- ccfCode_FB_Common: begin // Test something... Result := 0; end; end; end; // ================================================================ Exports ccConvert, ccBuildTest; // ================================================================ begin end.