home *** CD-ROM | disk | FTP | other *** search
- // GPtMain - main for program
- // copyright 1992 Pittsburgh Supercomputing Center
- #include "gpt.h"
- #include "new.h"
- // Multiple Document "main"
-
- // Application class statics
- HANDLE Appl::hInstance = 0;
- HANDLE Appl::hPrevInstance = 0;
- int Appl::nCmdShow = 0;
- LPSTR Appl::CmdParam = NULL;
- HWND Appl::hWndClient = NULL;
- HWND Appl::hWndFrame = NULL;
- FrameWindowPt Appl::theFrame = NULL;
- void newFail()
- {
- int i=1;
- }
- // Turn off warning: Parameter 'lpszCmdLine' is never used in function WinMain(unsigned int,unsigned int,char far*,int)
- #pragma argsused
-
- // Turn off warning aus- identifier MainWnd assigned value that is never used
- #pragma option -w-aus
-
- int PASCAL WinMain( HANDLE hInstance, HANDLE hPrevInstance, LPSTR lpszCmdLine,
- int nCmdShow )
- {
- set_new_handler(newFail);
- Appl::hInstance = hInstance;
- Appl::hPrevInstance = hPrevInstance;
- Appl::nCmdShow = nCmdShow;
- Appl::CmdParam = new char[lstrlen(lpszCmdLine) + 1];
- lstrcpy((LPSTR)Appl::CmdParam,lpszCmdLine);
- if ( ! Appl::hPrevInstance )
- {
- FrameWindow::Register();
- CGMWindow::Register();
- WMetaWindow::Register();
- }
- FrameWindow::LoadAccelerators(Appl::hInstance);
- FrameWindow::LoadMenu(Appl::hInstance);
- CGMWindow::LoadMenu(Appl::hInstance);
- //CGMWindow::LoadAccelerators(Appl::hInstance);
- WMetaWindow::LoadMenu(Appl::hInstance);
- Appl::theFrame = new FrameWindow; // fire constructor
-
- int stat = Appl::theFrame->MessageLoop(); // and process messages
- delete Appl::theFrame;
- if (Appl::CmdParam) delete []Appl::CmdParam;
- return stat;
- }
- // ********* WndProc
- long FAR PASCAL _export WndProc( HWND hWnd, WORD iMessage,
- WORD wParam, LONG lParam )
- {
- // Pointer to the (C++ object that is the) window.
- Window *pWindow = GetPointer( hWnd ); // invalid value if WM_CREATE not
- // yet processed
- if ( pWindow == 0 )
- {
- if ( iMessage == WM_CREATE )
- {
- LPCREATESTRUCT lpcs;
- lpcs = (LPCREATESTRUCT) lParam;
- pWindow = (Window *) lpcs->lpCreateParams;
-
- // Store a pointer to this object in the window's extra bytes;
- SetPointer( hWnd, pWindow );
- // Now let the object perform whatever initialization it
- // needs for WM_CREATE in its own WndProc.
- return pWindow->WndProc(hWnd, iMessage, wParam, lParam );
- }
- else
- return DefFrameProc( hWnd, Appl::hWndClient,
- iMessage, wParam, lParam );
- }
- else
- return pWindow->WndProc( hWnd, iMessage, wParam, lParam );
- }
-
- // ***** gptWndProc
- long FAR PASCAL _export gptWndProc( HWND hWnd, WORD iMessage,
- WORD wParam, LONG lParam )
- {
- // Pointer to the (C++ object that is the) window.
- Window *pWindow = GetPointer( hWnd ); // invalid value if WM_CREATE not
- // yet processed
- if ( pWindow == 0 )
- {
- if ( iMessage == WM_CREATE )
- {
- LPCREATESTRUCT lpcs;
- LPMDICREATESTRUCT lpMDIcs;
- lpcs = (LPCREATESTRUCT) lParam;
- lpMDIcs = (LPMDICREATESTRUCT)lpcs->lpCreateParams;
- //pWindow = (Window *) lpMDIcs->lParam;
- pWindow = (Window *)GetObjectPt(lpMDIcs->lParam );
- // Store a pointer to this object in the window's extra bytes;
- SetPointer( hWnd, pWindow );
- // Now let the object perform whatever initialization it
- // needs for WM_CREATE in its own WndProc.
- return pWindow->WndProc(hWnd, iMessage, wParam, lParam );
- }
- else
- return DefMDIChildProc( hWnd, iMessage, wParam, lParam );
- }
- else
- return pWindow->WndProc( hWnd, iMessage, wParam, lParam );
- }
-
-