A programming 'hook' is a subroutine that intercepts some call in the operating system and diverts it to a different program path.
For example, you could write a subroutine to watch for the press of the F3 fuction key on the keyboard. When the key is pressed, your subroutine would interupt the normal program flow and have a program separate from the OS do something - like start a debugging program, or pop up a message, or ...
There really isn't a reference that covers the subject of 'hooks' for all the possibilities. You should enter 'programming hook' into Google, or some other search engine, and look at the info available on the web.