Nun denn,
ich habe die Chose noch etwas massiert und bin an der Stelle angelangt, dass
Delphi-Quellcode:
{Transfer image memory}
function TTwainSource.TransferImageMemory(var ImageHandle: HBitmap;
PixelType: TW_INT16): TW_UINT16;
var
{...}
begin
{Obtain information on the transference buffers}
Result := Owner.TwainProc(AppInfo, @Structure, DG_CONTROL, DAT_SETUPMEMXFER,
MSG_GET, @Setup);
{...}
mir nur TWRC_FAILURE zurückliefert, das wäre der Anfang des Transferprozesses. Ich war so frei, noch messageboxes einzuführen, die mir zunächst den Wert von GetReturnStatus anzeigen, bis ich dann herausgefunden habe, dass der Rückgabewert von TwainProc, der aussagt, ob diese überhaupt erfolgreich war, weggeworfen wird und so Phantasiewerte für den TW_STATUS.ConditionCode rauskommen.
Meine Vermutung wäre, dass die Twainquelle (Leica DFC Demokamera) es schon nicht hinbekommt, in den bereitgestellten Speicher zu schreiben und dann abbricht - wenn nicht schon vorher. Ich habe auch schon etwas im funktionierenden c++-Code der Testapplikation von twain.org herumgelesen, allerdings ohne Erfolg. Kann mir jemand einen Ratschlag geben, wie ich weiter debuggen kann, ohne die 664 Seiten der Twain 2.1 Spezifikationen durchzulesen?
Danke schonmal.
ps. das Bitmap wird, soweit ich es auf den ersten Blick beurteilen konnte, noch korrekt erzeugt, wenn man den return code überschreibt, kommt ein schwarzes Bild an, das einen korrekten Header hat. Irgendwas geht zwischen dem Start der
GUI und dem Callback kaputt...