Store a pointer to the client-side class structure in the server and
return it on create_window and destroy_class.
Only create a single instance of the desktop class for the whole
session.
Added some missing locking in the client-side class management.

diff --git a/server/user.h b/server/user.h
index 8c07b7f..62bc80d 100644
--- a/server/user.h
+++ b/server/user.h
@@ -78,8 +78,10 @@
 /* window class functions */
 
 extern void destroy_process_classes( struct process *process );
-extern struct window_class *grab_class( struct process *process, atom_t atom, void *instance );
+extern struct window_class *grab_class( struct process *process, atom_t atom,
+                                        void *instance, int *extra_bytes );
 extern void release_class( struct window_class *class );
 extern atom_t get_class_atom( struct window_class *class );
+extern void *get_class_client_ptr( struct window_class *class );
 
 #endif  /* __WINE_SERVER_USER_H */