cryptdlg: Include objbase.h for function prototypes.
[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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, 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[5] = "View";
27 char szTitle[80];
28
29 BOOL InitApplication(HINSTANCE hInstance)
30 {
31   WNDCLASSEX wc;
32
33   /* Load the application description strings */
34   LoadString(hInstance, IDS_DESCRIPTION, szTitle, sizeof(szTitle));
35
36   /* Fill in window class structure with parameters that describe the
37      main window */
38
39   wc.cbSize = sizeof(WNDCLASSEX);
40
41   /* Load small icon image */
42   wc.hIconSm = LoadImage(hInstance,
43                          MAKEINTRESOURCEA(IDI_APPICON),
44                          IMAGE_ICON,
45                          16, 16,
46                          0);
47
48   wc.style         = CS_HREDRAW | CS_VREDRAW;             /* Class style(s) */
49   wc.lpfnWndProc   = WndProc;                             /* Window Procedure */
50   wc.cbClsExtra    = 0;                          /* No per-class extra data */
51   wc.cbWndExtra    = 0;                         /* No per-window extra data */
52   wc.hInstance     = hInstance;                      /* Owner of this class */
53   wc.hIcon         = LoadIcon(hInstance, szAppName);  /* Icon name from .rc */
54   wc.hCursor       = LoadCursor(NULL, IDC_ARROW);                 /* Cursor */
55   wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);           /* Default color */
56   wc.lpszMenuName  = szAppName;                       /* Menu name from .rc */
57   wc.lpszClassName = szAppName;                      /* Name to register as */
58
59   /* Register the window class and return FALSE if unsuccessful */
60
61   if (!RegisterClassEx(&wc))
62     {
63       if (!RegisterClass((LPWNDCLASS)&wc.style))
64         return FALSE;
65     }
66
67   /* Call module specific initialization functions here */
68
69   return TRUE;
70 }
71
72 BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
73 {
74     HWND hwnd;
75
76     /* Save the instance handle in a global variable for later use */
77     hInst = hInstance;
78
79     /* Create main window */
80     hwnd = CreateWindow(szAppName,           /* See RegisterClass() call */
81                         szTitle,             /* window title */
82                         WS_OVERLAPPEDWINDOW, /* Window style */
83                         CW_USEDEFAULT, 0,    /* positioning */
84                         CW_USEDEFAULT, 0,    /* size */
85                         NULL,                /* Overlapped has no parent */
86                         NULL,                /* Use the window class menu */
87                         hInstance,
88                         NULL);
89
90     if (!hwnd)
91         return FALSE;
92
93     /* Call module specific instance initialization functions here */
94
95     /* show the window, and paint it for the first time */
96     ShowWindow(hwnd, nCmdShow);
97     UpdateWindow(hwnd);
98
99     return TRUE;
100 }