When will it be impossible to support Visual Basic 6.0 applications?
There is a ton of vertical market software developed in VB6 by manufacturers of various types of machinery. VB6 use of ActiveX controls, ActiveX DLLs, and the ability to consume most Win32 DLLs has lead to many manufacturers of various components to support VB6.
Using VB6 and the support libraries is at least an order of magnitude faster and more reliable than the older methods of assembly on custom chips, or using C. Note that even the C/C++ developers were helped as they can consume the new support libraries as well.
Many of these applications are filled with math functions that have been tested to work for the environment and the machinery they were designed for.
So when Microsoft made VB.NET incompatible with VB6 this was a BIG deal for many of us. Unlike the transition from VB3 to VB4-6, we have to touch our code in many place in order to get it working with .NET. So many in fact that it devolves to the same thing as rewriting your software in a new language.
For these reasons VB6 will live on for a while longer as all these machines are out there. Still needing new updates and fixes.
If you need to continue to support VB6 I would recommend creating a VM that contains XP and VB 6 with all the service packs on it. This way you can continue to run your development environment even though your desktop evolves to something that may be incompatible with the VB 6 dev environment. Installing Visual Studio 6 on Vista had issues two years ago.
For new development beyond maintenance I would look towards using a different environment. It's been my experience that you are better off looking at it from a completely fresh view point and not restrict yourself to migrating to VB .NET. It's enough of a hassle to migrate that you really should do new development in the best environment for your application. That may be VB .NET and it may not.
Developing using obsolete technology is never a problem until it's a problem and then it is too late. You need to stay in the sweet spot of the curve and you are the only one that can decide what that is. If you switch too early you will probably make the wrong decision and if you wait too long you will be too far behind. It's decisions like this that makes this field fun and painful at the same time.
It will probably work for a good number of years, but eventually you'll get to the point where you have to maintain old hardware, running an old, unpatchable OS, in order to run the software. Meanwhile, you're missing out on all of the new framework and language goodies that get developed. Eventually, you'll have a need to fix something or add something that isn't possible in your environment and then you get to pay the entire bill for your accumulated technical debt.
My take: you should already be working on an upgrade to a newer platform or replacement for the application. My preference is almost always to do this before I'm forced to by circumstances.
I'd say they're at risk, because the OS and hardware will evolve out from under them.
You can run Visual Basic 6.0 on Windows XP, but even that's close to the end of its life (it keeps being revived on its death bed).
Those Cobol applications still live because the mainframes they run on aren't going anywhere. "Big iron" was built during a time when computers were expensive and rare and had to run for 20-30 years. Not true with applications based on PCs and Windows, which are viewed as more disposable.