Sorry ich weis jetzt nicht was du meinst wie soll ich dem Record einen Speicher zuweisen.
Das kannst du so gar nicht. Deswegen wird in den Beispielen auch immer ein dynamischer Pointer PPropertyIem benutzt, der entsprechend PropSize alloziert wird.
Delphi-Quellcode:
PropSize: UINT;
PropItem: PPropertyItem; // dynamischer Pointer auf Record
if GDIP_GetPropertyItemSize(InGifImage, PropertyTagFrameDelay, PropSize) = S_OK then
begin
GetMem(PropItem, PropSize); // Record in passender Größe bereitstellen
// Daten auslesen
if GetPropertyItem(InGifImage, PropertyTagFrameDelay, PropSize, PropItem^) = S_OK then // Alternativ den Typ des Parameters in PPropertyItem ändern
...
FreeMem(PropItem); // Delphi merkt sich die Size intern