/*++ Copyright (c) 2000-2001, Microsoft Corporation All rights reserved. Module Name: subclass.c Abstract: This file contains functions that support our subclassing efforts. Here is how it works: Each window we create must be subclassed so we can maintain the illusion of Unicodality on it. We therefore store a pointer to some memory that contains all of the information we need to properly call the wndproc, stored in a GODOTWND structure. Since the caller can actually subclass the window, we need to store a linked list of these structures. NOTE: From comctl32.dll's SUBCLASS.C: Win95's property code is BROKEN. If you SetProp using a text string, USER // adds and removes atoms for the property symmetrically, including when the // window is destroyed with properties lying around (good). Unfortunately, if // you SetProp using a global atom, USER doesn't do things quite right in the // window cleanup case. It uses the atom without adding references in SetProp // calls and without deleting them in RemoveProp calls (good so far). However, // when a window with one of these properties lying around is cleaned up, USER // will delete the atom on you. This tends to break apps that do the // following: // // - MyAtom = GlobalAddAtom("foo"); // at app startup // - SetProp(SomeWindow, MyAtom, MyData); // - // -