El código original está escrito para delphi7 en un mundo sin unicode. Para adaptarlo a Berlin o Tokio hay que modificar la función
CreateHBITMAPFromFile que quedaría así:
Código Delphi
[-]
function CreateHBITMAPFromFile(FileName: PCHAR): HBITMAP;
var
gdiplusToken: DWORD;
GdiPlusStartupInput: array[0..2] of int64;
GBitmap: THANDLE;
begin
Result:= 0;
GdiPlusStartupInput[0]:= 1; GdiPlusStartupInput[1]:= 0;
if GdiplusStartup(gdiplusToken, @GdiPlusStartupInput, nil) = 0 then
begin
GdipCreateBitmapFromFile(FileName, GBitmap);
GdipCreateHBITMAPFromBitmap(GBitmap, Result, 0);
GdiplusShutdown(gdiplusToken);
end;
end;
Aquí puedes encontrar el proyecto completo adaptado a Berlin.
Saludos.