Bob and Lou,
It should be noted that if you are going to pass handles to unmanaged
code that are represented by managed constructs, you should use the
HandleRef structure instead. This will make sure that if the object is not
referenced anywhere else, it is not disposed of.
For example, if using the Graphics object, and you call GetHdc, you
should use a HandleRef structure instead of an IntPtr, so that when passed
to unmanaged code (a call to BitBlt perhaps), the Graphics instance won't be
collected by the GC if it isn't referenced anywhere.
Hope this helps.