251 lines
9.2 KiB
C
251 lines
9.2 KiB
C
|
#ifndef VTAPI_H
|
||
|
#define VTAPI_H
|
||
|
|
||
|
#define VTAPI
|
||
|
|
||
|
/* Typedefs for dispatched APIs. */
|
||
|
/* Please keep in alphabetical order */
|
||
|
|
||
|
typedef ERR VTAPI VTFNAddColumn(JET_VSESID sesid, JET_VTID vtid,
|
||
|
const char *szColumn, const JET_COLUMNDEF *pcolumndef,
|
||
|
const void *pvDefault, unsigned long cbDefault,
|
||
|
JET_COLUMNID *pcolumnid);
|
||
|
|
||
|
typedef ERR VTAPI VTFNCloseTable(JET_VSESID sesid, JET_VTID vtid);
|
||
|
|
||
|
typedef ERR VTAPI VTFNComputeStats(JET_VSESID sesid, JET_VTID vtid);
|
||
|
|
||
|
typedef ERR VTAPI VTFNCopyBookmarks(JET_SESID sesid, JET_VTID vtidSrc,
|
||
|
JET_TABLEID tableidDest, JET_COLUMNID columnidDest,
|
||
|
unsigned long crecMax);
|
||
|
|
||
|
typedef ERR VTAPI VTFNCreateIndex(JET_VSESID sesid, JET_VTID vtid,
|
||
|
const char *szIndexName, JET_GRBIT grbit,
|
||
|
const char *szKey, unsigned long cbKey, unsigned long lDensity);
|
||
|
|
||
|
typedef ERR VTAPI VTFNCreateReference(JET_VSESID sesid, JET_VTID vtid,
|
||
|
const char *szReferenceName, const char *szColumns,
|
||
|
const char *szReferencedTable,
|
||
|
const char *szReferencedColumns, JET_GRBIT grbit);
|
||
|
|
||
|
typedef ERR VTAPI VTFNDelete(JET_VSESID sesid, JET_VTID vtid);
|
||
|
|
||
|
typedef ERR VTAPI VTFNDeleteColumn(JET_VSESID sesid, JET_VTID vtid,
|
||
|
const char *szColumn);
|
||
|
|
||
|
typedef ERR VTAPI VTFNDeleteIndex(JET_VSESID sesid, JET_VTID vtid,
|
||
|
const char *szIndexName);
|
||
|
|
||
|
typedef ERR VTAPI VTFNDeleteReference(JET_VSESID sesid, JET_VTID vtid,
|
||
|
const char *szReferenceName);
|
||
|
|
||
|
typedef ERR VTAPI VTFNDupCursor(JET_VSESID sesid, JET_VTID vtid,
|
||
|
JET_TABLEID *ptableid, JET_GRBIT grbit);
|
||
|
|
||
|
typedef ERR VTAPI VTFNEmptyTable(JET_VSESID sesid, JET_VTID vtid);
|
||
|
|
||
|
typedef ERR VTAPI VTFNGetBookmark(JET_VSESID sesid, JET_VTID vtid,
|
||
|
void *pvBookmark, unsigned long cbMax,
|
||
|
unsigned long *pcbActual);
|
||
|
|
||
|
typedef ERR VTAPI VTFNGetChecksum(JET_VSESID sesid, JET_VTID vtid,
|
||
|
unsigned long *pChecksum);
|
||
|
|
||
|
typedef ERR VTAPI VTFNGetCurrentIndex(JET_VSESID sesid, JET_VTID vtid,
|
||
|
char *szIndexName, unsigned long cchIndexName);
|
||
|
|
||
|
typedef ERR VTAPI VTFNGetCursorInfo(JET_VSESID sesid, JET_VTID vtid,
|
||
|
void *pvResult, unsigned long cbMax, unsigned long InfoLevel);
|
||
|
|
||
|
typedef ERR VTAPI VTFNGetRecordPosition(JET_VSESID sesid, JET_VTID vtid,
|
||
|
JET_RECPOS *pkeypos, unsigned long cbKeypos);
|
||
|
|
||
|
typedef ERR VTAPI VTFNGetTableColumnInfo(JET_VSESID sesid, JET_VTID vtid,
|
||
|
const char *szColumnName, void *pvResult,
|
||
|
unsigned long cbMax, unsigned long InfoLevel);
|
||
|
|
||
|
typedef ERR VTAPI VTFNGetTableIndexInfo(JET_VSESID sesid, JET_VTID vtid,
|
||
|
const char *szIndexName, void *pvResult,
|
||
|
unsigned long cbMax, unsigned long InfoLevel);
|
||
|
|
||
|
typedef ERR VTAPI VTFNGetTableReferenceInfo(JET_VSESID sesid, JET_VTID vtid,
|
||
|
const char *szReferenceName, void *pvResult,
|
||
|
unsigned long cbMax, unsigned long InfoLevel);
|
||
|
|
||
|
typedef ERR VTAPI VTFNGetTableInfo(JET_VSESID sesid, JET_VTID vtid,
|
||
|
void *pvResult, unsigned long cbMax, unsigned long InfoLevel);
|
||
|
|
||
|
typedef ERR VTAPI VTFNGotoBookmark(JET_VSESID sesid, JET_VTID vtid,
|
||
|
void *pvBookmark, unsigned long cbBookmark);
|
||
|
|
||
|
typedef ERR VTAPI VTFNGotoPosition(JET_VSESID sesid, JET_VTID vtid,
|
||
|
JET_RECPOS *precpos);
|
||
|
|
||
|
typedef ERR VTAPI VTFNVtIdle(JET_VSESID sesid, JET_VTID vtid);
|
||
|
|
||
|
typedef ERR VTAPI VTFNMakeKey(JET_VSESID sesid, JET_VTID vtid,
|
||
|
const void *pvData, unsigned long cbData, JET_GRBIT grbit);
|
||
|
|
||
|
typedef ERR VTAPI VTFNMove(JET_VSESID sesid, JET_VTID vtid,
|
||
|
long cRow, JET_GRBIT grbit);
|
||
|
|
||
|
typedef ERR VTAPI VTFNNotifyBeginTrans(JET_VSESID sesid, JET_VTID vtid);
|
||
|
|
||
|
typedef ERR VTAPI VTFNNotifyCommitTrans(JET_VSESID sesid, JET_VTID vtid,
|
||
|
JET_GRBIT grbit);
|
||
|
|
||
|
typedef ERR VTAPI VTFNNotifyRollback(JET_VSESID sesid, JET_VTID vtid,
|
||
|
JET_GRBIT grbit);
|
||
|
|
||
|
typedef ERR VTAPI VTFNNotifyUpdateUfn(JET_VSESID sesid, JET_VTID vtid);
|
||
|
|
||
|
typedef ERR VTAPI VTFNPrepareUpdate(JET_VSESID sesid, JET_VTID vtid,
|
||
|
unsigned long prep);
|
||
|
|
||
|
typedef ERR VTAPI VTFNRenameColumn(JET_VSESID sesid, JET_VTID vtid,
|
||
|
const char *szColumn, const char *szColumnNew);
|
||
|
|
||
|
typedef ERR VTAPI VTFNRenameIndex(JET_VSESID sesid, JET_VTID vtid,
|
||
|
const char *szIndex, const char *szIndexNew);
|
||
|
|
||
|
typedef ERR VTAPI VTFNRenameReference(JET_VSESID sesid, JET_VTID vtid,
|
||
|
const char *szReference, const char *szReferenceNew);
|
||
|
|
||
|
typedef ERR VTAPI VTFNRetrieveColumn(JET_VSESID sesid, JET_VTID vtid,
|
||
|
JET_COLUMNID columnid, void *pvData, unsigned long cbData,
|
||
|
unsigned long *pcbActual, JET_GRBIT grbit,
|
||
|
JET_RETINFO *pretinfo);
|
||
|
|
||
|
typedef ERR VTAPI VTFNRetrieveKey(JET_VSESID sesid, JET_VTID vtid,
|
||
|
void *pvKey, unsigned long cbMax,
|
||
|
unsigned long *pcbActual, JET_GRBIT grbit);
|
||
|
|
||
|
typedef ERR VTAPI VTFNSeek(JET_VSESID sesid, JET_VTID vtid, JET_GRBIT grbit);
|
||
|
|
||
|
typedef ERR VTAPI VTFNSetCurrentIndex(JET_VSESID sesid, JET_VTID vtid,
|
||
|
const char *szIndexName);
|
||
|
|
||
|
typedef ERR VTAPI VTFNSetColumn(JET_VSESID sesid, JET_VTID vtid,
|
||
|
JET_COLUMNID columnid, const void *pvData,
|
||
|
unsigned long cbData, JET_GRBIT grbit, JET_SETINFO *psetinfo);
|
||
|
|
||
|
typedef ERR VTAPI VTFNSetIndexRange(JET_VSESID sesid, JET_VTID vtid,
|
||
|
JET_GRBIT grbit);
|
||
|
|
||
|
typedef ERR VTAPI VTFNUpdate(JET_VSESID sesid, JET_VTID vtid,
|
||
|
void *pvBookmark, unsigned long cbBookmark,
|
||
|
unsigned long *pcbActual);
|
||
|
|
||
|
|
||
|
/* The following structure is that used to allow dispatching to */
|
||
|
/* a VT provider. Each VT provider must create an instance of */
|
||
|
/* this structure and give the pointer to this instance when */
|
||
|
/* allocating a table id. */
|
||
|
|
||
|
typedef struct VTDBGDEF {
|
||
|
unsigned short cbStruct;
|
||
|
unsigned short filler;
|
||
|
char szName[32];
|
||
|
unsigned long dwRFS;
|
||
|
unsigned long dwRFSMask[4];
|
||
|
} VTDBGDEF;
|
||
|
|
||
|
/* Please add to the end of the table */
|
||
|
|
||
|
typedef struct tagVTFNDEF {
|
||
|
unsigned short cbStruct;
|
||
|
unsigned short filler;
|
||
|
const VTDBGDEF *pvtdbgdef;
|
||
|
VTFNAddColumn *pfnAddColumn;
|
||
|
VTFNCloseTable *pfnCloseTable;
|
||
|
VTFNComputeStats *pfnComputeStats;
|
||
|
VTFNCopyBookmarks *pfnCopyBookmarks;
|
||
|
VTFNCreateIndex *pfnCreateIndex;
|
||
|
VTFNCreateReference *pfnCreateReference;
|
||
|
VTFNDelete *pfnDelete;
|
||
|
VTFNDeleteColumn *pfnDeleteColumn;
|
||
|
VTFNDeleteIndex *pfnDeleteIndex;
|
||
|
VTFNDeleteReference *pfnDeleteReference;
|
||
|
VTFNDupCursor *pfnDupCursor;
|
||
|
VTFNGetBookmark *pfnGetBookmark;
|
||
|
VTFNGetChecksum *pfnGetChecksum;
|
||
|
VTFNGetCurrentIndex *pfnGetCurrentIndex;
|
||
|
VTFNGetCursorInfo *pfnGetCursorInfo;
|
||
|
VTFNGetRecordPosition *pfnGetRecordPosition;
|
||
|
VTFNGetTableColumnInfo *pfnGetTableColumnInfo;
|
||
|
VTFNGetTableIndexInfo *pfnGetTableIndexInfo;
|
||
|
VTFNGetTableInfo *pfnGetTableInfo;
|
||
|
VTFNGetTableReferenceInfo *pfnGetTableReferenceInfo;
|
||
|
VTFNGotoBookmark *pfnGotoBookmark;
|
||
|
VTFNGotoPosition *pfnGotoPosition;
|
||
|
VTFNVtIdle *pfnVtIdle;
|
||
|
VTFNMakeKey *pfnMakeKey;
|
||
|
VTFNMove *pfnMove;
|
||
|
VTFNNotifyBeginTrans *pfnNotifyBeginTrans;
|
||
|
VTFNNotifyCommitTrans *pfnNotifyCommitTrans;
|
||
|
VTFNNotifyRollback *pfnNotifyRollback;
|
||
|
VTFNNotifyUpdateUfn *pfnNotifyUpdateUfn;
|
||
|
VTFNPrepareUpdate *pfnPrepareUpdate;
|
||
|
VTFNRenameColumn *pfnRenameColumn;
|
||
|
VTFNRenameIndex *pfnRenameIndex;
|
||
|
VTFNRenameReference *pfnRenameReference;
|
||
|
VTFNRetrieveColumn *pfnRetrieveColumn;
|
||
|
VTFNRetrieveKey *pfnRetrieveKey;
|
||
|
VTFNSeek *pfnSeek;
|
||
|
VTFNSetCurrentIndex *pfnSetCurrentIndex;
|
||
|
VTFNSetColumn *pfnSetColumn;
|
||
|
VTFNSetIndexRange *pfnSetIndexRange;
|
||
|
VTFNUpdate *pfnUpdate;
|
||
|
VTFNEmptyTable *pfnEmptyTable;
|
||
|
} VTFNDEF;
|
||
|
|
||
|
|
||
|
/* The following entry points are to be used by VT providers */
|
||
|
/* in their VTFNDEF structures for any function that is not */
|
||
|
/* provided. This functions return JET_errIllegalOperation */
|
||
|
|
||
|
|
||
|
extern VTFNAddColumn ErrIllegalAddColumn;
|
||
|
extern VTFNCloseTable ErrIllegalCloseTable;
|
||
|
extern VTFNComputeStats ErrIllegalComputeStats;
|
||
|
extern VTFNCopyBookmarks ErrIllegalCopyBookmarks;
|
||
|
extern VTFNCreateIndex ErrIllegalCreateIndex;
|
||
|
extern VTFNCreateReference ErrIllegalCreateReference;
|
||
|
extern VTFNDelete ErrIllegalDelete;
|
||
|
extern VTFNDeleteColumn ErrIllegalDeleteColumn;
|
||
|
extern VTFNDeleteIndex ErrIllegalDeleteIndex;
|
||
|
extern VTFNDeleteReference ErrIllegalDeleteReference;
|
||
|
extern VTFNDupCursor ErrIllegalDupCursor;
|
||
|
extern VTFNEmptyTable ErrIllegalEmptyTable;
|
||
|
extern VTFNGetBookmark ErrIllegalGetBookmark;
|
||
|
extern VTFNGetChecksum ErrIllegalGetChecksum;
|
||
|
extern VTFNGetCurrentIndex ErrIllegalGetCurrentIndex;
|
||
|
extern VTFNGetCursorInfo ErrIllegalGetCursorInfo;
|
||
|
extern VTFNGetRecordPosition ErrIllegalGetRecordPosition;
|
||
|
extern VTFNGetTableColumnInfo ErrIllegalGetTableColumnInfo;
|
||
|
extern VTFNGetTableIndexInfo ErrIllegalGetTableIndexInfo;
|
||
|
extern VTFNGetTableInfo ErrIllegalGetTableInfo;
|
||
|
extern VTFNGetTableReferenceInfo ErrIllegalGetTableReferenceInfo;
|
||
|
extern VTFNGotoBookmark ErrIllegalGotoBookmark;
|
||
|
extern VTFNGotoPosition ErrIllegalGotoPosition;
|
||
|
extern VTFNVtIdle ErrIllegalVtIdle;
|
||
|
extern VTFNMakeKey ErrIllegalMakeKey;
|
||
|
extern VTFNMove ErrIllegalMove;
|
||
|
extern VTFNNotifyBeginTrans ErrIllegalNotifyBeginTrans;
|
||
|
extern VTFNNotifyCommitTrans ErrIllegalNotifyCommitTrans;
|
||
|
extern VTFNNotifyRollback ErrIllegalNotifyRollback;
|
||
|
extern VTFNNotifyUpdateUfn ErrIllegalNotifyUpdateUfn;
|
||
|
extern VTFNPrepareUpdate ErrIllegalPrepareUpdate;
|
||
|
extern VTFNRenameColumn ErrIllegalRenameColumn;
|
||
|
extern VTFNRenameIndex ErrIllegalRenameIndex;
|
||
|
extern VTFNRenameReference ErrIllegalRenameReference;
|
||
|
extern VTFNRetrieveColumn ErrIllegalRetrieveColumn;
|
||
|
extern VTFNRetrieveKey ErrIllegalRetrieveKey;
|
||
|
extern VTFNSeek ErrIllegalSeek;
|
||
|
extern VTFNSetCurrentIndex ErrIllegalSetCurrentIndex;
|
||
|
extern VTFNSetColumn ErrIllegalSetColumn;
|
||
|
extern VTFNSetIndexRange ErrIllegalSetIndexRange;
|
||
|
extern VTFNUpdate ErrIllegalUpdate;
|
||
|
|
||
|
#endif /* !VTAPI_H */
|