Geoff Chappell, Software Analyst

You are at the home page of a website that has grown out of an academic interest in studying what software actually does. Sadly, what software actually does is much too often not exactly what the manufacturer says the software does. Pretty much everything here has been obtained by reverse engineering computer software from commercial manufacturers, not so that their ideas can be stolen and reworked, but so the actual working of what they sell can be discovered, reported and understood.

Software that is better understood is more reliably put to use. This is true especially for its use by programmers whose software interacts closely with an operating system. The software examined here is almost always either Microsoft Windows or one of Microsoft’s programming tools for Windows. Very little that I write about any of this software is intended for a general readership. If anything, almost all is at the other extreme: I take as granted that you have a sound understanding of advanced Windows programming in general and a good knowledge of what Microsoft has already documented of the particular topic. It has to be this way, not just from my disposition and temperament but for the practical matter that I could not otherwise get to the detail that Microsoft’s documentation does not. Where I do cover material that Microsoft documents, it is not at all unusual that what I write conflicts with Microsoft’s documentation. That is much of the point to my proceeding with the intensive research that backs up the writing: you should be able to rely on me to be correct and Microsoft to be mistaken, because Microsoft at best documents what its programmers thought they coded into the software but my aim is to document what actually is there.

The result is a resource for Windows programmers. Indeed, I think it’s one of the Internet’s most detailed resources for Windows programmers, certainly about features of Windows programming that are otherwise hardly known. There are well over two thousand pages here. Some are merely placeholders for work that never properly got under way or for introductions that I probably never will get round to writing. Some just track what’s new or was new. Others are statistics about what gets viewed. But the overwhelming bulk of pages here exist to say something original—not necessarily important, at least not to a wide audience, but original nonetheless. This is not one of those many websites that collate suppositions from who knows where on the Internet. Though I may slip up now and then, my intention is that all the substantive work at this site is original research into primary sources, unless another source is noted, or is the application of that research to comment on a primary or secondary source. Let it be stressed: the only primary source in a study of computer software is the software—not the product documentation, not even the source code, just the software as actually executed by the computer.

For more about the nature of this work and my reasons for doing it, please read Software Analysis by Reverse Engineering.

Navigation

There are far too many pages at this website for you to navigate without the expandable table of contents to the left of this page. If you see no such thing, then please check the Browser Advice. For an overall description of how these many pages are organised and of what little I expect of you for reading them, see About This Site.

Contact

To criticise me, thank me or submit a wish list, please read the page about feedback. I am especially concerned, of course, to hear about errors which I need to correct.

To ask for help with a technical problem, even one that I address at this site, please consult me formally and expect to pay for my time.

Support

This website is funded from consultation services. If you appreciate the research behind the site and the free publication of what I find time to write up, then please consult me for your Windows programming. If you have nothing to consult me on, then please recommend my consultation services as widely as possible.

Better yet, if you would like to see the research and writing up become established as full-time work for the public good, then please recommend it to people who have the resources to fund it and may also have the will. If all you have is an idea for possible funding, it’s very possibly more than occurs to me with my limited mind for these things, so please send me your suggestion.