www.pudn.com > TapiComm.rar > INIT.c
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A // PARTICULAR PURPOSE. // // Copyright 1995 - 1998 Microsoft Corporation. All Rights Reserved. // // MODULE: init.c // // PURPOSE: Performs application and instance specific initialization. // // FUNCTIONS: // InitApplication() - Initializes window data and registers window. // // COMMENTS: // #include// required for all Windows applications #include "globals.h" // prototypes specific to this application HINSTANCE hInst; // current instance char szAppName[9]; // The name of this application char szTitle[40]; // The title bar text // // FUNCTION: InitApplication(HINSTANCE, int) // // PURPOSE: Initializes window data and registers window class. // // PARAMETERS: // hInstance - The handle to the instance of this application that // is currently being executed. // nCmdShow - Specifies how the main window is to be displayed. // // RETURN VALUE: // TRUE - Success // FALSE - Initialization failed // // COMMENTS: // // This function is called at application initialization time. It // performs initialization tasks for the current application instance. // Unlike Win16, in Win32, each instance of an application must register // window classes. // // In this function, we initialize a window class by filling out a data // structure of type WNDCLASS and calling the Windows RegisterClass() // function. Then we create the main window and show it. // // BOOL InitApplication(HINSTANCE hInstance, int nCmdShow) { WNDCLASS wc; HWND hwnd; // Main window handle. // Load the application name and description strings. LoadString(hInstance, IDS_APPNAME, szAppName, sizeof(szAppName)); LoadString(hInstance, IDS_DESCRIPTION, szTitle, sizeof(szTitle)); // Save the instance handle in static variable, which will be used in // many subsequence calls from this application to Windows. hInst = hInstance; // Store instance handle in our global variable // Fill in window class structure with parameters that describe the // main window. wc.style = CS_HREDRAW | CS_VREDRAW; // Class style(s). wc.lpfnWndProc = (WNDPROC)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 = CreateSolidBrush(GetSysColor(COLOR_3DFACE)); wc.lpszMenuName = szAppName; // Menu name from .RC wc.lpszClassName = szAppName; // Name to register as // Register the window class and return FALSE if unsuccesful. if (!RegisterClass(&wc)) { return FALSE; } // Create a main window for this application instance. hwnd = CreateWindow(szAppName, // See RegisterClass() call szTitle, // Text for window title bar WS_OVERLAPPEDWINDOW, // Window style CW_USEDEFAULT, 0, // Use default positioning CW_USEDEFAULT, 0, // Use default size NULL, // Overlapped has no parent NULL, // Use the window class menu hInstance, // This instance owns this window NULL // Don't need data in WM_CREATE ); // If window could not be created, return "failure" if (!hwnd) return FALSE; // Make the window visible; update its client area; and return "success" ShowWindow(hwnd, nCmdShow); // Show the window UpdateWindow(hwnd); // Sends WM_PAINT message return TRUE; // We succeeded... }