Well, there may be std type replacements eg if using MS COM obj, use this (for some value of 'this') as a replacement technique.
Given the long and tortuous history/mix of tech in the orig prog, I'd be surprised if it would that easy, as any particular technique affects the overall design/arch of the prog. If you try to replace each bit dependent on whether it was done in C, C++, COM etc, you'll still end up with an unmaintainable prog because the Linux replacements have a different idea about how the world works.
Not sure if that's clear as mud.. hmmm try this; what I'm trying to say is piecemeal replacement may 'work', but a much more sane/clean result would be if you made it work the way the Linux tech works, rather than shoehorning in gobs of 'translated' MS.
As an example, during the Y2K proj we needed to translate some FORTRAN to C, and initially did it with an auto translater, but the code was horrible and I had to amend some anyway (for Y2K) and in the end it would have been better code and probably quicker if I'd coded myself in C from scratch, just usng the functionality spec.
I'd still like to hear from anyone who's done this; I could be way off.
If you do decide on a rewrite, it's worth looking at using a different lang that would make your life easier.
Personally, I did about 8yrs of C, now about 8yrs of Perl.
It's about 90% as fast as C, but programmer productivity is faster because it does the fiddly stuff for you eg vars are dynamically sized, so no worrying about going off the end of strings etc. There's a huge lib of pre-written modules here: search.cpan.org. Basic var types are scalar, array, hash. Full lang man inc examples here:
http://perldoc.perl.org/index.html
Other langs are avail, but I don't know enough about them to comment (others will). I can say I've been very happy with moving up to Perl, even though I liked C once i got the hang of it.
Looking fwd to other's comments.