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

Reply via email to