Your wrong.
A hook is replacing original code with a jmp instruction in asm.
Its jumping to your code, which gets executed then by the game. The hing is, it returning the original code pointer, so you can call the orig code easily out of your hook. Very simple..