fix bug 838 (Sol.exe is missing it's menubar)
[reactos.git] / reactos / subsys / win32k / include / class.h
index 74d74b0..e80054e 100644 (file)
@@ -1,18 +1,30 @@
-#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))
 
 typedef struct _WNDCLASS_OBJECT
 {
-  WNDCLASSEX Class;
+  UINT    cbSize;
+  LONG    refs;                  /* windows using this class (is 0 after class creation) */
+  UINT    style;
+  WNDPROC lpfnWndProcA;
+  WNDPROC lpfnWndProcW;
+  int     cbClsExtra;
+  int     cbWndExtra;
+  HANDLE  hInstance;
+  HICON   hIcon;
+  HCURSOR hCursor;
+  HBRUSH  hbrBackground;
+  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
@@ -21,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(LPWNDCLASSEXW lpwcx,
-               BOOL bUnicodeClass,
-               RTL_ATOM ClassName);
+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);
+IntGetClassLong(struct _WINDOW_OBJECT *WindowObject, ULONG Offset, BOOL Ansi);
 
-#endif /* __WIN32K_CLASS_H */
+#endif /* _WIN32K_CLASS_H */
 
 /* EOF */