On 5/15/06, C Y <[EMAIL PROTECTED]> wrote: > > Hi all. I'm attempting to make a "map" of the lisp graphical toolkit > landscape using graphviz. Unfortunately I'm not familiar enough with > the low level details of Windows programming and I'm not sure how GDI > ties in to anything - whether there is a standard higher level API on > windows, whether there is a lower level than GDI somewhere, etc. Does > anybody know enough to correct this?
There are actually two major DLLs that implement the foundations of the Windows UI: GDI as you have already noted, which provides graphics operations and constructs like fonts and bitmaps; and User, which provides the fundamental window construct and event processing, on top of which just about all the other objects we normally think of in a UI, e.g., buttons, menus, etc., are built. (Actually they're called user32 and gdi32 in 32-bit Windows up through WinXP, and there is another DLL called kernel32 which provides an interface to other non-UI kernel services to applications). These two are part of what is called the Win32 "environment subsystem." There is indeed functionality at a lower level in the Windows architecture, but the vast majority of applications never call these APIs directly. MSDN (www.msdn.com) is the official source for Windows programming documentation. You might be able to do some searching there and find some nice diagrams. The following link is not an official MS site (and is to a PowerPoint file and talks about Win2K, sorry), but it nevertheless has some good diagrams: http://www.cs-ipv6.lancs.ac.uk/acsp/OS/Slides/PowerPoint%20Files%20for%20Printing/(Lecture%202)%20Windows%202000%20System%20Architecture.ppt You probably could find a copy of Inside Windows NT 2nd Edition for more info. Link to Amazon here: http://www.amazon.com/gp/product/1572316772/sr=8-1/qid=1147710955/ref=pd_bbs_1/002-3412849-3604855?%5Fencoding=UTF8 For a long time, MFC (Microsoft Foundation Classes) was the most popular layer on top of User and GDI, and Dev Studio was the most popular IDE (although there were certainly others). MFC is a C++-based library. There were of course other choices (e.g., Borland's stuff). .NET arrived a few years ago, and part of that framework is something called Windows Forms, which Microsoft wanted to establish as the "new" standard programming interface. There is also an even newer framework called WPF, of which XAML is a major piece, and there is supposed to be some amount of interoperability between the two. You can do some googling to find out more about those. OK, one last bit of info and then I'll stop this rambling. In Vista, User and GDI have been reimplemented such that instead of drawing directly to the screen, top-level windows are first rendered to an offscreen bitmap, and everything is then composited together by the new Desktop Window Manager component. I personally need to learn more about how the system architecture is changing in Vista, so I'll just leave you with a link to this blog: http://blogs.msdn.com/nickkramer/default.aspx Hope this helps. -- Jack Unrue _______________________________________________ Gardeners mailing list [email protected] http://www.lispniks.com/mailman/listinfo/gardeners
