Zitat:
Entweder ist die Frage unscharf formuliert oder du musst gedanklich zwei Schritte zurückgehen.
Wohl eher unscharf.. denn es war keine frage sondern eine Feststellung.
Ich habe keinen Einfluss darauf was mir GetPropertyItem zurück liefert bzw. kann keinen Einfluss darauf nehmen abgesehen davon den Speicher richtig zu Reservieren.
Mein Problem ergab sich aus der
VAR variable (Rückgabe) diese scheint bei unterschiedlichen Programmiersprachen anders ausgelegt zu werden.(Oder diese wurde dort falsch definiert).
Deshalb halte ich mich jetzt strikt an die Funktion die von MS festgelegt wurde (C++)
Aber danke verstehe was du meinst.
Delphi-Quellcode:
Size := GetPropertyItemSize(EXAMPLE_PROPERTY);
GetMem(MyPropItemPtr, Size);
GetPropertyItem(Image, EXAMPLE_PROPERTY, Size, MyPropItemPtr);
// ... mache dein Zeug
FreeMem(MyPropItemPtr, Size);
Ist doch genau das selbe was ich auch mache.
Ich hole mir den Size vom Record und Reserviere den Speicher dafür.
Delphi-Quellcode:
// Datengröße vom EXIF-Tag PropertyTagLoopCount ermitteln
if GDIP_GetPropertyItemSize(GifImage, PropertyTagLoopCount, PropSize) = OK then
begin
// Speicher allokieren
GetMem(FPropItem, PropSize);
// Daten auslesen
if GetPropertyItem(GifImage, PropertyTagLoopCount, PropSize, FPropItem) = OK then
gruss