Wenn ich nur citCreate übergebe, bekomme ich 2 zurück.
Wenn ich nur citVerify übergebe, bekomme ich 4 zurück.
Bei beiden Werten bekomme ich 6 zurück.
Die Werte stimmen aber nicht mit der Enmueration überein.
Tun sie doch!
Delphi-Quellcode:
TCreateImageTask = (
citCreate = 1,
citVerify
);
In Delphi hat das erste Element einer Enumeration den Ordinalwert 0 - außer man überschreibt das explizit, wie du das mit citCreate = 1 machst. Damit bekommt citCreate den Ordinalwert 1 und citVerify den Ordinalwert 2.
Baust du aus nun aus diesen Werten ein Set, daß du dann als Integer auswertest, dann entspricht ein citCreate einem Wert von 2^1 = 2 und citVerify von 2^2 = 4. Sind beide gesetzt, kommt logischerweise eine 6 heraus. Das passt zu deinen Beobachtungen.
Ich konnte jetzt aber noch keine Beschreibung entdecken, wie der Gegenpart (die
DLL) die Daten erwartet. Deswegen kann ich auch nicht sagen, wie es richtig heißen muss.
Außerdem wäre die Angabe deiner Delphi-Version hilfreich. Nur so können wir hier qualifizierte Antworten zu geben, die auch von deiner Version unterstützt werden.