IImageFactory works quite well, but there seems to be a small memory leak when used with Com Interop.
And will only work from a file or a resource.
Per pixel AlphaBlend needs a 32bit DIB vs, a DDB which does not suppprt the Alpha channel.
A Bitmap loaded from a file and then AlphaBlended on a DIB works but seems to get mirrored and split in two and does retain the Alpha.
Bitmaps from a b4p imagelist don't seem to work at all.
Though I think it should work as it is an embedded resource that can retain the Alpha channel, just haven't figured it out yet.
So the answer for now anyway is IImage.
I haven't got a chance to upload my Alpha library yet but it does work.
Hopefully tomorrow I will after cleaning out the junk.