$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Mathew Robertson (mathew.robertson_at_[hidden])
Date: 2004-09-22 02:52:20
> I think that perhaps Mathew is talking about the GDI object limit.  At 
> least under Windows 2000 and earlier versions (I'm not sure about XP) 
> there is a firm limit of 16K handles that can be allocated system wide - 
> regardless of your particular specs (ie adding memory does not help). 
> When this limit is reached weird stuff [1] happens which can only be 
> fixed by a reboot.
> 
> Any object that allocates a handle under Windows (pens, brushes, dc's, 
> etc) consume those resources and if you've got a graphically intense GUI 
> using a greedy GUI library (ie one that holds it's handles for a long 
> duration) that limit isn't too hard to break.
> 
> If you open task manager and select to view the "GDI Objects" column you 
> can see how many objects each process uses.
> 
> If you, or anyone else, wants some more info or help please let me know 
> because it was quite a difficult nut to crack!
> 
> Googling for "gdi object limit", particularly in groups, will reveal a 
> heap of stuff.  However, I've found only a few official documents that 
> describe the issue.
In practise the FOX GUI users group have found that the values are as low as a few thousand, or less if you are dealing with bitmaps.  This may still sound like a lot, but if you are allocating a handle to every line on the display (plus any offscreen handles - eg caching a few hundred thumbnails), you can quickly run out.
Mathew