Auf welchen Datentyp mappt LONG_PTR
in deiner Delphi-Version?
LONG_PTR = Longint;
Habe mir dein Teil mal angesehen.
Du versuchst Propertys zu speichern btw.. zu setzen die du gar nicht zugewiesen hast.
Damit dein Beispiel funktioniert muss erst mal EXTEND_EXTRA auf 56Bytes festgelegt werden.
Dann must du den Speicher dafür reservieren.. dazu must du den WindowStyle der Form verändern
und für "cbWndExtra" die Bytes zuweisen.
Davon das die Resourcen nicht freigegeben werden mal ganz abgesehen.
ReleaseDC(Form1.Handle, DesktopDeviceContext);
Bsp.
Delphi-Quellcode:
const
FORM_BACKPaintBitmap = 14; // Memory Bitmap'
EXTEND_EXTRA = FORM_BACKPaintBitmap;
wc: TWndClassEx;
wc.cbWndExtra := EXTEND_EXTRA * 4; // = 56Byte
so wie du das versucht hast wird das nix.
Du setzt irgendwelche propertys ins nirvana.
Letztendlich tut der Code eh nichts da kein
Handle angegeben worden ist. (Rückgabe immer 0)
Warum da jetzt ein ERangeError kommt keine Ahnung..
Get/SetWindowLong wird ja nie aufgerufen.
gruss