2007Here at ExchangeDefender, we have finally resolved the issue with our Outlook 2007 SMTP Security add-in. This project has been a thorn in our side for quite some time and I’m proud to announce that our development team has finally got it working! We spent the good part of the week going over and over Outlook 2007 & 2010 documentation and implementation methods for Outlook controls. After hours and hours of troubleshooting and testing new scenarios we’ve finally got all the pieces to fit together correctly. I’ll briefly describe the development cycle of this project, to help enlighten those who think bugs/feature requests get brushed aside and forgotten about.

Our original Outlook 2007 add-in was created years ago and was at a time where Outlook add-ins weren’t really supported NATIVELY. So part of the conflict was restructuring our code to take advantage of the native Office 2010 hooks, since they are backwards compatible for 2007. We had to phase out all of our old methods that had a heavy dependence on a 3rd party Outlook .dll called (Redemption). That was our first hurdle.

Then we found out while everything would compile without any conflict, the add-in still wouldn’t load correctly inside of the Outlook application. So we went back to the drawing board and examined what was happening on a lower level. To our surprise, the compiler (Visual Studio 2010) kept replacing the Outlook 2007 included references with the newest 2010 files. This was completely unexpected and unwarranted behavior in comparison to what we were expecting. So to keep things on par, we moved the development environment to a virtual machine running Windows XP, Office 2007 & Visual Studio 2010. This resolved the conflict of Visual Studio fetching incorrect .dll files and replacing them at compile time.

Perfect right? Everything should work…

Nope, the next issue was the worst! The add-in would not load and didn’t generate any errors…

A developer’s worst nightmare: Trying to figure out what’s wrong with absolutely nothing to formulate a reason for the failure. We’ll apparently there was a slight conflict between the old way of handling the .manifest file and loading the ribbon controls. So after we tweaked the registry controls and load behaviors, we then rewrote some of the ribbon controls to support the newest version of VSTO. That’s when things started to work!!!

So, as you should be able to conclude, it was no walk in the park. We would have loved to get this working a very long time ago, but at the time we simply didn’t have the time or resources to address the issue directly.

Hank Newman
VP Development, ExchangeDefender