Hallo,
auf die Schnelle: Deine Callback Routine ist falsch deklariert.
MSDN:
Delphi-Quellcode:
int CALLBACK EnhMetaFileProc(
_In_ HDC hDC,
_In_ HANDLETABLE *lpHTable, // fehlt bei Dir
_In_ const ENHMETARECORD *lpEMFR,
_In_ int nObj, // fehlt bei Dir
_In_ LPARAM lpData
);
Also muss die so aussehen:
function MFProc(DC: HDC; PT : Pointer; P: Pointer; NumObjects: integer; MF: TXFormMetafileToMetafile): Integer; stdcall;
Damit funktioniert Dein Testprogramm.
Ich werde Dir meine angepasste SynPDF schicken.