+ return GetClassInfoExCommon(hinst, lpszClass, lpwcx, TRUE);
+
+ // AG: I've kept this here (commented out) in case of bugs with my
+ // own "common" routine (see above):
+
+/*LPWSTR str;
+ UNICODE_STRING str2;
+=======
+ LPWSTR str;
+ UNICODE_STRING str2, str3;
+>>>>>>> 1.36
+ WNDCLASSEXW w;
+ WINBOOL retval;
+
+ if ( !lpszClass || !lpwcx )
+ {
+ SetLastError(ERROR_INVALID_PARAMETER);
+ return FALSE;
+ }
+
+ if(IS_ATOM(lpszClass))
+ str = (LPWSTR)lpszClass;
+ else
+ {
+ str = HEAP_strdupW ( lpszClass, wcslen(lpszClass) );
+ if ( !str )
+ {
+ SetLastError (RtlNtStatusToDosError(STATUS_NO_MEMORY));
+ return FALSE;
+ }
+ }
+
+ str2.Length = str3.Length = 0;
+ str2.MaximumLength = str3.MaximumLength = 255;
+ str2.Buffer = (PWSTR)HEAP_alloc ( str2.MaximumLength * sizeof(WCHAR) );
+ if ( !str2.Buffer )
+ {
+ SetLastError (RtlNtStatusToDosError(STATUS_NO_MEMORY));
+ if ( !IS_ATOM(str) )
+ HEAP_free ( str );
+ return FALSE;
+ }
+
+ str3.Buffer = (PWSTR)HEAP_alloc ( str3.MaximumLength * sizeof(WCHAR) );
+ if ( !str3.Buffer )
+ {
+ SetLastError (RtlNtStatusToDosError(STATUS_NO_MEMORY));
+ if ( !IS_ATOM(str) )
+ HEAP_free ( str );
+ HEAP_free ( str2.Buffer );
+ return FALSE;
+ }
+
+ w.lpszMenuName = (LPCWSTR)&str2;
+ w.lpszClassName = (LPCWSTR)&str3;
+ retval = (BOOL)NtUserGetClassInfo(hinst, str, &w, TRUE, 0);
+ if ( !IS_ATOM(str) )
+ HEAP_free(str);
+ RtlCopyMemory ( lpwcx, &w, sizeof(WNDCLASSEXW) );
+
+ if ( !IS_INTRESOURCE(w.lpszMenuName) && w.lpszMenuName )
+ {
+ lpwcx->lpszMenuName = heap_string_poolW ( str2.Buffer, str2.Length );
+ }
+ if ( !IS_ATOM(w.lpszClassName) && w.lpszClassName )
+ {
+ lpwcx->lpszClassName = heap_string_poolW ( str3.Buffer, str3.Length );
+ }
+
+ HEAP_free ( str2.Buffer );
+ HEAP_free ( str3.Buffer );
+
+ return retval;*/
+}
+
+
+/*
+ * @implemented
+ */
+WINBOOL
+STDCALL
+GetClassInfoA(
+ HINSTANCE hInstance,
+ LPCSTR lpClassName,
+ LPWNDCLASSA lpWndClass)
+{
+ WNDCLASSEXA w;
+ WINBOOL retval;
+
+ if ( !lpClassName || !lpWndClass )
+ {
+ SetLastError(ERROR_INVALID_PARAMETER);
+ return FALSE;
+ }
+
+ retval = GetClassInfoExA(hInstance,lpClassName,&w);
+ RtlCopyMemory ( lpWndClass, &w.style, sizeof(WNDCLASSA) );
+ return retval;