Ich bin mir nicht sicher aber ich glaube du musst das Icon in einen Stream laden und diesen als die letzten Parameter an UpdateResource übergeben.
Delphi-Quellcode:
var
ptr: Pointer;
begin
...
Stream.Read(ptr^, Stream-Size);
...
UpdateResource(hInst, RT_ICON, MAKEINTRESOURCE(1), LANG_NEUTRAL, ptr, Stream.Size);
....
freemem(ptr, Stream.Size + 1);
end;