Superclassing jest techniką, który pozwala aplikacjom tworzyć nowe klasy okna z podstawowe funkcje klasy istniejącej, plus rozszerzenia aplikacji. Superklasy opiera się na istniejącej klasy okno o nazwie klasy bazowej. Często klasą bazową jest klasą okno globalnego systemu takie jak formant edycyjny, ale można je wszystkie klasy okna.
Superklasy ma swoje własne procedury okna, nazwał procedurę superklasy. Superklasy procedurę można wykonać trzy akcje po otrzymaniu wiadomości: go można przekazać wiadomości oryginalnej procedury okna, zmodyfikuj komunikat i przekazać je do oryginalnej procedury okna, lub przetwarzać wiadomości i nie przekazać je do oryginalnej procedury okna. Jeśli procedura superklasy przetwarza wiadomości, to zrobić przed, po lub zarówno przed i po przekazaniem komunikatu do oryginalnej procedury okna.
W przeciwieństwie do procedury podklasy procedurę superklasy można przetwarzać komunikaty tworzenie okna (WM_NCCREATE, WM_CREATEitd.), ale to musi również przekazać je do oryginalnej procedury klasa bazowa okna tak, aby procedura klasa bazowa okna można wykonywać jego inicjowania.
Do superklasy, której klasy okna aplikacja najpierw wywołuje funkcję GetClassInfo do pobierania informacji na temat klasy bazowej. GetClassInfo wypełnia struktury WNDCLASS wartościami ze struktury WNDCLASS klasy bazowej. Następnie wniosek skopiowanie własnej uchwyt do członka wystąpienie hInstance struktury WNDCLASS i kopiuje nazwę superklasy, której członek lpszClassName . Jeśli klasa bazowa menu, wniosek musi dostarczyć nowe menu te same identyfikatory menu i skopiować nazwy menu do Państwa lpszMenuName . Jeśli procedura superklasy przetwarza wiadomość WM_COMMAND i nie przechodzą do procedury okna klasy bazowej, menu nie musi posiadać odpowiednie identyfikatory. GetClassInfo zwraca element lpszMenuName, lpszClassNamelub wystąpienie hInstance struktury WNDCLASS.
Aplikacja musi również zestawu replik lpfnWndProc struktury WNDCLASS . Funkcja GetClassInfo wypełnienia tego członka z adresu procedury oryginalne okno klasy. Aplikacja musi zapisać tego adresu, aby przekazać wiadomości oryginalnej procedury okna i następnie skopiuj adres procedury superklasy do członka lpfnWndProc . Aplikacji mogą w razie potrzeby modyfikować innych członków o strukturze WNDCLASS . Po wypełnia strukturę WNDCLASS , stosowanie rejestruje superklasy przekazując adres struktury funkcji RegisterClass . Superklasy można następnie wykorzystać do tworzenia systemu windows.
Ponieważ superclassing rejestruje nowe klasy okna, aplikacji można dodać zarówno bajtów klasy ekstra, jak i bajtów dodatkowe okna. Superklasy, nie wolno używać oryginalnej nadmiarowych bajtów dla klasy podstawowej lub okna z tych samych powodów, że podklasy instancji lub podklasą klasy globalnej nie powinien używać ich. Ponadto jeżeli aplikacji dodaje nadmiarowych bajtów dla jego stosowania do klasy lub wystąpienia okna, musi odwoływać nadmiarowych bajtów w stosunku do liczby dodatkowych bajtów używanych przez pierwotnego klasy bazowej. Ponieważ liczba bajtów używanych przez klasy podstawowej może się różnić od jednej wersji klasy bazowej na kolejny, początkowy przesunięcie do własnych superklasy nadmiarowych bajtów również zależności od jednej wersji klasy podstawowej do następnego.