An application global class is a window class registered by a dynamic-link library (DLL) and available to all applications in the system. For example, your DLL can call the RegisterClassEx function to register a window class that defines a custom control as an application global class so that all applications can create instances of the custom control.
In Windows, all window classes are process specific. An application can create a global class by creating the window class in a DLL and listing the name of the DLL in the registry under the appropriate keys.
Whenever a process starts, the system loads the specified DLL in the context of the newly started process before calling the main function in that process. The DLL must register the class during its initialization procedure and must specify the CS_GLOBALCLASS style. (For more information about class styles, see Class Styles.) After a class has been registered, any application can use it to create any number of windows belonging to that class.
Windows does not automatically destroy a class when the DLL that registered it is unloaded. For this reason, the Windows exit procedure of the DLL should call the UnregisterClass function to remove the class.