ReactOS 0.4.15-dev-7788-g1ad9096
startmenu.h
Go to the documentation of this file.
1/*
2 * Copyright 2003, 2004 Martin Fuchs
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18
19
20 //
21 // Explorer and Desktop clone
22 //
23 // startmenu.h
24 //
25 // Martin Fuchs, 16.08.2003
26 //
27
28
29#define CLASSNAME_STARTMENU TEXT("ReactOSStartmenuClass")
30#define TITLE_STARTMENU TEXT("Start Menu")
31
32
33#define STARTMENU_WIDTH_MIN 120
34#define STARTMENU_LINE_HEIGHT(icon_size) (icon_size+4)
35#define STARTMENU_SEP_HEIGHT(icon_size) (STARTMENU_LINE_HEIGHT(icon_size)/2)
36#define STARTMENU_TOP_BTN_SPACE 8
37
38
39 // private message constants
40#define PM_STARTMENU_CLOSED (WM_APP+0x11)
41#define PM_STARTENTRY_LAUNCHED (WM_APP+0x12)
42
43#ifndef _LIGHT_STARTMENU
44#define PM_STARTENTRY_FOCUSED (WM_APP+0x13)
45#endif
46
47#define PM_UPDATE_ICONS (WM_APP+0x14)
48#define PM_SELECT_ENTRY (WM_APP+0x15)
49
50
53{
54 StartMenuDirectory(const ShellDirectory& dir, const String& ignore="")
55 : _dir(dir), _ignore(ignore)
56 {
57 }
58
60 {
62 }
63
66};
67
70
73{
75
79};
80
81
83
84
85#ifndef _LIGHT_STARTMENU
86
91{
93
94 StartMenuButton(HWND hwnd, ICON_ID icon_id, bool hasSubmenu)
95 : super(hwnd), _hIcon(hIcon), _hasSubmenu(hasSubmenu) {}
96
97protected:
99 virtual void DrawItem(LPDRAWITEMSTRUCT dis);
100
103};
104
105
109struct StartMenuCtrl : public Button
110{
112 UINT id, HICON hIcon=0, bool hasSubmenu=false, DWORD style=WS_VISIBLE|WS_CHILD|BS_OWNERDRAW, DWORD exStyle=0)
114 {
115 *new StartMenuButton(_hwnd, hIcon, hasSubmenu);
116
118 }
119};
120
121
124{
126 : Static(parent, NULL, x, y+STARTMENU_SEP_HEIGHT(icon_size)/2-1, w, 2, -1, style, exStyle)
127 {
128 }
129};
130
131#endif
132
133
135
138{
140
144 Window::CREATORFUNC_INFO _creator;
145 void* _info;
147};
148
149#define STARTMENU_CREATOR(WND_CLASS) WINDOW_CREATOR_INFO(WND_CLASS, StartMenuCreateInfo)
150
152
153
154#ifdef _LIGHT_STARTMENU
155
156struct SMBtnInfo
157{
158 SMBtnInfo(const StartMenuEntry& entry, int id, bool hasSubmenu=false, bool enabled=true)
159 : _title(entry._title),
160 _icon_id(entry._icon_id),
161 _id(id),
162 _hasSubmenu(hasSubmenu),
163 _enabled(enabled)
164 {
165 }
166
167 SMBtnInfo(LPCTSTR title, ICON_ID icon_id, int id, bool hasSubmenu=false, bool enabled=true)
168 : _title(title),
169 _icon_id(icon_id),
170 _id(id),
171 _hasSubmenu(hasSubmenu),
172 _enabled(enabled)
173 {
174 }
175
176 String _title;
177 ICON_ID _icon_id;
178 int _id;
179 bool _hasSubmenu;
180 bool _enabled;
181};
182
183typedef vector<SMBtnInfo> SMBtnVector;
184
185extern void DrawStartMenuButton(HDC hdc, const RECT& rect, LPCTSTR title, const SMBtnInfo& btn, bool has_focus, bool pushed, int icon_size);
186
187#else
188
190 bool hasSubmenu, bool enabled, bool has_focus, bool pushed, int icon_size);
191
192#endif
193
194
199struct StartMenu :
200#ifdef _LIGHT_STARTMENU
201 public ExtContextMenuHandlerT<OwnerDrawParent<Window> >
202#else
203 public ExtContextMenuHandlerT<OwnerDrawParent<DialogWindow> >
204#endif
205{
206#ifdef _LIGHT_STARTMENU
208#else
210#endif
211
214 ~StartMenu();
215
216 static HWND Create(int x, int y, const StartMenuFolders&, HWND hwndParent, LPCTSTR title,
217 CREATORFUNC_INFO creator=s_def_creator, void* info=NULL, const String& filter="");
219
220protected:
221 // overridden member functions
224 int Command(int id, int code);
225
226 // window class
228
229 // data members
233
235 WindowHandle _submenu;
236
237 int _border_left; // left border in pixels
238 int _border_top; // top border in pixels
239 int _bottom_max; // limit display area for long start menus
240
243
248
249 StartMenuCreateInfo _create_info; // copy of the original create info
250
252
253#ifdef _LIGHT_STARTMENU
254 SMBtnVector _buttons;
255 int _selected_id;
256 LPARAM _last_mouse_pos;
257
258 void ResizeToButtons();
259 int ButtonHitTest(POINT pt);
260 void InvalidateSelection();
261 const SMBtnInfo* GetButtonInfo(int id) const;
262 bool SelectButton(int id, bool open_sub=true);
263 bool SelectButtonIndex(int idx, bool open_sub=true);
264 int GetSelectionIndex();
265 virtual void ProcessKey(int vk);
266 bool Navigate(int step);
267 bool OpenSubmenu(bool select_first=false);
268 bool JumpToNextShortcut(char c);
269#endif
270
271 // member functions
272 void ResizeButtons(int cx);
273
274 virtual void AddEntries();
275
277 ShellEntryMap::iterator AddEntry(const String& title, ICON_ID icon_id=ICID_NONE, int id=-1);
280
281 void AddShellEntries(const ShellDirectory& dir, int max=-1, const String& ignore="");
282
283 void AddButton(LPCTSTR title, ICON_ID icon_id=ICID_NONE, bool hasSubmenu=false, int id=-1, bool enabled=true);
284 void AddSeparator();
285
287 bool CloseOtherSubmenus(int id=0);
289 bool CreateSubmenu(int id, int folder, LPCTSTR title, CREATORFUNC_INFO creator=s_def_creator, void*info=NULL);
290 bool CreateSubmenu(int id, int folder1, int folder2, LPCTSTR title, CREATORFUNC_INFO creator=s_def_creator, void*info=NULL);
291 void CreateSubmenu(int id, const StartMenuFolders& new_folders, LPCTSTR title, CREATORFUNC_INFO creator=s_def_creator, void*info=NULL);
292 void ActivateEntry(int id, const ShellEntrySet& entries);
293 virtual void CloseStartMenu(int id=0);
294
295 bool GetButtonRect(int id, PRECT prect) const;
296
298 void GetFloatingButtonRect(LPRECT prect);
299 void GetArrowButtonRects(LPRECT prect_up, LPRECT prect_down, int icon_size);
300
301 void DrawArrows(HDC hdc, int icon_size);
302
303 void Paint(PaintCanvas& canvas);
304 void UpdateIcons(/*int idx*/);
305};
306
307
308 // declare shell32's "Run..." dialog export function
309typedef void (WINAPI* RUNFILEDLG)(HWND hwndOwner, HICON hIcon, LPCSTR lpstrDirectory, LPCSTR lpstrTitle, LPCSTR lpstrDescription, UINT uFlags);
310
311 //
312 // Flags for RunFileDlg
313 //
314
315#define RFF_NOBROWSE 0x01 // Removes the browse button.
316#define RFF_NODEFAULT 0x02 // No default item selected.
317#define RFF_CALCDIRECTORY 0x04 // Calculates the working directory from the file name.
318#define RFF_NOLABEL 0x08 // Removes the edit box label.
319#define RFF_NOSEPARATEMEM 0x20 // Removes the Separate Memory Space check box (Windows NT only).
320
321
322 // declare more previously undocumented shell32 functions
323typedef void (WINAPI* EXITWINDOWSDLG)(HWND hwndOwner);
326typedef int (WINAPI* RESTARTWINDOWSDLGEX)(HWND hWndOwner, LPCWSTR lpwstrReason, DWORD uFlags, DWORD uReason);
327typedef BOOL (WINAPI* SHFINDFILES)(LPCITEMIDLIST pidlRoot, LPCITEMIDLIST pidlSavedSearch);
328typedef BOOL (WINAPI* SHFINDCOMPUTER)(LPCITEMIDLIST pidlRoot, LPCITEMIDLIST pidlSavedSearch);
329
330
333{
335
338 {
339 }
340
342 : super(hwnd, create_info, icon_size)
343 {
344 }
345
346protected:
347 int Command(int id, int code);
348
349 static void ShowLaunchDialog(HWND hwndOwner);
350 static void ShowLogoffDialog(HWND hwndOwner);
351 static void ShowRestartDialog(HWND hwndOwner, UINT flags);
352 static void ShowSearchDialog();
353 static void ShowSearchComputer();
354};
355
356
358{
360};
361
362
365{
367
369
370 static HWND Create(HWND hwndDesktopBar, int icon_size);
371 void TrackStartmenu();
372 void CloseStartMenu(int id=0);
373 bool IsStartMenuVisible() const;
374 int Command(int id, int code);
375
377
378protected:
381
383
384 virtual void AddEntries();
385 virtual void ProcessKey(int vk);
386
387 void Paint(PaintCanvas& canvas);
388
389
390 void ReadLogoSize();
392};
393
394
397{
399
401 : super(hwnd, create_info)
402 {
403 }
404
405protected:
406 virtual void AddEntries();
407};
408
409
412{
414
416 : super(hwnd, create_info)
417 {
418 }
419
420protected:
421 virtual void AddEntries();
422};
423
424
427{
429
431 : super(hwnd, create_info)
432 {
433 }
434
435protected:
436 virtual void AddEntries();
437};
438
439
440#define RECENT_DOCS_COUNT 20
441
444{
446
448 : super(hwnd, create_info)
449 {
450 }
451
452protected:
453 virtual void AddEntries();
454};
455
456
457#ifndef _SHELL32_FAVORITES
458
460
463{
465
467 : super(hwnd, create_info),
468 _bookmarks(*(BookmarkList*)create_info._info)
469 {
470 }
471
472protected:
473 virtual int Command(int id, int code);
474 virtual void AddEntries();
475
478};
479
480#endif
@ lparam
Definition: SystemMenu.c:31
@ wparam
Definition: SystemMenu.c:30
Arabic default style
Definition: afstyles.h:94
unsigned int dir
Definition: maze.c:112
@ Create
Definition: registry.c:563
Definition: list.h:37
Definition: _map.h:48
_Rep_type::iterator iterator
Definition: _map.h:85
Definition: _set.h:50
static HWND hwndParent
Definition: cryptui.c:300
#define NULL
Definition: types.h:112
#define FALSE
Definition: types.h:117
unsigned int idx
Definition: utils.c:41
UINT uFlags
Definition: api.c:59
static WCHAR reason[MAX_STRING_RESOURCE_LEN]
Definition: object.c:1904
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
#define pt(x, y)
Definition: drawing.c:79
r parent
Definition: btrfs.c:3010
unsigned long DWORD
Definition: ntddk_ex.h:95
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
GLenum GLenum GLsizei const GLuint GLboolean enabled
Definition: glext.h:7750
const GLubyte * c
Definition: glext.h:8905
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
Definition: glext.h:7005
GLbitfield flags
Definition: glext.h:7161
GLubyte GLubyte GLubyte GLubyte w
Definition: glext.h:6102
GLuint id
Definition: glext.h:5910
uint32_t entry
Definition: isohybrid.c:63
ICON_ID
Definition: globals.h:62
@ ICID_UNKNOWN
Definition: globals.h:63
@ ICID_NONE
Definition: globals.h:64
#define ICON_SIZE_SMALL
Definition: globals.h:169
HDC hdc
Definition: main.c:9
static HDC
Definition: imagelist.c:92
static HICON
Definition: imagelist.c:84
WORD vk
Definition: input.c:77
HICON hIcon
Definition: msconfig.c:44
unsigned int UINT
Definition: ndis.h:50
#define BOOL
Definition: nt_native.h:43
#define WS_CHILD
Definition: pedump.c:617
#define WS_VISIBLE
Definition: pedump.c:620
#define BS_OWNERDRAW
Definition: pedump.c:661
#define WS_DISABLED
Definition: pedump.c:621
static char title[]
Definition: ps.c:92
_Out_opt_ int * cx
Definition: commctrl.h:585
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
Definition: shtypes.idl:42
iconPos iconPos icon_size
Definition: startmenu.cpp:1416
& rect
Definition: startmenu.cpp:1413
int(WINAPI * RESTARTWINDOWSDLGEX)(HWND hWndOwner, LPCWSTR lpwstrReason, DWORD uFlags, DWORD uReason)
Definition: startmenu.h:326
BOOL(WINAPI * SHFINDFILES)(LPCITEMIDLIST pidlRoot, LPCITEMIDLIST pidlSavedSearch)
Definition: startmenu.h:327
map< int, BookmarkNode > BookmarkMap
Definition: startmenu.h:459
BOOL(WINAPI * SHFINDCOMPUTER)(LPCITEMIDLIST pidlRoot, LPCITEMIDLIST pidlSavedSearch)
Definition: startmenu.h:328
int GetStartMenuBtnTextWidth(HDC hdc, LPCTSTR title, HWND hwnd)
Definition: startmenu.cpp:1371
set< Entry * > ShellEntrySet
Definition: startmenu.h:69
list< StartMenuDirectory > StartMenuShellDirs
Definition: startmenu.h:68
int(WINAPI * RESTARTWINDOWSDLG)(HWND hwndOwner, LPCWSTR reason, UINT flags)
Definition: startmenu.h:325
list< ShellPath > StartMenuFolders
Definition: startmenu.h:134
#define STARTMENU_SEP_HEIGHT(icon_size)
Definition: startmenu.h:35
map< int, StartMenuEntry > ShellEntryMap
Definition: startmenu.h:151
void DrawStartMenuButton(HDC hdc, const RECT &rect, LPCTSTR title, HICON hIcon, bool hasSubmenu, bool enabled, bool has_focus, bool pushed, int icon_size)
#define STARTMENU_LINE_HEIGHT(icon_size)
Definition: startmenu.h:34
void(WINAPI * RUNFILEDLG)(HWND hwndOwner, HICON hIcon, LPCSTR lpstrDirectory, LPCSTR lpstrTitle, LPCSTR lpstrDescription, UINT uFlags)
Definition: startmenu.h:309
void(WINAPI * EXITWINDOWSDLG)(HWND hwndOwner)
Definition: startmenu.h:323
int(WINAPI * LOGOFFWINDOWSDIALOG)(UINT flags)
Definition: startmenu.h:324
"Browse Files..." sub-start menu
Definition: startmenu.h:412
StartMenuHandler super
Definition: startmenu.h:413
BrowseMenu(HWND hwnd, const StartMenuCreateInfo &create_info)
Definition: startmenu.h:415
virtual void AddEntries()
Definition: startmenu.cpp:2173
window class with gray background color
Definition: window.h:249
Definition: window.h:573
Definition: shell.h:41
base of all file and directory entries
Definition: entries.h:83
void free_subentries()
Definition: entries.cpp:743
Bookmarks sub-startmenu.
Definition: startmenu.h:463
BookmarkList _bookmarks
Definition: startmenu.h:476
virtual void AddEntries()
Definition: startmenu.cpp:2224
BookmarkMap _entries
Definition: startmenu.h:477
StartMenu super
Definition: startmenu.h:464
FavoritesMenu(HWND hwnd, const StartMenuCreateInfo &create_info)
Definition: startmenu.h:466
"Recent Files" sub-start menu
Definition: startmenu.h:444
virtual void AddEntries()
Definition: startmenu.cpp:2200
StartMenu super
Definition: startmenu.h:445
RecentStartMenu(HWND hwnd, const StartMenuCreateInfo &create_info)
Definition: startmenu.h:447
Search sub-startmenu.
Definition: startmenu.h:427
StartMenuHandler super
Definition: startmenu.h:428
virtual void AddEntries()
Definition: startmenu.cpp:2187
SearchMenu(HWND hwnd, const StartMenuCreateInfo &create_info)
Definition: startmenu.h:430
Settings sub-startmenu.
Definition: startmenu.h:397
SettingsMenu(HWND hwnd, const StartMenuCreateInfo &create_info)
Definition: startmenu.h:400
StartMenuHandler super
Definition: startmenu.h:398
virtual void AddEntries()
Definition: startmenu.cpp:2148
shell folder entry
Definition: shellfs.h:54
shell file/directory entry
Definition: shellfs.h:31
IShellFolder smart pointer.
Definition: shellclasses.h:594
ICON_ID _icon_id
Definition: startmenu.h:101
StartMenuButton(HWND hwnd, ICON_ID icon_id, bool hasSubmenu)
Definition: startmenu.h:94
OwnerdrawnButton super
Definition: startmenu.h:92
virtual void DrawItem(LPDRAWITEMSTRUCT dis)
Definition: startmenu.cpp:1541
LRESULT WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
Definition: startmenu.cpp:1517
structor containing information for creating of start menus
Definition: startmenu.h:138
StartMenuFolders _folders
Definition: startmenu.h:141
Window::CREATORFUNC_INFO _creator
Definition: startmenu.h:144
StartMenuCtrl(HWND parent, int x, int y, int w, LPCTSTR title, UINT id, HICON hIcon=0, bool hasSubmenu=false, DWORD style=WS_VISIBLE|WS_CHILD|BS_OWNERDRAW, DWORD exStyle=0)
Definition: startmenu.h:111
StartMenuDirectory is used to store the base directory of start menus.
Definition: startmenu.h:53
StartMenuDirectory(const ShellDirectory &dir, const String &ignore="")
Definition: startmenu.h:54
ShellDirectory _dir
Definition: startmenu.h:64
structure holding information about one start menu entry
Definition: startmenu.h:73
ICON_ID _icon_id
Definition: startmenu.h:77
ShellEntrySet _entries
Definition: startmenu.h:78
String _title
Definition: startmenu.h:76
Handling of standard start menu commands.
Definition: startmenu.h:333
StartMenu super
Definition: startmenu.h:334
static void ShowLaunchDialog(HWND hwndOwner)
Definition: startmenu.cpp:2107
static void ShowRestartDialog(HWND hwndOwner, UINT flags)
Definition: startmenu.cpp:2138
StartMenuHandler(HWND hwnd, int icon_size=ICON_SIZE_SMALL)
Definition: startmenu.h:336
static void ShowSearchComputer()
Definition: startmenu.cpp:2068
StartMenuHandler(HWND hwnd, const StartMenuCreateInfo &create_info, int icon_size=ICON_SIZE_SMALL)
Definition: startmenu.h:341
static void ShowSearchDialog()
Definition: startmenu.cpp:2056
static void ShowLogoffDialog(HWND hwndOwner)
Definition: startmenu.cpp:2113
Startmenu root window.
Definition: startmenu.h:365
void ReadLogoSize()
Definition: startmenu.cpp:1581
virtual void AddEntries()
Definition: startmenu.cpp:1757
UINT GetLogoResId()
Definition: startmenu.cpp:1806
void CloseStartMenu(int id=0)
close all windows of the start menu popup
Definition: startmenu.cpp:1821
bool IsStartMenuVisible() const
Definition: startmenu.cpp:1829
SIZE _logo_size
Definition: startmenu.h:382
virtual void ProcessKey(int vk)
Definition: startmenu.cpp:1834
void Paint(PaintCanvas &canvas)
Definition: startmenu.cpp:1785
StartMenuHandler super
Definition: startmenu.h:366
HWND _hwndStartButton
Definition: startmenu.h:376
void TrackStartmenu()
Definition: startmenu.cpp:1624
LRESULT WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
Definition: startmenu.cpp:1765
separator between start menu entries
Definition: startmenu.h:124
StartMenuSeparator(HWND parent, int x, int y, int w, DWORD style=WS_VISIBLE|WS_CHILD|WS_DISABLED|SS_ETCHEDHORZ, DWORD exStyle=0)
Definition: startmenu.h:125
void CreateSubmenu(int id, LPCTSTR title, CREATORFUNC_INFO creator=s_def_creator, void *info=NULL)
Definition: startmenu.cpp:1217
ExtContextMenuHandlerT< OwnerDrawParent< DialogWindow > > super
Definition: startmenu.h:209
int _bottom_max
Definition: startmenu.h:239
LRESULT WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
Definition: startmenu.cpp:299
StartMenuShellDirs _dirs
Definition: startmenu.h:232
bool CloseOtherSubmenus(int id=0)
Definition: startmenu.cpp:1197
int _next_id
Definition: startmenu.h:230
ShellEntryMap::iterator AddEntry(const String &title, ICON_ID icon_id, Entry *entry)
Definition: startmenu.cpp:1068
void ResizeButtons(int cx)
Definition: startmenu.cpp:1019
WindowHandle _submenu
Definition: startmenu.h:235
enum StartMenu::SCROLL_MODE _scroll_mode
bool GetButtonRect(int id, PRECT prect) const
Definition: startmenu.cpp:781
@ SCROLL_NOT
Definition: startmenu.h:245
@ SCROLL_DOWN
Definition: startmenu.h:245
virtual void CloseStartMenu(int id=0)
close all windows of the start menu popup
Definition: startmenu.cpp:1361
void AddSeparator()
Definition: startmenu.cpp:1173
int _invisible_lines
Definition: startmenu.h:247
StartMenuCreateInfo _create_info
Definition: startmenu.h:249
POINT _last_pos
Definition: startmenu.h:244
void AddShellEntries(const ShellDirectory &dir, int max=-1, const String &ignore="")
Definition: startmenu.cpp:243
int _scroll_pos
Definition: startmenu.h:246
void Paint(PaintCanvas &canvas)
Definition: startmenu.cpp:870
void AddButton(LPCTSTR title, ICON_ID icon_id=ICID_NONE, bool hasSubmenu=false, int id=-1, bool enabled=true)
Definition: startmenu.cpp:1137
bool _arrow_btns
Definition: startmenu.h:242
int _icon_size
Definition: startmenu.h:251
void DrawArrows(HDC hdc, int icon_size)
Definition: startmenu.cpp:835
void GetArrowButtonRects(LPRECT prect_up, LPRECT prect_down, int icon_size)
Definition: startmenu.cpp:849
int _border_top
Definition: startmenu.h:238
void GetFloatingButtonRect(LPRECT prect)
Definition: startmenu.cpp:825
void DrawFloatingButton(HDC hdc)
Definition: startmenu.cpp:816
void ActivateEntry(int id, const ShellEntrySet &entries)
Definition: startmenu.cpp:1292
ShellEntryMap _entries
Definition: startmenu.h:231
int _border_left
Definition: startmenu.h:237
bool _floating_btn
Definition: startmenu.h:241
bool CloseSubmenus()
Definition: startmenu.h:286
static BtnWindowClass & GetWndClasss()
Definition: startmenu.cpp:108
virtual void AddEntries()
Definition: startmenu.cpp:209
static CREATORFUNC_INFO s_def_creator
Definition: startmenu.h:218
int _submenu_id
Definition: startmenu.h:234
void UpdateIcons()
Definition: window.h:585
Window *(* CREATORFUNC_INFO)(HWND, const void *)
Definition: window.h:67
Definition: inflate.c:139
Definition: fci.c:116
#define max(a, b)
Definition: svc.c:63
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
Definition: wdfdevice.h:2433
_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 WINAPI
Definition: msvc.h:6
#define SetWindowFont(hwnd, hfont, fRedraw)
Definition: windowsx.h:533
#define GetStockFont(i)
Definition: windowsx.h:308
#define DEFAULT_GUI_FONT
Definition: wingdi.h:909
#define SS_ETCHEDHORZ
Definition: winuser.h:343
const char * LPCSTR
Definition: xmlstorage.h:183
const CHAR * LPCTSTR
Definition: xmlstorage.h:193
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185