3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS user32.dll
5 * FILE: lib/user32/windows/class.c
6 * PURPOSE: Window classes
7 * PROGRAMMER: Casper S. Hornstrup (chorns@users.sourceforge.net)
9 * 09-05-2001 CSH Created
21 LPWNDCLASS lpWndClass)
51 LPWNDCLASS lpWndClass)
57 GetClassLongA(HWND hWnd, int nIndex)
68 return(GetClassLongW(hWnd, nIndex));
73 GetClassLongW(HWND hWnd, int nIndex)
75 return(NtUserGetClassLong(hWnd, nIndex));
104 * NOTE: Obsoleted in 32-bit windows
111 GetWindowLongA(HWND hWnd, int nIndex)
117 GetWindowLongW(HWND hWnd, int nIndex)
119 return(NtUserGetWindowLong(hWnd, nIndex));
153 RegisterClassA(CONST WNDCLASS *lpWndClass)
157 RtlMoveMemory(&Class.style, lpWndClass, sizeof(WNDCLASS));
158 Class.cbSize = sizeof(WNDCLASSEX);
159 Class.hIconSm = INVALID_HANDLE_VALUE;
160 return RegisterClassExA(&Class);
164 RegisterClassExA(CONST WNDCLASSEX *lpwcx)
166 UNICODE_STRING MenuName;
167 UNICODE_STRING ClassName;
171 if (!RtlCreateUnicodeStringFromAsciiz(&MenuName, (PCSZ)lpwcx->lpszMenuName))
173 RtlFreeUnicodeString(&MenuName);
174 SetLastError(ERROR_NOT_ENOUGH_MEMORY);
178 if (!RtlCreateUnicodeStringFromAsciiz(&ClassName, (PCSZ)lpwcx->lpszClassName))
180 RtlFreeUnicodeString(&ClassName);
181 SetLastError(ERROR_NOT_ENOUGH_MEMORY);
185 RtlMoveMemory(&Class, lpwcx, sizeof(WNDCLASSEX));
186 Class.lpszMenuName = (LPCTSTR)MenuName.Buffer;
187 Class.lpszClassName = (LPCTSTR)ClassName.Buffer;
189 Atom = NtUserRegisterClassExWOW(&Class,
196 RtlFreeUnicodeString(&ClassName);
197 RtlFreeUnicodeString(&MenuName);
203 RegisterClassExW(CONST WNDCLASSEX *lpwcx)
207 Atom = NtUserRegisterClassExWOW((WNDCLASSEX*)lpwcx,
218 RegisterClassW(CONST WNDCLASS *lpWndClass)
222 RtlMoveMemory(&Class.style, lpWndClass, sizeof(WNDCLASS));
223 Class.cbSize = sizeof(WNDCLASSEX);
224 Class.hIconSm = INVALID_HANDLE_VALUE;
225 return RegisterClassExW(&Class);
255 * NOTE: Obsoleted in 32-bit windows