array [byte] a HBITMAP o CBitmap

Tengo una matriz de bytes (que leo a través de una secuencia directamente desde un .bmp y luego la almaceno como BLOB en una base de datos) que quiero mostrar como iconos en una CImageList. Por lo tanto, quiero cargar de alguna manera mis datos en un HBITMAP o CBitmap. Lo he hecho así hasta ahora, leyendo un archivo:

hPic = (HBITMAP)LoadImage(NULL, strPath, IMAGE_BITMAP, dwWidth, dwHeight, LR_LOADFROMFILE | LR_VGACOLOR);
...
CBitmap bitmap;
bitmap.Attach(hPicRet);

Pero obviamente, eso solo funciona para archivos, pero no para conjuntos de bytes. ¿Cómo puedo obtener el mismo resultado, pero leyendo desde una matriz de bytes?

Editar: Tenga en cuenta que mi matriz no contiene solo la información de color, sino el archivo completo tal como está escrito en el disco, incluidos todos los encabezados y metadatos. Me parece que descartar toda esa información es una mala idea.

Respuestas a la pregunta(4)

Su respuesta a la pregunta