From time to time I see questions about the Visual C++ extensibility model in the MSDN VSX forum. While I haven’t used it (since my MZ-Tools add-in targets mainly C# and VB.NET), I like to take the challenge and investigate if I can provide an answer. I find that the Visual C++ extensibility model is even more tricky than the general one (EnvDTE).
I have written two small articles about a question that I answered some time ago:
HOWTO: Get standard include directories of Visual C++ project from an add-in
HOWTO: Get additional include directories of Visual C++ project from an add-in