Dmitry Timoshkov recommended the MS Debugging Tools for Windows http://www.microsoft.com/ddk/debugging to log API calls. Foolish me, I tried them under Wine. Here's what I had to do to install them. They don't quite work under Wine, but only because of a fundamental problem; all the superficial ones were easily solved :-)
0. To fix the "This program may only be used with Microsoft Windows" problem, click "I Agree" on the license agreement.
1. To fix the "This program requires Windows NT or later" problem, edit ~/.wine/config to specify [Version] "Windows"="nt40"
2. to fix the "can't execute msiexec.exe" error, copy /dos/c/windows/system/msi* ~/c/windows/system
3. To fix the "Error 2352: Couldn't initialize cabinet file server. The required file 'cabinet.dll' may be missing." error, copy /dos/c/windows/system/cabinet.dll ~/c/windows/system and edit ~/.wine/config to specify [DLLOverrides] "cabinet" = "native,builtin"
OK, now it installs. I then tried using it under Wine to log the system calls made by msvc4.0's installer, like this: wine 'c:\dtfw\logger.exe' d:setup
4. To fix the "can't load winexts.dll" problem (which is a strange one -- it is looking in windows/system, but only installed the dlls into c:\dtfw): cp ~/c/dtfw/exts/winexts.dll ~/c/windows/system
5. To fix the "can't open c:\windows\system\manifests\main.h" problem, cp -r ~/c/dtfw/manifests ~/c/windows/system/manifests/ (again, why weren't they installed there?)
Ah, but there I hit a roadblock; it gives the error "Could not inject logging thread into process". Shucks, shouldn't wine support advanced windows debugging techniques? :-)
- Dan