ReactOS  0.4.10-dev-346-g2ae1675
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 #include <commctrl.h>
24 
25 #include "wine/test.h"
26 #include "v6util.h"
27 
28 static PVOID (WINAPI * pAlloc)(LONG);
29 static PVOID (WINAPI * pReAlloc)(PVOID, LONG);
30 static BOOL (WINAPI * pFree)(PVOID);
31 static LONG (WINAPI * pGetSize)(PVOID);
32 
33 static INT (WINAPI * pStr_GetPtrA)(LPCSTR, LPSTR, INT);
34 static BOOL (WINAPI * pStr_SetPtrA)(LPSTR, LPCSTR);
35 static INT (WINAPI * pStr_GetPtrW)(LPCWSTR, LPWSTR, INT);
36 static BOOL (WINAPI * pStr_SetPtrW)(LPWSTR, LPCWSTR);
37 
38 static HMODULE hComctl32 = 0;
39 
40 static char testicon_data[] =
41 {
42  0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x02, 0x00, 0x00, 0x01, 0x00,
43  0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x28, 0x00,
44  0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00,
45  0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x12, 0x0b,
46  0x00, 0x00, 0x12, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
47  0x00, 0x00, 0xde, 0xde, 0xde, 0xff, 0xde, 0xde, 0xde, 0xff, 0xde, 0xde,
48  0xde, 0xff, 0xde, 0xde, 0xde, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
49  0x00, 0x00
50 };
51 
52 #define COMCTL32_GET_PROC(ordinal, func) \
53  p ## func = (void*)GetProcAddress(hComctl32, (LPSTR)ordinal); \
54  if(!p ## func) { \
55  trace("GetProcAddress(%d)(%s) failed\n", ordinal, #func); \
56  FreeLibrary(hComctl32); \
57  }
58 
59 static BOOL InitFunctionPtrs(void)
60 {
61  hComctl32 = LoadLibraryA("comctl32.dll");
62 
63  if(!hComctl32)
64  {
65  trace("Could not load comctl32.dll\n");
66  return FALSE;
67  }
68 
73 
78 
79  return TRUE;
80 }
81 
82 static void test_GetPtrAW(void)
83 {
84  if (pStr_GetPtrA)
85  {
86  static const char source[] = "Just a source string";
87  static const char desttest[] = "Just a destination string";
88  static char dest[MAX_PATH];
89  int sourcelen;
90  int destsize = MAX_PATH;
91  int count;
92 
93  sourcelen = strlen(source) + 1;
94 
95  count = pStr_GetPtrA(NULL, NULL, 0);
96  ok (count == 0, "Expected count to be 0, it was %d\n", count);
97 
98  if (0)
99  {
100  /* Crashes on W98, NT4, W2K, XP, W2K3
101  * Our implementation also crashes and we should probably leave
102  * it like that.
103  */
104  count = pStr_GetPtrA(NULL, NULL, destsize);
105  trace("count : %d\n", count);
106  }
107 
108  count = pStr_GetPtrA(source, NULL, 0);
109  ok (count == sourcelen ||
110  broken(count == sourcelen - 1), /* win9x */
111  "Expected count to be %d, it was %d\n", sourcelen, count);
112 
113  strcpy(dest, desttest);
114  count = pStr_GetPtrA(source, dest, 0);
115  ok (count == sourcelen ||
116  broken(count == 0), /* win9x */
117  "Expected count to be %d, it was %d\n", sourcelen, count);
118  ok (!lstrcmpA(dest, desttest) ||
119  broken(!lstrcmpA(dest, "")), /* Win7 */
120  "Expected destination to not have changed\n");
121 
122  count = pStr_GetPtrA(source, NULL, destsize);
123  ok (count == sourcelen ||
124  broken(count == sourcelen - 1), /* win9x */
125  "Expected count to be %d, it was %d\n", sourcelen, count);
126 
127  count = pStr_GetPtrA(source, dest, destsize);
128  ok (count == sourcelen ||
129  broken(count == sourcelen - 1), /* win9x */
130  "Expected count to be %d, it was %d\n", sourcelen, count);
131  ok (!lstrcmpA(source, dest), "Expected source and destination to be the same\n");
132 
133  strcpy(dest, desttest);
134  count = pStr_GetPtrA(NULL, dest, destsize);
135  ok (count == 0, "Expected count to be 0, it was %d\n", count);
136  ok (dest[0] == '\0', "Expected destination to be cut-off and 0 terminated\n");
137 
138  destsize = 15;
139  count = pStr_GetPtrA(source, dest, destsize);
140  ok (count == 15 ||
141  broken(count == 14), /* win9x */
142  "Expected count to be 15, it was %d\n", count);
143  ok (!memcmp(source, dest, 14), "Expected first part of source and destination to be the same\n");
144  ok (dest[14] == '\0', "Expected destination to be cut-off and 0 terminated\n");
145  }
146 }
147 
148 static void test_Alloc(void)
149 {
150  PCHAR p;
151  BOOL res;
152  DWORD size, min;
153 
154  /* allocate size 0 */
155  p = pAlloc(0);
156  ok(p != NULL, "Expected non-NULL ptr\n");
157 
158  /* get the minimum size */
159  min = pGetSize(p);
160 
161  /* free the block */
162  res = pFree(p);
163  ok(res == TRUE, "Expected TRUE, got %d\n", res);
164 
165  /* allocate size 1 */
166  p = pAlloc(1);
167  ok(p != NULL, "Expected non-NULL ptr\n");
168 
169  /* get the allocated size */
170  size = pGetSize(p);
171  ok(size == 1 ||
172  broken(size == min), /* win9x */
173  "Expected 1, got %d\n", size);
174 
175  /* reallocate the block */
176  p = pReAlloc(p, 2);
177  ok(p != NULL, "Expected non-NULL ptr\n");
178 
179  /* get the new size */
180  size = pGetSize(p);
181  ok(size == 2 ||
182  broken(size == min), /* win9x */
183  "Expected 2, got %d\n", size);
184 
185  /* free the block */
186  res = pFree(p);
187  ok(res == TRUE, "Expected TRUE, got %d\n", res);
188 
189  /* free a NULL ptr */
190  res = pFree(NULL);
191  ok(res == TRUE ||
192  broken(res == FALSE), /* win9x */
193  "Expected TRUE, got %d\n", res);
194 
195  /* reallocate a NULL ptr */
196  p = pReAlloc(NULL, 2);
197  ok(p != NULL, "Expected non-NULL ptr\n");
198 
199  res = pFree(p);
200  ok(res == TRUE, "Expected TRUE, got %d\n", res);
201 }
202 
203 static void test_LoadIconWithScaleDown(void)
204 {
205  static const WCHAR nonexisting_fileW[] = {'n','o','n','e','x','i','s','t','i','n','g','.','i','c','o',0};
206  static const WCHAR nonexisting_resourceW[] = {'N','o','n','e','x','i','s','t','i','n','g',0};
207  static const WCHAR prefixW[] = {'I','C','O',0};
208  HRESULT (WINAPI *pLoadIconMetric)(HINSTANCE, const WCHAR *, int, HICON *);
209  HRESULT (WINAPI *pLoadIconWithScaleDown)(HINSTANCE, const WCHAR *, int, int, HICON *);
210  WCHAR tmp_path[MAX_PATH], icon_path[MAX_PATH];
211  ICONINFO info;
212  HMODULE hinst;
213  HANDLE handle;
214  DWORD written;
215  HRESULT hr;
216  BITMAP bmp;
217  HICON icon;
218  void *ptr;
219  int bytes;
220  BOOL res;
221 
222  hinst = LoadLibraryA("comctl32.dll");
223  pLoadIconMetric = (void *)GetProcAddress(hinst, "LoadIconMetric");
224  pLoadIconWithScaleDown = (void *)GetProcAddress(hinst, "LoadIconWithScaleDown");
225  if (!pLoadIconMetric || !pLoadIconWithScaleDown)
226  {
227 #ifdef __REACTOS__
228  skip("LoadIconMetric or pLoadIconWithScaleDown not exported by name\n");
229 #else
230  win_skip("LoadIconMetric or pLoadIconWithScaleDown not exported by name\n");
231 #endif
232  FreeLibrary(hinst);
233  return;
234  }
235 
236  GetTempPathW(MAX_PATH, tmp_path);
237  GetTempFileNameW(tmp_path, prefixW, 0, icon_path);
238  handle = CreateFileW(icon_path, GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
240  ok(handle != INVALID_HANDLE_VALUE, "CreateFileW failed with error %u\n", GetLastError());
241  res = WriteFile(handle, testicon_data, sizeof(testicon_data), &written, NULL);
242  ok(res && written == sizeof(testicon_data), "Failed to write icon file\n");
243  CloseHandle(handle);
244 
245  /* test ordinals */
246  ptr = GetProcAddress(hinst, (const char *)380);
247  ok(ptr == pLoadIconMetric,
248  "got wrong pointer for ordinal 380, %p expected %p\n", ptr, pLoadIconMetric);
249 
250  ptr = GetProcAddress(hinst, (const char *)381);
251  ok(ptr == pLoadIconWithScaleDown,
252  "got wrong pointer for ordinal 381, %p expected %p\n", ptr, pLoadIconWithScaleDown);
253 
254  /* invalid arguments */
255  icon = (HICON)0x1234;
256  hr = pLoadIconMetric(NULL, (LPWSTR)IDI_APPLICATION, 0x100, &icon);
257  ok(hr == E_INVALIDARG, "Expected E_INVALIDARG, got %x\n", hr);
258  ok(icon == NULL, "Expected NULL, got %p\n", icon);
259 
260  icon = (HICON)0x1234;
261  hr = pLoadIconMetric(NULL, NULL, LIM_LARGE, &icon);
262  ok(hr == E_INVALIDARG, "Expected E_INVALIDARG, got %x\n", hr);
263  ok(icon == NULL, "Expected NULL, got %p\n", icon);
264 
265  icon = (HICON)0x1234;
266  hr = pLoadIconWithScaleDown(NULL, NULL, 32, 32, &icon);
267  ok(hr == E_INVALIDARG, "Expected E_INVALIDARG, got %x\n", hr);
268  ok(icon == NULL, "Expected NULL, got %p\n", icon);
269 
270  /* non-existing filename */
271  hr = pLoadIconMetric(NULL, nonexisting_fileW, LIM_LARGE, &icon);
272  todo_wine
274  "Expected HRESULT_FROM_WIN32(ERROR_RESOURCE_TYPE_NOT_FOUND), got %x\n", hr);
275 
276  hr = pLoadIconWithScaleDown(NULL, nonexisting_fileW, 32, 32, &icon);
277  todo_wine
279  "Expected HRESULT_FROM_WIN32(ERROR_RESOURCE_TYPE_NOT_FOUND), got %x\n", hr);
280 
281  /* non-existing resource name */
282  hr = pLoadIconMetric(hinst, nonexisting_resourceW, LIM_LARGE, &icon);
284  "Expected HRESULT_FROM_WIN32(ERROR_RESOURCE_TYPE_NOT_FOUND), got %x\n", hr);
285 
286  hr = pLoadIconWithScaleDown(hinst, nonexisting_resourceW, 32, 32, &icon);
288  "Expected HRESULT_FROM_WIN32(ERROR_RESOURCE_TYPE_NOT_FOUND), got %x\n", hr);
289 
290  /* load icon using predefined identifier */
291  hr = pLoadIconMetric(NULL, (LPWSTR)IDI_APPLICATION, LIM_SMALL, &icon);
292  ok(hr == S_OK, "Expected S_OK, got %x\n", hr);
293  res = GetIconInfo(icon, &info);
294  ok(res, "Failed to get icon info, error %u\n", GetLastError());
295  bytes = GetObjectA(info.hbmColor, sizeof(bmp), &bmp);
296  ok(bytes > 0, "Failed to get bitmap info for icon\n");
297  ok(bmp.bmWidth == GetSystemMetrics(SM_CXSMICON), "Wrong icon width %d\n", bmp.bmWidth);
298  ok(bmp.bmHeight == GetSystemMetrics(SM_CYSMICON), "Wrong icon height %d\n", bmp.bmHeight);
299  DestroyIcon(icon);
300 
301  hr = pLoadIconMetric(NULL, (LPWSTR)IDI_APPLICATION, LIM_LARGE, &icon);
302  ok(hr == S_OK, "Expected S_OK, got %x\n", hr);
303  res = GetIconInfo(icon, &info);
304  ok(res, "Failed to get icon info, error %u\n", GetLastError());
305  bytes = GetObjectA(info.hbmColor, sizeof(bmp), &bmp);
306  ok(bytes > 0, "Failed to get bitmap info for icon\n");
307  ok(bmp.bmWidth == GetSystemMetrics(SM_CXICON), "Wrong icon width %d\n", bmp.bmWidth);
308  ok(bmp.bmHeight == GetSystemMetrics(SM_CYICON), "Wrong icon height %d\n", bmp.bmHeight);
309  DestroyIcon(icon);
310 
311  hr = pLoadIconWithScaleDown(NULL, (LPWSTR)IDI_APPLICATION, 42, 42, &icon);
312  ok(hr == S_OK, "Expected S_OK, got %x\n", hr);
313  res = GetIconInfo(icon, &info);
314  ok(res, "Failed to get icon info, error %u\n", GetLastError());
315  bytes = GetObjectA(info.hbmColor, sizeof(bmp), &bmp);
316  ok(bytes > 0, "Failed to get bitmap info for icon\n");
317  ok(bmp.bmWidth == 42, "Wrong icon width %d\n", bmp.bmWidth);
318  ok(bmp.bmHeight == 42, "Wrong icon height %d\n", bmp.bmHeight);
319  DestroyIcon(icon);
320 
321  /* load icon from file */
322  hr = pLoadIconMetric(NULL, icon_path, LIM_SMALL, &icon);
323  ok(hr == S_OK, "Expected S_OK, got %x\n", hr);
324  res = GetIconInfo(icon, &info);
325  ok(res, "Failed to get icon info, error %u\n", GetLastError());
326  bytes = GetObjectA(info.hbmColor, sizeof(bmp), &bmp);
327  ok(bytes > 0, "Failed to get bitmap info for icon\n");
328  ok(bmp.bmWidth == GetSystemMetrics(SM_CXSMICON), "Wrong icon width %d\n", bmp.bmWidth);
329  ok(bmp.bmHeight == GetSystemMetrics(SM_CYSMICON), "Wrong icon height %d\n", bmp.bmHeight);
330  DestroyIcon(icon);
331 
332  hr = pLoadIconWithScaleDown(NULL, icon_path, 42, 42, &icon);
333  ok(hr == S_OK, "Expected S_OK, got %x\n", hr);
334  res = GetIconInfo(icon, &info);
335  ok(res, "Failed to get icon info, error %u\n", GetLastError());
336  bytes = GetObjectA(info.hbmColor, sizeof(bmp), &bmp);
337  ok(bytes > 0, "Failed to get bitmap info for icon\n");
338  ok(bmp.bmWidth == 42, "Wrong icon width %d\n", bmp.bmWidth);
339  ok(bmp.bmHeight == 42, "Wrong icon height %d\n", bmp.bmHeight);
340  DestroyIcon(icon);
341 
342  DeleteFileW(icon_path);
343  FreeLibrary(hinst);
344 }
345 
346 static void check_class( const char *name, int must_exist, UINT style, UINT ignore )
347 {
348  WNDCLASSA wc;
349 
350  if (GetClassInfoA( 0, name, &wc ))
351  {
352 todo_wine_if(strcmp(name, "Button") &&
353  strcmp(name, "ComboBox") &&
354  strcmp(name, "Edit") &&
355  strcmp(name, "Static") &&
356  strcmp(name, "ListBox") &&
357  strcmp(name, "ComboLBox"))
358  ok( !(~wc.style & style & ~ignore), "System class %s is missing bits %x (%08x/%08x)\n",
359  name, ~wc.style & style, wc.style, style );
360  ok( !(wc.style & ~style), "System class %s has extra bits %x (%08x/%08x)\n",
361  name, wc.style & ~style, wc.style, style );
362  ok( !wc.hInstance, "System class %s has hInstance %p\n", name, wc.hInstance );
363  }
364  else
365  ok( !must_exist, "System class %s does not exist\n", name );
366 }
367 
368 /* test styles of system classes */
369 static void test_builtin_classes(void)
370 {
371  /* check style bits */
374  check_class( "Edit", 1, CS_PARENTDC | CS_DBLCLKS | CS_GLOBALCLASS, 0 );
375  check_class( "ListBox", 1, CS_PARENTDC | CS_DBLCLKS | CS_GLOBALCLASS, 0 );
377  check_class( "Static", 1, CS_PARENTDC | CS_DBLCLKS | CS_GLOBALCLASS, 0 );
379 }
380 
382 {
383  ULONG_PTR ctx_cookie;
384  HANDLE hCtx;
385 
386  if(!InitFunctionPtrs())
387  return;
388 
389  test_GetPtrAW();
390  test_Alloc();
391 
392  if (!load_v6_module(&ctx_cookie, &hCtx))
393  return;
394 
397 
398  unload_v6_module(ctx_cookie, hCtx);
399 }
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:217
UINT style
Definition: startmenu.cpp:1386
static HICON
Definition: imagelist.c:84
namespace GUID const ADDRINFOEXW ADDRINFOEXW struct timeval OVERLAPPED LPLOOKUPSERVICE_COMPLETION_ROUTINE HANDLE * handle
Definition: sock.c:82
#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:2022
__wchar_t WCHAR
Definition: xmlstorage.h:180
static BOOL
Definition: misc.c:82
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:148
#define SM_CYSMICON
Definition: winuser.h:998
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:346
BOOL WINAPI Str_SetPtrW(LPWSTR *lppDest, LPCWSTR lpSrc)
Definition: string.c:236
static LPSTR
Definition: misc.c:33
static INT
Definition: misc.c:33
BOOL WINAPI GetIconInfo(_In_ HICON, _Out_ PICONINFO)
Definition: cursoricon.c:2014
DWORD DWORD
Definition: winlogon.h:75
static void test_builtin_classes(void)
Definition: misc.c:369
_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:55
static LPCSTR
Definition: misc.c:34
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:71
#define GENERIC_WRITE
Definition: nt_native.h:90
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
Definition: loader.c:111
BOOL WINAPI GetClassInfoA(_In_opt_ HINSTANCE, _In_ LPCSTR, _Out_ LPWNDCLASSA)
static PVOID ptr
Definition: dispmode.c:27
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
Definition: delete.c:39
#define SM_CXICON
Definition: winuser.h:957
static HMODULE hComctl32
Definition: misc.c:38
#define E_INVALIDARG
Definition: ddrawi.h:101
smooth NULL
Definition: ftsmooth.c:416
HBITMAP hbmColor
Definition: winuser.h:3075
#define ok(value,...)
Definition: CComObject.cpp:34
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 todo_wine_if(is_todo)
Definition: test.h:155
#define CS_VREDRAW
Definition: winuser.h:653
IMemAllocator * pAlloc
Definition: strmbase.h:226
#define FreeLibrary(x)
Definition: compat.h:405
INT WINAPI Str_GetPtrA(LPCSTR, LPSTR, INT)
Definition: string.c:136
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:381
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:997
HANDLE HINSTANCE
Definition: typedefs.h:75
#define SM_CYICON
Definition: winuser.h:958
#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:180
#define GENERIC_READ
Definition: compat.h:124
#define CS_DBLCLKS
Definition: winuser.h:646
static void test_LoadIconWithScaleDown(void)
Definition: misc.c:203
#define WINAPI
Definition: msvc.h:20
static BOOL InitFunctionPtrs(void)
Definition: misc.c:59
static void test_GetPtrAW(void)
Definition: misc.c:82
#define broken(x)
Definition: _sntprintf.h:21
INT WINAPI Str_GetPtrW(LPCWSTR, LPWSTR, INT)
Definition: string.c:204
UINT style
Definition: winuser.h:3111
#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:29
HINSTANCE hInstance
Definition: winuser.h:3115
Definition: bl.h:1331
#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:36
#define CreateFileW
Definition: compat.h:400
HANDLE HMODULE
Definition: typedefs.h:75
Definition: name.c:36
GLuint res
Definition: glext.h:9613
char * strcpy(char *DstString, const char *SrcString)
Definition: utclib.c:388
static LPWSTR
Definition: misc.c:35
static PVOID
Definition: misc.c:50
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469
DWORD size
Definition: misc.c:596
static HINSTANCE hinst
Definition: edit.c:551
#define GetProcAddress(x, y)
Definition: compat.h:410
static char testicon_data[]
Definition: misc.c:40
GLfloat GLfloat p
Definition: glext.h:8902
#define COMCTL32_GET_PROC(ordinal, func)
Definition: misc.c:52
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