windows-nt/Source/XPSP1/NT/admin/wmi/wbem/adapters/odbc/util.h

176 lines
6.2 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/***************************************************************************/
/* UTIL.H */
/* Copyright (C) 1995-96 SYWARE Inc., All rights reserved */
/***************************************************************************/
#ifdef WIN32
#define INTFUNC __stdcall
#else
#define INTFUNC PASCAL
#endif
/***************************************************************************/
/* To turn on tracing, set ISAM_TRACE to TRUE and recompile */
#define ISAM_TRACE FALSE
/* Max size for SQL_LONGVARCHAR */
#define ISAM_MAX_LONGVARCHAR 16384 //cannot be more than (32767 - 4)
/***************************************************************************/
#define BINARY_LENGTH(x) *((SDWORD FAR *) x)
#define BINARY_DATA(x) (x + sizeof(SDWORD))
/***************************************************************************/
RETCODE INTFUNC ReturnString (
PTR rgbValue,
SWORD cbValueMax,
SWORD FAR *pcbValue,
LPCUSTR lpstr);
RETCODE INTFUNC ReturnStringD (
PTR rgbValue,
SDWORD cbValueMax,
SDWORD FAR *pcbValue,
LPCUSTR lpstr);
/* Takes the zero terminated string 'lpstr' and copies it to buffer */
/* rgbValue[0..cbValueMax-1], truncating it if need be (if rgbValue */
/* is null, no data is copied). Also, if pcbValue is not null, it */
/* is set to the length of the un-truncated string. */
/* */
/* Returns ERR_SUCCESS or ERR_DATATRUNCATED */
/***************************************************************************/
RETCODE INTFUNC ConvertSqlToC (
SWORD fSqlTypeIn,
BOOL fUnsignedAttributeIn,
PTR rgbValueIn,
SDWORD cbValueIn,
SDWORD FAR *pcbOffset,
SWORD fCTypeOut,
PTR rgbValueOut,
SDWORD cbValueOutMax,
SDWORD FAR *pcbValueOut);
/* Copies rgbValueIn to rgbValueOut (if not null) and sets pcbValueOut (if */
/* not null). Data is converted as need be. Data is copied stating at */
/* rgbValueIn[*pcbOffset] and *pcbOffset is increased by the number of */
/* bytes returned. */
/* */
/* Returns ERR_SUCCESS or ERR_DATATRUNCATED or some other error */
/***************************************************************************/
BOOL INTFUNC PatternMatch(
BOOL fEscape,
LPUSTR lpCandidate,
SDWORD cbCandidate,
LPUSTR lpPattern,
SDWORD cbPattern,
BOOL fCaseSensitive);
/* Tests to see if lpCandidate matched the template specified by */
/* lpPattern. Percent signs (%) match zero or more characters. */
/* Underscores (_) match single characters. The camparison is done */
/* case-insensitive if fCaseSensitive is FALSE. */
/* */
/* If fEscape is TRUE, "%%" in the pattern only matches a single '%' in */
/* the candidate and "%_" in the pattern only matches a single '_' in the */
/* candidate. */
/* */
/* Returns TRUE if there is a match, otherwise FALSE. */
/***************************************************************************/
SDWORD INTFUNC TrueSize(
LPUSTR lpStr,
SDWORD cbStr,
SDWORD cbMax);
/* Returns the size of a string (but not larger than cbMax) */
/***************************************************************************/
BOOL INTFUNC DoubleToChar (
double dbl,
BOOL ScientificNotationOK,
LPUSTR lpChar,
SDWORD cbChar);
/* Convert a double to a character string. Returns TRUE if value is */
/* truncated (lpChar will not contain a null terminator). Otherwise FALSE.*/
/***************************************************************************/
void INTFUNC DateToChar (
DATE_STRUCT FAR *lpDate,
LPUSTR lpChar);
/* Convert a date to a character string */
/***************************************************************************/
void INTFUNC TimeToChar (
TIME_STRUCT FAR *lpTime,
LPUSTR lpChar);
/* Convert a time to a character string */
/***************************************************************************/
void INTFUNC TimestampToChar (
TIMESTAMP_STRUCT FAR *lpTimestamp,
LPUSTR lpChar);
/* Convert a timestamp to a character string */
/***************************************************************************/
RETCODE INTFUNC CharToDouble (
LPUSTR lpChar,
SDWORD cbChar,
BOOL fIntegerOnly,
double dblLowBound,
double dblHighBound,
double FAR *lpDouble);
/* Convert a character string to a double */
/***************************************************************************/
RETCODE INTFUNC CharToDate (
LPUSTR lpChar,
SDWORD cbChar,
DATE_STRUCT FAR *lpDate);
/* Convert a character string to a date */
/***************************************************************************/
RETCODE INTFUNC CharToTime (
LPUSTR lpChar,
SDWORD cbChar,
TIME_STRUCT FAR *lpTime);
/* Convert a character string to a time */
/***************************************************************************/
RETCODE INTFUNC CharToTimestamp (
LPUSTR lpChar,
SDWORD cbChar,
TIMESTAMP_STRUCT FAR *lpTimestamp);
/* Convert a character string to a timestamp */
/***************************************************************************/
#ifndef WIN32
BOOL INTFUNC DeleteFile (
LPCSTR lpszFilename);
/* Deletes specified file */
#endif
/***************************************************************************/