David Thielen  
Home On Programming Articles, Etc. Blogs Resume

What Microsoft Could do to Make Writing a Word Add-in Easier and More Solid

Having just gone through the pain of learning all (most?) of the undocumented issues and problems with writing a Word add-in, here are my suggestions for what Microsoft could do to both make the process easier and to make it possible to write a more solid program.

Could do Today – Word Group

  • Provide a work-around for the bug in Find.Execute.
  • Extend the shim program to provide error messages when it cannot load the associated add-in.
  • Authenticode sign extensibility.dll
  • Authenticode sign the Office 2002 PIAs
  • Provide the Office 2000 PIAs. Strong name and authenticode sign them.
  • Provide a .msm installer for extensibility.dll & all three sets of PIAs (Office 2000, 2002, & 2003).
  • Allow Office 2003 PIAs to be installed by an add-in installer.

Could do Today – Other Groups

  • Provide both a .msi and .msm for installing sqldmo & associated files.
  • Act appropiately if Sql Server client already installed
  • List out the exceptions shdocvw.dll will throw (and catch) if you are using it properly. As it throws numerous exceptions when called correctly, there is no way to know if a given exception is due to a problem, or to be expected.

Next Version – Word Group

  • Provide an event just before the main menu will display a drop down menu from one of the main menu items.
  • Fix the bug in Find.Execute.
  • Fix the bug where menu objects are suddenly not connected to the menu COM object underneath.
  • Eliminate the need for the shim.
  • Provide a call to get the top application window. Normally this is OpusApp but when running in Outlook, it is Outlook’s window.

Next Version – Other Groups

  • Provide a pure managed code solution to place IE in a form (shdocvw.dll).
  • Provide sqldmo equivilents for other database to enumerate database servers on the network and then enumerate databases on a server.
  • Eliminate the handled exceptions in shdocvw.dll.
  • Provide a pure managed code solution for sqldmo.dll.
  • Help.ShowHelp(IWin32Window) as you can’t pass a Control for the parent window in an add-in.
  • When adding an existing file to a Visual Studio project, don’t copy it. (This is needed as you need to have an identical project for your add-in for each version of Word.)