23 #define _WIN32_WINNT 0x0501 39 #define NUMCLASSWORDS 4 41 #define IS_WNDPROC_HANDLE(x) (((ULONG_PTR)(x) >> 16) == (~0u >> 16)) 45 #elif defined __x86_64__ 49 #elif defined __aarch64__ 56 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n" 57 "<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersion=\"1.0\">\n" 58 " <assemblyIdentity\n" 60 " name=\"Wine.User32.Tests\"\n" 61 " version=\"1.0.0.0\"\n" 62 " processorArchitecture=\"" ARCH "\"\n" 64 "<description>Wine comctl32 test suite</description>\n" 66 " <dependentAssembly>\n" 67 " <assemblyIdentity\n" 69 " name=\"microsoft.windows.common-controls\"\n" 70 " version=\"6.0.0.0\"\n" 71 " processorArchitecture=\"" ARCH "\"\n" 72 " publicKeyToken=\"6595b64144ccf1df\"\n" 75 "</dependentAssembly>\n" 96 static const WCHAR className[] = {
'T',
'e',
's',
't',
'C',
'l',
'a',
's',
's',0};
97 static const WCHAR winName[] = {
'W',
'i',
'n',
'C',
'l',
'a',
's',
's',
'T',
'e',
's',
't',0};
118 ok(classatom,
"failed to register class\n");
123 "RegisterClass of the same class should fail for the second time\n");
131 ok(hTestWnd!=0,
"Failed to create window\n");
138 "GetClassLongW initial value nonzero!\n");
140 "GetClassLongW failed!\n");
152 "GetClassLongW() with invalid offset did not fail\n");
160 "GetClassLongW(%d) initial value nonzero!\n",
i);
162 "SetClassLongW(%d) failed!\n",
i);
170 "GetClassLongW value doesn't match what was set!\n");
172 "GetClassLongW failed!\n");
178 "GetClassName returned incorrect length\n");
180 "GetClassName returned incorrect name for this window's class\n");
185 ok(test_atom == classatom,
186 "class atom did not match\n");
188 "cbClsExtra did not match\n");
190 "cbWndExtra did not match\n");
192 "hbrBackground did not match\n");
194 "hCursor did not match\n");
196 "hInstance did not match\n");
199 ok(
FALSE,
"GetClassInfo (hinstance) failed!\n");
206 ok(test_atom == classatom,
207 "class atom did not match %x != %x\n", test_atom, classatom);
217 "hInstance not zero for global class %p\n",wc.
hInstance);
220 ok(
FALSE,
"GetClassInfo (0) failed for global class!\n");
225 "GetClassInfo (0) succeeded for local class!\n");
229 "Unregister class succeeded with window existing\n");
232 "DestroyWindow() failed!\n");
235 "UnregisterClass() failed\n");
238 "atom still found\n");
248 ok( !(~wc.
style &
style & ~
ignore),
"System class %s is missing bits %x (%08x/%08x)\n",
250 ok( !(wc.
style & ~
style),
"System class %s has extra bits %x (%08x/%08x)\n",
254 ok( !must_exist,
"System class %s does not exist\n",
name );
282 ok_(__FILE__,
line)( atom,
"Class %s %p not found\n",
name, inst );
287 "Wrong name %s/%s for class %s %p\n",
294 #define check_class(inst,name,menu) check_class_(__LINE__,inst,name,menu) 303 ok_(__FILE__,
line)( wc.
hInstance == info_inst,
"Wrong info instance %p/%p for class %s\n",
305 hwnd =
CreateWindowExA( 0,
name,
"test_window", 0, 0, 0, 0, 0, 0, 0, inst, 0 );
306 ok_(__FILE__,
line)(
hwnd !=
NULL,
"Couldn't create window for class %s inst %p\n",
name, inst );
308 "Wrong GCL instance %p/%p for class %s\n",
311 "Wrong GWL instance %p/%p for window %s\n",
314 "UnregisterClassA should fail while exists a class window\n");
316 "GetLastError() should be set to ERROR_CLASS_HAS_WINDOWS not %d\n",
GetLastError());
319 #define check_instance(name,inst,info_inst,gcl_inst) check_instance_(__LINE__,name,inst,info_inst,gcl_inst) 359 const char *
name =
"__test__";
367 memset( &cls, 0,
sizeof(cls) );
377 ok(
RegisterClassA( &cls ),
"Failed to register local class for main module\n" );
384 ok(
RegisterClassA( &cls ),
"Failed to register local class for kernel32\n" );
395 wcexA.
cbSize =
sizeof(wcexA) - 1;
397 "Succeeded with invalid number of cbSize bytes\n");
399 wcexA.
cbSize =
sizeof(wcexA) + 1;
401 "Succeeded with invalid number of cbSize bytes\n");
403 wcexA.
cbSize =
sizeof(wcexA);
405 wcexA.
cbSize = 0xdeadbeef;
407 ok( wcexA.
cbSize == 0xdeadbeef,
"GetClassInfoEx returned wrong cbSize value %d\n", wcexA.
cbSize);
415 "Failed with invalid number of WndExtra bytes\n");
421 "Failed with invalid number of ClsExtra bytes\n");
427 "Failed with invalid number of ClsExtra and cbWndExtra bytes\n");
434 hwnd =
CreateWindowExA( 0,
name,
"test", 0, 0, 0, 0, 0, 0, 0, main_module, 0 );
439 ok(
RegisterClassA( &cls ),
"Failed to register local class for kernel32\n" );
450 ok(
RegisterClassA( &cls ),
"Failed to register local class for kernel32\n" );
459 ok(
RegisterClassA( &cls ),
"Failed to register local class for kernel32\n" );
476 ok(
RegisterClassA( &cls ),
"Failed to register local class for kernel32\n" );
489 ok(
RegisterClassA( &cls ),
"Failed to register local class for deadbeef\n" );
490 hwnd2 =
CreateWindowExA( 0,
name,
"test_window", 0, 0, 0, 0, 0, 0, 0,
NULL, 0 );
492 "Didn't get deadbeef class for null instance\n" );
496 hwnd2 =
CreateWindowExA( 0,
name,
"test_window", 0, 0, 0, 0, 0, 0, 0,
NULL, 0 );
498 "Didn't get kernel32 class for null instance\n" );
502 ok(
r == 3,
"expected 3, got %d\n",
r );
507 hwnd2 =
CreateWindowExA( 0,
name,
"test_window", 0, 0, 0, 0, 0, 0, 0,
NULL, 0 );
509 "Didn't get 12345678 class for null instance\n" );
518 ok( !
RegisterClassA( &cls ),
"Succeeded registering local class for null instance\n" );
522 ok(
RegisterClassA( &cls ),
"Failed to register local class for null instance\n" );
534 ok( !
RegisterClassA( &cls ),
"Succeeded registering local class for user32\n" );
537 ok( !
RegisterClassA( &cls ),
"Succeeded registering global class for user32\n" );
542 ok(
RegisterClassA( &cls ),
"Failed to register global class for main module\n" );
549 ok(
RegisterClassA( &cls ),
"Failed to register global class for main module\n" );
552 ok( !
RegisterClassA( &cls ),
"Succeeded registering local class for kernel32\n" );
555 hwnd =
CreateWindowExA( 0,
name,
"test", 0, 0, 0, 0, 0, 0, 0, main_module, 0 );
557 ok( !
RegisterClassA( &cls ),
"Succeeded registering local class for kernel32\n" );
582 ok(
RegisterClassA( &cls ),
"Failed to register global class for dummy instance\n" );
596 ok( !
RegisterClassA( &cls ),
"Succeeded registering global button class for main module\n" );
599 ok( !
RegisterClassA( &cls ),
"Succeeded registering global button class for kernel32\n" );
606 ok(
RegisterClassA( &cls ),
"Failed to register local button class for main module\n" );
607 check_class( main_module,
"BUTTON",
"button_main_module" );
610 ok(
RegisterClassA( &cls ),
"Failed to register local button class for kernel32\n" );
611 check_class( kernel32,
"BUTTON",
"button_kernel32" );
612 check_class( main_module,
"BUTTON",
"button_main_module" );
613 ok(
UnregisterClassA(
"BUTTON", kernel32 ),
"Unregister failed for kernel32 button\n" );
614 ok(
UnregisterClassA(
"BUTTON", main_module ),
"Unregister failed for main module button\n" );
624 ok(
GetClassInfoA( 0,
"BUTTON", &wc ),
"Button class not found with null instance\n" );
625 ok(
GetClassInfoA( kernel32,
"BUTTON", &wc ),
"Button class not found with kernel32\n" );
635 hwnd =
CreateWindowExA( 0,
"EDIT",
"test", 0, 0, 0, 0, 0, 0, 0, main_module, 0 );
645 static const CHAR NORMAL_CLASSES[][10] = {
654 static const char classA[] =
"deftest";
655 static const WCHAR classW[] = {
'd',
'e',
'f',
't',
'e',
's',
't',0};
656 WCHAR unistring[] = {0x142, 0x40e, 0x3b4, 0};
657 WNDPROC pDefWindowProcA, pDefWindowProcW;
658 WNDPROC pNtdllDefWindowProcA, pNtdllDefWindowProcW;
674 if (pDefWindowProcA == pNtdllDefWindowProcA &&
675 pDefWindowProcW == pNtdllDefWindowProcW)
676 skip(
"user32.DefWindowProcX forwarded to ntdll.NtdllDefWindowProc_X\n");
679 for (
i = 0;
i < 4;
i++)
700 ok(atom != 0,
"Couldn't register class, i=%d, %d\n",
i,
GetLastError());
702 hwnd =
CreateWindowA(classA,
NULL, 0, 0, 0, 100, 100,
NULL,
NULL,
GetModuleHandleA(
NULL),
NULL);
703 ok(
hwnd !=
NULL,
"Couldn't create window i=%d\n",
i);
733 "Windows should be Unicode\n");
736 ok(
memcmp(
buf, unistring,
sizeof(unistring)) == 0,
"WM_GETTEXT invalid return\n");
738 ok(
memcmp(
buf, unistring,
sizeof(unistring)) != 0,
"WM_GETTEXT invalid return\n");
784 ok(
hwnd !=
NULL,
"Couldn't create window of class %s\n", NORMAL_CLASSES[
i]);
788 ok(!
IS_WNDPROC_HANDLE(procA),
"procA should not be a handle for %s (%p)\n", NORMAL_CLASSES[
i], procA);
789 ok(!
IS_WNDPROC_HANDLE(procW),
"procW should not be a handle for %s (%p)\n", NORMAL_CLASSES[
i], procW);
791 ok(
memcmp(
buf, classA,
sizeof(classA)) == 0,
"WM_GETTEXT A/A invalid return for class %s\n", NORMAL_CLASSES[
i]);
795 ok(
memcmp(
buf, classA,
sizeof(classA)) == 0,
"WM_GETTEXT W/A invalid return for class %s\n", NORMAL_CLASSES[
i]);
816 ok(
memcmp(
buf, unistring,
sizeof(unistring)) == 0,
"WM_GETTEXT invalid return\n");
818 ok(
memcmp(
buf, unistring,
sizeof(unistring)) == 0,
"WM_GETTEXT invalid return\n");
820 ok(
memcmp(
buf, unistring,
sizeof(unistring)) == 0,
"WM_GETTEXT invalid return\n");
824 ok(
memcmp(
buf, classA,
sizeof(classA)) == 0,
"WM_GETTEXT invalid return\n");
833 ok(
memcmp(
buf, classA,
sizeof(classA)) == 0,
"WM_GETTEXT invalid return\n");
835 ok(
memcmp(
buf, classA,
sizeof(classA)) == 0,
"WM_GETTEXT invalid return\n");
837 ok(
memcmp(
buf, classA,
sizeof(classA)) == 0,
"WM_GETTEXT invalid return\n");
856 ok(
memcmp(
buf, classA,
sizeof(classA)) == 0,
"WM_GETTEXT invalid return\n");
858 ok(
memcmp(
buf, classA,
sizeof(classA)) == 0,
"WM_GETTEXT invalid return\n");
860 ok(
memcmp(
buf, classA,
sizeof(classA)) == 0,
"WM_GETTEXT invalid return\n");
868 ok(
memcmp(
buf, unistring,
sizeof(unistring)) == 0,
"WM_GETTEXT invalid return\n");
870 ok(
memcmp(
buf, unistring,
sizeof(unistring)) == 0,
"WM_GETTEXT invalid return\n");
872 ok(
memcmp(
buf, unistring,
sizeof(unistring)) == 0,
"WM_GETTEXT invalid return\n");
876 ok(
memcmp(
buf, classA,
sizeof(classA)) == 0,
"WM_GETTEXT invalid return\n");
910 ok(atom != 0,
"RegisterClassEx returned 0\n");
962 static const WCHAR staticW[] = {
's',
't',
'a',
't',
'i',
'c',0};
988 ok(!
ret,
"GetClassInfoExA() should fail\n");
995 ok(!
ret,
"GetClassInfoExW() should fail\n");
1010 wcx.
cbSize =
sizeof(wcx) - 1;
1015 ok(wcx.
cbSize ==
sizeof(wcx) - 1,
"expected sizeof(wcx)-1, got %u\n", wcx.
cbSize);
1018 wcx.
cbSize =
sizeof(wcx) + 1;
1023 ok(wcx.
cbSize ==
sizeof(wcx) + 1,
"expected sizeof(wcx)+1, got %u\n", wcx.
cbSize);
1030 WCHAR cls_name[] = {
'I',
'c',
'o',
'n',
'T',
'e',
's',
't',
'C',
'l',
'a',
's',
's',0};
1033 HICON hsmicon, hsmallnew;
1036 memset(&wcex, 0,
sizeof wcex);
1037 wcex.
cbSize =
sizeof wcex;
1045 ok(
hwnd !=
NULL,
"Window was not created\n");
1048 ok(wcex.
hIcon == ret_wcex.
hIcon,
"Icons don't match\n");
1049 ok(ret_wcex.
hIconSm !=
NULL,
"hIconSm should be non-zero handle\n");
1052 ok(hsmicon !=
NULL,
"GetClassLong should return non-zero handle\n");
1055 "WM_GETICON with ICON_BIG should not return the class icon\n");
1057 "WM_GETICON with ICON_SMALL should not return the class icon\n");
1059 "WM_GETICON with ICON_SMALL2 should not return the class icon\n");
1064 "Previous hIconSm should be zero\n");
1066 "Should return explicitly assigned small icon\n");
1067 ok(!
GetIconInfo(hsmicon, &icinf),
"Previous small icon should be destroyed\n");
1071 ok( hsmicon !=
NULL,
"GetClassLong should return non-zero handle\n");
1078 ok(hsmicon !=
NULL,
"GetClassLong should return non-zero handle\n");
1080 ok(
GetIconInfo(hsmicon, &icinf),
"Icon should NOT be destroyed\n");
1107 actctx.cbSize =
sizeof(ACTCTXW);
1116 ok(
actctx.wProcessorArchitecture == 0,
"wProcessorArchitecture=%d\n",
actctx.wProcessorArchitecture);
1118 ok(
actctx.lpAssemblyDirectory ==
NULL,
"lpAssemblyDirectory=%p\n",
actctx.lpAssemblyDirectory);
1120 ok(
actctx.lpApplicationName ==
NULL,
"lpApplicationName=%p\n",
actctx.lpApplicationName);
1151 ok( !
module,
"comctl32 already loaded\n" );
1154 ok(
ret,
"Failed to activate context.\n");
1161 win_skip(
"Module loaded during context activation. Skipping tests.\n");
1172 ok(
ret,
"GetClassInfoW failed for %s\n",
name );
1174 ok(
module != 0,
"comctl32 not loaded\n" );
1178 hwnd =
CreateWindowA(
name,
"test",
WS_OVERLAPPEDWINDOW, 0, 0, 10, 10,
NULL,
NULL,
NULL, 0 );
1179 ok(
hwnd != 0,
"failed to create window for %s\n",
name );
1181 ok(
module != 0,
"comctl32 not loaded\n" );
1186 ok(
ret,
"Failed to deactivate context.\n");
1192 ok( !
module,
"comctl32 already loaded\n" );
1198 ok(
ret,
"GetClassInfoW failed for %s\n",
name );
1200 ok(
module != 0,
"comctl32 not loaded\n" );
1203 ok( !
module,
"comctl32 still loaded\n" );
1204 hwnd =
CreateWindowA(
name,
"test",
WS_OVERLAPPEDWINDOW, 0, 0, 10, 10,
NULL,
NULL,
NULL, 0 );
1205 ok(
hwnd != 0,
"failed to create window for %s\n",
name );
1207 ok(
module != 0,
"comctl32 not loaded\n" );
1221 static const char *classes[] =
1257 ok(
CreateProcessA(
NULL,
path_name,
NULL,
NULL,
FALSE, 0,
NULL,
NULL, &
startup, &
info ),
1258 "CreateProcess failed.\n" );
1267 static const WCHAR ime_classW[] = {
'I',
'M',
'E',0};
1278 win_skip(
"BroadcastSystemMessageExA not available, skipping IME class test\n");
1288 ok(
size ==
sizeof(mbi),
"VirtualQuery returned %ld\n",
size);
1289 if (
size ==
sizeof(mbi)) {
1291 ok(
size,
"GetModuleFileName failed\n");
1293 if (*
ptr ==
'\\' || *
ptr ==
'/')
break;
1302 ok(
size ==
sizeof(mbi),
"VirtualQuery returned %ld\n",
size);
1304 ok(
size,
"GetModuleFileName failed\n");
1306 if (*
ptr ==
'\\' || *
ptr ==
'/')
break;
1313 static const char main_manifest[] =
1314 "<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersion=\"1.0\">" 1315 "<assemblyIdentity version=\"4.3.2.1\" name=\"Wine.WndClass.Test\" type=\"win32\" />" 1316 "<file name=\"file.exe\">" 1317 "<windowClass>MyTestClass</windowClass>" 1320 static const char *testclass =
"MyTestClass";
1340 ok(
ret,
"Failed to activate context.\n");
1342 memset(&wc, 0,
sizeof(wc));
1350 ok(!
ret,
"Expected failure.\n");
1353 ok(
class != 0,
"Failed to register class.\n");
1357 ok(
ret,
"Failed to get class info.\n");
1359 hwnd =
CreateWindowExA(0, testclass,
"test", 0, 0, 0, 0, 0, 0, 0,
hinst, 0);
1360 ok(
hwnd !=
NULL,
"Failed to create a window.\n");
1363 ok(hwnd2 ==
hwnd,
"Failed to find test window.\n");
1366 ok(hwnd2 ==
NULL,
"Unexpected find result %p.\n", hwnd2);
1369 ok(
ret,
"Failed to get class name.\n");
1370 ok(!
strcmp(
buff, testclass),
"Unexpected class name.\n");
1373 ok(
ret,
"Failed to get class info.\n");
1376 ok(!
ret,
"Failed to unregister class.\n");
1379 ok(
ret,
"Failed to deactivate context.\n");
1382 ok(!
ret,
"Unexpected ret val %d.\n",
ret);
1385 ok(
ret,
"Failed to get class info.\n");
1388 ok(
ret,
"Failed to get class name.\n");
1389 ok(!
strcmp(
buff, testclass),
"Unexpected class name.\n");
1393 hwnd =
CreateWindowExA(0,
"4.3.2.1!MyTestClass",
"test", 0, 0, 0, 0, 0, 0, 0,
hinst, 0);
1394 ok(
hwnd !=
NULL,
"Failed to create a window.\n");
1397 ok(hwnd2 ==
hwnd,
"Failed to find test window.\n");
1400 ok(hwnd2 ==
NULL,
"Unexpected find result %p.\n", hwnd2);
1405 ok(!
ret,
"Unexpected ret value %d.\n",
ret);
1408 ok(
ret,
"Failed to unregister class.\n");
1413 ok(
class != 0,
"Failed to register class.\n");
1416 ok(
ret,
"Failed to activate context.\n");
1420 ok(
class == 0,
"Expected failure.\n");
1423 ok(
ret,
"Failed to deactivate context.\n");
1426 ok(
ret,
"Failed to unregister class.\n");
1430 ok(
ret,
"Failed to activate context.\n");
1434 ok(
class != 0,
"Failed to register class\n");
1437 ok(
ret,
"Failed to deactivate context.\n");
1440 ok(!
ret,
"Expected failure.\n");
1443 ok(
ret,
"Failed to get class info.\n");
1446 ok(
ret,
"Failed to unregister class.\n");
1451 ok(
class != 0,
"Failed to register class.\n");
1454 ok(
ret,
"Failed to activate context.\n");
1458 ok(
class != 0,
"Failed to register class.\n");
1461 ok(
ret,
"Failed to deactivate context.\n");
1464 ok(
ret,
"Failed to unregister class.\n");
1467 ok(
ret,
"Failed to unregister class.\n");
1490 trace(
"Class test is incompatible with Win9x implementation, skipping\n");
HGDIOBJ WINAPI GetStockObject(_In_ int)
BOOL WINAPI ActivateActCtx(IN HANDLE hActCtx, OUT PULONG_PTR ulCookie)
static void test_actctx_classes(void)
#define ERROR_INVALID_PARAMETER
static const WCHAR classW[]
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
namespace GUID const ADDRINFOEXW ADDRINFOEXW struct timeval OVERLAPPED LPLOOKUPSERVICE_COMPLETION_ROUTINE HANDLE * handle
ATOM WINAPI RegisterClassExA(CONST WNDCLASSEXA *lpwcx)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
int WINAPI lstrcmpiA(LPCSTR lpString1, LPCSTR lpString2)
BOOL WINAPI GetClassInfoExA(HINSTANCE hInstance, LPCSTR lpszClass, LPWNDCLASSEXA lpwcx)
char * strcat(char *DstString, const char *SrcString)
static LPCWSTR LPCWSTR module_name
ACPI_SIZE strlen(const char *String)
GLenum GLuint GLenum GLsizei const GLchar * buf
BOOL WINAPI DestroyIcon(_In_ HICON)
GLsizei const GLchar ** path
LRESULT WINAPI SendMessageA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define check_class(inst, name, menu)
GLdouble GLdouble GLdouble r
LRESULT WINAPI DefDlgProcA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
static void check_class_(int line, HINSTANCE inst, const char *name, const char *menu_name)
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
int ignore(int trapCode, ppc_trap_frame_t *trap)
int WINAPI GetClassNameW(HWND hWnd, LPWSTR lpClassName, int nMaxCount)
BOOL WINAPI UnregisterClassW(LPCWSTR lpClassName, HINSTANCE hInstance)
static void ClassTest(HINSTANCE hInstance, BOOL global)
BOOL WINAPI GetClassInfoA(HINSTANCE hInstance, LPCSTR lpClassName, LPWNDCLASSA lpWndClass)
#define INVALID_HANDLE_VALUE
static void test_instances(void)
DWORD WINAPI GetLastError(VOID)
static void test_GetClassInfo(void)
int startup(int argc, const char *argv[])
BOOL WINAPI GetClassInfoW(HINSTANCE hInstance, LPCWSTR lpClassName, LPWNDCLASSW lpWndClass)
BOOL WINAPI SetWindowTextW(_In_ HWND, _In_opt_ LPCWSTR)
#define GetWindowLongPtrW
static void test_extra_values(void)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
DWORD WINAPI GetClassLongW(HWND hWnd, int nIndex)
static void create_manifest_file(const char *filename, const char *manifest)
BOOL WINAPI DestroyWindow(_In_ HWND)
#define CreateWindowW(a, b, c, d, e, f, g, h, i, j, k)
BOOL WINAPI GetIconInfo(_In_ HICON, _Out_ PICONINFO)
DWORD WINAPI GetModuleFileNameA(HINSTANCE hModule, LPSTR lpFilename, DWORD nSize)
static void check_thread_instance(const char *name, HINSTANCE inst, HINSTANCE info_inst, HINSTANCE gcl_inst)
static void check_instance_(int line, const char *name, HINSTANCE inst, HINSTANCE info_inst, HINSTANCE gcl_inst)
HICON WINAPI LoadIconA(_In_opt_ HINSTANCE, _In_ LPCSTR)
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
static LRESULT WINAPI TestDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
LRESULT WINAPI CallWindowProcA(_In_ WNDPROC, _In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
int WINAPI GetClipboardFormatNameW(_In_ UINT format, _Out_writes_(cchMaxCount) LPWSTR lpszFormatName, _In_ int cchMaxCount)
#define sprintf(buf, format,...)
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
BOOL WINAPI DeactivateActCtx(IN DWORD dwFlags, IN ULONG_PTR ulCookie)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
ATOM WINAPI RegisterClassA(CONST WNDCLASSA *lpWndClass)
#define ERROR_CLASS_HAS_WINDOWS
#define IS_WNDPROC_HANDLE(x)
static HANDLE create_test_actctx(const char *file)
HANDLE WINAPI CopyImage(_In_ HANDLE, _In_ UINT, _In_ int, _In_ int, _In_ UINT)
#define CreateWindowA(a, b, c, d, e, f, g, h, i, j, k)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
static LRESULT WINAPI ClassTest_WndProc2(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
#define DATETIMEPICK_CLASSA
#define ERROR_CLASS_ALREADY_EXISTS
BOOL WINAPI DeleteFileA(IN LPCSTR lpFileName)
BOOL WINAPI IsWindowUnicode(_In_ HWND)
static const WCHAR nameW[]
#define GetWindowLongPtrA
static void test_builtinproc(void)
static void test_comctl32_classes(void)
int WINAPI GetClassNameA(HWND hWnd, LPSTR lpClassName, int nMaxCount)
BOOL WINAPI SetWindowTextA(_In_ HWND, _In_opt_ LPCSTR)
static char * path_name(DOS_FILE *file)
VOID WINAPI ReleaseActCtx(IN HANDLE hActCtx)
BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessA(LPCSTR lpApplicationName, LPSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCSTR lpCurrentDirectory, LPSTARTUPINFOA lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation)
int WINAPI GetSystemMetrics(_In_ int)
SIZE_T NTAPI VirtualQuery(IN LPCVOID lpAddress, OUT PMEMORY_BASIC_INFORMATION lpBuffer, IN SIZE_T dwLength)
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
static LRESULT WINAPI ClassTest_WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
static const struct @1673 extra_values[]
int winetest_get_mainargs(char ***pargv)
#define FILE_ATTRIBUTE_NORMAL
HWND WINAPI CreateDialogParamA(_In_opt_ HINSTANCE, _In_ LPCSTR, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
HWND WINAPI CreateWindowExW(_In_ DWORD dwExStyle, _In_opt_ LPCWSTR lpClassName, _In_opt_ LPCWSTR lpWindowName, _In_ DWORD dwStyle, _In_ int X, _In_ int Y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam)
#define SetWindowLongPtrA
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
LRESULT WINAPI DefWindowProcA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
HCURSOR WINAPI LoadCursorA(_In_opt_ HINSTANCE, _In_ LPCSTR)
static void test_IME(void)
DWORD WINAPI SetClassLongW(HWND hWnd, int nIndex, LONG dwNewLong)
void winetest_wait_child_process(HANDLE process)
static void test_styles(void)
ATOM WINAPI RegisterClassExW(CONST WNDCLASSEXW *lpwcx)
#define TOOLBARCLASSNAMEA
#define WC_NATIVEFONTCTLA
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
static void check_style(const char *name, int must_exist, UINT style, UINT ignore)
static const WCHAR staticW[]
HANDLE WINAPI LoadImageA(_In_opt_ HINSTANCE, _In_ LPCSTR, _In_ UINT, _In_ int, _In_ int, _In_ UINT)
DWORD WINAPI GetTempPathA(IN DWORD nBufferLength, OUT LPSTR lpBuffer)
static const char comctl32_manifest[]
static void test_icons(void)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
ATOM WINAPI RegisterClassW(CONST WNDCLASSW *lpWndClass)
DWORD WINAPI SetClassLongA(HWND hWnd, int nIndex, LONG dwNewLong)
#define MultiByteToWideChar
LRESULT WINAPI CallWindowProcW(_In_ WNDPROC, _In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
HWND WINAPI CreateWindowExA(_In_ DWORD dwExStyle, _In_opt_ LPCSTR lpClassName, _In_opt_ LPCSTR lpWindowName, _In_ DWORD dwStyle, _In_ int X, _In_ int Y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam)
#define WS_OVERLAPPEDWINDOW
HANDLE WINAPI CreateActCtxW(PCACTCTXW pActCtx)
HWND WINAPI FindWindowExA(_In_opt_ HWND, _In_opt_ HWND, _In_opt_ LPCSTR, _In_opt_ LPCSTR)
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
int strcmp(const char *String1, const char *String2)
#define ERROR_CALL_NOT_IMPLEMENTED
HICON WINAPI LoadIconW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
#define GetProcAddress(x, y)
static const char cls_name[]
#define SetWindowLongPtrW
static const CHAR manifest[]
static void test_comctl32_class(const char *name)
static DWORD WINAPI thread_proc(void *param)
BOOL WINAPI UnregisterClassA(LPCSTR lpClassName, HINSTANCE hInstance)
BOOL WINAPI GetClassInfoExW(HINSTANCE hInstance, LPCWSTR lpszClass, LPWNDCLASSEXW lpwcx)
#define ERROR_CLASS_DOES_NOT_EXIST
static unsigned char buff[32768]
static BOOL RegisterTestDialog(HINSTANCE hInstance)
static void CreateDialogParamTest(HINSTANCE hInstance)
#define check_instance(name, inst, info_inst, gcl_inst)