Annotation of mstools/samples/regmpad/mpinit.c, revision 1.1.1.1

1.1       root        1: 
                      2: /***************************************************************************
                      3:  *                                                                        *
                      4:  *  MODULE     : MpInit.c                                                 *
                      5:  *                                                                        *
                      6:  *  PURPOSE    : Contains initialization code for MultiPad.               *
                      7:  *                                                                        *
                      8:  *  FUNCTIONS  : InitializeApplication() - Sets up Class data structure   *
                      9:  *                                         and registers window class.    *
                     10:  *                                                                        *
                     11:  *               InitializeInstance ()   - Does a per-instance initial-   *
                     12:  *                                         ization of MultiPad. Creates   *
                     13:  *                                         the "frame" and MDI client.    *
                     14:  *                                                                        *
                     15:  ***************************************************************************/
                     16: #include "multipad.h"
                     17: #include    "regdb.h"
                     18: 
                     19: 
                     20: CHAR szFrame[] = "regmpframe";   /* Class name for "frame" window */
                     21: CHAR szChild[] = "regmpchild";   /* Class name for MDI window     */
                     22: 
                     23: /****************************************************************************
                     24:  *                                                                         *
                     25:  *  FUNCTION   : InitializeApplication ()                                  *
                     26:  *                                                                         *
                     27:  *  PURPOSE    : Sets up the class data structures and does a one-time     *
                     28:  *              initialization of the app by registering the window classes*
                     29:  *                                                                         *
                     30:  *  RETURNS    : TRUE  - If RegisterClass() was successful for both classes.*
                     31:  *              FALSE - otherwise.                                         *
                     32:  *                                                                         *
                     33:  ****************************************************************************/
                     34: 
                     35: BOOL APIENTRY InitializeApplication()
                     36: {
                     37:     WNDCLASS   wc;
                     38: 
                     39:     /* Register the frame class */
                     40:     wc.style        = 0;
                     41:     wc.lpfnWndProc   = (WNDPROC) MPFrameWndProc;
                     42:     wc.cbClsExtra    = 0;
                     43:     wc.cbWndExtra    = 0;
                     44:     wc.hInstance    = hInst;
                     45:     wc.hIcon        = LoadIcon(hInst,IDMULTIPAD);
                     46:     wc.hCursor      = LoadCursor(NULL,IDC_ARROW);
                     47:     wc.hbrBackground = (HBRUSH) (COLOR_APPWORKSPACE+1);
                     48:     wc.lpszMenuName  = IDMULTIPAD;
                     49:     wc.lpszClassName = szFrame;
                     50: 
                     51:     if (!RegisterClass (&wc) )
                     52:        return FALSE;
                     53: 
                     54:     /* Register the MDI child class */
                     55:     wc.lpfnWndProc   = (WNDPROC) MPMDIChildWndProc;
                     56:     wc.hIcon        = LoadIcon(hInst,IDNOTE);
                     57:     wc.lpszMenuName  = NULL;
                     58:     wc.cbWndExtra    = CBWNDEXTRA;
                     59:     wc.lpszClassName = szChild;
                     60: 
                     61:     if (!RegisterClass(&wc))
                     62:        return FALSE;
                     63: 
                     64:     return TRUE;
                     65: 
                     66: }
                     67: 
                     68: /****************************************************************************
                     69:  *                                                                         *
                     70:  *  FUNCTION   : InitializeInstance ()                                     *
                     71:  *                                                                         *
                     72:  *  PURPOSE    : Performs a per-instance initialization of MultiPad. It     *
                     73:  *              also creates the frame and an MDI window.                  *
                     74:  *                                                                         *
                     75:  *  RETURNS    : TRUE  - If initialization was successful.                 *
                     76:  *              FALSE - otherwise.                                         *
                     77:  *                                                                         *
                     78:  ****************************************************************************/
                     79: BOOL APIENTRY InitializeInstance(LPSTR lpCmdLine, INT nCmdShow)
                     80: {
                     81:     extern HWND  hwndMDIClient;
                     82:     CHAR        sz[80], *pCmdLine;
                     83:     HDC         hdc;
                     84:     HMENU       hmenu;
                     85: 
                     86:     /* Get the base window title */
                     87:     LoadString (hInst, IDS_APPNAME, sz, sizeof(sz));
                     88: 
                     89:     /* Create the frame */
                     90:     hwndFrame = CreateWindow (szFrame,
                     91:                              sz,
                     92:                              WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,
                     93:                              CW_USEDEFAULT,
                     94:                              0,
                     95:                              CW_USEDEFAULT,
                     96:                              0,
                     97:                              NULL,
                     98:                              NULL,
                     99:                              hInst,
                    100:                              NULL);
                    101: 
                    102:     if ((!hwndFrame) || (!hwndMDIClient))
                    103:        return FALSE;
                    104: 
                    105:     /* Load main menu accelerators */
                    106:     if (!(hAccel = LoadAccelerators (hInst, IDMULTIPAD)))
                    107:        return FALSE;
                    108: 
                    109:     /* Display the frame window */
                    110:     ShowWindow (hwndFrame, nCmdShow);
                    111:     UpdateWindow (hwndFrame);
                    112: 
                    113:     if (   !CreateAppKeys()
                    114:         || !LoadConfiguration()
                    115:        )
                    116:     {
                    117:        PostMessage (hwndFrame, WM_CLOSE, 0, 0L);
                    118:        return TRUE;
                    119:     }
                    120: 
                    121:     /* If the command line string is empty, nullify the pointer to it
                    122:     ** else copy command line into our data segment 
                    123:     */
                    124:     if ( lpCmdLine && !(*lpCmdLine))
                    125:             pCmdLine = NULL;
                    126:     else {
                    127:         pCmdLine = (CHAR *) LocalAlloc(LPTR, lstrlen(lpCmdLine) + 1);
                    128:         if (pCmdLine)
                    129:            lstrcpy(pCmdLine, lpCmdLine);
                    130:     }
                    131: 
                    132:     /* Add the first MDI window */
                    133:     AddFile (pCmdLine);
                    134: 
                    135:     /* if we allocated a buffer then free it */
                    136:     if (pCmdLine)
                    137:         LocalFree((LOCALHANDLE) pCmdLine);
                    138: 
                    139:     return TRUE;
                    140:        UNREFERENCED_PARAMETER(hmenu);
                    141:        UNREFERENCED_PARAMETER(hdc);
                    142: 
                    143: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.