I used VC 7 and 8 and also 6 a short time. I use VC because it is no option for me, to add mixed code, or a dotnet assembly with wrappers only to COM interfaces, while I must be sure, that my clients =will be= supporting DotNet 2.0 down to windows 2000.
So I use VC++ 8.0
My biggest advise: Don't *touch* VC syntax anymore!
I used to have big chunks of code in VC 7, and it used attributes. Some guys found those attributes not OK, so everything has been modified (ole db templates, COM attributes etc).
Where the attributes in VC 8 a success? Not at all. So I had to modify my code to non-attributed and this led to bugs again, in my code.
I would like to see that ATL would be updated to using newest APIS if the environment is compiled for XP and higher.