//--------------------------------------------------------
// SQC1.H generated from SQC.VBX by
// VbxGen 1.0 - Borland International
//--------------------------------------------------------

#if !defined (_SQC1_H_)
#define _SQC1_H_

#ifdef __OWL_OWLDEFS_H
  #include <owl\vbxctl.h>
#endif

//--------------------------------------------------------
// CIApp (VB3)
//--------------------------------------------------------

// properties
#define Prop_CIApp_CtlName 0
#define Prop_CIApp_Index 1
#define Prop_CIApp_Left 2
#define Prop_CIApp_Top 3
#define Prop_CIApp_Tag 4
#define Prop_CIApp_About 5
#define Prop_CIApp_hApp 6
#define Prop_CIApp_hEnv 7
#define Prop_CIApp_Trace 8
#define Prop_CIApp_TraceFile 9
#define Prop_CIApp_ErrorsAndStmts 10
#define Prop_CIApp_MajorRev 11
#define Prop_CIApp_MinorRev 12
#define Prop_CIApp_Release 13
#define Prop_CIApp_Runtime 14
#define Prop_CIApp_DebugLevel 15

// events
#define Event_CIApp_AppError 0

// default form data
//
// Some VBX controls do not operate correctly when created without
// a form file.  This occurs when a program creates a control
// dynamically rather than as part of a dialog resource.  If this
// control exhibits problems in this mode, try creating it with the
// following form data:
//
// For OWL programs:
//
//   TVbxCIApp* c = new TVbxCIApp(..., sizeof(CIAppData), CIAppData);
//
// For C/C++ programs:
//
//   HFORMFILE file = VBXCreateFormFile(sizeof(CIAppData), CIAppData);
//   HCTL c = VBXCreate(..., file);
//   VBXDeleteFormFile(file);
//
// Note that the VBXGEN_DATA or CIApp_DATA symbol must be
// defined in order to use the default form data.
//
extern BYTE CIAppData[23L];
#if defined(VBXGEN_DATA) || defined(CIApp_DATA)
  BYTE CIAppData[23L]={
    0x00,0x05,0x43,0x49,0x41,0x70,0x70,0x01,
    0x00,0x00,0x02,0x04,0x00,0x08,0x00,0x00,
    0x09,0x00,0x0a,0x00,0x0f,0x00,0xff,
  };
#endif

#ifdef __OWL_VBXCTL_H

// OWL class
class TVbxCIApp : public TVbxControl {
  public:

    // constructors
    TVbxCIApp(TWindow* parent, int id, LPCSTR title,
        int x, int y, int w, int h,
        long initLen=0, void far* initData=0, TModule* module=0) :
      TVbxControl(parent, id, "SQC.VBX", "CIApp",
          title, x, y, w, h, initLen, initData, module) {}

    TVbxCIApp(TWindow* parent, int resourceId, TModule* module=0) :
        TVbxControl(parent, resourceId, module) {}

#if 0
    // event handlers
    void EvAppError(VBXEVENT FAR*)
    {
      // hApp as Long,ErrorCode as long,Lparam as long,Action as long
    }

#endif

    // enumerations
    enum { // values for property ErrorsAndStmts
      ErrorsAndStmts_0_Show_Errors,
      ErrorsAndStmts_1_Show_Errors_and_SQL_Stmts_,
      ErrorsAndStmts_2_Assign_SQL_Stmt_to_Text_Box,
      ErrorsAndStmts_3_Assign_SQL_Stmt_to_Text_Box_and_Show_Errors,
      ErrorsAndStmts_4_No_Error_Display_and_No_SQL_Stmt_Display,
    };

    enum { // values for property DebugLevel
      DebugLevel_0_Disable_debugging,
      DebugLevel_1_Enable_Cursor_level_debug_,
      DebugLevel_2_Reserved,
      DebugLevel_3_Reserved,
      DebugLevel_4_Reserved,
      DebugLevel_5_Global_Debug_level_5,
      DebugLevel_6_Global_Debug_level_6,
      DebugLevel_7_Global_Debug_level_7,
      DebugLevel_8_Global_Debug_level_8,
      DebugLevel_9_Global_Debug_level_9,
    };


    // properties
    BOOL GetPropCtlName(string& v) {return GetProp(0,v);}
    BOOL SetPropCtlName(string& v) {return SetProp(0,v);}

    BOOL GetPropIndex(int& v) {return GetProp(1,v);}
    BOOL SetPropIndex(int v) {return SetProp(1,v);}

    BOOL GetPropLeft(long& v) {return GetProp(2,v);}
    BOOL SetPropLeft(long v) {return SetProp(2,v);}

    BOOL GetPropTop(long& v) {return GetProp(3,v);}
    BOOL SetPropTop(long v) {return SetProp(3,v);}

    BOOL GetPropTag(string& v) {return GetProp(4,v);}
    BOOL SetPropTag(string& v) {return SetProp(4,v);}

    BOOL GetPropAbout(string& v) {return GetProp(5,v);}
    BOOL SetPropAbout(string& v) {return SetProp(5,v);}

    BOOL GetProphApp(long& v) {return GetProp(6,v);}
    BOOL SetProphApp(long v) {return SetProp(6,v);}

    BOOL GetProphEnv(long& v) {return GetProp(7,v);}
    BOOL SetProphEnv(long v) {return SetProp(7,v);}

    BOOL GetPropTrace(BOOL& v) {return GetProp(8,v);}
    BOOL SetPropTrace(BOOL v) {return SetProp(8,v);}

    BOOL GetPropTraceFile(string& v) {return GetProp(9,v);}
    BOOL SetPropTraceFile(string& v) {return SetProp(9,v);}

    BOOL GetPropErrorsAndStmts(ENUM& v) {return GetProp(10,v);}
    BOOL SetPropErrorsAndStmts(ENUM v) {return SetProp(10,v);}

    BOOL GetPropMajorRev(int& v) {return GetProp(11,v);}
    BOOL SetPropMajorRev(int v) {return SetProp(11,v);}

    BOOL GetPropMinorRev(int& v) {return GetProp(12,v);}
    BOOL SetPropMinorRev(int v) {return SetProp(12,v);}

    BOOL GetPropRelease(int& v) {return GetProp(13,v);}
    BOOL SetPropRelease(int v) {return SetProp(13,v);}

    BOOL GetPropRuntime(BOOL& v) {return GetProp(14,v);}
    BOOL SetPropRuntime(BOOL v) {return SetProp(14,v);}

    BOOL GetPropDebugLevel(ENUM& v) {return GetProp(15,v);}
    BOOL SetPropDebugLevel(ENUM v) {return SetProp(15,v);}

#if 0
  DECLARE_RESPONSE_TABLE(TVbxCIApp);
#endif
};

#if 0
// OWL response table
DEFINE_RESPONSE_TABLE1(TVbxCIApp, TVbxControl)
  EV_VBXEVENTINDEX( IDC_CIApp, Event_CIApp_AppError, EvAppError ),
END_RESPONSE_TABLE;
#endif

#endif

//--------------------------------------------------------
// CIFD (VB3)
//--------------------------------------------------------

// properties
#define Prop_CIFD_CtlName 0
#define Prop_CIFD_Index 1
#define Prop_CIFD_Left 2
#define Prop_CIFD_Top 3
#define Prop_CIFD_Tag 4
#define Prop_CIFD_About 5
#define Prop_CIFD_FormName 6
#define Prop_CIFD_Design 7
#define Prop_CIFD_ActionCode 8
#define Prop_CIFD_TraceFile 9
#define Prop_CIFD_InExp 10
#define Prop_CIFD_TvalExp 11
#define Prop_CIFD_FvalExp 12

// events

// default form data
//
// Some VBX controls do not operate correctly when created without
// a form file.  This occurs when a program creates a control
// dynamically rather than as part of a dialog resource.  If this
// control exhibits problems in this mode, try creating it with the
// following form data:
//
// For OWL programs:
//
//   TVbxCIFD* c = new TVbxCIFD(..., sizeof(CIFDData), CIFDData);
//
// For C/C++ programs:
//
//   HFORMFILE file = VBXCreateFormFile(sizeof(CIFDData), CIFDData);
//   HCTL c = VBXCreate(..., file);
//   VBXDeleteFormFile(file);
//
// Note that the VBXGEN_DATA or CIFD_DATA symbol must be
// defined in order to use the default form data.
//
extern BYTE CIFDData[25L];
#if defined(VBXGEN_DATA) || defined(CIFD_DATA)
  BYTE CIFDData[25L]={
    0x00,0x04,0x43,0x49,0x46,0x44,0x01,0x00,
    0x00,0x02,0x04,0x00,0x06,0x00,0x08,0x00,
    0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,
    0xff,
  };
#endif

#ifdef __OWL_VBXCTL_H

// OWL class
class TVbxCIFD : public TVbxControl {
  public:

    // constructors
    TVbxCIFD(TWindow* parent, int id, LPCSTR title,
        int x, int y, int w, int h,
        long initLen=0, void far* initData=0, TModule* module=0) :
      TVbxControl(parent, id, "SQC.VBX", "CIFD",
          title, x, y, w, h, initLen, initData, module) {}

    TVbxCIFD(TWindow* parent, int resourceId, TModule* module=0) :
        TVbxControl(parent, resourceId, module) {}

#if 0
    // event handlers
#endif

    // enumerations
    enum { // values for property ActionCode
      ActionCode_0_None,
      ActionCode_1_Go_,
      ActionCode_2_Trace_,
    };


    // properties
    BOOL GetPropCtlName(string& v) {return GetProp(0,v);}
    BOOL SetPropCtlName(string& v) {return SetProp(0,v);}

    BOOL GetPropIndex(int& v) {return GetProp(1,v);}
    BOOL SetPropIndex(int v) {return SetProp(1,v);}

    BOOL GetPropLeft(long& v) {return GetProp(2,v);}
    BOOL SetPropLeft(long v) {return SetProp(2,v);}

    BOOL GetPropTop(long& v) {return GetProp(3,v);}
    BOOL SetPropTop(long v) {return SetProp(3,v);}

    BOOL GetPropTag(string& v) {return GetProp(4,v);}
    BOOL SetPropTag(string& v) {return SetProp(4,v);}

    BOOL GetPropAbout(string& v) {return GetProp(5,v);}
    BOOL SetPropAbout(string& v) {return SetProp(5,v);}

    BOOL GetPropFormName(string& v) {return GetProp(6,v);}
    BOOL SetPropFormName(string& v) {return SetProp(6,v);}

    BOOL GetPropDesign(string& v) {return GetProp(7,v);}
    BOOL SetPropDesign(string& v) {return SetProp(7,v);}

    BOOL GetPropActionCode(ENUM& v) {return GetProp(8,v);}
    BOOL SetPropActionCode(ENUM v) {return SetProp(8,v);}

    BOOL GetPropTraceFile(string& v) {return GetProp(9,v);}
    BOOL SetPropTraceFile(string& v) {return SetProp(9,v);}

    BOOL GetPropInExp(string& v) {return GetProp(10,v);}
    BOOL SetPropInExp(string& v) {return SetProp(10,v);}

    BOOL GetPropTvalExp(string& v) {return GetProp(11,v);}
    BOOL SetPropTvalExp(string& v) {return SetProp(11,v);}

    BOOL GetPropFvalExp(string& v) {return GetProp(12,v);}
    BOOL SetPropFvalExp(string& v) {return SetProp(12,v);}

#if 0
  DECLARE_RESPONSE_TABLE(TVbxCIFD);
#endif
};

#if 0
// OWL response table
DEFINE_RESPONSE_TABLE1(TVbxCIFD, TVbxControl)
END_RESPONSE_TABLE;
#endif

#endif

//--------------------------------------------------------
// CIDS (VB3)
//--------------------------------------------------------

// properties
#define Prop_CIDS_CtlName 0
#define Prop_CIDS_Index 1
#define Prop_CIDS_Left 2
#define Prop_CIDS_Top 3
#define Prop_CIDS_Tag 4
#define Prop_CIDS_About 5
#define Prop_CIDS_HDBC 6
#define Prop_CIDS_ConnectionName 7
#define Prop_CIDS_ConnectionStr 8
#define Prop_CIDS_ActionCode 9
#define Prop_CIDS_ErrorCount 10
#define Prop_CIDS_LastAction 11
#define Prop_CIDS_RetValue 12
#define Prop_CIDS_DateDisplayFmt 13
#define Prop_CIDS_DateStorageFmt 14
#define Prop_CIDS_DatabaseMode 15
#define Prop_CIDS_Trace 16

// events

// default form data
//
// Some VBX controls do not operate correctly when created without
// a form file.  This occurs when a program creates a control
// dynamically rather than as part of a dialog resource.  If this
// control exhibits problems in this mode, try creating it with the
// following form data:
//
// For OWL programs:
//
//   TVbxCIDS* c = new TVbxCIDS(..., sizeof(CIDSData), CIDSData);
//
// For C/C++ programs:
//
//   HFORMFILE file = VBXCreateFormFile(sizeof(CIDSData), CIDSData);
//   HCTL c = VBXCreate(..., file);
//   VBXDeleteFormFile(file);
//
// Note that the VBXGEN_DATA or CIDS_DATA symbol must be
// defined in order to use the default form data.
//
extern BYTE CIDSData[31L];
#if defined(VBXGEN_DATA) || defined(CIDS_DATA)
  BYTE CIDSData[31L]={
    0x00,0x04,0x43,0x49,0x44,0x53,0x01,0x00,
    0x00,0x02,0x04,0x00,0x07,0x00,0x08,0x00,
    0x09,0x00,0x0d,0x00,0x0e,0x0f,0x0f,0x00,
    0x00,0x00,0x00,0x10,0x00,0x00,0xff,
  };
#endif

#ifdef __OWL_VBXCTL_H

// OWL class
class TVbxCIDS : public TVbxControl {
  public:

    // constructors
    TVbxCIDS(TWindow* parent, int id, LPCSTR title,
        int x, int y, int w, int h,
        long initLen=0, void far* initData=0, TModule* module=0) :
      TVbxControl(parent, id, "SQC.VBX", "CIDS",
          title, x, y, w, h, initLen, initData, module) {}

    TVbxCIDS(TWindow* parent, int resourceId, TModule* module=0) :
        TVbxControl(parent, resourceId, module) {}

#if 0
    // event handlers
#endif

    // enumerations
    enum { // values for property ActionCode
      ActionCode_0_Driver_Connect,
      ActionCode_1_Disconnect_,
      ActionCode_2_None_,
    };

    enum { // values for property DateDisplayFmt
      DateDisplayFmt_0_winini_setting,
      DateDisplayFmt_1_MMDDYY_,
      DateDisplayFmt_2_MMDDYYYY_,
      DateDisplayFmt_3_DDMMYY_,
      DateDisplayFmt_4_DDMMYYYY_,
      DateDisplayFmt_5_DDmmmYY_,
      DateDisplayFmt_6_DDmmmYYYY_,
      DateDisplayFmt_7_YYYYMMDD_,
      DateDisplayFmt_8_MMDDYY_,
      DateDisplayFmt_9_MMDDYYYY_,
      DateDisplayFmt_10_DDMMYY_,
      DateDisplayFmt_11_DDMMYYYY_,
      DateDisplayFmt_12_DDmmmYY_,
      DateDisplayFmt_13_DDmmmYYYY_,
      DateDisplayFmt_14_YYYYMMDD_,
      DateDisplayFmt_15_Default_,
    };

    enum { // values for property DateStorageFmt
      DateStorageFmt_0_winini_setting,
      DateStorageFmt_1_MMDDYY_,
      DateStorageFmt_2_MMDDYYYY_,
      DateStorageFmt_3_DDMMYY_,
      DateStorageFmt_4_DDMMYYYY_,
      DateStorageFmt_5_DDmmmYY_,
      DateStorageFmt_6_DDmmmYYYY_,
      DateStorageFmt_7_YYYYMMDD_,
      DateStorageFmt_8_MMDDYY_,
      DateStorageFmt_9_MMDDYYYY_,
      DateStorageFmt_10_DDMMYY_,
      DateStorageFmt_11_DDMMYYYY_,
      DateStorageFmt_12_DDmmmYY_,
      DateStorageFmt_13_DDmmmYYYY_,
      DateStorageFmt_14_YYYYMMDD_,
      DateStorageFmt_15_Default_,
    };


    // properties
    BOOL GetPropCtlName(string& v) {return GetProp(0,v);}
    BOOL SetPropCtlName(string& v) {return SetProp(0,v);}

    BOOL GetPropIndex(int& v) {return GetProp(1,v);}
    BOOL SetPropIndex(int v) {return SetProp(1,v);}

    BOOL GetPropLeft(long& v) {return GetProp(2,v);}
    BOOL SetPropLeft(long v) {return SetProp(2,v);}

    BOOL GetPropTop(long& v) {return GetProp(3,v);}
    BOOL SetPropTop(long v) {return SetProp(3,v);}

    BOOL GetPropTag(string& v) {return GetProp(4,v);}
    BOOL SetPropTag(string& v) {return SetProp(4,v);}

    BOOL GetPropAbout(string& v) {return GetProp(5,v);}
    BOOL SetPropAbout(string& v) {return SetProp(5,v);}

    BOOL GetPropHDBC(long& v) {return GetProp(6,v);}
    BOOL SetPropHDBC(long v) {return SetProp(6,v);}

    BOOL GetPropConnectionName(string& v) {return GetProp(7,v);}
    BOOL SetPropConnectionName(string& v) {return SetProp(7,v);}

    BOOL GetPropConnectionStr(string& v) {return GetProp(8,v);}
    BOOL SetPropConnectionStr(string& v) {return SetProp(8,v);}

    BOOL GetPropActionCode(ENUM& v) {return GetProp(9,v);}
    BOOL SetPropActionCode(ENUM v) {return SetProp(9,v);}

    BOOL GetPropErrorCount(long& v) {return GetProp(10,v);}
    BOOL SetPropErrorCount(long v) {return SetProp(10,v);}

    BOOL GetPropLastAction(int& v) {return GetProp(11,v);}
    BOOL SetPropLastAction(int v) {return SetProp(11,v);}

    BOOL GetPropRetValue(int& v) {return GetProp(12,v);}
    BOOL SetPropRetValue(int v) {return SetProp(12,v);}

    BOOL GetPropDateDisplayFmt(ENUM& v) {return GetProp(13,v);}
    BOOL SetPropDateDisplayFmt(ENUM v) {return SetProp(13,v);}

    BOOL GetPropDateStorageFmt(ENUM& v) {return GetProp(14,v);}
    BOOL SetPropDateStorageFmt(ENUM v) {return SetProp(14,v);}

    BOOL GetPropDatabaseMode(long& v) {return GetProp(15,v);}
    BOOL SetPropDatabaseMode(long v) {return SetProp(15,v);}

    BOOL GetPropTrace(BOOL& v) {return GetProp(16,v);}
    BOOL SetPropTrace(BOOL v) {return SetProp(16,v);}

#if 0
  DECLARE_RESPONSE_TABLE(TVbxCIDS);
#endif
};

#if 0
// OWL response table
DEFINE_RESPONSE_TABLE1(TVbxCIDS, TVbxControl)
END_RESPONSE_TABLE;
#endif

#endif

//--------------------------------------------------------
// CIQry (VB3)
//--------------------------------------------------------

// properties
#define Prop_CIQry_CtlName 0
#define Prop_CIQry_Index 1
#define Prop_CIQry_Left 2
#define Prop_CIQry_Top 3
#define Prop_CIQry_Tag 4
#define Prop_CIQry_About 5
#define Prop_CIQry_hCursor 6
#define Prop_CIQry_CursorName 7
#define Prop_CIQry_ConnectionName 8
#define Prop_CIQry_Statement 9
#define Prop_CIQry_BuildQuery 10
#define Prop_CIQry_StatementType 11
#define Prop_CIQry_AccessMode 12
#define Prop_CIQry_ActionCode 13
#define Prop_CIQry_Status 14
#define Prop_CIQry_TriggerList 15
#define Prop_CIQry_ErrorCount 16
#define Prop_CIQry_LastAction 17
#define Prop_CIQry_RetValue 18
#define Prop_CIQry_ColAttr 19
#define Prop_CIQry_BindList 20
#define Prop_CIQry_QueryPath 21
#define Prop_CIQry_EventMask 22
#define Prop_CIQry_ConfirmMask 23
#define Prop_CIQry_BuildTrigger 24
#define Prop_CIQry_ActionString 25
#define Prop_CIQry_ModeBitMask 26
#define Prop_CIQry_BuildColAttr 27
#define Prop_CIQry_Row 28
#define Prop_CIQry_ColData 29
#define Prop_CIQry_DebugLevel 30
#define Prop_CIQry_DataStream 31
#define Prop_CIQry_Lparam 32
#define Prop_CIQry_Wparam 33
#define Prop_CIQry_Command 34
#define Prop_CIQry_StringVal 35

// events
#define Event_CIQry_CursorError 0
#define Event_CIQry_PREDELETE 1
#define Event_CIQry_PREFETCH 2
#define Event_CIQry_PREFIELD 3
#define Event_CIQry_PREINSERT 4
#define Event_CIQry_PREUPDATE 5
#define Event_CIQry_ROWSEL 6
#define Event_CIQry_STATE 7

// default form data
//
// Some VBX controls do not operate correctly when created without
// a form file.  This occurs when a program creates a control
// dynamically rather than as part of a dialog resource.  If this
// control exhibits problems in this mode, try creating it with the
// following form data:
//
// For OWL programs:
//
//   TVbxCIQry* c = new TVbxCIQry(..., sizeof(CIQryData), CIQryData);
//
// For C/C++ programs:
//
//   HFORMFILE file = VBXCreateFormFile(sizeof(CIQryData), CIQryData);
//   HCTL c = VBXCreate(..., file);
//   VBXDeleteFormFile(file);
//
// Note that the VBXGEN_DATA or CIQry_DATA symbol must be
// defined in order to use the default form data.
//
extern BYTE CIQryData[49L];
#if defined(VBXGEN_DATA) || defined(CIQry_DATA)
  BYTE CIQryData[49L]={
    0x00,0x05,0x43,0x49,0x51,0x72,0x79,0x01,
    0x00,0x00,0x02,0x04,0x00,0x07,0x00,0x08,
    0x00,0x09,0x00,0x0b,0x00,0x0c,0x00,0x0d,
    0x03,0x0f,0x00,0x13,0x00,0x14,0x00,0x15,
    0x00,0x16,0x00,0x17,0x00,0x19,0x00,0x1a,
    0x00,0x00,0x00,0x00,0x1e,0x00,0x1f,0x00,
    0xff,
  };
#endif

#ifdef __OWL_VBXCTL_H

// OWL class
class TVbxCIQry : public TVbxControl {
  public:

    // constructors
    TVbxCIQry(TWindow* parent, int id, LPCSTR title,
        int x, int y, int w, int h,
        long initLen=0, void far* initData=0, TModule* module=0) :
      TVbxControl(parent, id, "SQC.VBX", "CIQry",
          title, x, y, w, h, initLen, initData, module) {}

    TVbxCIQry(TWindow* parent, int resourceId, TModule* module=0) :
        TVbxControl(parent, resourceId, module) {}

#if 0
    // event handlers
    void EvCursorError(VBXEVENT FAR*)
    {
      // hCursor as Long,ErrorCode as Long, ErrorClass as Long, Action as long
    }

    void EvPREDELETE(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as Long,Action as long
    }

    void EvPREFETCH(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as Long,Action as long
    }

    void EvPREFIELD(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as Long,Action as long
    }

    void EvPREINSERT(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as Long,Action as long
    }

    void EvPREUPDATE(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as Long,Action as long
    }

    void EvROWSEL(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as long,Action as long
    }

    void EvSTATE(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as long,Action as long
    }

#endif

    // enumerations
    enum { // values for property StatementType
      StatementType_0_SQL_SELECT_Statement_,
      StatementType_1_SQL_Tables_,
      StatementType_2_SQL_Columns_,
      StatementType_3_SQL_Special_Columns_,
      StatementType_4_SQL_Statistics_,
      StatementType_5_SQL_Type_Info_,
      StatementType_6_SQL_Generic_Statement,
      StatementType_7_SQL_Lookup_Table,
      StatementType_8_Import_File,
      StatementType_9_Export_File,
      StatementType_10_Memory_Cursor,
      StatementType_11_SQL_Procedure_,
      StatementType_12_Procedure_List_,
      StatementType_13_Procedure_Columns_,
    };

    enum { // values for property AccessMode
      AccessMode_0_Read_Only_,
      AccessMode_1_ReadWriteUpdateDelete_,
      AccessMode_2_ReadUpdate_,
      AccessMode_3_Auto_Mode_,
    };

    enum { // values for property ActionCode
      ActionCode_0_None_,
      ActionCode_1_Build_,
      ActionCode_2_Build_and_Bind_,
      ActionCode_3_Build_Bind_and_Execute_,
    };

    enum { // values for property EventMask
      EventMask_0_No_Events_,
      EventMask_1_Rowsel_Event_,
      EventMask_2_Rowsel_and_Modify_Events_,
      EventMask_3_Rowsel_and_Fetch_Events_,
      EventMask_4_All_Events_,
    };

    enum { // values for property ConfirmMask
      ConfirmMask_0_No_Confirmation_,
      ConfirmMask_1_Confirm_on_Deletes_,
      ConfirmMask_2_Confirm_on_Deletes_and_Updates_,
      ConfirmMask_3_Confirm_on_Deletes_Updates_and_Inserts_,
    };

    enum { // values for property DebugLevel
      DebugLevel_0_Disable_debugging,
      DebugLevel_1_Reserved,
      DebugLevel_2_Reserved,
      DebugLevel_3_Reserved,
      DebugLevel_4_Reserved,
      DebugLevel_5_Cursor_Debug_level_5,
      DebugLevel_6_Cursor_Debug_level_6,
      DebugLevel_7_Cursor_Debug_level_7,
    };

    enum { // values for property DataStream
      DataStream_0_ODBC_Cursor_,
      DataStream_1_Cursor_View_,
    };


    // properties
    BOOL GetPropCtlName(string& v) {return GetProp(0,v);}
    BOOL SetPropCtlName(string& v) {return SetProp(0,v);}

    BOOL GetPropIndex(int& v) {return GetProp(1,v);}
    BOOL SetPropIndex(int v) {return SetProp(1,v);}

    BOOL GetPropLeft(long& v) {return GetProp(2,v);}
    BOOL SetPropLeft(long v) {return SetProp(2,v);}

    BOOL GetPropTop(long& v) {return GetProp(3,v);}
    BOOL SetPropTop(long v) {return SetProp(3,v);}

    BOOL GetPropTag(string& v) {return GetProp(4,v);}
    BOOL SetPropTag(string& v) {return SetProp(4,v);}

    BOOL GetPropAbout(string& v) {return GetProp(5,v);}
    BOOL SetPropAbout(string& v) {return SetProp(5,v);}

    BOOL GetProphCursor(long& v) {return GetProp(6,v);}
    BOOL SetProphCursor(long v) {return SetProp(6,v);}

    BOOL GetPropCursorName(string& v) {return GetProp(7,v);}
    BOOL SetPropCursorName(string& v) {return SetProp(7,v);}

    BOOL GetPropConnectionName(string& v) {return GetProp(8,v);}
    BOOL SetPropConnectionName(string& v) {return SetProp(8,v);}

    BOOL GetPropStatement(string& v) {return GetProp(9,v);}
    BOOL SetPropStatement(string& v) {return SetProp(9,v);}

    BOOL GetPropBuildQuery(string& v) {return GetProp(10,v);}
    BOOL SetPropBuildQuery(string& v) {return SetProp(10,v);}

    BOOL GetPropStatementType(ENUM& v) {return GetProp(11,v);}
    BOOL SetPropStatementType(ENUM v) {return SetProp(11,v);}

    BOOL GetPropAccessMode(ENUM& v) {return GetProp(12,v);}
    BOOL SetPropAccessMode(ENUM v) {return SetProp(12,v);}

    BOOL GetPropActionCode(ENUM& v) {return GetProp(13,v);}
    BOOL SetPropActionCode(ENUM v) {return SetProp(13,v);}

    BOOL GetPropStatus(int& v) {return GetProp(14,v);}
    BOOL SetPropStatus(int v) {return SetProp(14,v);}

    BOOL GetPropTriggerList(string& v) {return GetProp(15,v);}
    BOOL SetPropTriggerList(string& v) {return SetProp(15,v);}

    BOOL GetPropErrorCount(long& v) {return GetProp(16,v);}
    BOOL SetPropErrorCount(long v) {return SetProp(16,v);}

    BOOL GetPropLastAction(int& v) {return GetProp(17,v);}
    BOOL SetPropLastAction(int v) {return SetProp(17,v);}

    BOOL GetPropRetValue(long& v) {return GetProp(18,v);}
    BOOL SetPropRetValue(long v) {return SetProp(18,v);}

    BOOL GetPropColAttr(string& v) {return GetProp(19,v);}
    BOOL SetPropColAttr(string& v) {return SetProp(19,v);}

    BOOL GetPropBindList(string& v) {return GetProp(20,v);}
    BOOL SetPropBindList(string& v) {return SetProp(20,v);}

    BOOL GetPropQueryPath(string& v) {return GetProp(21,v);}
    BOOL SetPropQueryPath(string& v) {return SetProp(21,v);}

    BOOL GetPropEventMask(ENUM& v) {return GetProp(22,v);}
    BOOL SetPropEventMask(ENUM v) {return SetProp(22,v);}

    BOOL GetPropConfirmMask(ENUM& v) {return GetProp(23,v);}
    BOOL SetPropConfirmMask(ENUM v) {return SetProp(23,v);}

    BOOL GetPropBuildTrigger(string& v) {return GetProp(24,v);}
    BOOL SetPropBuildTrigger(string& v) {return SetProp(24,v);}

    BOOL GetPropActionString(string& v) {return GetProp(25,v);}
    BOOL SetPropActionString(string& v) {return SetProp(25,v);}

    BOOL GetPropModeBitMask(long& v) {return GetProp(26,v);}
    BOOL SetPropModeBitMask(long v) {return SetProp(26,v);}

    BOOL GetPropBuildColAttr(string& v) {return GetProp(27,v);}
    BOOL SetPropBuildColAttr(string& v) {return SetProp(27,v);}

    BOOL GetPropRow(long& v) {return GetProp(28,v);}
    BOOL SetPropRow(long v) {return SetProp(28,v);}

    BOOL GetPropColData(string& v, int i) {return GetProp(29,v,i);}
    BOOL SetPropColData(string& v, int i) {return SetProp(29,v,i);}

    BOOL GetPropDebugLevel(ENUM& v) {return GetProp(30,v);}
    BOOL SetPropDebugLevel(ENUM v) {return SetProp(30,v);}

    BOOL GetPropDataStream(ENUM& v) {return GetProp(31,v);}
    BOOL SetPropDataStream(ENUM v) {return SetProp(31,v);}

    BOOL GetPropLparam(long& v) {return GetProp(32,v);}
    BOOL SetPropLparam(long v) {return SetProp(32,v);}

    BOOL GetPropWparam(int& v) {return GetProp(33,v);}
    BOOL SetPropWparam(int v) {return SetProp(33,v);}

    BOOL GetPropCommand(int& v) {return GetProp(34,v);}
    BOOL SetPropCommand(int v) {return SetProp(34,v);}

    BOOL GetPropStringVal(string& v) {return GetProp(35,v);}
    BOOL SetPropStringVal(string& v) {return SetProp(35,v);}

#if 0
  DECLARE_RESPONSE_TABLE(TVbxCIQry);
#endif
};

#if 0
// OWL response table
DEFINE_RESPONSE_TABLE1(TVbxCIQry, TVbxControl)
  EV_VBXEVENTINDEX( IDC_CIQry, Event_CIQry_CursorError, EvCursorError ),
  EV_VBXEVENTINDEX( IDC_CIQry, Event_CIQry_PREDELETE, EvPREDELETE ),
  EV_VBXEVENTINDEX( IDC_CIQry, Event_CIQry_PREFETCH, EvPREFETCH ),
  EV_VBXEVENTINDEX( IDC_CIQry, Event_CIQry_PREFIELD, EvPREFIELD ),
  EV_VBXEVENTINDEX( IDC_CIQry, Event_CIQry_PREINSERT, EvPREINSERT ),
  EV_VBXEVENTINDEX( IDC_CIQry, Event_CIQry_PREUPDATE, EvPREUPDATE ),
  EV_VBXEVENTINDEX( IDC_CIQry, Event_CIQry_ROWSEL, EvROWSEL ),
  EV_VBXEVENTINDEX( IDC_CIQry, Event_CIQry_STATE, EvSTATE ),
END_RESPONSE_TABLE;
#endif

#endif

//--------------------------------------------------------
// CIOP (VB3, subclassed from Button)
//--------------------------------------------------------

// properties
#define Prop_CIOP_CtlName 0
#define Prop_CIOP_Index 1
#define Prop_CIOP_BackColor 2
#define Prop_CIOP_Caption 3
#define Prop_CIOP_Left 4
#define Prop_CIOP_Top 5
#define Prop_CIOP_Width 6
#define Prop_CIOP_Height 7
#define Prop_CIOP_Visible 8
#define Prop_CIOP_Tag 9
#define Prop_CIOP_About 10
#define Prop_CIOP_FontName 11
#define Prop_CIOP_FontBold 12
#define Prop_CIOP_FontItalic 13
#define Prop_CIOP_FontStrikethru 14
#define Prop_CIOP_FontUnderline 15
#define Prop_CIOP_Enabled 16
#define Prop_CIOP_MousePointer 17
#define Prop_CIOP_TabIndex 18
#define Prop_CIOP_CursorName 19
#define Prop_CIOP_ActionString 20
#define Prop_CIOP_Operation 21
#define Prop_CIOP_QBF_OR 22
#define Prop_CIOP_QBF_preLike 23
#define Prop_CIOP_QBF_postLike 24
#define Prop_CIOP_Value 25
#define Prop_CIOP_QBF_external 26
#define Prop_CIOP_TabStop 27

// events
#define Event_CIOP_PostAction 0
#define Event_CIOP_PreAction 1

// default form data
//
// Some VBX controls do not operate correctly when created without
// a form file.  This occurs when a program creates a control
// dynamically rather than as part of a dialog resource.  If this
// control exhibits problems in this mode, try creating it with the
// following form data:
//
// For OWL programs:
//
//   TVbxCIOP* c = new TVbxCIOP(..., sizeof(CIOPData), CIOPData);
//
// For C/C++ programs:
//
//   HFORMFILE file = VBXCreateFormFile(sizeof(CIOPData), CIOPData);
//   HCTL c = VBXCreate(..., file);
//   VBXDeleteFormFile(file);
//
// Note that the VBXGEN_DATA or CIOP_DATA symbol must be
// defined in order to use the default form data.
//
extern BYTE CIOPData[107L];
#if defined(VBXGEN_DATA) || defined(CIOP_DATA)
  BYTE CIOPData[107L]={
    0x00,0x04,0x43,0x49,0x4f,0x50,0x01,0x00,
    0x00,0x02,0xff,0xff,0xff,0x00,0x03,0x04,
    0x43,0x49,0x4f,0x50,0x04,0x08,0xff,0xff,
    0x09,0x00,0x0b,0x40,0x01,0x07,0x00,0x00,
    0x00,0x00,0x00,0xbc,0x02,0x00,0x00,0x00,
    0x00,0x01,0x02,0x02,0x22,0x53,0x79,0x73,
    0x74,0x65,0x6d,0x00,0x09,0x50,0x00,0xae,
    0x09,0x50,0x00,0xae,0x09,0x9f,0x3e,0xf7,
    0x26,0x53,0x19,0x67,0x09,0x50,0x00,0xae,
    0x09,0x04,0x19,0xe4,0x42,0x10,0xff,0xff,
    0x11,0x00,0x12,0x00,0x00,0x13,0x00,0x14,
    0x00,0x15,0x00,0x16,0x00,0x00,0x17,0x00,
    0x00,0x18,0x00,0x00,0x1a,0x00,0x00,0x1b,
    0x01,0x00,0xff,
  };
#endif

#ifdef __OWL_VBXCTL_H

// OWL class
class TVbxCIOP : public TVbxControl {
  public:

    // constructors
    TVbxCIOP(TWindow* parent, int id, LPCSTR title,
        int x, int y, int w, int h,
        long initLen=0, void far* initData=0, TModule* module=0) :
      TVbxControl(parent, id, "SQC.VBX", "CIOP",
          title, x, y, w, h, initLen, initData, module) {}

    TVbxCIOP(TWindow* parent, int resourceId, TModule* module=0) :
        TVbxControl(parent, resourceId, module) {}

#if 0
    // event handlers
    void EvPostAction(VBXEVENT FAR*)
    {
      // hCursor as Long,ReturnCode as long,Lparam as long,Action as long
    }

    void EvPreAction(VBXEVENT FAR*)
    {
      // hCursor as Long,Operation as long,Lparam as long,Action as long
    }

#endif

    // enumerations
    enum { // values for property MousePointer
      MousePointer_0_Default,
      MousePointer_1_Arrow,
      MousePointer_2_Cross,
      MousePointer_3_IBeam,
      MousePointer_4_Icon,
      MousePointer_5_Size,
      MousePointer_6_Size_NE_SW,
      MousePointer_7_Size_NS,
      MousePointer_8_Size_NW_SE,
      MousePointer_9_Size_WE,
      MousePointer_10_Up_Arrow,
      MousePointer_11_Hourglass,
      MousePointer_12_No_Drop,
    };

    enum { // values for property Operation
      Operation_0_None,
      Operation_1_Clear_Form_,
      Operation_2_Clear_Query_Fields_,
      Operation_3_Close_Cursor_,
      Operation_4_Delete_Record_,
      Operation_5_Fetch_Current_Record_,
      Operation_6_Fetch_First_Record_,
      Operation_7_Fetch_Last_Record_,
      Operation_8_Fetch_Next_Record_,
      Operation_9_Fetch_Previous_Record_,
      Operation_10_Insert_Record_,
      Operation_11_Open_Cursor_,
      Operation_12_Query_by_Form_,
      Operation_13_Update_Record_,
      Operation_14_Execute_Chain_,
      Operation_15_New_Record_,
    };


    // properties
    BOOL GetPropCtlName(string& v) {return GetProp(0,v);}
    BOOL SetPropCtlName(string& v) {return SetProp(0,v);}

    BOOL GetPropIndex(int& v) {return GetProp(1,v);}
    BOOL SetPropIndex(int v) {return SetProp(1,v);}

    BOOL GetPropBackColor(COLORREF& v) {return GetProp(2,v);}
    BOOL SetPropBackColor(COLORREF v) {return SetProp(2,v);}

    BOOL GetPropCaption(string& v) {return GetProp(3,v);}
    BOOL SetPropCaption(string& v) {return SetProp(3,v);}

    BOOL GetPropLeft(long& v) {return GetProp(4,v);}
    BOOL SetPropLeft(long v) {return SetProp(4,v);}

    BOOL GetPropTop(long& v) {return GetProp(5,v);}
    BOOL SetPropTop(long v) {return SetProp(5,v);}

    BOOL GetPropWidth(long& v) {return GetProp(6,v);}
    BOOL SetPropWidth(long v) {return SetProp(6,v);}

    BOOL GetPropHeight(long& v) {return GetProp(7,v);}
    BOOL SetPropHeight(long v) {return SetProp(7,v);}

    BOOL GetPropVisible(BOOL& v) {return GetProp(8,v);}
    BOOL SetPropVisible(BOOL v) {return SetProp(8,v);}

    BOOL GetPropTag(string& v) {return GetProp(9,v);}
    BOOL SetPropTag(string& v) {return SetProp(9,v);}

    BOOL GetPropAbout(string& v) {return GetProp(10,v);}
    BOOL SetPropAbout(string& v) {return SetProp(10,v);}

    BOOL GetPropFontName(string& v) {return GetProp(11,v);}
    BOOL SetPropFontName(string& v) {return SetProp(11,v);}

    BOOL GetPropFontBold(BOOL& v) {return GetProp(12,v);}
    BOOL SetPropFontBold(BOOL v) {return SetProp(12,v);}

    BOOL GetPropFontItalic(BOOL& v) {return GetProp(13,v);}
    BOOL SetPropFontItalic(BOOL v) {return SetProp(13,v);}

    BOOL GetPropFontStrikethru(BOOL& v) {return GetProp(14,v);}
    BOOL SetPropFontStrikethru(BOOL v) {return SetProp(14,v);}

    BOOL GetPropFontUnderline(BOOL& v) {return GetProp(15,v);}
    BOOL SetPropFontUnderline(BOOL v) {return SetProp(15,v);}

    BOOL GetPropEnabled(BOOL& v) {return GetProp(16,v);}
    BOOL SetPropEnabled(BOOL v) {return SetProp(16,v);}

    BOOL GetPropMousePointer(ENUM& v) {return GetProp(17,v);}
    BOOL SetPropMousePointer(ENUM v) {return SetProp(17,v);}

    BOOL GetPropTabIndex(int& v) {return GetProp(18,v);}
    BOOL SetPropTabIndex(int v) {return SetProp(18,v);}

    BOOL GetPropCursorName(string& v) {return GetProp(19,v);}
    BOOL SetPropCursorName(string& v) {return SetProp(19,v);}

    BOOL GetPropActionString(string& v) {return GetProp(20,v);}
    BOOL SetPropActionString(string& v) {return SetProp(20,v);}

    BOOL GetPropOperation(ENUM& v) {return GetProp(21,v);}
    BOOL SetPropOperation(ENUM v) {return SetProp(21,v);}

    BOOL GetPropQBF_OR(BOOL& v) {return GetProp(22,v);}
    BOOL SetPropQBF_OR(BOOL v) {return SetProp(22,v);}

    BOOL GetPropQBF_preLike(BOOL& v) {return GetProp(23,v);}
    BOOL SetPropQBF_preLike(BOOL v) {return SetProp(23,v);}

    BOOL GetPropQBF_postLike(BOOL& v) {return GetProp(24,v);}
    BOOL SetPropQBF_postLike(BOOL v) {return SetProp(24,v);}

    BOOL GetPropValue(BOOL& v) {return GetProp(25,v);}
    BOOL SetPropValue(BOOL v) {return SetProp(25,v);}

    BOOL GetPropQBF_external(BOOL& v) {return GetProp(26,v);}
    BOOL SetPropQBF_external(BOOL v) {return SetProp(26,v);}

    BOOL GetPropTabStop(BOOL& v) {return GetProp(27,v);}
    BOOL SetPropTabStop(BOOL v) {return SetProp(27,v);}

#if 0
  DECLARE_RESPONSE_TABLE(TVbxCIOP);
#endif
};

#if 0
// OWL response table
DEFINE_RESPONSE_TABLE1(TVbxCIOP, TVbxControl)
  EV_VBXEVENTINDEX( IDC_CIOP, Event_CIOP_PostAction, EvPostAction ),
  EV_VBXEVENTINDEX( IDC_CIOP, Event_CIOP_PreAction, EvPreAction ),
END_RESPONSE_TABLE;
#endif

#endif

//--------------------------------------------------------
// CIText (VB3, subclassed from Edit)
//--------------------------------------------------------

// properties
#define Prop_CIText_CtlName 0
#define Prop_CIText_Index 1
#define Prop_CIText_BackColor 2
#define Prop_CIText_Left 3
#define Prop_CIText_Top 4
#define Prop_CIText_Width 5
#define Prop_CIText_Height 6
#define Prop_CIText_Visible 7
#define Prop_CIText_Tag 8
#define Prop_CIText_About 9
#define Prop_CIText_FontName 10
#define Prop_CIText_FontBold 11
#define Prop_CIText_FontItalic 12
#define Prop_CIText_FontStrikethru 13
#define Prop_CIText_FontUnderline 14
#define Prop_CIText_Enabled 15
#define Prop_CIText_MousePointer 16
#define Prop_CIText_TabIndex 17
#define Prop_CIText_TabStop 18
#define Prop_CIText_Text 19
#define Prop_CIText_Border 20
#define Prop_CIText_Multiline 21
#define Prop_CIText_ScrollBars 22
#define Prop_CIText_HideSelection 23
#define Prop_CIText_Password 24
#define Prop_CIText_Align 25
#define Prop_CIText_Case 26
#define Prop_CIText_FontSize 27
#define Prop_CIText_ForeColor 28

// events
#define Event_CIText_DragDrop 0
#define Event_CIText_DragOver 1
#define Event_CIText_GotFocus 2
#define Event_CIText_KeyDown 3
#define Event_CIText_KeyPress 4
#define Event_CIText_KeyUp 5
#define Event_CIText_LostFocus 6

// default form data
//
// Some VBX controls do not operate correctly when created without
// a form file.  This occurs when a program creates a control
// dynamically rather than as part of a dialog resource.  If this
// control exhibits problems in this mode, try creating it with the
// following form data:
//
// For OWL programs:
//
//   TVbxCIText* c = new TVbxCIText(..., sizeof(CITextData), CITextData);
//
// For C/C++ programs:
//
//   HFORMFILE file = VBXCreateFormFile(sizeof(CITextData), CITextData);
//   HCTL c = VBXCreate(..., file);
//   VBXDeleteFormFile(file);
//
// Note that the VBXGEN_DATA or CIText_DATA symbol must be
// defined in order to use the default form data.
//
extern BYTE CITextData[115L];
#if defined(VBXGEN_DATA) || defined(CIText_DATA)
  BYTE CITextData[115L]={
    0x14,0x00,0x15,0x00,0x00,0x16,0x00,0x17,
    0xff,0xff,0x18,0x00,0x00,0x19,0x00,0x1a,
    0x00,0x00,0x06,0x43,0x49,0x54,0x65,0x78,
    0x74,0x01,0x00,0x00,0x02,0xff,0xff,0xff,
    0x00,0x03,0x07,0xff,0xff,0x08,0x00,0x0a,
    0x40,0x01,0x07,0x00,0x00,0x00,0x00,0x00,
    0xbc,0x02,0x00,0x00,0x00,0x00,0x01,0x02,
    0x02,0x22,0x53,0x79,0x73,0x74,0x65,0x6d,
    0x00,0x09,0x50,0x00,0xae,0x09,0x50,0x00,
    0xae,0x09,0x9f,0x3e,0x27,0x27,0x53,0x19,
    0x67,0x09,0x50,0x00,0xae,0x09,0x04,0x19,
    0xe4,0x42,0x0f,0xff,0xff,0x10,0x00,0x11,
    0x00,0x00,0x12,0x01,0x00,0x13,0x06,0x43,
    0x49,0x54,0x65,0x78,0x74,0x1c,0x00,0x00,
    0x00,0x00,0xff,
  };
#endif

#ifdef __OWL_VBXCTL_H

// OWL class
class TVbxCIText : public TVbxControl {
  public:

    // constructors
    TVbxCIText(TWindow* parent, int id, LPCSTR title,
        int x, int y, int w, int h,
        long initLen=0, void far* initData=0, TModule* module=0) :
      TVbxControl(parent, id, "SQC.VBX", "CIText",
          title, x, y, w, h, initLen, initData, module) {}

    TVbxCIText(TWindow* parent, int resourceId, TModule* module=0) :
        TVbxControl(parent, resourceId, module) {}

#if 0
    // event handlers
    void EvDragDrop(VBXEVENT FAR*)
    {
      // Source As Control,X As Integer,Y As Integer
    }

    void EvDragOver(VBXEVENT FAR*)
    {
      // Source As Control,X As Integer,Y As Integer,State As Integer
    }

    void EvGotFocus(VBXEVENT FAR*)
    {
      // no arguments
    }

    void EvKeyDown(VBXEVENT FAR*)
    {
      // KeyCode As Integer,Shift As Integer
    }

    void EvKeyPress(VBXEVENT FAR*)
    {
      // KeyAscii As Integer
    }

    void EvKeyUp(VBXEVENT FAR*)
    {
      // KeyCode As Integer,Shift As Integer
    }

    void EvLostFocus(VBXEVENT FAR*)
    {
      // no arguments
    }

#endif

    // enumerations
    enum { // values for property MousePointer
      MousePointer_0_Default,
      MousePointer_1_Arrow,
      MousePointer_2_Cross,
      MousePointer_3_IBeam,
      MousePointer_4_Icon,
      MousePointer_5_Size,
      MousePointer_6_Size_NE_SW,
      MousePointer_7_Size_NS,
      MousePointer_8_Size_NW_SE,
      MousePointer_9_Size_WE,
      MousePointer_10_Up_Arrow,
      MousePointer_11_Hourglass,
      MousePointer_12_No_Drop,
    };

    enum { // values for property Border
      Border_0_Single_line,
      Border_1_no_border_,
    };

    enum { // values for property ScrollBars
      ScrollBars_0_None,
      ScrollBars_1_Horizontal_,
      ScrollBars_2_Vertical_,
      ScrollBars_3_Both,
    };

    enum { // values for property Align
      Align_0_Left,
      Align_1_Right_,
      Align_2_Center_,
    };

    enum { // values for property Case
      Case_0_Accept_as_typed,
      Case_1_Convert_to_Upper_Case_,
      Case_2_Convert_to_Lower_Case_,
    };


    // properties
    BOOL GetPropCtlName(string& v) {return GetProp(0,v);}
    BOOL SetPropCtlName(string& v) {return SetProp(0,v);}

    BOOL GetPropIndex(int& v) {return GetProp(1,v);}
    BOOL SetPropIndex(int v) {return SetProp(1,v);}

    BOOL GetPropBackColor(COLORREF& v) {return GetProp(2,v);}
    BOOL SetPropBackColor(COLORREF v) {return SetProp(2,v);}

    BOOL GetPropLeft(long& v) {return GetProp(3,v);}
    BOOL SetPropLeft(long v) {return SetProp(3,v);}

    BOOL GetPropTop(long& v) {return GetProp(4,v);}
    BOOL SetPropTop(long v) {return SetProp(4,v);}

    BOOL GetPropWidth(long& v) {return GetProp(5,v);}
    BOOL SetPropWidth(long v) {return SetProp(5,v);}

    BOOL GetPropHeight(long& v) {return GetProp(6,v);}
    BOOL SetPropHeight(long v) {return SetProp(6,v);}

    BOOL GetPropVisible(BOOL& v) {return GetProp(7,v);}
    BOOL SetPropVisible(BOOL v) {return SetProp(7,v);}

    BOOL GetPropTag(string& v) {return GetProp(8,v);}
    BOOL SetPropTag(string& v) {return SetProp(8,v);}

    BOOL GetPropAbout(string& v) {return GetProp(9,v);}
    BOOL SetPropAbout(string& v) {return SetProp(9,v);}

    BOOL GetPropFontName(string& v) {return GetProp(10,v);}
    BOOL SetPropFontName(string& v) {return SetProp(10,v);}

    BOOL GetPropFontBold(BOOL& v) {return GetProp(11,v);}
    BOOL SetPropFontBold(BOOL v) {return SetProp(11,v);}

    BOOL GetPropFontItalic(BOOL& v) {return GetProp(12,v);}
    BOOL SetPropFontItalic(BOOL v) {return SetProp(12,v);}

    BOOL GetPropFontStrikethru(BOOL& v) {return GetProp(13,v);}
    BOOL SetPropFontStrikethru(BOOL v) {return SetProp(13,v);}

    BOOL GetPropFontUnderline(BOOL& v) {return GetProp(14,v);}
    BOOL SetPropFontUnderline(BOOL v) {return SetProp(14,v);}

    BOOL GetPropEnabled(BOOL& v) {return GetProp(15,v);}
    BOOL SetPropEnabled(BOOL v) {return SetProp(15,v);}

    BOOL GetPropMousePointer(ENUM& v) {return GetProp(16,v);}
    BOOL SetPropMousePointer(ENUM v) {return SetProp(16,v);}

    BOOL GetPropTabIndex(int& v) {return GetProp(17,v);}
    BOOL SetPropTabIndex(int v) {return SetProp(17,v);}

    BOOL GetPropTabStop(BOOL& v) {return GetProp(18,v);}
    BOOL SetPropTabStop(BOOL v) {return SetProp(18,v);}

    BOOL GetPropText(string& v) {return GetProp(19,v);}
    BOOL SetPropText(string& v) {return SetProp(19,v);}

    BOOL GetPropBorder(ENUM& v) {return GetProp(20,v);}
    BOOL SetPropBorder(ENUM v) {return SetProp(20,v);}

    BOOL GetPropMultiline(BOOL& v) {return GetProp(21,v);}
    BOOL SetPropMultiline(BOOL v) {return SetProp(21,v);}

    BOOL GetPropScrollBars(ENUM& v) {return GetProp(22,v);}
    BOOL SetPropScrollBars(ENUM v) {return SetProp(22,v);}

    BOOL GetPropHideSelection(BOOL& v) {return GetProp(23,v);}
    BOOL SetPropHideSelection(BOOL v) {return SetProp(23,v);}

    BOOL GetPropPassword(BOOL& v) {return GetProp(24,v);}
    BOOL SetPropPassword(BOOL v) {return SetProp(24,v);}

    BOOL GetPropAlign(ENUM& v) {return GetProp(25,v);}
    BOOL SetPropAlign(ENUM v) {return SetProp(25,v);}

    BOOL GetPropCase(ENUM& v) {return GetProp(26,v);}
    BOOL SetPropCase(ENUM v) {return SetProp(26,v);}

    BOOL GetPropFontSize(float& v) {return GetProp(27,v);}
    BOOL SetPropFontSize(float v) {return SetProp(27,v);}

    BOOL GetPropForeColor(COLORREF& v) {return GetProp(28,v);}
    BOOL SetPropForeColor(COLORREF v) {return SetProp(28,v);}

#if 0
  DECLARE_RESPONSE_TABLE(TVbxCIText);
#endif
};

#if 0
// OWL response table
DEFINE_RESPONSE_TABLE1(TVbxCIText, TVbxControl)
  EV_VBXEVENTINDEX( IDC_CIText, Event_CIText_DragDrop, EvDragDrop ),
  EV_VBXEVENTINDEX( IDC_CIText, Event_CIText_DragOver, EvDragOver ),
  EV_VBXEVENTINDEX( IDC_CIText, Event_CIText_GotFocus, EvGotFocus ),
  EV_VBXEVENTINDEX( IDC_CIText, Event_CIText_KeyDown, EvKeyDown ),
  EV_VBXEVENTINDEX( IDC_CIText, Event_CIText_KeyPress, EvKeyPress ),
  EV_VBXEVENTINDEX( IDC_CIText, Event_CIText_KeyUp, EvKeyUp ),
  EV_VBXEVENTINDEX( IDC_CIText, Event_CIText_LostFocus, EvLostFocus ),
END_RESPONSE_TABLE;
#endif

#endif

//--------------------------------------------------------
// CIFrame (VB3, subclassed from Button)
//--------------------------------------------------------

// properties
#define Prop_CIFrame_CtlName 0
#define Prop_CIFrame_Index 1
#define Prop_CIFrame_BackColor 2
#define Prop_CIFrame_Caption 3
#define Prop_CIFrame_Left 4
#define Prop_CIFrame_Top 5
#define Prop_CIFrame_Width 6
#define Prop_CIFrame_Height 7
#define Prop_CIFrame_Visible 8
#define Prop_CIFrame_Tag 9
#define Prop_CIFrame_About 10
#define Prop_CIFrame_FontName 11
#define Prop_CIFrame_FontBold 12
#define Prop_CIFrame_FontItalic 13
#define Prop_CIFrame_FontStrikethru 14
#define Prop_CIFrame_FontUnderline 15
#define Prop_CIFrame_Enabled 16
#define Prop_CIFrame_MousePointer 17
#define Prop_CIFrame_TabIndex 18
#define Prop_CIFrame_TabStop 19
#define Prop_CIFrame_LeftText 20
#define Prop_CIFrame_Value 21
#define Prop_CIFrame_FontSize 22
#define Prop_CIFrame_ForeColor 23

// events
#define Event_CIFrame_DragDrop 0
#define Event_CIFrame_DragOver 1
#define Event_CIFrame_Click 2
#define Event_CIFrame_DblClick 3

// default form data
//
// Some VBX controls do not operate correctly when created without
// a form file.  This occurs when a program creates a control
// dynamically rather than as part of a dialog resource.  If this
// control exhibits problems in this mode, try creating it with the
// following form data:
//
// For OWL programs:
//
//   TVbxCIFrame* c = new TVbxCIFrame(..., sizeof(CIFrameData), CIFrameData);
//
// For C/C++ programs:
//
//   HFORMFILE file = VBXCreateFormFile(sizeof(CIFrameData), CIFrameData);
//   HCTL c = VBXCreate(..., file);
//   VBXDeleteFormFile(file);
//
// Note that the VBXGEN_DATA or CIFrame_DATA symbol must be
// defined in order to use the default form data.
//
extern BYTE CIFrameData[103L];
#if defined(VBXGEN_DATA) || defined(CIFrame_DATA)
  BYTE CIFrameData[103L]={
    0x14,0x00,0x00,0x00,0x07,0x43,0x49,0x46,
    0x72,0x61,0x6d,0x65,0x01,0x00,0x00,0x02,
    0xff,0xff,0xff,0x00,0x03,0x07,0x43,0x49,
    0x46,0x72,0x61,0x6d,0x65,0x04,0x08,0xff,
    0xff,0x09,0x00,0x0b,0x40,0x01,0x07,0x00,
    0x00,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,
    0x00,0x00,0x01,0x02,0x02,0x22,0x53,0x79,
    0x73,0x74,0x65,0x6d,0x00,0x09,0x50,0x00,
    0xae,0x09,0x50,0x00,0xae,0x09,0x9f,0x3e,
    0xd5,0x26,0x53,0x19,0x67,0x09,0x50,0x00,
    0xae,0x09,0x04,0x19,0xe4,0x42,0x10,0xff,
    0xff,0x11,0x00,0x12,0x00,0x00,0x13,0x01,
    0x00,0x17,0x00,0x00,0x00,0x00,0xff,
  };
#endif

#ifdef __OWL_VBXCTL_H

// OWL class
class TVbxCIFrame : public TVbxControl {
  public:

    // constructors
    TVbxCIFrame(TWindow* parent, int id, LPCSTR title,
        int x, int y, int w, int h,
        long initLen=0, void far* initData=0, TModule* module=0) :
      TVbxControl(parent, id, "SQC.VBX", "CIFrame",
          title, x, y, w, h, initLen, initData, module) {}

    TVbxCIFrame(TWindow* parent, int resourceId, TModule* module=0) :
        TVbxControl(parent, resourceId, module) {}

#if 0
    // event handlers
    void EvDragDrop(VBXEVENT FAR*)
    {
      // Source As Control,X As Integer,Y As Integer
    }

    void EvDragOver(VBXEVENT FAR*)
    {
      // Source As Control,X As Integer,Y As Integer,State As Integer
    }

    void EvClick(VBXEVENT FAR*)
    {
      // no arguments
    }

    void EvDblClick(VBXEVENT FAR*)
    {
      // no arguments
    }

#endif

    // enumerations
    enum { // values for property MousePointer
      MousePointer_0_Default,
      MousePointer_1_Arrow,
      MousePointer_2_Cross,
      MousePointer_3_IBeam,
      MousePointer_4_Icon,
      MousePointer_5_Size,
      MousePointer_6_Size_NE_SW,
      MousePointer_7_Size_NS,
      MousePointer_8_Size_NW_SE,
      MousePointer_9_Size_WE,
      MousePointer_10_Up_Arrow,
      MousePointer_11_Hourglass,
      MousePointer_12_No_Drop,
    };


    // properties
    BOOL GetPropCtlName(string& v) {return GetProp(0,v);}
    BOOL SetPropCtlName(string& v) {return SetProp(0,v);}

    BOOL GetPropIndex(int& v) {return GetProp(1,v);}
    BOOL SetPropIndex(int v) {return SetProp(1,v);}

    BOOL GetPropBackColor(COLORREF& v) {return GetProp(2,v);}
    BOOL SetPropBackColor(COLORREF v) {return SetProp(2,v);}

    BOOL GetPropCaption(string& v) {return GetProp(3,v);}
    BOOL SetPropCaption(string& v) {return SetProp(3,v);}

    BOOL GetPropLeft(long& v) {return GetProp(4,v);}
    BOOL SetPropLeft(long v) {return SetProp(4,v);}

    BOOL GetPropTop(long& v) {return GetProp(5,v);}
    BOOL SetPropTop(long v) {return SetProp(5,v);}

    BOOL GetPropWidth(long& v) {return GetProp(6,v);}
    BOOL SetPropWidth(long v) {return SetProp(6,v);}

    BOOL GetPropHeight(long& v) {return GetProp(7,v);}
    BOOL SetPropHeight(long v) {return SetProp(7,v);}

    BOOL GetPropVisible(BOOL& v) {return GetProp(8,v);}
    BOOL SetPropVisible(BOOL v) {return SetProp(8,v);}

    BOOL GetPropTag(string& v) {return GetProp(9,v);}
    BOOL SetPropTag(string& v) {return SetProp(9,v);}

    BOOL GetPropAbout(string& v) {return GetProp(10,v);}
    BOOL SetPropAbout(string& v) {return SetProp(10,v);}

    BOOL GetPropFontName(string& v) {return GetProp(11,v);}
    BOOL SetPropFontName(string& v) {return SetProp(11,v);}

    BOOL GetPropFontBold(BOOL& v) {return GetProp(12,v);}
    BOOL SetPropFontBold(BOOL v) {return SetProp(12,v);}

    BOOL GetPropFontItalic(BOOL& v) {return GetProp(13,v);}
    BOOL SetPropFontItalic(BOOL v) {return SetProp(13,v);}

    BOOL GetPropFontStrikethru(BOOL& v) {return GetProp(14,v);}
    BOOL SetPropFontStrikethru(BOOL v) {return SetProp(14,v);}

    BOOL GetPropFontUnderline(BOOL& v) {return GetProp(15,v);}
    BOOL SetPropFontUnderline(BOOL v) {return SetProp(15,v);}

    BOOL GetPropEnabled(BOOL& v) {return GetProp(16,v);}
    BOOL SetPropEnabled(BOOL v) {return SetProp(16,v);}

    BOOL GetPropMousePointer(ENUM& v) {return GetProp(17,v);}
    BOOL SetPropMousePointer(ENUM v) {return SetProp(17,v);}

    BOOL GetPropTabIndex(int& v) {return GetProp(18,v);}
    BOOL SetPropTabIndex(int v) {return SetProp(18,v);}

    BOOL GetPropTabStop(BOOL& v) {return GetProp(19,v);}
    BOOL SetPropTabStop(BOOL v) {return SetProp(19,v);}

    BOOL GetPropLeftText(BOOL& v) {return GetProp(20,v);}
    BOOL SetPropLeftText(BOOL v) {return SetProp(20,v);}

    BOOL GetPropValue(int& v) {return GetProp(21,v);}
    BOOL SetPropValue(int v) {return SetProp(21,v);}

    BOOL GetPropFontSize(float& v) {return GetProp(22,v);}
    BOOL SetPropFontSize(float v) {return SetProp(22,v);}

    BOOL GetPropForeColor(COLORREF& v) {return GetProp(23,v);}
    BOOL SetPropForeColor(COLORREF v) {return SetProp(23,v);}

#if 0
  DECLARE_RESPONSE_TABLE(TVbxCIFrame);
#endif
};

#if 0
// OWL response table
DEFINE_RESPONSE_TABLE1(TVbxCIFrame, TVbxControl)
  EV_VBXEVENTINDEX( IDC_CIFrame, Event_CIFrame_DragDrop, EvDragDrop ),
  EV_VBXEVENTINDEX( IDC_CIFrame, Event_CIFrame_DragOver, EvDragOver ),
  EV_VBXEVENTINDEX( IDC_CIFrame, Event_CIFrame_Click, EvClick ),
  EV_VBXEVENTINDEX( IDC_CIFrame, Event_CIFrame_DblClick, EvDblClick ),
END_RESPONSE_TABLE;
#endif

#endif

//--------------------------------------------------------
// CICheck (VB3, subclassed from Button)
//--------------------------------------------------------

// properties
#define Prop_CICheck_CtlName 0
#define Prop_CICheck_Index 1
#define Prop_CICheck_BackColor 2
#define Prop_CICheck_Caption 3
#define Prop_CICheck_Left 4
#define Prop_CICheck_Top 5
#define Prop_CICheck_Width 6
#define Prop_CICheck_Height 7
#define Prop_CICheck_Visible 8
#define Prop_CICheck_Tag 9
#define Prop_CICheck_About 10
#define Prop_CICheck_FontName 11
#define Prop_CICheck_FontBold 12
#define Prop_CICheck_FontItalic 13
#define Prop_CICheck_FontStrikethru 14
#define Prop_CICheck_FontUnderline 15
#define Prop_CICheck_Enabled 16
#define Prop_CICheck_MousePointer 17
#define Prop_CICheck_TabIndex 18
#define Prop_CICheck_TabStop 19
#define Prop_CICheck_LeftText 20
#define Prop_CICheck_Value 21
#define Prop_CICheck_FontSize 22
#define Prop_CICheck_ForeColor 23

// events
#define Event_CICheck_DragDrop 0
#define Event_CICheck_DragOver 1
#define Event_CICheck_Click 2
#define Event_CICheck_DblClick 3

// default form data
//
// Some VBX controls do not operate correctly when created without
// a form file.  This occurs when a program creates a control
// dynamically rather than as part of a dialog resource.  If this
// control exhibits problems in this mode, try creating it with the
// following form data:
//
// For OWL programs:
//
//   TVbxCICheck* c = new TVbxCICheck(..., sizeof(CICheckData), CICheckData);
//
// For C/C++ programs:
//
//   HFORMFILE file = VBXCreateFormFile(sizeof(CICheckData), CICheckData);
//   HCTL c = VBXCreate(..., file);
//   VBXDeleteFormFile(file);
//
// Note that the VBXGEN_DATA or CICheck_DATA symbol must be
// defined in order to use the default form data.
//
extern BYTE CICheckData[103L];
#if defined(VBXGEN_DATA) || defined(CICheck_DATA)
  BYTE CICheckData[103L]={
    0x14,0x00,0x00,0x00,0x07,0x43,0x49,0x43,
    0x68,0x65,0x63,0x6b,0x01,0x00,0x00,0x02,
    0xff,0xff,0xff,0x00,0x03,0x07,0x43,0x49,
    0x43,0x68,0x65,0x63,0x6b,0x04,0x08,0xff,
    0xff,0x09,0x00,0x0b,0x40,0x01,0x07,0x00,
    0x00,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,
    0x00,0x00,0x01,0x02,0x02,0x22,0x53,0x79,
    0x73,0x74,0x65,0x6d,0x00,0x09,0x50,0x00,
    0xae,0x09,0x50,0x00,0xae,0x09,0x9f,0x3e,
    0x0f,0x27,0x53,0x19,0x67,0x09,0x50,0x00,
    0xae,0x09,0x04,0x19,0xe4,0x42,0x10,0xff,
    0xff,0x11,0x00,0x12,0x00,0x00,0x13,0x01,
    0x00,0x17,0x00,0x00,0x00,0x00,0xff,
  };
#endif

#ifdef __OWL_VBXCTL_H

// OWL class
class TVbxCICheck : public TVbxControl {
  public:

    // constructors
    TVbxCICheck(TWindow* parent, int id, LPCSTR title,
        int x, int y, int w, int h,
        long initLen=0, void far* initData=0, TModule* module=0) :
      TVbxControl(parent, id, "SQC.VBX", "CICheck",
          title, x, y, w, h, initLen, initData, module) {}

    TVbxCICheck(TWindow* parent, int resourceId, TModule* module=0) :
        TVbxControl(parent, resourceId, module) {}

#if 0
    // event handlers
    void EvDragDrop(VBXEVENT FAR*)
    {
      // Source As Control,X As Integer,Y As Integer
    }

    void EvDragOver(VBXEVENT FAR*)
    {
      // Source As Control,X As Integer,Y As Integer,State As Integer
    }

    void EvClick(VBXEVENT FAR*)
    {
      // no arguments
    }

    void EvDblClick(VBXEVENT FAR*)
    {
      // no arguments
    }

#endif

    // enumerations
    enum { // values for property MousePointer
      MousePointer_0_Default,
      MousePointer_1_Arrow,
      MousePointer_2_Cross,
      MousePointer_3_IBeam,
      MousePointer_4_Icon,
      MousePointer_5_Size,
      MousePointer_6_Size_NE_SW,
      MousePointer_7_Size_NS,
      MousePointer_8_Size_NW_SE,
      MousePointer_9_Size_WE,
      MousePointer_10_Up_Arrow,
      MousePointer_11_Hourglass,
      MousePointer_12_No_Drop,
    };


    // properties
    BOOL GetPropCtlName(string& v) {return GetProp(0,v);}
    BOOL SetPropCtlName(string& v) {return SetProp(0,v);}

    BOOL GetPropIndex(int& v) {return GetProp(1,v);}
    BOOL SetPropIndex(int v) {return SetProp(1,v);}

    BOOL GetPropBackColor(COLORREF& v) {return GetProp(2,v);}
    BOOL SetPropBackColor(COLORREF v) {return SetProp(2,v);}

    BOOL GetPropCaption(string& v) {return GetProp(3,v);}
    BOOL SetPropCaption(string& v) {return SetProp(3,v);}

    BOOL GetPropLeft(long& v) {return GetProp(4,v);}
    BOOL SetPropLeft(long v) {return SetProp(4,v);}

    BOOL GetPropTop(long& v) {return GetProp(5,v);}
    BOOL SetPropTop(long v) {return SetProp(5,v);}

    BOOL GetPropWidth(long& v) {return GetProp(6,v);}
    BOOL SetPropWidth(long v) {return SetProp(6,v);}

    BOOL GetPropHeight(long& v) {return GetProp(7,v);}
    BOOL SetPropHeight(long v) {return SetProp(7,v);}

    BOOL GetPropVisible(BOOL& v) {return GetProp(8,v);}
    BOOL SetPropVisible(BOOL v) {return SetProp(8,v);}

    BOOL GetPropTag(string& v) {return GetProp(9,v);}
    BOOL SetPropTag(string& v) {return SetProp(9,v);}

    BOOL GetPropAbout(string& v) {return GetProp(10,v);}
    BOOL SetPropAbout(string& v) {return SetProp(10,v);}

    BOOL GetPropFontName(string& v) {return GetProp(11,v);}
    BOOL SetPropFontName(string& v) {return SetProp(11,v);}

    BOOL GetPropFontBold(BOOL& v) {return GetProp(12,v);}
    BOOL SetPropFontBold(BOOL v) {return SetProp(12,v);}

    BOOL GetPropFontItalic(BOOL& v) {return GetProp(13,v);}
    BOOL SetPropFontItalic(BOOL v) {return SetProp(13,v);}

    BOOL GetPropFontStrikethru(BOOL& v) {return GetProp(14,v);}
    BOOL SetPropFontStrikethru(BOOL v) {return SetProp(14,v);}

    BOOL GetPropFontUnderline(BOOL& v) {return GetProp(15,v);}
    BOOL SetPropFontUnderline(BOOL v) {return SetProp(15,v);}

    BOOL GetPropEnabled(BOOL& v) {return GetProp(16,v);}
    BOOL SetPropEnabled(BOOL v) {return SetProp(16,v);}

    BOOL GetPropMousePointer(ENUM& v) {return GetProp(17,v);}
    BOOL SetPropMousePointer(ENUM v) {return SetProp(17,v);}

    BOOL GetPropTabIndex(int& v) {return GetProp(18,v);}
    BOOL SetPropTabIndex(int v) {return SetProp(18,v);}

    BOOL GetPropTabStop(BOOL& v) {return GetProp(19,v);}
    BOOL SetPropTabStop(BOOL v) {return SetProp(19,v);}

    BOOL GetPropLeftText(BOOL& v) {return GetProp(20,v);}
    BOOL SetPropLeftText(BOOL v) {return SetProp(20,v);}

    BOOL GetPropValue(int& v) {return GetProp(21,v);}
    BOOL SetPropValue(int v) {return SetProp(21,v);}

    BOOL GetPropFontSize(float& v) {return GetProp(22,v);}
    BOOL SetPropFontSize(float v) {return SetProp(22,v);}

    BOOL GetPropForeColor(COLORREF& v) {return GetProp(23,v);}
    BOOL SetPropForeColor(COLORREF v) {return SetProp(23,v);}

#if 0
  DECLARE_RESPONSE_TABLE(TVbxCICheck);
#endif
};

#if 0
// OWL response table
DEFINE_RESPONSE_TABLE1(TVbxCICheck, TVbxControl)
  EV_VBXEVENTINDEX( IDC_CICheck, Event_CICheck_DragDrop, EvDragDrop ),
  EV_VBXEVENTINDEX( IDC_CICheck, Event_CICheck_DragOver, EvDragOver ),
  EV_VBXEVENTINDEX( IDC_CICheck, Event_CICheck_Click, EvClick ),
  EV_VBXEVENTINDEX( IDC_CICheck, Event_CICheck_DblClick, EvDblClick ),
END_RESPONSE_TABLE;
#endif

#endif

//--------------------------------------------------------
// CIRadio (VB3, subclassed from Button)
//--------------------------------------------------------

// properties
#define Prop_CIRadio_CtlName 0
#define Prop_CIRadio_Index 1
#define Prop_CIRadio_BackColor 2
#define Prop_CIRadio_Caption 3
#define Prop_CIRadio_Left 4
#define Prop_CIRadio_Top 5
#define Prop_CIRadio_Width 6
#define Prop_CIRadio_Height 7
#define Prop_CIRadio_Visible 8
#define Prop_CIRadio_Tag 9
#define Prop_CIRadio_About 10
#define Prop_CIRadio_FontName 11
#define Prop_CIRadio_FontBold 12
#define Prop_CIRadio_FontItalic 13
#define Prop_CIRadio_FontStrikethru 14
#define Prop_CIRadio_FontUnderline 15
#define Prop_CIRadio_Enabled 16
#define Prop_CIRadio_MousePointer 17
#define Prop_CIRadio_TabIndex 18
#define Prop_CIRadio_TabStop 19
#define Prop_CIRadio_LeftText 20
#define Prop_CIRadio_Value 21
#define Prop_CIRadio_FontSize 22
#define Prop_CIRadio_ForeColor 23

// events
#define Event_CIRadio_DragDrop 0
#define Event_CIRadio_DragOver 1
#define Event_CIRadio_Click 2
#define Event_CIRadio_DblClick 3

// default form data
//
// Some VBX controls do not operate correctly when created without
// a form file.  This occurs when a program creates a control
// dynamically rather than as part of a dialog resource.  If this
// control exhibits problems in this mode, try creating it with the
// following form data:
//
// For OWL programs:
//
//   TVbxCIRadio* c = new TVbxCIRadio(..., sizeof(CIRadioData), CIRadioData);
//
// For C/C++ programs:
//
//   HFORMFILE file = VBXCreateFormFile(sizeof(CIRadioData), CIRadioData);
//   HCTL c = VBXCreate(..., file);
//   VBXDeleteFormFile(file);
//
// Note that the VBXGEN_DATA or CIRadio_DATA symbol must be
// defined in order to use the default form data.
//
extern BYTE CIRadioData[103L];
#if defined(VBXGEN_DATA) || defined(CIRadio_DATA)
  BYTE CIRadioData[103L]={
    0x14,0x00,0x00,0x00,0x07,0x43,0x49,0x52,
    0x61,0x64,0x69,0x6f,0x01,0x00,0x00,0x02,
    0xff,0xff,0xff,0x00,0x03,0x07,0x43,0x49,
    0x52,0x61,0x64,0x69,0x6f,0x04,0x08,0xff,
    0xff,0x09,0x00,0x0b,0x40,0x01,0x07,0x00,
    0x00,0x00,0x00,0x00,0xbc,0x02,0x00,0x00,
    0x00,0x00,0x01,0x02,0x02,0x22,0x53,0x79,
    0x73,0x74,0x65,0x6d,0x00,0x09,0x50,0x00,
    0xae,0x09,0x50,0x00,0xae,0x09,0x9f,0x3e,
    0x0f,0x27,0x53,0x19,0x67,0x09,0x50,0x00,
    0xae,0x09,0x04,0x19,0xe4,0x42,0x10,0xff,
    0xff,0x11,0x00,0x12,0x00,0x00,0x13,0x01,
    0x00,0x17,0x00,0x00,0x00,0x00,0xff,
  };
#endif

#ifdef __OWL_VBXCTL_H

// OWL class
class TVbxCIRadio : public TVbxControl {
  public:

    // constructors
    TVbxCIRadio(TWindow* parent, int id, LPCSTR title,
        int x, int y, int w, int h,
        long initLen=0, void far* initData=0, TModule* module=0) :
      TVbxControl(parent, id, "SQC.VBX", "CIRadio",
          title, x, y, w, h, initLen, initData, module) {}

    TVbxCIRadio(TWindow* parent, int resourceId, TModule* module=0) :
        TVbxControl(parent, resourceId, module) {}

#if 0
    // event handlers
    void EvDragDrop(VBXEVENT FAR*)
    {
      // Source As Control,X As Integer,Y As Integer
    }

    void EvDragOver(VBXEVENT FAR*)
    {
      // Source As Control,X As Integer,Y As Integer,State As Integer
    }

    void EvClick(VBXEVENT FAR*)
    {
      // no arguments
    }

    void EvDblClick(VBXEVENT FAR*)
    {
      // no arguments
    }

#endif

    // enumerations
    enum { // values for property MousePointer
      MousePointer_0_Default,
      MousePointer_1_Arrow,
      MousePointer_2_Cross,
      MousePointer_3_IBeam,
      MousePointer_4_Icon,
      MousePointer_5_Size,
      MousePointer_6_Size_NE_SW,
      MousePointer_7_Size_NS,
      MousePointer_8_Size_NW_SE,
      MousePointer_9_Size_WE,
      MousePointer_10_Up_Arrow,
      MousePointer_11_Hourglass,
      MousePointer_12_No_Drop,
    };


    // properties
    BOOL GetPropCtlName(string& v) {return GetProp(0,v);}
    BOOL SetPropCtlName(string& v) {return SetProp(0,v);}

    BOOL GetPropIndex(int& v) {return GetProp(1,v);}
    BOOL SetPropIndex(int v) {return SetProp(1,v);}

    BOOL GetPropBackColor(COLORREF& v) {return GetProp(2,v);}
    BOOL SetPropBackColor(COLORREF v) {return SetProp(2,v);}

    BOOL GetPropCaption(string& v) {return GetProp(3,v);}
    BOOL SetPropCaption(string& v) {return SetProp(3,v);}

    BOOL GetPropLeft(long& v) {return GetProp(4,v);}
    BOOL SetPropLeft(long v) {return SetProp(4,v);}

    BOOL GetPropTop(long& v) {return GetProp(5,v);}
    BOOL SetPropTop(long v) {return SetProp(5,v);}

    BOOL GetPropWidth(long& v) {return GetProp(6,v);}
    BOOL SetPropWidth(long v) {return SetProp(6,v);}

    BOOL GetPropHeight(long& v) {return GetProp(7,v);}
    BOOL SetPropHeight(long v) {return SetProp(7,v);}

    BOOL GetPropVisible(BOOL& v) {return GetProp(8,v);}
    BOOL SetPropVisible(BOOL v) {return SetProp(8,v);}

    BOOL GetPropTag(string& v) {return GetProp(9,v);}
    BOOL SetPropTag(string& v) {return SetProp(9,v);}

    BOOL GetPropAbout(string& v) {return GetProp(10,v);}
    BOOL SetPropAbout(string& v) {return SetProp(10,v);}

    BOOL GetPropFontName(string& v) {return GetProp(11,v);}
    BOOL SetPropFontName(string& v) {return SetProp(11,v);}

    BOOL GetPropFontBold(BOOL& v) {return GetProp(12,v);}
    BOOL SetPropFontBold(BOOL v) {return SetProp(12,v);}

    BOOL GetPropFontItalic(BOOL& v) {return GetProp(13,v);}
    BOOL SetPropFontItalic(BOOL v) {return SetProp(13,v);}

    BOOL GetPropFontStrikethru(BOOL& v) {return GetProp(14,v);}
    BOOL SetPropFontStrikethru(BOOL v) {return SetProp(14,v);}

    BOOL GetPropFontUnderline(BOOL& v) {return GetProp(15,v);}
    BOOL SetPropFontUnderline(BOOL v) {return SetProp(15,v);}

    BOOL GetPropEnabled(BOOL& v) {return GetProp(16,v);}
    BOOL SetPropEnabled(BOOL v) {return SetProp(16,v);}

    BOOL GetPropMousePointer(ENUM& v) {return GetProp(17,v);}
    BOOL SetPropMousePointer(ENUM v) {return SetProp(17,v);}

    BOOL GetPropTabIndex(int& v) {return GetProp(18,v);}
    BOOL SetPropTabIndex(int v) {return SetProp(18,v);}

    BOOL GetPropTabStop(BOOL& v) {return GetProp(19,v);}
    BOOL SetPropTabStop(BOOL v) {return SetProp(19,v);}

    BOOL GetPropLeftText(BOOL& v) {return GetProp(20,v);}
    BOOL SetPropLeftText(BOOL v) {return SetProp(20,v);}

    BOOL GetPropValue(int& v) {return GetProp(21,v);}
    BOOL SetPropValue(int v) {return SetProp(21,v);}

    BOOL GetPropFontSize(float& v) {return GetProp(22,v);}
    BOOL SetPropFontSize(float v) {return SetProp(22,v);}

    BOOL GetPropForeColor(COLORREF& v) {return GetProp(23,v);}
    BOOL SetPropForeColor(COLORREF v) {return SetProp(23,v);}

#if 0
  DECLARE_RESPONSE_TABLE(TVbxCIRadio);
#endif
};

#if 0
// OWL response table
DEFINE_RESPONSE_TABLE1(TVbxCIRadio, TVbxControl)
  EV_VBXEVENTINDEX( IDC_CIRadio, Event_CIRadio_DragDrop, EvDragDrop ),
  EV_VBXEVENTINDEX( IDC_CIRadio, Event_CIRadio_DragOver, EvDragOver ),
  EV_VBXEVENTINDEX( IDC_CIRadio, Event_CIRadio_Click, EvClick ),
  EV_VBXEVENTINDEX( IDC_CIRadio, Event_CIRadio_DblClick, EvDblClick ),
END_RESPONSE_TABLE;
#endif

#endif

//--------------------------------------------------------
// CICombo (VB3, subclassed from ComboBox)
//--------------------------------------------------------

// properties
#define Prop_CICombo_CtlName 0
#define Prop_CICombo_Index 1
#define Prop_CICombo_BackColor 2
#define Prop_CICombo_Left 3
#define Prop_CICombo_Top 4
#define Prop_CICombo_Width 5
#define Prop_CICombo_Height 6
#define Prop_CICombo_Visible 7
#define Prop_CICombo_Tag 8
#define Prop_CICombo_About 9
#define Prop_CICombo_FontName 10
#define Prop_CICombo_FontBold 11
#define Prop_CICombo_FontItalic 12
#define Prop_CICombo_FontStrikethru 13
#define Prop_CICombo_FontUnderline 14
#define Prop_CICombo_Enabled 15
#define Prop_CICombo_MousePointer 16
#define Prop_CICombo_TabIndex 17
#define Prop_CICombo_TabStop 18
#define Prop_CICombo_NoSort 19
#define Prop_CICombo_AutoHScroll 20
#define Prop_CICombo_DropStyle 21
#define Prop_CICombo_Text 22
#define Prop_CICombo_ItemCount 23

// events
#define Event_CICombo_DragDrop 0
#define Event_CICombo_DragOver 1
#define Event_CICombo_DropDown 2
#define Event_CICombo_GotFocus 3
#define Event_CICombo_LostFocus 4

// default form data
//
// Some VBX controls do not operate correctly when created without
// a form file.  This occurs when a program creates a control
// dynamically rather than as part of a dialog resource.  If this
// control exhibits problems in this mode, try creating it with the
// following form data:
//
// For OWL programs:
//
//   TVbxCICombo* c = new TVbxCICombo(..., sizeof(CIComboData), CIComboData);
//
// For C/C++ programs:
//
//   HFORMFILE file = VBXCreateFormFile(sizeof(CIComboData), CIComboData);
//   HCTL c = VBXCreate(..., file);
//   VBXDeleteFormFile(file);
//
// Note that the VBXGEN_DATA or CICombo_DATA symbol must be
// defined in order to use the default form data.
//
extern BYTE CIComboData[97L];
#if defined(VBXGEN_DATA) || defined(CICombo_DATA)
  BYTE CIComboData[97L]={
    0x13,0x00,0x00,0x14,0x00,0x00,0x15,0x00,
    0x00,0x07,0x43,0x49,0x43,0x6f,0x6d,0x62,
    0x6f,0x01,0x00,0x00,0x02,0xff,0xff,0xff,
    0x00,0x03,0x07,0xff,0xff,0x08,0x00,0x0a,
    0x40,0x01,0x07,0x00,0x00,0x00,0x00,0x00,
    0xbc,0x02,0x00,0x00,0x00,0x00,0x01,0x02,
    0x02,0x22,0x53,0x79,0x73,0x74,0x65,0x6d,
    0x00,0x09,0x50,0x00,0xae,0x09,0x50,0x00,
    0xae,0x09,0x9f,0x3e,0x39,0x26,0x53,0x19,
    0x67,0x09,0x50,0x00,0xae,0x09,0x04,0x19,
    0xe4,0x42,0x0f,0xff,0xff,0x10,0x00,0x11,
    0x00,0x00,0x12,0x01,0x00,0x17,0x00,0x00,
    0xff,
  };
#endif

#ifdef __OWL_VBXCTL_H

// OWL class
class TVbxCICombo : public TVbxControl {
  public:

    // constructors
    TVbxCICombo(TWindow* parent, int id, LPCSTR title,
        int x, int y, int w, int h,
        long initLen=0, void far* initData=0, TModule* module=0) :
      TVbxControl(parent, id, "SQC.VBX", "CICombo",
          title, x, y, w, h, initLen, initData, module) {}

    TVbxCICombo(TWindow* parent, int resourceId, TModule* module=0) :
        TVbxControl(parent, resourceId, module) {}

#if 0
    // event handlers
    void EvDragDrop(VBXEVENT FAR*)
    {
      // Source As Control,X As Integer,Y As Integer
    }

    void EvDragOver(VBXEVENT FAR*)
    {
      // Source As Control,X As Integer,Y As Integer,State As Integer
    }

    void EvDropDown(VBXEVENT FAR*)
    {
      // no arguments
    }

    void EvGotFocus(VBXEVENT FAR*)
    {
      // no arguments
    }

    void EvLostFocus(VBXEVENT FAR*)
    {
      // no arguments
    }

#endif

    // enumerations
    enum { // values for property MousePointer
      MousePointer_0_Default,
      MousePointer_1_Arrow,
      MousePointer_2_Cross,
      MousePointer_3_IBeam,
      MousePointer_4_Icon,
      MousePointer_5_Size,
      MousePointer_6_Size_NE_SW,
      MousePointer_7_Size_NS,
      MousePointer_8_Size_NW_SE,
      MousePointer_9_Size_WE,
      MousePointer_10_Up_Arrow,
      MousePointer_11_Hourglass,
      MousePointer_12_No_Drop,
    };

    enum { // values for property DropStyle
      DropStyle_0_Dropdown_List,
      DropStyle_1_Dropdown_,
      DropStyle_2_Simple_,
    };


    // properties
    BOOL GetPropCtlName(string& v) {return GetProp(0,v);}
    BOOL SetPropCtlName(string& v) {return SetProp(0,v);}

    BOOL GetPropIndex(int& v) {return GetProp(1,v);}
    BOOL SetPropIndex(int v) {return SetProp(1,v);}

    BOOL GetPropBackColor(COLORREF& v) {return GetProp(2,v);}
    BOOL SetPropBackColor(COLORREF v) {return SetProp(2,v);}

    BOOL GetPropLeft(long& v) {return GetProp(3,v);}
    BOOL SetPropLeft(long v) {return SetProp(3,v);}

    BOOL GetPropTop(long& v) {return GetProp(4,v);}
    BOOL SetPropTop(long v) {return SetProp(4,v);}

    BOOL GetPropWidth(long& v) {return GetProp(5,v);}
    BOOL SetPropWidth(long v) {return SetProp(5,v);}

    BOOL GetPropHeight(long& v) {return GetProp(6,v);}
    BOOL SetPropHeight(long v) {return SetProp(6,v);}

    BOOL GetPropVisible(BOOL& v) {return GetProp(7,v);}
    BOOL SetPropVisible(BOOL v) {return SetProp(7,v);}

    BOOL GetPropTag(string& v) {return GetProp(8,v);}
    BOOL SetPropTag(string& v) {return SetProp(8,v);}

    BOOL GetPropAbout(string& v) {return GetProp(9,v);}
    BOOL SetPropAbout(string& v) {return SetProp(9,v);}

    BOOL GetPropFontName(string& v) {return GetProp(10,v);}
    BOOL SetPropFontName(string& v) {return SetProp(10,v);}

    BOOL GetPropFontBold(BOOL& v) {return GetProp(11,v);}
    BOOL SetPropFontBold(BOOL v) {return SetProp(11,v);}

    BOOL GetPropFontItalic(BOOL& v) {return GetProp(12,v);}
    BOOL SetPropFontItalic(BOOL v) {return SetProp(12,v);}

    BOOL GetPropFontStrikethru(BOOL& v) {return GetProp(13,v);}
    BOOL SetPropFontStrikethru(BOOL v) {return SetProp(13,v);}

    BOOL GetPropFontUnderline(BOOL& v) {return GetProp(14,v);}
    BOOL SetPropFontUnderline(BOOL v) {return SetProp(14,v);}

    BOOL GetPropEnabled(BOOL& v) {return GetProp(15,v);}
    BOOL SetPropEnabled(BOOL v) {return SetProp(15,v);}

    BOOL GetPropMousePointer(ENUM& v) {return GetProp(16,v);}
    BOOL SetPropMousePointer(ENUM v) {return SetProp(16,v);}

    BOOL GetPropTabIndex(int& v) {return GetProp(17,v);}
    BOOL SetPropTabIndex(int v) {return SetProp(17,v);}

    BOOL GetPropTabStop(BOOL& v) {return GetProp(18,v);}
    BOOL SetPropTabStop(BOOL v) {return SetProp(18,v);}

    BOOL GetPropNoSort(BOOL& v) {return GetProp(19,v);}
    BOOL SetPropNoSort(BOOL v) {return SetProp(19,v);}

    BOOL GetPropAutoHScroll(BOOL& v) {return GetProp(20,v);}
    BOOL SetPropAutoHScroll(BOOL v) {return SetProp(20,v);}

    BOOL GetPropDropStyle(ENUM& v) {return GetProp(21,v);}
    BOOL SetPropDropStyle(ENUM v) {return SetProp(21,v);}

    BOOL GetPropText(string& v) {return GetProp(22,v);}
    BOOL SetPropText(string& v) {return SetProp(22,v);}

    BOOL GetPropItemCount(int& v) {return GetProp(23,v);}
    BOOL SetPropItemCount(int v) {return SetProp(23,v);}

#if 0
  DECLARE_RESPONSE_TABLE(TVbxCICombo);
#endif
};

#if 0
// OWL response table
DEFINE_RESPONSE_TABLE1(TVbxCICombo, TVbxControl)
  EV_VBXEVENTINDEX( IDC_CICombo, Event_CICombo_DragDrop, EvDragDrop ),
  EV_VBXEVENTINDEX( IDC_CICombo, Event_CICombo_DragOver, EvDragOver ),
  EV_VBXEVENTINDEX( IDC_CICombo, Event_CICombo_DropDown, EvDropDown ),
  EV_VBXEVENTINDEX( IDC_CICombo, Event_CICombo_GotFocus, EvGotFocus ),
  EV_VBXEVENTINDEX( IDC_CICombo, Event_CICombo_LostFocus, EvLostFocus ),
END_RESPONSE_TABLE;
#endif

#endif

//--------------------------------------------------------
// CIList (VB3, subclassed from ListBox)
//--------------------------------------------------------

// properties
#define Prop_CIList_CtlName 0
#define Prop_CIList_Index 1
#define Prop_CIList_BackColor 2
#define Prop_CIList_Left 3
#define Prop_CIList_Top 4
#define Prop_CIList_Width 5
#define Prop_CIList_Height 6
#define Prop_CIList_Visible 7
#define Prop_CIList_Tag 8
#define Prop_CIList_About 9
#define Prop_CIList_FontName 10
#define Prop_CIList_FontBold 11
#define Prop_CIList_FontItalic 12
#define Prop_CIList_FontStrikethru 13
#define Prop_CIList_FontUnderline 14
#define Prop_CIList_Enabled 15
#define Prop_CIList_MousePointer 16
#define Prop_CIList_TabIndex 17
#define Prop_CIList_TabStop 18
#define Prop_CIList_Sort 19
#define Prop_CIList_MultiSel 20
#define Prop_CIList_MultiCol 21
#define Prop_CIList_Text 22

// events
#define Event_CIList_Click 0
#define Event_CIList_DblClick 1
#define Event_CIList_DragDrop 2
#define Event_CIList_DragOver 3
#define Event_CIList_GotFocus 4
#define Event_CIList_KeyDown 5
#define Event_CIList_KeyPress 6
#define Event_CIList_KeyUp 7
#define Event_CIList_LostFocus 8

// default form data
//
// Some VBX controls do not operate correctly when created without
// a form file.  This occurs when a program creates a control
// dynamically rather than as part of a dialog resource.  If this
// control exhibits problems in this mode, try creating it with the
// following form data:
//
// For OWL programs:
//
//   TVbxCIList* c = new TVbxCIList(..., sizeof(CIListData), CIListData);
//
// For C/C++ programs:
//
//   HFORMFILE file = VBXCreateFormFile(sizeof(CIListData), CIListData);
//   HCTL c = VBXCreate(..., file);
//   VBXDeleteFormFile(file);
//
// Note that the VBXGEN_DATA or CIList_DATA symbol must be
// defined in order to use the default form data.
//
extern BYTE CIListData[96L];
#if defined(VBXGEN_DATA) || defined(CIList_DATA)
  BYTE CIListData[96L]={
    0x13,0x00,0x00,0x14,0x00,0x00,0x15,0x00,
    0x00,0x00,0x06,0x43,0x49,0x4c,0x69,0x73,
    0x74,0x01,0x00,0x00,0x02,0xff,0xff,0xff,
    0x00,0x03,0x07,0xff,0xff,0x08,0x00,0x0a,
    0x40,0x01,0x07,0x00,0x00,0x00,0x00,0x00,
    0xbc,0x02,0x00,0x00,0x00,0x00,0x01,0x02,
    0x02,0x22,0x53,0x79,0x73,0x74,0x65,0x6d,
    0x00,0x09,0x50,0x00,0xae,0x09,0x50,0x00,
    0xae,0x09,0x9f,0x3e,0xb1,0x26,0x53,0x19,
    0x67,0x09,0x50,0x00,0xae,0x09,0x04,0x19,
    0xe4,0x42,0x0f,0xff,0xff,0x10,0x00,0x11,
    0x00,0x00,0x12,0x01,0x00,0x16,0x00,0xff,
    
  };
#endif

#ifdef __OWL_VBXCTL_H

// OWL class
class TVbxCIList : public TVbxControl {
  public:

    // constructors
    TVbxCIList(TWindow* parent, int id, LPCSTR title,
        int x, int y, int w, int h,
        long initLen=0, void far* initData=0, TModule* module=0) :
      TVbxControl(parent, id, "SQC.VBX", "CIList",
          title, x, y, w, h, initLen, initData, module) {}

    TVbxCIList(TWindow* parent, int resourceId, TModule* module=0) :
        TVbxControl(parent, resourceId, module) {}

#if 0
    // event handlers
    void EvClick(VBXEVENT FAR*)
    {
      // no arguments
    }

    void EvDblClick(VBXEVENT FAR*)
    {
      // no arguments
    }

    void EvDragDrop(VBXEVENT FAR*)
    {
      // Source As Control,X As Integer,Y As Integer
    }

    void EvDragOver(VBXEVENT FAR*)
    {
      // Source As Control,X As Integer,Y As Integer,State As Integer
    }

    void EvGotFocus(VBXEVENT FAR*)
    {
      // no arguments
    }

    void EvKeyDown(VBXEVENT FAR*)
    {
      // KeyCode As Integer,Shift As Integer
    }

    void EvKeyPress(VBXEVENT FAR*)
    {
      // KeyAscii As Integer
    }

    void EvKeyUp(VBXEVENT FAR*)
    {
      // KeyCode As Integer,Shift As Integer
    }

    void EvLostFocus(VBXEVENT FAR*)
    {
      // no arguments
    }

#endif

    // enumerations
    enum { // values for property MousePointer
      MousePointer_0_Default,
      MousePointer_1_Arrow,
      MousePointer_2_Cross,
      MousePointer_3_IBeam,
      MousePointer_4_Icon,
      MousePointer_5_Size,
      MousePointer_6_Size_NE_SW,
      MousePointer_7_Size_NS,
      MousePointer_8_Size_NW_SE,
      MousePointer_9_Size_WE,
      MousePointer_10_Up_Arrow,
      MousePointer_11_Hourglass,
      MousePointer_12_No_Drop,
    };


    // properties
    BOOL GetPropCtlName(string& v) {return GetProp(0,v);}
    BOOL SetPropCtlName(string& v) {return SetProp(0,v);}

    BOOL GetPropIndex(int& v) {return GetProp(1,v);}
    BOOL SetPropIndex(int v) {return SetProp(1,v);}

    BOOL GetPropBackColor(COLORREF& v) {return GetProp(2,v);}
    BOOL SetPropBackColor(COLORREF v) {return SetProp(2,v);}

    BOOL GetPropLeft(long& v) {return GetProp(3,v);}
    BOOL SetPropLeft(long v) {return SetProp(3,v);}

    BOOL GetPropTop(long& v) {return GetProp(4,v);}
    BOOL SetPropTop(long v) {return SetProp(4,v);}

    BOOL GetPropWidth(long& v) {return GetProp(5,v);}
    BOOL SetPropWidth(long v) {return SetProp(5,v);}

    BOOL GetPropHeight(long& v) {return GetProp(6,v);}
    BOOL SetPropHeight(long v) {return SetProp(6,v);}

    BOOL GetPropVisible(BOOL& v) {return GetProp(7,v);}
    BOOL SetPropVisible(BOOL v) {return SetProp(7,v);}

    BOOL GetPropTag(string& v) {return GetProp(8,v);}
    BOOL SetPropTag(string& v) {return SetProp(8,v);}

    BOOL GetPropAbout(string& v) {return GetProp(9,v);}
    BOOL SetPropAbout(string& v) {return SetProp(9,v);}

    BOOL GetPropFontName(string& v) {return GetProp(10,v);}
    BOOL SetPropFontName(string& v) {return SetProp(10,v);}

    BOOL GetPropFontBold(BOOL& v) {return GetProp(11,v);}
    BOOL SetPropFontBold(BOOL v) {return SetProp(11,v);}

    BOOL GetPropFontItalic(BOOL& v) {return GetProp(12,v);}
    BOOL SetPropFontItalic(BOOL v) {return SetProp(12,v);}

    BOOL GetPropFontStrikethru(BOOL& v) {return GetProp(13,v);}
    BOOL SetPropFontStrikethru(BOOL v) {return SetProp(13,v);}

    BOOL GetPropFontUnderline(BOOL& v) {return GetProp(14,v);}
    BOOL SetPropFontUnderline(BOOL v) {return SetProp(14,v);}

    BOOL GetPropEnabled(BOOL& v) {return GetProp(15,v);}
    BOOL SetPropEnabled(BOOL v) {return SetProp(15,v);}

    BOOL GetPropMousePointer(ENUM& v) {return GetProp(16,v);}
    BOOL SetPropMousePointer(ENUM v) {return SetProp(16,v);}

    BOOL GetPropTabIndex(int& v) {return GetProp(17,v);}
    BOOL SetPropTabIndex(int v) {return SetProp(17,v);}

    BOOL GetPropTabStop(BOOL& v) {return GetProp(18,v);}
    BOOL SetPropTabStop(BOOL v) {return SetProp(18,v);}

    BOOL GetPropSort(BOOL& v) {return GetProp(19,v);}
    BOOL SetPropSort(BOOL v) {return SetProp(19,v);}

    BOOL GetPropMultiSel(BOOL& v) {return GetProp(20,v);}
    BOOL SetPropMultiSel(BOOL v) {return SetProp(20,v);}

    BOOL GetPropMultiCol(BOOL& v) {return GetProp(21,v);}
    BOOL SetPropMultiCol(BOOL v) {return SetProp(21,v);}

    BOOL GetPropText(string& v) {return GetProp(22,v);}
    BOOL SetPropText(string& v) {return SetProp(22,v);}

#if 0
  DECLARE_RESPONSE_TABLE(TVbxCIList);
#endif
};

#if 0
// OWL response table
DEFINE_RESPONSE_TABLE1(TVbxCIList, TVbxControl)
  EV_VBXEVENTINDEX( IDC_CIList, Event_CIList_Click, EvClick ),
  EV_VBXEVENTINDEX( IDC_CIList, Event_CIList_DblClick, EvDblClick ),
  EV_VBXEVENTINDEX( IDC_CIList, Event_CIList_DragDrop, EvDragDrop ),
  EV_VBXEVENTINDEX( IDC_CIList, Event_CIList_DragOver, EvDragOver ),
  EV_VBXEVENTINDEX( IDC_CIList, Event_CIList_GotFocus, EvGotFocus ),
  EV_VBXEVENTINDEX( IDC_CIList, Event_CIList_KeyDown, EvKeyDown ),
  EV_VBXEVENTINDEX( IDC_CIList, Event_CIList_KeyPress, EvKeyPress ),
  EV_VBXEVENTINDEX( IDC_CIList, Event_CIList_KeyUp, EvKeyUp ),
  EV_VBXEVENTINDEX( IDC_CIList, Event_CIList_LostFocus, EvLostFocus ),
END_RESPONSE_TABLE;
#endif

#endif

//--------------------------------------------------------
// CIGrid (VB3)
//--------------------------------------------------------

// properties
#define Prop_CIGrid_CtlName 0
#define Prop_CIGrid_Index 1
#define Prop_CIGrid_Parent 2
#define Prop_CIGrid_BackColor 3
#define Prop_CIGrid_Left 4
#define Prop_CIGrid_Top 5
#define Prop_CIGrid_Width 6
#define Prop_CIGrid_Height 7
#define Prop_CIGrid_Enabled 8
#define Prop_CIGrid_Visible 9
#define Prop_CIGrid_MousePointer 10
#define Prop_CIGrid_Caption 11
#define Prop_CIGrid_FontName 12
#define Prop_CIGrid_FontSize 13
#define Prop_CIGrid_FontBold 14
#define Prop_CIGrid_FontItalic 15
#define Prop_CIGrid_FontStrikethru 16
#define Prop_CIGrid_FontUnderline 17
#define Prop_CIGrid_DragMode 18
#define Prop_CIGrid_DragIcon 19
#define Prop_CIGrid_TabIndex 20
#define Prop_CIGrid_TabStop 21
#define Prop_CIGrid_Tag 22
#define Prop_CIGrid_Col 23
#define Prop_CIGrid_Col2 24
#define Prop_CIGrid_FixedRows 25
#define Prop_CIGrid_FixedCols 26
#define Prop_CIGrid_RowHdrWidth 27
#define Prop_CIGrid_ColHdrHeight 28
#define Prop_CIGrid_ColWidth 29
#define Prop_CIGrid_RowHeight 30
#define Prop_CIGrid_About 31
#define Prop_CIGrid_HdrFont 32
#define Prop_CIGrid_TextFont 33
#define Prop_CIGrid_BitmapHandle 34
#define Prop_CIGrid_Action 35
#define Prop_CIGrid_VisualObject 36
#define Prop_CIGrid_BoundColumn 37
#define Prop_CIGrid_ForeColor 38
#define Prop_CIGrid_HdrForeColor 39
#define Prop_CIGrid_Row 40
#define Prop_CIGrid_Row2 41
#define Prop_CIGrid_CallBack 42
#define Prop_CIGrid_LongVal 43
#define Prop_CIGrid_SelBackColor 44
#define Prop_CIGrid_SelForeColor 45
#define Prop_CIGrid_ItemData 46
#define Prop_CIGrid_GridLines 47
#define Prop_CIGrid_RowHeaders 48
#define Prop_CIGrid_RowResize 49
#define Prop_CIGrid_SelType 50
#define Prop_CIGrid_AccessMode 51
#define Prop_CIGrid_BackcolorMode 52
#define Prop_CIGrid_ColSel 53
#define Prop_CIGrid_BorderStyle 54
#define Prop_CIGrid_InputMask 55
#define Prop_CIGrid_StringVal 56
#define Prop_CIGrid_ButtonCaption 57
#define Prop_CIGrid_ColHeaders 58
#define Prop_CIGrid_ColResize 59
#define Prop_CIGrid_RowSel 60
#define Prop_CIGrid_BlockSel 61
#define Prop_CIGrid_ShowCurRow 62
#define Prop_CIGrid_ListBoxMode 63
#define Prop_CIGrid_MaskEnable 64
#define Prop_CIGrid_MaxAlign 65
#define Prop_CIGrid_AllowSort 66

// events
#define Event_CIGrid_ButtonClick 0
#define Event_CIGrid_Click 1
#define Event_CIGrid_ColMove 2
#define Event_CIGrid_DataChange 3
#define Event_CIGrid_DblClick 4
#define Event_CIGrid_DragDrop 5
#define Event_CIGrid_DragOver 6
#define Event_CIGrid_EnterCell 7
#define Event_CIGrid_EnterEdit 8
#define Event_CIGrid_EnterRow 9
#define Event_CIGrid_ExitNext 10
#define Event_CIGrid_ExitPrev 11
#define Event_CIGrid_GotFocus 12
#define Event_CIGrid_Initialized 13
#define Event_CIGrid_KeyDown 14
#define Event_CIGrid_KeyPress 15
#define Event_CIGrid_KeyUp 16
#define Event_CIGrid_LeaveCell 17
#define Event_CIGrid_LeaveRow 18
#define Event_CIGrid_LostFocus 19
#define Event_CIGrid_RbuttonDblClick 20
#define Event_CIGrid_RbuttonDown 21
#define Event_CIGrid_RbuttonUp 22
#define Event_CIGrid_RowUndo 23
#define Event_CIGrid_Selection 24
#define Event_CIGrid_ViewChange 25

// default form data
//
// Some VBX controls do not operate correctly when created without
// a form file.  This occurs when a program creates a control
// dynamically rather than as part of a dialog resource.  If this
// control exhibits problems in this mode, try creating it with the
// following form data:
//
// For OWL programs:
//
//   TVbxCIGrid* c = new TVbxCIGrid(..., sizeof(CIGridData), CIGridData);
//
// For C/C++ programs:
//
//   HFORMFILE file = VBXCreateFormFile(sizeof(CIGridData), CIGridData);
//   HCTL c = VBXCreate(..., file);
//   VBXDeleteFormFile(file);
//
// Note that the VBXGEN_DATA or CIGrid_DATA symbol must be
// defined in order to use the default form data.
//
extern BYTE CIGridData[151L];
#if defined(VBXGEN_DATA) || defined(CIGrid_DATA)
  BYTE CIGridData[151L]={
    0x00,0x06,0x43,0x49,0x47,0x72,0x69,0x64,
    0x01,0x00,0x00,0x03,0xff,0xff,0xff,0x00,
    0x04,0x08,0xff,0xff,0x09,0xff,0xff,0x0a,
    0x00,0x0b,0x06,0x43,0x49,0x47,0x72,0x69,
    0x64,0x0c,0x40,0x01,0x07,0x00,0x00,0x00,
    0x00,0x00,0xbc,0x02,0x00,0x00,0x00,0x00,
    0x01,0x02,0x02,0x22,0x53,0x79,0x73,0x74,
    0x65,0x6d,0x00,0x09,0x50,0x00,0xae,0x09,
    0x50,0x00,0xae,0x09,0x9f,0x3e,0x19,0x27,
    0x53,0x19,0x67,0x09,0x50,0x00,0xae,0x09,
    0x04,0x19,0xe4,0x42,0x12,0x00,0x14,0x00,
    0x00,0x15,0x01,0x00,0x16,0x00,0x19,0x00,
    0x00,0x1a,0x00,0x00,0x1b,0x00,0x00,0x1c,
    0x00,0x00,0x26,0x00,0x00,0x00,0x00,0x2f,
    0x00,0x30,0x00,0x31,0x00,0x32,0x00,0x33,
    0x00,0x35,0x00,0x3a,0xff,0xff,0x3b,0xff,
    0xff,0x3c,0xff,0xff,0x3d,0x00,0x00,0x3e,
    0xff,0xff,0x3f,0x00,0x00,0x40,0x00,0x00,
    0x41,0xff,0xff,0x42,0x00,0x00,0xff,
  };
#endif

#ifdef __OWL_VBXCTL_H

// OWL class
class TVbxCIGrid : public TVbxControl {
  public:

    // constructors
    TVbxCIGrid(TWindow* parent, int id, LPCSTR title,
        int x, int y, int w, int h,
        long initLen=0, void far* initData=0, TModule* module=0) :
      TVbxControl(parent, id, "SQC.VBX", "CIGrid",
          title, x, y, w, h, initLen, initData, module) {}

    TVbxCIGrid(TWindow* parent, int resourceId, TModule* module=0) :
        TVbxControl(parent, resourceId, module) {}

#if 0
    // event handlers
    void EvButtonClick(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as Long,Action as long
    }

    void EvClick(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as Long,Action as long
    }

    void EvColMove(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as Long,Action as long
    }

    void EvDataChange(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as Long,Action as long
    }

    void EvDblClick(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as Long,Action as long
    }

    void EvDragDrop(VBXEVENT FAR*)
    {
      // Source As Control,X As Integer,Y As Integer
    }

    void EvDragOver(VBXEVENT FAR*)
    {
      // Source As Control,X As Integer,Y As Integer,State As Integer
    }

    void EvEnterCell(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as Long,Action as long
    }

    void EvEnterEdit(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as Long,Action as long
    }

    void EvEnterRow(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as Long,Action as long
    }

    void EvExitNext(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as Long,Action as long
    }

    void EvExitPrev(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as Long,Action as long
    }

    void EvGotFocus(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as Long,Action as long
    }

    void EvInitialized(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as Long,Action as long
    }

    void EvKeyDown(VBXEVENT FAR*)
    {
      // hCursor as Long,KeyValue as Long,Shift as Long,Action as long
    }

    void EvKeyPress(VBXEVENT FAR*)
    {
      // hCursor as Long,KeyValue as Long,Shift as Long,Action as long
    }

    void EvKeyUp(VBXEVENT FAR*)
    {
      // hCursor as Long,KeyValue as Long,Shift as Long,Action as long
    }

    void EvLeaveCell(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as Long,Action as long
    }

    void EvLeaveRow(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as Long,Action as long
    }

    void EvLostFocus(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as Long,Action as long
    }

    void EvRbuttonDblClick(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as Long,Action as long
    }

    void EvRbuttonDown(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as Long,Action as long
    }

    void EvRbuttonUp(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as Long,Action as long
    }

    void EvRowUndo(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as Long,Action as long
    }

    void EvSelection(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as Long,Action as long
    }

    void EvViewChange(VBXEVENT FAR*)
    {
      // hCursor as Long,RowNum as Long,Lparam as Long,Action as long
    }

#endif

    // enumerations
    enum { // values for property MousePointer
      MousePointer_0_Default,
      MousePointer_1_Arrow,
      MousePointer_2_Cross,
      MousePointer_3_IBeam,
      MousePointer_4_Icon,
      MousePointer_5_Size,
      MousePointer_6_Size_NE_SW,
      MousePointer_7_Size_NS,
      MousePointer_8_Size_NW_SE,
      MousePointer_9_Size_WE,
      MousePointer_10_Up_Arrow,
      MousePointer_11_Hourglass,
      MousePointer_12_No_Drop,
    };

    enum { // values for property DragMode
      DragMode_0_Manual,
      DragMode_1_Automatic,
    };

    enum { // values for property Action
      Action_0_None,
      Action_1_Current_View_,
      Action_2_Set_Top_Row_,
      Action_3_Set_Active_Cell_,
      Action_4_Get_Active_Cell_,
      Action_5_Get_Selection_Count_,
      Action_6_Get_Selection_,
      Action_7_Bring_Cell_into_View_,
      Action_8_Read_New_Cell_Value_,
      Action_9_Read_Old_Cell_Value_,
      Action_10_Write_Cell_Value_,
      Action_11_Select_Range_,
      Action_12_Deselect_Range_,
      Action_13_Sort_Cursor_,
    };

    enum { // values for property GridLines
      GridLines_0_Horizontal_and_Vertical_lines,
      GridLines_1_Horizontal_lines_,
      GridLines_2_Vertical_lines,
      GridLines_3_No_Lines,
    };

    enum { // values for property RowHeaders
      RowHeaders_0_Show_with_Row_Numbers,
      RowHeaders_1_Show_without_Row_Numbers_,
      RowHeaders_2_No_Row_Headers,
    };

    enum { // values for property RowResize
      RowResize_0_Resize_applies_to_all_rows,
      RowResize_1_Resize_individual_rows_,
      RowResize_2_No_Resize_,
    };

    enum { // values for property SelType
      SelType_0_Single,
      SelType_1_Multiple_,
      SelType_2_Extended,
      SelType_3_None,
    };

    enum { // values for property AccessMode
      AccessMode_0_InsertUpdateDelete,
      AccessMode_1_InsertDelete_,
      AccessMode_2_UpdateDelete,
      AccessMode_3_Delete,
      AccessMode_4_InsertUpdate,
      AccessMode_5_Insert,
      AccessMode_6_Update,
      AccessMode_7_Read_Only,
    };

    enum { // values for property BackcolorMode
      BackcolorMode_0_None,
      BackcolorMode_1_Top_to_Bottom_,
      BackcolorMode_2_Bottom_to_Top,
      BackcolorMode_3_Left_to_Right,
      BackcolorMode_4_Right_to_Left,
      BackcolorMode_5_Left_Top_to_Right_Bottom,
      BackcolorMode_6_Right_Top_to_Left_Bottom,
      BackcolorMode_7_Alternate_Rows,
      BackcolorMode_8_Alternate_Columns,
      BackcolorMode_9_Alternate_Squares,
    };

    enum { // values for property ColSel
      ColSel_0_No_Selection_,
      ColSel_1_Selection_,
      ColSel_2_Selection_and_Movement_,
    };

    enum { // values for property BorderStyle
      BorderStyle_0_Single_line,
      BorderStyle_1_Sizeable_,
      BorderStyle_2_None_,
    };


    // properties
    BOOL GetPropCtlName(string& v) {return GetProp(0,v);}
    BOOL SetPropCtlName(string& v) {return SetProp(0,v);}

    BOOL GetPropIndex(int& v) {return GetProp(1,v);}
    BOOL SetPropIndex(int v) {return SetProp(1,v);}

    BOOL GetPropParent(int& v) {return GetProp(2,v);}
    BOOL SetPropParent(int v) {return SetProp(2,v);}

    BOOL GetPropBackColor(COLORREF& v) {return GetProp(3,v);}
    BOOL SetPropBackColor(COLORREF v) {return SetProp(3,v);}

    BOOL GetPropLeft(long& v) {return GetProp(4,v);}
    BOOL SetPropLeft(long v) {return SetProp(4,v);}

    BOOL GetPropTop(long& v) {return GetProp(5,v);}
    BOOL SetPropTop(long v) {return SetProp(5,v);}

    BOOL GetPropWidth(long& v) {return GetProp(6,v);}
    BOOL SetPropWidth(long v) {return SetProp(6,v);}

    BOOL GetPropHeight(long& v) {return GetProp(7,v);}
    BOOL SetPropHeight(long v) {return SetProp(7,v);}

    BOOL GetPropEnabled(BOOL& v) {return GetProp(8,v);}
    BOOL SetPropEnabled(BOOL v) {return SetProp(8,v);}

    BOOL GetPropVisible(BOOL& v) {return GetProp(9,v);}
    BOOL SetPropVisible(BOOL v) {return SetProp(9,v);}

    BOOL GetPropMousePointer(ENUM& v) {return GetProp(10,v);}
    BOOL SetPropMousePointer(ENUM v) {return SetProp(10,v);}

    BOOL GetPropCaption(string& v) {return GetProp(11,v);}
    BOOL SetPropCaption(string& v) {return SetProp(11,v);}

    BOOL GetPropFontName(string& v) {return GetProp(12,v);}
    BOOL SetPropFontName(string& v) {return SetProp(12,v);}

    BOOL GetPropFontSize(float& v) {return GetProp(13,v);}
    BOOL SetPropFontSize(float v) {return SetProp(13,v);}

    BOOL GetPropFontBold(BOOL& v) {return GetProp(14,v);}
    BOOL SetPropFontBold(BOOL v) {return SetProp(14,v);}

    BOOL GetPropFontItalic(BOOL& v) {return GetProp(15,v);}
    BOOL SetPropFontItalic(BOOL v) {return SetProp(15,v);}

    BOOL GetPropFontStrikethru(BOOL& v) {return GetProp(16,v);}
    BOOL SetPropFontStrikethru(BOOL v) {return SetProp(16,v);}

    BOOL GetPropFontUnderline(BOOL& v) {return GetProp(17,v);}
    BOOL SetPropFontUnderline(BOOL v) {return SetProp(17,v);}

    BOOL GetPropDragMode(ENUM& v) {return GetProp(18,v);}
    BOOL SetPropDragMode(ENUM v) {return SetProp(18,v);}

    BOOL GetPropDragIcon(HPIC& v) {return GetProp(19,v);}
    BOOL SetPropDragIcon(HPIC v) {return SetProp(19,v);}

    BOOL GetPropTabIndex(int& v) {return GetProp(20,v);}
    BOOL SetPropTabIndex(int v) {return SetProp(20,v);}

    BOOL GetPropTabStop(BOOL& v) {return GetProp(21,v);}
    BOOL SetPropTabStop(BOOL v) {return SetProp(21,v);}

    BOOL GetPropTag(string& v) {return GetProp(22,v);}
    BOOL SetPropTag(string& v) {return SetProp(22,v);}

    BOOL GetPropCol(int& v) {return GetProp(23,v);}
    BOOL SetPropCol(int v) {return SetProp(23,v);}

    BOOL GetPropCol2(int& v) {return GetProp(24,v);}
    BOOL SetPropCol2(int v) {return SetProp(24,v);}

    BOOL GetPropFixedRows(int& v) {return GetProp(25,v);}
    BOOL SetPropFixedRows(int v) {return SetProp(25,v);}

    BOOL GetPropFixedCols(int& v) {return GetProp(26,v);}
    BOOL SetPropFixedCols(int v) {return SetProp(26,v);}

    BOOL GetPropRowHdrWidth(int& v) {return GetProp(27,v);}
    BOOL SetPropRowHdrWidth(int v) {return SetProp(27,v);}

    BOOL GetPropColHdrHeight(int& v) {return GetProp(28,v);}
    BOOL SetPropColHdrHeight(int v) {return SetProp(28,v);}

    BOOL GetPropColWidth(int& v) {return GetProp(29,v);}
    BOOL SetPropColWidth(int v) {return SetProp(29,v);}

    BOOL GetPropRowHeight(int& v) {return GetProp(30,v);}
    BOOL SetPropRowHeight(int v) {return SetProp(30,v);}

    BOOL GetPropAbout(string& v) {return GetProp(31,v);}
    BOOL SetPropAbout(string& v) {return SetProp(31,v);}

    BOOL GetPropHdrFont(int& v) {return GetProp(32,v);}
    BOOL SetPropHdrFont(int v) {return SetProp(32,v);}

    BOOL GetPropTextFont(int& v) {return GetProp(33,v);}
    BOOL SetPropTextFont(int v) {return SetProp(33,v);}

    BOOL GetPropBitmapHandle(int& v) {return GetProp(34,v);}
    BOOL SetPropBitmapHandle(int v) {return SetProp(34,v);}

    BOOL GetPropAction(ENUM& v) {return GetProp(35,v);}
    BOOL SetPropAction(ENUM v) {return SetProp(35,v);}

    BOOL GetPropVisualObject(int& v) {return GetProp(36,v);}
    BOOL SetPropVisualObject(int v) {return SetProp(36,v);}

    BOOL GetPropBoundColumn(int& v) {return GetProp(37,v);}
    BOOL SetPropBoundColumn(int v) {return SetProp(37,v);}

    BOOL GetPropForeColor(COLORREF& v) {return GetProp(38,v);}
    BOOL SetPropForeColor(COLORREF v) {return SetProp(38,v);}

    BOOL GetPropHdrForeColor(COLORREF& v) {return GetProp(39,v);}
    BOOL SetPropHdrForeColor(COLORREF v) {return SetProp(39,v);}

    BOOL GetPropRow(long& v) {return GetProp(40,v);}
    BOOL SetPropRow(long v) {return SetProp(40,v);}

    BOOL GetPropRow2(long& v) {return GetProp(41,v);}
    BOOL SetPropRow2(long v) {return SetProp(41,v);}

    BOOL GetPropCallBack(long& v) {return GetProp(42,v);}
    BOOL SetPropCallBack(long v) {return SetProp(42,v);}

    BOOL GetPropLongVal(long& v) {return GetProp(43,v);}
    BOOL SetPropLongVal(long v) {return SetProp(43,v);}

    BOOL GetPropSelBackColor(COLORREF& v) {return GetProp(44,v);}
    BOOL SetPropSelBackColor(COLORREF v) {return SetProp(44,v);}

    BOOL GetPropSelForeColor(COLORREF& v) {return GetProp(45,v);}
    BOOL SetPropSelForeColor(COLORREF v) {return SetProp(45,v);}

    BOOL GetPropItemData(long& v) {return GetProp(46,v);}
    BOOL SetPropItemData(long v) {return SetProp(46,v);}

    BOOL GetPropGridLines(ENUM& v) {return GetProp(47,v);}
    BOOL SetPropGridLines(ENUM v) {return SetProp(47,v);}

    BOOL GetPropRowHeaders(ENUM& v) {return GetProp(48,v);}
    BOOL SetPropRowHeaders(ENUM v) {return SetProp(48,v);}

    BOOL GetPropRowResize(ENUM& v) {return GetProp(49,v);}
    BOOL SetPropRowResize(ENUM v) {return SetProp(49,v);}

    BOOL GetPropSelType(ENUM& v) {return GetProp(50,v);}
    BOOL SetPropSelType(ENUM v) {return SetProp(50,v);}

    BOOL GetPropAccessMode(ENUM& v) {return GetProp(51,v);}
    BOOL SetPropAccessMode(ENUM v) {return SetProp(51,v);}

    BOOL GetPropBackcolorMode(ENUM& v) {return GetProp(52,v);}
    BOOL SetPropBackcolorMode(ENUM v) {return SetProp(52,v);}

    BOOL GetPropColSel(ENUM& v) {return GetProp(53,v);}
    BOOL SetPropColSel(ENUM v) {return SetProp(53,v);}

    BOOL GetPropBorderStyle(ENUM& v) {return GetProp(54,v);}
    BOOL SetPropBorderStyle(ENUM v) {return SetProp(54,v);}

    BOOL GetPropInputMask(string& v) {return GetProp(55,v);}
    BOOL SetPropInputMask(string& v) {return SetProp(55,v);}

    BOOL GetPropStringVal(string& v) {return GetProp(56,v);}
    BOOL SetPropStringVal(string& v) {return SetProp(56,v);}

    BOOL GetPropButtonCaption(string& v) {return GetProp(57,v);}
    BOOL SetPropButtonCaption(string& v) {return SetProp(57,v);}

    BOOL GetPropColHeaders(BOOL& v) {return GetProp(58,v);}
    BOOL SetPropColHeaders(BOOL v) {return SetProp(58,v);}

    BOOL GetPropColResize(BOOL& v) {return GetProp(59,v);}
    BOOL SetPropColResize(BOOL v) {return SetProp(59,v);}

    BOOL GetPropRowSel(BOOL& v) {return GetProp(60,v);}
    BOOL SetPropRowSel(BOOL v) {return SetProp(60,v);}

    BOOL GetPropBlockSel(BOOL& v) {return GetProp(61,v);}
    BOOL SetPropBlockSel(BOOL v) {return SetProp(61,v);}

    BOOL GetPropShowCurRow(BOOL& v) {return GetProp(62,v);}
    BOOL SetPropShowCurRow(BOOL v) {return SetProp(62,v);}

    BOOL GetPropListBoxMode(BOOL& v) {return GetProp(63,v);}
    BOOL SetPropListBoxMode(BOOL v) {return SetProp(63,v);}

    BOOL GetPropMaskEnable(BOOL& v) {return GetProp(64,v);}
    BOOL SetPropMaskEnable(BOOL v) {return SetProp(64,v);}

    BOOL GetPropMaxAlign(BOOL& v) {return GetProp(65,v);}
    BOOL SetPropMaxAlign(BOOL v) {return SetProp(65,v);}

    BOOL GetPropAllowSort(BOOL& v) {return GetProp(66,v);}
    BOOL SetPropAllowSort(BOOL v) {return SetProp(66,v);}

#if 0
  DECLARE_RESPONSE_TABLE(TVbxCIGrid);
#endif
};

#if 0
// OWL response table
DEFINE_RESPONSE_TABLE1(TVbxCIGrid, TVbxControl)
  EV_VBXEVENTINDEX( IDC_CIGrid, Event_CIGrid_ButtonClick, EvButtonClick ),
  EV_VBXEVENTINDEX( IDC_CIGrid, Event_CIGrid_Click, EvClick ),
  EV_VBXEVENTINDEX( IDC_CIGrid, Event_CIGrid_ColMove, EvColMove ),
  EV_VBXEVENTINDEX( IDC_CIGrid, Event_CIGrid_DataChange, EvDataChange ),
  EV_VBXEVENTINDEX( IDC_CIGrid, Event_CIGrid_DblClick, EvDblClick ),
  EV_VBXEVENTINDEX( IDC_CIGrid, Event_CIGrid_DragDrop, EvDragDrop ),
  EV_VBXEVENTINDEX( IDC_CIGrid, Event_CIGrid_DragOver, EvDragOver ),
  EV_VBXEVENTINDEX( IDC_CIGrid, Event_CIGrid_EnterCell, EvEnterCell ),
  EV_VBXEVENTINDEX( IDC_CIGrid, Event_CIGrid_EnterEdit, EvEnterEdit ),
  EV_VBXEVENTINDEX( IDC_CIGrid, Event_CIGrid_EnterRow, EvEnterRow ),
  EV_VBXEVENTINDEX( IDC_CIGrid, Event_CIGrid_ExitNext, EvExitNext ),
  EV_VBXEVENTINDEX( IDC_CIGrid, Event_CIGrid_ExitPrev, EvExitPrev ),
  EV_VBXEVENTINDEX( IDC_CIGrid, Event_CIGrid_GotFocus, EvGotFocus ),
  EV_VBXEVENTINDEX( IDC_CIGrid, Event_CIGrid_Initialized, EvInitialized ),
  EV_VBXEVENTINDEX( IDC_CIGrid, Event_CIGrid_KeyDown, EvKeyDown ),
  EV_VBXEVENTINDEX( IDC_CIGrid, Event_CIGrid_KeyPress, EvKeyPress ),
  EV_VBXEVENTINDEX( IDC_CIGrid, Event_CIGrid_KeyUp, EvKeyUp ),
  EV_VBXEVENTINDEX( IDC_CIGrid, Event_CIGrid_LeaveCell, EvLeaveCell ),
  EV_VBXEVENTINDEX( IDC_CIGrid, Event_CIGrid_LeaveRow, EvLeaveRow ),
  EV_VBXEVENTINDEX( IDC_CIGrid, Event_CIGrid_LostFocus, EvLostFocus ),
  EV_VBXEVENTINDEX( IDC_CIGrid, Event_CIGrid_RbuttonDblClick, EvRbuttonDblClick ),
  EV_VBXEVENTINDEX( IDC_CIGrid, Event_CIGrid_RbuttonDown, EvRbuttonDown ),
  EV_VBXEVENTINDEX( IDC_CIGrid, Event_CIGrid_RbuttonUp, EvRbuttonUp ),
  EV_VBXEVENTINDEX( IDC_CIGrid, Event_CIGrid_RowUndo, EvRowUndo ),
  EV_VBXEVENTINDEX( IDC_CIGrid, Event_CIGrid_Selection, EvSelection ),
  EV_VBXEVENTINDEX( IDC_CIGrid, Event_CIGrid_ViewChange, EvViewChange ),
END_RESPONSE_TABLE;
#endif

#endif

//--------------------------------------------------------
// CIMaskEdit (VB3, subclassed from Edit)
//--------------------------------------------------------

// properties
#define Prop_CIMaskEdit_CtlName 0
#define Prop_CIMaskEdit_Index 1
#define Prop_CIMaskEdit_BackColor 2
#define Prop_CIMaskEdit_Left 3
#define Prop_CIMaskEdit_Top 4
#define Prop_CIMaskEdit_Width 5
#define Prop_CIMaskEdit_Height 6
#define Prop_CIMaskEdit_Visible 7
#define Prop_CIMaskEdit_Tag 8
#define Prop_CIMaskEdit_About 9
#define Prop_CIMaskEdit_FontName 10
#define Prop_CIMaskEdit_FontBold 11
#define Prop_CIMaskEdit_FontItalic 12
#define Prop_CIMaskEdit_FontStrikethru 13
#define Prop_CIMaskEdit_FontUnderline 14
#define Prop_CIMaskEdit_Enabled 15
#define Prop_CIMaskEdit_MousePointer 16
#define Prop_CIMaskEdit_TabIndex 17
#define Prop_CIMaskEdit_TabStop 18
#define Prop_CIMaskEdit_Border 19
#define Prop_CIMaskEdit_Text 20
#define Prop_CIMaskEdit_RawText 21
#define Prop_CIMaskEdit_Mask 22
#define Prop_CIMaskEdit_DisableMask 23
#define Prop_CIMaskEdit_CurrencySymbol 24
#define Prop_CIMaskEdit_Separator 25
#define Prop_CIMaskEdit_DateFormat 26
#define Prop_CIMaskEdit_TimeFormat 27
#define Prop_CIMaskEdit_DataType 28
#define Prop_CIMaskEdit_DisplayOnly 29
#define Prop_CIMaskEdit_FontSize 30
#define Prop_CIMaskEdit_ForeColor 31

// events
#define Event_CIMaskEdit_GotFocus 0
#define Event_CIMaskEdit_LostFocus 1
#define Event_CIMaskEdit_InvalidData 2

// default form data
//
// Some VBX controls do not operate correctly when created without
// a form file.  This occurs when a program creates a control
// dynamically rather than as part of a dialog resource.  If this
// control exhibits problems in this mode, try creating it with the
// following form data:
//
// For OWL programs:
//
//   TVbxCIMaskEdit* c = new TVbxCIMaskEdit(..., sizeof(CIMaskEditData), CIMaskEditData);
//
// For C/C++ programs:
//
//   HFORMFILE file = VBXCreateFormFile(sizeof(CIMaskEditData), CIMaskEditData);
//   HCTL c = VBXCreate(..., file);
//   VBXDeleteFormFile(file);
//
// Note that the VBXGEN_DATA or CIMaskEdit_DATA symbol must be
// defined in order to use the default form data.
//
extern BYTE CIMaskEditData[118L];
#if defined(VBXGEN_DATA) || defined(CIMaskEdit_DATA)
  BYTE CIMaskEditData[118L]={
    0x13,0x00,0x00,0x0a,0x43,0x49,0x4d,0x61,
    0x73,0x6b,0x45,0x64,0x69,0x74,0x01,0x00,
    0x00,0x02,0xff,0xff,0xff,0x00,0x03,0x07,
    0xff,0xff,0x08,0x00,0x0a,0x40,0x01,0x07,
    0x00,0x00,0x00,0x00,0x00,0xbc,0x02,0x00,
    0x00,0x00,0x00,0x01,0x02,0x02,0x22,0x53,
    0x79,0x73,0x74,0x65,0x6d,0x00,0x09,0x50,
    0x00,0xae,0x09,0x50,0x00,0xae,0x09,0x9f,
    0x3e,0x23,0x27,0x53,0x19,0x67,0x09,0x50,
    0x00,0xae,0x09,0x04,0x19,0xe4,0x42,0x0f,
    0xff,0xff,0x10,0x00,0x11,0x00,0x00,0x12,
    0x01,0x00,0x14,0x00,0x15,0x00,0x16,0x00,
    0x17,0x00,0x00,0x18,0x00,0x19,0x00,0x1a,
    0x00,0x1b,0x00,0x1c,0x00,0x1d,0x00,0x00,
    0x1f,0x00,0x00,0x00,0x00,0xff,
  };
#endif

#ifdef __OWL_VBXCTL_H

// OWL class
class TVbxCIMaskEdit : public TVbxControl {
  public:

    // constructors
    TVbxCIMaskEdit(TWindow* parent, int id, LPCSTR title,
        int x, int y, int w, int h,
        long initLen=0, void far* initData=0, TModule* module=0) :
      TVbxControl(parent, id, "SQC.VBX", "CIMaskEdit",
          title, x, y, w, h, initLen, initData, module) {}

    TVbxCIMaskEdit(TWindow* parent, int resourceId, TModule* module=0) :
        TVbxControl(parent, resourceId, module) {}

#if 0
    // event handlers
    void EvGotFocus(VBXEVENT FAR*)
    {
      // no arguments
    }

    void EvLostFocus(VBXEVENT FAR*)
    {
      // no arguments
    }

    void EvInvalidData(VBXEVENT FAR*)
    {
      // no arguments
    }

#endif

    // enumerations
    enum { // values for property MousePointer
      MousePointer_0_Default,
      MousePointer_1_Arrow,
      MousePointer_2_Cross,
      MousePointer_3_IBeam,
      MousePointer_4_Icon,
      MousePointer_5_Size,
      MousePointer_6_Size_NE_SW,
      MousePointer_7_Size_NS,
      MousePointer_8_Size_NW_SE,
      MousePointer_9_Size_WE,
      MousePointer_10_Up_Arrow,
      MousePointer_11_Hourglass,
      MousePointer_12_No_Drop,
    };

    enum { // values for property Border
      Border_0_Single_line,
      Border_1_no_border_,
    };

    enum { // values for property DateFormat
      DateFormat_0_winini_setting,
      DateFormat_1_MMDDYY,
      DateFormat_2_MMDDYYYY,
      DateFormat_3_MMMDDYY,
      DateFormat_4_MMMDDYYYY,
      DateFormat_5_MMMMDDYY,
      DateFormat_6_MMMMDDYYYY,
      DateFormat_7_DDMMYY,
      DateFormat_8_DDMMYYYY,
      DateFormat_9_DDMMMYY,
      DateFormat_10_DDMMMYYYY,
      DateFormat_11_DDMMMMYY,
      DateFormat_12_DDMMMMYYYY,
      DateFormat_13_YYMMDD,
      DateFormat_14_YYYYMMDD,
    };

    enum { // values for property TimeFormat
      TimeFormat_0_winini_setting,
      TimeFormat_1_HHMM,
      TimeFormat_2_HHMMSS,
      TimeFormat_3_HHMM_AM,
      TimeFormat_4_HHMMSS_AM,
      TimeFormat_5_HHMM_am,
      TimeFormat_6_HHMMSS_am,
    };

    enum { // values for property DataType
      DataType_0_Numeric,
      DataType_1_Currency,
      DataType_2_Text,
      DataType_3_Date,
      DataType_4_Time,
    };


    // properties
    BOOL GetPropCtlName(string& v) {return GetProp(0,v);}
    BOOL SetPropCtlName(string& v) {return SetProp(0,v);}

    BOOL GetPropIndex(int& v) {return GetProp(1,v);}
    BOOL SetPropIndex(int v) {return SetProp(1,v);}

    BOOL GetPropBackColor(COLORREF& v) {return GetProp(2,v);}
    BOOL SetPropBackColor(COLORREF v) {return SetProp(2,v);}

    BOOL GetPropLeft(long& v) {return GetProp(3,v);}
    BOOL SetPropLeft(long v) {return SetProp(3,v);}

    BOOL GetPropTop(long& v) {return GetProp(4,v);}
    BOOL SetPropTop(long v) {return SetProp(4,v);}

    BOOL GetPropWidth(long& v) {return GetProp(5,v);}
    BOOL SetPropWidth(long v) {return SetProp(5,v);}

    BOOL GetPropHeight(long& v) {return GetProp(6,v);}
    BOOL SetPropHeight(long v) {return SetProp(6,v);}

    BOOL GetPropVisible(BOOL& v) {return GetProp(7,v);}
    BOOL SetPropVisible(BOOL v) {return SetProp(7,v);}

    BOOL GetPropTag(string& v) {return GetProp(8,v);}
    BOOL SetPropTag(string& v) {return SetProp(8,v);}

    BOOL GetPropAbout(string& v) {return GetProp(9,v);}
    BOOL SetPropAbout(string& v) {return SetProp(9,v);}

    BOOL GetPropFontName(string& v) {return GetProp(10,v);}
    BOOL SetPropFontName(string& v) {return SetProp(10,v);}

    BOOL GetPropFontBold(BOOL& v) {return GetProp(11,v);}
    BOOL SetPropFontBold(BOOL v) {return SetProp(11,v);}

    BOOL GetPropFontItalic(BOOL& v) {return GetProp(12,v);}
    BOOL SetPropFontItalic(BOOL v) {return SetProp(12,v);}

    BOOL GetPropFontStrikethru(BOOL& v) {return GetProp(13,v);}
    BOOL SetPropFontStrikethru(BOOL v) {return SetProp(13,v);}

    BOOL GetPropFontUnderline(BOOL& v) {return GetProp(14,v);}
    BOOL SetPropFontUnderline(BOOL v) {return SetProp(14,v);}

    BOOL GetPropEnabled(BOOL& v) {return GetProp(15,v);}
    BOOL SetPropEnabled(BOOL v) {return SetProp(15,v);}

    BOOL GetPropMousePointer(ENUM& v) {return GetProp(16,v);}
    BOOL SetPropMousePointer(ENUM v) {return SetProp(16,v);}

    BOOL GetPropTabIndex(int& v) {return GetProp(17,v);}
    BOOL SetPropTabIndex(int v) {return SetProp(17,v);}

    BOOL GetPropTabStop(BOOL& v) {return GetProp(18,v);}
    BOOL SetPropTabStop(BOOL v) {return SetProp(18,v);}

    BOOL GetPropBorder(ENUM& v) {return GetProp(19,v);}
    BOOL SetPropBorder(ENUM v) {return SetProp(19,v);}

    BOOL GetPropText(string& v) {return GetProp(20,v);}
    BOOL SetPropText(string& v) {return SetProp(20,v);}

    BOOL GetPropRawText(string& v) {return GetProp(21,v);}
    BOOL SetPropRawText(string& v) {return SetProp(21,v);}

    BOOL GetPropMask(string& v) {return GetProp(22,v);}
    BOOL SetPropMask(string& v) {return SetProp(22,v);}

    BOOL GetPropDisableMask(BOOL& v) {return GetProp(23,v);}
    BOOL SetPropDisableMask(BOOL v) {return SetProp(23,v);}

    BOOL GetPropCurrencySymbol(string& v) {return GetProp(24,v);}
    BOOL SetPropCurrencySymbol(string& v) {return SetProp(24,v);}

    BOOL GetPropSeparator(string& v) {return GetProp(25,v);}
    BOOL SetPropSeparator(string& v) {return SetProp(25,v);}

    BOOL GetPropDateFormat(ENUM& v) {return GetProp(26,v);}
    BOOL SetPropDateFormat(ENUM v) {return SetProp(26,v);}

    BOOL GetPropTimeFormat(ENUM& v) {return GetProp(27,v);}
    BOOL SetPropTimeFormat(ENUM v) {return SetProp(27,v);}

    BOOL GetPropDataType(ENUM& v) {return GetProp(28,v);}
    BOOL SetPropDataType(ENUM v) {return SetProp(28,v);}

    BOOL GetPropDisplayOnly(BOOL& v) {return GetProp(29,v);}
    BOOL SetPropDisplayOnly(BOOL v) {return SetProp(29,v);}

    BOOL GetPropFontSize(float& v) {return GetProp(30,v);}
    BOOL SetPropFontSize(float v) {return SetProp(30,v);}

    BOOL GetPropForeColor(COLORREF& v) {return GetProp(31,v);}
    BOOL SetPropForeColor(COLORREF v) {return SetProp(31,v);}

#if 0
  DECLARE_RESPONSE_TABLE(TVbxCIMaskEdit);
#endif
};

#if 0
// OWL response table
DEFINE_RESPONSE_TABLE1(TVbxCIMaskEdit, TVbxControl)
  EV_VBXEVENTINDEX( IDC_CIMaskEdit, Event_CIMaskEdit_GotFocus, EvGotFocus ),
  EV_VBXEVENTINDEX( IDC_CIMaskEdit, Event_CIMaskEdit_LostFocus, EvLostFocus ),
  EV_VBXEVENTINDEX( IDC_CIMaskEdit, Event_CIMaskEdit_InvalidData, EvInvalidData ),
END_RESPONSE_TABLE;
#endif

#endif

#endif
