It's pretty much re-writing.
COM programming was way too archaic and inconvenient. Remember that COM was created to allow for object-oriented programming and interoperation between different object-oriented languages for a platform with not object-oriented API. Now when we have .NET, why would we keep using those crutches? :-)
I would advise you start from scratch using your old implementation just for reference purposes.
Please see:
http://msdn.microsoft.com/en-us/library/80493a3w.aspx[
^],
http://www.c-sharpcorner.com/UploadFile/mgold/AddIns11292005015631AM/AddIns.aspx[
^].
This CodeProject article can also be useful:
Visual Studio Add-in Library[
^].
[EDIT]
I'm not sure what kind of C++ porting are you asking about, but if you are talking about Add-Ins, you will have to work with .NET, which is much smoother than native development. And the language cannot be plain C++; you will need a very different thing, C++/CLI (or C#).
Please see:
http://en.wikipedia.org/wiki/C%2B%2B/CLI[
^],
http://www.ecma-international.org/publications/standards/Ecma-372.htm[
^],
http://www.gotw.ca/publications/C++CLIRationale.pdf[
^].
If you are talking about native C++ development, I would highly recommend to learn very much improved C++11. Please see:
http://en.wikipedia.org/wiki/C%2B%2B11[
^],
http://en.cppreference.com/w/[
^].
This is a good tutorial:
http://www.learncpp.com/[
^].
Happy New Year!
—SA