2025-11-28 00:35:46 +09:00

183 lines
7.4 KiB
C++

//--------------------------------------------------------------------
// Microsoft OLE DB Test
//
// Copyright (C) 1997-2000 Microsoft Corporation
//
// @doc
//
// @module QUIKTEST.H | This module contains header information for
// OLE DB Provider Quik Test
//
//
#ifndef _QUIKTEST_H_
#define _QUIKTEST_H_
#include "oledb.h" // OLE DB Header Files
#include "oledberr.h"
#include "privlib.h"
//----------------------------------------------------------------------
// Defines
//----------------------------------------------------------------------
#define FILENAME_SIZE _MAX_FNAME
#define PATH_SIZE _MAX_PATH
#define MIN_ROWS 5 //Minimum number of rows on Table.
//----------------------------------------------------------------------
// String constants
//----------------------------------------------------------------------
//These are used in the CBaseError class implementation.
const WCHAR wszErrorFindingCurrentPath[] = L"Error finding current path.\n";
const WCHAR wszErrorTitle[] = L"--- Error ----------\n";
const WCHAR wszWarningTitle[] = L"--- Warning --------\n";
//----------------------------------------------------------------------
// Const Static Arrays
//----------------------------------------------------------------------
//Mandatory columns of a columns rowset.
struct tagMandCols
{
const DBID* pDbid;
DBTYPE wType;
WCHAR* pwszName;
} g_rgMandCols[] =
{
// DBID DBTYPE Name
&DBCOLUMN_IDNAME, DBTYPE_WSTR, L"DBCOLUMN_IDNAME",
&DBCOLUMN_GUID, DBTYPE_GUID, L"DBCOLUMN_GUID",
&DBCOLUMN_PROPID, DBTYPE_UI4, L"DBCOLUMN_PROPID",
&DBCOLUMN_NAME, DBTYPE_WSTR, L"DBCOLUMN_NAME",
&DBCOLUMN_NUMBER, DBTYPEFOR_DBORDINAL, L"DBCOLUMN_NUMBER",
&DBCOLUMN_TYPE, DBTYPE_UI2, L"DBCOLUMN_TYPE",
&DBCOLUMN_TYPEINFO, DBTYPE_IUNKNOWN, L"DBCOLUMN_TYPEINFO",
&DBCOLUMN_COLUMNSIZE, DBTYPEFOR_DBLENGTH, L"DBCOLUMN_COLUMNSIZE",
&DBCOLUMN_PRECISION, DBTYPE_UI2, L"DBCOLUMN_PRECISION",
&DBCOLUMN_SCALE, DBTYPE_I2, L"DBCOLUMN_SCALE",
&DBCOLUMN_FLAGS, DBTYPE_UI4, L"DBCOLUMN_FLAGS"
};
const ULONG g_cMandCols = NUMELEM(g_rgMandCols);
//List of Keywords from OLE DB.
const LPWSTR g_rgpwszKeywords[] = {
L"ABSOLUTE",L"ACTION",L"ADD",L"ALL",L"ALLOCATE",L"ALTER",L"AND",L"ANY",L"ARE",L"AS",L"ASC",
L"ASSERTION",L"AT",L"AUTHORIZATION",L"AVG",L"BEGIN",L"BETWEEN",L"BIT",L"BIT_LENGTH",L"BOTH",
L"BY",L"CASCADE",L"CASCADED",L"CASE",L"CAST",L"CATALOG",L"CHAR",L"CHAR_LENGTH",L"CHARACTER",
L"CHARACTER_LENGTH",L"CHECK",L"CLOSE",L"COALESCE",L"COLLATE",L"COLLATION",L"COLUMN",
L"COMMIT",L"CONNECT",L"CONNECTION",L"CONSTRAINT",L"CONSTRAINTS",L"CONTINUE",L"CONVERT",
L"CORRESPONDING",L"COUNT",L"CREATE",L"CROSS",L"CURRENT",L"CURRENT_DATE",L"CURRENT_TIME",
L"CURRENT_TIMESTAMP",L"CURRENT_USER",L"CURSOR",L"DATE",L"DAY",L"DEALLOCATE",L"DEC",
L"DECIMAL",L"DECLARE",L"DEFAULT",L"DEFERRABLE",L"DEFERRED",L"DELETE",L"DESC",L"DESCRIBE",
L"DESCRIPTOR",L"DIAGNOSTICS",L"DISCONNECT",L"DISTINCT",L"DISTINCTROW",L"DOMAIN",L"DOUBLE",
L"DROP",L"ELSE",L"END",L"END-EXEC",L"ESCAPE",L"EXCEPT",L"EXCEPTION",L"EXEC",L"EXECUTE",
L"EXISTS",L"EXTERNAL",L"EXTRACT",L"FALSE",L"FETCH",L"FIRST",L"FLOAT",L"FOR",L"FOREIGN",
L"FOUND",L"FROM",L"FULL",L"GET",L"GLOBAL",L"GO",L"GOTO",L"GRANT",L"GROUP",L"HAVING",L"HOUR",
L"IDENTITY",L"IMMEDIATE",L"IN",L"INDICATOR",L"INITIALLY",L"INNER",L"INPUT",L"INSENSITIVE",
L"INSERT",L"INT",L"INTEGER",L"INTERSECT",L"INTERVAL",L"INTO",L"IS",L"ISOLATION",L"JOIN",
L"KEY",L"LANGUAGE",L"LAST",L"LEADING",L"LEFT",L"LEVEL",L"LIKE",L"LOCAL",L"LOWER",L"MATCH",L"MAX",
L"MIN",L"MINUTE",L"MODULE",L"MONTH",L"NAMES",L"NATIONAL",L"NATURAL",L"NCHAR",L"NEXT",L"NO",
L"NOT",L"NULL",L"NULLIF",L"NUMERIC",L"OCTET_LENGTH",L"OF",L"ON",L"ONLY",L"OPEN",L"OPTION",
L"OR",L"ORDER",L"OUTER",L"OUTPUT",L"OVERLAPS",L"PARTIAL",L"POSITION",L"PRECISION",L"PREPARE",
L"PRESERVE",L"PRIMARY",L"PRIOR",L"PRIVILEGES",L"PROCEDURE",L"PUBLIC",L"READ",L"REAL",
L"REFERENCES",L"RELATIVE",L"RESTRICT",L"REVOKE",L"RIGHT",L"ROLLBACK",L"ROWS",L"SCHEMA",
L"SCROLL",L"SECOND",L"SECTION",L"SELECT",L"SESSION",L"SESSION_USER",L"SET",L"SIZE",L"SMALLINT",
L"SOME",L"SQL",L"SQLCODE",L"SQLERROR",L"SQLSTATE",L"SUBSTRING",L"SUM",L"SYSTEM_USER",L"TABLE",
L"TEMPORARY",L"THEN",L"TIME",L"TIMESTAMP",L"TIMEZONE_HOUR",L"TIMEZONE_MINUTE",L"TO",
L"TRAILING",L"TRANSACTION",L"TRANSLATE",L"TRANSLATION",L"TRIGGER",L"TRIM",L"TRUE",L"UNION",
L"UNIQUE",L"UNKNOWN",L"UPDATE",L"UPPER",L"USAGE",L"USER",L"USING",L"VALUE",L"VALUES",L"VARCHAR",
L"VARYING",L"VIEW",L"WHEN",L"WHENEVER",L"WHERE",L"WITH",L"WORK",L"WRITE",L"YEAR",L"ZONE",
};
//LITERALS Constants.
const LPWSTR g_rgpwszLiterals[] = {
L"DBLITERAL_INVALID",L"DBLITERAL_BINARY_LITERAL",L"DBLITERAL_CATALOG_NAME",
L"DBLITERAL_CATALOG_SEPARATOR",L"DBLITERAL_CHAR_LITERAL",
L"DBLITERAL_COLUMN_ALIAS",L"DBLITERAL_COLUMN_NAME",L"DBLITERAL_CORRELATION_NAME",
L"DBLITERAL_CURSOR_NAME",L"DBLITERAL_ESCAPE_PERCENT_PREFIX",L"DBLITERAL_ESCAPE_UNDERSCORE_PREFIX",
L"DBLITERAL_INDEX_NAME",L"DBLITERAL_LIKE_PERCENT",L"DBLITERAL_LIKE_UNDERSCORE",
L"DBLITERAL_PROCEDURE_NAME",L"DBLITERAL_QUOTE_PREFIX",L"DBLITERAL_SCHEMA_NAME",
L"DBLITERAL_TABLE_NAME",L"DBLITERAL_TEXT_COMMAND",L"DBLITERAL_USER_NAME",
L"DBLITERAL_VIEW_NAME",L"DBLITERAL_CUBE_NAME",L"DBLITERAL_DIMENSION_NAME",
L"DBLITERAL_HIERARCHY_NAME",L"DBLITERAL_LEVEL_NAME",L"DBLITERAL_MEMBER_NAME",
L"DBLITERAL_PROPERTY_NAME",L"DBLITERAL_SCHEMA_SEPARATOR",L"DBLITERAL_QUOTE_SUFFIX",
L"DBLITERAL_ESCAPE_PERCENT_SUFFIX",L"DBLITERAL_ESCAPE_UNDERSCORE_SUFFIX"
};
///////////////////////////////////////////////////////////////////////
// CBaseError Class
//
///////////////////////////////////////////////////////////////////////
class CBaseError : public IError
{
public:
DWORD m_cRef;
HRESULT m_ExpectedHr;
HRESULT m_ActualHr;
DWORD m_cModErrors;
DWORD m_cCaseErrors;
DWORD m_cVarErrors;
DWORD m_cModWarnings;
DWORD m_cCaseWarnings;
DWORD m_cVarWarnings;
ERRORLEVEL m_ErrorLevel;
CBaseError(void);
virtual ~CBaseError();
HRESULT Transmit(CHAR* pszString);
//
// IError
//
STDMETHODIMP GetErrorLevel (ERRORLEVEL *pErrorLevel);
STDMETHODIMP SetErrorLevel (ERRORLEVEL ErrorLevel);
STDMETHODIMP GetActualHr (LONG *phrActual);
STDMETHODIMP Validate (LONG hrActual,
BSTR bstrFileName,
LONG lLineNo,
LONG hrExpected,
VARIANT_BOOL *pfResult);
STDMETHODIMP Compare (VARIANT_BOOL fWereEqual,
BSTR bstrFileName,
LONG lLineNo,
VARIANT_BOOL *pfWereEqual);
STDMETHODIMP LogExpectedHr (LONG hrExpected );
STDMETHODIMP LogReceivedHr (LONG hrReceived,
BSTR bstrFileName,
LONG lLineNo);
STDMETHODIMP ResetModErrors (void);
STDMETHODIMP ResetModWarnings (void);
STDMETHODIMP ResetCaseErrors (void);
STDMETHODIMP ResetCaseWarnings (void);
STDMETHODIMP ResetVarErrors (void);
STDMETHODIMP ResetVarWarnings (void);
STDMETHODIMP GetModErrors (LONG *plModErrors);
STDMETHODIMP GetModWarnings (LONG *plModWarnings);
STDMETHODIMP GetCaseErrors (LONG *plCaseErrors);
STDMETHODIMP GetCaseWarnings (LONG *plCaseWarnings);
STDMETHODIMP GetVarErrors (LONG *plVarErrors);
STDMETHODIMP GetVarWarnings (LONG *plVarWarnings);
STDMETHODIMP Increment (void);
STDMETHODIMP Transmit (BSTR bstrTextString);
STDMETHODIMP Initialize (void);
//
// IUnknown
//
STDMETHODIMP QueryInterface(REFIID riid, void **ppvObject);
STDMETHODIMP_(DWORD) AddRef(void);
STDMETHODIMP_(DWORD) Release(void);
};
#endif //#ifndef _QUIKTEST_H_