home *** CD-ROM | disk | FTP | other *** search
- //*---------------------------------------------------------------------------------
- //| ODBC System Administrator
- //|
- //| This code is furnished on an as-is basis as part of the ODBC SDK and is
- //| intended for example purposes only.
- //|
- //| Title: RESULTS.H
- //| This file contains the prototypes and defines for anyone using RESULTS.H.
- //*---------------------------------------------------------------------------------
- #ifndef results_DEFS
- #define results_DEFS
-
- #include <windows.h>
- #include "sql.h"
- #include "sqlext.h"
-
- //------------------------------------------------------------------------
- // Defines
- //------------------------------------------------------------------------
- #define SQL_TYPE 1
- #define C_TYPE 2
- #define TYPENAME 35
-
- #define MAXBYTES 255
-
-
- #define RDATA_WHITE RGB(255,255,255)
- #define RDATA_GRAY RGB(190, 190, 190)
- #define RDATA_BLACK RGB(0, 0, 0)
- #define RDATA_RED RGB(255,0,0)
- #define RDATA_GREEN RGB(0,255,0)
- #define RDATA_BLUE RGB(0,0,255)
- #define RDATA_LTBLUE RGB(0,255,255)
- #define RDATA_DEFAULT_TEXT GetSysColor(COLOR_WINDOWTEXT)
- #define RDATA_DEFAULT_BKGRND GetSysColor(COLOR_WINDOW)
- #define RDATA_DEFAULT_SELECT_TEXT GetSysColor(COLOR_HIGHLIGHTTEXT)
- #define RDATA_DEFAULT_SELECT GetSysColor(COLOR_HIGHLIGHT)
-
-
- //------------------------------------------------------------------------
- // Declare global variables
- //------------------------------------------------------------------------
-
-
-
- //*--------------------------------------------------------------------
- //| METADATA:
- //| This structure contains the meta data about each column in the
- //| results set. This information can be easily retrieved using
- //| SQLColAttribute or SQLDescribeCol.
- //*--------------------------------------------------------------------
- typedef struct tagMETADATA {
- LPSTR szColumnName; // Name of the column
- char szTypeName[TYPENAME]; // ODBC type name
- SDWORD fSqlType; // Numeric SQL type
- UDWORD precision; // Precision of the data type
- SWORD scale; // Scale of the data type
- int cbDisplaySize; // How many bytes to display
- UINT fAlign; // What alignment to take
- int xCol; // x offset from 0 for column
- UINT cColWidth; // Width of column in pixels
- UINT cbOffset; // Byte offset in row storage
- } METADATA;
-
-
- //*--------------------------------------------------------------------
- //| This structure is created when the user creates a results set.
- //| It must be used for all major function calls.
- //*--------------------------------------------------------------------
- typedef struct tagRESULTSSET {
- char szTitle[MAXBUFF]; // Title for the window
- int cbColumns; // How many columns in results?
- HINSTANCE hInst; // Instance handle for this dll
- HWND hwndResults; // Window handle for the MDI client window
- HWND hwndClient; // Window handle of the client window
- HWND hwndTitle; // Column names
- HWND hwndList; // Window handle for list box
- HWND hwndHScroll; // Window handle for horizontal scroll bar
- HWND hwndVScroll; // Window handle for vertical scroll bar
- HFONT hFont; // Logical font for window
- int cx; // Width of the average character
- int cy; // Height of the average character
- int cTitleHeight; // Height of the title bar
- int yTitleLoc; // What y value to use when drawing title text
- int cRowWidth; // Overall width if completely shown
- METADATA FAR * md; // Structure with meta data
- } RESULTSSET, FAR * lpRESULTSSET;
-
-
- //------------------------------------------------------------------------
- // Following structure is used to keep track of data for each column
- //------------------------------------------------------------------------
- typedef struct tagCOLUMNDATA {
- LPSTR szCols; // Column data
- } COLUMNDATA, FAR * lpCOLUMNDATA;
-
- //------------------------------------------------------------------------
- // Following structure should be allocated for each row
- //------------------------------------------------------------------------
- typedef struct tagRowData {
- COLUMNDATA FAR * cd; // Pointer to column information
- LPSTR data; // Buffer for all column data
- COLORREF textColor; // Color of text
- COLORREF bkgrnd; // Color of background
- } ROWDATA, FAR * lpROWDATA;
-
-
-
- //------------------------------------------------------------------------
- // Declare function prototypes
- //------------------------------------------------------------------------
- BOOL EXTFUN CreateResultsSet(RESULTSSET FAR * rs, HWND hwndClient, HINSTANCE hInst,
- int count, LPSTR szTitle);
- BOOL EXTFUN SetMetaDataColumn(RESULTSSET FAR * rs, int iCol, LPSTR szCol,
- LPSTR szTypeName, SDWORD fSqlType, UDWORD precision, SWORD scale,
- int cbDisplay, UINT fAlign);
- ROWDATA FAR * AllocateRowData(RESULTSSET FAR * rs, COLORREF cColor, COLORREF cBkg);
- BOOL EXTFUN SetColumnData(int icol, ROWDATA FAR * rd, LPSTR str);
- void EXTFUN FreeRowData(RESULTSSET FAR * rs, ROWDATA FAR * rd);
- void EXTFUN FreeResultsSet(RESULTSSET FAR * rs);
- int FindRightCol(RESULTSSET FAR * rs, int xLeftCol, int cWidth);
- void CreateResultsFont(RESULTSSET FAR * rs, HWND hwnd, LOGFONT FAR * lf);
- void DrawRowData(RESULTSSET FAR * rs, DRAWITEMSTRUCT FAR * dwitem,
- int xLeftCol, int xRightCol);
- void INTFUN DrawColumnTitles(HDC hdc, RESULTSSET FAR * rs,
- RECT FAR * crect, int xLeftCol, int xRightCol);
- void HandleHScroll(WPARAM wParam, RESULTSSET FAR * rs,
- HWND hwnd, HWND hwndHScroll, int FAR * xLeftCol, int FAR * xRightCol,
- HWND hwndList, int cbColumns, int cbClient, RECT FAR * tRect);
- void HandleVirtualHScroll(WPARAM wParam, HWND hwndList, HWND hwndOwner);
- int AddRowData(RESULTSSET FAR * rs, ROWDATA FAR * rd);
- SWORD GetNumResultsCols(HSTMT hstmt);
- LPSTR GetTypeName(int type, int fType);
- void ConvertSqlTypeToChar(RESULTSSET FAR * rs, int col, LPSTR inbuff,
- LPSTR outbuff, SDWORD rtnd);
- void BinToChar(LPSTR outstr, LPSTR instr, SDWORD count);
-
-
- #endif
-