6 * Copyright (C) 2002 Robert Dickenson <robd@reactos.org>
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23 #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
33 ////////////////////////////////////////////////////////////////////////////////
41 TCHAR szTitle
[MAX_LOADSTRING
];
42 TCHAR szFrameClass
[MAX_LOADSTRING
];
45 ////////////////////////////////////////////////////////////////////////////////
48 // FUNCTION: InitInstance(HANDLE, int)
50 // PURPOSE: Saves instance handle and creates main window
54 // In this function, we save the instance handle in a global variable and
55 // create and display the main program window.
58 BOOL
InitInstance(HINSTANCE hInstance
, int nCmdShow
)
60 WNDCLASSEX wcFrame
= {
62 CS_HREDRAW
| CS_VREDRAW
/*style*/,
67 LoadIcon(hInstance
, MAKEINTRESOURCE(IDI_ZOOMIN
)),
68 LoadCursor(0, IDC_ARROW
),
72 (HICON
)LoadImage(hInstance
, MAKEINTRESOURCE(IDI_ZOOMIN
), IMAGE_ICON
,
73 GetSystemMetrics(SM_CXSMICON
), GetSystemMetrics(SM_CYSMICON
), LR_SHARED
)
75 ATOM hFrameWndClass
= RegisterClassEx(&wcFrame
); // register frame window class
77 hMenuFrame
= LoadMenu(hInstance
, MAKEINTRESOURCE(IDR_ZOOMIN_MENU
));
79 hFrameWnd
= CreateWindowEx(0, (LPCTSTR
)(int)hFrameWndClass
, szTitle
,
80 WS_OVERLAPPEDWINDOW
| WS_EX_CLIENTEDGE
,
81 CW_USEDEFAULT
, CW_USEDEFAULT
, CW_USEDEFAULT
, CW_USEDEFAULT
,
82 NULL
, hMenuFrame
, hInstance
, NULL
/*lpParam*/);
88 ShowWindow(hFrameWnd
, nCmdShow
);
89 UpdateWindow(hFrameWnd
);
93 ////////////////////////////////////////////////////////////////////////////////
95 void ExitInstance(void)
97 DestroyMenu(hMenuFrame
);
101 int APIENTRY
WinMain(HINSTANCE hInstance
,
102 HINSTANCE hPrevInstance
,
109 // Initialize global strings
110 LoadString(hInstance
, IDS_APP_TITLE
, szTitle
, MAX_LOADSTRING
);
111 LoadString(hInstance
, IDC_ZOOMIN
, szFrameClass
, MAX_LOADSTRING
);
113 // Store instance handle in our global variable
116 // Perform application initialization:
117 if (!InitInstance(hInstance
, nCmdShow
)) {
120 hAccel
= LoadAccelerators(hInstance
, (LPCTSTR
)IDC_ZOOMIN
);
122 // Main message loop:
123 while (GetMessage(&msg
, (HWND
)NULL
, 0, 0)) {
124 if (!TranslateAccelerator(msg
.hwnd
, hAccel
, &msg
)) {
125 TranslateMessage(&msg
);
126 DispatchMessage(&msg
);