1*c2c66affSColin Finck /*
2*c2c66affSColin Finck * PROJECT: ReactOS VGA Font Editor
3*c2c66affSColin Finck * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
4*c2c66affSColin Finck * PURPOSE: Main entry point of the application
5*c2c66affSColin Finck * COPYRIGHT: Copyright 2008 Colin Finck (colin@reactos.org)
6*c2c66affSColin Finck */
7*c2c66affSColin Finck
8*c2c66affSColin Finck #include "precomp.h"
9*c2c66affSColin Finck
10*c2c66affSColin Finck static const WCHAR szCharacterClipboardFormat[] = L"RosVgaFontChar";
11*c2c66affSColin Finck
12*c2c66affSColin Finck HINSTANCE hInstance;
13*c2c66affSColin Finck HANDLE hProcessHeap;
14*c2c66affSColin Finck PWSTR szAppName;
15*c2c66affSColin Finck UINT uCharacterClipboardFormat;
16*c2c66affSColin Finck
17*c2c66affSColin Finck INT WINAPI
wWinMain(HINSTANCE hInst,HINSTANCE hPrevInstance,LPWSTR lpCmdLine,int nCmdShow)18*c2c66affSColin Finck wWinMain(HINSTANCE hInst, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow)
19*c2c66affSColin Finck {
20*c2c66affSColin Finck HACCEL hAccel;
21*c2c66affSColin Finck INT nRet = 1;
22*c2c66affSColin Finck MSG msg;
23*c2c66affSColin Finck PMAIN_WND_INFO Info = 0;
24*c2c66affSColin Finck
25*c2c66affSColin Finck UNREFERENCED_PARAMETER(hPrevInstance);
26*c2c66affSColin Finck UNREFERENCED_PARAMETER(lpCmdLine);
27*c2c66affSColin Finck
28*c2c66affSColin Finck hInstance = hInst;
29*c2c66affSColin Finck hProcessHeap = GetProcessHeap();
30*c2c66affSColin Finck
31*c2c66affSColin Finck AllocAndLoadString(&szAppName, IDS_APPTITLE);
32*c2c66affSColin Finck
33*c2c66affSColin Finck hAccel = LoadAcceleratorsW( hInstance, MAKEINTRESOURCEW(IDA_MAINACCELERATORS) );
34*c2c66affSColin Finck
35*c2c66affSColin Finck uCharacterClipboardFormat = RegisterClipboardFormatW(szCharacterClipboardFormat);
36*c2c66affSColin Finck if(!uCharacterClipboardFormat)
37*c2c66affSColin Finck return 1;
38*c2c66affSColin Finck
39*c2c66affSColin Finck if( InitMainWndClass() && InitFontWndClass() && InitFontBoxesWndClass() && InitEditGlyphWndClasses() )
40*c2c66affSColin Finck {
41*c2c66affSColin Finck if( CreateMainWindow(nCmdShow, &Info) )
42*c2c66affSColin Finck {
43*c2c66affSColin Finck while( GetMessageW(&msg, NULL, 0, 0) )
44*c2c66affSColin Finck {
45*c2c66affSColin Finck if( !TranslateMDISysAccel(Info->hMdiClient, &msg) &&
46*c2c66affSColin Finck !TranslateAccelerator(Info->hMainWnd, hAccel, &msg) )
47*c2c66affSColin Finck {
48*c2c66affSColin Finck TranslateMessage(&msg);
49*c2c66affSColin Finck DispatchMessage(&msg);
50*c2c66affSColin Finck }
51*c2c66affSColin Finck }
52*c2c66affSColin Finck
53*c2c66affSColin Finck nRet = 0;
54*c2c66affSColin Finck }
55*c2c66affSColin Finck }
56*c2c66affSColin Finck
57*c2c66affSColin Finck HeapFree(hProcessHeap, 0, szAppName);
58*c2c66affSColin Finck
59*c2c66affSColin Finck // Just unregister our window classes, don't care whether they were created or not
60*c2c66affSColin Finck UnInitEditGlyphWndClasses();
61*c2c66affSColin Finck UnInitFontBoxesWndClass();
62*c2c66affSColin Finck UnInitFontWndClass();
63*c2c66affSColin Finck UnInitMainWndClass();
64*c2c66affSColin Finck
65*c2c66affSColin Finck return nRet;
66*c2c66affSColin Finck }
67