New in December 2011

Though I have turned 2011 into an extended break from this website (and even from correspondence) while settling in to a new style of working life—in a new country, even—the site has demanded a revisit late in the year for maintenance.

Disappearance of the site from Google’s searches prompted a brief disabling of the site’s scripts in November for a blind reworking in December. The frameset that presents documents with a table of contents (TOC) is now generated in script instead of being loaded from its own HTML page. The practical result is that although the site’s content pages are all prepared as self-standing documents, each magically appears with a TOC when browsed, as before, but now does so without changing the URL. What Google makes of it will yet be seen, or not, but the scheme now works much more like I hoped for five years ago. Why I didn’t see how to do it then, I don’t know, and I am especially intrigued that although frames are much maligned by HTML authors, I still don’t see how to get this functionality except by using frames.

Thankfully, the script modifications were practically complete when a reader who was doing real-world work with the undocumented IShellBrowserService interface alerted me to troubles with my write-up. Where I had brushed aside IShellBrowserService4 from Windows Vista as just the documented IBrowserService4 with a new name and IID, I had somehow missed that the undocumented version has one extra method. This alone had implications for a few other pages, including that I had an even bigger omission for ITridentService2, but more looking around reminded me that there is a can of worms here which I left alone in 2010: Microsoft’s reorganisations around some notion of untangling Internet Explorer from Windows have produced three distinct interfaces named IShellBrowserService.

Shell

Internet Explorer