The Microsoft Office COM-based object model

I have been asked how PSSA can achieve such a high degree of interactivity with Microsoft Project without actually running in Microsoft Project. I surmise that this question must pop up when you realize the power and flexibility of PSSA UI.

Why use WPF ? We foresee that later versions of PSSA will make extensive use of graphics and other advanced features that will greatly enhance a project manager experience.

How can a WPF based UI interoperate efficiently with Microsoft Project? The answer is short, but the recipe to make it work is not: the Microsoft Office application’s COM-based object model. Extensively used by project managers to automate certain tasks using Visual Basic for Application (VBA), the object model is not as easy to tame when you are trying to access it with the .NET framework and its managed code. Microsoft offers an interop API that somewhat eases the pains, but it is not enough.

In order to interact in real time with Microsoft Project, PSSA had to be built to survive the intermittent timeouts and unmanaged errors generated by the interop API.