On Sun, 28 Mar 2004 19:05:55 -0600, Joel Konkle-Parker wrote:
I'm basically looking for something that will help me "see" how a program is laid out so that I can start working on it.
I don't think an automatic tool would be very good at this with Wine. It's a ridiculously complicated codebase, not through choice mind you, that's just the way Windows is.
Really at some point we should provide better high level developer documentation like this - I remember finding it confusing too.
Basically, the most important code is all in the dlls/ directory. The other directories are either supporting code (for booting the emulator, unicode tables etc) or are holdovers from the old code layout (windows/) and is being slowly moved into the dlls/ directories. The code in windows/ is a part of USER, basically.
Knowing the windows architecture helps. Basically in NT based systems you get:
* NTDLL - low level OS services, threading, file io etc). the so called "native" API * KERNEL - Win32 "layer", really mostly a set of forwarders to NTDLL * USER - random stuff - core windowing mostly, as well as clipboard and a few widgets like the button control, edit box, menus etc * COMCTL32 - Widget library. More advanced/modern controls like the toolbar, rebar, tree view etc. Pretty straightforward * OLE* - Our COM/OLE implementation.
Is that what you meant? Best way to learn the source is by reading it, and then asking about the parts you don't understand basically.
thanks -mike