In der Doku zu
GdipGetPropertyItem steht:
Zitat:
Before you call Image::GetPropertyItem, you must allocate a buffer large enough to receive that object — the size varies according to data type and value of the property item.
Diesen Schritt finde ich in deinem Code aber nicht:
Delphi-Quellcode:
// Datengröße vom EXIF-Tag
// "PropertyTagFrameDelay" ermitteln
if GDIP_GetPropertyItemSize(InGifImage, PropertyTagFrameDelay, PropSize) = S_OK then
begin
// Daten auslesen
if GetPropertyItem(InGifImage, PropertyTagFrameDelay, PropSize, PropItem) = S_OK then
begin
In der Folge ist der bereitgestellte Speicher für
PropItem höchstwahrscheinlich nicht ausreichend und es werden wohl unkontrolliert andere Variablen überschrieben.