/* ----------------------------- MAININIT.C --------------------------
 *      Inizializzazioni e conclusioni principali
 * ---------------------------------------------------------------- */

#define STRICT

#include <Windows.h>
#include "dlg2.h"

#define TOPCLASS "Dlg"      // Classe della finestra principale

// ---- Riferimenti esterni

/* ---------------------------- TopInit -----------------------------
 *      Creazione ed inizializzazione della finestra principale
 * ---------------------------------------------------------------- */

static BOOL TopInit (LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASS      wc;                     // Struttura classe finestra
HWND          hWnd;                   // Finestra creata
BOOL          bOk = FALSE;            // Valore ritorno
char          szTitolo [50];          // Titolo finestra
long FAR PASCAL TopWndProc (HWND, unsigned, WORD, DWORD);

	do
	{
		 hAccel = NULL;          // Nessun acceleratore
// ---- Memorizza la classe della finestra

		if (!hPrevInst)                 // Solo se 1ma istanza
		{
			wc.hCursor       = LoadCursor (NULL, IDC_ARROW);
			wc.hIcon         = LoadIcon (hInst, MAKEINTRESOURCE(TOPICON));
			wc.lpszMenuName  = MAKEINTRESOURCE (TOPMENU);
			wc.lpszClassName = TOPCLASS;
			wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
			wc.hInstance     = hInst;
			wc.style         = CS_HREDRAW | CS_VREDRAW;
			wc.lpfnWndProc   = (WNDPROC)TopWndProc;
			wc.cbClsExtra    = 0;
			wc.cbWndExtra    = 0;

			bOk = RegisterClass (&wc);
			if (!bOk)
				break;
		}

// ---- Creazione finestra
		LoadString (hInst, TOPTITOLO, szTitolo, sizeof szTitolo);

		hWnd = CreateWindow (TOPCLASS, szTitolo, WS_OVERLAPPEDWINDOW,
				     CW_USEDEFAULT, CW_USEDEFAULT, 
				     CW_USEDEFAULT, CW_USEDEFAULT,
				     NULL, LoadMenu (hInst, 
				     MAKEINTRESOURCE (TOPMENU)), hInst, NULL);

		if (!hWnd)
			break;

// ---- Mostra la finestra
		ShowWindow (hWnd, nCmdShow);
		UpdateWindow (hWnd);

		bOk = TRUE;   // La creazione Š avvenuta correttamente
	}
	while (0);

	return bOk;
}

/* ------------------------------ MainInit ---------------------------
 *      Inizializzazioni, chiamate dal main
 * ---------------------------------------------------------------- */

BOOL FAR MainInit (HINSTANCE hInstance, HINSTANCE hPrevInstance,
		   LPSTR lpCmdLine, int nCmdShow)
{
BOOL    bOk = FALSE;            // Risultato

	do
	{
// ---- Inizializzazioni generali

		hInst = hInstance;              // Istanza corrente
		hPrevInst = hPrevInstance;      // Istanza precedente

// ---- Creazione della finestra principale
		if (!TopInit (lpCmdLine, nCmdShow))
			break;

// ---- Uscita normale
		bOk = TRUE;

	}
	while (0);

	return bOk;
}

/* ------------------------------ MainConc ---------------------------
 *      Conclusioni, chiamate dal main
 * ---------------------------------------------------------------- */

VOID FAR MainConc (VOID)
{
	return;
}