title: how to hook a specific API on Windows with SetWindowsHookEx?
body: <p>I am trying to hook an API (say, MessageBox()) in other processes (I may not know the process ID) on Windows, I know that I have to use the SetWindowsHookEx() function. But still, I have three  questions:</p>
  
  <p>1) Can SetWindowsHookEx() function makes the hook global, i.e., not limited to current process? (When ther applications call this API, it is hooked?)</p>
  
  <p>2) If I want to replace the to-be-hooked API with my own function, how should I do?</p>
  
  <p>3) I read many materials, and I found the term "hook procedure" or "hook function". How should I comprehend this? Currently, I take it as the function that I will use to replace the API (say again, MessageBox).</p>