ReactOS  0.4.15-dev-3017-g1d9542d
SubclassWindow.cpp File Reference
#include "atltest.h"
#include <atlbase.h>
#include <atlwin.h>
Include dependency graph for SubclassWindow.cpp:

Go to the source code of this file.

Classes

class  CMyCtrl1
 
class  CMyCtrl2
 

Macros

#define ATLASSUME(x)
 
#define ATLASSERT(x)
 
#define INVALID_HWND   ((HWND)(ULONG_PTR)0xDEADBEEF)
 

Functions

static HWND MyCreateWindow (DWORD style)
 
static LRESULT CALLBACK MyWindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
 START_TEST (SubclassWindow)
 

Variables

static BOOL s_flag = TRUE
 

Macro Definition Documentation

◆ ATLASSERT

#define ATLASSERT (   x)
Value:
do { \
trace("ATLASSERT(%s) %s.\n", #x, ((x) ? "success" : "failure")); \
} while (0)
GLint GLint GLint GLint GLint x
Definition: gl.h:1548

Definition at line 18 of file SubclassWindow.cpp.

◆ ATLASSUME

#define ATLASSUME (   x)
Value:
do { \
trace("ATLASSUME(%s) %s.\n", #x, ((x) ? "success" : "failure")); \
} while (0)
GLint GLint GLint GLint GLint x
Definition: gl.h:1548

Definition at line 15 of file SubclassWindow.cpp.

◆ INVALID_HWND

#define INVALID_HWND   ((HWND)(ULONG_PTR)0xDEADBEEF)

Definition at line 29 of file SubclassWindow.cpp.

Function Documentation

◆ MyCreateWindow()

static HWND MyCreateWindow ( DWORD  style)
static

Definition at line 79 of file SubclassWindow.cpp.

80 {
81  return CreateWindowW(L"EDIT", NULL, style,
82  CW_USEDEFAULT, CW_USEDEFAULT, 100, 100,
84 }
#define CreateWindowW(a, b, c, d, e, f, g, h, i, j, k)
Definition: winuser.h:4291
#define CW_USEDEFAULT
Definition: winuser.h:225
static const WCHAR L[]
Definition: oid.c:1250
#define NULL
Definition: types.h:112
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
Definition: loader.c:838
Arabic default style
Definition: afstyles.h:93

Referenced by START_TEST().

◆ MyWindowProc()

static LRESULT CALLBACK MyWindowProc ( HWND  hwnd,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 87 of file SubclassWindow.cpp.

88 {
89  return 0;
90 }

Referenced by START_TEST().

◆ START_TEST()

START_TEST ( SubclassWindow  )

Definition at line 92 of file SubclassWindow.cpp.

93 {
95  HWND hwnd1, hwnd2;
96  WNDPROC fn1, fn2;
97  BOOL b;
98  trace("DefWindowProcA == %p\n", DefWindowProcA);
99  trace("DefWindowProcW == %p\n", DefWindowProcW);
100  trace("MyWindowProc == %p\n", MyWindowProc);
101 
102  //
103  // Ctrl1
104  //
105  {
106  CMyCtrl1 Ctrl1;
107  s_flag = TRUE; // "EDIT"
108  hwnd1 = MyCreateWindow(style);
109  ok(hwnd1 != NULL, "hwnd1 was NULL\n");
110  fn1 = Ctrl1.m_pfnSuperWindowProc;
111  ok(fn1 == DefWindowProc, "fn1 was %p\n", fn1);
112  b = Ctrl1.SubclassWindow(hwnd1);
113  ok_int(b, TRUE);
114  ok(Ctrl1.m_hWnd == hwnd1, "Ctrl1.m_hWnd was %p\n", Ctrl1.m_hWnd);
115  fn1 = Ctrl1.m_pfnSuperWindowProc;
116  ok(fn1 != DefWindowProc, "fn1 was %p\n", fn1);
117  hwnd2 = Ctrl1.UnsubclassWindow();
118  ok(hwnd1 == hwnd2, "hwnd1 != hwnd2\n");
119  fn2 = Ctrl1.m_pfnSuperWindowProc;
120  ok(fn1 != fn2, "fn1 == fn2\n");
121  ok(fn2 == DefWindowProc, "fn2 was %p\n", fn2);
122  DestroyWindow(hwnd2);
123  ok(Ctrl1.m_hWnd == NULL, "hwnd != NULL\n");
124  }
125 
126  {
127  CMyCtrl1 Ctrl1;
128  s_flag = TRUE; // "EDIT"
129  hwnd1 = MyCreateWindow(style);
130  ok(hwnd1 != NULL, "hwnd1 was NULL\n");
131  fn1 = Ctrl1.m_pfnSuperWindowProc;
132  ok(fn1 == DefWindowProc, "fn1 was %p\n", fn1);
133  b = Ctrl1.SubclassWindow(hwnd1);
134  ok_int(b, TRUE);
135  ok(Ctrl1.m_hWnd == hwnd1, "Ctrl1.m_hWnd was %p\n", Ctrl1.m_hWnd);
136  fn1 = Ctrl1.m_pfnSuperWindowProc;
137  ok(fn1 != DefWindowProc, "fn1 was %p\n", fn1);
138  DestroyWindow(hwnd1); // destroy now
139  hwnd2 = Ctrl1.UnsubclassWindow();
140  ok(hwnd2 == NULL, "hwnd2 was %p\n", hwnd2);
141  fn2 = Ctrl1.m_pfnSuperWindowProc;
142  ok(fn2 == fn1, "fn2 was %p\n", fn2);
143  DestroyWindow(hwnd2);
144  ok(Ctrl1.m_hWnd == NULL, "hwnd != NULL\n");
145  }
146 
147  {
148  CMyCtrl1 Ctrl1;
149  s_flag = FALSE; // "STATIC"
150  hwnd1 = MyCreateWindow(style);
151  ok(hwnd1 != NULL, "hwnd1 was NULL\n");
152  fn1 = Ctrl1.m_pfnSuperWindowProc;
153  ok(fn1 == DefWindowProc, "fn1 was %p\n", fn1);
154  b = Ctrl1.SubclassWindow(hwnd1);
155  ok_int(b, TRUE);
156  ok(Ctrl1.m_hWnd == hwnd1, "Ctrl1.m_hWnd was %p\n", Ctrl1.m_hWnd);
157  fn1 = Ctrl1.m_pfnSuperWindowProc;
158  ok(fn1 != DefWindowProc, "fn1 was %p\n", fn1);
159  hwnd2 = Ctrl1.UnsubclassWindow();
160  ok(hwnd1 == hwnd2, "hwnd1 != hwnd2\n");
161  fn2 = Ctrl1.m_pfnSuperWindowProc;
162  ok(fn1 != fn2, "fn1 == fn2\n");
163  ok(fn2 == DefWindowProc, "fn2 was %p\n", fn2);
164  DestroyWindow(hwnd2);
165  ok(Ctrl1.m_hWnd == NULL, "hwnd != NULL\n");
166  }
167 
168  {
169  CMyCtrl1 Ctrl1;
170  s_flag = FALSE; // "STATIC"
171  hwnd1 = MyCreateWindow(style);
172  ok(hwnd1 != NULL, "hwnd1 was NULL\n");
173  fn1 = Ctrl1.m_pfnSuperWindowProc;
174  ok(fn1 == DefWindowProc, "fn1 was %p\n", fn1);
175  b = Ctrl1.SubclassWindow(hwnd1);
176  ok_int(b, TRUE);
177  ok(Ctrl1.m_hWnd == hwnd1, "Ctrl1.m_hWnd was %p\n", Ctrl1.m_hWnd);
178  fn1 = Ctrl1.m_pfnSuperWindowProc;
179  ok(fn1 != DefWindowProc, "fn1 was %p\n", fn1);
180  DestroyWindow(hwnd1); // destroy now
181  hwnd2 = Ctrl1.UnsubclassWindow();
182  ok(hwnd2 == NULL, "hwnd2 was %p\n", hwnd2);
183  fn2 = Ctrl1.m_pfnSuperWindowProc;
184  ok(fn1 == fn2, "fn1 != fn2\n");
185  DestroyWindow(hwnd2);
186  ok(Ctrl1.m_hWnd == NULL, "hwnd != NULL\n");
187  }
188 
189  {
190  CMyCtrl1 Ctrl1;
191  s_flag = TRUE; // "EDIT"
192  hwnd1 = MyCreateWindow(style);
193  ok(hwnd1 != NULL, "hwnd1 was NULL\n");
194  fn1 = Ctrl1.m_pfnSuperWindowProc;
195  ok(fn1 == DefWindowProc, "fn1 was %p\n", fn1);
196  b = Ctrl1.SubclassWindow(hwnd1);
197  ok_int(b, TRUE);
198  ok(Ctrl1.m_hWnd == hwnd1, "Ctrl1.m_hWnd was %p\n", Ctrl1.m_hWnd);
199  Ctrl1.m_pfnSuperWindowProc = MyWindowProc;
200  hwnd2 = Ctrl1.UnsubclassWindow();
201  ok(hwnd1 == hwnd2, "hwnd1 != hwnd2\n");
202  fn2 = Ctrl1.m_pfnSuperWindowProc;
203  ok(fn1 == fn2, "fn2 was %p\n", fn2);
204  ok(fn2 == DefWindowProc, "fn2 was %p\n", fn2);
205  DestroyWindow(hwnd2);
206  ok(Ctrl1.m_hWnd == NULL, "hwnd != NULL\n");
207  }
208 
209  //
210  // Ctrl2 (Not Forced)
211  //
212  {
213  CMyCtrl2 Ctrl2;
214  s_flag = TRUE; // "EDIT"
215  hwnd1 = MyCreateWindow(style);
216  ok(hwnd1 != NULL, "hwnd1 was NULL\n");
217  fn1 = Ctrl2.m_pfnSuperWindowProc;
218  ok(fn1 == DefWindowProc, "fn1 was %p\n", fn1);
219  b = Ctrl2.SubclassWindow(hwnd1);
220  ok_int(b, TRUE);
221  ok(Ctrl2.m_hWnd == hwnd1, "Ctrl2.m_hWnd was %p\n", Ctrl2.m_hWnd);
222  fn1 = Ctrl2.m_pfnSuperWindowProc;
223  ok(fn1 != DefWindowProc, "fn1 was %p\n", fn1);
224  hwnd2 = Ctrl2.UnsubclassWindow(FALSE);
225  ok(hwnd1 == hwnd2, "hwnd1 != hwnd2\n");
226  fn2 = Ctrl2.m_pfnSuperWindowProc;
227  ok(fn1 != fn2, "fn1 == fn2\n");
228  ok(fn2 == DefWindowProc, "fn2 was %p\n", fn2);
229  DestroyWindow(hwnd2);
230  ok(Ctrl2.m_hWnd == NULL, "Ctrl2.m_hWnd was %p\n", Ctrl2.m_hWnd);
231  }
232 
233  {
234  CMyCtrl2 Ctrl2;
235  s_flag = TRUE; // "EDIT"
236  hwnd1 = MyCreateWindow(style);
237  ok(hwnd1 != NULL, "hwnd1 was NULL\n");
238  fn1 = Ctrl2.m_pfnSuperWindowProc;
239  ok(fn1 == DefWindowProc, "fn1 was %p\n", fn1);
240  b = Ctrl2.SubclassWindow(hwnd1);
241  ok_int(b, TRUE);
242  ok(Ctrl2.m_hWnd == hwnd1, "Ctrl2.m_hWnd was %p\n", Ctrl2.m_hWnd);
243  fn1 = Ctrl2.m_pfnSuperWindowProc;
244  ok(fn1 != DefWindowProc, "fn1 was %p\n", fn1);
245  DestroyWindow(hwnd1); // destroy now
246  hwnd2 = Ctrl2.UnsubclassWindow(FALSE);
247  ok(hwnd2 == NULL, "hwnd2 was %p\n", hwnd2);
248  fn2 = Ctrl2.m_pfnSuperWindowProc;
249  ok(fn1 == fn2, "fn1 == fn2\n");
250  ok(Ctrl2.m_hWnd == NULL, "Ctrl2.m_hWnd was %p\n", Ctrl2.m_hWnd);
251  DestroyWindow(hwnd2);
252  ok(Ctrl2.m_hWnd == NULL, "Ctrl2.m_hWnd was %p\n", Ctrl2.m_hWnd);
253  }
254 
255  {
256  CMyCtrl2 Ctrl2;
257  s_flag = FALSE; // "STATIC"
258  hwnd1 = MyCreateWindow(style);
259  ok(hwnd1 != NULL, "hwnd1 was NULL\n");
260  fn1 = Ctrl2.m_pfnSuperWindowProc;
261  ok(fn1 == DefWindowProc, "fn1 was %p\n", fn1);
262  b = Ctrl2.SubclassWindow(hwnd1);
263  ok_int(b, TRUE);
264  ok(Ctrl2.m_hWnd == hwnd1, "Ctrl2.m_hWnd was %p\n", Ctrl2.m_hWnd);
265  fn1 = Ctrl2.m_pfnSuperWindowProc;
266  ok(fn1 != DefWindowProc, "fn1 was %p\n", fn1);
267  hwnd2 = Ctrl2.UnsubclassWindow(FALSE);
268  ok(hwnd1 == hwnd2, "hwnd1 != hwnd2\n");
269  fn2 = Ctrl2.m_pfnSuperWindowProc;
270  ok(fn1 != fn2, "fn1 == fn2\n");
271  ok(fn2 == DefWindowProc, "fn2 was %p\n", fn2);
272  ok(Ctrl2.m_hWnd == NULL, "Ctrl2.m_hWnd was %p\n", Ctrl2.m_hWnd);
273  DestroyWindow(hwnd2);
274  ok(Ctrl2.m_hWnd == NULL, "Ctrl2.m_hWnd was %p\n", Ctrl2.m_hWnd);
275  }
276 
277  {
278  CMyCtrl2 Ctrl2;
279  s_flag = FALSE; // "STATIC"
280  hwnd1 = MyCreateWindow(style);
281  ok(hwnd1 != NULL, "hwnd1 was NULL\n");
282  fn1 = Ctrl2.m_pfnSuperWindowProc;
283  ok(fn1 == DefWindowProc, "fn1 was %p\n", fn1);
284  b = Ctrl2.SubclassWindow(hwnd1);
285  ok_int(b, TRUE);
286  ok(Ctrl2.m_hWnd == hwnd1, "Ctrl2.m_hWnd was %p\n", Ctrl2.m_hWnd);
287  fn1 = Ctrl2.m_pfnSuperWindowProc;
288  ok(fn1 != DefWindowProc, "fn1 was %p\n", fn1);
289  DestroyWindow(hwnd1); // destroy now
290  hwnd2 = Ctrl2.UnsubclassWindow(FALSE);
291  ok(hwnd2 == NULL, "hwnd2 was %p\n", hwnd2);
292  fn2 = Ctrl2.m_pfnSuperWindowProc;
293  ok(fn2 != DefWindowProc, "fn2 was %p\n", fn2); // ntdll.dll!NtdllEditWndProc_W
294  ok(Ctrl2.m_hWnd == NULL, "Ctrl2.m_hWnd was %p\n", Ctrl2.m_hWnd);
295  DestroyWindow(hwnd2);
296  ok(Ctrl2.m_hWnd == NULL, "Ctrl2.m_hWnd was %p\n", Ctrl2.m_hWnd);
297  }
298 
299  {
300  CMyCtrl2 Ctrl2;
301  s_flag = TRUE; // "EDIT"
302  hwnd1 = MyCreateWindow(style);
303  ok(hwnd1 != NULL, "hwnd1 was NULL\n");
304  fn1 = Ctrl2.m_pfnSuperWindowProc;
305  ok(fn1 == DefWindowProc, "fn1 was %p\n", fn1);
306  b = Ctrl2.SubclassWindow(hwnd1);
307  ok_int(b, TRUE);
308  ok(Ctrl2.m_hWnd == hwnd1, "Ctrl2.m_hWnd was %p\n", Ctrl2.m_hWnd);
309  Ctrl2.m_pfnSuperWindowProc = MyWindowProc;
310  hwnd2 = Ctrl2.UnsubclassWindow(FALSE);
311  ok(hwnd1 == hwnd2, "hwnd1 != hwnd2\n");
312  fn2 = Ctrl2.m_pfnSuperWindowProc;
313  ok(fn2 == DefWindowProc, "fn2 was %p\n", fn2);
314  ok(Ctrl2.m_hWnd == NULL, "hwnd != NULL\n");
315  DestroyWindow(hwnd2);
316  ok(Ctrl2.m_hWnd == NULL, "hwnd != NULL\n");
317  }
318 
319  //
320  // Ctrl2 (Forced)
321  //
322  {
323  CMyCtrl2 Ctrl2;
324  s_flag = TRUE; // "EDIT"
325  hwnd1 = MyCreateWindow(style);
326  ok(hwnd1 != NULL, "hwnd1 was NULL\n");
327  fn1 = Ctrl2.m_pfnSuperWindowProc;
328  ok(fn1 == DefWindowProc, "fn1 was %p\n", fn1);
329  b = Ctrl2.SubclassWindow(hwnd1);
330  ok_int(b, TRUE);
331  ok(Ctrl2.m_hWnd == hwnd1, "Ctrl2.m_hWnd was %p\n", Ctrl2.m_hWnd);
332  fn1 = Ctrl2.m_pfnSuperWindowProc;
333  ok(fn1 != DefWindowProc, "fn1 was %p\n", fn1);
334  hwnd2 = Ctrl2.UnsubclassWindow(TRUE);
335  ok(hwnd1 == hwnd2, "hwnd1 != hwnd2\n");
336  fn2 = Ctrl2.m_pfnSuperWindowProc;
337  ok(fn1 != fn2, "fn1 == fn2\n");
338  ok(fn2 == DefWindowProc, "fn2 was %p\n", fn2);
339  ok(Ctrl2.m_hWnd == NULL, "Ctrl2.m_hWnd was %p\n", Ctrl2.m_hWnd);
340  DestroyWindow(hwnd2);
341  ok(Ctrl2.m_hWnd == NULL, "Ctrl2.m_hWnd was %p\n", Ctrl2.m_hWnd);
342  }
343 
344  {
345  CMyCtrl2 Ctrl2;
346  s_flag = TRUE; // "EDIT"
347  hwnd1 = MyCreateWindow(style);
348  ok(hwnd1 != NULL, "hwnd1 was NULL\n");
349  fn1 = Ctrl2.m_pfnSuperWindowProc;
350  ok(fn1 == DefWindowProc, "fn1 was %p\n", fn1);
351  b = Ctrl2.SubclassWindow(hwnd1);
352  ok_int(b, TRUE);
353  ok(Ctrl2.m_hWnd == hwnd1, "Ctrl2.m_hWnd was %p\n", Ctrl2.m_hWnd);
354  fn1 = Ctrl2.m_pfnSuperWindowProc;
355  ok(fn1 != DefWindowProc, "fn1 was %p\n", fn1);
356  DestroyWindow(hwnd1); // destroy now
357  hwnd2 = Ctrl2.UnsubclassWindow(TRUE);
358  ok(hwnd2 == NULL, "hwnd2 was %p\n", hwnd2);
359  fn2 = Ctrl2.m_pfnSuperWindowProc;
360  ok(fn2 == DefWindowProc, "fn2 was %p\n", fn2);
361  ok(Ctrl2.m_hWnd == NULL, "Ctrl2.m_hWnd was %p\n", Ctrl2.m_hWnd);
362  DestroyWindow(hwnd2);
363  ok(Ctrl2.m_hWnd == NULL, "Ctrl2.m_hWnd was %p\n", Ctrl2.m_hWnd);
364  }
365 
366  {
367  CMyCtrl2 Ctrl2;
368  s_flag = FALSE; // "STATIC"
369  hwnd1 = MyCreateWindow(style);
370  ok(hwnd1 != NULL, "hwnd1 was NULL\n");
371  fn1 = Ctrl2.m_pfnSuperWindowProc;
372  ok(fn1 == DefWindowProc, "fn1 was %p\n", fn1);
373  b = Ctrl2.SubclassWindow(hwnd1);
374  ok_int(b, TRUE);
375  ok(Ctrl2.m_hWnd == hwnd1, "Ctrl2.m_hWnd was %p\n", Ctrl2.m_hWnd);
376  fn1 = Ctrl2.m_pfnSuperWindowProc;
377  ok(fn1 != DefWindowProc, "fn1 was %p\n", fn1);
378  hwnd2 = Ctrl2.UnsubclassWindow(TRUE);
379  ok(hwnd1 == hwnd2, "hwnd1 != hwnd2\n");
380  fn2 = Ctrl2.m_pfnSuperWindowProc;
381  ok(fn1 != fn2, "fn1 == fn2\n");
382  ok(fn2 == DefWindowProc, "fn2 was %p\n", fn2);
383  ok(Ctrl2.m_hWnd == NULL, "Ctrl2.m_hWnd was %p\n", Ctrl2.m_hWnd);
384  DestroyWindow(hwnd2);
385  ok(Ctrl2.m_hWnd == NULL, "Ctrl2.m_hWnd was %p\n", Ctrl2.m_hWnd);
386  }
387 
388  {
389  CMyCtrl2 Ctrl2;
390  s_flag = FALSE; // "STATIC"
391  hwnd1 = MyCreateWindow(style);
392  ok(hwnd1 != NULL, "hwnd1 was NULL\n");
393  fn1 = Ctrl2.m_pfnSuperWindowProc;
394  ok(fn1 == DefWindowProc, "fn1 was %p\n", fn1);
395  b = Ctrl2.SubclassWindow(hwnd1);
396  ok_int(b, TRUE);
397  ok(Ctrl2.m_hWnd == hwnd1, "Ctrl2.m_hWnd was %p\n", Ctrl2.m_hWnd);
398  fn1 = Ctrl2.m_pfnSuperWindowProc;
399  ok(fn1 != DefWindowProc, "fn1 was %p\n", fn1);
400  DestroyWindow(hwnd1); // destroy now
401  hwnd2 = Ctrl2.UnsubclassWindow(TRUE);
402  ok(hwnd2 == NULL, "hwnd2 was %p\n", hwnd2);
403  fn2 = Ctrl2.m_pfnSuperWindowProc;
404  ok(fn2 == DefWindowProc, "fn2 was %p\n", fn2);
405  ok(Ctrl2.m_hWnd == NULL, "Ctrl2.m_hWnd was %p\n", Ctrl2.m_hWnd);
406  DestroyWindow(hwnd2);
407  ok(Ctrl2.m_hWnd == NULL, "Ctrl2.m_hWnd was %p\n", Ctrl2.m_hWnd);
408  }
409 
410  {
411  CMyCtrl2 Ctrl2;
412  s_flag = TRUE; // "EDIT"
413  hwnd1 = MyCreateWindow(style);
414  ok(hwnd1 != NULL, "hwnd1 was NULL\n");
415  fn1 = Ctrl2.m_pfnSuperWindowProc;
416  ok(fn1 == DefWindowProc, "fn1 was %p\n", fn1);
417  b = Ctrl2.SubclassWindow(hwnd1);
418  ok_int(b, TRUE);
419  ok(Ctrl2.m_hWnd == hwnd1, "Ctrl2.m_hWnd was %p\n", Ctrl2.m_hWnd);
420  Ctrl2.m_pfnSuperWindowProc = MyWindowProc;
421  hwnd2 = Ctrl2.UnsubclassWindow(TRUE);
422  ok(hwnd1 == hwnd2, "hwnd1 != hwnd2\n");
423  fn2 = Ctrl2.m_pfnSuperWindowProc;
424  ok(fn2 == DefWindowProc, "fn2 was %p\n", fn2);
425  ok(Ctrl2.m_hWnd == NULL, "hwnd != NULL\n");
426  DestroyWindow(hwnd2);
427  ok(Ctrl2.m_hWnd == NULL, "hwnd != NULL\n");
428  }
429 }
#define WS_POPUPWINDOW
Definition: pedump.c:638
static HWND MyCreateWindow(DWORD style)
static LRESULT CALLBACK MyWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
#define TRUE
Definition: types.h:120
#define ES_MULTILINE
Definition: pedump.c:667
BOOL WINAPI DestroyWindow(_In_ HWND)
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define FALSE
Definition: types.h:117
unsigned int BOOL
Definition: ntddk_ex.h:94
#define ok_int(expression, result)
Definition: atltest.h:134
#define b
Definition: ke_i.h:79
#define DefWindowProc
Definition: ros2win.h:31
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
#define trace
Definition: atltest.h:70
unsigned long DWORD
Definition: ntddk_ex.h:95
LRESULT WINAPI DefWindowProcA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
Definition: winuser.h:2881
static BOOL s_flag
#define ok(value,...)
Definition: atltest.h:57
#define NULL
Definition: types.h:112
Arabic default style
Definition: afstyles.h:93

Variable Documentation

◆ s_flag

BOOL s_flag = TRUE
static