ReactOS  r76032
misc.c
Go to the documentation of this file.
1 /*
2  * Misc tests
3  *
4  * Copyright 2006 Paul Vriens
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19  */
20 
21 //#include <stdio.h>
22 //#include <windows.h>
23 
24 #include <wine/test.h>
25 #include <wingdi.h>
26 #include <winuser.h>
27 #include <commctrl.h>
28 #include "v6util.h"
29 
30 static PVOID (WINAPI * pAlloc)(LONG);
31 static PVOID (WINAPI * pReAlloc)(PVOID, LONG);
32 static BOOL (WINAPI * pFree)(PVOID);
33 static LONG (WINAPI * pGetSize)(PVOID);
34 
35 static INT (WINAPI * pStr_GetPtrA)(LPCSTR, LPSTR, INT);
36 static BOOL (WINAPI * pStr_SetPtrA)(LPSTR, LPCSTR);
37 static INT (WINAPI * pStr_GetPtrW)(LPCWSTR, LPWSTR, INT);
38 static BOOL (WINAPI * pStr_SetPtrW)(LPWSTR, LPCWSTR);
39 
40 static HMODULE hComctl32 = 0;
41 
42 static char testicon_data[] =
43 {
44  0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x02, 0x00, 0x00, 0x01, 0x00,
45  0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x28, 0x00,
46  0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00,
47  0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x12, 0x0b,
48  0x00, 0x00, 0x12, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
49  0x00, 0x00, 0xde, 0xde, 0xde, 0xff, 0xde, 0xde, 0xde, 0xff, 0xde, 0xde,
50  0xde, 0xff, 0xde, 0xde, 0xde, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
51  0x00, 0x00
52 };
53 
54 #define COMCTL32_GET_PROC(ordinal, func) \
55  p ## func = (void*)GetProcAddress(hComctl32, (LPSTR)ordinal); \
56  if(!p ## func) { \
57  trace("GetProcAddress(%d)(%s) failed\n", ordinal, #func); \
58  FreeLibrary(hComctl32); \
59  }
60 
61 static BOOL InitFunctionPtrs(void)
62 {
63  hComctl32 = LoadLibraryA("comctl32.dll");
64 
65  if(!hComctl32)
66  {
67  trace("Could not load comctl32.dll\n");
68  return FALSE;
69  }
70 
75 
80 
81  return TRUE;
82 }
83 
84 static void test_GetPtrAW(void)
85 {
86  if (pStr_GetPtrA)
87  {
88  static const char source[] = "Just a source string";
89  static const char desttest[] = "Just a destination string";
90  static char dest[MAX_PATH];
91  int sourcelen;
92  int destsize = MAX_PATH;
93  int count;
94 
95  sourcelen = strlen(source) + 1;
96 
97  count = pStr_GetPtrA(NULL, NULL, 0);
98  ok (count == 0, "Expected count to be 0, it was %d\n", count);
99 
100  if (0)
101  {
102  /* Crashes on W98, NT4, W2K, XP, W2K3
103  * Our implementation also crashes and we should probably leave
104  * it like that.
105  */
106  count = pStr_GetPtrA(NULL, NULL, destsize);
107  trace("count : %d\n", count);
108  }
109 
110  count = pStr_GetPtrA(source, NULL, 0);
111  ok (count == sourcelen ||
112  broken(count == sourcelen - 1), /* win9x */
113  "Expected count to be %d, it was %d\n", sourcelen, count);
114 
115  strcpy(dest, desttest);
116  count = pStr_GetPtrA(source, dest, 0);
117  ok (count == sourcelen ||
118  broken(count == 0), /* win9x */
119  "Expected count to be %d, it was %d\n", sourcelen, count);
120  ok (!lstrcmpA(dest, desttest) ||
121  broken(!lstrcmpA(dest, "")), /* Win7 */
122  "Expected destination to not have changed\n");
123 
124  count = pStr_GetPtrA(source, NULL, destsize);
125  ok (count == sourcelen ||
126  broken(count == sourcelen - 1), /* win9x */
127  "Expected count to be %d, it was %d\n", sourcelen, count);
128 
129  count = pStr_GetPtrA(source, dest, destsize);
130  ok (count == sourcelen ||
131  broken(count == sourcelen - 1), /* win9x */
132  "Expected count to be %d, it was %d\n", sourcelen, count);
133  ok (!lstrcmpA(source, dest), "Expected source and destination to be the same\n");
134 
135  strcpy(dest, desttest);
136  count = pStr_GetPtrA(NULL, dest, destsize);
137  ok (count == 0, "Expected count to be 0, it was %d\n", count);
138  ok (dest[0] == '\0', "Expected destination to be cut-off and 0 terminated\n");
139 
140  destsize = 15;
141  count = pStr_GetPtrA(source, dest, destsize);
142  ok (count == 15 ||
143  broken(count == 14), /* win9x */
144  "Expected count to be 15, it was %d\n", count);
145  ok (!memcmp(source, dest, 14), "Expected first part of source and destination to be the same\n");
146  ok (dest[14] == '\0', "Expected destination to be cut-off and 0 terminated\n");
147  }
148 }
149 
150 static void test_Alloc(void)
151 {
152  PCHAR p;
153  BOOL res;
154  DWORD size, min;
155 
156  /* allocate size 0 */
157  p = pAlloc(0);
158  ok(p != NULL, "Expected non-NULL ptr\n");
159 
160  /* get the minimum size */
161  min = pGetSize(p);
162 
163  /* free the block */
164  res = pFree(p);
165  ok(res == TRUE, "Expected TRUE, got %d\n", res);
166 
167  /* allocate size 1 */
168  p = pAlloc(1);
169  ok(p != NULL, "Expected non-NULL ptr\n");
170 
171  /* get the allocated size */
172  size = pGetSize(p);
173  ok(size == 1 ||
174  broken(size == min), /* win9x */
175  "Expected 1, got %d\n", size);
176 
177  /* reallocate the block */
178  p = pReAlloc(p, 2);
179  ok(p != NULL, "Expected non-NULL ptr\n");
180 
181  /* get the new size */
182  size = pGetSize(p);
183  ok(size == 2 ||
184  broken(size == min), /* win9x */
185  "Expected 2, got %d\n", size);
186 
187  /* free the block */
188  res = pFree(p);
189  ok(res == TRUE, "Expected TRUE, got %d\n", res);
190 
191  /* free a NULL ptr */
192  res = pFree(NULL);
193  ok(res == TRUE ||
194  broken(res == FALSE), /* win9x */
195  "Expected TRUE, got %d\n", res);
196 
197  /* reallocate a NULL ptr */
198  p = pReAlloc(NULL, 2);
199  ok(p != NULL, "Expectd non-NULL ptr\n");
200 
201  res = pFree(p);
202  ok(res == TRUE, "Expected TRUE, got %d\n", res);
203 }
204 
205 static void test_LoadIconWithScaleDown(void)
206 {
207  static const WCHAR nonexisting_fileW[] = {'n','o','n','e','x','i','s','t','i','n','g','.','i','c','o',0};
208  static const WCHAR nonexisting_resourceW[] = {'N','o','n','e','x','i','s','t','i','n','g',0};
209  static const WCHAR prefixW[] = {'I','C','O',0};
210  HRESULT (WINAPI *pLoadIconMetric)(HINSTANCE, const WCHAR *, int, HICON *);
211  HRESULT (WINAPI *pLoadIconWithScaleDown)(HINSTANCE, const WCHAR *, int, int, HICON *);
212  WCHAR tmp_path[MAX_PATH], icon_path[MAX_PATH];
213  ICONINFO info;
214  HMODULE hinst;
215  HANDLE handle;
216  DWORD written;
217  HRESULT hr;
218  BITMAP bmp;
219  HICON icon;
220  void *ptr;
221  int bytes;
222  BOOL res;
223 
224  hinst = LoadLibraryA("comctl32.dll");
225  pLoadIconMetric = (void *)GetProcAddress(hinst, "LoadIconMetric");
226  pLoadIconWithScaleDown = (void *)GetProcAddress(hinst, "LoadIconWithScaleDown");
227  if (!pLoadIconMetric || !pLoadIconWithScaleDown)
228  {
229 #ifdef __REACTOS__
230  skip("LoadIconMetric or pLoadIconWithScaleDown not exported by name\n");
231 #else
232  win_skip("LoadIconMetric or pLoadIconWithScaleDown not exported by name\n");
233 #endif
234  FreeLibrary(hinst);
235  return;
236  }
237 
238  GetTempPathW(MAX_PATH, tmp_path);
239  GetTempFileNameW(tmp_path, prefixW, 0, icon_path);
240  handle = CreateFileW(icon_path, GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
242  ok(handle != INVALID_HANDLE_VALUE, "CreateFileW failed with error %u\n", GetLastError());
243  res = WriteFile(handle, testicon_data, sizeof(testicon_data), &written, NULL);
244  ok(res && written == sizeof(testicon_data), "Failed to write icon file\n");
245  CloseHandle(handle);
246 
247  /* test ordinals */
248  ptr = GetProcAddress(hinst, (const char *)380);
249  ok(ptr == pLoadIconMetric,
250  "got wrong pointer for ordinal 380, %p expected %p\n", ptr, pLoadIconMetric);
251 
252  ptr = GetProcAddress(hinst, (const char *)381);
253  ok(ptr == pLoadIconWithScaleDown,
254  "got wrong pointer for ordinal 381, %p expected %p\n", ptr, pLoadIconWithScaleDown);
255 
256  /* invalid arguments */
257  icon = (HICON)0x1234;
258  hr = pLoadIconMetric(NULL, (LPWSTR)IDI_APPLICATION, 0x100, &icon);
259  ok(hr == E_INVALIDARG, "Expected E_INVALIDARG, got %x\n", hr);
260  ok(icon == NULL, "Expected NULL, got %p\n", icon);
261 
262  icon = (HICON)0x1234;
263  hr = pLoadIconMetric(NULL, NULL, LIM_LARGE, &icon);
264  ok(hr == E_INVALIDARG, "Expected E_INVALIDARG, got %x\n", hr);
265  ok(icon == NULL, "Expected NULL, got %p\n", icon);
266 
267  icon = (HICON)0x1234;
268  hr = pLoadIconWithScaleDown(NULL, NULL, 32, 32, &icon);
269  ok(hr == E_INVALIDARG, "Expected E_INVALIDARG, got %x\n", hr);
270  ok(icon == NULL, "Expected NULL, got %p\n", icon);
271 
272  /* non-existing filename */
273  hr = pLoadIconMetric(NULL, nonexisting_fileW, LIM_LARGE, &icon);
274  todo_wine
276  "Expected HRESULT_FROM_WIN32(ERROR_RESOURCE_TYPE_NOT_FOUND), got %x\n", hr);
277 
278  hr = pLoadIconWithScaleDown(NULL, nonexisting_fileW, 32, 32, &icon);
279  todo_wine
281  "Expected HRESULT_FROM_WIN32(ERROR_RESOURCE_TYPE_NOT_FOUND), got %x\n", hr);
282 
283  /* non-existing resource name */
284  hr = pLoadIconMetric(hinst, nonexisting_resourceW, LIM_LARGE, &icon);
286  "Expected HRESULT_FROM_WIN32(ERROR_RESOURCE_TYPE_NOT_FOUND), got %x\n", hr);
287 
288  hr = pLoadIconWithScaleDown(hinst, nonexisting_resourceW, 32, 32, &icon);
290  "Expected HRESULT_FROM_WIN32(ERROR_RESOURCE_TYPE_NOT_FOUND), got %x\n", hr);
291 
292  /* load icon using predefined identifier */
293  hr = pLoadIconMetric(NULL, (LPWSTR)IDI_APPLICATION, LIM_SMALL, &icon);
294  ok(hr == S_OK, "Expected S_OK, got %x\n", hr);
295  res = GetIconInfo(icon, &info);
296  ok(res, "Failed to get icon info, error %u\n", GetLastError());
297  bytes = GetObjectA(info.hbmColor, sizeof(bmp), &bmp);
298  ok(bytes > 0, "Failed to get bitmap info for icon\n");
299  ok(bmp.bmWidth == GetSystemMetrics(SM_CXSMICON), "Wrong icon width %d\n", bmp.bmWidth);
300  ok(bmp.bmHeight == GetSystemMetrics(SM_CYSMICON), "Wrong icon height %d\n", bmp.bmHeight);
301  DestroyIcon(icon);
302 
303  hr = pLoadIconMetric(NULL, (LPWSTR)IDI_APPLICATION, LIM_LARGE, &icon);
304  ok(hr == S_OK, "Expected S_OK, got %x\n", hr);
305  res = GetIconInfo(icon, &info);
306  ok(res, "Failed to get icon info, error %u\n", GetLastError());
307  bytes = GetObjectA(info.hbmColor, sizeof(bmp), &bmp);
308  ok(bytes > 0, "Failed to get bitmap info for icon\n");
309  ok(bmp.bmWidth == GetSystemMetrics(SM_CXICON), "Wrong icon width %d\n", bmp.bmWidth);
310  ok(bmp.bmHeight == GetSystemMetrics(SM_CYICON), "Wrong icon height %d\n", bmp.bmHeight);
311  DestroyIcon(icon);
312 
313  hr = pLoadIconWithScaleDown(NULL, (LPWSTR)IDI_APPLICATION, 42, 42, &icon);
314  ok(hr == S_OK, "Expected S_OK, got %x\n", hr);
315  res = GetIconInfo(icon, &info);
316  ok(res, "Failed to get icon info, error %u\n", GetLastError());
317  bytes = GetObjectA(info.hbmColor, sizeof(bmp), &bmp);
318  ok(bytes > 0, "Failed to get bitmap info for icon\n");
319  ok(bmp.bmWidth == 42, "Wrong icon width %d\n", bmp.bmWidth);
320  ok(bmp.bmHeight == 42, "Wrong icon height %d\n", bmp.bmHeight);
321  DestroyIcon(icon);
322 
323  /* load icon from file */
324  hr = pLoadIconMetric(NULL, icon_path, LIM_SMALL, &icon);
325  ok(hr == S_OK, "Expected S_OK, got %x\n", hr);
326  res = GetIconInfo(icon, &info);
327  ok(res, "Failed to get icon info, error %u\n", GetLastError());
328  bytes = GetObjectA(info.hbmColor, sizeof(bmp), &bmp);
329  ok(bytes > 0, "Failed to get bitmap info for icon\n");
330  ok(bmp.bmWidth == GetSystemMetrics(SM_CXSMICON), "Wrong icon width %d\n", bmp.bmWidth);
331  ok(bmp.bmHeight == GetSystemMetrics(SM_CYSMICON), "Wrong icon height %d\n", bmp.bmHeight);
332  DestroyIcon(icon);
333 
334  hr = pLoadIconWithScaleDown(NULL, icon_path, 42, 42, &icon);
335  ok(hr == S_OK, "Expected S_OK, got %x\n", hr);
336  res = GetIconInfo(icon, &info);
337  ok(res, "Failed to get icon info, error %u\n", GetLastError());
338  bytes = GetObjectA(info.hbmColor, sizeof(bmp), &bmp);
339  ok(bytes > 0, "Failed to get bitmap info for icon\n");
340  ok(bmp.bmWidth == 42, "Wrong icon width %d\n", bmp.bmWidth);
341  ok(bmp.bmHeight == 42, "Wrong icon height %d\n", bmp.bmHeight);
342  DestroyIcon(icon);
343 
344  DeleteFileW(icon_path);
345  FreeLibrary(hinst);
346 }
347 
348 static void check_class( const char *name, int must_exist, UINT style, UINT ignore )
349 {
350  WNDCLASSA wc;
351 
352  if (GetClassInfoA( 0, name, &wc ))
353  {
354 todo_wine
355  ok( !(~wc.style & style & ~ignore), "System class %s is missing bits %x (%08x/%08x)\n",
356  name, ~wc.style & style, wc.style, style );
357  ok( !(wc.style & ~style), "System class %s has extra bits %x (%08x/%08x)\n",
358  name, wc.style & ~style, wc.style, style );
359  ok( !wc.hInstance, "System class %s has hInstance %p\n", name, wc.hInstance );
360  }
361  else
362  ok( !must_exist, "System class %s does not exist\n", name );
363 }
364 
365 /* test styles of system classes */
366 static void test_builtin_classes(void)
367 {
368  /* check style bits */
371  check_class( "Edit", 1, CS_PARENTDC | CS_DBLCLKS | CS_GLOBALCLASS, 0 );
372  check_class( "ListBox", 1, CS_PARENTDC | CS_DBLCLKS | CS_GLOBALCLASS, 0 );
374  check_class( "Static", 1, CS_PARENTDC | CS_DBLCLKS | CS_GLOBALCLASS, 0 );
376 }
377 
379 {
380  ULONG_PTR ctx_cookie;
381  HANDLE hCtx;
382 
383  if(!InitFunctionPtrs())
384  return;
385 
386  test_GetPtrAW();
387  test_Alloc();
388 
389  if (!load_v6_module(&ctx_cookie, &hCtx))
390  return;
391 
394 
395  unload_v6_module(ctx_cookie, hCtx);
396 }
int WINAPI GetObjectA(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_opt_(c) LPVOID pv)
signed char * PCHAR
Definition: retypes.h:7
#define trace(...)
Definition: kmt_test.h:172
UINT style
Definition: startmenu.cpp:1386
namespace GUID const ADDRINFOEXW ADDRINFOEXW struct timeval OVERLAPPED LPLOOKUPSERVICE_COMPLETION_ROUTINE HANDLE * handle
Definition: sock.c:79
#define TRUE
Definition: types.h:120
#define CloseHandle
Definition: compat.h:398
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
Definition: utclib.c:112
#define CS_DROPSHADOW
Definition: winuser.h:655
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
BOOL WINAPI DestroyIcon(_In_ HICON)
Definition: cursoricon.c:2024
__wchar_t WCHAR
Definition: xmlstorage.h:180
static BOOL
Definition: misc.c:87
static HRESULT(WINAPI *pCoInternetCompareUrl)(LPCWSTR
int ignore(int trapCode, ppc_trap_frame_t *trap)
Definition: mmuobject.c:296
#define INVALID_HANDLE_VALUE
Definition: compat.h:391
int WINAPI lstrcmpA(LPCSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:18
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1056
#define CS_HREDRAW
Definition: winuser.h:648
static void test_Alloc(void)
Definition: misc.c:150
#define SM_CYSMICON
Definition: winuser.h:993
static void unload_v6_module(ULONG_PTR cookie, HANDLE hCtx)
Definition: v6util.h:63
#define IDI_APPLICATION
Definition: winuser.h:699
static void check_class(const char *name, int must_exist, UINT style, UINT ignore)
Definition: misc.c:348
BOOL WINAPI Str_SetPtrW(LPWSTR *lppDest, LPCWSTR lpSrc)
Definition: string.c:220
static LPSTR
Definition: misc.c:35
static INT
Definition: misc.c:35
BOOL WINAPI GetIconInfo(_In_ HICON, _Out_ PICONINFO)
Definition: cursoricon.c:2016
DWORD DWORD
Definition: winlogon.h:75
static void test_builtin_classes(void)
Definition: misc.c:366
_In_opt_ PALLOCATE_FUNCTION _In_opt_ PFREE_FUNCTION Free
Definition: exfuncs.h:656
uint32_t ULONG_PTR
Definition: typedefs.h:63
static int
Definition: misc.c:48
static LPCSTR
Definition: misc.c:36
static unsigned char bytes[4]
Definition: adnsresfilter.c:74
DWORD WINAPI GetTempPathW(IN DWORD count, OUT LPWSTR path)
Definition: path.c:2080
#define FALSE
Definition: types.h:117
static BOOL load_v6_module(ULONG_PTR *pcookie, HANDLE *hCtx)
Definition: v6util.h:84
#define GENERIC_WRITE
Definition: nt_native.h:90
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
Definition: loader.c:111
static const IUnknown void **static void **static RGBQUAD *static HINSTANCE hinst
Definition: imagelist.c:73
BOOL WINAPI GetClassInfoA(_In_opt_ HINSTANCE, _In_ LPCSTR, _Out_ LPWNDCLASSA)
static PVOID ptr
Definition: dispmode.c:30
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
Definition: delete.c:39
#define SM_CXICON
Definition: winuser.h:952
static HMODULE hComctl32
Definition: misc.c:40
#define E_INVALIDARG
Definition: ddrawi.h:101
smooth NULL
Definition: ftsmooth.c:557
HBITMAP hbmColor
Definition: winuser.h:3070
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten OPTIONAL, IN LPOVERLAPPED lpOverlapped OPTIONAL)
Definition: rw.c:24
#define CS_VREDRAW
Definition: winuser.h:653
IMemAllocator * pAlloc
Definition: strmbase.h:222
#define FreeLibrary(x)
Definition: compat.h:405
INT WINAPI Str_GetPtrA(LPCSTR, LPSTR, INT)
Definition: string.c:120
unsigned int BOOL
Definition: ntddk_ex.h:94
DWORD WINAPI GetSize(LPVOID)
PVOID ReAlloc(IN DWORD dwFlags, IN PVOID lpMem, IN SIZE_T dwBytes)
Definition: main.c:76
LONG HRESULT
Definition: typedefs.h:77
#define CS_GLOBALCLASS
Definition: winuser.h:647
#define MAX_PATH
Definition: compat.h:26
START_TEST(misc)
Definition: misc.c:378
UINT WINAPI GetTempFileNameW(IN LPCWSTR lpPathName, IN LPCWSTR lpPrefixString, IN UINT uUnique, OUT LPWSTR lpTempFileName)
Definition: filename.c:84
GLfloat CONST GLvector4f CONST GLfloat GLvector4f * dest
Definition: m_xform.h:122
PVOID Alloc(IN DWORD dwFlags, IN SIZE_T dwBytes)
Definition: main.c:63
int WINAPI GetSystemMetrics(_In_ int)
GLuint GLuint GLsizei count
Definition: gl.h:1545
BITMAP bmp
Definition: alphablend.c:62
#define CS_SAVEBITS
Definition: winuser.h:652
#define SM_CXSMICON
Definition: winuser.h:992
HANDLE HINSTANCE
Definition: typedefs.h:75
#define SM_CYICON
Definition: winuser.h:953
#define FILE_ATTRIBUTE_NORMAL
Definition: compat.h:126
#define todo_wine
Definition: test.h:154
BOOL WINAPI Str_SetPtrA(LPSTR *lppDest, LPCSTR lpSrc)
Definition: string.c:164
#define GENERIC_READ
Definition: compat.h:124
#define CS_DBLCLKS
Definition: winuser.h:646
static void test_LoadIconWithScaleDown(void)
Definition: misc.c:205
#define WINAPI
Definition: msvc.h:20
static BOOL InitFunctionPtrs(void)
Definition: misc.c:61
static void test_GetPtrAW(void)
Definition: misc.c:84
#define broken(x)
Definition: _sntprintf.h:21
INT WINAPI Str_GetPtrW(LPCWSTR, LPWSTR, INT)
Definition: string.c:188
UINT style
Definition: winuser.h:3106
#define S_OK
Definition: intsafe.h:59
#define CREATE_ALWAYS
Definition: disk.h:72
const XML_Char XML_Encoding * info
Definition: expat.h:530
DWORD *typedef HANDLE
Definition: winlogon.h:52
static LONG
Definition: misc.c:31
HINSTANCE hInstance
Definition: winuser.h:3110
Definition: bl.h:1253
#define skip(...)
Definition: CString.cpp:57
#define min(a, b)
Definition: monoChain.cc:55
unsigned int UINT
Definition: ndis.h:50
static LPCWSTR
Definition: misc.c:38
#define CreateFileW
Definition: compat.h:400
HANDLE HMODULE
Definition: typedefs.h:75
Definition: name.c:23
GLuint res
Definition: glext.h:9613
char * strcpy(char *DstString, const char *SrcString)
Definition: utclib.c:388
static LPWSTR
Definition: misc.c:37
static PVOID
Definition: misc.c:50
DWORD size
Definition: misc.c:591
#define GetProcAddress(x, y)
Definition: compat.h:410
#define ok(value,...)
Definition: CImage.cpp:33
static char testicon_data[]
Definition: misc.c:42
GLfloat GLfloat p
Definition: glext.h:8902
#define COMCTL32_GET_PROC(ordinal, func)
Definition: misc.c:54
WCHAR * LPWSTR
Definition: xmlstorage.h:184
#define win_skip
Definition: test.h:141
#define CS_PARENTDC
Definition: winuser.h:651
#define ERROR_RESOURCE_TYPE_NOT_FOUND
Definition: winerror.h:1120