These days I'm having the ambiguous pleasure of building Office 2003-based Smart Document Solutions. Despite their hot-buzz name, they seem to lean more towards the dim end of the scale.
While the Smart Document SDK itself is rather well written and covers most points, good documentation can only go so far to describe an awkward programming model where you can't so much specify controls on your Task Pane as much as create properties that expose the name, type and amount of controls you would like to have and wait for Word or Excel to create them for you. All in all, this makes for a nervous “I have no idea what the hell is going on” development experience.
The advantage to that, of course, is that once I do wrap my head around the concepts and start whipping out SmartDocs by the bucketload, I will earn the awe and respect of my peers. Sorta like the way people always keep a respectful distance around people who can wrap steel bars around their heads.
Anyway, second only to the development model in needless complexity is the deployment model, relying on automatic installation of the smart-doc on demand by arcane XML files and inscrutable security settings. End result is that on a test machine, every time we opened a DOC file linked to a Smart Document solution we had to pass 3-4 pointless dialogs asking us to re-download the solution we had already downloaded and installed. It gets even ickier when the user doesn't have administrative rights on his workstation - a scenario too exotic for regular Smart Doc installations, it seems.
2 hours and several futile googlings later, a solution was found:
A registry key by the name of NeverLoadManifests, alarming name nonwithstanding, tells Word not to try and re-load the Smart Document Solution from the source every time, and to settle for the version it already has installed. Not the best of solutions, since it prohibits us from using Office's Automatic update of SmartDoc solutions (which we aren't using in this deployment anyway), but it sure it better than asking users to click through 3 dialogs whenever they open a document.
Key can be found here:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Common\Smart Tags\
NeverLoadManifests=dword:0000001
And Google has apparently never heard of it, which is impressive. It can be found in the SDK, though I found THAT out only after I had tracked it down.
May this page be Googled and Feedstered and help others with the problem, amen.
It doesn't work.
The lights have long since been turned off. Your eyes are red and sore and there's a stack of empty coffee cups threatening to teeter-totter off of your desk and into your lap.
And it doesn't work.
You've been working on this nagging bug, this annoying program, this insignificant technical NOTHING for hours.
But it just doesn't work.
And then it comes! the flash, the light, the little cherubs blowing silver trumpets in your mind. Maybe a corworker passed by and idly pointed it out. Maybe your eyes have started looking sideways at your code in frustration. Whatever the reason - it's OVER. You've fixed the bug. The code works. You can go home now.
We've all been there. We've all banged our heads against the wall in frustration because of some stupid bug or undocumented API. We know the relief that comes when you finally get past it.
So this is what my blog is for. To relieve my frustration when I can't get something to work, and to gloat in exultation when I finally can.