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