Es gibt verschiedene Arten von Hooks und dementsprechend verschiedene Stellen, an denen diese installiert werden. Deshalb funktionieren manche auch außerhalb einer
DLL. Das sind genau die, deren aufzurufender Code aufgrund ihrer Funktionsweise einfach gesagt nicht von überall aus dem System erreichbar sein muss.
Dazu gehören die Hooks für das Abfangen von Tastatureingaben und der Maus, da diese über den Desktop Window Manager abgehandelt werden können. Andere Hooks müssen aber in den Speicherbereich anderer Prozesse eingeblendet werden und das geht nur mit Code, der in einer
DLL liegt.
Deshalb gilt diese Restriktion nicht für alle Hooks. Es kann aber durchaus sein, dass sich dies in späteren Windowsversionen ändert, wenn das Handling geändert wird.