Kaikkiin ikkunoihin voidaan soveltaa Win32 APIn ikkunafunktioita. GetText-funktio, jonka parametrit ovat ikkunan kahva, kohde merkkijono ja tekstin enimmäispituus, antaa ikkunan sisältämän tekstin. Funktion antama teksti riippuu ikkunan tyypistä: nappuloille se on nimiö (engl. label), tekstikentille kentän sisältö ja otsikkopalkillisille pääikkunoille ikkunan otsikko. Toinen kaikkiin ikkunoihin sovellettava funktio on GetClassName, jolla selvitetään ikkunan luokan nimi merkkijonona. Parametrit ovat täsmälleen samat kuin GetWindowText-funktiolla. Esimerkkiohjelmassa handleCommon-funktio käsittelee GUi-kontrollit yleisellä tasolla ja hyödyntää kumpaakin mainituista funktioista:
GetClassName(hWindow, textBuf, MAX_TEXT_LENGTH); // ... GetWindowText(hWindow, textBuf, MAX_TEXT_LENGTH);
Luokan nimeä voidaan käyttää ainakin jossain määrin perustana käyttöliittymäolioiden tyypin tunnistukseen. Dolphin Computer Accessin mukaan jotkin ruudunlukijat käyttävät pelkästään tätä tapaa: "Some of the traditional Windows screen readers rely solely on the "class name" or "class atom" of a window in order to identify what type of control it is." (Dolphin Computer Access, 2001, "Accessibility Issues"). Pelkkä luokan nimi ei useinkaan kerro luokan edustajasta riittävästi. Erityisen hankala siitä on päätellä varsinaista tilatietoa.
Eräs hyödyllinen ikkunafunktio on EnumChildWindows, jolla käydään läpi annetun ikkunan kaikki lapsi-ikkunat (vaikkapa dialogin sisältämät käyttöliittymäoliot). Ruudunluvussa tätä funktiota voitaisiin käyttää näytön sisältömallin (off-screen model) päivitykseen. Hooklib-kirjastossa käydään pääikkunan aktivoituessa esimerkin omaisesti läpi sen lapsia.
else if(ncode == HCBT_ACTIVATE && ((HWND) wParam) != hObserver)
{ // Get the children of the window being activated.
HWND hWindow = (HWND) wParam;
lstrcat(textOut, "Active window ");
handleCommon(hWindow);
lstrcat(textOut, "\r\nChildren:\r\n");
EnumChildWindows(hWindow, enumerateDirectDescendants, (LPARAM) hWindow);
notifyObserver();
} // else if
Ikkunan kahvan lisäksi EnumChildWindows-funktion parametrilistaan kuuluu osoitin luettelointi-funktioon (engl. enumerator function) ja funktiolle välitettävä LPARAM parametri, joka on tässä tapauksessa isäikkunan kahva. Takaisinkutsufunktiolle (esimerkissä enumerateDirectDescendants) välitetään lapsi-ikkunan kahva ja EnumChildWindows-funktion kolmas lParam parametri. Ikkunoiden läpikäynti lopetetaan välittömästi, jos luettelointifunktion paluuarvo on epätosi.
BOOL CALLBACK enumerateDirectDescendants(HWND hwnd, LPARAM lParam)
{
if(GetParent(hwnd) == ((HWND) lParam))
{ // Only if it's a direct descendant.
lstrcat(textOut, "-");
handleControls(hwnd);
lstrcat(textOut, "\r\n");
} // if
return TRUE;
} // enumerateDirectDescendants
Tilan säästämiseksi tekstikentässä funktio käsittelee vain ensimmäisen tason lapset, joiden isäikkuna (engl. parent window) on se ikkuna jonka lapsia läpikäydään.