Add more tests for old style hooks and winevent hooks, make them pass
under Wine.

diff --git a/server/hook.c b/server/hook.c
index ab86865..b269114 100644
--- a/server/hook.c
+++ b/server/hook.c
@@ -320,7 +320,14 @@
 {
     struct hook *hook;
 
-    if (req->handle) hook = get_user_object( req->handle, USER_HOOK );
+    if (req->handle)
+    {
+        if (!(hook = get_user_object( req->handle, USER_HOOK )))
+        {
+            set_win32_error( ERROR_INVALID_HOOK_HANDLE );
+            return;
+        }
+    }
     else
     {
         if (!req->proc || req->id < WH_MINHOOK || req->id > WH_MAXHOOK)
@@ -329,9 +336,12 @@
             return;
         }
         if (!(hook = find_hook( current, req->id - WH_MINHOOK, req->proc )))
+        {
             set_error( STATUS_INVALID_PARAMETER );
+            return;
+        }
     }
-    if (hook) remove_hook( hook );
+    remove_hook( hook );
 }
 
 
diff --git a/server/trace.c b/server/trace.c
index 38d4c89..d54294d 100644
--- a/server/trace.c
+++ b/server/trace.c
@@ -3210,6 +3210,7 @@
         NAME(TIMEOUT),
         NAME(USER_APC),
         NAME(WAS_LOCKED),
+        NAME_WIN32(ERROR_INVALID_HOOK_HANDLE),
         NAME_WIN32(ERROR_INVALID_INDEX),
         NAME_WIN32(ERROR_NEGATIVE_SEEK),
         NAME_WIN32(ERROR_SEEK),