#ifndef PROTBL_H #define PROTBL_H #include <ProANSI.h> #include <ProObjects.h> #include <ProMdl.h> #include <ProWstring.h> #include <ProNote.h> #define PROTBLCELL_BLANK_LEFT (1<<0) #define PROTBLCELL_BLANK_RIGHT (1<<1) #define PROTBLCELL_BLANK_TOP (1<<2) #define PROTBLCELL_BLANK_BOTTOM (1<<3) PRO_BEGIN_C_DECLS /*typedef struct pro_draw_table *ProDwgtabledata;*/ typedef struct pro_table_data *ProTableData; typedef enum { PROTABLESIZE_CHARACTERS, PROTABLESIZE_MODEL_UNITS,/* For Drawing and Flat to Screen tables it is in screen unit*/ PROTABLESIZE_CHARS_TRUE } ProTableSizetype; typedef enum { PROTABLEFORMAT_TBL, PROTABLEFORMAT_TXT, PROTABLEFORMAT_CSV, PROTABLEFORMAT_XLSX } ProTableFormattype; typedef enum { PROTABLEGROWTHDIR_DOWNRIGHT = 0, PROTABLEGROWTHDIR_DOWNLEFT, PROTABLEGROWTHDIR_UPRIGHT, PROTABLEGROWTHDIR_UPLEFT }ProTableGrowthdirType; typedef enum { PROTBLROWHEIGHT_AUTOADJUST_FALSE = 0, PROTBLROWHEIGHT_AUTOADJUST_TRUE, PROTBLROWHEIGHT_AUTOADJUST_TRUE_LEGACY } ProTableRowheightAutoadjusttype; typedef enum{ PROTABLE_NORMAL = 1, PROTABLE_FULL = 2 } ProTableParamMode; extern ProError ProTableDataAlloc(ProTableData *data); /* Purpose: Allocated memory for ProTableData structure. Input Arguments: none Output Arguments: data - pointer to the ProTableData structure Return Values: PRO_TK_NO_ERROR - Success PRO_TK_GENERAL_ERROR - Failure */ extern ProError ProTableDataOriginSet(ProTableData data,ProPoint3d origin); /* Purpose: Set the origin in the specified ProTableData structure Input Arguments: data - ProTableData structure origin - The origin for the table placement. Output Arguments: none Return Values: PRO_TK_NO_ERROR - Success PRO_TK_GENERAL_ERROR - Failure */ extern ProError ProTableDataFreeAttachSet(ProTableData data, ProAnnotationPlane* plane, ProPoint3d origin); /* Purpose: Set the free attachment in the specified ProTableData structure Input Arguments: data - ProTableData structure plane - Annotation Plane. origin - The origin for the table placement. For tables on valid annotation plane pass this with respect to Model Csys. For flat to screen tables pass this in 1000 x 843 fixed spaced Output Arguments: none Return Values: PRO_TK_NO_ERROR - Success PRO_TK_GENERAL_ERROR - Failure */ extern ProError ProTableOriginGet(ProTable* table, int segment, ProPoint3d origin); /* Purpose: Get the origin in the specified ProTableData structure Input Arguments: table - The table. segment - The segment identifier. Pass Segment Id for Drawing and 0 Model. Output Arguments: origin - The origin for the table placement. Return Values: PRO_TK_NO_ERROR - Success PRO_TK_GENERAL_ERROR - Failure */ extern ProError ProTableDataSizetypeSet(ProTableData data, ProTableSizetype size_type); /* Purpose: Setup sizetype in the given ProTableData structure Input Arguments: data - ProTableData structure size_type - size type Output Arguments: none Return Values: PRO_TK_NO_ERROR - Success PRO_TK_GENERAL_ERROR - Failure */ extern ProError ProTableDataColumnsSet (ProTableData data,int n_columns,double *widths,ProHorzJust *justifications); /* Purpose: Setup column properties Input Arguments: data - The ProTableData structure n_columns - Number of columns. The maximum number of columns that can be specified is 50. widths - ProArray of Column widths justifications - ProArray of Justifications Output Arguments: none Return Values: PRO_TK_NO_ERROR - Success PRO_TK_BAD_INPUTS - Bad input argument */ extern ProError ProTableDataRowsSet (ProTableData data,int n_rows,double *heights); /* Purpose: Setup rows properties Input Arguments: data - The ProTableData structure n_rows - Number of rows. The maximum number of rows that can be specified is 100. heights - ProArray of row heights Output Arguments: none Return Values: PRO_TK_NO_ERROR - Success PRO_TK_BAD_INPUTS - Bad input argument */ extern ProError ProTableDataAnnotationPlaneSet(ProTableData data, ProAnnotationPlane* plane); /* Purpose: Set Annotation plane for solid tables. Input Arguments: data - The ProTableData structure plane - plane Output Arguments: none Return Values: PRO_TK_NO_ERROR - Success PRO_TK_BAD_INPUTS - Bad input argument */ extern ProError ProTableAnnotationPlaneGet(ProTable* table, ProAnnotationPlane* plane); /* Purpose: Get Annotation plane for solid tables. Input Arguments: table - The table. Output Arguments: plane - plane Return Values: PRO_TK_NO_ERROR - Success PRO_TK_BAD_INPUTS - Bad input argument */ extern ProError ProTableCreate (ProMdl mdl, ProTableData table_data,int display,ProTable *table); /* Purpose: Creates a table. The function creates the table on the current sheet or active combination state. Input Arguments: mdl - The Model table_data - The table data display - Boolean flag that specifies whether or not the table is to be displayed after creation. If display==FALSE, then the table is not displayed. Output Arguments: table - the table Return Values: PRO_TK_NO_ERROR - Success PRO_TK_GENERAL_ERROR - Failure */ extern ProError ProTableTextEnter(ProTable *table,int column,int row,ProWstring *lines); /* Purpose: Adds the specified lines of text into the appropriate column and row of the table. Note that more than one line of text may be written into a cell. If a line of text is too wide for the cell (too many characters), the text overlaps the neighboring cells. Input Arguments: table - The table to which to add the text for the cell. column - The column number of the cell. The column indices start at 1. row - The row number of the cell. The row indices start at 1. lines - ProArray of text lines assigned to the table cell. Output Arguments: none Return Values: PRO_TK_NO_ERROR - Success PRO_TK_GENERAL_ERROR - Failure */ extern ProError ProTableDelete (ProTable *table); /* Purpose: Deletes the specified table. Input Arguments: table - The table to delete. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The table was deleted. PRO_TK_NOT_EXIST - The specified <i>table_id</i> does not exist. */ extern ProError ProTableDisplay (ProTable *table, ProCombstate* state); /* Purpose: Displays the table. Input Arguments: table - The table to display. state - The combination state to display to. Pass NULL for drawing table. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The table was deleted. PRO_TK_BAD_INPUTS - The specified table was NULL. PRO_TK_GENERAL_ERROR - The function failed. */ extern ProError ProTableErase (ProTable *table, ProCombstate* state); /* Purpose: Erases the table. Input Arguments: table - The table to erase. state - The combination state to erase from. Pass NULL for drawing table. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The table was deleted. PRO_TK_BAD_INPUTS - The specified table was NULL. PRO_TK_GENERAL_ERROR - The function failed. */ typedef ProError (*ProTableVisitAction) (ProTable *table, ProError filter_status, ProAppData data); /* Purpose: The action function called for each drawing table entity during the call to ProTableVisit(). Input Arguments: table - Table to be visited filter_status - Return value from filter action function data - Application data passed to function ProTableVisit(). Output Arguments: none Return Values: PRO_TK_NO_ERROR - Continue visiting drawing tables. Other - Stop visiting tables. */ typedef ProError (*ProTableFilterAction) (ProTable *table, ProAppData data); /* Purpose: The filter function called for each table entity during the call to function ProTableVisit(). Input Arguments: table - Table to be filtered data - Application data passed to function ProTableVisit(). Output Arguments: none Return Values: PRO_TK_CONTINUE - Skip visiting this drawing table and go to the next. Other - Call the visit action for this drawing table. The return value is passed as input to the visit action. */ extern ProError ProTableVisit (ProMdl model,ProTableVisitAction visit_action,ProTableFilterAction filter_action,ProAppData data); /* Purpose: Visit tables in the specified model. Input Arguments: model - model to visit visit_action - visit action filter_action - filter action. If NULL, all tables are visited using the action function. data - ProAppData structure Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully visited the tables. PRO_TK_BAD_INPUTS - One or more input arguments was invalid. PRO_TK_E_NOT_FOUND - No tables were visited. Other - Error return supplied by the visit action which caused visiting to stop. */ extern ProError ProTablesCollect (ProMdl model,ProTable **tables); /* Purpose: Collect all tables in the specified model Input Arguments: model - the model Output Arguments: tables - the array of table. The function allocates the memory for this argument. To free the memory, call <b>ProArrayFree()</b>. Return Values: PRO_TK_NO_ERROR - The function successfully collected the tables. PRO_TK_BAD_INPUTS - One or more input arguments was invalid. PRO_TK_E_NOT_FOUND - No tables were found. */ extern ProError ProTableRowsColumnsCount(ProTable *table,int *n_rows, int *n_columns); /* Purpose: Counts the table rows and columns. Input Arguments: table - The table Output Arguments: n_rows - rows count. n_columns - columns count Return Values: PRO_TK_NO_ERROR - Success . PRO_TK_NOT_EXIST - The specified table or drawing does not exist. */ extern ProError ProTableRowAdd (ProTable *table,int insert_after_row,int display, double height_in_chars); /* Purpose: Adds a row to a table. If you try to insert a row in the middle of a nontemplate element of a repeat region, this function returns an error. Input Arguments: table - the table; insert_after_row - Insert the new row after this row. Row numbers start with 1. Pass the value 0 to insert the new row at the top of the table To Append at last pass value less that 0.(any negative Value) display - Flag that specifies whether or not the table is to be displayed after creation. height_in_chars - The height of the row in characters. Pass -1 to take value of previous column and first column in case of add at start. Output Arguments: none Return Values: PRO_TK_NO_ERROR - Success. PRO_TK_GENERAL_ERROR - Failure */ extern ProError ProTableColumnAdd (ProTable *table,int insert_after_col,int display, double width_in_chars); /* Purpose: Adds column to a table Input Arguments: table - the table; insert_after_col - insert the new column after this column. Column numbers start with 1. If you want the new column to be the first column, pass the value 0. To Append at last pass value less that 0.(any negative Value) display - Flag that specifies whether or not the table is to be displayed after creation. width_in_chars - The width of the column, in characters. Pass -1 to take value of previous column and first column in case of add at start. Output Arguments: none Return Values: PRO_TK_NO_ERROR - Success. PRO_TK_GENERAL_ERROR - Failure */ extern ProError ProTableCellsMerge (ProTable *table, int start_column, int start_row, int end_column, int end_row, int display); /* Purpose: Takes a rectangular region of cells and merges them into a composite cell. The merged cells, rows, or columns are deleted, and the table's appearance will be restored using prodrw_remesh_table_cells(). This function is equivalent to the Creo Parametric option Drawing, Table, Mod Rows/Col, Merge. Restrictions placed in the user interface also apply here. For example, borders of merge cannot intersect the borders of another merge or repeat region. Input Arguments: table - The table start_column - The leftmost column of the merged cell start_row - The upper row of the merged cell end_column - The rightmost column of the merged cell end_row - The bottom row of the merged cell display - Flag that specifies whether or not the table is to be displayed after creation. Output Arguments: none Return Values: PRO_TK_NO_ERROR - Success; PRO_TK_GENERAL_ERROR - Failure. PRO_TK_NOT_VALID - When the input row or the column does not exist. */ extern ProError ProTableCellMergeGet (ProTable* table, int row, int col, ProBoolean* is_merge, int* start_row, int* start_col, int* end_row, int* end_col); /* Purpose: Gets merge information of specified cell. Input Arguments: table - table row - specify row of cell. Indices start at 1 col - specify column of cell. Indices start at 1 Output Arguments: is_merge - PRO_B_TRUE if cell is merge start_row - row index for start merge cell. Indices start at 1 start_col - column index for start merge cell. Indices start at 1 end_row - row index for end merge cell. Indices start at 1. end_col - column index for end merge cell. Indices start at 1. Return Values: PRO_TK_BAD_INPUTS - selection not provided, selection not a table cell, or ProTable for output not provided. PRO_TK_NO_ERROR - Successfully found merge information */ extern ProError ProTableCellsRemesh(ProTable* table, int start_column, int start_row, int end_column, int end_row, int display); /* Purpose: Undoes all merges created in the specified rectangular region. Input Arguments: table - the table; start_column - the leftmost column of the region to remesh; start_row - the upper row of the region to remesh; end_column - the rightmost column of the region to remesh; end_row - the bottom row of the region to remesh. display - Flag that specifies whether or not the table is to be displayed after creation. If display==TRUE, then the table is displayed (behavior as in releases prior to Release 20). If display==FALSE, then the table is not displayed. Output Arguments: none Return Values: PRO_TK_NO_ERROR - Success. PRO_TK_GENERAL_ERROR - Failure. PRO_TK_NOT_VALID - When the input row or the column does not exist. */ extern ProError ProTableRowDelete (ProTable *table, int row, int display); /* Purpose: Delete the specified row from the table. Input Arguments: table - The table; row - The row index. Row indices start at 1. display - Flag that specifies whether or not the table is to be displayed after creation. Output Arguments: none Return Values: PRO_TK_NO_ERROR - Success; PRO_TK_GENERAL_ERROR - Failure. */ /*ProDwgtableColumnDelete*/ extern ProError ProTableColumnDelete (ProTable *table, int column, int display); /* Purpose: Deletes the specified column from the table. Input Arguments: table - The table. column - The column index. The indices start at 1. display - Flag that specifies whether or not the table is to be displayed after creation. If display==TRUE, then the table is displayed (behavior as in releases prior to Release 20). If display==FALSE, then the table is not displayed. Output Arguments: none Return Values: PRO_TK_NO_ERROR - Success; PRO_TK_GENERAL_ERROR - Failure. */ extern ProError ProTableCellNoteGet(ProTable* table, int column, int row, int* id); /* Purpose: Returns the note identifier for a specified cell of the table. Input Arguments: table - the reference to the table. column - The column index. Column indices start at 1. row - The row index. Row indices start at 1. Output Arguments: id - The id of note for the specified cell. Return Values: PRO_TK_NO_ERROR - The note identifier for the specified cell. PRO_TK_EMPTY - The cell is empty. PRO_TK_GENERAL_ERROR - Another error occurred and the function failed. */ extern ProError ProTableCelltextGet(ProTable* table, int column, int row, ProTableParamMode mode,ProWstring **lines); /* Purpose: Places the text of the table into a string array. Input Arguments: table - The table. column - The column index. The column indices start at 1. row - The row index. The row indices start at 1. mode - The mode type. Use 1 to get the text as displayed. Use 2 to get the text as shown in the full note editor, in n:&symbol notation. Output Arguments: lines - The text of the table. Free this using ProWstringproarrayFree(). Return Values: PRO_TK_NO_ERROR - Success PRO_TK_GENERAL_ERROR - Failure or table cell does not have any entered text */ extern ProError ProTableRotate (ProTable *table,int display); /* Purpose: Rotates table (counter clockwise) by 90 degree.The function does not perform a display. Input Arguments: table - The table. display - Flag that specifies whether or not the table is to be displayed after creation. Output Arguments: none Return Values: PRO_TK_NO_ERROR - Success; PRO_TK_GENERAL_ERROR - Failure. */ extern ProError ProTableCellIsComment (ProTable *table,int column,int row,ProBoolean *is_comment); /* Purpose: Determines whether the specified cell is a comment cell. Input Arguments: table - the table; column - the column index. The column indices start at 1. row - the row index. The row indices start at 1. Output Arguments: is_comment - PRO_B_TRUE if the cell is a comment cell. PRO_B_FALSE otherwise. Return Values: PRO_TK_NO_ERROR - success. PRO_TK_BAD_INPUTS - One or more input arguments was invalid. */ extern ProError ProTableIsFromFormat (ProTable *table,ProBoolean *from_format); /* Purpose: Determines whether the specified table is associated with the format. This API is for drawing table only. Input Arguments: table - The drawing table Output Arguments: from_format - PRO_B_TRUE if the table is associated with the format; PRO_B_FALSE if the table is not associated with the format. Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_GENERAL_ERROR - The function failed. */ extern ProError ProTableColumnWidthSet(ProTable* table,int column,double column_width,ProTableSizetype size_type); /* Purpose: Set the column width of a table. Input Arguments: table - The reference to the table. column - The column index. Column indices start at 1. column_width - Column width size_type - Size type.If PROTABLESIZE_CHARACTERS,then column_width will be rounded down. To avoid this, use PROTABLESIZE_CHARS_TRUE. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments was invalid. PRO_TK_GENERAL_ERROR - The column width could not set */ extern ProError ProTableColumnWidthGet(ProTable* table,int column, ProTableSizetype size_type,double* column_width); /* Purpose: Get the column width of a table. Input Arguments: table - The reference to the table. column - The column index. Column indices start at 1. size_type - Size type.If PROTABLESIZE_CHARACTERS,then column_width will be rounded down. To avoid this, use PROTABLESIZE_CHARS_TRUE. Output Arguments: column_width - Column width Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments was invalid. PRO_TK_GENERAL_ERROR - The column width could not get */ extern ProError ProTableRowHeightSet(ProTable* table, int row, double row_height, ProTableSizetype size_type); /* Purpose: Set the row height of a table Input Arguments: table - The reference to the table. row - The row index row_height - Row height size_type - Size type. If PROTABLESIZE_CHARACTERS, then row_height will be rounded down. To avoid this, use PROTABLESIZE_CHARS_TRUE. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments was invalid. PRO_TK_GENERAL_ERROR - The row height could not set */ extern ProError ProTableRowHeightGet(ProTable* table, int row, ProTableSizetype size_type, double* row_height); /* Purpose: Get the row height of a table Input Arguments: table - The reference to the table. row - The row index size_type - Size type. If PROTABLESIZE_CHARACTERS, then row_height will be rounded down. To avoid this, use PROTABLESIZE_CHARS_TRUE. Output Arguments: row_height - Row height Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments was invalid. PRO_TK_GENERAL_ERROR - The row height could not set */ extern ProError ProTableRowheightAutoadjustSet(ProTable* table, int row, ProTableRowheightAutoadjusttype auto_adjust); /* Purpose: Set the automatic row height adjustment property for a row of a table. <P><B>NOTE: </B>Height changes (if any) will be visible only after next regeneration or a call to ProTablesUpdate() Input Arguments: table - The reference to the table. row - Row number for which the property is to be set. Row numbers start with 1. auto_adjust - PROTBLROWHEIGHT_AUTOADJUST_TRUE to set the property, PROTBLROWHEIGHT_AUTOADJUST_FALSE to unset it. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments was invalid. PRO_TK_GENERAL_ERROR - The automatic adjust property could not be set. PRO_TK_CANT_MODIFY - The row is a non-template repeat region row. */ extern ProError ProTableRowheightAutoadjustGet(ProTable* table, int row, ProTableSizetype size_type, ProTableRowheightAutoadjusttype* auto_adjust, double* height); /* Purpose: Get the automatic row height adjustment property for a row of a table. Input Arguments: table - The reference to the table. row - Row number for which the property is to be retrieved. Row numbers start with 1. size_type - Size type. If PROTABLESIZE_CHARACTERS, then row_height will be rounded down. To avoid this, use PROTABLESIZE_CHARS_TRUE. Output Arguments: auto_adjust - Retrieved value for auto-adjust property. height - Auto adjusted height if auto_adjust is PROTBLROWHEIGHT_AUTOADJUST_TRUE. Ignore for PROTBLROWHEIGHT_AUTOADJUST_FALSE Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments was invalid. PRO_TK_GENERAL_ERROR - The automatic adjust property could not be retrieved. */ extern ProError ProTableReferencesAdd(ProTable* table, ProAnnotationReference* refs); /* Purpose: Add table references Input Arguments: table - Valid table. refs - ProArray of table references. Only 1 reference from type PRO_ANNOT_REF_SRF_COLLECTION is allowed. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function completed successfully. PRO_TK_BAD_INPUTS - The input argument is invalid. PRO_TK_BAD_CONTEXT - The table owner is drawing. PRO_TK_MAX_LIMIT_REACHED - More than 1 references from type PRO_ANNOT_REF_SRF_COLLECTION. PRO_TK_CANT_MODIFY - Refercnce from type PRO_ANNOT_REF_SRF_COLLECTION already exist. */ extern ProError ProTableReferencesGet(ProTable* table, ProAnnotationReference** p_refs); /* Purpose: Get table references Input Arguments: table - Valid table. Output Arguments: p_refs - ProArray of table references. Free it using ProAnnotationreferencearrayFree() Return Values: PRO_TK_NO_ERROR - The function completed successfully. PRO_TK_BAD_INPUTS - The input argument is invalid. PRO_TK_BAD_CONTEXT - The table owner is drawing. */ extern ProError ProTableReferenceDelete(ProTable* table, int index_ref); /* Purpose: Delete table reference Input Arguments: table - Valid table. index_ref - Indices start from 0. Get existing references from ProTableReferencesGet() Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function completed successfully. PRO_TK_BAD_INPUTS - The input argument is invalid. PRO_TK_BAD_CONTEXT - The table owner is drawing.. */ extern ProError ProTableSave(ProTable* table, ProPath path, ProTableFormattype table_format, int segment_id); /* Purpose: Save table in different format Input Arguments: table - The reference to the table. path - Full path of the saved location table_format - Save format of the table segment_id - segment of the table to save, if table_format is PROTABLEFORMAT_CSV or PROTABLEFORMAT_XLSX Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function succeeded. PRO_TK_BAD_INPUTS - One or more input arguments was invalid. PRO_TK_GENERAL_ERROR - The function failed */ extern ProError ProSelectionTableGet(ProSelection selection, ProTable* table); /* Purpose: For a ProSelection representing a cell of a table, returns the table from which the cell was selected. Input Arguments: selection - ProSelection representing a cell of a table. Output Arguments: table - The table from which the cell was selected. Return Values: PRO_TK_BAD_INPUTS - selection not provided, selection not a table cell, or ProTable for output not provided. PRO_TK_NO_ERROR - Successfully found table corresponding to the table cell. */ extern ProError ProTableCellBlankGet(ProTable* table, int row, int col, int* blank_flags); /* Purpose: Gets blank border information of specified cell. Input Arguments: table - table row - specify row of cell. Indices start at 1 col - specify row of column. Indices start at 1 Output Arguments: blank_flags - Bit mask of PROTBLCELL_BLANK_LEFT/RIGHT/TOP/Bottom Return Values: PRO_TK_BAD_INPUTS - selection not provided, selection not a table cell, or ProTable for output not provided. PRO_TK_NO_ERROR - Successfully found blank information */ extern ProError ProTableBorderStyleGet(ProTable* table, ProLinestyle *line_style, double *width, ProColor *clr); /* Purpose: Gets line style of table borders Input Arguments: table - table. Output Arguments: line_style - line_style, width - width clr - color Return Values: PRO_TK_BAD_INPUTS - One or more inputs are NULL PRO_TK_NO_ERROR - Successfully return information. */ extern ProError ProTableCellFillColorGet(ProTable* table, int row, int col, ProColor* color); /* Purpose: Gets color of specified cell. Input Arguments: table - table row - specify row of cell. Indices start at 1 col - specify row of column. Indices start at 1 Output Arguments: color - The color of the given table cell. Return Values: PRO_TK_BAD_INPUTS - selection not provided, selection not a table cell, or ProTable for output not provided. PRO_TK_E_NOT_FOUND - When there is no fill color. PRO_TK_NO_ERROR - Successfully found color of the cell. */ PRO_END_C_DECLS #endif /* PROTBL_H */