103 lines
3.4 KiB
C
103 lines
3.4 KiB
C
/*
|
|
* Copyright 1998 Douglas Ridgway
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
*/
|
|
|
|
#include <windows.h>
|
|
#include "globals.h"
|
|
#include "resource.h"
|
|
|
|
/* global variables */
|
|
|
|
HINSTANCE hInst;
|
|
char szAppName[9];
|
|
char szTitle[80];
|
|
|
|
BOOL InitApplication(HINSTANCE hInstance)
|
|
{
|
|
WNDCLASSEX wc;
|
|
|
|
/* Load the application name and description strings */
|
|
|
|
LoadString(hInstance, IDS_APPNAME, szAppName, sizeof(szAppName));
|
|
LoadString(hInstance, IDS_DESCRIPTION, szTitle, sizeof(szTitle));
|
|
|
|
/* Fill in window class structure with parameters that describe the
|
|
main window */
|
|
|
|
wc.cbSize = sizeof(WNDCLASSEX);
|
|
|
|
/* Load small icon image */
|
|
wc.hIconSm = LoadImage(hInstance,
|
|
MAKEINTRESOURCEA(IDI_APPICON),
|
|
IMAGE_ICON,
|
|
16, 16,
|
|
0);
|
|
|
|
wc.style = CS_HREDRAW | CS_VREDRAW; /* Class style(s) */
|
|
wc.lpfnWndProc = WndProc; /* Window Procedure */
|
|
wc.cbClsExtra = 0; /* No per-class extra data */
|
|
wc.cbWndExtra = 0; /* No per-window extra data */
|
|
wc.hInstance = hInstance; /* Owner of this class */
|
|
wc.hIcon = LoadIcon(hInstance, szAppName); /* Icon name from .rc */
|
|
wc.hCursor = LoadCursor(NULL, IDC_ARROW); /* Cursor */
|
|
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); /* Default color */
|
|
wc.lpszMenuName = szAppName; /* Menu name from .rc */
|
|
wc.lpszClassName = szAppName; /* Name to register as */
|
|
|
|
/* Register the window class and return FALSE if unsuccessful */
|
|
|
|
if (!RegisterClassEx(&wc))
|
|
{
|
|
if (!RegisterClass((LPWNDCLASS)&wc.style))
|
|
return FALSE;
|
|
}
|
|
|
|
/* Call module specific initialization functions here */
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
|
|
{
|
|
HWND hwnd;
|
|
|
|
/* Save the instance handle in a global variable for later use */
|
|
hInst = hInstance;
|
|
|
|
/* Create main window */
|
|
hwnd = CreateWindow(szAppName, /* See RegisterClass() call */
|
|
szTitle, /* window title */
|
|
WS_OVERLAPPEDWINDOW, /* Window style */
|
|
CW_USEDEFAULT, 0, /* positioning */
|
|
CW_USEDEFAULT, 0, /* size */
|
|
NULL, /* Overlapped has no parent */
|
|
NULL, /* Use the window class menu */
|
|
hInstance,
|
|
NULL);
|
|
|
|
if (!hwnd)
|
|
return FALSE;
|
|
|
|
/* Call module specific instance initialization functions here */
|
|
|
|
/* show the window, and paint it for the first time */
|
|
ShowWindow(hwnd, nCmdShow);
|
|
UpdateWindow(hwnd);
|
|
|
|
return TRUE;
|
|
}
|