I guess DirectShow would be more appropriate.
You could also perform your rendering in OpenGL (which is what most of the video player do those days, mainly because of native YUV format) or DirectX.
Although VFW is ancient it is simple and fast. We are developing vj software and we swear by VFW. We use VFW and OpenGL for displaying.
DirectShow is hard to get comfortable with, of course you can do much more with it then VFW and for other purposes it is great but if you just want to playback .avi files use VFW.