/* Unit test suite for window classes. * * Copyright 2002 Mike McCormack * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include #include "wine/test.h" #include "winbase.h" #include "winreg.h" #include "wingdi.h" #include "winuser.h" #define NUMCLASSWORDS 4 LRESULT WINAPI ClassTest_WndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { return DefWindowProcW (hWnd, msg, wParam, lParam); } /*********************************************************************** * * WinMain */ void ClassTest(HINSTANCE hInstance, BOOL global) { WNDCLASSW cls, wc; WCHAR className[] = {'T','e','s','t','C','l','a','s','s',0}; WCHAR winName[] = {'W','i','n','C','l','a','s','s','T','e','s','t',0}; ATOM test_atom; HWND hTestWnd; DWORD i; WCHAR str[20]; ATOM classatom; cls.style = CS_HREDRAW | CS_VREDRAW | (global?CS_GLOBALCLASS:0); cls.lpfnWndProc = ClassTest_WndProc; cls.cbClsExtra = NUMCLASSWORDS*sizeof(DWORD); cls.cbWndExtra = 12; cls.hInstance = hInstance; cls.hIcon = LoadIconW (0, (LPWSTR)IDI_APPLICATION); cls.hCursor = LoadCursorW (0, (LPWSTR)IDC_ARROW); cls.hbrBackground = GetStockObject (WHITE_BRUSH); cls.lpszMenuName = 0; cls.lpszClassName = className; classatom=RegisterClassW(&cls); if (!classatom && GetLastError()==ERROR_CALL_NOT_IMPLEMENTED) return; ok(classatom, "failed to register class"); ok(!RegisterClassW (&cls), "RegisterClass of the same class should fail for the second time"); #if 0 /* these succeeds on Wine, but shouldn't cause any trouble ... */ ok(!GlobalFindAtomW(className), "Found class as global atom"); ok(!FindAtomW(className), "Found class as global atom"); #endif /* Setup windows */ hTestWnd = CreateWindowW (className, winName, WS_OVERLAPPEDWINDOW + WS_HSCROLL + WS_VSCROLL, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, 0, 0, hInstance, 0); ok(hTestWnd!=0, "Failed to create window"); /* test initial values of valid classwords */ for(i=0; i