Global Subclassing
To globally subclass a window class, the application must have a handle to a
window of the class. The application also needs the handle to remove the
subclass. To get the handle, an application typically creates a hidden window of the
class to be subclassed. After obtaining the handle, the application calls the
SetClassLong function, specifying the handle, the GCL_WNDPROC flag, and the address of the
subclass procedure.
SetClassLong returns the address of the original window procedure for the class.
The original window procedure address is used in global subclassing in the
same way it is used in instance subclassing. The subclass procedure passes
messages to the original window procedure by calling
CallWindowProc. The application removes the subclass from the window class by calling
SetClassLong again, specifying the address of the original window procedure, the
GCL_WNDPROC flag, and the handle to a window of the class being subclassed. An
application that globally subclasses a control class must remove the subclass when the
application terminates; otherwise, an unrecoverable system error may occur.
Global subclassing has the same limitations as instance subclassing, plus some
additional restrictions. An application should not use the extra bytes for
either the class or the window instance without knowing exactly how the original
window procedure uses them. If the application must associate data with a
window, it should use window properties.
An application must not globally subclass a system global class. An
unrecoverable system error may occur if more than one application globally subclasses a
control class. If the application could benefit from globally subclassing a
control class, use the technique called superclassing.
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database