I'd say learn C# if you can. It has some very nice things in it that the C++ in Visual Studio lacks. Since your starting fresh, might as well start with the one that makes your life easier.

Code wise, not sure of any specific open source C# programs to poke at, but the MSDN documentation usually has enough example code to get me through most issues.

My program is Game Resolution Switcher. Made it more for myself to solve a problem of gaming on one system with multiple resolutions, but it's popular with widescreen gamers since it also sets games to widescreen when they may not expose such resolutions in game. I've gotten some feedback from people who also game on HTPCs, since it makes it easier to set custom resolutions some screens use. I'm planning on expanding it a lot for the 0.7 milestone for letting people set different resolutions. Need to get 0.6 done first though.