home *** CD-ROM | disk | FTP | other *** search
/ ActiveX Programming Unleashed CD / AXU.iso / componen / interact / demo / data.2 / samples / ansic / INTERACT / ADDRELAT.C < prev    next >
Encoding:
C/C++ Source or Header  |  1996-02-19  |  8.2 KB  |  259 lines

  1. //lRegen_FileHeading
  2. //lRegen_FileHeading
  3.  
  4.      /********************************************************************
  5.       *
  6.       *   Source File:  addrelat.c                                        
  7.       *   Author:                                                         
  8.       *   Module:                                                         
  9.       *   Program Desc:                                                                                 
  10.       *   Date:         Mon Feb 19 13:11:39 1996                          
  11.       *   Language:     ANSI C
  12.       *
  13.       ********************************************************************/
  14.  
  15. #include ".\idoiface.h"
  16.  
  17.  
  18. //lRegen_Variables
  19. //lRegen_Variables
  20.  
  21. VIEW     hViewaddrelation;
  22. HWND     hWndaddrelation;
  23. LRESULT CALLBACK EXPORT fnaddrelationWndProc(HWND, UINT, WPARAM, LPARAM);
  24.  
  25. int fnaddrelation(HWND hParentWnd, UINT iData, void FAR *lpData)
  26. {
  27.    int   ReturnCode;
  28.  
  29.    //lRegen_BeginFunction
  30.    //lRegen_BeginFunction
  31.  
  32.    //lRegen_InitDlg
  33.    //lRegen_InitDlg
  34.  
  35.    if(NULL == (hViewaddrelation = vwCreateView(hInstance,
  36.                    MAKEINTRESOURCE(addrelation),
  37.                    hParentWnd,
  38.                    (VIEWPROC)fnaddrelationWndProc,
  39.                    NULL)))
  40.    {
  41.          //lRegen_Create
  42.          //lRegen_Create
  43.         return FALSE;
  44.    }
  45.    //lRegen_InitView
  46.    //lRegen_InitView
  47.    if((ReturnCode = vwShowModalView(hViewaddrelation)) == -1)
  48.    {
  49.         MessageBox(NULL, "Unable to display view", "System Error",
  50.                    MB_SYSTEMMODAL | MB_ICONHAND | MB_OK);
  51.         return FALSE;
  52.    }
  53.  
  54.    //lRegen_TermView
  55.    //lRegen_TermView
  56.    return(ReturnCode);
  57. }
  58.  
  59. LRESULT CALLBACK EXPORT fnaddrelationWndProc(HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam)
  60. {
  61. GETVIEW;
  62.    WORD CtlId;
  63.    WORD Notify;
  64.    HWND CtlWnd;
  65.  
  66.    //lRegen_WindowProcVariables
  67.    //lRegen_WindowProcVariables
  68.  
  69.    switch(uMessage)
  70.    {
  71.       //lRegen_WndProc
  72.       //lRegen_WndProc
  73.  
  74.       case WM_INITDIALOG :
  75.          //lRegen_InitDialogBegin
  76.          {
  77.             HWND   hIDO = GetActiveIDO();
  78.             ENTITY entity;
  79.             char   szNum[20+1];
  80.             char   szClassName[100+1];
  81.  
  82.  
  83.             if(IsWindow(hIDO))
  84.             {
  85.                if(idoIterateEntityFirst(hIDO))
  86.                   while(idoIterateEntityNext(hIDO, &entity))
  87.                   {
  88.                      wsprintf(szNum, "%d", entity.id);
  89.                      SendDlgItemMessage(hWnd, IDC_SEID, CB_ADDSTRING, 0, (LPARAM)(LPSTR)szNum);
  90.                      SendDlgItemMessage(hWnd, IDC_SENAME, CB_ADDSTRING, 0, (LPARAM)(LPSTR)entity.name);
  91.  
  92.                      SendDlgItemMessage(hWnd, IDC_DEID, CB_ADDSTRING, 0, (LPARAM)(LPSTR)szNum);
  93.                      SendDlgItemMessage(hWnd, IDC_DENAME, CB_ADDSTRING, 0, (LPARAM)(LPSTR)entity.name);
  94.                   }
  95.  
  96.                if(idoIterateRelationClassFirst(hIDO))
  97.                   while(idoIterateRelationClassNext(hIDO, (LPSTR)szClassName))
  98.                      SendDlgItemMessage(hWnd, IDC_RULE, CB_ADDSTRING, 0, (LPARAM)(LPSTR)szClassName);
  99.             }
  100.          }
  101.          //lRegen_InitDialogBegin
  102.          //Regen_WM_InitDialog
  103.          //Regen_WM_InitDialog
  104.          return TRUE;
  105.  
  106.       case WM_COMMAND :
  107.       #ifdef WIN32
  108.          CtlId  = LOWORD(wParam);
  109.          Notify = HIWORD(wParam);
  110.          CtlWnd = (HWND)lParam;
  111.       #else
  112.          CtlId  = wParam;
  113.          Notify = HIWORD(lParam);
  114.          CtlWnd = (HWND)LOWORD(lParam);
  115.       #endif
  116.          switch(CtlId)
  117.          {
  118.             case IDOK :
  119.                //Regen_IDOK
  120.                {
  121.                   char szE1[50];
  122.                   char szE2[50];
  123.                   long E1;
  124.                   long E2;
  125.                   char szName[100];
  126.                   char szClass[50];
  127.                   char szText[100];
  128.                   static long Line;
  129.                   char szTemp[50];
  130.  
  131.                   GetDlgItemText(hWnd, IDC_SENAME, szE1, 50);
  132.                   GetDlgItemText(hWnd, IDC_SEID, szTemp, 50);
  133.                   E1 = (long)atol(szTemp);
  134.                   GetDlgItemText(hWnd, IDC_DENAME, szE2, 50);
  135.                   GetDlgItemText(hWnd, IDC_DEID, szTemp, 50);
  136.                   E2 = (long)atol(szTemp);
  137.  
  138.                   SendDlgItemMessage(hWnd, IDC_LID, VW_SCRTOAPP, 0, (LPARAM)(LPVOID)&Line);
  139.                   GetDlgItemText(hWnd, IDC_LNAME, szName, 50);
  140.                   GetDlgItemText(hWnd, IDC_LTEXT, szText, 100);
  141.                   GetDlgItemText(hWnd, IDC_RULE, szClass, 50);
  142.  
  143.                   /*
  144.                    *   Add a relation from First Item to Second Item.
  145.                    */
  146.                   idoAddRelationFromClass(GetActiveIDO(), Line, szName,
  147.                                           szClass, szText,
  148.                                           E1, szE1,
  149.                                           E2, szE2);
  150.  
  151.                }
  152.                //Regen_IDOK
  153.                break; 
  154.  
  155.             case IDCANCEL :
  156.                //Regen_IDCANCEL
  157.                //Regen_IDCANCEL
  158.                break; 
  159.  
  160.             case IDC_SENAME :
  161.                   switch(Notify)
  162.                   {
  163.                      case CBN_SELCHANGE :
  164.                         //Regen_IDC_SENAME_CBN_SELCHANGE
  165.                         {
  166.                            int index;
  167.  
  168.                            index = (int)SendDlgItemMessage(hWnd, IDC_SENAME, CB_GETCURSEL, 0, 0L);
  169.                            SendDlgItemMessage(hWnd, IDC_SEID, CB_SETCURSEL, index, 0L);
  170.                         }
  171.                         //Regen_IDC_SENAME_CBN_SELCHANGE
  172.                         break;
  173.  
  174.                   }
  175.                   break;
  176.             case IDC_SEID :
  177.                   switch(Notify)
  178.                   {
  179.                      case CBN_SELCHANGE :
  180.                         //Regen_IDC_SEID_CBN_SELCHANGE
  181.                         {
  182.                            int index;
  183.  
  184.                            index = (int)SendDlgItemMessage(hWnd, IDC_SEID, CB_GETCURSEL, 0, 0L);
  185.                            SendDlgItemMessage(hWnd, IDC_SENAME, CB_SETCURSEL, index, 0L);
  186.                         }
  187.                         //Regen_IDC_SEID_CBN_SELCHANGE
  188.                         break;
  189.  
  190.                   }
  191.                   break;
  192.             case IDC_DENAME :
  193.                   switch(Notify)
  194.                   {
  195.                      case CBN_SELCHANGE :
  196.                         //Regen_IDC_DENAME_CBN_SELCHANGE
  197.                         {
  198.                            int index;
  199.  
  200.                            index = (int)SendDlgItemMessage(hWnd, IDC_DENAME, CB_GETCURSEL, 0, 0L);
  201.                            SendDlgItemMessage(hWnd, IDC_DEID, CB_SETCURSEL, index, 0L);
  202.                         }
  203.                         //Regen_IDC_DENAME_CBN_SELCHANGE
  204.                         break;
  205.  
  206.                   }
  207.                   break;
  208.             case IDC_DEID :
  209.                   switch(Notify)
  210.                   {
  211.                      case CBN_SELCHANGE :
  212.                         //Regen_IDC_DEID_CBN_SELCHANGE
  213.                         {
  214.                            int index;
  215.  
  216.                            index = (int)SendDlgItemMessage(hWnd, IDC_DEID, CB_GETCURSEL, 0, 0L);
  217.                            SendDlgItemMessage(hWnd, IDC_DENAME, CB_SETCURSEL, index, 0L);
  218.                         }
  219.                         //Regen_IDC_DEID_CBN_SELCHANGE
  220.                         break;
  221.  
  222.                   }
  223.                   break;
  224.             case IDC_RULE :
  225.                //Regen_IDC_RULE
  226.                //Regen_IDC_RULE
  227.                break; 
  228.  
  229.             case IDC_LID :
  230.                //Regen_IDC_LID
  231.                //Regen_IDC_LID
  232.                break; 
  233.  
  234.             case IDC_LNAME :
  235.                //Regen_IDC_LNAME
  236.                //Regen_IDC_LNAME
  237.                break; 
  238.  
  239.             case IDC_LTEXT :
  240.                //Regen_IDC_LTEXT
  241.                //Regen_IDC_LTEXT
  242.                break; 
  243.  
  244.             //lRegen_CustomCommand
  245.             //lRegen_CustomCommand
  246.             }
  247.             break;
  248.  
  249.       case WM_DESTROY :
  250.         //Regen_WM_Destroy
  251.         //Regen_WM_Destroy
  252.          break;
  253.    }
  254.    return DefViewProc(hWnd, uMessage, wParam, lParam);
  255. }
  256.  
  257. //Regen_CustomCode
  258. //Regen_CustomCode
  259.