Lo tengo!!!
Al crear la estructrura TBitmapInfoHeader hay que inicializar el valor biSize.
La variable era
nfoHead : TBitmapInfoHeader
la inicializaba con
new(nfoHead)
y pasaba el valor a biSize mediante
nfoHead^.biSize := SizeOf(nfoHead)
Cuando en realidad tenía que ser:
nfoHead^.biSize := SizeOf(TBitmapInfoHeader)
Encontrar esta pulga entre todo el código ha sido un calvario pues no es lo mismo el tamaño del puntero que el tamaño de la estructura a la que apunta el puntero
La próxima vez postearé el código completo en la pregunta.
Gracias
delphi.com.ar por el código de asignación del handle. Creí que el problema estaba ahí. La confirmación de que a tí te funcionaba me ha permitido buscar en otros segmentos del código. Me hubiera vuelto loco con la tontería de los handles y como son gestionados por los TBitmap.
De nuevo Gracias y Un saludo.