Edited from some code I found, but don't know why it works. Palette doesn't get used ever again after this code, but still gets applied to the image when compiled and ran?

Code:
bmp.palette =(RGBQUAD*) ((BYTE*)bmp.bitmapInfo + sizeof(BITMAPINFOHEADER));
if(!fread(bmp.palette, sizeof(RGBQUAD), bmp.nColors, file))