3.5. CALLWNDPROC koukuttaa järjestelmäviestit

Koukkuja käsittelevässä artikkelissaan Microsoft varoittaa, että järjestelmänlaajuiset CALLWNDPROC-koukut ovat merkittävä tehosyöppö ja niitä pitäisi käyttää vain vianjäljitystilanteissa. Ruudunluvun kannalta tämä koukkutyyppi on kuitenkin sangen kätevä apuneuvo, koska sillä voi keskeyttää minkä tahansa ikkunalle lähetetyn viestin. Esimerkkiohjelmassa asennetaan CALLWNDPROC-koukku ja sen koukkufunktio huolehtii valikoiden seuraamisesta ja nappien tilan tarkkailusta. MSDN:ssä (Microsoft, 1999, CallWndProc) mainitaan lisäksi, ettei WH_CALLWNDPROC-koukku voi muuttaa saamiaan viestiparametreja, mikä on ruudunlukijan tehtävän huomioiden hyvä asia.

WH_CALLWNDPROC-koukun wParam on arvoltaan tosi, jos viestin lähetti tämänhetkinnen säie. lParam sisältää osoittimen CWPSTRUCT-tietueeseen, jonka kentät vastaavat täsmälleen ikkunaproseduurille välitettäviä viesti parametrejä.

takaisin sisällysluetteloon