home *** CD-ROM | disk | FTP | other *** search
/ Prima Shareware 3 / DuCom_Prima-Shareware-3_cd1.bin / PROGRAMO / C / CKTBL / SAMPLES / SDKDEMO / CKTBL.H next >
Encoding:
C/C++ Source or Header  |  1994-09-04  |  18.5 KB  |  436 lines

  1. /*------------------------------------------------------------------------------
  2.  *  CKTBL.DLL    TablePane control for Windows
  3.  *  Copyright(C) 1994 by Christian Kratzer Software development and Consulting
  4.  *
  5.  *  File: cktbl.h
  6.  *
  7.  * $Header: e:\users\cktbl\dev\rcsdir/RCS/cktbl.h 1.34 94/09/04 17:49:19 CK_VBX_VC15 Exp $
  8.  * $Log:    cktbl.h $
  9.  * Revision 1.34  94/09/04  17:49:19  CK_VBX_VC15
  10.  * *** empty log message ***
  11.  * 
  12.  * Revision 1.33  94/09/04  17:23:03  CK_MSVC15_DLL16
  13.  * *** empty log message ***
  14.  * 
  15.  * Revision 1.32  94/09/04  14:45:27  CK_VBX_VC15
  16.  * *** empty log message ***
  17.  * 
  18.  * Revision 1.31  94/07/31  18:36:46  CK_MSVC15_DLL16
  19.  * *** empty log message ***
  20.  * 
  21.  *----------------------------------------------------------------------------*/
  22.  
  23. #ifndef CKTBL_H
  24. #define CKTBL_H
  25.  
  26. #ifdef __cplusplus
  27. extern "C" {            /* Assume C declarations for C++ */
  28. #endif    /* __cplusplus */
  29.  
  30. #define CKTBL_CLASS            "CKTBL16"  
  31.                                         
  32. #ifndef CKTBL_NOCOLORS
  33. #define CLR_BLACK            RGB(0,0,0)
  34. #define CLR_DARKGRAY        RGB(128,128,128)
  35. #define    CLR_LIGHTGRAY        RGB(192,192,192)
  36. #define    CLR_WHITE            RGB(255,255,255)
  37.  
  38. #define CLR_BLUE            RGB(0,0,255)
  39. #define CLR_GREEN            RGB(0,255,0)
  40. #define CLR_CYAN            RGB(0,255,255)
  41. #define CLR_RED                RGB(255,0,0)
  42. #define CLR_PINK            RGB(255,0,255)
  43. #define CLR_YELLOW            RGB(255,255,0)
  44. #endif
  45.            
  46. #ifdef CKTBL_LIBRARY                
  47. #define CKAPI                FAR __cdecl 
  48. #define CKCALLBACK             CALLBACK  
  49. #else                
  50. #define CKAPI                FAR __cdecl __loadds
  51. #define CKCALLBACK             CALLBACK __loadds                 
  52. #endif
  53.                  
  54. /*------------------------------------------------------------------------------
  55.     CKTBL Messages
  56. ------------------------------------------------------------------------------*/
  57.  
  58. #define CKTBL_BASEID                WM_USER
  59.  
  60. #define CKTBL_EDIT_START            CKTBL_BASEID + 100
  61. #define CKTBL_EDIT_END                CKTBL_BASEID + 101 
  62. #define CKTBL_EDIT_CANCELLED        CKTBL_BASEID + 102
  63.  
  64. #define CKTBL_SET_SELECTION            CKTBL_BASEID + 110
  65. #define CKTBL_ADD_SELECTION            CKTBL_BASEID + 111
  66. #define CKTBL_EXTEND_SELECTION        CKTBL_BASEID + 112
  67.  
  68. #define CKTBL_RESIZE_COLUMN_START    CKTBL_BASEID + 140
  69. #define CKTBL_RESIZE_COLUMN_END          CKTBL_BASEID + 141
  70. #define CKTBL_RESIZE_ROW_START        CKTBL_BASEID + 142
  71. #define CKTBL_RESIZE_ROW_END          CKTBL_BASEID + 143
  72.  
  73. #define CKTBL_CHANGED_CURRENTCELL    CKTBL_BASEID + 150
  74. #define CKTBL_CHANGED_SELECTION        CKTBL_BASEID + 151
  75. #define CKTBL_CLICKED_CELL            CKTBL_BASEID + 152
  76. #define CKTBL_DOUBLECLICKED_CELL    CKTBL_BASEID + 153
  77.  
  78. #define CKTBL_CHANGE_CURSOR            CKTBL_BASEID + 160
  79.                             
  80. #define CKTBL_HSCROLL_BEGIN            CKTBL_BASEID + 170    
  81. #define CKTBL_HSCROLL_END            CKTBL_BASEID + 171                            
  82. #define CKTBL_VSCROLL_BEGIN            CKTBL_BASEID + 172                            
  83. #define CKTBL_VSCROLL_END            CKTBL_BASEID + 173                            
  84.                                                       
  85. #define CKTBL_EDIT_WM_SYSKEYDOWN    CKTBL_BASEID + 180
  86. #define CKTBL_EDIT_WM_SYSKEYUP        CKTBL_BASEID + 181
  87. #define CKTBL_EDIT_WM_CHAR            CKTBL_BASEID + 182       
  88.  
  89. /*------------------------------------------------------------------------------ 
  90.  *    flags for lParam of CKTBL_EDIT_WM_keyboard messages
  91.  *----------------------------------------------------------------------------*/
  92.  
  93. #define CKTBL_EDIT_SHIFT_MASK        1
  94. #define CKTBL_EDIT_CTRL_MASK        2
  95. #define CKTBL_EDIT_ALT_MASK            4                           
  96.  
  97. /*------------------------------------------------------------------------------ 
  98.  *    passed as wParam of CKTBL_CHANGE_CURSOR message
  99.  *----------------------------------------------------------------------------*/
  100.  
  101. #define CKTBL_CURSOR_NULL            0
  102. #define CKTBL_CURSOR_STD             1
  103. #define CKTBL_CURSOR_RESIZE_ROW         2
  104. #define CKTBL_CURSOR_RESIZE_COL         3  
  105.  
  106. /*------------------------------------------------------------------------------
  107.  *    CKTBL Flags
  108.  *----------------------------------------------------------------------------*/
  109.  
  110. #define CKTBL_RESIZE_ROWS            0x00000001l        /* allow user to resize rows */
  111. #define CKTBL_RESIZE_COLUMNS        0x00000002l        /* allow user to resize columns */
  112.  
  113. #define CKTBL_EDIT_ROW_LABELS        0x00000004l        /* allow user to edit row labels */
  114. #define CKTBL_EDIT_COLUMN_LABELS    0x00000008l        /* allow user to edit column labels */
  115. #define CKTBL_EDIT_CELLS            0x00000010l        /* allow user to edit cells */
  116.  
  117. #define CKTBL_SHOW_GRID                0x00000020l        /* show grid */
  118. #define CKTBL_SHOW_SELECTION        0x00000040l        /* show selection */
  119.  
  120. #define CKTBL_SELECT_ALL            0x00000080l        /* allow selecting all cells */
  121. #define CKTBL_SELECT_CELLS            0x00000100l        /* allow selecting cells */
  122. #define CKTBL_SELECT_ROWS            0x00000200l       /* allow selecting full rows */
  123. #define CKTBL_SELECT_COLUMNS        0x00000400l        /* allow selecting full columns */
  124.  
  125. #define CKTBL_EXTENDED_SELECT        0x00000800l        /* allow selecting a range of cells at once */
  126. #define CKTBL_SHIFT_SELECT            0x00001000l        /* allow extending selections using shift-key */
  127. #define CKTBL_CONTROL_SELECT        0x00002000l        /* allow multiple selections usgin control-key */
  128.  
  129. #define CKTBL_HSCROLL                0x00004000l     /* enable horizontal scrollbar */
  130. #define CKTBL_HSCROLL_ONDEMAND        0x40000000l        /* enable horizontal scrollbar on demand */
  131.  
  132. #define CKTBL_VSCROLL                0x00008000l        /* enable vertical scrollbar */
  133. #define CKTBL_VSCROLL_ONDEMAND        0x80000000l        /* enable vertical scrollbar on demand */
  134.                                             
  135. #define CKTBL_AUTOROWHEIGHT            0x00010000l        /* adjust row height when changing text, or fonts */
  136.                      
  137. #define CKTBL_HSCROLL_MASK            0x00020000l     /* horizontal scroll mode */
  138. # define CKTBL_HSCROLL_EXTRA        0x00000000l        /* scroll into gray area past last column */
  139. # define CKTBL_HSCROLL_STOP         0x00020000l        /* stop at last column */
  140.  
  141. #define CKTBL_VSCROLL_MASK            0x00040000l     /* vertical scroll mode */
  142. # define CKTBL_VSCROLL_EXTRA        0x00000000l        /* scroll into gray area past last row */
  143. # define CKTBL_VSCROLL_STOP         0x00040000l        /* stop at last row */
  144.  
  145. #define CKTBL_SMOOTH_SCROLL            0x00080000l        /* enable smooth scrolling */           
  146.                         
  147. #define CKTBL_ROWLABEL_MASK            0x00300000l        
  148. # define CKTBL_ROWLABEL_EMPTY        0x00000000l     /* empty row labels */
  149. # define CKTBL_ROWLABEL_NUMERIC        0x00100000l        /* numeric row labels */
  150. # define CKTBL_ROWLABEL_ALPHA        0x00200000l        /* alphabetic row labels */
  151.  
  152. #define CKTBL_COLLABEL_MASK            0x00C00000l        
  153. # define CKTBL_COLLABEL_EMPTY        0x00000000l     /* empty column labels */
  154. # define CKTBL_COLLABEL_NUMERIC        0x00400000l        /* numeric column labels */
  155. # define CKTBL_COLLABEL_ALPHA        0x00800000l        /* alphabetic column labels */
  156.                   
  157. #define CKTBL_ROWLABEL_3D            0x01000000l        /* draw 3D Row Labels */
  158. #define CKTBL_COLLABEL_3D            0x02000000l     /* draw 3D Column Labels */
  159.                                                              
  160. #define CKTBL_CREATE_LABELSIZE        0x10000000l     /* use columnLabelWidth,rowLabelHeight from CKTBL_CREATE */
  161. #define CKTBL_CREATE_CELLSIZE         0x20000000l        /* use defaultRowHeight,defaultColumnWidth from CKTBL_CREATE */
  162.  
  163. #define CKTBL_DEFAULT_FLAGS                            \
  164.    (CKTBL_RESIZE_ROWS | CKTBL_RESIZE_COLUMNS |        \
  165.     CKTBL_EDIT_CELLS |                                 \
  166.     CKTBL_SHOW_GRID |  CKTBL_SHOW_SELECTION  |        \
  167.     CKTBL_SELECT_ALL | CKTBL_SELECT_CELLS |            \
  168.     CKTBL_SELECT_ROWS | CKTBL_SELECT_COLUMNS |        \
  169.     CKTBL_EXTENDED_SELECT | CKTBL_SHIFT_SELECT | CKTBL_CONTROL_SELECT | \
  170.     CKTBL_HSCROLL | CKTBL_HSCROLL_ONDEMAND |        \
  171.     CKTBL_VSCROLL | CKTBL_VSCROLL_ONDEMAND |          \
  172.     CKTBL_ROWLABEL_NUMERIC | CKTBL_COLLABEL_ALPHA )
  173.  
  174.  
  175. #define CKTBL_CHECK( flags, mask )         (((flags)&(mask))==(mask))
  176. #define CKTBL_SETFLAG( flags, mask )     ((flags)|(mask))
  177. #define CKTBL_CLEARFLAG( flags, mask )     ((flags)&(~(long)(mask)))
  178.  
  179.  
  180. /*------------------------------------------------------------------------------
  181.  *    Cell Format flags
  182.  *----------------------------------------------------------------------------*/
  183.  
  184. #define CKTBL_MASK_HALIGN            (CKTBL_FMT_LEFT|CKTBL_FMT_CENTER|CKTBL_FMT_RIGHT)
  185. # define CKTBL_FMT_LEFT                0x0000        /* left justified text */
  186. # define CKTBL_FMT_CENTER            0x0001        /* centered text */
  187. # define CKTBL_FMT_RIGHT            0x0002        /* right justified text */
  188.  
  189. #define CKTBL_MASK_VALIGN            (CKTBL_FMT_TOP|CKTBL_FMT_BOTTOM)
  190. # define CKTBL_FMT_TOP                0x1000
  191. # define CKTBL_FMT_BOTTOM            0x0000
  192.  
  193. #define CKTBL_MASK_CELLTYPE            (CKTBL_FMT_SINGLE_LINE|CKTBL_FMT_MULTI_LINE)
  194. # define CKTBL_FMT_SINGLE_LINE        0x0000        /* single line of text */
  195. # define CKTBL_FMT_MULTI_LINE        0x0010        /* multiple line text */
  196.  
  197. #define CKTBL_FMT_HSCROLL            0x0020        /* WS_HSCROLL    horizontal scroll bar */
  198. #define CKTBL_FMT_VSCROLL            0x0040        /* WS_VSCROLL    vertical scroll bar */
  199. #define CKTBL_FMT_AUTOHSCROLL        0x0080      /* ES_AUTOHSCROLL    */
  200. #define CKTBL_FMT_AUTOVSCROLL        0x0100        /* ES_AUTOVSCROLL    */
  201. #define CKTBL_FMT_WORDBREAK            0x0200        /* word wrap (only with CKTBL_FMT_MULTI_LINE) */
  202.  
  203. #define CKTBL_FMT_VGROW                0x0400        /* grow horizontally with text, only with CKTBL_FMT_MULTILINE */
  204. #define CKTBL_FMT_VSHRINK            0x0800        /* shrink vertically with text, only with CKTBL_FMT_MULTILINE */
  205.              
  206. #define CKTBL_FMT_AUTOSELECT_MASK    (CKTBL_FMT_NOAUTOSELECT|CKTBL_FMT_AUTOSELECT|CKTBL_FMT_AUTOSELECTEND)             
  207. # define CKTBL_FMT_NOAUTOSELECT        0x2000        /* do not select the text */
  208. # define CKTBL_FMT_AUTOSELECT        0x0000      /* automatically select all text */
  209. # define CKTBL_FMT_AUTOSELECTEND    0x4000        /* automatically select end of text */
  210.  
  211. #define CKTBL_FMT_TEXTLIMIT            0x8000        /* limit text size to value specified in textLimit */
  212. #define CKTBL_FMT_TABONLIMIT    0x10000000l        /* automatically tab when text limit reached */
  213.  
  214. /*-----------------------------------------------------------------------------
  215. ------------------------------------------------------------------------------*/
  216.  
  217. #define CKTBL_MULTILINEBREAK                    \
  218.     (CKTBL_FMT_MULTI_LINE|                        \
  219.     CKTBL_FMT_AUTOVSCROLL|                        \
  220.     CKTBL_FMT_VGROW|CKTBL_FMT_VSHRINK|            \
  221.     CKTBL_FMT_WORDBREAK)
  222.  
  223. #define CKTBL_MULTILINE                               \
  224.     (CKTBL_FMT_MULTI_LINE|                        \
  225.     CKTBL_FMT_HSCROLL|CKTBL_FMT_AUTOHSCROLL|    \
  226.     CKTBL_FMT_AUTOVSCROLL|                        \
  227.     CKTBL_FMT_VGROW|CKTBL_FMT_VSHRINK )
  228.  
  229. #define CKTBL_SINGLELINE_TOP                    \
  230.     (CKTBL_FMT_SINGLE_LINE|                        \
  231.     CKTBL_FMT_AUTOHSCROLL|                        \
  232.     CKTBL_FMT_TOP)
  233.  
  234. #define CKTBL_SINGLELINE_BOTTOM                    \
  235.     (CKTBL_FMT_SINGLE_LINE|                        \
  236.     CKTBL_FMT_AUTOHSCROLL|                        \
  237.     CKTBL_FMT_BOTTOM)
  238.  
  239. #define CKTBL_SINGLELINE    CKTBL_SINGLELINE_TOP
  240.  
  241. /*-----------------------------------------------------------------------------
  242.  *    Create struct for use in CREATESTRUCT of CreateWindow()
  243.  *----------------------------------------------------------------------------*/
  244.  
  245. typedef struct tagCKTBL_CREATE {
  246.         long    flags;
  247.         int        rows;
  248.         int        columns;
  249.         int        columnLabelWidth;
  250.         int        rowLabelHeight;
  251.         int        defaultColumnWidth;
  252.         int        defaultRowHeight;
  253.         char    reserved[16];
  254.     } CKTBL_CREATE;
  255.  
  256. /*------------------------------------------------------------------------------
  257.  * a pointer to a CKTBL_EDITARG is passed as lParam in following messages
  258.  *    CKTBL_EDIT_START    call CKTBLStartEdit() if ok
  259.  *    CKTBL_EDIT_END        call CKTBLSetText() if ok
  260.  *----------------------------------------------------------------------------*/
  261.  
  262. typedef struct tagCKTBL_EDITARG {
  263.         int        row;
  264.         int        column;
  265.         LPSTR   text;
  266.     } CKTBL_EDITARG;
  267.  
  268. /*------------------------------------------------------------------------------
  269.  *----------------------------------------------------------------------------*/
  270.  
  271. typedef struct tagCKTBL_ATTRIB {
  272.         DWORD        format;
  273.         COLORREF    foreColor;
  274.         COLORREF    backColor;
  275.  
  276.         LPSTR        fontName;
  277.         int            fontSize;              /* font size in 1/10 points */
  278.         BOOL        fontBold;
  279.         BOOL        fontItalic;
  280.         BOOL        fontStrikeOut;
  281.         BOOL        fontUnderline;
  282.  
  283.         HFONT        hFont;                 /* overrides above, not deleted by CKTBLL */  
  284.         
  285.         WORD        textLimit;            /* only used if format contains CKTBL_FMT_TEXTLIMT */
  286.     } CKTBL_ATTRIB;
  287.  
  288. /*------------------------------------------------------------------------------
  289. ------------------------------------------------------------------------------*/
  290.  
  291. #define CKTBL_ATTR_FORMAT            0x0001
  292. #define CKTBL_ATTR_BACKCOLOR        0x0002
  293. #define CKTBL_ATTR_FORECOLOR        0x0004
  294. #define CKTBL_ATTR_FONT                                \
  295.         (CKTBL_ATTR_FONTNAME|CKTBL_ATTR_FONTSIZE|    \
  296.          CKTBL_ATTR_FONTBOLD|CKTBL_ATTR_FONTITALIC|    \
  297.          CKTBL_ATTR_FONTUNDERLINE|CKTBL_ATTR_FONTSTRIKEOUT )
  298. # define CKTBL_ATTR_FONTNAME           0x0008
  299. # define CKTBL_ATTR_FONTSIZE           0x0010
  300. # define CKTBL_ATTR_FONTBOLD           0x0020
  301. # define CKTBL_ATTR_FONTITALIC        0x0040
  302. # define CKTBL_ATTR_FONTUNDERLINE    0x0080
  303. # define CKTBL_ATTR_FONTSTRIKEOUT    0x0100
  304. #define CKTBL_ATTR_HFONT            0x0200
  305. #define CKTBL_ATTR_TEXTLIMIT        0x0400
  306.                                  
  307.    
  308. /*------------------------------------------------------------------------------
  309.  *    Helper functions
  310.  *----------------------------------------------------------------------------*/
  311.  
  312. void CKAPI CKTBLModifyAttrStruct( CKTBL_ATTRIB FAR* dst, CKTBL_ATTRIB FAR* src, short fields, DWORD formatMask );     //NEW
  313. LPSTR CKAPI CKTBLIndexAsNumber( int index, LPSTR buffer );
  314. LPSTR CKAPI CKTBLIndexAsAlpha( int index, LPSTR buffer, int bufferSize );                           
  315.   
  316. /*------------------------------------------------------------------------------
  317.  *    Public Protocol
  318.  *----------------------------------------------------------------------------*/
  319.  
  320. LRESULT CKCALLBACK CKTBLWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
  321.  
  322. void    CKAPI CKTBLClear            ( HWND hWnd );
  323. void    CKAPI CKTBLSetSize            ( HWND hWnd, int rows, int columns );
  324. void    CKAPI CKTBLSetColumns        ( HWND hWnd, int columns );
  325. void    CKAPI CKTBLSetRows            ( HWND hWnd, int rows );
  326.  
  327. int        CKAPI CKTBLGetColumns        ( HWND hWnd );
  328. int        CKAPI CKTBLGetRows            ( HWND hWnd );
  329.  
  330. void    CKAPI CKTBLSetFlags            ( HWND hWnd, DWORD flags );
  331. long    CKAPI CKTBLGetFlags            ( HWND hWnd );
  332.  
  333. BOOL    CKAPI CKTBLHasVScrollBar    ( HWND hWnd );
  334. BOOL    CKAPI CKTBLHasHScrollBar    ( HWND hWnd );
  335.  
  336. void     CKAPI CKTBLSetTextLimit        ( HWND hWnd, int row, int col, int limit );
  337. int        CKAPI CKTBLGetTextLimit        ( HWND hWnd, int row, int col );
  338.  
  339. int        CKAPI CKTBLGetCurrentRow    ( HWND hWnd );
  340. int        CKAPI CKTBLGetCurrentColumn    ( HWND hWnd );
  341. void    CKAPI CKTBLSetCurrentCell     ( HWND hWnd, int row, int col );
  342.  
  343. int        CKAPI CKTBLGetTopRow        ( HWND hWnd );                             
  344. int        CKAPI CKTBLGetLeftColumn    ( HWND hWnd );
  345. void    CKAPI CKTBLSetLeftTop        ( HWND hWnd, int left, int top );
  346.  
  347. BOOL     CKAPI CKTBLInEdit            ( HWND hWnd );
  348. void    CKAPI CKTBLStartEdit        ( HWND hWnd, int row, int column, LPSTR text );
  349. void    CKAPI CKTBLStartEditRequest    ( HWND hWnd, int row, int column, LPSTR text );
  350. BOOL     CKAPI CKTBLEndEdit            ( HWND Hwnd, BOOL acceptChanges );
  351. void     CKAPI CKTBLShowCell            ( HWND hWnd, int row, int col  );
  352.  
  353. void    CKAPI CKTBLSetCellAttr        ( HWND hWnd, CKTBL_ATTRIB FAR* attrib );
  354. void    CKAPI CKTBLGetCellAttr        ( HWND hWnd, CKTBL_ATTRIB FAR* attrib );
  355.  
  356. void    CKAPI CKTBLSetLabelAttr        ( HWND hWnd, CKTBL_ATTRIB FAR* attrib );
  357. void    CKAPI CKTBLGetLabelAttr        ( HWND hWnd, CKTBL_ATTRIB FAR* attrib );
  358.  
  359. void    CKAPI CKTBLSetDefaultColumnWidth( HWND hWnd, int width );
  360. void    CKAPI CKTBLSetDefaultRowHeight  ( HWND hWnd, int height );
  361.  
  362. int        CKAPI CKTBLGetDefaultColumnWidth( HWND hWnd );
  363. int        CKAPI CKTBLGetDefaultRowHeight  ( HWND hWnd );
  364.  
  365. void    CKAPI CKTBLSetColumnWidth       ( HWND hWnd, int column, int width );
  366. void    CKAPI CKTBLSetRowHeight         ( HWND hWnd, int row, int height );
  367.  
  368. int        CKAPI CKTBLGetColumnWidth       ( HWND hWnd, int column  );
  369. int        CKAPI CKTBLGetRowHeight         ( HWND hWnd, int row );
  370.  
  371. int        CKAPI CKTBLGetTextHeight        ( HWND hWnd, int row, int col, LPCSTR text );
  372. int        CKAPI CKTBLGetRowTextHeight        ( HWND hWnd, int row, int skipColumn );
  373. void    CKAPI CKTBLUpdateRowHeight        ( HWND hWnd, int row );
  374.  
  375. void    CKAPI CKTBLInsertRowsAfter        ( HWND hWnd, int row, int number );
  376. void    CKAPI CKTBLInsertColumnsAfter    ( HWND hWnd, int column ,int number );
  377.  
  378. void    CKAPI CKTBLRemoveRows            ( HWND hWnd, int rowStart, int rowEnd );
  379. void    CKAPI CKTBLRemoveColumns        ( HWND hWnd, int columnStart, int columnEnd);
  380.  
  381. void    CKAPI CKTBLSetText               ( HWND hWnd, int row, int column, LPCSTR text );
  382. void    CKAPI CKTBLSetTextPrim           ( HWND hWnd, int row, int column, LPCSTR text );
  383. void     CKAPI CKTBLSetRowText        ( HWND hWnd, int row, LPCSTR text, int colSep, int lineSep );
  384.  
  385. int        CKAPI CKTBLGetTextLength    ( HWND hWnd, int row, int column );
  386. void    CKAPI CKTBLGetText            ( HWND hWnd, int row, int column, LPSTR text, int maxLength );
  387.   
  388. int     CKAPI CKTBLGetRowTextLength    ( HWND hWnd, int row  );
  389. void     CKAPI CKTBLGetRowText        ( HWND hWnd, int row, LPSTR text, int maxLength, int colSep, int lineSep );  
  390.   
  391. void    CKAPI CKTBLSetAttr            ( HWND hWnd, int row, int column, CKTBL_ATTRIB FAR* attrib );
  392. void    CKAPI CKTBLModifyAttr        ( HWND hWnd, int row, int column, CKTBL_ATTRIB FAR* attrib, short fields, DWORD formatMask  );
  393. void    CKAPI CKTBLGetAttr            ( HWND hWnd, int row, int column, CKTBL_ATTRIB FAR* attrib );
  394.  
  395. void    CKAPI CKTBLSetRectText        ( HWND hWnd, RECT FAR* rect, LPSTR text );
  396. void    CKAPI CKTBLSetRectAttr        ( HWND hWnd, RECT FAR* rect, CKTBL_ATTRIB FAR* attrib );
  397. void    CKAPI CKTBLModifyRectAttr    ( HWND hWnd, RECT FAR* rect, CKTBL_ATTRIB FAR* attrib, short fields, DWORD formatMask );
  398.                                         
  399. void    CKAPI CKTBLSetSelAttr        ( HWND hWnd, CKTBL_ATTRIB FAR* attrib );
  400. void    CKAPI CKTBLModifySelAttr    ( HWND hWnd, CKTBL_ATTRIB FAR* attrib, short fields, DWORD formtMask );
  401.  
  402. /*------------------------------------------------------------------------------
  403.  *    Selections are stored as rectangles
  404.  *    left,top specify the column and row of the leftTop cell in the selection
  405.  *    right,bottom specify the column and row of the rightBottom cell in the selection
  406.  *
  407.  *    left==0 indicates a row selection
  408.  *    top==0 indicats a column selection
  409.  *    left==0 && top==0 indicates total selection
  410.  *----------------------------------------------------------------------------*/
  411.  
  412. void     CKAPI CKTBLClearSelection    ( HWND hWnd );
  413. void    CKAPI CKTBLSetSelection        ( HWND hWnd, RECT FAR* cells );
  414. void    CKAPI CKTBLChangeSelection    ( HWND hWnd, RECT FAR* cells, int index );
  415. void    CKAPI CKTBLAddSelection        ( HWND hWnd, RECT FAR* cells );
  416.  
  417. void    CKAPI CKTBLSetSelectionOrg    ( HWND hWnd, RECT FAR* cells, POINT FAR* origin );
  418. void    CKAPI CKTBLAddSelectionOrg    ( HWND hWnd, RECT FAR* cells, POINT FAR* origin );
  419.  
  420. int        CKAPI CKTBLGetSelectionSize ( HWND hWnd );
  421. BOOL    CKAPI CKTBLGetSelection        ( HWND hWnd, RECT FAR* cells, int n );
  422.  
  423. #ifdef CKTBL_LIBRARY
  424. BOOL    CKAPI CKTBLInitLib( HANDLE hInstanceExe );
  425. void      CKAPI CKTBLExitLib();
  426. #endif
  427.  
  428.  
  429. #ifdef __cplusplus
  430. }                       /* End of extern "C" { */
  431. #endif    /* __cplusplus */
  432.  
  433. #endif /* CKTBL_H */
  434.  
  435.  
  436.