ReactOS  0.4.14-dev-552-g2fad488
serialui.c
Go to the documentation of this file.
1 /*
2  * COPYRIGHT: See COPYING in the top level directory
3  * PROJECT: ReactOS SerialUI DLL
4  * FILE: serialui.c
5  * PUROPSE: A dialog box to configure COM port.
6  * Functions to set (and get too) default configuration.
7  * PROGRAMMERS: Saveliy Tretiakov (saveliyt@mail.ru)
8  * REVISIONS:
9  * ST (05/04/2005) Created. Implemented drvCommConfigDialog.
10  */
11 
12 #include "serialui.h"
13 
15 
16 /************************************
17  *
18  * DATA
19  *
20  ************************************/
21 
22 const DWORD Bauds[] = {
23  CBR_110,
24  CBR_300,
25  CBR_600,
26  CBR_1200,
27  CBR_2400,
28  CBR_4800,
29  CBR_9600,
30  CBR_14400,
31  CBR_19200,
32  CBR_38400,
33  CBR_56000,
34  CBR_57600,
35  CBR_115200,
36  CBR_128000,
37  CBR_256000,
38  0
39 };
40 
41 const BYTE ByteSizes[] = {
42  5,
43  6,
44  7,
45  8,
46  0
47 };
48 
49 
50 const PARITY_INFO Parities[] = {
56  { 0, 0 }
57 };
58 
63  { 0, 0 }
64 };
65 
66 
67 /************************************
68  *
69  * DLLMAIN
70  *
71  ************************************/
72 
73 BOOL
74 WINAPI
78 {
80  {
82  }
83  else if(dwReason==DLL_THREAD_ATTACH)
84  {
86  }
87 
88  return TRUE;
89 }
90 
91 
92 /************************************
93  *
94  * EXPORTS
95  *
96  ************************************/
97 
98 /*
99  * @implemented
100  */
102  HWND hWnd,
103  LPCOMMCONFIG lpCommConfig)
104 {
105  DIALOG_INFO DialogInfo;
106 
107  if(!lpszDevice || !lpCommConfig)
108  {
110  }
111 
112  DialogInfo.lpszDevice = lpszDevice;
113  DialogInfo.lpCC = lpCommConfig;
114 
116  hWnd, CommDlgProc, (LPARAM)&DialogInfo);
117 }
118 
119 /*
120  * @implemented
121  */
123  HWND hWnd,
124  LPCOMMCONFIG lpCommConfig)
125 {
126  BOOL result;
127  UINT len;
128  WCHAR *wstr;
129 
130  len = MultiByteToWideChar(CP_ACP, 0, lpszDevice, -1, NULL, 0);
131  if((wstr = HeapAlloc(GetProcessHeap(), 0, len*sizeof(WCHAR))))
132  {
133  MultiByteToWideChar(CP_ACP, 0, lpszDevice, -1, wstr, len);
134  result = drvCommConfigDialogW(wstr, hWnd, lpCommConfig);
135  HeapFree(GetProcessHeap(), 0, wstr);
136  return result;
137  }
138  else
140 }
141 
142 /*
143  * @unimplemented
144  */
146  LPCOMMCONFIG lpCommConfig,
147  DWORD dwSize)
148 {
150 }
151 
152 /*
153  * @unimplemented
154  */
156  LPCOMMCONFIG lpCommConfig,
157  DWORD dwSize)
158 {
160 }
161 
162 /*
163  * @unimplemented
164  */
166  LPCOMMCONFIG lpCommConfig,
168 {
170 }
171 
172 /*
173  * @unimplemented
174  */
176  LPCOMMCONFIG lpCommConfig,
178 {
180 }
181 
182 
183 /************************************
184  *
185  * INTERNALS
186  *
187  ************************************/
188 
189 INT_PTR
190 CALLBACK
192 {
193  LPDIALOG_INFO lpDlgInfo = NULL;
194  HWND hBox;
195 
196  switch (Msg)
197  {
198 
199  case WM_INITDIALOG:
200  {
201  WCHAR wstr[255];
202  RECT rc, rcDlg, rcOwner;
203  HWND hOwner;
204  INT i;
205 
206  lpDlgInfo = (LPDIALOG_INFO)lParam;
207  SetWindowLongPtrW(hDlg, DWLP_USER, (LONG_PTR)lpDlgInfo);
208 
209  /* Set title */
210  if(LoadStringW(hDllInstance, IDS_TITLE, wstr, sizeof(wstr) / sizeof(wstr[0])))
211  {
212  SetWindowTextW(hDlg, wstr);
213  }
214 
215  /* FIXME - this won't work correctly systems with multiple monitors! */
216  if(!(hOwner = GetParent(hDlg)))
217  hOwner = GetDesktopWindow();
218 
219  /* Position dialog in the center of owner window */
220  GetWindowRect(hOwner, &rcOwner);
221  GetWindowRect(hDlg, &rcDlg);
222  CopyRect(&rc, &rcOwner);
223  OffsetRect(&rcDlg, -rcDlg.left, -rcDlg.top);
224  OffsetRect(&rc, -rc.left, -rc.top);
225  OffsetRect(&rc, -rcDlg.right, -rcDlg.bottom);
226  SetWindowPos(hDlg, HWND_TOP,
227  rcOwner.left + (rc.right / 2),
228  rcOwner.top + (rc.bottom / 2),
229  0, 0, SWP_NOSIZE);
230 
231  /* Initialize baud rate combo */
232  if(!(hBox = GetDlgItem(hDlg, IDC_BAUDRATE)))
233  EndDialog(hDlg, ERROR_CANCELLED);
234 
235  for(i = 0; Bauds[i]; i++)
236  {
237  wsprintf(wstr, L"%d", Bauds[i]);
238  SendMessageW(hBox, CB_INSERTSTRING, (WPARAM)i, (LPARAM)wstr);
239  if(Bauds[i] == lpDlgInfo->lpCC->dcb.BaudRate)
240  SendMessageW(hBox, CB_SETCURSEL, (WPARAM)i, 0);
241  }
242 
243  if(SendMessageW(hBox, CB_GETCURSEL, 0, 0) == CB_ERR)
245 
246  /* Initialize byte size combo */
247  if(!(hBox = GetDlgItem(hDlg, IDC_BYTESIZE)))
248  EndDialog(hDlg, ERROR_CANCELLED);
249 
250  for(i = 0; ByteSizes[i]; i++)
251  {
252  wsprintf(wstr, L"%d", Bauds[i]);
253  SendMessageW(hBox, CB_INSERTSTRING, (WPARAM)i, (LPARAM)wstr);
254  if(ByteSizes[i] == lpDlgInfo->lpCC->dcb.ByteSize)
255  SendMessageW(hBox, CB_SETCURSEL, (WPARAM)i, 0);
256  }
257 
258  if(SendMessageW(hBox, CB_GETCURSEL, 0, 0) == CB_ERR)
260 
261  /* Initialize parity combo */
262  if(!(hBox = GetDlgItem(hDlg, IDC_PARITY)))
263  EndDialog(hDlg, ERROR_CANCELLED);
264 
265  for(i = 0; Parities[i].StrId; i++)
266  {
267  if(LoadStringW(hDllInstance, Parities[i].StrId, wstr, sizeof(wstr) / sizeof(wstr[0])))
268  {
269  SendMessageW(hBox, CB_INSERTSTRING, (WPARAM)i, (LPARAM)wstr);
270  if(Parities[i].Parity == lpDlgInfo->lpCC->dcb.Parity)
271  SendMessageW(hBox, CB_SETCURSEL, (WPARAM)i, 0);
272  }
273  }
274 
275  if(SendMessageW(hBox, CB_GETCURSEL, 0, 0)==CB_ERR)
277 
278  /* Initialize stop bits combo */
279  if(!(hBox = GetDlgItem(hDlg, IDC_STOPBITS)))
280  EndDialog(hDlg, ERROR_CANCELLED);
281 
282  for(i = 0; StopBits[i].StrId; i++)
283  {
284  if(LoadStringW(hDllInstance, StopBits[i].StrId, wstr, sizeof(wstr) / sizeof(wstr[0])))
285  {
286  SendMessageW(hBox, CB_INSERTSTRING, (WPARAM)i, (LPARAM)wstr);
287  if(StopBits[i].StopBit == lpDlgInfo->lpCC->dcb.StopBits)
288  SendMessageW(hBox, CB_SETCURSEL, (WPARAM)i, 0);
289  }
290  }
291 
292  if(SendMessageW(hBox, CB_GETCURSEL, 0, 0)==CB_ERR)
294 
295  /* Initialize flow control combo */
296  if(!(hBox = GetDlgItem(hDlg, IDC_FLOW)))
297  EndDialog(hDlg, ERROR_CANCELLED);
298 
299  if(LoadStringW(hDllInstance, IDS_FC_NO, wstr, sizeof(wstr) / sizeof(wstr[0])))
300  {
301  SendMessageW(hBox, CB_INSERTSTRING, 0, (LPARAM)wstr);
302  SendMessageW(hBox, CB_SETCURSEL, 0, 0);
303  lpDlgInfo->InitialFlowIndex = 0;
304  }
305 
306 
307  if(LoadStringW(hDllInstance, IDS_FC_CTSRTS, wstr, sizeof(wstr) / sizeof(wstr[0])))
308  {
309  SendMessageW(hBox, CB_INSERTSTRING, 1, (LPARAM)wstr);
310  if(lpDlgInfo->lpCC->dcb.fRtsControl == RTS_CONTROL_HANDSHAKE
311  || lpDlgInfo->lpCC->dcb.fOutxCtsFlow != FALSE)
312  {
313  SendMessageW(hBox, CB_SETCURSEL, 1, 0);
314  lpDlgInfo->InitialFlowIndex = 1;
315  }
316  }
317 
318  if(LoadStringW(hDllInstance, IDS_FC_XONXOFF, wstr, sizeof(wstr) / sizeof(wstr[0])))
319  {
320  SendMessageW(hBox, CB_INSERTSTRING, 2, (LPARAM)wstr);
321  if(lpDlgInfo->lpCC->dcb.fOutX || lpDlgInfo->lpCC->dcb.fInX)
322  {
323  SendMessageW(hBox, CB_SETCURSEL, 2, 0);
324  lpDlgInfo->InitialFlowIndex = 2;
325  }
326  }
327 
328  /* Set focus */
329  SetFocus(GetDlgItem(hDlg, IDC_OKBTN));
330 
331  return FALSE;
332  } /* WM_INITDIALOG */
333 
334  case WM_COMMAND:
335  {
336  switch(wParam)
337  {
338  case IDC_CANCELBTN:
339  EndDialog(hDlg, ERROR_CANCELLED);
340  break;
341  case IDC_OKBTN:
342  OkButton(hDlg);
343  EndDialog(hDlg, ERROR_SUCCESS);
344  break;
345  }
346  return TRUE;
347  } /* WM_COMMAND */
348 
349  case WM_CLOSE:
350  {
351  EndDialog(hDlg, ERROR_CANCELLED);
352  return TRUE;
353  } /* WM_CLOSE */
354 
355  default:
356  return FALSE;
357  }
358 
359 }
360 
361 
363 {
364  LPDIALOG_INFO lpDlgInfo;
365  UINT Index;
366 
367  lpDlgInfo = (LPDIALOG_INFO) GetWindowLongPtrW(hDlg, DWLP_USER);
368 
369  /* Baud rate */
371  lpDlgInfo->lpCC->dcb.BaudRate = Bauds[Index];
372 
373  /* Byte size */
375  lpDlgInfo->lpCC->dcb.ByteSize = ByteSizes[Index];
376 
377  /* Parity */
379  lpDlgInfo->lpCC->dcb.Parity = Parities[Index].Parity;
380 
381  /* Stop bits */
383  lpDlgInfo->lpCC->dcb.StopBits = StopBits[Index].StopBit;
384 
385  /* Flow Control */
387  if(lpDlgInfo->InitialFlowIndex != Index)
388  {
389  switch(Index)
390  {
391  case 0: /* NO */
392  lpDlgInfo->lpCC->dcb.fDtrControl = DTR_CONTROL_DISABLE;
393  lpDlgInfo->lpCC->dcb.fRtsControl = RTS_CONTROL_DISABLE;
394  lpDlgInfo->lpCC->dcb.fOutxCtsFlow = FALSE;
395  lpDlgInfo->lpCC->dcb.fOutxDsrFlow = FALSE;
396  lpDlgInfo->lpCC->dcb.fOutX = FALSE;
397  lpDlgInfo->lpCC->dcb.fInX = FALSE;
398  break;
399  case 1: /* CTS/RTS */
400  lpDlgInfo->lpCC->dcb.fDtrControl = DTR_CONTROL_DISABLE;
401  lpDlgInfo->lpCC->dcb.fRtsControl = RTS_CONTROL_HANDSHAKE;
402  lpDlgInfo->lpCC->dcb.fOutxCtsFlow = TRUE;
403  lpDlgInfo->lpCC->dcb.fOutxDsrFlow = FALSE;
404  lpDlgInfo->lpCC->dcb.fOutX = FALSE;
405  lpDlgInfo->lpCC->dcb.fInX = FALSE;
406  break;
407  case 2: /* XON/XOFF */
408  lpDlgInfo->lpCC->dcb.fDtrControl = DTR_CONTROL_DISABLE;
409  lpDlgInfo->lpCC->dcb.fRtsControl = RTS_CONTROL_DISABLE;
410  lpDlgInfo->lpCC->dcb.fOutxCtsFlow = FALSE;
411  lpDlgInfo->lpCC->dcb.fOutxDsrFlow = FALSE;
412  lpDlgInfo->lpCC->dcb.fOutX = TRUE;
413  lpDlgInfo->lpCC->dcb.fInX = TRUE;
414  break;
415  }
416  }
417 }
#define MARKPARITY
Definition: winbase.h:437
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID reserved)
Definition: serialui.c:75
#define ERROR_INVALID_PARAMETER
Definition: compat.h:91
#define IDC_BYTESIZE
Definition: resource.h:30
#define DEFAULT_BYTESIZE_INDEX
Definition: serialui.h:24
#define TRUE
Definition: types.h:120
LPCWSTR lpszDevice
Definition: serialui.h:30
INT_PTR WINAPI DialogBoxParamW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
#define IDS_SPACEPARITY
Definition: resource.h:7
#define ERROR_SUCCESS
Definition: deptool.c:10
BOOL WINAPI OffsetRect(_Inout_ LPRECT, _In_ int, _In_ int)
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
#define IDC_OKBTN
Definition: resource.h:21
#define IDS_FC_NO
Definition: resource.h:13
#define IDC_BAUDRATE
Definition: resource.h:29
#define CBR_128000
Definition: winbase.h:455
#define EVENPARITY
Definition: winbase.h:436
#define DLL_THREAD_ATTACH
Definition: compat.h:121
#define CBR_1200
Definition: winbase.h:445
#define DTR_CONTROL_DISABLE
Definition: winbase.h:514
#define CP_ACP
Definition: compat.h:99
#define RTS_CONTROL_HANDSHAKE
Definition: winbase.h:519
struct _DIALOG_INFO * LPDIALOG_INFO
struct @1591 Msg[]
#define CALLBACK
Definition: compat.h:27
HWND hWnd
Definition: settings.c:17
LONG top
Definition: windef.h:307
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
Definition: loader.c:85
#define ERROR_NOT_ENOUGH_MEMORY
Definition: dderror.h:7
#define CBR_4800
Definition: winbase.h:447
#define HWND_TOP
Definition: winuser.h:1193
#define IDS_FC_CTSRTS
Definition: resource.h:14
HWND WINAPI SetFocus(_In_opt_ HWND)
#define DLL_PROCESS_ATTACH
Definition: compat.h:120
#define CBR_38400
Definition: winbase.h:451
BOOL WINAPI SetWindowTextW(_In_ HWND, _In_opt_ LPCWSTR)
UINT_PTR WPARAM
Definition: windef.h:207
#define GetWindowLongPtrW
Definition: winuser.h:4804
LONG left
Definition: windef.h:306
int32_t INT_PTR
Definition: typedefs.h:62
#define RTS_CONTROL_DISABLE
Definition: winbase.h:517
#define IDS_ONESTOPBIT
Definition: resource.h:9
LONG right
Definition: windef.h:308
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
DWORD WINAPI drvCommConfigDialogW(LPCWSTR lpszDevice, HWND hWnd, LPCOMMCONFIG lpCommConfig)
Definition: serialui.c:101
int32_t INT
Definition: typedefs.h:56
#define TWOSTOPBITS
Definition: winbase.h:441
#define ONESTOPBIT
Definition: winbase.h:439
#define CB_GETCURSEL
Definition: winuser.h:1925
LPCOMMCONFIG lpCC
Definition: serialui.h:32
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)
WPARAM wParam
Definition: combotst.c:138
INT_PTR CALLBACK CommDlgProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
Definition: serialui.c:191
DWORD dwReason
Definition: misc.cpp:154
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
HINSTANCE hInstance
Definition: charmap.c:20
#define ONE5STOPBITS
Definition: winbase.h:440
unsigned int BOOL
Definition: ntddk_ex.h:94
#define IDS_ODDPARITY
Definition: resource.h:6
#define IDC_STOPBITS
Definition: resource.h:32
#define CBR_2400
Definition: winbase.h:446
#define IDC_PARITY
Definition: resource.h:31
r reserved
Definition: btrfs.c:2865
BYTE Parity
Definition: serialui.h:37
#define CB_INSERTSTRING
Definition: winuser.h:1939
#define CBR_600
Definition: winbase.h:444
smooth NULL
Definition: ftsmooth.c:416
HWND WINAPI GetDesktopWindow(void)
Definition: window.c:652
LONG_PTR LPARAM
Definition: windef.h:208
#define IDS_TWOSTOPBITS
Definition: resource.h:11
const char * LPCSTR
Definition: xmlstorage.h:183
const BYTE ByteSizes[]
Definition: serialui.c:41
#define CBR_19200
Definition: winbase.h:450
VOID OkButton(HWND hDlg)
Definition: serialui.c:362
#define NOPARITY
Definition: winbase.h:434
#define CB_ERR
Definition: winuser.h:2410
BYTE StopBit
Definition: serialui.h:43
#define IDS_NOPARITY
Definition: resource.h:5
#define CBR_57600
Definition: winbase.h:453
#define IDS_TITLE
Definition: resource.h:30
#define GetProcessHeap()
Definition: compat.h:403
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
#define CBR_256000
Definition: winbase.h:456
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
__wchar_t WCHAR
Definition: xmlstorage.h:180
UINT InitialFlowIndex
Definition: serialui.h:31
#define WM_CLOSE
Definition: winuser.h:1603
#define WINAPI
Definition: msvc.h:8
static const UCHAR Index[8]
Definition: usbohci.c:18
unsigned long DWORD
Definition: ntddk_ex.h:95
#define CBR_56000
Definition: winbase.h:452
UINT StrId
Definition: serialui.h:38
DWORD WINAPI drvSetDefaultCommConfigW(LPCWSTR lpszDevice, LPCOMMCONFIG lpCommConfig, DWORD dwSize)
Definition: serialui.c:145
DWORD WINAPI drvCommConfigDialogA(LPCSTR lpszDevice, HWND hWnd, LPCOMMCONFIG lpCommConfig)
Definition: serialui.c:122
static const WCHAR L[]
Definition: oid.c:1250
#define DWLP_USER
Definition: winuser.h:866
GLenum GLsizei len
Definition: glext.h:6722
unsigned char BYTE
Definition: mem.h:68
#define CBR_14400
Definition: winbase.h:449
#define CB_SETCURSEL
Definition: winuser.h:1943
#define WM_COMMAND
Definition: winuser.h:1722
DWORD WINAPI drvGetDefaultCommConfigA(LPCSTR lpszDevice, LPCOMMCONFIG lpCommConfig, LPDWORD lpdwSize)
Definition: serialui.c:175
#define DEFAULT_STOPBITS_INDEX
Definition: serialui.h:26
static DWORD LPSTR PDWORD lpdwSize
Definition: process.c:72
#define DEFAULT_BAUD_INDEX
Definition: serialui.h:23
#define CBR_110
Definition: winbase.h:442
#define SWP_NOSIZE
Definition: winuser.h:1230
HWND WINAPI GetParent(_In_ HWND)
#define IDD_COMMDLG
Definition: resource.h:19
#define ODDPARITY
Definition: winbase.h:435
#define ERROR_CANCELLED
Definition: winerror.h:726
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define CBR_115200
Definition: winbase.h:454
#define IDC_FLOW
Definition: resource.h:33
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
unsigned int UINT
Definition: ndis.h:50
DWORD WINAPI drvSetDefaultCommConfigA(LPCSTR lpszDevice, LPCOMMCONFIG lpCommConfig, DWORD dwSize)
Definition: serialui.c:155
#define IDS_MARKPARITY
Definition: resource.h:4
static HINSTANCE hDllInstance
Definition: serialui.c:14
#define MultiByteToWideChar
Definition: compat.h:100
const STOPBIT_INFO StopBits[]
Definition: serialui.c:59
UINT StrId
Definition: serialui.h:44
BOOL WINAPI CopyRect(_Out_ LPRECT, _In_ LPCRECT)
DWORD WINAPI drvGetDefaultCommConfigW(LPCWSTR lpszDevice, LPCOMMCONFIG lpCommConfig, LPDWORD lpdwSize)
Definition: serialui.c:165
uint32_t * LPDWORD
Definition: typedefs.h:57
#define DEFAULT_PARITY_INDEX
Definition: serial.c:29
#define IDS_EVENPARITY
Definition: resource.h:3
#define UNIMPLEMENTED
Definition: debug.h:114
LONG bottom
Definition: windef.h:309
#define IDS_FC_XONXOFF
Definition: resource.h:15
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
#define SetWindowLongPtrW
Definition: winuser.h:5321
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
#define wsprintf
Definition: winuser.h:5840
const PARITY_INFO Parities[]
Definition: serialui.c:50
#define CBR_9600
Definition: winbase.h:448
#define SPACEPARITY
Definition: winbase.h:438
#define IDC_CANCELBTN
Definition: resource.h:22
GLuint64EXT * result
Definition: glext.h:11304
#define IDS_ONE5STOPBITS
Definition: resource.h:10
const DWORD Bauds[]
Definition: serialui.c:22
#define WM_INITDIALOG
Definition: winuser.h:1721
LPARAM lParam
Definition: combotst.c:139
#define HeapFree(x, y, z)
Definition: compat.h:402
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
Definition: env.c:54
#define CBR_300
Definition: winbase.h:443