Backwards compatibility with earlier versions of Windows is only one my reasons I still use those legacy interfaces instead of upgrading to the newer ones. The Visual Basic 6 runtime, as well as the DirectX 7 and 8 interfaces which I've been using, do work with all the mainstream versions of Windows from 95 onward up to 8*. But I do have other reasons. I also use them because I still have them at my disposal, I've become comfortable with them after using them for 10+ years, and it's sufficient for what I need. That's enough reason for me to keep using them. At least at this time, I have no interest or need to upgrade.
* The two 2D-only games I've been making, both many years in the making and still under development, have been using DirectDraw 7 for graphical output but since finding out that Windows 8 handles DirectDraw operations very slowly, I've been making alternate Direct3D 8 versions of both which I'm happy to say so far actually do run at the right speed in Windows 8 upon testing. In the one game I'm currently working on upgrading, I had a routine set up to read the colors from the screen's middle column of pixels in DirectDraw, but Direct3D handles that so differently from DirectDraw that I had to come on here to ask for help. XD