I really wouldn't worry too much about the change in technology, it's almost inevitable. And Microsoft aren't the only culprits, Apple have also recently changed the development model to use Objective C (although you can still code in C for Carbon) which although I like it, is pretty obscure.
Sure Linux hasn't really changed that much but which UI toolkit are you going to learn? Gnome or KDE or just plain ole X? (C/C++/C)
Coming from 5 years of being in the Java world I was really nervous about jumping onboard the C# ship not having a very in depth knowledge of COM, but you know what? I've not encountered a sitatuation yet (2.5 years later) where I've needed to know COM in great detail. Sure I've used P/Invoke a couple of times (which keeps the C monster in me happy) but other than that it's been C# all the way. There's no need to live in the past, if COM or Win32 interests you then by all means learn them as you learn .Net (they will both be about for a *very* long time) but Microsoft are pushing towards .Net and that's where we have to go (not like it is painful though, C# is a very nice language/environment).
I imagine this is exactly how a lot of Mac developers felt when told they should learn ObjC - even though today you can still code in C using Carbon.