Citation :
 
 
 pOrigProc = (WNDPROC)SetWindowLong(plugin.hwndParent, GWL_WNDPROC, (LONG)HookWinampWnd);
   The callback function now receives all of the Winamp Main Window's messages before Winamp does. This allows us to be informed when Winamp is moving by trapping the WM_MOVE message. When this message is encountered, we call a TrackWindow in the CWinampWnd class to track the Main Window.
   LRESULT CALLBACK HookWinampWnd(
   HWND hwnd,      // handle to window
   UINT uMsg,      // message identifier
   WPARAM wParam,  // first message parameter
   LPARAM lParam   // second message parameter
 )
 {
  switch(uMsg)       {           case WM_MOVE:
    m_MainWnd.TrackWindow((int)(short) LOWORD(lParam),(int)(short) HIWORD(lParam));
    break;
  	default:
    break;
  }
    // Call Winamp Window Proc
  return CallWindowProc(pOrigProc, hwnd, uMsg, wParam, lParam);   }
   |