Héctor,
En todas las líneas en las que uses SelectObject() tendras que hacerles el "casting" al mismo tipo de la variable que recibe el valor devuelto:
hOldFont = ( HFONT ) SelectObject( hDC, hFont ) ;
ya que SelectObject() devuelve un HGDIOBJ y lo vas a guardar en un HFONT.