Considering the amount of talk one hears about Microsoft's use of undocumented APIs, it's difficult to find real measurements of how much Microsoft's (or any one else's) applications use undocumented entrypoints in Microsoft operating systems.
I've written a program to address this issue. This is the first release of the program and bugs can be expected; any bug reports will be gratefully accepted.
The program requires a relatively recent version of Perl. It expects to gather its data from a developer's machine loaded with some form of the SDK and DDK - the header files are what it uses to decide what is documented and what isn't. The program will come up with useless results unless it is used reasonably, e.g. Microsoft will look like a monster if the program checks the apps of Microsoft Office under Windows 2000 against a development environment for Windows NT 3.51.
You can download the program from here.