Was den Callback angeht, findet sich in der DoShrink.h
Code:
virtual int CallBack(int alert, int param, void *pTransfer);
und in der DoShrink.cpp
Code:
// derived callback routine
int UserTransferAlert::CallBack(int alert, int param, void *pTransfer)
{
switch(alert)
{
case ALERT_PREVIEW_AVAIL:
HBITMAP hprevBitmap;
hprevBitmap = bmpStatic->SetBitmap((HBITMAP)param);
DeleteObject(hprevBitmap);
return 1; // we keep the current hbitmap
default: return -1;
}
}
Zu den pUser/pUserData finde ich nichts.
Jetzt bekomme ich nach dem Start des Transfer die Zugriffsverletzung:
Code:
---------------------------
Anwendungsfehler
---------------------------
Exception EAccessViolation in Modul ShrinkTo5.dll bei 0000D23D.
Zugriffsverletzung bei Adresse 1000D23D in Modul 'ShrinkTo5.dll'. Lesen von Adresse 00000030.
---------------------------
OK
---------------------------
und anschließend
Code:
---------------------------
Anwendungsfehler
---------------------------
Exception EOSError in Modul ShrinkGUI.exe bei 0000DEBD.
Systemfehler. Code: 5.
Zugriff verweigert.
---------------------------
OK
---------------------------
Das ist unabhängig davon, ob das Callback gesetzt ist oder nicht.
Ich hänge mal mein Projekt und den ShrinkTo5 Source an. Vielleicht hat jemand Lust, drüber zu sehen.