EDITORIAL

Much Ado Really About Nothing

Jonathan Erickson

It's not every day that a computer book--let alone a computer programming book--gets bandied about on the pages of the Wall Street Journal. Undocumented Windows, coauthored by David Maxey, Matt Pietrek, and DDJ contributing editor Andrew Schulman, is a rare exception.

So what's the fuss all about? Not the accuracy or fairness of the book (which Ray Duncan examines on page 179). No one--not even Microsoft--is questioning the book's veracity. Instead, it's the confirmation that: 1. Microsoft provides function calls in Windows that aren't acknowledged in the SDK; and 2. that Microsoft application programs make use of these undocumented calls.

Not that any of this is a big surprise. When it comes to operating systems, undocumented calls are pretty much the norm. (Michael Swaine recalls a Software Entrepreneur's Forum a few years back when keynoter Bill Gates was asked about undocumented DOS calls. Gates flatly stated there were no undocumented DOS calls, then refused to discuss the subject further. For a contrary point of view, you might take a peek at Schulman's earlier, 720-page Undocumented DOS.)

As for the second item, anyone with a disassembler and a copy of Word for Windows can determine whether or not Microsoft makes use of undocumented calls. Ditto for software from Borland, Lotus, Wordperfect, and the like. It's noteworthy that the authors of Undocumented Windows don't make a big deal of Microsoft's use of these calls, noting that the use of most of these functions serve little purpose. The authors also stress that the book is not about whether or not Microsoft apps use undocumented functions (only five pages of the book's 715 pages touch on this), but about undocumented functions and data in Windows itself.

What's surprising, though, is Microsoft's swift reaction to the hubbub. At the blink of an eye, the company let fly with an official corporate statement on undocumented APIs, a Q&A paper discussing documented and undocumented APIs, and a white paper entitled "Undocumented Functions." Although the Schulman et al. book is central to the press release (the backgrounder actually starts out, "This whitepaper [sic] discusses the "undocumented" functions that author Andrew Schulman in his book Undocumented Windows claims are called by various versions ... of Microsoft Windows-based applications...."), Microsoft is careful to neither dispute nor criticize the book.

Still, as Schulman points out in a response of his own, the Microsoft press release isn't as complete as it probably should be, either. For example, while Microsoft used to say that it "very consciously avoids" using undocumented functions, the company now acknowledges that it uses such calls, but justifies this by saying that other companies do, too. Nevertheless, Microsoft takes pains to state that its "use of undocumented calls provides no advantage whatsoever to an application."

The press statement goes on to say that Microsoft has given at least 26 ISVs the information on undocumented Windows functions, even though "the use of undocumented APIs in applications is innocuous and represents old, out of date [sic] code or functions that can just as easily be performed with the documented API." Is Microsoft acknowledging that its applications are written with old, out-of-date code? Or is it saying that it is giving ISVs (its competitors) useless information? Schulman agrees that some undocumented functions are innocuous and others should never be called, then counters that some are indeed extremely useful.

Another big question is why Microsoft only shared information on undocumented calls with 26 ISVs when the company has sold tens of thousands of Windows SDKs to programmers over the past couple of years. What's so special about these developers? Schulman notes that he's aware of many developers who've tried to no avail to get this material from Microsoft.

Is Microsoft that scared about the Federal Trade Commission investigation into the company's business practices, especially when it comes to the relationship between the systems and applications groups and what this means in terms of antitrust laws? Perhaps so. The question the FTC is pondering (and which Microsoft competitors and yellow journalists in the trade press are fueling) is whether the Microsoft applications group has an unfair advantage over other software developers because of the inside skinny on what the operating-system group is up to.

The Microsoft statement further claims that some functions in Undocumented Windows--DirectedYield, for instance--are indeed documented in the SDK. DirectedYield, as it turns out, is in the 3.1 SDK, but for nearly two years it didn't appear in the 3.0 SDK. Like any attempt at rewriting history, retroactive documentation doesn't change the facts.

Undocumented Windows never set out to make a big deal of Microsoft's use of undocumented Windows functions. For its part, Microsoft didn't do anything wrong in creating undocumented calls or in using them in its applications. Microsoft, spurred on by the WSJ and InfoWorld articles, created the furor by issuing a Nixonian response to a problem that didn't exist, then by not keeping the story straight and not getting the facts right. As Schulman concludes, "That Microsoft resorts to such a shoddy practice as claiming that documentation in 3.1 is somehow retroactive, or means that these functions were all along documented, troubles me."

Me too.


Copyright © 1992, Dr. Dobb's Journal