Hola.
biSizeImage no deberia ser 0. Una fórmula que yo utilizo es:
tamaño = ((bits + 7)/8) * ancho * alto;
Recomiendo que busques una mejor, por que me a dado problemas para mapas de 24 bits.
biBitCount no debe ser 0. Debes especificar el valor que corresponda a la imagen: 8, 16 o 24 bits. En cambio biCompression debe ser 0(generalmente).
¿Qué tipo de datos es jpg.data,es un puntero a void?
De todas maneras, te recomiendo este sitio:
www.codeproject.com/bitmap/Saludos.