fix bug 838 (Sol.exe is missing it's menubar)
[reactos.git] / reactos / subsys / win32k / include / class.h
index 008bfef..e80054e 100644 (file)
@@ -1,9 +1,5 @@
-#ifndef __WIN32K_CLASS_H
-#define __WIN32K_CLASS_H
-
-#include <windows.h>
-#include <ddk/ntddk.h>
-#include <napi/win32.h>
+#ifndef _WIN32K_CLASS_H
+#define _WIN32K_CLASS_H
 
 #define IS_ATOM(x) \
   (((ULONG_PTR)(x) > 0x0) && ((ULONG_PTR)(x) < 0x10000))
@@ -11,6 +7,7 @@
 typedef struct _WNDCLASS_OBJECT
 {
   UINT    cbSize;
+  LONG    refs;                  /* windows using this class (is 0 after class creation) */
   UINT    style;
   WNDPROC lpfnWndProcA;
   WNDPROC lpfnWndProcW;
@@ -20,11 +17,14 @@ typedef struct _WNDCLASS_OBJECT
   HICON   hIcon;
   HCURSOR hCursor;
   HBRUSH  hbrBackground;
-  PUNICODE_STRING lpszMenuName;
-  PUNICODE_STRING lpszClassName;
+  HMENU   hMenu;
+  UNICODE_STRING lpszMenuName;
+  RTL_ATOM Atom;
   HICON   hIconSm;
   BOOL Unicode;
-  LIST_ENTRY ListEntry;
+  BOOL Global;
+  LIST_ENTRY ListEntry;          /* linked into owning process */
+  PCHAR   ExtraData;
 } WNDCLASS_OBJECT, *PWNDCLASS_OBJECT;
 
 NTSTATUS FASTCALL
@@ -33,25 +33,33 @@ InitClassImpl(VOID);
 NTSTATUS FASTCALL
 CleanupClassImpl(VOID);
 
-NTSTATUS STDCALL
-ClassReferenceClassByName(PWNDCLASS_OBJECT *Class,
-                         LPWSTR ClassName);
+void FASTCALL DestroyProcessClasses(PW32PROCESS Process );
 
-NTSTATUS FASTCALL
-ClassReferenceClassByAtom(PWNDCLASS_OBJECT *Class,
-                         RTL_ATOM ClassAtom);
+inline VOID FASTCALL 
+ClassDerefObject(PWNDCLASS_OBJECT Class);
+
+inline VOID FASTCALL 
+ClassRefObject(PWNDCLASS_OBJECT Class);
 
-NTSTATUS FASTCALL
-ClassReferenceClassByNameOrAtom(PWNDCLASS_OBJECT *Class,
-                               LPWSTR ClassNameOrAtom);
 PWNDCLASS_OBJECT FASTCALL
-W32kCreateClass(CONST WNDCLASSEXW *lpwcx,
-               BOOL bUnicodeClass,
-               RTL_ATOM Atom);
+ClassGetClassByAtom(
+   RTL_ATOM Atom,
+   HINSTANCE hInstance);
+
+PWNDCLASS_OBJECT FASTCALL
+ClassGetClassByName(
+   LPCWSTR ClassName,
+   HINSTANCE hInstance);
+
+PWNDCLASS_OBJECT FASTCALL
+ClassGetClassByNameOrAtom(
+   LPCWSTR ClassNameOrAtom,
+   HINSTANCE hInstance);
+
 struct _WINDOW_OBJECT;
 ULONG FASTCALL
-W32kGetClassLong(struct _WINDOW_OBJECT *WindowObject, ULONG Offset, BOOL Ansi);
+IntGetClassLong(struct _WINDOW_OBJECT *WindowObject, ULONG Offset, BOOL Ansi);
 
-#endif /* __WIN32K_CLASS_H */
+#endif /* _WIN32K_CLASS_H */
 
 /* EOF */