Ich nehme mal stark an, dass _GDIPlus_ImageLoadFromFile das Handle auf dem Dateisystem offen hält und du somit nicht in die Datei schreiben kannst.
Was du allerdings machen kannst, ist das Image zu manipulieren, das alte zu disposen und das neue zu saven.
Als Beispiel kannst du z.B. mit _ImageScale das Bild skalieren und den Returnwert mit _ImageSaveToFile nutzen (vorher aber das alte $hFile mit _ImageDispose disposen).