|  | #include <windows.h> | 
|  | #include "globals.h" | 
|  | #include "resource.h" | 
|  |  | 
|  | /* global variables */ | 
|  |  | 
|  | HINSTANCE hInst; | 
|  | char szAppName[9]; | 
|  | char szTitle[40]; | 
|  |  | 
|  | 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)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 unsuccesful */ | 
|  |  | 
|  | 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; | 
|  | } |