no longer use deprecated ATAG_INITRD
[linexec-j720] / tester1.cpp
1 // tester1.cpp : Defines the entry point for the application.
2 //
3
4 #include "stdafx.h"
5 #include "tester1.h"
6 #include <commctrl.h>
7 //#include <aygshell.h>
8 #include <sipapi.h>
9 #include "setup.h"
10
11 #define MAX_LOADSTRING 100
12
13 // Global Variables:
14 HINSTANCE hInst; // The current instance
15 HWND hwndCB; // The command bar handle
16
17 //static SHACTIVATEINFO s_sai;
18
19 ATOM MyRegisterClass (HINSTANCE, LPTSTR);
20 BOOL InitInstance (HINSTANCE, int);
21 LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
22 LRESULT CALLBACK About (HWND, UINT, WPARAM, LPARAM);
23 HWND CreateRpCommandBar(HWND);
24
25
26 #pragma warning(disable: 4100 4710 4189; error: 4701)
27 /* who cares?!
28 4100: whining about parameters not being used.
29 4710: whining about screwing up inlining.
30 4189: initialized but not used. make that an error: later.
31 4701: usage w/o initialization.
32 */
33
34 int WINAPI WinMain( HINSTANCE hInstance,
35 HINSTANCE hPrevInstance,
36 LPTSTR lpCmdLine,
37 int nCmdShow)
38 {
39 MSG msg;
40 HACCEL hAccelTable;
41
42 // Perform application initialization:
43 if (!InitInstance (hInstance, nCmdShow))
44 {
45 return FALSE;
46 }
47
48 hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_TESTER1);
49
50 // Main message loop:
51 while (GetMessage(&msg, NULL, 0, 0))
52 {
53 if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
54 {
55 TranslateMessage(&msg);
56 DispatchMessage(&msg);
57 }
58 }
59
60 return msg.wParam;
61 }
62
63 //
64 // FUNCTION: MyRegisterClass()
65 //
66 // PURPOSE: Registers the window class.
67 //
68 // COMMENTS:
69 //
70 // It is important to call this function so that the application
71 // will get 'well formed' small icons associated with it.
72 //
73 ATOM MyRegisterClass(HINSTANCE hInstance, LPTSTR szWindowClass)
74 {
75 WNDCLASS wc;
76
77 wc.style = CS_HREDRAW | CS_VREDRAW;
78 wc.lpfnWndProc = (WNDPROC) WndProc;
79 wc.cbClsExtra = 0;
80 wc.cbWndExtra = 0;
81 wc.hInstance = hInstance;
82 wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_TESTER1));
83 wc.hCursor = 0;
84 wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
85 wc.lpszMenuName = 0;
86 wc.lpszClassName = szWindowClass;
87
88 return RegisterClass(&wc);
89 }
90
91 HANDLE OpenCOM1() {
92
93 static HANDLE COM1handle = INVALID_HANDLE_VALUE;
94 const char msg[] = "\r\n--------linexec--------\r\n";
95 unsigned long wrote;
96 int speed = CBR_115200;
97 HANDLE h;
98
99 if (COM1handle != INVALID_HANDLE_VALUE)
100 return (COM1handle);
101
102 h = CreateFile(TEXT("COM1:"),
103 GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0,
104 NULL);
105 if (h == INVALID_HANDLE_VALUE)
106 return (h);
107
108 DCB dcb;
109 if (!GetCommState(h, &dcb))
110 goto bad;
111
112 dcb.BaudRate = speed;
113 if (!SetCommState(h, &dcb))
114 goto bad;
115
116 // Print banner on serial console.
117 WriteFile(h, msg, sizeof msg, &wrote, 0);
118
119 COM1handle = h;
120
121 return (h);
122 bad:
123 CloseHandle(h);
124 return (INVALID_HANDLE_VALUE);
125 }
126
127 //
128 // FUNCTION: InitInstance(HANDLE, int)
129 //
130 // PURPOSE: Saves instance handle and creates main window
131 //
132 // COMMENTS:
133 //
134 // In this function, we save the instance handle in a global variable and
135 // create and display the main program window.
136 //
137
138 BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
139 {
140 HWND hWnd = NULL;
141 TCHAR szTitle[MAX_LOADSTRING]; // The title bar text
142 TCHAR szWindowClass[MAX_LOADSTRING]; // The window class name
143
144 hInst = hInstance; // Store instance handle in our global variable
145 // Initialize global string
146 LoadString(hInstance, IDC_TESTER1, szWindowClass, MAX_LOADSTRING);
147 LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
148
149 //If it is already running, then focus on the window
150 hWnd = FindWindow(szWindowClass, szTitle);
151 if (hWnd)
152 {
153 SetForegroundWindow ((HWND) (((DWORD)hWnd) | 0x01));
154 return 0;
155 }
156
157 MyRegisterClass(hInstance, szWindowClass);
158
159 RECT rect;
160 GetClientRect(hWnd, &rect);
161
162 OpenCOM1();
163 load_boot("\\My Documents\\params.txt");
164 load_boot("\\Storage Card\\params.txt");
165 load_boot("\\Speicherkarte\\params.txt");
166 load_boot("\\Carte de stockage\\params.txt");
167 load_boot("\\Mes documents\\params.txt");
168 load_boot("\\ÒÓØ ¶°ÄÞ\\params.txt");
169
170 hWnd = CreateWindow(szWindowClass, szTitle, WS_VISIBLE,
171 CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);
172 if (!hWnd)
173 {
174 return FALSE;
175 }
176
177
178
179 //When the main window is created using CW_USEDEFAULT the height of the menubar (if one
180 // is created is not taken into account). So we resize the window after creating it
181 // if a menubar is present
182 {
183 RECT rc;
184 GetWindowRect(hWnd, &rc);
185 rc.bottom -= MENU_HEIGHT;
186 if (hwndCB)
187 MoveWindow(hWnd, rc.left, rc.top, rc.right, rc.bottom, FALSE);
188 }
189
190
191 ShowWindow(hWnd, nCmdShow);
192 UpdateWindow(hWnd);
193
194 return TRUE;
195 }
196
197 //
198 // FUNCTION: WndProc(HWND, unsigned, WORD, LONG)
199 //
200 // PURPOSE: Processes messages for the main window.
201 //
202 // WM_COMMAND - process the application menu
203 // WM_PAINT - Paint the main window
204 // WM_DESTROY - post a quit message and return
205 //
206 //
207 LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
208 {
209
210 HDC hdc;
211
212 int wmId, wmEvent;
213
214 PAINTSTRUCT ps;
215
216 TCHAR szHello[MAX_LOADSTRING];
217
218
219
220 switch (message)
221
222 {
223
224 case WM_COMMAND:
225
226 wmId = LOWORD(wParam);
227
228 wmEvent = HIWORD(wParam);
229
230 // Parse the menu selections:
231
232 switch (wmId)
233
234 {
235
236 case IDM_HELP_ABOUT:
237
238 DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
239
240 break;
241
242 case IDOK:
243
244 SendMessage(hWnd, WM_ACTIVATE, MAKEWPARAM(WA_INACTIVE, 0), (LPARAM)hWnd);
245
246 SendMessage (hWnd, WM_CLOSE, 0, 0);
247
248 break;
249
250 default:
251
252 return DefWindowProc(hWnd, message, wParam, lParam);
253
254 }
255
256 break;
257
258 case WM_CREATE:
259
260 hwndCB = CreateRpCommandBar(hWnd);
261
262 break;
263
264 case WM_PAINT:
265
266 RECT rt;
267
268 hdc = BeginPaint(hWnd, &ps);
269
270 GetClientRect(hWnd, &rt);
271
272 LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING);
273
274 DrawText(hdc, szHello, _tcslen(szHello), &rt,
275
276 DT_SINGLELINE | DT_VCENTER | DT_CENTER);
277
278 EndPaint(hWnd, &ps);
279
280 break;
281
282 case WM_DESTROY:
283
284 CommandBar_Destroy(hwndCB);
285
286 PostQuitMessage(0);
287
288 break;
289
290 case WM_SETTINGCHANGE:
291
292 // SHHandleWMSettingChange(hWnd, wParam, lParam, &s_sai);
293
294 break;
295
296 default:
297
298 return DefWindowProc(hWnd, message, wParam, lParam);
299
300 }
301
302 return 0;
303
304 }
305
306
307
308 HWND CreateRpCommandBar(HWND hwnd)
309
310 {
311 /*
312 SHMENUBARINFO mbi;
313
314
315
316 memset(&mbi, 0, sizeof(SHMENUBARINFO));
317
318 mbi.cbSize = sizeof(SHMENUBARINFO);
319
320 mbi.hwndParent = hwnd;
321
322 mbi.nToolBarId = IDM_MENU;
323
324 mbi.hInstRes = hInst;
325
326 mbi.nBmpId = 0;
327
328 mbi.cBmpImages = 0;
329
330
331
332 if (!SHCreateMenuBar(&mbi))
333
334 return NULL;
335
336
337
338 return mbi.hwndMB;
339 */
340 return NULL;
341 }
342
343
344
345 // Mesage handler for the About box.
346
347 LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
348
349 {
350
351 // SHINITDLGINFO shidi;
352
353
354
355 switch (message)
356
357 {
358
359 case WM_INITDIALOG:
360
361 // Create a Done button and size it.
362
363 // shidi.dwMask = SHIDIM_FLAGS;
364
365 // shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIPDOWN | SHIDIF_SIZEDLGFULLSCREEN;
366
367 // shidi.hDlg = hDlg;
368
369 // SHInitDialog(&shidi);
370
371 return TRUE;
372
373
374
375 case WM_COMMAND:
376
377 if (LOWORD(wParam) == IDOK) {
378
379 EndDialog(hDlg, LOWORD(wParam));
380
381 return TRUE;
382
383 }
384
385 break;
386
387 }
388
389 return FALSE;
390
391 }
392
Impressum, Datenschutz