Convert resources to standard format without embedded binary data.
[wine] / programs / view / init.c
1 /*
2  * Copyright 1998 Douglas Ridgway
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  */
18
19 #include <windows.h>
20 #include "globals.h"
21 #include "resource.h"
22
23 /* global variables */
24
25 HINSTANCE hInst;
26 char szAppName[9];
27 char szTitle[80];
28
29 BOOL InitApplication(HINSTANCE hInstance)
30 {
31   WNDCLASSEX wc;
32
33   /* Load the application name and description strings */
34
35   LoadString(hInstance, IDS_APPNAME, szAppName, sizeof(szAppName));
36   LoadString(hInstance, IDS_DESCRIPTION, szTitle, sizeof(szTitle));
37
38   /* Fill in window class structure with parameters that describe the
39      main window */
40
41   wc.cbSize = sizeof(WNDCLASSEX);
42
43   /* Load small icon image */
44   wc.hIconSm = LoadImage(hInstance,
45                          MAKEINTRESOURCEA(IDI_APPICON),
46                          IMAGE_ICON,
47                          16, 16,
48                          0);
49
50   wc.style         = CS_HREDRAW | CS_VREDRAW;             /* Class style(s) */
51   wc.lpfnWndProc   = (WNDPROC)WndProc;                  /* Window Procedure */
52   wc.cbClsExtra    = 0;                          /* No per-class extra data */
53   wc.cbWndExtra    = 0;                         /* No per-window extra data */
54   wc.hInstance     = hInstance;                      /* Owner of this class */
55   wc.hIcon         = LoadIcon(hInstance, szAppName);  /* Icon name from .rc */
56   wc.hCursor       = LoadCursor(NULL, IDC_ARROW);                 /* Cursor */
57   wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);           /* Default color */
58   wc.lpszMenuName  = szAppName;                       /* Menu name from .rc */
59   wc.lpszClassName = szAppName;                      /* Name to register as */
60
61   /* Register the window class and return FALSE if unsuccesful */
62
63   if (!RegisterClassEx(&wc))
64     {
65       if (!RegisterClass((LPWNDCLASS)&wc.style))
66         return FALSE;
67     }
68
69   /* Call module specific initialization functions here */
70
71   return TRUE;
72 }
73
74 BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
75 {
76     HWND hwnd;
77
78     /* Save the instance handle in a global variable for later use */
79     hInst = hInstance;
80
81     /* Create main window */
82     hwnd = CreateWindow(szAppName,           /* See RegisterClass() call */
83                         szTitle,             /* window title */
84                         WS_OVERLAPPEDWINDOW, /* Window style */
85                         CW_USEDEFAULT, 0,    /* positioning */
86                         CW_USEDEFAULT, 0,    /* size */
87                         NULL,                /* Overlapped has no parent */
88                         NULL,                /* Use the window class menu */
89                         hInstance,
90                         NULL);
91
92     if (!hwnd)
93         return FALSE;
94
95     /* Call module specific instance initialization functions here */
96
97     /* show the window, and paint it for the first time */
98     ShowWindow(hwnd, nCmdShow);
99     UpdateWindow(hwnd);
100
101     return TRUE;
102 }