ERiC API-Referenz 43.3.2.0

Lade ...
Suche ...
Keine Treffer
eric_types.h
gehe zur Dokumentation dieser Datei
1/*
2 * Copyright © LfSt Bayern, Muenchen, IuK 111, 2007
3 */
4
5#ifndef _ERIC_TYPES_H_
6#define _ERIC_TYPES_H_
7#include "platform.h"
8
9/**
10 * @file
11 * @brief Definition von Datenstrukturen und Datentypen
12 */
13
14/**
15 * @brief Handle auf eine ERiC-Instanz.
16 *
17 * ERiC-Instanzen werden von der Multithreading-API angelegt,
18 * verwendet und wieder freigegeben, siehe ericmtapi.h.
19 *
20 * Alle API-Funktionen der Multithreading-API nehmen einen Zeiger auf eine
21 * ERiC-Instanz entgegen und verrichten ihre Aufgaben auf dieser ERiC-Instanz.
22 * Die EricInstanz enthält sämtliche veränderlichen Zustände des ERiC.
23 * Dies sind ERiC-Einstellungen, Plugin- und Log-Verzeichnis, Proxyeinstellungen,
24 * Zertifikatshandle, Rückgabepuffer, etc.
25 *
26 * Es können mehrere ERiC-Instanzen parallel angelegt werden. Jede dieser
27 * ERiC-Instanzen ist unabhängig von allen anderen ERiC-Instanzen. Verfügen
28 * mehrere Threads jeweils über ihre eigene ERiC-Instanz, können sie diese
29 * parallel verwenden. Dazu müssen die Threads den API-Funktionen der
30 * Multithreading-API ihre jeweils eigene ERiC-Instanz übergeben.
31 *
32 * ERiC-Instanzen sollten nicht für jede Verarbeitung eines Steuerfalls
33 * neu erstellt und konfiguriert werden.
34 * Siehe hierzu @typeDokumentation{ERiC-Entwicklerhandbuch.pdf},
35 * Kap. "Hinweise zum optimierten Einsatz von ERiC-Instanzen und Plugins"
36 *
37 * ERiC-Instanzen können zwischen Threads ausgetauscht werden. Eine
38 * ERiC-Instanz darf aber nicht in zwei Threads gleichzeitig verwendet werden.
39 *
40 * @see
41 * - @typeDokumentation{ERiC-Entwicklerhandbuch.pdf}, Kap. "Hinweise zum optimierten Einsatz von ERiC-Instanzen und Plugins"
42 * - ::EricMtInstanzErzeugen()
43 * - ::EricMtInstanzFreigeben()
44 */
45 typedef struct EricInstanz *EricInstanzHandle;
46
47/**
48 * @brief Der Datentyp byteChar wird immer dann verwendet, wenn an diesem Parameter
49 * keine UTF-8 codierte Daten erwartet werden.
50 * Diese Daten werden ungeprüft verwendet.
51 * <b>Zum Beispiel:</b> Pfade
52 */
53 typedef char byteChar;
54
55
56/**
57 * @brief Integer-Typ für Zertifikat-Handles.
58 */
59 typedef uint32_t EricZertifikatHandle;
60
61/**
62* @brief Das ::EricTransferHandle wird beim Anwendungsfall "Datenabholung"
63* der API-Funktion ::EricBearbeiteVorgang() übergeben.
64*
65* Es ist vom Aufrufer zu initialisieren
66* und wird ::EricBearbeiteVorgang() als Zeiger übergeben. Es wird
67* verwendet, um bei der Datenabholung mehrere Versandvorgänge zu bündeln.
68* Dabei ist das Handle für den ersten Vorgang "Anfrage" mit dem Wert 0
69* zu initialisieren, bevor ::EricBearbeiteVorgang() aufgerufen wird.
70* Das von ::EricBearbeiteVorgang() zurückgegebene Handle ist dann
71* bei allen Folgevorgängen derselben Datenabholung unverändert
72* wieder zu übergeben.
73*
74* Wird bei einer Datenabholung NULL oder ein ungültiger Zeiger
75* als Handle übergeben, gibt ::EricBearbeiteVorgang()
76* den Fehlercode ::ERIC_GLOBAL_TRANSFERHANDLE zurück.
77*
78* Bei allen Verfahren außer der Datenabholung sollte das Transferhandle
79* beim Aufruf der ::EricBearbeiteVorgang() NULL sein. Wird bei solchen
80* Verfahren ein Handle übergeben, so wird dieses ignoriert.
81*
82*
83*/
84 typedef uint32_t EricTransferHandle;
85
86
87/**
88 * @brief Bearbeitungsflags für die Anwendungsfälle von EricBearbeiteVorgang().
89 *
90 * Welche Anwendungsfälle von der jeweiligen Datenart unterstützt werden,
91 * ist dem @typeDokumentation{ERiC-Entwicklerhandbuch.pdf} zu entnehmen.
92 */
93 typedef enum
94{
95 /**
96 * @brief Der Datensatz soll validiert werden.
97 */
98 ERIC_VALIDIERE = 1L << 1,
99
100 /**
101 * @brief Der Datensatz soll an den ELSTER Annahmeserver versendet werden.
102 */
103 ERIC_SENDE = 1L << 2,
104
105 /**
106 * @brief Der Datensatz soll gedruckt werden.
107 */
108 ERIC_DRUCKE = 1L << 5,
109
110 /**
111 * @brief Der Datensatz soll auf Hinweise hin geprüft werden.
112 */
113 ERIC_PRUEFE_HINWEISE = 1L << 7,
114
115 /**
116 * @brief Der Datensatz soll validiert werden, ohne dabei die Prüfbedingung
117 * "ERiC_DV_Freigabedatum_pruefen" auszuführen.
118 * Dies ist nur möglich, wenn kein Versand stattfindet.
119
120 * Das Flag kann nicht zusammen mit ERIC_SENDE oder ERIC_VALIDIERE
121 * angegeben werden.
122 *
123 * @note Zur Prüfbedingung "ERiC_DV_Freigabedatum_pruefen" siehe das Dokument
124 * "Zusatzinformationen_zur_Plausibilitaetspruefung.pdf" im ERiC-Dokumentationspaket.
125 */
126 ERIC_VALIDIERE_OHNE_FREIGABEDATUM = 1L << 8,
127} eric_bearbeitung_flag_t;
128
129
130/* Vorwärts-Deklaration. Anwender der ERiC API verwenden ausschließlich
131 Zeiger auf Instanzen dieses Datentyps. */
132 struct EricReturnBufferApi;
133
134
135/**
136 * @brief Handle zur Verwaltung und Verwendung von Rückgabepuffern.
137 *
138 * Viele ERiC API-Funktionen geben Informationen an ihren Aufrufer zurück,
139 * indem sie Daten in sogenannte Rückgabepuffer schreiben.
140 * Solche Rückgabepuffer müssen mit ::EricRueckgabepufferErzeugen() angelegt
141 * werden. Das bei dieser Erzeugung generierte Puffer-Handle wird vom Aufrufer
142 * an die API-Funktion übergeben, die den Puffer leert bevor sie dann in den
143 * Puffer schreibt. Ein einmal generiertes Puffer-Handle kann damit auch für
144 * mehrere aufeinanderfolgende Aufrufe von ERiC API-Funktionen wiederverwendet
145 * werden.
146 * Mittels ::EricRueckgabepufferLaenge() kann danach die Anzahl der in den
147 * Puffer geschriebenen Bytes ermittelt werden.
148 * Mit ::EricRueckgabepufferInhalt() kann der Pufferinhalt abgefragt werden.
149 * Jeder Rückgabepuffer muss nach seiner Verwendung mit
150 * ::EricRueckgabepufferFreigeben() wieder freigegeben werden.
151 *
152 * Die Struktur EricReturnBufferApi kapselt die Rückgabepuffer-Implementierung.
153 * Anwender der ERiC API verwenden ausschließlich Zeiger auf Instanzen dieser
154 * Struktur und müssen daher deren Felder nicht kennen.
155 *
156 * Rückgabepuffer sind der Singlethreading-API bzw. einer ERiC-Instanz der
157 * Multithreading-API fest zugeordnet. Die Funktionen der ERiC API, die einen
158 * Rückgabepuffer entgegennehmen, geben den Fehlercode
159 * ::ERIC_GLOBAL_PUFFER_UNGLEICHER_INSTANZ zurück, wenn der übergebene
160 * Rückgabepuffer: @mAbsatz
161 * - mit der Singlethreading-API erzeugt worden ist und dann mit der
162 * Multithreading-API verwendet wird
163 * - mit der Multithreading-API erzeugt worden ist und dann mit der
164 * Singlethreading-API verwendet wird
165 * - mit einer ERiC-Instanz erzeugt worden ist und dann mit einer
166 * anderen Instanz verwendet wird.
167 *
168 * @see
169 * - @typeDokumentation{ERiC-Entwicklerhandbuch.pdf}, Kap. "Rückgabepuffer der ERiC Programmierschnittstelle"
170 * - ::EricRueckgabepufferErzeugen()
171 * - ::EricRueckgabepufferLaenge()
172 * - ::EricRueckgabepufferInhalt()
173 * - ::EricRueckgabepufferFreigeben()
174 */
175 typedef struct EricReturnBufferApi* EricRueckgabepufferHandle;
176
177/**
178* @brief Typ der Callback-Funktion zur Übergabe eines PDFs an die Anwendung.
179*
180* Wenn diese Callback-Funktion im @c eric_druck_parameter_t angegeben wird
181* werden PDFs vom ERiC nicht in eine Datei geschrieben, sondern an diese
182* Callback-Funktion übergeben.
183*
184* @param[in] pdfBezeichner
185* @parblock
186* Bezeichner für das PDF.
187* Für ein PDF, das Inhalte aus einem Nutzdatenblock enthält,
188* wird hier das Nutzdatenticket aus dem Nutzdatenblock übergeben,
189* für sonstige PDFs das Wort "Uebertragungsprotokoll".
190*
191* Bei der Erstellung mehrerer PDFs ermöglicht das Nutzdatenticket
192* die Zuordnung eines PDFs zu einem bestimmten Nutzdatenblock.
193* @endparblock
194* @param[in] pdfDaten Der Inhalt des PDFs.
195* Zu beachten: es handelt sich um binäre Daten,
196* die Nullbytes enthalten können.
197*
198* @param[in] pdfGroesse Die Größe der @c pdfDaten in Bytes.
199*
200* @param[in] benutzerDaten Der Datenzeiger, der dem ERiC von der Anwendung im
201* @c eric_druck_parameter_t übergeben wurde.
202*
203* @return
204* - 0, wenn kein Fehler aufgetreten ist.
205* Ein beliebiger Wert ungleich 0, wenn ein Fehler aufgetreten ist.
206* Der zurückgegebene Wert wird im Fehlerfall in die Datei eric.log
207* protokolliert.
208*
209* @see
210* - eric_druck_parameter_t
211* - ::EricBearbeiteVorgang()
212*
213*/
214 typedef int(STDCALL *EricPdfCallback)(
215 const char *pdfBezeichner,
216 const BYTE *pdfDaten,
217 uint32_t pdfGroesse,
218 void *benutzerDaten);
219
220/**
221 * @brief Diese Struktur enthält alle für den Druck notwendigen Informationen.
222 *
223 * Der Anwendungsentwickler muss diese Struktur allokieren und nach Verwendung
224 * wieder freigeben.
225 *
226 */
227 typedef struct
228{
229 /**
230 * @brief Version dieser Struktur. Die Version muss derzeit 4 sein.
231 * Bei Änderungen dieser Struktur wird dieser Wert inkrementiert.
232 *
233 * @note Bei einem Wert ungleich 4 wird #ERIC_GLOBAL_UNGUELTIGE_PARAMETER_VERSION zurückgegeben und eine Fehlermeldung in die Logdatei geschrieben.
234 */
235 uint32_t version;
236
237 /**
238 * @brief Soll ein Vorschau-PDF erstellt werden?
239 *
240 * @details Anwendungsfälle: @mAbsatz
241 * - vorschau = 1: Ein Vorschau-PDF wird erzeugt und als solches gekennzeichnet.
242 * - vorschau = 0: Es wird kein Vorschau-PDF erzeugt.
243 *
244 * @note Bei Werten ungleich 0 oder 1 wird #ERIC_GLOBAL_UNGUELTIGER_PARAMETER zurückgegeben und eine Fehlermeldung in die Logdatei geschrieben.
245 *
246 */
247 uint32_t vorschau;
248
249 /**
250 * @brief Soll die PDF-Datei für einen doppelseitigen Ausdruck mit Heftrand zum Lochen vorbereitet werden?
251 *
252 * @details Anwendungsfälle: @mAbsatz
253 * - duplexDruck = 1: Die geraden Seiten werden für einen Heftrand zum Lochen nach links eingerückt. Für Details siehe @typeDokumentation{ERiC-Entwicklerhandbuch.pdf}.
254 * - duplexDruck = 0: Es erfolgt keine Einrückung der geraden Seiten. Das erstellte PDF ist nur zum blattweisen Ausdruck der Seiten vorgesehen.
255 *
256 * @note Bei Werten ungleich 0 oder 1 wird #ERIC_GLOBAL_UNGUELTIGER_PARAMETER zurückgegeben und eine Fehlermeldung in die Logdatei geschrieben.
257 */
258 uint32_t duplexDruck;
259
260 /**
261 * @brief Pfad der erzeugten PDF-Datei.
262 *
263 * Pfade müssen auf Windows in der für Dateifunktionen benutzten ANSI-Codepage,
264 * auf Linux, AIX und Linux Power in der für das Dateisystem benutzten Locale und auf macOS in der
265 * "decomposed form" von UTF-8 übergeben werden.
266 * Weiterführende Informationen hierzu, sowie zu nicht erlaubten Zeichen in
267 * Pfaden und Pfadtrennzeichen, relative Pfadangabe, etc. siehe
268 * @typeDokumentation{ERiC-Entwicklerhandbuch.pdf}, Kap. "Übergabe von Pfaden an ERiC API-Funktionen".
269 *
270 * <b>Windows-Beispiel:</b> \c "c:\\test\\ericprint.pdf" @mLB<a>Soll
271 * eine PDF-Datei angelegt werden, ist der \c pdfName zwingend erforderlich.
272 *
273 * <b>Besonderheiten bei Sammeldaten:</b> @mLB<a>Für
274 * Sammeldaten wird dem PDF-Dateinamen vor der Dateiendung das Nutzdatenticket
275 * angefügt: @mLB<tt><PDF-Dateiname>_<Nutzdatenticket>.pdf</tt>
276 *
277 * Optional kann der PDF-Dateiname den Platzhalter "%t" enthalten, der dann
278 * durch das Nutzdatenticket ersetzt wird: @mLB<tt>"%t_ericprint.pdf"</tt> --> <tt>"<Nutzdatenticket>_ericprint.pdf"</tt>
279 *
280 * @note Es ist sicherzustellen, dass alle PDF-Dateien im Dateisystem
281 * erstellt bzw. geschrieben werden können. Falls es beim Erstellen der
282 * PDF-Dokumente einen Fehler gibt oder falls diese nicht geschrieben
283 * werden können, wird die Bearbeitung abgebrochen, eine Log-Ausgabe
284 * erstellt, aus der hervorgeht, welcher Steuerfall nicht gedruckt werden
285 * konnte, und eine Fehlermeldung an den Aufrufer zurückgeliefert.
286 */
287 const byteChar* pdfName;
288
289 /**
290 * @brief Fußtext der auf dem Ausdruck verwendet werden soll (optional).
291 * @details Wenn der übergebene Text länger als #ERIC_MAX_LAENGE_FUSSTEXT
292 * Zeichen ist, dann bricht der Druck mit Fehlerkode
293 * #ERIC_PRINT_FUSSTEXT_ZU_LANG ab!
294 *
295 * @note Fachliche Informationen sind im @typeDokumentation{ERiC-Entwicklerhandbuch.pdf} nachzulesen.
296 */
297 const char* fussText;
298
299 /**
300 * @brief Optionale Angabe einer Callback-Funktion
301 * für die Übergabe eines PDFs vom ERiC an die Anwendung.
302 * Wenn hier eine Callback-Funktion angegeben wird, schreibt der ERiC PDFs
303 * nicht in eine Datei, sondern ruft stattdessen die Callback-Funktion auf.
304 * Wenn hier NULL angegeben wird, schreibt der ERiC die PDFs in Dateien.
305 */
306 EricPdfCallback pdfCallback;
307
308 /**
309 * @brief Zeiger auf Benutzerdaten, der bei einem Aufruf des @c pdfCallback
310 * vom ERiC als Parameter unverändert wieder an die Anwendung mitgegeben wird.
311 */
312 void *pdfCallbackBenutzerdaten;
313} eric_druck_parameter_t;
314
315
316/**
317 * @brief Für die Signatur oder Authentifizierung benötigte
318 * Informationen.
319 *
320 * Diese Struktur ist vom Anwender zu allokieren und samt
321 * Inhalt auch wieder freizugeben.
322 */
323 typedef struct
324{
325 /**
326 * @brief Version dieser Struktur. Muss derzeit immer 3 sein.
327 * Bei Änderungen dieser Struktur wird dieser Wert inkrementiert.
328 *
329 * @note Bei einem Wert ungleich 3 wird #ERIC_GLOBAL_UNGUELTIGE_PARAMETER_VERSION zurückgegeben und eine Fehlermeldung in die Logdatei geschrieben.
330 *
331 */
332 uint32_t version;
333
334 /**
335 * @brief Verweis auf den KeyStore, siehe EricGetHandleToCertificate().
336 */
337 EricZertifikatHandle zertifikatHandle;
338
339 /**
340 * @brief PIN für den KeyStore.
341 */
342 const byteChar *pin;
343} eric_verschluesselungs_parameter_t;
344
345
346/**
347 * @brief Struktur mit Informationen zur Erzeugung von Zertifikaten mit EricCreateKey().
348 *
349 * Die Elemente der Struktur beschreiben den Anwender, für den ein Schlüssel erstellt werden soll.
350 * Unbenutzte Parameter müssen mit NULL oder Leerstring initialisiert werden.
351 *
352 * Diese Struktur und ihre Elemente sind vom Anwender zu allokieren und samt Inhalt auch wieder freizugeben.
353 * Alle Elemente sind vom Anwender zu initialisieren.
354 *
355 */
356 typedef struct
357{
358 /**
359 * @brief Version dieser Struktur. Muss derzeit immer 1 sein.
360 * Bei Änderungen dieser Struktur wird dieser Wert inkrementiert.
361 *
362 * @note Bei einem Wert ungleich 1 wird #ERIC_GLOBAL_UNGUELTIGE_PARAMETER_VERSION zurückgegeben und eine Fehlermeldung in die Logdatei geschrieben.
363 *
364 */
365 uint32_t version;
366
367 /**
368 * @brief Name des Anwenders.
369 *
370 * Die Angabe des Namens ist obligatorisch.
371 * Der Parameter darf nicht mit NULL oder einem Leerstring belegt werden.
372 */
373 const char* name;
374
375 /**
376 * @brief Land (Länderkürzel) des Anwenders. \b Beispiel: "DE".
377 *
378 * Die Angabe dieses Wertes ist optional.
379 */
380 const char* land;
381
382 /**
383 * @brief Wohnort des Anwenders, inklusive PLZ. \b Beispiel: "D-10179 Berlin".
384 *
385 * Die Angabe dieses Wertes ist optional.
386 */
387 const char* ort;
388
389 /**
390 * @brief Straßenangabe mit Hausnummer des Anwenders mit Zusätzen, \b Beispiel: "Musterstraße 123 Zugang im Rückgebäude".
391 *
392 * Die Angabe dieses Wertes ist optional.
393 */
394 const char* adresse;
395
396 /**
397 * @brief E-Mail-Adresse des Anwenders.
398 *
399 * Die Angabe dieses Wertes ist optional.
400 */
401 const char* email;
402
403 /**
404 * @brief Name der Organisation.
405 *
406 * Die Angabe dieses Wertes ist optional.
407 * Wenn \c organisation und \c abteilung nicht angegeben werden, wird "ELSTER" verwendet.
408 */
409 const char* organisation;
410
411 /**
412 * @brief Name der Abteilung (organizational unit) der Organisation.
413 *
414 * Die Angabe dieses Wertes ist optional.
415 * Wenn \c organisation und \c abteilung nicht angegeben werden, wird "ERiC" verwendet.
416 */
417 const char* abteilung;
418
419 /**
420 * @brief Beschreibung, welche für den Anwender im Zertifikat abgelegt wird.
421 *
422 * Die Angabe dieses Wertes ist optional.
423 */
424 const char* beschreibung;
425} eric_zertifikat_parameter_t;
426
427 /**
428 * ::eric_log_level_t ist ein Parameter für Funktionen vom Typ ::EricLogCallback.
429 * Der Loglevel kann zum Filtern für das ERiC Protokoll verwendet werden, siehe
430 * @typeDokumentation{ERiC-Entwicklerhandbuch.pdf}, Kap. "Das ERiC Protokoll eric.log".
431 */
432 typedef enum
433{
434 /// Fehler, der zum Programmabbruch führt.
435 ERIC_LOG_ERROR = 4,
436 /// Hinweise auf Zustände, die zu Fehlern führen können.
437 ERIC_LOG_WARN = 3,
438 /// Grobe Informationen über den Programmablauf und Werte.
439 ERIC_LOG_INFO = 2,
440 /// Feingranulare Informationen über den Programmablauf und Werte.
441 ERIC_LOG_DEBUG = 1,
442 /// Sehr feingranulare Informationen über den Programmablauf und Werte.
443 ERIC_LOG_TRACE = 0
444} eric_log_level_t;
445
446/**
447 * @brief Typ der Callback-Funktion zum Logging.
448 *
449 * Wenn registriert, wird diese Callback-Funktion
450 * für jeden Log-Eintrag mit folgenden Parametern aufgerufen.
451 *
452 * @param kategorie Kategorie des Logeintrags. Beinhaltet das Modul, welches
453 * den Log-Eintrag ausgibt. Zum Beispiel "eric.ctrl2". Kann
454 * zum Filtern verwendet werden. Alle Log-Nachrichten besitzen
455 * eine Kategorie. Der Zeiger ist nur innerhalb dieser
456 * Funktion gültig.
457 *
458 * @param loglevel Log-Level des Logeintrags. Kann zum Filtern verwendet werden.
459 *
460 * @param nachricht Enthält die Log-Nachricht als Zeichenkette. Der Zeiger ist
461 * nur innerhalb dieser Funktion gültig.
462 *
463 * @param benutzerdaten Der Zeiger, der bei der Registrierung mit
464 * ::EricRegistriereLogCallback() übergeben worden ist,
465 * wird in diesem Parameter vom ERiC unverändert
466 * übergeben.
467 *
468 * @see
469 * - ::EricRegistriereLogCallback()
470 *
471 */
472 typedef void(STDCALL *EricLogCallback)(
473 const char* kategorie,
474 eric_log_level_t loglevel,
475 const char* nachricht,
476 void* benutzerdaten);
477
478 enum
479{
480 /**
481 * @brief \c id, die beim Einlesen des XMLs von Fortschrittcallbacks
482 * ausgegeben wird.
483 */
484 ERIC_FORTSCHRITTCALLBACK_ID_EINLESEN = 10,
485
486 /**
487 * @brief \c id, die gemeldet wird, wenn die Daten zum Versand noch
488 * vorbereitet werden müssen.
489 */
490 ERIC_FORTSCHRITTCALLBACK_ID_VORBEREITEN = 20,
491
492 /**
493 * @brief \c id, die beim Validieren der Eingangsdaten von
494 * Fortschrittcallbacks ausgegeben wird.
495 */
496 ERIC_FORTSCHRITTCALLBACK_ID_VALIDIEREN = 30,
497
498 /**
499 * @brief \c id, die beim Versand der Ausgangsdaten von
500 * Fortschrittcallbacks ausgegeben wird.
501 */
502 ERIC_FORTSCHRITTCALLBACK_ID_SENDEN = 40,
503
504 /**
505 * @brief \c id, die beim Druck der Eingangsdaten von
506 * Fortschrittcallbacks ausgegeben wird.
507 */
508 ERIC_FORTSCHRITTCALLBACK_ID_DRUCKEN = 50
509};
510
511/**
512 * @brief Typ der Callback-Funktionen, die am ERiC für Fortschrittanzeigen
513 * registriert werden können.
514 *
515 * @param id Aktueller Verarbeitungsschritt
516 *
517 * @param pos Aktueller Fortschritt bezogen auf \c max
518 *
519 * @param max Maximalwert des aktuellen Fortschritts \c pos
520 *
521 * @param benutzerdaten
522 * @parblock
523 * Der Zeiger, der bei der Registrierung mit
524 * ::EricRegistriereGlobalenFortschrittCallback() oder
525 * ::EricRegistriereFortschrittCallback() übergeben
526 * worden ist, wird in diesem Parameter vom ERiC
527 * unverändert übergeben.
528 * @endparblock
529 *
530 * Es gilt stets, dass: @mAbsatz
531 * - \c pos größer oder gleich 0 und kleiner oder gleich \c max ist
532 * - \c max ist immer größer als 0
533 */
534 typedef void (STDCALL *EricFortschrittCallback)(
535 uint32_t id,
536 uint32_t pos,
537 uint32_t max,
538 void *benutzerdaten);
539
540#endif /*ERIC_TYPES_H_*/
byteChar
char byteChar
Der Datentyp byteChar wird immer dann verwendet, wenn an diesem Parameter keine UTF-8 codierte Daten ...
Definition eric_types.h:53
EricInstanzHandle
struct EricInstanz * EricInstanzHandle
Handle auf eine ERiC-Instanz.
Definition eric_types.h:45
EricRueckgabepufferHandle
struct EricReturnBufferApi * EricRueckgabepufferHandle
Handle zur Verwaltung und Verwendung von Rückgabepuffern.
Definition eric_types.h:175
EricPdfCallback
int(* EricPdfCallback)(const char *pdfBezeichner, const BYTE *pdfDaten, uint32_t pdfGroesse, void *benutzerDaten)
Typ der Callback-Funktion zur Übergabe eines PDFs an die Anwendung.
Definition eric_types.h:214
eric_bearbeitung_flag_t
eric_bearbeitung_flag_t
Bearbeitungsflags für die Anwendungsfälle von EricBearbeiteVorgang().
Definition eric_types.h:94
ERIC_DRUCKE
@ ERIC_DRUCKE
Der Datensatz soll gedruckt werden.
Definition eric_types.h:108
ERIC_SENDE
@ ERIC_SENDE
Der Datensatz soll an den ELSTER Annahmeserver versendet werden.
Definition eric_types.h:103
ERIC_VALIDIERE
@ ERIC_VALIDIERE
Der Datensatz soll validiert werden.
Definition eric_types.h:98
ERIC_PRUEFE_HINWEISE
@ ERIC_PRUEFE_HINWEISE
Der Datensatz soll auf Hinweise hin geprüft werden.
Definition eric_types.h:113
ERIC_VALIDIERE_OHNE_FREIGABEDATUM
@ ERIC_VALIDIERE_OHNE_FREIGABEDATUM
Der Datensatz soll validiert werden, ohne dabei die Prüfbedingung "ERiC_DV_Freigabedatum_pruefen" aus...
Definition eric_types.h:126
eric_log_level_t
eric_log_level_t
Definition eric_types.h:433
ERIC_LOG_TRACE
@ ERIC_LOG_TRACE
Sehr feingranulare Informationen über den Programmablauf und Werte.
Definition eric_types.h:443
ERIC_LOG_DEBUG
@ ERIC_LOG_DEBUG
Feingranulare Informationen über den Programmablauf und Werte.
Definition eric_types.h:441
ERIC_LOG_INFO
@ ERIC_LOG_INFO
Grobe Informationen über den Programmablauf und Werte.
Definition eric_types.h:439
ERIC_LOG_WARN
@ ERIC_LOG_WARN
Hinweise auf Zustände, die zu Fehlern führen können.
Definition eric_types.h:437
ERIC_LOG_ERROR
@ ERIC_LOG_ERROR
Fehler, der zum Programmabbruch führt.
Definition eric_types.h:435
EricTransferHandle
uint32_t EricTransferHandle
Das EricTransferHandle wird beim Anwendungsfall "Datenabholung" der API-Funktion EricBearbeiteVorgang...
Definition eric_types.h:84
EricZertifikatHandle
uint32_t EricZertifikatHandle
Integer-Typ für Zertifikat-Handles.
Definition eric_types.h:59
ERIC_FORTSCHRITTCALLBACK_ID_VORBEREITEN
@ ERIC_FORTSCHRITTCALLBACK_ID_VORBEREITEN
id, die gemeldet wird, wenn die Daten zum Versand noch vorbereitet werden müssen.
Definition eric_types.h:490
ERIC_FORTSCHRITTCALLBACK_ID_SENDEN
@ ERIC_FORTSCHRITTCALLBACK_ID_SENDEN
id, die beim Versand der Ausgangsdaten von Fortschrittcallbacks ausgegeben wird.
Definition eric_types.h:502
ERIC_FORTSCHRITTCALLBACK_ID_VALIDIEREN
@ ERIC_FORTSCHRITTCALLBACK_ID_VALIDIEREN
id, die beim Validieren der Eingangsdaten von Fortschrittcallbacks ausgegeben wird.
Definition eric_types.h:496
ERIC_FORTSCHRITTCALLBACK_ID_DRUCKEN
@ ERIC_FORTSCHRITTCALLBACK_ID_DRUCKEN
id, die beim Druck der Eingangsdaten von Fortschrittcallbacks ausgegeben wird.
Definition eric_types.h:508
ERIC_FORTSCHRITTCALLBACK_ID_EINLESEN
@ ERIC_FORTSCHRITTCALLBACK_ID_EINLESEN
id, die beim Einlesen des XMLs von Fortschrittcallbacks ausgegeben wird.
Definition eric_types.h:484
EricFortschrittCallback
void(* EricFortschrittCallback)(uint32_t id, uint32_t pos, uint32_t max, void *benutzerdaten)
Typ der Callback-Funktionen, die am ERiC für Fortschrittanzeigen registriert werden können.
Definition eric_types.h:534
EricLogCallback
void(* EricLogCallback)(const char *kategorie, eric_log_level_t loglevel, const char *nachricht, void *benutzerdaten)
Typ der Callback-Funktion zum Logging.
Definition eric_types.h:472
platform.h
uint32_t
__plattformabhaengige_Implementierung__ uint32_t
Definition platform.h:211
eric_druck_parameter_t
Diese Struktur enthält alle für den Druck notwendigen Informationen.
Definition eric_types.h:228
eric_druck_parameter_t::version
uint32_t version
Version dieser Struktur. Die Version muss derzeit 4 sein. Bei Änderungen dieser Struktur wird dieser ...
Definition eric_types.h:235
eric_druck_parameter_t::pdfCallback
EricPdfCallback pdfCallback
Optionale Angabe einer Callback-Funktion für die Übergabe eines PDFs vom ERiC an die Anwendung....
Definition eric_types.h:306
eric_druck_parameter_t::pdfCallbackBenutzerdaten
void * pdfCallbackBenutzerdaten
Zeiger auf Benutzerdaten, der bei einem Aufruf des pdfCallback vom ERiC als Parameter unverändert wie...
Definition eric_types.h:312
eric_druck_parameter_t::vorschau
uint32_t vorschau
Soll ein Vorschau-PDF erstellt werden?
Definition eric_types.h:247
eric_druck_parameter_t::fussText
const char * fussText
Fußtext der auf dem Ausdruck verwendet werden soll (optional).
Definition eric_types.h:297
eric_druck_parameter_t::duplexDruck
uint32_t duplexDruck
Soll die PDF-Datei für einen doppelseitigen Ausdruck mit Heftrand zum Lochen vorbereitet werden?
Definition eric_types.h:258
eric_druck_parameter_t::pdfName
const byteChar * pdfName
Pfad der erzeugten PDF-Datei.
Definition eric_types.h:287
eric_verschluesselungs_parameter_t
Für die Signatur oder Authentifizierung benötigte Informationen.
Definition eric_types.h:324
eric_verschluesselungs_parameter_t::zertifikatHandle
EricZertifikatHandle zertifikatHandle
Verweis auf den KeyStore, siehe EricGetHandleToCertificate().
Definition eric_types.h:337
eric_verschluesselungs_parameter_t::version
uint32_t version
Version dieser Struktur. Muss derzeit immer 3 sein. Bei Änderungen dieser Struktur wird dieser Wert i...
Definition eric_types.h:332
eric_verschluesselungs_parameter_t::pin
const byteChar * pin
PIN für den KeyStore.
Definition eric_types.h:342
eric_zertifikat_parameter_t
Struktur mit Informationen zur Erzeugung von Zertifikaten mit EricCreateKey().
Definition eric_types.h:357
eric_zertifikat_parameter_t::email
const char * email
E-Mail-Adresse des Anwenders.
Definition eric_types.h:401
eric_zertifikat_parameter_t::version
uint32_t version
Version dieser Struktur. Muss derzeit immer 1 sein. Bei Änderungen dieser Struktur wird dieser Wert i...
Definition eric_types.h:365
eric_zertifikat_parameter_t::ort
const char * ort
Wohnort des Anwenders, inklusive PLZ. Beispiel: "D-10179 Berlin".
Definition eric_types.h:387
eric_zertifikat_parameter_t::abteilung
const char * abteilung
Name der Abteilung (organizational unit) der Organisation.
Definition eric_types.h:417
eric_zertifikat_parameter_t::adresse
const char * adresse
Straßenangabe mit Hausnummer des Anwenders mit Zusätzen, Beispiel: "Musterstraße 123 Zugang im Rückge...
Definition eric_types.h:394
eric_zertifikat_parameter_t::beschreibung
const char * beschreibung
Beschreibung, welche für den Anwender im Zertifikat abgelegt wird.
Definition eric_types.h:424
eric_zertifikat_parameter_t::organisation
const char * organisation
Name der Organisation.
Definition eric_types.h:409
eric_zertifikat_parameter_t::land
const char * land
Land (Länderkürzel) des Anwenders. Beispiel: "DE".
Definition eric_types.h:380
eric_zertifikat_parameter_t::name
const char * name
Name des Anwenders.
Definition eric_types.h:373