ReactOS  0.4.14-dev-55-g2da92ac
fdebug.c
Go to the documentation of this file.
1 /* fdebug.c : Defines the entry point for the application. */
2 
3 #include <tchar.h>
4 
5 #include <windef.h>
6 #include <winbase.h>
7 #include <wingdi.h>
8 #include <winuser.h>
9 #include <commdlg.h>
10 #include <process.h>
11 
12 #include "resource.h"
13 #include "rs232.h"
14 
15 #define MAX_LOADSTRING 100
16 
17 // Global Variables:
18 HINSTANCE hInst; // current instance
19 TCHAR szTitle[MAX_LOADSTRING]; // The title bar text
20 TCHAR szWindowClass[MAX_LOADSTRING]; // The title bar text
21 HWND hMainWnd; // The main window handle
22 HWND hDisplayWnd; // The window to display the incoming data
23 HWND hEditWnd; // The edit window to get input from the user
24 TCHAR strComPort[MAX_PATH] = TEXT("COM1"); // The COM port to use
25 TCHAR strBaudRate[MAX_PATH] = TEXT("115200"); // The baud rate to use
26 TCHAR strCaptureFileName[MAX_PATH] = TEXT(""); // The file name to capture to
27 BOOL bConnected = FALSE; // Tells us if we are currently connected
28 BOOL bCapturing = FALSE; // Tells us if we are currently capturing data
29 BOOL bLocalEcho = FALSE; // Tells us if local echo is currently enabled
30 HANDLE hCaptureFile; // Handle to the capture file
31 DWORD dwThreadId = 0; // Thread id of RS232 communication thread
32 
33 // Forward declarations of functions included in this code module:
43 
45  HINSTANCE hPrevInstance,
46  LPTSTR lpCmdLine,
47  int nCmdShow)
48 {
49  // TODO: Place code here.
50  MSG msg;
51  HACCEL hAccelTable;
52 
53  UNREFERENCED_PARAMETER(lpCmdLine);
54  UNREFERENCED_PARAMETER(hPrevInstance);
55 
56  // Initialize global strings
60 
61  // Perform application initialization:
62  if (!InitInstance (hInstance, nCmdShow))
63  {
64  return FALSE;
65  }
66 
68 
69  // Main message loop:
70  while (GetMessage(&msg, NULL, 0, 0))
71  {
72  if (!TranslateAccelerator(hMainWnd, hAccelTable, &msg))
73  {
76  }
77  }
78 
79  return (int)msg.wParam;
80 }
81 
82 
83 
84 //
85 // FUNCTION: MyRegisterClass()
86 //
87 // PURPOSE: Registers the window class.
88 //
89 // COMMENTS:
90 //
91 // This function and its usage is only necessary if you want this code
92 // to be compatible with Win32 systems prior to the 'RegisterClassEx'
93 // function that was added to Windows 95. It is important to call this function
94 // so that the application will get 'well formed' small icons associated
95 // with it.
96 //
98 {
99  WNDCLASSEX wcex;
100 
101  wcex.cbSize = sizeof(WNDCLASSEX);
102 
103  wcex.style = CS_HREDRAW | CS_VREDRAW;
104  wcex.lpfnWndProc = WndProc;
105  wcex.cbClsExtra = 0;
106  wcex.cbWndExtra = 0;
107  wcex.hInstance = hInstance;
109  wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
110  wcex.hbrBackground = NULL;//(HBRUSH)(COLOR_WINDOW+1);
115  IMAGE_ICON,
116  16,
117  16,
118  LR_SHARED);
119 
120  return RegisterClassEx(&wcex);
121 }
122 
123 //
124 // FUNCTION: InitInstance(HANDLE, int)
125 //
126 // PURPOSE: Saves instance handle and creates main window
127 //
128 // COMMENTS:
129 //
130 // In this function, we save the instance handle in a global variable and
131 // create and display the main program window.
132 //
134 {
135  HWND hWnd;
136 
137  hInst = hInstance; // Store instance handle in our global variable
138 
141 
142  if (!hWnd)
143  {
144  return FALSE;
145  }
146 
147  hMainWnd = hWnd;
148 
149  ShowWindow(hWnd, nCmdShow);
151 
152  return TRUE;
153 }
154 
156 {
157  int wmId, wmEvent;
158  PAINTSTRUCT ps;
159  HDC hdc;
160  RECT rc;
161  TCHAR WndText[MAX_PATH];
162  DWORD Index;
163  NONCLIENTMETRICS ncm;
164  HFONT hFont;
165 
166  switch (message)
167  {
168  case WM_CREATE:
169 
172 
173  memset(&ncm, 0, sizeof(NONCLIENTMETRICS));
174  ncm.cbSize = sizeof(NONCLIENTMETRICS);
175  SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), &ncm, 0);
176 
177  hFont = CreateFontIndirect(&ncm.lfMessageFont);
178 
181 
182  break;
183  case WM_COMMAND:
184  wmId = LOWORD(wParam);
185  wmEvent = HIWORD(wParam);
186 
187  if (lParam == (LPARAM)hEditWnd && wmEvent == EN_CHANGE)
188  {
189  GetWindowText(hEditWnd, WndText, MAX_PATH);
190 
191  if (_tcslen(WndText) > 0)
192  {
194 
195  if (!bConnected)
196  {
197  MessageBox(hWnd, TEXT("You are not currently connected!"), TEXT("Error"), MB_OK|MB_ICONSTOP);
198  break;
199  }
200 
201  for (Index=0; Index<_tcslen(WndText); Index++)
202  {
203  if (dwThreadId != 0)
204  {
206  }
207  }
208  }
209  }
210 
211  // Parse the menu selections:
212  switch (wmId)
213  {
214  case IDM_ABOUT:
216  break;
217  case IDM_EXIT:
219  break;
222  break;
223  case IDM_FILE_CONNECT:
224  if (bConnected)
225  {
226  MessageBox(hWnd, TEXT("You are already connected!"), TEXT("Error"), MB_OK|MB_ICONSTOP);
227  }
228  else
229  {
231  {
232  bConnected = TRUE;
236  }
237  }
238  break;
239  case IDM_FILE_DISCONNECT:
240  if (bConnected)
241  {
242  bConnected = FALSE;
245  }
246  else
247  {
248  MessageBox(hWnd, TEXT("You are not currently connected!"), TEXT("Error"), MB_OK|MB_ICONSTOP);
249  }
250  break;
253  {
254  bCapturing = TRUE;
258  }
259  break;
261  if (bCapturing)
262  {
263  bCapturing = FALSE;
267  hCaptureFile = NULL;
268  }
269  break;
270  case IDM_FILE_LOCALECHO:
271  if (bLocalEcho)
272  {
273  bLocalEcho = FALSE;
275  }
276  else
277  {
278  bLocalEcho = TRUE;
280  }
281  break;
282  default:
284  }
285  break;
286  case WM_PAINT:
287  hdc = BeginPaint(hWnd, &ps);
288  (void)hdc; // FIXME
289  EndPaint(hWnd, &ps);
290  break;
291  case WM_SIZE:
292 
293  GetClientRect(hWnd, &rc);
294 
295  MoveWindow(hDisplayWnd, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top - 20, TRUE);
296  MoveWindow(hEditWnd, rc.left, rc.bottom - 20, rc.right - rc.left, 20, TRUE);
297 
298  break;
299  case WM_DESTROY:
300  PostQuitMessage(0);
301  break;
302  default:
304  }
305  return 0;
306 }
307 
309 {
310  HWND hLicenseEditWnd;
311  TCHAR strLicense[0x1000];
312 
314 
315  switch (message)
316  {
317  case WM_INITDIALOG:
318 
319  hLicenseEditWnd = GetDlgItem(hDlg, IDC_LICENSE_EDIT);
320 
321  LoadString(hInst, IDS_LICENSE, strLicense, 0x1000);
322 
323  SetWindowText(hLicenseEditWnd, strLicense);
324 
325  return TRUE;
326 
327  case WM_COMMAND:
328  if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
329  {
330  EndDialog(hDlg, LOWORD(wParam));
331  return TRUE;
332  }
333  break;
334  }
335  return FALSE;
336 }
337 
339 {
341 
342  switch (message)
343  {
344  case WM_INITDIALOG:
345 
348 
349  return TRUE;
350 
351  case WM_COMMAND:
352  if (LOWORD(wParam) == IDOK)
353  {
356  }
357 
358  if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
359  {
360  EndDialog(hDlg, LOWORD(wParam));
361  return TRUE;
362  }
363  break;
364  }
365  return FALSE;
366 }
367 
369 {
371 
373 
374  switch (message)
375  {
376  case WM_INITDIALOG:
377 
379 
380  return TRUE;
381 
382  case WM_COMMAND:
383  if (LOWORD(wParam) == IDC_BROWSE)
384  {
385  memset(&ofn, 0, sizeof(OPENFILENAME));
386  ofn.lStructSize = sizeof(OPENFILENAME);
387  ofn.hwndOwner = hDlg;
388  ofn.hInstance = hInst;
389  ofn.lpstrFilter = NULL;
391  ofn.nMaxCustFilter = 0;
392  ofn.nFilterIndex = 0;
396  ofn.nMaxFileTitle = 0;
398  ofn.lpstrTitle = NULL;
400 
401  if (GetOpenFileName(&ofn))
402  {
404  }
405  }
406 
407  if (LOWORD(wParam) == IDOK)
408  {
410  }
411 
412  if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
413  {
414  EndDialog(hDlg, LOWORD(wParam));
415  return TRUE;
416  }
417  break;
418  }
419  return FALSE;
420 }
421 
423 {
424  HMENU hMenuBar;
425  HMENU hFileMenu;
426 
427  hMenuBar = GetMenu(hMainWnd);
428  hFileMenu = GetSubMenu(hMenuBar, 0);
430 }
431 
433 {
434  HMENU hMenuBar;
435  HMENU hFileMenu;
436 
437  hMenuBar = GetMenu(hMainWnd);
438  hFileMenu = GetSubMenu(hMenuBar, 0);
440 }
441 
443 {
444  BYTE Byte;
446  MSG msg;
447  DWORD dwNumberOfBytesWritten;
448 
450 
452 
454  {
455  MessageBox(hMainWnd, TEXT("Error opening port!"), TEXT("Error"), MB_OK|MB_ICONSTOP);
456  bConnected = FALSE;
457  return;
458  }
459 
460  _stprintf(String, TEXT("%s,n,8,1"), strBaudRate);
462  {
463  MessageBox(hMainWnd, TEXT("Error configuring port!"), TEXT("Error"), MB_OK|MB_ICONSTOP);
464  bConnected = FALSE;
465  return;
466  }
467 
468  while (bConnected)
469  {
470  if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
471  {
472  if (msg.message == WM_CHAR)
473  {
474  Rs232WriteByteWin32((BYTE)msg.wParam);
475 
476  if (bLocalEcho && msg.wParam != (WPARAM)TEXT('\r'))
477  {
479 
480  if (hCaptureFile)
481  {
482  WriteFile(hCaptureFile, &msg.wParam, sizeof(TCHAR), &dwNumberOfBytesWritten, NULL);
483  }
484  }
485  }
486  }
487 
488  if (Rs232ReadByteWin32(&Byte))
489  {
490  _stprintf(String, TEXT("%c"), Byte);
491 
493 
494  if (hCaptureFile)
495  {
496  WriteFile(hCaptureFile, &String[0], sizeof(TCHAR), &dwNumberOfBytesWritten, NULL);
497  }
498  }
499  }
500 
501  dwThreadId = 0;
503 }
INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM)
Definition: fdebug.c:308
#define IDM_FILE_DISCONNECT
Definition: resource.h:26
ATOM MyRegisterClass(HINSTANCE hInstance)
Definition: fdebug.c:97
#define TranslateAccelerator
Definition: winuser.h:5761
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
Definition: rw.c:24
UINT style
Definition: winuser.h:3176
TCHAR strBaudRate[MAX_PATH]
Definition: fdebug.c:25
#define MAKEINTRESOURCE
Definition: winuser.h:591
#define DispatchMessage
Definition: winuser.h:5666
BOOL WINAPI TranslateMessage(_In_ const MSG *)
Definition: tftpd.h:59
static HICON
Definition: imagelist.c:84
LPCSTR lpszMenuName
Definition: winuser.h:3184
#define PeekMessage
Definition: winuser.h:5731
#define TRUE
Definition: types.h:120
const CHAR * LPCTSTR
Definition: xmlstorage.h:193
#define IDOK
Definition: winuser.h:824
#define CloseHandle
Definition: compat.h:398
#define LR_SHARED
Definition: winuser.h:1090
#define IMAGE_ICON
Definition: winuser.h:212
#define RegisterClassEx
Definition: winuser.h:5738
#define IDC_BAUTRATE
Definition: resource.h:19
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
#define MF_BYCOMMAND
Definition: winuser.h:202
#define WM_CHAR
Definition: winuser.h:1699
HCURSOR hCursor
Definition: winuser.h:3182
#define IDM_ABOUT
Definition: resource.h:29
WNDPROC lpfnWndProc
Definition: winuser.h:3177
#define CreateWindow
Definition: winuser.h:5655
TCHAR szTitle[MAX_LOADSTRING]
Definition: fdebug.c:19
#define __cdecl
Definition: accygwin.h:79
LPSTR lpstrFileTitle
Definition: commdlg.h:338
#define IDM_FILE_CLEARDISPLAY
Definition: resource.h:24
HWND hwndOwner
Definition: commdlg.h:330
unsigned char Byte
Definition: zconf.h:391
LPCSTR lpszClassName
Definition: winuser.h:3185
WORD ATOM
Definition: dimm.idl:113
TCHAR strCaptureFileName[MAX_PATH]
Definition: fdebug.c:26
LPSTR lpstrCustomFilter
Definition: commdlg.h:333
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
#define IDC_BROWSE
Definition: resource.h:21
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1827
HWND hMainWnd
Definition: fdebug.c:21
#define ES_MULTILINE
Definition: pedump.c:667
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
Definition: ntddpcm.h:140
static HDC
Definition: imagelist.c:92
#define CALLBACK
Definition: compat.h:27
BOOL WINAPI UpdateWindow(_In_ HWND)
HWND hWnd
Definition: settings.c:17
#define SystemParametersInfo
Definition: winuser.h:5759
LONG top
Definition: windef.h:292
#define IDI_FDEBUG
Definition: resource.h:11
OPENFILENAME ofn
Definition: main.cpp:37
#define CS_HREDRAW
Definition: winuser.h:648
static WCHAR String[]
Definition: stringtable.c:55
UINT_PTR WPARAM
Definition: windef.h:207
BOOL Rs232ClosePortWin32(VOID)
Definition: rs232.c:68
#define WS_CHILD
Definition: pedump.c:617
#define MB_ICONSTOP
Definition: winuser.h:797
HICON hIconSm
Definition: winuser.h:3186
LONG left
Definition: windef.h:291
#define FILE_SHARE_WRITE
Definition: nt_native.h:681
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
BOOL WINAPI EndPaint(_In_ HWND, _In_ const PAINTSTRUCT *)
_In_ PVOID Parameter
Definition: ldrtypes.h:241
int32_t INT_PTR
Definition: typedefs.h:62
BOOL Rs232OpenPortWin32(TCHAR *CommPort)
Definition: rs232.c:32
#define FILE_APPEND_DATA
Definition: nt_native.h:634
LONG right
Definition: windef.h:293
BOOL WINAPI DestroyWindow(_In_ HWND)
#define GetOpenFileName
Definition: commdlg.h:665
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)
WPARAM wParam
Definition: combotst.c:138
HFONT hFont
Definition: main.c:53
CHAR * LPTSTR
Definition: xmlstorage.h:192
#define FILE_SHARE_READ
Definition: compat.h:125
BOOL Rs232ConfigurePortWin32(TCHAR *DeviceControlString)
Definition: rs232.c:96
#define GetWindowText
Definition: winuser.h:5699
#define IDC_COMPORT
Definition: resource.h:18
DWORD Id
DWORD nMaxFile
Definition: commdlg.h:337
VOID EnableFileMenuItemByID(UINT Id, BOOL Enable)
Definition: fdebug.c:422
VOID CheckLocalEchoMenuItem(BOOL Checked)
Definition: fdebug.c:432
#define DialogBox
Definition: winuser.h:5662
#define LoadAccelerators
Definition: winuser.h:5711
HINSTANCE hInstance
Definition: charmap.c:20
BOOL WINAPI EnableMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
HINSTANCE hInstance
Definition: winuser.h:3180
unsigned int BOOL
Definition: ntddk_ex.h:94
#define IDD_ABOUTBOX
Definition: resource.h:8
BOOL Rs232WriteByteWin32(BYTE DataByte)
Definition: rs232.c:239
HDC WINAPI BeginPaint(_In_ HWND, _Out_ LPPAINTSTRUCT)
BOOL bCapturing
Definition: fdebug.c:28
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM)
Definition: fdebug.c:155
#define CreateWindowEx
Definition: winuser.h:5656
#define CW_USEDEFAULT
Definition: winuser.h:225
size_t __cdecl _tcslen(const _TCHAR *str)
Definition: tcslen.h:9
smooth NULL
Definition: ftsmooth.c:416
INT_PTR CALLBACK ConnectionDialogProc(HWND, UINT, WPARAM, LPARAM)
Definition: fdebug.c:338
LONG_PTR LPARAM
Definition: windef.h:208
UINT cbSize
Definition: winuser.h:3175
HANDLE hCaptureFile
Definition: fdebug.c:30
HINSTANCE hInstance
Definition: commdlg.h:331
OPENFILENAMEA OPENFILENAME
Definition: commdlg.h:657
BOOL Rs232ReadByteWin32(BYTE *DataByte)
Definition: rs232.c:214
DWORD WINAPI GetCurrentThreadId(VOID)
Definition: thread.c:458
HBRUSH hbrBackground
Definition: winuser.h:3183
#define DefWindowProc
Definition: ros2win.h:31
#define WM_DESTROY
Definition: winuser.h:1591
#define PostMessage
Definition: winuser.h:5733
#define MF_CHECKED
Definition: winuser.h:132
#define CS_VREDRAW
Definition: winuser.h:653
char TCHAR
Definition: xmlstorage.h:189
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
HINSTANCE hInst
Definition: fdebug.c:18
#define WM_SIZE
Definition: winuser.h:1593
LPCSTR lpstrInitialDir
Definition: commdlg.h:340
#define MF_ENABLED
Definition: winuser.h:128
#define IDD_CONNECTION
Definition: resource.h:15
#define PostThreadMessage
Definition: winuser.h:5734
#define MAX_PATH
Definition: compat.h:26
DWORD lStructSize
Definition: commdlg.h:329
static const UCHAR Index[8]
Definition: usbohci.c:18
unsigned long DWORD
Definition: ntddk_ex.h:95
BOOL bConnected
Definition: fdebug.c:27
int cbWndExtra
Definition: winuser.h:3179
DWORD WINAPI CheckMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
#define OPEN_ALWAYS
Definition: disk.h:70
DWORD nMaxCustFilter
Definition: commdlg.h:334
#define WS_HSCROLL
Definition: pedump.c:628
#define OFN_NOREADONLYRETURN
Definition: commdlg.h:113
#define WM_PAINT
Definition: winuser.h:1602
DWORD dwThreadId
Definition: fdebug.c:31
#define FILE_ATTRIBUTE_NORMAL
Definition: compat.h:126
HICON hIcon
Definition: winuser.h:3181
HDC hdc
Definition: main.c:9
BOOL bLocalEcho
Definition: fdebug.c:29
unsigned char BYTE
Definition: mem.h:68
#define OFN_HIDEREADONLY
Definition: commdlg.h:107
#define MessageBox
Definition: winuser.h:5723
HMENU WINAPI GetSubMenu(_In_ HMENU, _In_ int)
#define WM_COMMAND
Definition: winuser.h:1722
#define MF_UNCHECKED
Definition: winuser.h:204
BOOL WINAPI MoveWindow(_In_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ BOOL)
TCHAR szWindowClass[MAX_LOADSTRING]
Definition: fdebug.c:20
#define LoadCursor
Definition: winuser.h:5713
VOID __cdecl Rs232Thread(VOID *Parameter)
Definition: fdebug.c:442
#define _stprintf
Definition: utility.h:124
#define IDM_FILE_STOPCAPTURE
Definition: resource.h:28
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
int cbClsExtra
Definition: winuser.h:3178
#define TEXT(s)
Definition: k32.h:26
TCHAR strComPort[MAX_PATH]
Definition: fdebug.c:24
#define WS_EX_CLIENTEDGE
Definition: winuser.h:384
IN OUT PVCB OUT PDIRENT OUT PBCB IN BOOLEAN CreateFile
Definition: fatprocs.h:904
#define IDS_LICENSE
Definition: resource.h:28
LPSTR lpstrFile
Definition: commdlg.h:336
#define SetWindowText
Definition: winuser.h:5758
LPCSTR lpstrFilter
Definition: commdlg.h:332
#define IDM_FILE_CONNECT
Definition: resource.h:25
#define CreateFontIndirect
Definition: wingdi.h:4439
unsigned int UINT
Definition: ndis.h:50
#define WS_VSCROLL
Definition: pedump.c:627
#define MB_OK
Definition: winuser.h:784
#define IDS_APP_TITLE
Definition: resource.h:10
#define GetMessage
Definition: winuser.h:5691
#define IDM_EXIT
Definition: resource.h:27
#define WM_SETFONT
Definition: winuser.h:1632
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
_CRTIMP uintptr_t __cdecl _beginthread(_In_ void(__cdecl *_StartAddress)(void *), _In_ unsigned _StackSize, _In_opt_ void *_ArgList)
#define msg(x)
Definition: auth_time.c:54
#define IDC_ARROW
Definition: winuser.h:682
LPCSTR lpstrTitle
Definition: commdlg.h:341
#define SendMessage
Definition: winuser.h:5744
#define WM_CREATE
Definition: winuser.h:1590
HWND hDisplayWnd
Definition: fdebug.c:22
#define WS_OVERLAPPEDWINDOW
Definition: pedump.c:637
#define HIWORD(l)
Definition: typedefs.h:246
LONG bottom
Definition: windef.h:294
#define LoadImage
Definition: winuser.h:5716
#define IDC_FDEBUG
Definition: resource.h:12
WNDCLASSEXA WNDCLASSEX
Definition: winuser.h:5620
#define LoadIcon
Definition: winuser.h:5714
#define PM_REMOVE
Definition: winuser.h:1182
#define MF_GRAYED
Definition: winuser.h:129
DWORD nFilterIndex
Definition: commdlg.h:335
#define IDCANCEL
Definition: winuser.h:825
LONG_PTR LRESULT
Definition: windef.h:209
#define IDC_CAPTUREFILENAME
Definition: resource.h:20
INT_PTR CALLBACK CaptureDialogProc(HWND, UINT, WPARAM, LPARAM)
Definition: fdebug.c:368
HWND hEditWnd
Definition: fdebug.c:23
#define ES_LEFT
Definition: pedump.c:664
#define WS_VISIBLE
Definition: pedump.c:620
#define memset(x, y, z)
Definition: compat.h:39
HMENU WINAPI GetMenu(_In_ HWND)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:60
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
Definition: fdebug.c:44
#define IDD_CAPTURE
Definition: resource.h:16
#define WM_INITDIALOG
Definition: winuser.h:1721
LPARAM lParam
Definition: combotst.c:139
#define IDM_FILE_STARTCAPTURE
Definition: resource.h:27
#define ES_AUTOHSCROLL
Definition: pedump.c:672
#define LOWORD(l)
Definition: pedump.c:82
BOOL InitInstance(HINSTANCE, int)
Definition: fdebug.c:133
__analysis_noreturn void WINAPI PostQuitMessage(_In_ int)
#define LoadString
Definition: winuser.h:5720
#define APIENTRY
Definition: api.h:79
#define IDM_FILE_LOCALECHO
Definition: resource.h:29
#define MAX_LOADSTRING
Definition: fdebug.c:15
DWORD nMaxFileTitle
Definition: commdlg.h:339
DWORD Flags
Definition: commdlg.h:342
#define IDC_LICENSE_EDIT
Definition: resource.h:20
#define EN_CHANGE
Definition: winuser.h:2004