June CTP Drop: An easier way to attach a VSTO customization for WordML and WordML XLST scenarios

I recently blogged about the new feature that fixes the Excel Locale issue. There are several other last minute additions to VSTO that I will blog about in the next several posts that you can try out in the June CTP drop.

As part of our last VSTO dev lab, we realized that it is very difficult to dynamically attach customizations via WordML & WordML XSLT files. In VSTO 2003, this was relatively easy as all you had to do was set the Word document properties _AssemblyName and _AssemblyLocation. In VSTO 2005, we use these properties, but we set _AssemblyName to "*" and _AssemblyLocation to a GUID that we use to look up a hidden ActiveX control in the Word document that contains the application manifest and the other stuff required to start up a VSTO 2005 customized document.

It was brought to our attention by people like Julie Kremer that it is very hard to attach customizations using WordML and WordML XSLT files in VSTO 2005 because of this ActiveX control. So we added a feature that lets you easily attach a customization without having to worry about somehow representing the ActiveX control as a big blob in your WordML or XSLT file.

What you can due in the June CTP drop is you can set the _AssemblyName property to "*" and _AssemblyLocation to a URL to a VSTO 2005 deploy manifest. When Word opens the document, it will see these two simple doc properties, it will then use the deploy manifest URL to get an application manifest and it will automatically embed the ActiveX control in the document that we need on open. Note that this is just an easy way to do the initial attach. Once you save the document, even if you save it as WordML, the ActiveX control & associated blob will be in the document from that point forward.