ReactOS 0.4.15-dev-8339-g4028de8
mainwnd.c
Go to the documentation of this file.
1#include "precomp.h"
2
3static const TCHAR szMainWndClass[] = TEXT("WordPadMainWndClass");
4
5#define ID_MDI_FIRSTCHILD 50000
6#define ID_MDI_WINDOWMENU 5
7
8/* menu hints */
9static const MENU_HINT MainMenuHintTable[] = {
10 /* File Menu */
22
23 /* Window Menu */
29};
30
39};
40
41
42static VOID
44{
45
46}
47
48static VOID CALLBACK
50 WORD cx,
51 WORD cy)
52{
53 RECT rcClient = {0};
54 RECT rcStatus = {0};
55 HDWP dwp;
57
58 /* Calculate the MDI client rectangle */
59 rcClient.right = cx;
60 rcClient.bottom = cy;
61
62 if (Info->hStatus != NULL)
63 {
64 GetWindowRect(Info->hStatus,
65 &rcStatus);
66 rcClient.bottom -= (rcStatus.bottom - rcStatus.top);
67 }
68
69
70 dwp = BeginDeferWindowPos(2);
71 if (dwp != NULL)
72 {
73 /* Update the MDI client */
74 if (Info->hMdiClient != NULL)
75 {
76 dwp = DeferWindowPos(dwp,
77 Info->hMdiClient,
78 NULL,
79 rcClient.left,
80 rcClient.top,
81 rcClient.right - rcClient.left,
82 rcClient.bottom - rcClient.top,
84 if (dwp == NULL)
85 return;
86 }
87
88 /* Update the status bar */
89 if (Info->hStatus != NULL)
90 {
91 dwp = DeferWindowPos(dwp,
92 Info->hStatus,
93 NULL,
94 0,
95 cy - (rcStatus.bottom - rcStatus.top),
96 cx,
97 rcStatus.bottom - rcStatus.top,
99 if (dwp == NULL)
100 return;
101 }
102
104 }
105}
106
107static VOID
109{
111 INT statwidths[] = {110, -1};
112
113 /* FIXME - create controls and initialize the application */
114
115 /* create the status bar */
116 Info->hStatus = CreateWindowEx(0,
118 NULL,
120 0,
121 0,
122 0,
123 0,
124 Info->hSelf,
126 hInstance,
127 NULL);
128
129 if (Info->hStatus != NULL)
130 SendMessage(Info->hStatus,
132 sizeof(statwidths)/sizeof(int),
133 (LPARAM)statwidths);
134
135 /* create the MDI client window */
136 ccs.hWindowMenu = GetSubMenu(GetMenu(Info->hSelf),
140 TEXT("MDICLIENT"),
141 NULL,
143 0,
144 0,
145 0,
146 0,
147 Info->hSelf,
148 NULL,
149 hInstance,
150 &ccs);
151
153
154 /* initialize file open/save structure */
155 FileInitialize(Info->hSelf);
156}
157
158static VOID
160 WORD CmdId,
161 HWND hControl)
162{
163 static TCHAR szFileName[MAX_PATH];
164 static TCHAR szDocumentName[MAX_PATH];
165
166 UNREFERENCED_PARAMETER(hControl);
167
168 switch (CmdId)
169 {
170 case ID_NEW:
171 {
172 OPEN_EDIT_INFO OpenInfo;
173 INT Ret;
174
175 OpenInfo.CreateNew = TRUE;
176
179 &OpenInfo.lpDocumentName,
180 ++Info->ImagesCreated);
181
182 Ret = DialogBox(hInstance,
184 Info->hSelf,
186 if (Ret != -1)
187 {
188 OpenInfo.DocType = Ret;
189
191 &OpenInfo);
192 }
193
194 }
195 break;
196
197 case ID_BOLD:
198 MessageBox(NULL, _T("Bingo"), NULL, 0);
199 break;
200
201 case ID_OPEN:
202 {
203 OPEN_EDIT_INFO OpenInfo;
204
205 if (DoOpenFile(Info->hSelf,
206 szFileName, /* full file path */
207 szDocumentName)) /* file name */
208 {
209 OpenInfo.CreateNew = FALSE;
210
211 OpenInfo.lpDocumentPath = szFileName;
212 OpenInfo.lpDocumentName = szDocumentName;
213
215 &OpenInfo);
216 }
217
218 }
219 break;
220
221 case ID_EXIT:
222 SendMessage(Info->hSelf,
223 WM_CLOSE,
224 0,
225 0);
226 break;
227
228 /* Window Menu */
230 SendMessage(Info->hMdiClient,
233 0);
234 break;
235
237 SendMessage(Info->hMdiClient,
240 0);
241 break;
242
244 SendMessage(Info->hMdiClient,
246 0,
247 0);
248 break;
249
251 SendMessage(Info->hMdiClient,
253 0,
254 0);
255 break;
256
257 case ID_WINDOW_NEXT:
258 SendMessage(Info->hMdiClient,
260 0,
261 0);
262 break;
263
264 /* Help Menu */
265 case ID_ABOUT:
268 Info->hSelf,
270 break;
271 }
272}
273
274static VOID
276{
277 /* FIXME - cleanup allocated resources */
278}
279
280
281static VOID
283{
284 if (Info->hStatus != NULL)
285 {
286 SendMessage(Info->hStatus,
287 SB_SIMPLE,
288 (WPARAM)Info->InMenuLoop,
289 0);
290 }
291}
292
293static BOOL
295 WORD CmdId,
296 const MENU_HINT *HintArray,
297 DWORD HintsCount,
298 UINT DefHintId)
299{
300 BOOL Found = FALSE;
301 const MENU_HINT *LastHint;
302 UINT HintId = DefHintId;
303
304 LastHint = HintArray + HintsCount;
305 while (HintArray != LastHint)
306 {
307 if (HintArray->CmdId == CmdId)
308 {
309 HintId = HintArray->HintId;
310 Found = TRUE;
311 break;
312 }
313 HintArray++;
314 }
315
316 StatusBarLoadString(Info->hStatus,
318 hInstance,
319 HintId);
320
321 return Found;
322}
323
324static LRESULT CALLBACK
326 UINT uMsg,
329{
331 LRESULT Ret = 0;
332 static RECT wndOldPos;
333
334 /* Get the window context */
337 if (Info == NULL && uMsg != WM_CREATE)
338 {
339 goto HandleDefaultMessage;
340 }
341
342 switch (uMsg)
343 {
344 case WM_CREATE:
345 {
346 Info = (PMAIN_WND_INFO)(((LPCREATESTRUCT)lParam)->lpCreateParams);
347
348 /* Initialize the main window context */
349 Info->hSelf = hwnd;
350
353 (LONG_PTR)Info);
354
356
357 /* Show the window */
359 Info->nCmdShow);
360 /* get the windows position */
362 &wndOldPos);
363
364 break;
365 }
366
367 case WM_SIZE:
368 {
370 LOWORD(lParam),
371 HIWORD(lParam));
372 /* NOTE - do *not* forward this message to DefFrameProc! Otherwise the MDI client
373 will attempt to resize itself */
374
375 break;
376 }
377
378 case WM_MOVE:
379 {
380
381 }
382 break;
383
384 case WM_NOTIFY:
385 {
386
387 /* FIXME - handle other notifications */
388 break;
389 }
390
391 case WM_COMMAND:
392 {
394 LOWORD(wParam),
395 (HWND)lParam);
396 goto HandleDefaultMessage;
397 }
398
399 case WM_MENUSELECT:
400 {
401 if (Info->hStatus != NULL)
402 {
404 LOWORD(wParam),
406 sizeof(MainMenuHintTable) / sizeof(MainMenuHintTable[0]),
408 {
410 LOWORD(wParam),
412 sizeof(SystemMenuHintTable) / sizeof(SystemMenuHintTable[0]),
414 }
415 }
416 break;
417 }
418
419 case WM_ENTERMENULOOP:
420 {
421 Info->InMenuLoop = TRUE;
423 break;
424 }
425
426 case WM_EXITMENULOOP:
427 {
428 Info->InMenuLoop = FALSE;
430 break;
431 }
432
433 case WM_CLOSE:
434 {
436 break;
437 }
438
439 case WM_ENABLE:
440 {
441
442 goto HandleDefaultMessage;
443 }
444
445 case WM_NCACTIVATE:
446 {
447
448 goto HandleDefaultMessage;
449 }
450
451 case WM_ACTIVATEAPP:
452 {
453
454 goto HandleDefaultMessage;
455 }
456
457 case WM_DESTROY:
458 {
460
461 /* FIXME: set the windows position in registry*/
462 //wndOldPos
463
465 0,
466 Info);
469 0);
470
471 /* Break the message queue loop */
473 break;
474 }
475
476 default:
477 {
478HandleDefaultMessage:
479 if (Info != NULL && Info->hMdiClient != NULL)
480 {
481 Ret = DefFrameProc(hwnd,
482 Info->hMdiClient,
483 uMsg,
484 wParam,
485 lParam);
486 }
487 else
488 {
489 Ret = DefWindowProc(hwnd,
490 uMsg,
491 wParam,
492 lParam);
493 }
494 break;
495 }
496 }
497
498 return Ret;
499}
500
503 PVOID *Info)
504{
505 MDI_EDITOR_TYPE EditorType;
506
507 if (MainWnd->ActiveEditor != NULL)
508 {
509 EditorType = *((PMDI_EDITOR_TYPE)MainWnd->ActiveEditor);
510 *Info = MainWnd->ActiveEditor;
511 }
512 else
513 {
514 EditorType = metUnknown;
515 *Info = NULL;
516 }
517
518 return EditorType;
519}
520
521VOID
523 HWND hDeactivate,
524 HWND hActivate)
525{
526 PMDI_EDITOR_TYPE EditorType;
527
528 /* FIXME - optimize light weight switching
529 when switching from and to an editor of same type */
530
531 if (hDeactivate != NULL)
532 {
533 EditorType = (PMDI_EDITOR_TYPE)GetWindowLongPtr(hDeactivate,
535 if (EditorType != NULL)
536 {
537 switch (*EditorType)
538 {
539 case metImageEditor:
541 FALSE);
542 break;
543
544 default:
545 break;
546 }
547
548 Info->ActiveEditor = NULL;
549 }
550 }
551
552 if (hActivate != NULL)
553 {
554 EditorType = (PMDI_EDITOR_TYPE)GetWindowLongPtr(hActivate,
556 if (EditorType != NULL)
557 {
558 Info->ActiveEditor = EditorType;
559
560 switch (*EditorType)
561 {
562 case metImageEditor:
564 TRUE);
565 break;
566
567 default:
568 break;
569 }
570 }
571 }
572}
573
574HWND
576 int nCmdShow)
577{
580
582 0,
583 sizeof(MAIN_WND_INFO));
584 if (Info != NULL)
585 {
587 sizeof(MAIN_WND_INFO));
588 Info->nCmdShow = nCmdShow;
589
590 /* FIXME - load the window position from the registry */
591
594 lpCaption,
600 NULL,
601 NULL,
602 hInstance,
603 Info);
604 if (hMainWnd == NULL)
605 {
607 0,
608 Info);
609 }
610 }
611
612 return hMainWnd;
613}
614
615BOOL
617 LPMSG lpMsg)
618{
620
621 /* Get the window context */
624 if (Info != NULL && Info->hMdiClient != NULL)
625 {
626 return TranslateMDISysAccel(Info->hMdiClient,
627 lpMsg);
628 }
629
630 return FALSE;
631}
632
633BOOL
635{
636 WNDCLASSEX wc = {0};
637
638 wc.cbSize = sizeof(WNDCLASSEX);
640 wc.hInstance = hInstance;
644 IDC_ARROW);
645 wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
651 16,
652 16,
653 LR_SHARED);
654
655 return RegisterClassEx(&wc) != (ATOM)0;
656}
657
658VOID
660{
662 hInstance);
663}
VOID FileInitialize(IN HWND hwnd)
Definition: opensave.c:13
static INT_PTR CALLBACK AboutDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
Definition: about.c:15
#define IDD_ABOUTBOX
Definition: resource.h:8
#define IDI_ICON
Definition: resource.h:5
#define ID_EXIT
Definition: resource.h:10
DWORD LoadAndFormatString(IN HINSTANCE hInstance, IN UINT uID, OUT LPTSTR *lpTarget,...)
Definition: misc.c:85
#define IDR_MAINMENU
Definition: resource.h:40
VOID UninitMainWindowImpl(VOID)
Definition: mainwnd.c:990
static BOOL InitMainWnd(PMAIN_WND_INFO Info)
Definition: mainwnd.c:334
static BOOL MainWndMenuHint(PMAIN_WND_INFO Info, WORD CmdId, const MENU_HINT *HintArray, DWORD HintsCount, UINT DefHintId)
Definition: mainwnd.c:81
static VOID CALLBACK MainWndResize(PMAIN_WND_INFO Info, WORD cx, WORD cy)
Definition: mainwnd.c:608
static const WCHAR szMainWndClass[]
Definition: mainwnd.c:15
static const MENU_HINT SystemMenuHintTable[]
Definition: mainwnd.c:70
BOOL InitMainWindowImpl(VOID)
Definition: mainwnd.c:964
static LRESULT CALLBACK MainWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
Definition: mainwnd.c:639
static VOID UpdateMainStatusBar(PMAIN_WND_INFO Info)
Definition: mainwnd.c:113
static const MENU_HINT MainMenuHintTable[]
Definition: mainwnd.c:40
static VOID MainWndCommand(PMAIN_WND_INFO Info, WORD CmdId, HWND hControl)
Definition: mainwnd.c:379
BOOL StatusBarLoadString(IN HWND hStatusBar, IN INT PartId, IN HINSTANCE hInstance, IN UINT uID)
Definition: misc.c:150
HANDLE ProcessHeap
Definition: servman.c:15
struct _MAIN_WND_INFO * PMAIN_WND_INFO
#define IDC_STATUSBAR
Definition: resource.h:12
#define IDS_HINT_SYS_MINIMIZE
Definition: resource.h:121
#define IDS_HINT_EXIT
Definition: resource.h:94
#define IDS_HINT_SYS_SIZE
Definition: resource.h:120
#define IDS_HINT_SYS_RESTORE
Definition: resource.h:118
#define IDS_HINT_BLANK
Definition: resource.h:92
#define IDS_HINT_SYS_MOVE
Definition: resource.h:119
#define IDS_HINT_SYS_MAXIMIZE
Definition: resource.h:122
#define ID_WINDOW_CASCADE
Definition: resource.h:76
HWND CreateMainWindow()
Definition: biditext.c:330
return Found
Definition: dirsup.c:1270
HINSTANCE hInstance
Definition: charmap.c:19
#define ID_ABOUT
Definition: charmap.c:17
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
static VOID DoOpenFile(PINFO pInfo)
Definition: connectdialog.c:34
WORD ATOM
Definition: dimm.idl:113
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define HeapAlloc
Definition: compat.h:733
#define MAX_PATH
Definition: compat.h:34
#define HeapFree(x, y, z)
Definition: compat.h:735
#define CALLBACK
Definition: compat.h:35
VOID SetEditorEnvironment(PEDIT_WND_INFO Info, BOOL Setup)
Definition: editwnd.c:117
BOOL CreateEditWindow(struct _MAIN_WND_INFO *MainWnd, POPEN_EDIT_INFO OpenInfo)
Definition: editwnd.c:132
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
unsigned short WORD
Definition: ntddk_ex.h:93
#define TEXT(s)
Definition: k32.h:26
HWND hMainWnd
Definition: magnifier.c:32
#define ID_MDI_FIRSTCHILD
Definition: precomp.h:97
#define ID_WINDOW_ARRANGE
Definition: resource.h:52
#define ID_WINDOW_NEXT
Definition: resource.h:51
#define ID_WINDOW_TILE_VERT
Definition: resource.h:49
#define ID_WINDOW_TILE_HORZ
Definition: resource.h:48
#define ID_NEW
Definition: resource.h:10
INT_PTR CALLBACK NewDocSelDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
Definition: dialogs.c:4
static VOID DestroyMainWnd(PMAIN_WND_INFO Info)
Definition: mainwnd.c:275
#define ID_MDI_WINDOWMENU
Definition: mainwnd.c:6
static VOID CreateToolbars(PMAIN_WND_INFO Info)
Definition: mainwnd.c:43
VOID MainWndSwitchEditorContext(PMAIN_WND_INFO Info, HWND hDeactivate, HWND hActivate)
Definition: mainwnd.c:522
BOOL MainWndTranslateMDISysAccel(HWND hwnd, LPMSG lpMsg)
Definition: mainwnd.c:616
MDI_EDITOR_TYPE MainWndGetCurrentEditor(PMAIN_WND_INFO MainWnd, PVOID *Info)
Definition: mainwnd.c:502
enum _MDI_EDITOR_TYPE MDI_EDITOR_TYPE
#define SB_SIMPLEID
Definition: precomp.h:15
@ metUnknown
Definition: precomp.h:33
@ metImageEditor
Definition: precomp.h:34
enum _MDI_EDITOR_TYPE * PMDI_EDITOR_TYPE
#define ID_PAGESETUP
Definition: resource.h:21
#define IDS_HINT_PAGESETUP
Definition: resource.h:57
#define IDS_HINT_NEW
Definition: resource.h:49
#define ID_BOLD
Definition: resource.h:30
#define ID_OPEN
Definition: resource.h:14
#define ID_PRINTPRE
Definition: resource.h:19
#define IDS_HINT_NEXT
Definition: resource.h:64
#define ID_BLANK
Definition: resource.h:36
#define IDS_HINT_ARRANGE
Definition: resource.h:63
#define IDS_HINT_PRINT
Definition: resource.h:55
#define IDS_HINT_SAVEAS
Definition: resource.h:54
#define IDD_NEWDOCSEL
Definition: resource.h:92
#define ID_CLOSE
Definition: resource.h:15
#define IDS_HINT_TILE_VERT
Definition: resource.h:62
#define IDS_HINT_CLOSE
Definition: resource.h:51
#define ID_CLOSEALL
Definition: resource.h:16
#define ID_SAVE
Definition: resource.h:17
#define ID_SAVEAS
Definition: resource.h:18
#define IDS_HINT_SAVE
Definition: resource.h:53
#define IDS_HINT_CASCADE
Definition: resource.h:60
#define IDS_DEFAULT_NAME
Definition: resource.h:8
#define IDS_HINT_TILE_HORZ
Definition: resource.h:61
#define IDS_HINT_OPEN
Definition: resource.h:50
#define IDS_HINT_CLOSEALL
Definition: resource.h:52
#define IDS_HINT_PRINTPRE
Definition: resource.h:56
static HICON
Definition: imagelist.c:84
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:63
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
unsigned int UINT
Definition: ndis.h:50
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
#define LOWORD(l)
Definition: pedump.c:82
#define WS_CHILD
Definition: pedump.c:617
#define WS_OVERLAPPEDWINDOW
Definition: pedump.c:637
#define WS_EX_ACCEPTFILES
Definition: pedump.c:648
#define WS_VSCROLL
Definition: pedump.c:627
#define WS_VISIBLE
Definition: pedump.c:620
#define WS_CLIPSIBLINGS
Definition: pedump.c:618
#define WS_HSCROLL
Definition: pedump.c:628
#define WS_CLIPCHILDREN
Definition: pedump.c:619
_Out_opt_ int _Out_opt_ int * cy
Definition: commctrl.h:586
#define SB_SIMPLE
Definition: commctrl.h:1958
_Out_opt_ int * cx
Definition: commctrl.h:585
#define CCS_NOPARENTALIGN
Definition: commctrl.h:2246
#define SB_SETPARTS
Definition: commctrl.h:1954
#define SBARS_SIZEGRIP
Definition: commctrl.h:1923
#define STATUSCLASSNAME
Definition: commctrl.h:1939
#define WM_NOTIFY
Definition: richedit.h:61
#define DefWindowProc
Definition: ros2win.h:31
#define DefFrameProc
Definition: ros2win.h:32
PVOID ActiveEditor
Definition: precomp.h:99
UINT HintId
Definition: precomp.h:90
WORD CmdId
Definition: precomp.h:89
UINT DocType
Definition: precomp.h:49
BOOL CreateNew
Definition: precomp.h:46
LPTSTR lpDocumentPath
Definition: precomp.h:50
LPTSTR lpDocumentName
Definition: precomp.h:52
HINSTANCE hInstance
Definition: winuser.h:3206
HCURSOR hCursor
Definition: winuser.h:3208
LPCSTR lpszMenuName
Definition: winuser.h:3210
HICON hIconSm
Definition: winuser.h:3212
UINT cbSize
Definition: winuser.h:3201
WNDPROC lpfnWndProc
Definition: winuser.h:3203
LPCSTR lpszClassName
Definition: winuser.h:3211
HICON hIcon
Definition: winuser.h:3207
HBRUSH hbrBackground
Definition: winuser.h:3209
LONG right
Definition: windef.h:308
LONG bottom
Definition: windef.h:309
LONG top
Definition: windef.h:307
LONG left
Definition: windef.h:306
#define GetWindowLongPtr
Definition: treelist.c:73
#define SetWindowLongPtr
Definition: treelist.c:70
#define GWLP_USERDATA
Definition: treelist.c:63
int32_t INT
Definition: typedefs.h:58
#define HIWORD(l)
Definition: typedefs.h:247
#define _T(x)
Definition: vfdio.h:22
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
Definition: wdfchildlist.h:690
#define ZeroMemory
Definition: winbase.h:1712
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
LONG_PTR LPARAM
Definition: windef.h:208
LONG_PTR LRESULT
Definition: windef.h:209
UINT_PTR WPARAM
Definition: windef.h:207
#define WM_MDITILE
Definition: winuser.h:1818
#define CreateWindowEx
Definition: winuser.h:5764
#define WM_CLOSE
Definition: winuser.h:1621
#define WM_ENABLE
Definition: winuser.h:1615
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
#define IMAGE_ICON
Definition: winuser.h:212
#define WM_MDICASCADE
Definition: winuser.h:1819
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
#define WM_CREATE
Definition: winuser.h:1608
__analysis_noreturn void WINAPI PostQuitMessage(_In_ int)
#define WM_SIZE
Definition: winuser.h:1611
#define WM_COMMAND
Definition: winuser.h:1740
#define IDC_ARROW
Definition: winuser.h:687
#define UnregisterClass
Definition: winuser.h:5870
#define WM_MDINEXT
Definition: winuser.h:1816
BOOL WINAPI EndDeferWindowPos(_In_ HDWP)
#define SC_SIZE
Definition: winuser.h:2584
#define WM_MDIICONARRANGE
Definition: winuser.h:1820
#define SC_MINIMIZE
Definition: winuser.h:2586
#define SC_NEXTWINDOW
Definition: winuser.h:2590
#define RegisterClassEx
Definition: winuser.h:5846
#define WM_NCACTIVATE
Definition: winuser.h:1688
#define WM_ENTERMENULOOP
Definition: winuser.h:1804
BOOL WINAPI TranslateMDISysAccel(_In_ HWND, _In_ LPMSG)
HMENU WINAPI GetSubMenu(_In_ HMENU, _In_ int)
#define LoadIcon
Definition: winuser.h:5822
#define SendMessage
Definition: winuser.h:5852
#define WS_EX_WINDOWEDGE
Definition: winuser.h:407
#define LoadCursor
Definition: winuser.h:5821
WNDCLASSEXA WNDCLASSEX
Definition: winuser.h:5728
#define WM_EXITMENULOOP
Definition: winuser.h:1805
#define SC_CLOSE
Definition: winuser.h:2592
#define SC_MOVE
Definition: winuser.h:2585
#define LR_SHARED
Definition: winuser.h:1100
#define CW_USEDEFAULT
Definition: winuser.h:225
#define LoadImage
Definition: winuser.h:5824
#define WM_MOVE
Definition: winuser.h:1610
#define MessageBox
Definition: winuser.h:5831
#define WM_ACTIVATEAPP
Definition: winuser.h:1632
HDWP WINAPI DeferWindowPos(_In_ HDWP, _In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
#define MDITILE_HORIZONTAL
Definition: winuser.h:2188
#define WM_DESTROY
Definition: winuser.h:1609
#define WS_EX_CLIENTEDGE
Definition: winuser.h:384
#define MDITILE_VERTICAL
Definition: winuser.h:2189
#define SWP_NOZORDER
Definition: winuser.h:1247
#define WM_MENUSELECT
Definition: winuser.h:1747
#define SC_RESTORE
Definition: winuser.h:2598
BOOL WINAPI DestroyWindow(_In_ HWND)
#define MAKEINTRESOURCE
Definition: winuser.h:591
HMENU WINAPI GetMenu(_In_ HWND)
#define SC_MAXIMIZE
Definition: winuser.h:2588
#define COLOR_BTNFACE
Definition: winuser.h:928
#define DialogBox
Definition: winuser.h:5770
HDWP WINAPI BeginDeferWindowPos(_In_ int)
#define ID_PRINT
Definition: wordpad.h:39
char TCHAR
Definition: xmlstorage.h:189
const CHAR * LPCTSTR
Definition: xmlstorage.h:193