En cuestion es sobre archivos BMP(bitmap) en c++ sobre unos ejercicios que llevo intentado hacer dos semanas y no hay manera de que me salgan

uno es sobre:
Un programa que lea un fichero BMP en color y genere otro fichero BMP con la imagen original rotada horizontalmente alrededor del eje vertical.
Otro sobre:que diga las caractersticas de su cabecera y los datos de la imagen.
Y por ultimo uno : que genere otro fichero BMP con una copia de la imagen pero
en tonos de gris.
De verdad les estaria muy agradecido si me pudiesen ayudar, soy malisimo para c++ u.u