home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd1.bin / tema / SW602 / Winbase / data1.cab / SDK_Files / C-lang / C.L1 / Appl.cpp next >
Encoding:
C/C++ Source or Header  |  2000-03-16  |  3.8 KB  |  112 lines

  1. /****************************************************************************/
  2. /* appl.cpp - zakladni schema aplikacniho programu ve WinBase602            */
  3. /* (C) Janus Drozd, 1992, 93, 94, 95, 96, 97, 98, 99                        */
  4. /* verze: 6.0 (18.1.1999)                                                   */
  5. /****************************************************************************/
  6. #include <windows.h>
  7. #include "wbkernel.h"
  8. #include "wbprezen.h"
  9. #include "wbprezex.h"
  10. /* #include "appl.sic"    definicni soubor vytvoreny pro tuto aplikaci */
  11.  
  12. LRESULT WINAPI MainWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
  13.  
  14. char jmeno_serveru[] = "WB60";
  15.  
  16. static char MOJE_APLIKACE[] = "MojeAplikace";
  17. HINSTANCE hInst;
  18. BOOL logged_in = FALSE;
  19. BOOL interf_is_init = FALSE;
  20.  
  21. BOOL InitApplication(HINSTANCE hInstance)   /* registrace tridy */
  22. { WNDCLASS wc;
  23.   wc.style         = CS_VREDRAW | CS_HREDRAW;
  24.   wc.lpfnWndProc   = (WNDPROC)MainWndProc;
  25.   wc.cbClsExtra    = 0;
  26.   wc.cbWndExtra    = 0;
  27.   wc.hInstance     = hInstance;
  28.   wc.hIcon         = 0;
  29.   wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
  30.   wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
  31.   wc.lpszMenuName  = NULL;
  32.   wc.lpszClassName = MOJE_APLIKACE;
  33.   return RegisterClass(&wc) != 0;
  34. }
  35.  
  36. HWND InitInstance(HINSTANCE hInstance)
  37. { WBFramePars wbf = { -1, 0 };
  38.   return CreateWindow(
  39.         MOJE_APLIKACE, "Toto je ramec pro aplikace ve WinBase602",
  40.         WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,
  41.         CW_USEDEFAULT, CW_USEDEFAULT, 640,480,
  42.         NULL, 0, hInstance, (void*)&wbf);
  43. }
  44.  
  45. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
  46.                    LPSTR lpCmdLine, int nCmdShow)
  47. { HWND hMainWindow, hClient;  MSG msg;
  48.   cd_t my_cd;  cdp_t cdp = &my_cd;
  49.   cdp_init(cdp);
  50.  /* otevreni hlavniho okna aplikace: */
  51.   if (!hPrevInstance)
  52.     if (!InitApplication(hInstance)) return 1;
  53.   hInst=hInstance;
  54.   if (!(hMainWindow=InitInstance(hInstance))) return 2;
  55.   ShowWindow(hMainWindow, nCmdShow);
  56.   UpdateWindow(hMainWindow);
  57.  /* napojeni na server */
  58.   if (link_kernel(jmeno_serveru, SW_SHOWMINNOACTIVE))
  59.     { DestroyWindow(hMainWindow);  return 3; }
  60.   if (interf_init((cdp_t)&my_cd, 0))
  61.     { DestroyWindow(hMainWindow);  return 4; }
  62.   interf_is_init=TRUE;
  63.   BringWindowToTop(hMainWindow);
  64.  /* prihlaseno se na server: */
  65.   if (!Alogin(hMainWindow))
  66.     { DestroyWindow(hMainWindow);  return 5; }
  67.   logged_in=TRUE;
  68.  
  69.   if (Set_application("PER_AGENDA")) Signalize();
  70.   else if (!Open_project("MIN_PLAT")) Signalize();
  71.  
  72.   Info_box("Vzorovß aplikace WinBase602",
  73.      "Po odstran∞nφ tohoto okna aplikaci ukonΦφte\nkombinacφ klßves Alt F4");
  74.  
  75.   hClient=GetDlgItem(hMainWindow, CLIENT_ID);  // MDI-klient vytvoreny WinBase602
  76.  
  77.   while (GetMessage(&msg, 0,0,0))
  78.     if (!TranslateMDISysAccel(hClient, &msg))
  79.     { TranslateMessage(&msg);
  80.       DispatchMessage(&msg);
  81.     }
  82.   return 0;
  83. }
  84.  
  85. LRESULT WINAPI MainWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
  86. { switch (message)
  87.   { case WM_DESTROY:
  88.       WinHelp(hWnd, "MYHELP.HLP", HELP_QUIT, 0);
  89.       if (logged_in) Logout();
  90.       if (interf_is_init) interf_close();
  91.       PostQuitMessage(0);
  92.       return DefWinBaseFrameProc(hWnd, message, wParam, lParam);
  93.  
  94.     case WM_COMMAND:
  95.       switch (wParam)
  96.       { case IDM_HELP_GENERIC:
  97.           WinHelp(hWnd, "MYHELP.HLP", HELP_CONTEXT, (DWORD)LOWORD(lParam));
  98.           break;
  99.         default:
  100.           return DefWinBaseFrameProc(hWnd, message, wParam, lParam);
  101.       }
  102.       break;
  103.  
  104.     case WM_CREATE:  // zprava WM_CREATE se predava do DefWinBaseFrameProc
  105.     default:
  106.       //return DefWindowProc(hWnd, message, wParam, lParam);
  107.       return DefWinBaseFrameProc(hWnd, message, wParam, lParam);
  108.  
  109.   }
  110.   return 0;
  111. }
  112.