I've been rebuilding my main PC after its biennial nuke & pave -- a rather severe form of housekeeping. It's a painstaking ordeal but it does give me a chance to spelunk through old project files.
Stumbling upon the DispAdapter project transported me back to the heady days of 1999. I was working for a Microsoft-partnered consultancy, SRG Software (later FMC Software Consulting; later still, simply FMC; and now apparently something called SS&C), down by the Toronto waterfront. A fellow named Andrew Trossman and I had put together a 3-day workshop called Combat COM to teach the finer points of the lovely, now obsolete, Microsoft technology called the Component Object Model. Andrew was the COM guru at SRG and led the workshop while I helped organize the content and handled the VB-related portions.
At some point during the three or four workshops we held that year, Andrew came up with the idea of the DispAdapter (short for Dispatch Adapter) that would solve a pretty esoteric COM problem. I obliquely described the scenario in Tame Visual Basic with IDL:
"You will understand the negative implications of dual interfaces much more clearly at the precise moment that you attempt to return a reference to an object's non-default interface when calling from a late-bound client across apartment boundaries."
Yowza! I was in full-throated smartypants mode that day.
Anyhoo, the DispAdapter was a solution to this so-called problem. Andrew mentioned the idea to another SRG-er, Vlad Volkov. At the time, there were so many Romanian and Russian folks named Vlad in the office (maybe 3 or 4), that we simply took to calling him "Vlad 17". Vlad 17 whipped up a working version of the DispAdapter. I later tidied it up some, ATL-ified it, and added by-value marshalling (in unison, to the tune of Beethoven's 5th, first movement: "no-bo-dy caaaaares").
We posted the code to the long-defunct workshop site, combatcom.com, and somewhere along the line it was mentioned by Chris Sells, a onetime luminary of the COM clique. And that was that.
Seven years later and 5,500 kilometres to the northwest, I google "dispadapter" and am surprised and amused to find it still floating about on them thar internets. One site uses it to debug COM components from VB, and another to jockey the multiple interface two-step from ASP scripts.
The sites still link to the ain't-there combatcom.com, so I'll put a link to the original Visual C++ source files below. I can't be bothered with some open source licence; I consider these files to be in the public domain. While I'm not sure that I'm technically the owner of the copyright -- the headers mention both Vlad 17 and FMC Software Consulting -- I can't believe anyone involved gives a flying fig. Enjoy.
Download the DispAdapter Source Files (103KB ZIP).
PS. One of these days I'll discuss the infamous AntiDispAdapter. (Shudder.)
- Andrew Trossman on 20081130.Sunday:
Hey Yukon Dude! That was so funny! Man those were heady times! Funny thing is, I don't buy any of that stuff anymore. All that object oriented-ish, distributed componentry crap - just don't fly. Webscale is where it's at - getting apps to run well on the cheap. Those old com architectures just don't cut it. How you been? What's keeping you busy these days? I'm into cloud computing - totally dig it. hope you're well Tross
- Dave on 20081202.Tuesday:
Ya, heavyweight RPC never really delivered. Ad-hoc REST-y protocols seem to be the flavour of the day in yonder puffy clouds.