-#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
+NTSTATUS FASTCALL
InitClassImpl(VOID);
-NTSTATUS
+NTSTATUS FASTCALL
CleanupClassImpl(VOID);
-NTSTATUS
-ClassReferenceClassByName(PW32PROCESS Process,
- PWNDCLASS_OBJECT *Class,
- LPWSTR ClassName);
+void FASTCALL DestroyProcessClasses(PW32PROCESS Process );
+
+inline VOID FASTCALL
+ClassDerefObject(PWNDCLASS_OBJECT Class);
+
+inline VOID FASTCALL
+ClassRefObject(PWNDCLASS_OBJECT Class);
+
+PWNDCLASS_OBJECT FASTCALL
+ClassGetClassByAtom(
+ RTL_ATOM Atom,
+ HINSTANCE hInstance);
+
+PWNDCLASS_OBJECT FASTCALL
+ClassGetClassByName(
+ LPCWSTR ClassName,
+ HINSTANCE hInstance);
-NTSTATUS
-ClassReferenceClassByAtom(PWNDCLASS_OBJECT *Class,
- RTL_ATOM ClassAtom);
+PWNDCLASS_OBJECT FASTCALL
+ClassGetClassByNameOrAtom(
+ LPCWSTR ClassNameOrAtom,
+ HINSTANCE hInstance);
-NTSTATUS
-ClassReferenceClassByNameOrAtom(PWNDCLASS_OBJECT *Class,
- LPWSTR ClassNameOrAtom);
-PWNDCLASS_OBJECT
-W32kCreateClass(LPWNDCLASSEX lpwcx,
- BOOL bUnicodeClass);
+struct _WINDOW_OBJECT;
+ULONG FASTCALL
+IntGetClassLong(struct _WINDOW_OBJECT *WindowObject, ULONG Offset, BOOL Ansi);
-#endif /* __WIN32K_CLASS_H */
+#endif /* _WIN32K_CLASS_H */
/* EOF */