|
About Handles and Objects
Windows uses objects and handles to regulate access to system resources for
two main reasons. First, the use of objects ensures that developers are not
writing code specifically to low-level, internal structures. This enables Microsoft
to add or change functionality of the operating system, as long as the original
calling conventions are maintained. When subsequent versions of the operating
system are released, applications will gain this new functionality with little
or no additional development.
Second, the use of objects enables developers to take advantage of Win32
security. Each object has its own access-control list (ACL) that specifies the types
of actions processes can perform on the object. The operating system examines
an object's ACL each time an application attempts to create a handle to the
object. For more information about security, see Security.
For most objects, the Win32 API provides functions that create the object,
create an object handle, close the object handle, and destroy the object. These
tasks may be combined or unnecessary, depending on the type of object and the
situation. For example, an application could create an event object. Other
applications could open the event and each would have a unique handle to the same
event object. In this scenario, as the applications finish using the object, each
closes its handle. When there are no open handles to the event object, the
operating system removes the object from memory.
In contrast, an application could obtain the existing window-object handle. In
this instance, when the window object is no longer needed, the application
must remove the object from memory, which invalidates the window handle.
When a process terminates, the system automatically closes handles and deletes
objects created by the process. However, when a thread terminates, the system
usually does not close handles or delete objects. The only exceptions are
window, hook, window position, and dynamic data exchange (DDE) conversation objects
that are deleted when the creating thread terminates.
Handles and objects consume memory. Therefore, to preserve system performance,
an application should close handles and delete objects as soon as they are no
longer needed. Applications that do not do this can slow the operating system,
due to excessive use of the paging file.
Windows provides three categories of objects: user, graphics device interface
(GDI), and kernel, as shown in the following tables. The system uses user
objects to support window management, GDI objects to support graphics, and kernel
objects to support memory management, process execution, and interprocess
communications (IPC). For information about creating and using a specific object,
refer to the associated overview.
Windows User Objects
Windows GDI Objects
Windows Kernel Objects
| Last news from Greatis Software |
 |
|
Nostalgia .Net |
|
.Net is powerful, but not all-powerful, so sometimes we need to use Win32 API for our .Net applications. It's simple enough with Platform Invoke if you have Win32 skill, but we do not always have time to dig the ancient documentation, declare the special types that are compatible with Win32, find the values of the Win32's constants and so on. Nostalgia .Net offers several simple-to-use classes, and components that will allow you to forget about the headache of Win32 and just use the power of Win32 in your application the same way as you use the native. Net classes. More » |
| Recommended software for developers |
 |
|
Ultimate Pack |
|
Component pack for Delphi and C++ Builder that contains runtime form designer, runtime object inspector, print suite and much more for the very special price. More » |
 |
|
Form Designer .Net |
|
Unique runtime form design solution that allows to edit any form in .Net WinForms application at runtime with full source codes for only 300 euro! More » |
 |
|
Print Suite .Net |
|
Print Suite .Net is a set of components for easy printing texts, images and grids from your WinForms applications. Full C# source codes are available More » |
 |
|
Gradient Controls .Net |
|
Gradient Controls .Net offers controls with gradient background feature. Labels, panels and so on... Full C# source codes are available More » |
 |
|
Greatis iGrid |
|
iGrid plots drawing grid right over your desktop, so you can use it everywhere, with any drawing application without any special plugins for different graphic editors. More » |
All the contacts and projectsDmitry Vasiliev (just.dmitry)
Related LinksSoftware for Visual Studio .NET developers Software for Delphi and C++ Builder developers Software for Visual Basic 6 developers Delphi Tips&Tricks MegaDetailed.NET More Online Helps Win32 Programmer's Reference Win32 Multimedia Programmer's Reference OLE Programmer's Reference Microsoft Windows Pen API Programmer's Reference Microsoft Windows Sockets 2 Reference Microsoft Windows Telephony API (TAPI) Programmer's Reference Unix Manual Pages
|