He encontrado el problema. Tenía la función dentro de un timer porque quiero refrescar la imagen y lo que hacía en la segunda vuelta del timer era dibujarme la pantalla en negro.
Muchas gracias.
De nada, mf.data tendrias que pasarlo en LPARAM lParam en vez de el handle a un archivo que ya no abris, asi automaticamente usarias cada vez que refrescaras la imagen desde el comienzo (si buscas los mensajes anteriores vas a ver como hacerlo).