ReactOS  0.4.13-dev-651-g5dbc677
options.c File Reference
#include "console.h"
#include <debug.h>
Include dependency graph for options.c:

Go to the source code of this file.

Macros

#define NDEBUG
 
#define MAX_VALUE_NAME   16383
 

Functions

static INT List_GetCount (IN PLIST_CTL ListCtl)
 
static ULONG_PTR List_GetData (IN PLIST_CTL ListCtl, IN INT Index)
 
static VOID AddCodePage (IN PLIST_CTL ListCtl, IN UINT CodePage)
 
static VOID BuildCodePageList (IN HWND hDlg, IN UINT CurrentCodePage)
 
static VOID UpdateDialogElements (IN HWND hDlg, IN PCONSOLE_STATE_INFO pConInfo)
 
INT_PTR CALLBACK OptionsProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
 

Macro Definition Documentation

◆ MAX_VALUE_NAME

#define MAX_VALUE_NAME   16383

Definition at line 15 of file options.c.

◆ NDEBUG

#define NDEBUG

Definition at line 12 of file options.c.

Function Documentation

◆ AddCodePage()

static VOID AddCodePage ( IN PLIST_CTL  ListCtl,
IN UINT  CodePage 
)
static

Definition at line 31 of file options.c.

34 {
35  UINT iItem, iDupItem;
36  CPINFOEXW CPInfo;
37 
38  /*
39  * Add only valid code pages, that is:
40  * - If the CodePage is one of the reserved (alias) values:
41  * CP_ACP == 0 ; CP_OEMCP == 1 ; CP_MACCP == 2 ; CP_THREAD_ACP == 3 ;
42  * or the deprecated CP_SYMBOL == 42 (see http://archives.miloush.net/michkap/archive/2005/11/08/490495.html)
43  * it is considered invalid.
44  * - If IsValidCodePage() fails because the code page is listed but
45  * not installed on the system, it is also considered invalid.
46  */
47  if (CodePage == CP_ACP || CodePage == CP_OEMCP || CodePage == CP_MACCP ||
48  CodePage == CP_THREAD_ACP || CodePage == CP_SYMBOL || !IsValidCodePage(CodePage))
49  {
50  return;
51  }
52 
53  /* Retrieve the code page display name */
54  if (!GetCPInfoExW(CodePage, 0, &CPInfo))
55  {
56  /* We failed, just use the code page value as its name */
57  // _ultow(CodePage, CPInfo.CodePageName, 10);
58  StringCchPrintfW(CPInfo.CodePageName, ARRAYSIZE(CPInfo.CodePageName), L"%lu", CodePage);
59  }
60 
61  /* Add the code page into the list, sorted by code page value. Avoid any duplicates. */
62  iDupItem = CB_ERR;
63  iItem = BisectListSortedByValue(ListCtl, CodePage, &iDupItem, TRUE);
64  if (iItem == CB_ERR)
65  iItem = 0;
66  if (iDupItem != CB_ERR)
67  return;
68  iItem = (UINT)SendMessageW(ListCtl->hWndList, CB_INSERTSTRING, iItem, (LPARAM)CPInfo.CodePageName);
69  if (iItem != CB_ERR && iItem != CB_ERRSPACE)
70  iItem = SendMessageW(ListCtl->hWndList, CB_SETITEMDATA, iItem, CodePage);
71 }
#define CB_SETITEMDATA
Definition: winuser.h:1948
#define TRUE
Definition: types.h:120
WCHAR CodePageName[MAX_PATH]
Definition: winnls.h:596
#define CP_ACP
Definition: compat.h:99
#define ARRAYSIZE(array)
Definition: filtermapper.c:47
#define CP_SYMBOL
Definition: winnls.h:231
#define CB_INSERTSTRING
Definition: winuser.h:1939
LONG_PTR LPARAM
Definition: windef.h:208
#define CB_ERR
Definition: winuser.h:2410
static const WCHAR L[]
Definition: oid.c:1250
#define CB_ERRSPACE
Definition: winuser.h:2411
BOOL WINAPI IsValidCodePage(UINT CodePage)
Definition: nls.c:1468
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
STRSAFEAPI StringCchPrintfW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszFormat,...)
Definition: strsafe.h:530
unsigned int UINT
Definition: ndis.h:50
BOOL WINAPI GetCPInfoExW(UINT CodePage, DWORD dwFlags, LPCPINFOEXW lpCPInfoEx)
Definition: nls.c:1958
UINT BisectListSortedByValue(IN PLIST_CTL ListCtl, IN ULONG_PTR Value, OUT PUINT pValueItem OPTIONAL, IN BOOL BisectRightOrLeft)
Definition: utils.c:115
#define CP_THREAD_ACP
Definition: winnls.h:230
#define CP_OEMCP
Definition: winnls.h:228
#define CP_MACCP
Definition: winnls.h:229

Referenced by BuildCodePageList().

◆ BuildCodePageList()

static VOID BuildCodePageList ( IN HWND  hDlg,
IN UINT  CurrentCodePage 
)
static

Definition at line 74 of file options.c.

77 {
78  LIST_CTL ListCtl;
79  HKEY hKey;
80  DWORD dwIndex, dwSize, dwType;
81  UINT CodePage;
82  WCHAR szValueName[MAX_VALUE_NAME];
83 
84  // #define REGSTR_PATH_CODEPAGE TEXT("System\\CurrentControlSet\\Control\\Nls\\CodePage")
85  /* Open the Nls\CodePage key */
87  L"System\\CurrentControlSet\\Control\\Nls\\CodePage",
88  0,
90  &hKey) != ERROR_SUCCESS)
91  {
92  return;
93  }
94 
95  ListCtl.hWndList = GetDlgItem(hDlg, IDL_CODEPAGE);
96  ListCtl.GetCount = List_GetCount;
97  ListCtl.GetData = List_GetData;
98 
99  /* Enumerate all the available code pages on the system */
100  dwSize = ARRAYSIZE(szValueName);
101  dwIndex = 0;
102  while (RegEnumValueW(hKey, dwIndex, szValueName, &dwSize,
103  NULL, &dwType, NULL, NULL) == ERROR_SUCCESS) // != ERROR_NO_MORE_ITEMS
104  {
105  /* Ignore these parameters, prepare for next iteration */
106  dwSize = ARRAYSIZE(szValueName);
107  ++dwIndex;
108 
109  /* Check the value type validity */
110  if (dwType != REG_SZ)
111  continue;
112 
113  /*
114  * Add the code page into the list.
115  * If _wtol fails and returns 0, the code page is considered invalid
116  * (and indeed this value corresponds to the CP_ACP alias too).
117  */
118  CodePage = (UINT)_wtol(szValueName);
119  if (CodePage == 0) continue;
120  AddCodePage(&ListCtl, CodePage);
121  }
122 
123  RegCloseKey(hKey);
124 
125  /* Add the special UTF-7 (CP_UTF7 65000) and UTF-8 (CP_UTF8 65001) code pages */
126  AddCodePage(&ListCtl, CP_UTF7);
127  AddCodePage(&ListCtl, CP_UTF8);
128 
129  /* Find and select the current code page in the sorted list */
130  if (BisectListSortedByValue(&ListCtl, CurrentCodePage, &CodePage, FALSE) == CB_ERR ||
131  CodePage == CB_ERR)
132  {
133  /* Not found, select the first element */
134  CodePage = 0;
135  }
136  SendMessageW(ListCtl.hWndList, CB_SETCURSEL, (WPARAM)CodePage, 0);
137 }
#define ERROR_SUCCESS
Definition: deptool.c:10
#define CP_UTF7
Definition: winnls.h:232
#define ARRAYSIZE(array)
Definition: filtermapper.c:47
UINT_PTR WPARAM
Definition: windef.h:207
HWND hWndList
Definition: console.h:93
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
#define CP_UTF8
Definition: nls.h:20
LONG WINAPI RegEnumValueW(_In_ HKEY hKey, _In_ DWORD index, _Out_ LPWSTR value, _Inout_ PDWORD val_count, _Reserved_ PDWORD reserved, _Out_opt_ PDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ PDWORD count)
Definition: reg.c:2853
smooth NULL
Definition: ftsmooth.c:416
static INT List_GetCount(IN PLIST_CTL ListCtl)
Definition: options.c:19
#define CB_ERR
Definition: winuser.h:2410
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned long DWORD
Definition: ntddk_ex.h:95
PLIST_GETDATA GetData
Definition: console.h:95
static ULONG_PTR List_GetData(IN PLIST_CTL ListCtl, IN INT Index)
Definition: options.c:25
PLIST_GETCOUNT GetCount
Definition: console.h:94
static const WCHAR L[]
Definition: oid.c:1250
#define CB_SETCURSEL
Definition: winuser.h:1943
#define MAX_VALUE_NAME
Definition: options.c:15
#define IDL_CODEPAGE
Definition: resource.h:31
#define KEY_QUERY_VALUE
Definition: nt_native.h:1016
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
unsigned int UINT
Definition: ndis.h:50
_Check_return_ _CRTIMP long __cdecl _wtol(_In_z_ const wchar_t *_Str)
static VOID AddCodePage(IN PLIST_CTL ListCtl, IN UINT CodePage)
Definition: options.c:31
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
Definition: reg.c:3366
UINT BisectListSortedByValue(IN PLIST_CTL ListCtl, IN ULONG_PTR Value, OUT PUINT pValueItem OPTIONAL, IN BOOL BisectRightOrLeft)
Definition: utils.c:115
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
Definition: env.c:54
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12
#define KEY_ENUMERATE_SUB_KEYS
Definition: nt_native.h:1019
#define REG_SZ
Definition: layer.c:22

Referenced by OptionsProc().

◆ List_GetCount()

static INT List_GetCount ( IN PLIST_CTL  ListCtl)
static

Definition at line 19 of file options.c.

20 {
21  return (INT)SendMessageW(ListCtl->hWndList, CB_GETCOUNT, 0, 0);
22 }
int32_t INT
Definition: typedefs.h:56
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define CB_GETCOUNT
Definition: winuser.h:1924

Referenced by BuildCodePageList().

◆ List_GetData()

static ULONG_PTR List_GetData ( IN PLIST_CTL  ListCtl,
IN INT  Index 
)
static

Definition at line 25 of file options.c.

26 {
27  return (ULONG_PTR)SendMessageW(ListCtl->hWndList, CB_GETITEMDATA, (WPARAM)Index, 0);
28 }
#define CB_GETITEMDATA
Definition: winuser.h:1932
UINT_PTR WPARAM
Definition: windef.h:207
uint32_t ULONG_PTR
Definition: typedefs.h:63
static const UCHAR Index[8]
Definition: usbohci.c:18
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)

Referenced by BuildCodePageList().

◆ OptionsProc()

INT_PTR CALLBACK OptionsProc ( HWND  hDlg,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 207 of file options.c.

211 {
212  switch (uMsg)
213  {
214  case WM_INITDIALOG:
215  {
218  return TRUE;
219  }
220 
221  case WM_NOTIFY:
222  {
223  LPPSHNOTIFY lppsn = (LPPSHNOTIFY)lParam;
224 
225  if (lppsn->hdr.code == UDN_DELTAPOS)
226  {
227  LPNMUPDOWN lpnmud = (LPNMUPDOWN)lParam;
228 
229  if (lppsn->hdr.idFrom == IDC_UPDOWN_BUFFER_SIZE)
230  {
231  lpnmud->iPos = min(max(lpnmud->iPos + lpnmud->iDelta, 1), 999);
232  ConInfo->HistoryBufferSize = lpnmud->iPos;
233  PropSheet_Changed(GetParent(hDlg), hDlg);
234  }
235  else if (lppsn->hdr.idFrom == IDC_UPDOWN_NUM_BUFFER)
236  {
237  lpnmud->iPos = min(max(lpnmud->iPos + lpnmud->iDelta, 1), 999);
239  PropSheet_Changed(GetParent(hDlg), hDlg);
240  }
241  }
242  else if (lppsn->hdr.code == PSN_APPLY)
243  {
244  ApplyConsoleInfo(hDlg);
245  return TRUE;
246  }
247  break;
248  }
249 
250  case WM_COMMAND:
251  {
252  if (HIWORD(wParam) == BN_CLICKED)
253  {
254  switch (LOWORD(wParam))
255  {
257  {
258  ConInfo->CursorSize = 25;
259  PropSheet_Changed(GetParent(hDlg), hDlg);
260  break;
261  }
263  {
264  ConInfo->CursorSize = 50;
265  PropSheet_Changed(GetParent(hDlg), hDlg);
266  break;
267  }
269  {
270  ConInfo->CursorSize = 100;
271  PropSheet_Changed(GetParent(hDlg), hDlg);
272  break;
273  }
275  {
277  PropSheet_Changed(GetParent(hDlg), hDlg);
278  break;
279  }
281  {
283  PropSheet_Changed(GetParent(hDlg), hDlg);
284  break;
285  }
287  {
288  ConInfo->QuickEdit = (IsDlgButtonChecked(hDlg, IDC_CHECK_QUICK_EDIT) == BST_CHECKED); // BST_UNCHECKED or BST_INDETERMINATE => FALSE
289  PropSheet_Changed(GetParent(hDlg), hDlg);
290  break;
291  }
293  {
294  ConInfo->InsertMode = (IsDlgButtonChecked(hDlg, IDC_CHECK_INSERT_MODE) == BST_CHECKED); // BST_UNCHECKED or BST_INDETERMINATE => FALSE
295  PropSheet_Changed(GetParent(hDlg), hDlg);
296  break;
297  }
299  {
300  ConInfo->HistoryNoDup = (IsDlgButtonChecked(hDlg, IDC_CHECK_DISCARD_DUPLICATES) == BST_CHECKED); // BST_UNCHECKED or BST_INDETERMINATE => FALSE
301  PropSheet_Changed(GetParent(hDlg), hDlg);
302  break;
303  }
304  }
305  }
306  else
307  if (HIWORD(wParam) == EN_KILLFOCUS)
308  {
309  switch (LOWORD(wParam))
310  {
312  {
313  DWORD sizeBuff;
314 
315  sizeBuff = GetDlgItemInt(hDlg, IDC_EDIT_BUFFER_SIZE, NULL, FALSE);
316  sizeBuff = min(max(sizeBuff, 1), 999);
317 
318  ConInfo->HistoryBufferSize = sizeBuff;
319  PropSheet_Changed(GetParent(hDlg), hDlg);
320  break;
321  }
322  case IDC_EDIT_NUM_BUFFER:
323  {
324  DWORD numBuff;
325 
326  numBuff = GetDlgItemInt(hDlg, IDC_EDIT_NUM_BUFFER, NULL, FALSE);
327  numBuff = min(max(numBuff, 1), 999);
328 
329  ConInfo->NumberOfHistoryBuffers = numBuff;
330  PropSheet_Changed(GetParent(hDlg), hDlg);
331  break;
332  }
333  }
334  }
335  else
336  // (HIWORD(wParam) == CBN_KILLFOCUS)
338  (LOWORD(wParam) == IDL_CODEPAGE))
339  {
341  INT iItem;
342  UINT CodePage;
343 
344  iItem = (INT)SendMessageW(hWndList, CB_GETCURSEL, 0, 0);
345  if (iItem == CB_ERR)
346  break;
347 
348  CodePage = (UINT)SendMessageW(hWndList, CB_GETITEMDATA, iItem, 0);
349  if (CodePage == CB_ERR)
350  break;
351 
352  /* If the user validated a different code page... */
353  if ((HIWORD(wParam) == CBN_SELENDOK) && (CodePage != ConInfo->CodePage))
354  {
355  /* ... update the code page, notify the siblings and change the property sheet state */
356  ConInfo->CodePage = CodePage;
357  // PropSheet_QuerySiblings(GetParent(hDlg), IDL_CODEPAGE, 0);
359  PropSheet_Changed(GetParent(hDlg), hDlg);
360  }
361  }
362 
363  break;
364  }
365 
366  default:
367  break;
368  }
369 
370  return FALSE;
371 }
#define max(a, b)
Definition: svc.c:63
#define IDC_CHECK_INSERT_MODE
Definition: resource.h:20
#define TRUE
Definition: types.h:120
#define IDC_RADIO_LARGE_CURSOR
Definition: resource.h:28
#define IDC_RADIO_SMALL_CURSOR
Definition: resource.h:26
struct _PSHNOTIFY * LPPSHNOTIFY
#define CB_GETITEMDATA
Definition: winuser.h:1932
struct _NM_UPDOWN * LPNMUPDOWN
#define INT
Definition: polytest.cpp:20
#define PSN_APPLY
Definition: prsht.h:117
#define IDC_CHECK_DISCARD_DUPLICATES
Definition: resource.h:21
static HWND hWndList[5+1]
Definition: SetParent.c:10
int32_t INT
Definition: typedefs.h:56
#define CB_GETCURSEL
Definition: winuser.h:1925
WPARAM wParam
Definition: combotst.c:138
#define IDC_EDIT_BUFFER_SIZE
Definition: resource.h:22
UINT code
Definition: winuser.h:3133
NMHDR hdr
Definition: prsht.h:312
#define EN_KILLFOCUS
Definition: winuser.h:2007
#define IDC_CHECK_QUICK_EDIT
Definition: resource.h:19
#define CBN_SELENDOK
Definition: winuser.h:1963
UINT_PTR idFrom
Definition: winuser.h:3132
#define IDC_RADIO_DISPLAY_FULL
Definition: resource.h:30
smooth NULL
Definition: ftsmooth.c:416
UINT WINAPI GetDlgItemInt(_In_ HWND, _In_ int, _Out_opt_ PBOOL, _In_ BOOL)
VOID ApplyConsoleInfo(HWND hwndDlg)
Definition: console.c:88
UINT WINAPI IsDlgButtonChecked(_In_ HWND, _In_ int)
#define CB_ERR
Definition: winuser.h:2410
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
#define PropSheet_Changed(d, w)
Definition: prsht.h:326
ULONG HistoryBufferSize
Definition: settings.h:50
#define BN_CLICKED
Definition: winuser.h:1907
unsigned long DWORD
Definition: ntddk_ex.h:95
#define UDN_DELTAPOS
Definition: commctrl.h:2141
#define WM_COMMAND
Definition: winuser.h:1722
static VOID BuildCodePageList(IN HWND hDlg, IN UINT CurrentCodePage)
Definition: options.c:74
#define IDL_CODEPAGE
Definition: resource.h:31
int iDelta
Definition: commctrl.h:2138
HWND WINAPI GetParent(_In_ HWND)
ULONG NumberOfHistoryBuffers
Definition: settings.h:51
static VOID UpdateDialogElements(IN HWND hDlg, IN PCONSOLE_STATE_INFO pConInfo)
Definition: options.c:140
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
FONT_PREVIEW FontPreview
Definition: font.c:21
PCONSOLE_STATE_INFO ConInfo
Definition: console.c:23
#define min(a, b)
Definition: monoChain.cc:55
unsigned int UINT
Definition: ndis.h:50
#define IDC_RADIO_MEDIUM_CURSOR
Definition: resource.h:27
#define CBN_SELCHANGE
Definition: winuser.h:1961
#define ResetFontPreview(Preview)
Definition: console.h:65
#define BST_CHECKED
Definition: winuser.h:197
#define IDC_EDIT_NUM_BUFFER
Definition: resource.h:24
#define IDC_UPDOWN_BUFFER_SIZE
Definition: resource.h:23
#define IDC_RADIO_DISPLAY_WINDOW
Definition: resource.h:29
#define HIWORD(l)
Definition: typedefs.h:246
#define IDC_UPDOWN_NUM_BUFFER
Definition: resource.h:25
#define WM_INITDIALOG
Definition: winuser.h:1721
LPARAM lParam
Definition: combotst.c:139
#define LOWORD(l)
Definition: pedump.c:82
#define WM_NOTIFY
Definition: richedit.h:61

Referenced by InitApplet().

◆ UpdateDialogElements()

static VOID UpdateDialogElements ( IN HWND  hDlg,
IN PCONSOLE_STATE_INFO  pConInfo 
)
static

Definition at line 140 of file options.c.

143 {
144  /* Update the cursor size */
145  if (pConInfo->CursorSize <= 25)
146  {
147  /* Small cursor */
149  // CheckDlgButton(hDlg, IDC_RADIO_SMALL_CURSOR , BST_CHECKED);
150  // CheckDlgButton(hDlg, IDC_RADIO_MEDIUM_CURSOR, BST_UNCHECKED);
151  // CheckDlgButton(hDlg, IDC_RADIO_LARGE_CURSOR , BST_UNCHECKED);
152  }
153  else if (pConInfo->CursorSize <= 50)
154  {
155  /* Medium cursor */
157  // CheckDlgButton(hDlg, IDC_RADIO_SMALL_CURSOR , BST_UNCHECKED);
158  // CheckDlgButton(hDlg, IDC_RADIO_MEDIUM_CURSOR, BST_CHECKED);
159  // CheckDlgButton(hDlg, IDC_RADIO_LARGE_CURSOR , BST_UNCHECKED);
160  }
161  else /* if (pConInfo->CursorSize <= 100) */
162  {
163  /* Large cursor */
165  // CheckDlgButton(hDlg, IDC_RADIO_SMALL_CURSOR , BST_UNCHECKED);
166  // CheckDlgButton(hDlg, IDC_RADIO_MEDIUM_CURSOR, BST_UNCHECKED);
167  // CheckDlgButton(hDlg, IDC_RADIO_LARGE_CURSOR , BST_CHECKED);
168  }
169 
170  /* Update the number of history buffers */
172  SetDlgItemInt(hDlg, IDC_EDIT_NUM_BUFFER, pConInfo->NumberOfHistoryBuffers, FALSE);
173 
174  /* Update the history buffer size */
176  SetDlgItemInt(hDlg, IDC_EDIT_BUFFER_SIZE, pConInfo->HistoryBufferSize, FALSE);
177 
178  /* Update discard duplicates */
180  pConInfo->HistoryNoDup ? BST_CHECKED : BST_UNCHECKED);
181 
182  /* Update full/window screen state */
183  if (pConInfo->FullScreen)
184  {
186  // CheckDlgButton(hDlg, IDC_RADIO_DISPLAY_WINDOW, BST_UNCHECKED);
187  // CheckDlgButton(hDlg, IDC_RADIO_DISPLAY_FULL , BST_CHECKED);
188  }
189  else
190  {
192  // CheckDlgButton(hDlg, IDC_RADIO_DISPLAY_WINDOW, BST_CHECKED);
193  // CheckDlgButton(hDlg, IDC_RADIO_DISPLAY_FULL , BST_UNCHECKED);
194  }
195 
196  /* Update "Quick-edit" state */
198  pConInfo->QuickEdit ? BST_CHECKED : BST_UNCHECKED);
199 
200  /* Update "Insert mode" state */
202  pConInfo->InsertMode ? BST_CHECKED : BST_UNCHECKED);
203 }
BOOL WINAPI CheckDlgButton(_In_ HWND, _In_ int, _In_ UINT)
#define IDC_CHECK_INSERT_MODE
Definition: resource.h:20
#define IDC_RADIO_LARGE_CURSOR
Definition: resource.h:28
#define IDC_RADIO_SMALL_CURSOR
Definition: resource.h:26
#define IDC_CHECK_DISCARD_DUPLICATES
Definition: resource.h:21
#define IDC_EDIT_BUFFER_SIZE
Definition: resource.h:22
#define IDC_CHECK_QUICK_EDIT
Definition: resource.h:19
#define IDC_RADIO_DISPLAY_FULL
Definition: resource.h:30
#define MAKELONG(a, b)
Definition: typedefs.h:248
#define UDM_SETRANGE
Definition: commctrl.h:2113
LRESULT WINAPI SendDlgItemMessageW(_In_ HWND, _In_ int, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI SetDlgItemInt(_In_ HWND, _In_ int, _In_ UINT, _In_ BOOL)
#define BST_UNCHECKED
Definition: winuser.h:199
#define IDC_RADIO_MEDIUM_CURSOR
Definition: resource.h:27
#define BST_CHECKED
Definition: winuser.h:197
#define IDC_EDIT_NUM_BUFFER
Definition: resource.h:24
#define IDC_UPDOWN_BUFFER_SIZE
Definition: resource.h:23
#define IDC_RADIO_DISPLAY_WINDOW
Definition: resource.h:29
#define IDC_UPDOWN_NUM_BUFFER
Definition: resource.h:25
BOOL WINAPI CheckRadioButton(_In_ HWND, _In_ int, _In_ int, _In_ int)

Referenced by OptionsProc().