home *** CD-ROM | disk | FTP | other *** search
/ PC World 1999 July / PCWorld_1999-07_cd.bin / 602 / WBPERSON / data1.cab / SDK_Files / C-lang / MFC / WBMFC.H < prev    next >
C/C++ Source or Header  |  1999-06-09  |  37KB  |  819 lines

  1. // wbmfc.h : header file
  2. //
  3.  
  4. #ifndef __WBMFC__
  5. #define __WBMFC__
  6.  
  7. #include "wbprezen.h"
  8. #include "wbkernel.h"
  9.  
  10. #define SZM_MDI_CHILD_TYPE WM_SZM_BASE + 201
  11. #define MSG_BAD_PASSWORD   1210
  12. #define EDIT_MDI_CHILD     4522
  13.  
  14. extern "C" DllImport void WINAPI Kernel_error_box(int errnum);
  15. extern "C" DllImport void WINAPI errbox(const char FAR * text);
  16.  
  17. #ifdef WIN32
  18. inline WORD GetCmdID  (WPARAM wPar, LPARAM lPar){return((WORD)wPar);}
  19. inline WORD GetCmdCMD (WPARAM wPar, LPARAM lPar){return(*((WORD *)&wPar + 1));}
  20. inline HWND GetCmdHWND(WPARAM wPar, LPARAM lPar){return((HWND)lPar);}
  21. #else
  22. inline WORD GetCmdID  (WPARAM wPar, LPARAM lPar){return(wPar);}
  23. inline WORD GetCmdCMD (WPARAM wPar, LPARAM lPar){return(*((WORD *)&lPar + 1));}
  24. inline HWND GetCmdHWND(WPARAM wPar, LPARAM lPar){return((HWND)lPar);}
  25. #endif
  26.  
  27. class CWBCursTab
  28. {
  29. public:
  30.  
  31.     tcurstab m_CursTab;
  32.     cdp_t    m_cdp;
  33.  
  34.     CWBCursTab(cdp_t cdp = NULL){m_cdp = cdp;}
  35.  
  36.     inline trecnum Append()
  37.            {return ::Append(m_CursTab);}
  38.     inline BOOL Close()
  39.            {return IsTable() ? ::Uninst_table(m_CursTab) : ::Close_cursor(m_CursTab);}
  40.     inline BOOL C_avg(const char *AttrName, const char *Condition, void *Result)
  41.            {return ::C_avg(m_CursTab, AttrName, Condition, Result);}
  42.     inline BOOL C_count(const char *AttrName, const char *Condition, trecnum *Result)
  43.            {return ::C_count(m_CursTab, AttrName, Condition, Result);}
  44.     inline BOOL C_max(const char *AttrName, const char *Condition, void *Result)
  45.            {return ::C_max(m_CursTab, AttrName, Condition, Result);}
  46.     inline BOOL C_min(const char *AttrName, const char *Condition, void *Result)
  47.            {return ::C_min(m_CursTab, AttrName, Condition, Result);}
  48.     inline BOOL C_sum(const char *AttrName, const char *Condition, void *Result)
  49.            {return ::C_sum(m_CursTab, AttrName, Condition, Result);}
  50.     inline BOOL Data_export(tcateg Categ, const char *fName, unsigned Format, int Recode)
  51.            {return ::Data_export(m_CursTab, Categ, fName, Format, Recode);}
  52.     inline BOOL Delete(trecnum position)
  53.            {return ::Delete(m_CursTab, position);}
  54.     inline BOOL Delete_all_records()
  55.            {return ::Delete_all_records(m_CursTab);}
  56.     inline BOOL Get_fcursor(window_id id, WORD *Flags)
  57.            {return ::Get_fcursor(id, &m_CursTab, Flags);}
  58.     inline trecnum Insert()
  59.            {return ::Insert(m_CursTab);}
  60.     inline BOOL IsTable()
  61.            {return m_CursTab >= 0x8000;}
  62.     inline trecnum Look_up(const char *AttrName, void *Res)
  63.            {return ::Look_up(m_CursTab, AttrName, Res);}
  64.     inline BOOL Read(trecnum Position, tattrib Attr, const modifrec *Access, void *Buffer)
  65.            {return ::Read(m_CursTab, Position, Attr, Access, Buffer);}
  66.     inline BOOL Read_ind(trecnum Position, tattrib Attr, uns16 Index, void *Buffer)
  67.            {return ::Read_ind(m_CursTab, Position, Attr, Index, Buffer);}
  68.     inline BOOL Read_ind_cnt(trecnum Position, tattrib Attr, uns16 *Count)
  69.            {return ::Read_ind_cnt(m_CursTab, Position, Attr, Count);}
  70.     inline BOOL Read_len(trecnum Position, tattrib Attr, uns16 Index, uns32 *Size)
  71.            {return ::Read_len(m_CursTab, Position, Attr, Index, Size);}
  72.     inline BOOL Read_lock_record(trecnum Position)
  73.            {return ::Read_lock_record(m_CursTab, Position);}
  74.     inline BOOL Read_lock_table()
  75.            {return ::Read_lock_table(m_CursTab);}
  76.     inline BOOL Read_record(trecnum Position, void *Buffer, uns16 DataSize)
  77.            {return ::Read_record(m_CursTab, Position, Buffer, DataSize);}
  78.     inline BOOL Read_unlock_record(trecnum Position)
  79.            {return ::Read_unlock_record(m_CursTab, Position);}
  80.     inline BOOL Read_unlock_table()
  81.            {return ::Read_unlock_table(m_CursTab);}
  82.     inline BOOL Read_var(trecnum Position, tattrib Attr, uns16 Index, uns32 Start, uns32 Size, void *Buffer, uns32 *pSize)
  83.            {return ::Read_var(m_CursTab, Position, Attr, Index, Start, Size, Buffer, pSize);}
  84.     inline BOOL Rec_cnt(trecnum *RecNum)
  85.            {return ::Rec_cnt(m_CursTab, RecNum);}
  86.     inline BOOL Set_fcursor(window_id id, tcursnum curs, uns32 Flags)
  87.            {return ::Set_fcursor(id, m_CursTab, Flags);}
  88.     inline BOOL Write(trecnum Position, tattrib Attr, const modifrec *Access, const void *Buffer, uns16 DataSize)
  89.            {return ::Write(m_CursTab, Position, Attr, Access, Buffer, DataSize);}
  90.     inline BOOL Write_ind(trecnum Position, tattrib Attr, uns16 Index, void * Buffer, uns16 Size)
  91.            {return ::Write_ind(m_CursTab, Position, Attr, Index, Buffer, Size);}
  92.     inline BOOL Write_ind_cnt(trecnum Position, tattrib Attr, uns16 Count)
  93.            {return ::Write_ind_cnt(m_CursTab, Position, Attr, Count);}
  94.     inline BOOL Write_len(trecnum Position, tattrib Attr, uns16 Index, uns32 Size)
  95.            {return ::Write_len(m_CursTab, Position, Attr, Index, Size);}
  96.     inline BOOL Write_lock_record(trecnum Position)
  97.            {return ::Write_lock_record(m_CursTab, Position);}
  98.     inline BOOL Write_lock_table()
  99.            {return ::Write_lock_table(m_CursTab);}
  100.     inline BOOL Write_record(trecnum Position, const void *Buffer, uns16 DataSize)
  101.            {return ::Write_record(m_CursTab, Position, Buffer, DataSize);}
  102.     inline BOOL Write_unlock_record(trecnum Position)
  103.            {return ::Write_unlock_record(m_CursTab, Position);}
  104.     inline BOOL Write_unlock_table()
  105.            {return ::Write_unlock_table(m_CursTab);}
  106.     inline BOOL Write_var(trecnum Position, tattrib Attr, uns16 Index, uns32 Start, uns32 Size, void *Buffer)
  107.            {return ::Write_var(m_CursTab, Position, Attr, Index, Start, Size, Buffer);}
  108.  
  109.     inline trecnum cd_Append()
  110.            {return ::cd_Append(m_cdp, m_CursTab);}
  111.     inline BOOL cd_Close()
  112.            {return IsTable() ? ::Uninst_table(m_CursTab) : ::cd_Close_cursor(m_cdp, m_CursTab);}
  113.     inline BOOL cd_C_avg(const char *AttrName, const char *Condition, void *Result)
  114.            {return ::cd_C_avg(m_cdp, m_CursTab, AttrName, Condition, Result);}
  115.     inline BOOL cd_C_count(const char *AttrName, const char *Condition, trecnum *Result)
  116.            {return ::cd_C_count(m_cdp, m_CursTab, AttrName, Condition, Result);}
  117.     inline BOOL cd_C_max(const char *AttrName, const char *Condition, void *Result)
  118.            {return ::cd_C_max(m_cdp, m_CursTab, AttrName, Condition, Result);}
  119.     inline BOOL cd_C_min(const char *AttrName, const char *Condition, void *Result)
  120.            {return ::cd_C_min(m_cdp, m_CursTab, AttrName, Condition, Result);}
  121.     inline BOOL cd_C_sum(const char *AttrName, const char *Condition, void *Result)
  122.            {return ::cd_C_sum(m_cdp, m_CursTab, AttrName, Condition, Result);}
  123.     inline BOOL cd_Delete(trecnum position)
  124.            {return ::cd_Delete(m_cdp, m_CursTab, position);}
  125.     inline BOOL cd_Delete_all_records()
  126.            {return ::cd_Delete_all_records(m_cdp, m_CursTab);}
  127.     inline trecnum cd_Insert()
  128.            {return ::cd_Insert(m_cdp, m_CursTab);}
  129.     inline trecnum cd_Look_up(const char *AttrName, void *Res)
  130.            {return ::cd_Look_up(m_cdp, m_CursTab, AttrName, Res);}
  131.     inline BOOL cd_Read(trecnum Position, tattrib Attr, const modifrec *Access, void *Buffer)
  132.            {return ::cd_Read(m_cdp, m_CursTab, Position, Attr, Access, Buffer);}
  133.     inline BOOL cd_Read_ind(trecnum Position, tattrib Attr, uns16 Index, void *Buffer)
  134.            {return ::cd_Read_ind(m_cdp, m_CursTab, Position, Attr, Index, Buffer);}
  135.     inline BOOL cd_Read_ind_cnt(trecnum Position, tattrib Attr, uns16 *Count)
  136.            {return ::cd_Read_ind_cnt(m_cdp, m_CursTab, Position, Attr, Count);}
  137.     inline BOOL cd_Read_len(trecnum Position, tattrib Attr, uns16 Index, uns32 *Size)
  138.            {return ::cd_Read_len(m_cdp, m_CursTab, Position, Attr, Index, Size);}
  139.     inline BOOL cd_Read_lock_record(trecnum Position)
  140.            {return ::cd_Read_lock_record(m_cdp, m_CursTab, Position);}
  141.     inline BOOL cd_Read_lock_table()
  142.            {return ::cd_Read_lock_table(m_cdp, m_CursTab);}
  143.     inline BOOL cd_Read_record(trecnum Position, void *Buffer, uns16 DataSize)
  144.            {return ::cd_Read_record(m_cdp, m_CursTab, Position, Buffer, DataSize);}
  145.     inline BOOL cd_Read_unlock_record(trecnum Position)
  146.            {return ::cd_Read_unlock_record(m_cdp, m_CursTab, Position);}
  147.     inline BOOL cd_Read_unlock_table()
  148.            {return ::cd_Read_unlock_table(m_cdp, m_CursTab);}
  149.     inline BOOL cd_Read_var(trecnum Position, tattrib Attr, uns16 Index, uns32 Start, uns32 Size, void *Buffer, uns32 *pSize)
  150.            {return ::cd_Read_var(m_cdp, m_CursTab, Position, Attr, Index, Start, Size, Buffer, pSize);}
  151.     inline BOOL cd_Rec_cnt(trecnum *RecNum)
  152.            {return ::cd_Rec_cnt(m_cdp, m_CursTab, RecNum);}
  153.     inline BOOL cd_Write(trecnum Position, tattrib Attr, const modifrec *Access, const void *Buffer, uns16 DataSize)
  154.            {return ::cd_Write(m_cdp, m_CursTab, Position, Attr, Access, Buffer, DataSize);}
  155.     inline BOOL cd_Write_ind(trecnum Position, tattrib Attr, uns16 Index, void * Buffer, uns16 Size)
  156.            {return ::cd_Write_ind(m_cdp, m_CursTab, Position, Attr, Index, Buffer, Size);}
  157.     inline BOOL cd_Write_ind_cnt(trecnum Position, tattrib Attr, uns16 Count)
  158.            {return ::cd_Write_ind_cnt(m_cdp, m_CursTab, Position, Attr, Count);}
  159.     inline BOOL cd_Write_len(trecnum Position, tattrib Attr, uns16 Index, uns32 Size)
  160.            {return ::cd_Write_len(m_cdp, m_CursTab, Position, Attr, Index, Size);}
  161.     inline BOOL cd_Write_lock_record(trecnum Position)
  162.            {return ::cd_Write_lock_record(m_cdp, m_CursTab, Position);}
  163.     inline BOOL cd_Write_lock_table()
  164.            {return ::cd_Write_lock_table(m_cdp, m_CursTab);}
  165.     inline BOOL cd_Write_record(trecnum Position, const void *Buffer, uns16 DataSize)
  166.            {return ::cd_Write_record(m_cdp, m_CursTab, Position, Buffer, DataSize);}
  167.     inline BOOL cd_Write_unlock_record(trecnum Position)
  168.            {return ::cd_Write_unlock_record(m_cdp, m_CursTab, Position);}
  169.     inline BOOL cd_Write_unlock_table()
  170.            {return ::cd_Write_unlock_table(m_cdp, m_CursTab);}
  171.     inline BOOL cd_Write_var(trecnum Position, tattrib Attr, uns16 Index, uns32 Start, uns32 Size, void *Buffer)
  172.            {return ::cd_Write_var(m_cdp, m_CursTab, Position, Attr, Index, Start, Size, Buffer);}
  173.  
  174.     inline operator tcurstab() const
  175.            {return(m_CursTab);}
  176. };
  177.  
  178.  
  179. class CWBTable : public CWBCursTab
  180. {
  181. public:
  182.  
  183.     CWBTable(cdp_t cdp = NULL) : CWBCursTab(cdp){}
  184.  
  185.     inline BOOL Attribute_info(const char *AttrName, tattrib *AttrNum, uns8 *AttrType, uns8 *AttrMult, uns16 *AttrSpecif)
  186.            {return ::Attribute_info((ttablenum)m_CursTab, AttrName, AttrNum, AttrType, AttrMult, AttrSpecif);}
  187.     inline BOOL Compact_table()
  188.            {return ::Compact_table((ttablenum)m_CursTab);}
  189.     inline BOOL Enable_index(sig16 Which, BOOL Enable)
  190.            {return ::Enable_index((ttablenum)m_CursTab, Which, Enable);}
  191.     inline BOOL Enum_attributes(LPVOID callback)
  192.            {return ::Enum_attributes((ttablenum)m_CursTab, (enum_attr FAR *)callback);}
  193.     inline BOOL Find_object(const char *Name)
  194.            {return ::Find_object(Name, CATEG_TABLE, (tobjnum *)&m_CursTab);}
  195.     inline BOOL Free_deleted()
  196.            {return ::Free_deleted((ttablenum)m_CursTab);}
  197.     inline BOOL Get_data_rights(const char *UserName, tright *Rights, tdright *rdRights, tdright *wrRights)
  198.            {return ::Get_data_rights((ttablenum)m_CursTab, UserName, Rights, rdRights, wrRights);}
  199.     inline BOOL Open(const char *Name)
  200.            {return ::Find_object(Name, CATEG_TABLE, (tobjnum *)&m_CursTab);}
  201.     inline BOOL Set_data_rights(const char *UserName, tright Rights, tdright rdRights, tdright wrRights)
  202.            {return ::Set_data_rights((ttablenum)m_CursTab, UserName, Rights, rdRights, wrRights);}
  203.     inline BOOL Undelete(trecnum Position)
  204.            {return ::Undelete((ttablenum)m_CursTab, Position);}
  205.     inline BOOL Close()
  206.            {return ::Uninst_table((ttablenum)m_CursTab);}
  207.     inline BOOL Uninst_table()
  208.            {return ::Uninst_table((ttablenum)m_CursTab);}
  209.  
  210.     inline BOOL cd_Attribute_info(const char *AttrName, tattrib *AttrNum, uns8 *AttrType, uns8 *AttrMult, uns16 *AttrSpecif)
  211.            {return ::cd_Attribute_info(m_cdp, (ttablenum)m_CursTab, AttrName, AttrNum, AttrType, AttrMult, AttrSpecif);}
  212.     inline BOOL cd_Compact_table()
  213.            {return ::cd_Compact_table(m_cdp, (ttablenum)m_CursTab);}
  214.     inline BOOL cd_Enable_index(sig16 Which, BOOL Enable)
  215.            {return ::cd_Enable_index(m_cdp, (ttablenum)m_CursTab, Which, Enable);}
  216.     inline BOOL cd_Enum_attributes(LPVOID callback)
  217.            {return ::cd_Enum_attributes(m_cdp, (ttablenum)m_CursTab, (enum_attr FAR *)callback);}
  218.     inline BOOL cd_Find_object(const char *Name)
  219.            {return ::cd_Find_object(m_cdp, Name, CATEG_TABLE, (tobjnum *)&m_CursTab);}
  220.     inline BOOL cd_Free_deleted()
  221.            {return ::cd_Free_deleted(m_cdp, (ttablenum)m_CursTab);}
  222.     inline BOOL cd_Open(const char *Name)
  223.            {return ::cd_Find_object(m_cdp, Name, CATEG_TABLE, (tobjnum *)&m_CursTab);}
  224.     inline BOOL cd_Undelete(trecnum Position)
  225.            {return ::cd_Undelete(m_cdp, (ttablenum)m_CursTab, Position);}
  226. };
  227.  
  228.  
  229.  
  230. class CWBCursor : public CWBCursTab
  231. {
  232. public:
  233.  
  234.     CWBCursor(cdp_t cdp = NULL) : CWBCursTab(cdp){}
  235.  
  236.     inline BOOL Add_record(trecnum *Recs, short NumOfRecs)
  237.            {return ::Add_record((tcursnum)m_CursTab, Recs, NumOfRecs);}
  238.     inline BOOL Close()
  239.            {return ::Close_cursor((tcursnum)m_CursTab);}
  240.     inline BOOL Close_cursor()
  241.            {return ::Close_cursor((tcursnum)m_CursTab);}
  242.     inline BOOL Open(tobjnum CursDef)
  243.            {return ::Open_cursor(CursDef, (tcursnum *)&m_CursTab);}
  244.     inline BOOL Open(const char *Query)
  245.            {return ::Open_cursor_direct(Query, (tcursnum *)&m_CursTab);}
  246.     inline BOOL Open_cursor(tobjnum CursDef)
  247.            {return ::Open_cursor(CursDef, (tcursnum *)&m_CursTab);}
  248.     inline BOOL Open_cursor_direct(const char *Query)
  249.            {return ::Open_cursor_direct(Query, (tcursnum *)&m_CursTab);}
  250.     inline BOOL ODBC_open_cursor(uns32 Connection, const char *Query)
  251.            {return ::ODBC_open_cursor(Connection, (tcursnum *)&m_CursTab, Query);}
  252.     inline BOOL Open_subcursor(const char *SubcurDef, CWBCursor *Subcurs)
  253.            {return ::Open_subcursor((tcursnum)m_CursTab, SubcurDef, (tcursnum *)&Subcurs->m_CursTab);}
  254.     inline BOOL Print_view(const char *ViewDef, trecnum FirstRec, trecnum LastRec, FARPROC Filter)
  255.            {return ::Print_view(ViewDef, (tcursnum)m_CursTab, FirstRec, LastRec, Filter);}
  256.     inline BOOL Super_recnum(tcursnum SuperCursor, trecnum SubRecnum, trecnum *SuperRecnum)
  257.            {return ::Super_recnum((tcursnum)m_CursTab, SuperCursor, SubRecnum, SuperRecnum);}
  258.     inline BOOL Translate(trecnum cRec, short Tbord, trecnum *tRec)
  259.            {return ::Translate((tcursnum)m_CursTab, cRec, Tbord, tRec);}
  260.  
  261.     inline BOOL cd_Add_record(trecnum *Recs, short NumOfRecs)
  262.            {return ::cd_Add_record(m_cdp, (tcursnum)m_CursTab, Recs, NumOfRecs);}
  263.     inline BOOL cd_Close()
  264.            {return ::cd_Close_cursor(m_cdp, (tcursnum)m_CursTab);}
  265.     inline BOOL cd_Close_cursor()
  266.            {return ::cd_Close_cursor(m_cdp, (tcursnum)m_CursTab);}
  267.     inline BOOL cd_Open(tobjnum CursDef)
  268.            {return ::cd_Open_cursor(m_cdp, CursDef, (tcursnum *)&m_CursTab);}
  269.     inline BOOL cd_Open(const char *Query)
  270.            {return ::cd_Open_cursor_direct(m_cdp, Query, (tcursnum *)&m_CursTab);}
  271.     inline BOOL cd_Open_cursor(tobjnum CursDef)
  272.            {return ::cd_Open_cursor(m_cdp, CursDef, (tcursnum *)&m_CursTab);}
  273.     inline BOOL cd_Open_cursor_direct(const char *Query)
  274.            {return ::cd_Open_cursor_direct(m_cdp, Query, (tcursnum *)&m_CursTab);}
  275.     inline BOOL cd_ODBC_open_cursor(uns32 Connection, const char *Query)
  276.            {return ::cd_ODBC_open_cursor(m_cdp, Connection, (tcursnum *)&m_CursTab, Query);}
  277.     inline BOOL cd_Open_subcursor(const char *SubcurDef, CWBCursor *Subcurs)
  278.            {return ::cd_Open_subcursor(m_cdp, (tcursnum)m_CursTab, SubcurDef, (tcursnum *)&Subcurs->m_CursTab);}
  279.     inline BOOL cd_Super_recnum(tcursnum SuperCursor, trecnum SubRecnum, trecnum *SuperRecnum)
  280.            {return ::cd_Super_recnum(m_cdp, (tcursnum)m_CursTab, SuperCursor, SubRecnum, SuperRecnum);}
  281.     inline BOOL cd_Translate(trecnum cRec, short Tbord, trecnum *tRec)
  282.            {return ::cd_Translate(m_cdp, (tcursnum)m_CursTab, cRec, Tbord, tRec);}
  283. };
  284.  
  285.  
  286. /////////////////////////////////////////////////////////////////////////////
  287. // CWBApp thread
  288.  
  289. #define WBAPPI_NOLOGIN (const char *)-1
  290.  
  291. class CWBApp : public CWinApp
  292. {
  293.     DECLARE_DYNAMIC(CWBApp)
  294. protected:
  295.     BOOL m_Linked;
  296.     // protected constructor used by dynamic creation
  297.     inline CWBApp(const char* WinAppName = NULL) : CWinApp(WinAppName)
  298.     {
  299.         m_Linked   = FALSE;
  300.         m_LoggedOn = FALSE;
  301.         m_cdp = cdp_alloc();
  302.         cdp_init(m_cdp);
  303.     }           
  304.  
  305. // Attributes
  306. public:
  307.  
  308. // Operations
  309. public:
  310.     BOOL WBAppInit(const char *ApplName = NULL, const char *UserName = NULL,
  311.                    const char *Password = NULL, const char *ServerPath = NULL);
  312.     cdp_t GetCdp(){return m_cdp;}
  313.     BOOL  LoggedOn(){return m_LoggedOn;}
  314.     BOOL  Linked(){return m_Linked;}
  315.     BOOL  SetApplication(const char *Appl)
  316.     {
  317.         if (cd_Set_application(m_cdp, Appl))
  318.         {
  319.             OnSetAppErr();
  320.             return FALSE;
  321.         }
  322.         return TRUE;
  323.     }
  324.     void Logout()
  325.     {
  326.         if (m_LoggedOn)
  327.         {
  328.               ::Logout();
  329.             m_LoggedOn = FALSE;
  330.         }
  331.         if (m_Linked)
  332.         {
  333.             ::interf_close();
  334.             ::unlink_kernel();
  335.             m_Linked = FALSE;
  336.         }
  337.     }
  338.  
  339. // Overrides
  340.     // ClassWizard generated virtual function overrides
  341.     //{{AFX_VIRTUAL(CWBApp)
  342.     public:
  343.     virtual BOOL InitInstance() = 0;
  344.     //}}AFX_VIRTUAL
  345.  
  346. // Implementation
  347. protected:
  348.  
  349.     cdp_t m_cdp;
  350.     BOOL  m_LoggedOn;
  351.  
  352.     virtual void OnInitErr(int err){::Kernel_error_box(err);}
  353.     virtual void OnLoginErr(){::errbox(MAKEINTRESOURCE(MSG_BAD_PASSWORD));}
  354.     virtual void OnSetAppErr(){::errbox("Zadanß aplikace v databßzi nenφ");}
  355.     //virtual BOOL OnIdle(LONG cnt){return(FALSE);}
  356.  
  357.     // Generated message map functions
  358.     //{{AFX_MSG(CWBApp)
  359.         // NOTE - the ClassWizard will add and remove member functions here.
  360.     //}}AFX_MSG
  361.  
  362.     DECLARE_MESSAGE_MAP()
  363. };
  364.  
  365. /////////////////////////////////////////////////////////////////////////////
  366. /////////////////////////////////////////////////////////////////////////////
  367. // CWBFrameWnd frame
  368.  
  369. class CWBFrameWnd : public CMDIFrameWnd
  370. {
  371.     DECLARE_DYNCREATE(CWBFrameWnd)
  372. protected:
  373.     // protected constructor used by dynamic creation
  374.  
  375.     WBFramePars FramePars;       
  376. // Attributes
  377. public:
  378.  
  379. // Operations
  380. public:
  381.  
  382.     inline CWBFrameWnd(UINT fStyle = 0, UINT WinMenu = 0x8000)
  383.     {
  384.         FramePars.Flags   = fStyle;
  385.         FramePars.WinMenu = WinMenu;
  386.     }
  387.     void UpdateMenuProps(HMENU hMainMenu, HMENU hWinMenu = (HMENU)-1);
  388.  
  389. // Overrides
  390.     // ClassWizard generated virtual function overrides
  391.     //{{AFX_VIRTUAL(CWBFrameWnd)
  392.     public:
  393.     virtual void RecalcLayout(BOOL bNotify = TRUE);
  394.     protected:
  395.     virtual LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam);
  396.     virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
  397.     //}}AFX_VIRTUAL
  398.  
  399. // Implementation
  400. protected:
  401.  
  402.     inline LONG  DefWinBaseFrameProc(WORD uMsg, WORD wParam, LONG lParam)
  403.                  {return ::DefWinBaseFrameProc(m_hWnd, uMsg, wParam, lParam);}
  404.     inline LONG  WinBaseFrameProc(WORD uMsg, WORD wParam, LONG lParam)
  405.                  {return ::WinBaseFrameProc(m_hWnd, uMsg, wParam, lParam);}
  406.  
  407.     // Generated message map functions
  408.     //{{AFX_MSG(CWBFrameWnd)
  409.     afx_msg void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized);
  410.     afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  411.     afx_msg void OnClose();
  412.     afx_msg void OnDestroy();
  413.     afx_msg void OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu);
  414.     afx_msg void OnSize(UINT nType, int cx, int cy);
  415.     //}}AFX_MSG
  416.     DECLARE_MESSAGE_MAP()
  417. };
  418.  
  419. /////////////////////////////////////////////////////////////////////////////
  420. /////////////////////////////////////////////////////////////////////////////
  421. // CWBViewWnd frame
  422.  
  423. class CWBViewWnd : public CMDIChildWnd
  424. {
  425.     DECLARE_DYNCREATE(CWBViewWnd)
  426. protected:
  427.     // protected constructor used by dynamic creation
  428.  
  429. // Attributes
  430. public:
  431.  
  432. // Operations
  433. public:
  434.  
  435.     inline CWBViewWnd(){ViewWndProc = NULL;m_hMenu = NULL;}
  436.     inline void SetMenu(HMENU hMenu){m_hMenu = hMenu;}
  437.     inline HMENU GetMenu(){return m_hMenu;}
  438.  
  439.     BOOL Open(const char *ViewDef, tcursnum Base = NO_REDIR, uns32 Flags = 0,
  440.               trecnum Pos = 0, FARPROC Filter = NULL, CWBViewWnd *ParWnd = NULL);
  441.     BOOL Open_query_view(const char * ViewDef, tcursnum Base = NO_REDIR, BOOL Order = FALSE,
  442.                          char *Query = NULL, FARPROC Filter = NULL, CWBViewWnd *ParWnd = NULL);
  443.     BOOL Select_records(const char *ViewDef, tcursnum Base, uns32 Flags,
  444.                         short Limit, trecnum *Bindl, FARPROC Filter = NULL, CWBViewWnd *ParWnd = NULL);
  445.     BOOL Relate_record(const char *LocalAttr, const char *ViewDef, tcursnum Base = NO_REDIR, uns32 Flags = 0, FARPROC Filter = NULL,
  446.                        const char *RemoteAttr = NULL);
  447.     inline BOOL Active_view()
  448.            {m_hWnd = ::Active_view(); return (BOOL)m_hWnd;}
  449.     inline BOOL Commit_view(BOOL CanAsk, BOOL ReportError)
  450.            {return ::Commit_view(m_hWnd, CanAsk, ReportError);}
  451.     inline BOOL Get_fcursor(tcursnum * curs, WORD * flags)
  452.            {return ::Get_fcursor((window_id)m_hWnd, curs, flags);}
  453.     inline BOOL Get_fcursor(CWBCursTab * curs, WORD * flags)
  454.            {return ::Get_fcursor((window_id)m_hWnd, (tcursnum *)&curs->m_CursTab, flags);}
  455.     inline BOOL Get_item_value(trecnum intrec, short itemid, char *value)
  456.            {return ::Get_item_value((window_id)m_hWnd, intrec, itemid, value);}
  457.     inline BOOL Get_view_pos(trecnum * irec, trecnum * erec)
  458.            {return ::Get_view_pos((window_id)m_hWnd, irec, erec);}
  459.     inline BOOL Print_opt()
  460.            {return ::Print_opt((window_id)m_hWnd);}
  461.     inline BOOL Print_optEx(BOOL IsLabel)
  462.            {return ::Print_optEx((window_id)m_hWnd, IsLabel);}
  463.     inline BOOL Register_rec_syn(HWND hWnd2)
  464.            {return ::Register_rec_syn(m_hWnd, hWnd2);}
  465.     inline BOOL Select_file(char *filename)
  466.            {return ::Select_file((window_id)m_hWnd, filename);}
  467.     inline BOOL Select_directory(char *filename)
  468.            {return ::Select_directory((window_id)m_hWnd, filename);}
  469.     inline BOOL Set_ext_pos(trecnum pos, short itemnum = -1)
  470.            {return ::Set_ext_pos((window_id)m_hWnd, pos, itemnum);}
  471.     inline BOOL Set_int_pos(trecnum pos, short itemnum = -1)
  472.            {return ::Set_int_pos((window_id)m_hWnd, pos, itemnum);}
  473.     inline BOOL Set_item_value(trecnum intrec, short itemid, const char FAR * value)
  474.            {return ::Set_item_value((window_id)m_hWnd, intrec, itemid, value);}
  475.     inline BOOL Set_fcursor(tcursnum curs, uns32 flags = 0)
  476.            {return ::Set_fcursor((window_id)m_hWnd, curs, flags);}
  477.     inline BOOL QBE_state()
  478.            {return ::QBE_state(m_hWnd);}
  479.  
  480.     inline short Current_item()
  481.            {return ::Current_item((window_id)m_hWnd);}
  482.  
  483.     inline void Close_view()
  484.            {::Close_view((window_id)m_hWnd);}
  485.     inline void Draw_line(short x1, short y1, short x2, short y2, short colour)
  486.            {::Draw_line((window_id)m_hWnd, x1, y1, x2, y2, colour);}
  487.     inline void Pick_window()
  488.            {::Pick_window((window_id)m_hWnd);}
  489.     inline void Printer_dialog()
  490.            {::Printer_dialog((window_id)m_hWnd);}
  491.     inline void Put_pixel(short x, short y, short colour)
  492.            {::Put_pixel((window_id)m_hWnd, x, y, colour);}
  493.     inline void Reset_view(trecnum rec = -1, WORD reload = RESET_CONTROLS)
  494.            {::Reset_view((window_id)m_hWnd, rec, reload);}
  495.     inline void Roll_back_view()
  496.            {::Roll_back_view(m_hWnd);}
  497.  
  498.     inline HWND ActWnd()
  499.            {return (HWND)::SendMessage(::GetParent(m_hWnd), WM_MDIGETACTIVE, 0, 0);}
  500.  
  501.     inline void FirstRec()
  502.            {::SendMessage(ActWnd(), SZM_FIRSTREC, 0, 0);}
  503.     inline void LastRec()
  504.            {::SendMessage(ActWnd(), SZM_LASTREC, 0, 0);}
  505.     inline void NextRec()
  506.            {::SendMessage(ActWnd(), SZM_NEXTREC, 0, 0);}
  507.     inline void PrevRec()
  508.            {::SendMessage(ActWnd(), SZM_PREVREC, 0, 0);}
  509.     inline void NextPage()
  510.            {::SendMessage(ActWnd(), SZM_NEXTPAGE, 0, 0);}
  511.     inline void PrevPage()
  512.            {::SendMessage(ActWnd(), SZM_PREVPAGE, 0, 0);}
  513.     inline void FirstItem()
  514.            {::SendMessage(ActWnd(), SZM_FIRSTITEM, 0, 0);}
  515.     inline void LastItem()
  516.            {::SendMessage(ActWnd(), SZM_LASTITEM, 0, 0);}
  517.     inline void NextTab()
  518.            {::SendMessage(ActWnd(), SZM_NEXTTAB, 0, 0);}
  519.     inline void PrevTab()
  520.            {::SendMessage(ActWnd(), SZM_PREVTAB, 0, 0);}
  521.     inline void UpItem()
  522.            {::SendMessage(ActWnd(), SZM_UPITEM, 0, 0);}
  523.     inline void DownItem()
  524.            {::SendMessage(ActWnd(), SZM_DOWNITEM, 0, 0);}
  525.     inline void OpenQBE()
  526.            {::SendMessage(ActWnd(), SZM_QBE, 0, 0);}
  527.     inline void OpenSort()
  528.            {::SendMessage(ActWnd(), SZM_ORDER, 0, 0);}
  529.     inline void AcceptQuery()
  530.            {::SendMessage(ActWnd(), SZM_ACCEPT_Q, 0, 0);}
  531.     inline void CancelQuery()
  532.            {::SendMessage(m_hWnd, SZM_UNLIMIT, 0, 0);}
  533.     inline void Cut()
  534.            {::SendMessage(ActWnd(), WM_CUT, 0, 0);}
  535.     inline void Copy()
  536.            {::SendMessage(ActWnd(), WM_COPY, 0, 0);}
  537.     inline void Paste()
  538.            {::SendMessage(ActWnd(), WM_PASTE, 0, 0);}
  539.     inline void EditFind()
  540.            {::SendMessage(ActWnd(), MI_FSED_FIND, 0, 0);}
  541.     inline void EditFormat()
  542.            {::SendMessage(ActWnd(), MI_FSED_FORMAT, 0, 0);}
  543.     inline void EditRefind()
  544.            {::SendMessage(ActWnd(), MI_FSED_REFIND, 0, 0);}
  545.     inline void EditReplace()
  546.            {::SendMessage(ActWnd(), MI_FSED_REPLACE, 0, 0);}
  547.     inline void EditSave()
  548.            {::SendMessage(ActWnd(), MI_FSED_SAVE, 0, 0);}
  549.     inline void Insert()
  550.            {::SendMessage(m_hWnd, SZM_INSERT, 0, 0);}
  551.     inline void DelAsk()
  552.            {::SendMessage(m_hWnd, SZM_DELASK, 0, 0);}
  553.     inline void DelRec()
  554.            {::SendMessage(m_hWnd, SZM_DELREC, 0, 0);}
  555.     inline void UnbindDel()
  556.            {::SendMessage(m_hWnd, SZM_UNBINDDEL, 0, 0);}
  557.     inline void Print()
  558.            {::SendMessage(m_hWnd, SZM_PRINT, 0, 0);}
  559.     inline void MultiAttrs()
  560.            {::SendMessage(m_hWnd, SZM_INDEX, 0, 0);}
  561.     inline void Help()
  562.            {::SendMessage(ActWnd(), SZM_HELP, 0, 0);}
  563.     inline void Locks()
  564.            {::SendMessage(m_hWnd, SZM_LOCKS, 0, 0);}
  565.  
  566. // Overrides
  567.     // ClassWizard generated virtual function overrides
  568.     //{{AFX_VIRTUAL(CWBViewWnd)
  569.     protected:
  570.     virtual LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam);
  571.     virtual void PostNcDestroy();
  572.     //}}AFX_VIRTUAL
  573.  
  574. // Implementation
  575. protected:
  576.  
  577.     WNDPROC ViewWndProc;
  578.     HMENU   m_hMenu;
  579.  
  580.     virtual WNDPROC *GetSuperWndProcAddr(){return &ViewWndProc;}
  581.     virtual void OnUpdateFrameMenu(BOOL bActive, CWnd* pActivateWnd, HMENU hMenuAlt);
  582.     virtual BOOL OnNotify( WPARAM wParam, LPARAM lParam, LRESULT* pResult );
  583.  
  584.     // Generated message map functions
  585.     //{{AFX_MSG(CWBViewWnd)
  586.     afx_msg void OnClose();
  587.     afx_msg void OnDestroy();
  588.     afx_msg void OnMDIActivate(BOOL bActivate, CWnd* pActivateWnd, CWnd* pDeactivateWnd);
  589.     afx_msg void OnSize(UINT nType, int cx, int cy);
  590.     afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
  591.     afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
  592.     //}}AFX_MSG
  593.     DECLARE_MESSAGE_MAP()
  594. };
  595.  
  596. /////////////////////////////////////////////////////////////////////////////
  597. /////////////////////////////////////////////////////////////////////////////
  598. // CWBModalViewWnd frame
  599.  
  600. class CWBModalViewWnd : public CFrameWnd
  601. {
  602.     DECLARE_DYNCREATE(CWBModalViewWnd)
  603. protected:
  604.     // protected constructor used by dynamic creation
  605.  
  606. // Attributes
  607. public:
  608.  
  609. // Operations
  610. public:
  611.  
  612.     CWBModalViewWnd(){ViewWndProc = NULL;}
  613.  
  614.     BOOL Open(const char *ViewDef, tcursnum Base = NO_REDIR, uns32 Flags = 0,
  615.               trecnum Pos = 0, FARPROC Filter = NULL, CWBViewWnd *ParWnd = NULL);
  616.     BOOL Open_query_view(const char * ViewDef, tcursnum Base = NO_REDIR, BOOL Order = FALSE,
  617.                          char *Query = NULL, FARPROC Filter = NULL, CWBViewWnd *ParWnd = NULL);
  618.     BOOL Select_records(const char *ViewDef, tcursnum Base, uns32 Flags,
  619.                         short Limit, trecnum *Bindl, FARPROC Filter = NULL, CWBViewWnd *ParWnd = NULL);
  620.     BOOL Relate_record(const char *LocalAttr, const char *ViewDef, tcursnum Base = NO_REDIR, uns32 Flags = 0, FARPROC Filter = NULL,
  621.                        const char *RemoteAttr = NULL);
  622.     inline BOOL Active_view()
  623.            {m_hWnd = ::Active_view(); return (BOOL)m_hWnd;}
  624.     inline BOOL Commit_view(BOOL CanAsk, BOOL ReportError)
  625.            {return ::Commit_view(m_hWnd, CanAsk, ReportError);}
  626.     inline BOOL Get_fcursor(tcursnum * curs, WORD * flags)
  627.            {return ::Get_fcursor((window_id)m_hWnd, curs, flags);}
  628.     inline BOOL Get_fcursor(CWBCursTab * curs, WORD * flags)
  629.            {return ::Get_fcursor((window_id)m_hWnd, (tcursnum *)&curs->m_CursTab, flags);}
  630.     inline BOOL Get_item_value(trecnum intrec, short itemid, char *value)
  631.            {return ::Get_item_value((window_id)m_hWnd, intrec, itemid, value);}
  632.     inline BOOL Get_view_pos(trecnum * irec, trecnum * erec)
  633.            {return ::Get_view_pos((window_id)m_hWnd, irec, erec);}
  634.     inline BOOL Print_opt()
  635.            {return ::Print_opt((window_id)m_hWnd);}
  636.     inline BOOL Register_rec_syn(HWND hWnd2)
  637.            {return ::Register_rec_syn(m_hWnd, hWnd2);}
  638.     inline BOOL Select_file(char *filename)
  639.            {return ::Select_file((window_id)m_hWnd, filename);}
  640.     inline BOOL Select_directory(char *filename)
  641.            {return ::Select_directory((window_id)m_hWnd, filename);}
  642.     inline BOOL Set_ext_pos(trecnum pos, short itemnum = -1)
  643.            {return ::Set_ext_pos((window_id)m_hWnd, pos, itemnum);}
  644.     inline BOOL Set_int_pos(trecnum pos, short itemnum = -1)
  645.            {return ::Set_int_pos((window_id)m_hWnd, pos, itemnum);}
  646.     inline BOOL Set_item_value(trecnum intrec, short itemid, const char FAR * value)
  647.            {return ::Set_item_value((window_id)m_hWnd, intrec, itemid, value);}
  648.     inline BOOL Set_fcursor(tcursnum curs, uns32 flags = 0)
  649.            {return ::Set_fcursor((window_id)m_hWnd, curs, flags);}
  650.     inline BOOL QBE_state()
  651.            {return ::QBE_state(m_hWnd);}
  652.  
  653.     inline short Current_item()
  654.            {return ::Current_item((window_id)m_hWnd);}
  655.  
  656.     inline void Close_view()
  657.            {::Close_view((window_id)m_hWnd);}
  658.     inline void Draw_line(short x1, short y1, short x2, short y2, short colour)
  659.            {::Draw_line((window_id)m_hWnd, x1, y1, x2, y2, colour);}
  660.     inline void Pick_window()
  661.            {::Pick_window((window_id)m_hWnd);}
  662.     inline void Printer_dialog()
  663.            {::Printer_dialog((window_id)m_hWnd);}
  664.     inline void Put_pixel(short x, short y, short colour)
  665.            {::Put_pixel((window_id)m_hWnd, x, y, colour);}
  666.     inline void Reset_view(trecnum rec = -1, WORD reload = RESET_CONTROLS)
  667.            {::Reset_view((window_id)m_hWnd, rec, reload);}
  668.     inline void Roll_back_view()
  669.            {::Roll_back_view(m_hWnd);}
  670.  
  671.     inline HWND ActWnd()
  672.            {return ::GetActiveWindow();}
  673.  
  674.     inline void FirstRec()
  675.            {::SendMessage(ActWnd(), SZM_FIRSTREC, 0, 0);}
  676.     inline void LastRec()
  677.            {::SendMessage(ActWnd(), SZM_LASTREC, 0, 0);}
  678.     inline void NextRec()
  679.            {::SendMessage(ActWnd(), SZM_NEXTREC, 0, 0);}
  680.     inline void PrevRec()
  681.            {::SendMessage(ActWnd(), SZM_PREVREC, 0, 0);}
  682.     inline void NextPage()
  683.            {::SendMessage(ActWnd(), SZM_NEXTPAGE, 0, 0);}
  684.     inline void PrevPage()
  685.            {::SendMessage(ActWnd(), SZM_PREVPAGE, 0, 0);}
  686.     inline void FirstItem()
  687.            {::SendMessage(ActWnd(), SZM_FIRSTITEM, 0, 0);}
  688.     inline void LastItem()
  689.            {::SendMessage(ActWnd(), SZM_LASTITEM, 0, 0);}
  690.     inline void NextTab()
  691.            {::SendMessage(ActWnd(), SZM_NEXTTAB, 0, 0);}
  692.     inline void PrevTab()
  693.            {::SendMessage(ActWnd(), SZM_PREVTAB, 0, 0);}
  694.     inline void UpItem()
  695.            {::SendMessage(ActWnd(), SZM_UPITEM, 0, 0);}
  696.     inline void DownItem()
  697.            {::SendMessage(ActWnd(), SZM_DOWNITEM, 0, 0);}
  698.     inline void OpenQBE()
  699.            {::SendMessage(ActWnd(), SZM_QBE, 0, 0);}
  700.     inline void OpenSort()
  701.            {::SendMessage(ActWnd(), SZM_ORDER, 0, 0);}
  702.     inline void AcceptQuery()
  703.            {::SendMessage(ActWnd(), SZM_ACCEPT_Q, 0, 0);}
  704.     inline void CancelQuery()
  705.            {::SendMessage(m_hWnd, SZM_UNLIMIT, 0, 0);}
  706.     inline void Cut()
  707.            {::SendMessage(ActWnd(), WM_CUT, 0, 0);}
  708.     inline void Copy()
  709.            {::SendMessage(ActWnd(), WM_COPY, 0, 0);}
  710.     inline void Paste()
  711.            {::SendMessage(ActWnd(), WM_PASTE, 0, 0);}
  712.     inline void EditFind()
  713.            {::SendMessage(ActWnd(), MI_FSED_FIND, 0, 0);}
  714.     inline void EditFormat()
  715.            {::SendMessage(ActWnd(), MI_FSED_FORMAT, 0, 0);}
  716.     inline void EditRefind()
  717.            {::SendMessage(ActWnd(), MI_FSED_REFIND, 0, 0);}
  718.     inline void EditReplace()
  719.            {::SendMessage(ActWnd(), MI_FSED_REPLACE, 0, 0);}
  720.     inline void EditSave()
  721.            {::SendMessage(ActWnd(), MI_FSED_SAVE, 0, 0);}
  722.     inline void Insert()
  723.            {::SendMessage(m_hWnd, SZM_INSERT, 0, 0);}
  724.     inline void DelAsk()
  725.            {::SendMessage(m_hWnd, SZM_DELASK, 0, 0);}
  726.     inline void DelRec()
  727.            {::SendMessage(m_hWnd, SZM_DELREC, 0, 0);}
  728.     inline void UnbindDel()
  729.            {::SendMessage(m_hWnd, SZM_UNBINDDEL, 0, 0);}
  730.     inline void Print()
  731.            {::SendMessage(m_hWnd, SZM_PRINT, 0, 0);}
  732.     inline void MultiAttrs()
  733.            {::SendMessage(m_hWnd, SZM_INDEX, 0, 0);}
  734.     inline void Help()
  735.            {::SendMessage(ActWnd(), SZM_HELP, 0, 0);}
  736.     inline void Locks()
  737.            {::SendMessage(m_hWnd, SZM_LOCKS, 0, 0);}
  738.  
  739. // Overrides
  740.     // ClassWizard generated virtual function overrides
  741.     //{{AFX_VIRTUAL(CWBModalViewWnd)
  742.     protected:
  743.     virtual LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam);
  744.     virtual void PostNcDestroy();
  745.     //}}AFX_VIRTUAL
  746.  
  747. // Implementation
  748. protected:
  749.     
  750.     WNDPROC ViewWndProc;
  751.  
  752.     virtual WNDPROC *GetSuperWndProcAddr(){return &ViewWndProc;}
  753.     virtual BOOL OnNotify( WPARAM wParam, LPARAM lParam, LRESULT* pResult );
  754.     afx_msg LRESULT OnDisableModal(WPARAM, LPARAM){return TRUE;}
  755.     // Generated message map functions
  756.     //{{AFX_MSG(CWBModalViewWnd)
  757.     afx_msg void OnClose();
  758.     afx_msg void OnDestroy();
  759.     afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
  760.     afx_msg void OnSize(UINT nType, int cx, int cy);
  761.     afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
  762.     //}}AFX_MSG
  763.     DECLARE_MESSAGE_MAP()
  764. };
  765.  
  766. /////////////////////////////////////////////////////////////////////////////
  767. /////////////////////////////////////////////////////////////////////////////
  768. // CWBAuxMDIWnd frame
  769.  
  770. class CWBAuxMDIWnd : public CMDIChildWnd
  771. {
  772.     DECLARE_DYNCREATE(CWBAuxMDIWnd)
  773. protected:
  774.     // protected constructor used by dynamic creation
  775.     CWBAuxMDIWnd(){OrigWndProc = NULL;}
  776.  
  777. // Attributes
  778. public:
  779.  
  780. // Operations
  781. public:
  782.  
  783.     inline BOOL QBE_state()
  784.            {return ::QBE_state(m_hWnd);}
  785.  
  786. // Overrides
  787.     // ClassWizard generated virtual function overrides
  788.     //{{AFX_VIRTUAL(CWBAuxMDIWnd)
  789.     protected:
  790.     virtual LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam);
  791.     virtual void PostNcDestroy();
  792.     //}}AFX_VIRTUAL
  793.  
  794. // Implementation
  795. protected:
  796.  
  797.     WNDPROC OrigWndProc;
  798.  
  799.     virtual WNDPROC *GetSuperWndProcAddr(){return &OrigWndProc;}
  800.  
  801.     // Generated message map functions
  802.     //{{AFX_MSG(CWBAuxMDIWnd)
  803.     afx_msg void OnClose();
  804.     afx_msg void OnDestroy();
  805.     afx_msg void OnMDIActivate(BOOL bActivate, CWnd* pActivateWnd, CWnd* pDeactivateWnd);
  806.     afx_msg void OnSetFocus(CWnd* pOldWnd);
  807.     afx_msg void OnSize(UINT nType, int cx, int cy);
  808.     afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
  809.     afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
  810.     //}}AFX_MSG
  811.     DECLARE_MESSAGE_MAP()
  812.  
  813.     friend class CWBFrameWnd;
  814. };
  815.  
  816. /////////////////////////////////////////////////////////////////////////////
  817.  
  818. #endif        // __WBMFC__
  819.