1 /* $Id: class.c,v 1.11 2002/06/14 18:55:09 jfilby Exp $
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
)
100 * NOTE: Obsoleted in 32-bit windows
155 RegisterClassA(CONST WNDCLASS
*lpWndClass
)
159 RtlMoveMemory(&Class
.style
, lpWndClass
, sizeof(WNDCLASS
));
160 Class
.cbSize
= sizeof(WNDCLASSEX
);
161 Class
.hIconSm
= INVALID_HANDLE_VALUE
;
162 return RegisterClassExA(&Class
);
166 RegisterClassExA(CONST WNDCLASSEX
*lpwcx
)
168 UNICODE_STRING MenuName
;
169 UNICODE_STRING ClassName
;
173 if (!RtlCreateUnicodeStringFromAsciiz(&MenuName
, (PCSZ
)lpwcx
->lpszMenuName
))
175 SetLastError(ERROR_NOT_ENOUGH_MEMORY
);
179 if (!RtlCreateUnicodeStringFromAsciiz(&ClassName
, (PCSZ
)lpwcx
->lpszClassName
))
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
);
198 RtlFreeUnicodeString(&MenuName
);
204 RegisterClassExW(CONST WNDCLASSEX
*lpwcx
)
208 Atom
= NtUserRegisterClassExWOW((WNDCLASSEX
*)lpwcx
,
219 RegisterClassW(CONST WNDCLASS
*lpWndClass
)
223 RtlMoveMemory(&Class
.style
, lpWndClass
, sizeof(WNDCLASS
));
224 Class
.cbSize
= sizeof(WNDCLASSEX
);
225 Class
.hIconSm
= INVALID_HANDLE_VALUE
;
226 return RegisterClassExW(&Class
);
256 * NOTE: Obsoleted in 32-bit windows