📄 ocdb.h
字号:
/*=--------------------------------------------------------------------------=
* ocdb.h
*=--------------------------------------------------------------------------=
* defines the interfaces and constants for use with the OLE Controls Data
* binding interfaces.
*
* Copyright (c) 1994-1998 Microsoft Corporation, All Rights Reserved.
*
*
*
*/
#ifndef __OCDB_H_
#undef Delete
#ifdef __cplusplus
extern "C" {
#endif
/* LPDBSTRs are MultiByte in 16bits, and Unicode in 32bits.
*/
#if defined(_WIN32) && !defined(OLE2ANSI)
#define LPDBSTR LPWSTR
#define DBCHAR WCHAR
#define ldbstrlen(str) wcslen(str)
#define ldbstrcpy(a, b) wcscpy((a), (b))
#define ldbstrcpyn(a,b,n) wcsncpy((a), (b), (n))
#define ldbstrcmp(a, b) wcscmp((a), (b))
#define ldbstrcat(a, b) wcscat((a), (b))
#define ldbstrcmpi(a,b) wcsicmp((a),(b))
#define DBTEXT(quote) L##quote
#else
#define LPDBSTR LPSTR
#define DBCHAR char
#define ldbstrlen(str) lstrlen(str)
#define ldbstrcpy(a, b) lstrcpy((a), (b))
#define ldbstrcpyn(a,b,n) lstrcpyn((a), (b), (n))
#define ldbstrcmp(a, b) lstrcmp((a), (b))
#define ldbstrcat(a, b) lstrcat((a), (b))
#define ldbstrcmpi(a,b) lstrcmpi((a),(b))
#define DBTEXT(quote) quote
#endif /* _WIN32 && !OLE2ANSI */
typedef LPDBSTR FAR * LPLPDBSTR;
/* Many systems don't have BLOBs defined.
*/
#ifndef _tagBLOB_DEFINED
#define _tagBLOB_DEFINED
#define _BLOB_DEFINED
#define _LPBLOB_DEFINED
typedef struct tagBLOB {
ULONG cbSize;
BYTE *pBlobData;
} BLOB, *LPBLOB;
#endif
/*----------------------------------------------------------------------------
*
* dbvar.h
*
*----------------------------------------------------------------------------
*/
#ifndef _DBCOLUMNID_DEFINED
#define _DBCOLUMNID_DEFINED
typedef enum tagDBCOLKIND
{
DBCOLKIND_GUID_NAME = 0,
DBCOLKIND_GUID_NUMBER = 1,
DBCOLKIND_NAME = 2
}
DBCOLKIND;
#define GUID_NAMEONLY {0x88c8d398,0x863c,0x101b,{0xac,0x3b,0x00,0xaa,0x00,0x44,0x77,0x3d}}
#define GUID_NUMBERONLY {0x88c8d399,0x863c,0x101b,{0xac,0x3b,0x00,0xaa,0x00,0x44,0x77,0x3d}}
typedef struct tagDBCOLUMNID
{
GUID guid;
DBCOLKIND dwKind;
union
{
LONG lNumber;
LPDBSTR lpdbsz;
}
;
}
DBCOLUMNID;
#endif /* ndef _COLUMNID_DEFINED */
#ifdef OLD_DEFS
#ifndef _DBVARENUM_DEFINED
#define _DBVARENUM_DEFINED
enum DBVARENUM
{
DBTYPE_EMPTY = 0,
DBTYPE_NULL = 1,
DBTYPE_I2 = 2,
DBTYPE_I4 = 3,
DBTYPE_R4 = 4,
DBTYPE_R8 = 5,
DBTYPE_CY = 6,
DBTYPE_DATE = 7,
DBTYPE_BOOL = 11,
DBTYPE_UI2 = 18,
DBTYPE_UI4 = 19,
DBTYPE_I8 = 20,
DBTYPE_UI8 = 21,
DBTYPE_HRESULT = 25,
DBTYPE_LPSTR = 30,
DBTYPE_LPWSTR = 31,
DBTYPE_FILETIME = 64,
DBTYPE_BLOB = 65,
DBTYPE_UUID = 72,
DBTYPE_DBEXPR = 503,
DBTYPE_COLUMNID = 507,
DBTYPE_BYTES = 508,
DBTYPE_CHARS = 509,
DBTYPE_WCHARS = 510,
DBTYPE_ANYVARIANT = 511
}
;
#endif /* ndef _DBVARENUM_DEFINED */
#else
#define DBTYPE_COLUMNID 507
#endif
#define DBTYPE_EXT 0x100
typedef struct tagDBVARIANT DBVARIANT;
struct FARSTRUCT tagDBVARIANT{
VARTYPE vt;
unsigned short wReserved1;
unsigned short wReserved2;
unsigned short wReserved3;
union {
unsigned char bVal; /* VT_UI1 */
short iVal; /* VT_I2 */
long lVal; /* VT_I4 */
float fltVal; /* VT_R4 */
double dblVal; /* VT_R8 */
VARIANT_BOOL xbool; /* VT_BOOL */
SCODE scode; /* VT_ERROR */
CY cyVal; /* VT_CY */
DATE date; /* VT_DATE */
BSTR bstrVal; /* VT_BSTR */
IUnknown FAR* punkVal; /* VT_UNKNOWN */
IDispatch FAR* pdispVal; /* VT_DISPATCH */
SAFEARRAY FAR* parray; /* VT_ARRAY|* */
unsigned char FAR *pbVal; /* VT_BYREF|VT_UI1 */
short FAR* piVal; /* VT_BYREF|VT_I2 */
long FAR* plVal; /* VT_BYREF|VT_I4 */
float FAR* pfltVal; /* VT_BYREF|VT_R4 */
double FAR* pdblVal; /* VT_BYREF|VT_R8 */
VARIANT_BOOL FAR* pbool; /* VT_BYREF|VT_BOOL */
SCODE FAR* pscode; /* VT_BYREF|VT_ERROR */
CY FAR* pcyVal; /* VT_BYREF|VT_CY */
DATE FAR* pdate; /* VT_BYREF|VT_DATE */
BSTR FAR* pbstrVal; /* VT_BYREF|VT_BSTR */
IUnknown FAR* FAR* ppunkVal; /* VT_BYREF|VT_UNKNOWN */
IDispatch FAR* FAR* ppdispVal; /* VT_BYREF|VT_DISPATCH */
SAFEARRAY FAR* FAR* pparray; /* VT_BYREF|VT_ARRAY|* */
VARIANT FAR* pvarVal; /* VT_BYREF|VT_VARIANT */
void FAR* byref; /* Generic ByRef */
// types new to DBVARIANTs
//
BLOB blob; /* VT_BLOB */
DBCOLUMNID *pColumnid; /* DBTYPE_COLUMNID */
LPSTR pszVal; /* VT_LPSTR */
#ifdef WIN32
LPWSTR pwszVal; /* VT_LPWSTR */
LPWSTR FAR *ppwszVal; /* VT_LPWSTR|VT_BYREF */
#endif /* WIN32 */
BLOB FAR *pblob; /* VT_BYREF|VT_BLOB */
DBCOLUMNID **ppColumnid; /* VT_BYREF|DBTYPE_COLID*/
DBVARIANT *pdbvarVal; /* VT_BYREF|DBTYPE_VARIANT */
}
#if defined(NONAMELESSUNION) || (defined(_MAC) && !defined(__cplusplus) && !defined(_MSC_VER))
u
#endif
;
};
/*----------------------------------------------------------------------------
*
* dbs.h
*
*----------------------------------------------------------------------------
*/
typedef enum tagDBROWFETCH
{
DBROWFETCH_DEFAULT = 0,
DBROWFETCH_CALLEEALLOCATES = 1,
DBROWFETCH_FORCEREFRESH = 2
}
DBROWFETCH;
typedef struct tagDBFETCHROWS
{
ULONG cRowsRequested;
DWORD dwFlags;
VOID HUGEP *pData;
VOID HUGEP *pVarData;
ULONG cbVarData;
ULONG cRowsReturned;
}
DBFETCHROWS;
#define DB_NOMAXLENGTH (DWORD)0
#define DB_NOVALUE (DWORD)0xFFFFFFFF
#define DB_NULL (DWORD)0xFFFFFFFF
#define DB_EMPTY (DWORD)0xFFFFFFFE
#define DB_USEENTRYID (DWORD)0xFFFFFFFD
#define DB_CANTCOERCE (DWORD)0xFFFFFFFC
#define DB_TRUNCATED (DWORD)0xFFFFFFFB
#define DB_UNKNOWN (DWORD)0xFFFFFFFA
#define DB_NOINFO (DWORD)0xFFFFFFF9
#ifdef OLD_DEFS
typedef enum tagDBBINDING
{
DBBINDING_DEFAULT = 0,
DBBINDING_VARIANT = 1,
DBBINDING_ENTRYID = 2
}
DBBINDING;
#else
typedef enum _DBBINDING
{
DBBINDING_DEFAULT = 0,
DBBINDING_VARIANT = 1,
DBBINDING_ENTRYID = 2
}
_DBBINDING;
#endif
typedef enum tagDBBINDTYPE
{
DBBINDTYPE_DATA = 0,
DBBINDTYPE_ENTRYID = 1,
DBBDINTYPE_EITHER = 2,
DBBINDTYPE_BOTH = 3
}
DBBINDTYPE;
typedef struct tagDBCOLUMNBINDING
{
DBCOLUMNID columnID;
ULONG obData;
ULONG cbMaxLen;
ULONG obVarDataLen;
ULONG obInfo;
DWORD dwBinding;
DWORD dwDataType;
}
DBCOLUMNBINDING;
typedef struct tagDBBINDPARAMS
{
ULONG cbMaxLen;
DWORD dwBinding;
DWORD dwDataType;
ULONG cbVarDataLen;
DWORD dwInfo;
void *pData;
}
DBBINDPARAMS;
#define CID_NUMBER_INVALID -1
#define CID_NUMBER_AUTOINCREMENT 0
#define CID_NUMBER_BASECOLUMNNAME 1
#define CID_NUMBER_BASENAME 2
#define CID_NUMBER_BINARYCOMPARABLE 3
#define CID_NUMBER_BINDTYPE 4
#define CID_NUMBER_CASESENSITIVE 5
#define CID_NUMBER_COLLATINGORDER 6
#define CID_NUMBER_COLUMNID 7
#define CID_NUMBER_CURSORCOLUMN 8
#define CID_NUMBER_DATACOLUMN 9
#define CID_NUMBER_DEFAULTVALUE 10
#define CID_NUMBER_ENTRYIDMAXLENGTH 11
#define CID_NUMBER_FIXED 12
#define CID_NUMBER_HASDEFAULT 13
#define CID_NUMBER_MAXLENGTH 14
#define CID_NUMBER_MULTIVALUED 15
#define CID_NUMBER_NAME 16
#define CID_NUMBER_NULLABLE 17
#define CID_NUMBER_PHYSICALSORT 18
#define CID_NUMBER_NUMBER 19
#define CID_NUMBER_ROWENTRYID 20
#define CID_NUMBER_SCALE 21
#define CID_NUMBER_SEARCHABLE 22
#define CID_NUMBER_TYPE 23
#define CID_NUMBER_UNIQUE 24
#define CID_NUMBER_UPDATABLE 25
#define CID_NUMBER_VERSION 26
#define CID_NUMBER_STATUS 27
/* c and C++ have different meanings for const.
*/
#ifdef __cplusplus
#define EXTERNAL_DEFN extern const
#else
#define EXTERNAL_DEFN const
#endif /* __cplusplus */
#define _DBCIDGUID {0xfe284700L,0xd188,0x11cd,{0xad,0x48, 0x0,0xaa, 0x0,0x3c,0x9c,0xb6}}
#ifdef DBINITCONSTANTS
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMNID_INVALID = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, -1};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_AUTOINCREMENT = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 0};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_BASECOLUMNNAME = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 1};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_BASENAME = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 2};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_BINARYCOMPARABLE = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 3};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_BINDTYPE = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 4};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_CASESENSITIVE = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 5};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_COLLATINGORDER = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 6};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_COLUMNID = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 7};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_CURSORCOLUMN = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 8};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_DATACOLUMN = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 9};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_DEFAULTVALUE = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 10};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_ENTRYIDMAXLENGTH = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 11};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_FIXED = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 12};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_HASDEFAULT = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 13};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_MAXLENGTH = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 14};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_MULTIVALUED = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 15};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_NAME = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 16};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_NULLABLE = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 17};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_PHYSICALSORT = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 18};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_NUMBER = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 19};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_ROWENTRYID = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 20};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_SCALE = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 21};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_SEARCHABLE = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 22};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_TYPE = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 23};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_UNIQUE = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 24};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_UPDATABLE = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 25};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_VERSION = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 26};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_STATUS = {_DBCIDGUID, DBCOLKIND_GUID_NUMBER, 27};
#else
extern const DBCOLUMNID NEAR COLUMNID_INVALID;
extern const DBCOLUMNID NEAR COLUMN_AUTOINCREMENT;
extern const DBCOLUMNID NEAR COLUMN_BASECOLUMNNAME;
extern const DBCOLUMNID NEAR COLUMN_BASENAME;
extern const DBCOLUMNID NEAR COLUMN_BINARYCOMPARABLE;
extern const DBCOLUMNID NEAR COLUMN_BINDTYPE;
extern const DBCOLUMNID NEAR COLUMN_CASESENSITIVE;
extern const DBCOLUMNID NEAR COLUMN_COLLATINGORDER;
extern const DBCOLUMNID NEAR COLUMN_COLUMNID;
extern const DBCOLUMNID NEAR COLUMN_CURSORCOLUMN;
extern const DBCOLUMNID NEAR COLUMN_DATACOLUMN;
extern const DBCOLUMNID NEAR COLUMN_DEFAULTVALUE;
extern const DBCOLUMNID NEAR COLUMN_ENTRYIDMAXLENGTH;
extern const DBCOLUMNID NEAR COLUMN_FIXED;
extern const DBCOLUMNID NEAR COLUMN_HASDEFAULT;
extern const DBCOLUMNID NEAR COLUMN_MAXLENGTH;
extern const DBCOLUMNID NEAR COLUMN_MULTIVALUED;
extern const DBCOLUMNID NEAR COLUMN_NAME;
extern const DBCOLUMNID NEAR COLUMN_NULLABLE;
extern const DBCOLUMNID NEAR COLUMN_PHYSICALSORT;
extern const DBCOLUMNID NEAR COLUMN_NUMBER;
extern const DBCOLUMNID NEAR COLUMN_ROWENTRYID;
extern const DBCOLUMNID NEAR COLUMN_SCALE;
extern const DBCOLUMNID NEAR COLUMN_SEARCHABLE;
extern const DBCOLUMNID NEAR COLUMN_TYPE;
extern const DBCOLUMNID NEAR COLUMN_UNIQUE;
extern const DBCOLUMNID NEAR COLUMN_UPDATABLE;
extern const DBCOLUMNID NEAR COLUMN_VERSION;
extern const DBCOLUMNID NEAR COLUMN_STATUS;
#endif
#define BMK_NUMBER_BMKTEMPORARY 0
#define BMK_NUMBER_BMKTEMPORARYREL 1
#define BMK_NUMBER_BMKCURSOR 2
#define BMK_NUMBER_BMKCURSORREL 3
#define BMK_NUMBER_BMKSESSION 4
#define BMK_NUMBER_BMKSESSIONREL 5
#define BMK_NUMBER_BMKPERSIST 6
#define BMK_NUMBER_BMKPERSISTREL 7
#define DBBMKGUID {0xf6304bb0L,0xd188,0x11cd,{0xad,0x48, 0x0,0xaa, 0x0,0x3c,0x9c,0xb6}}
#ifdef DBINITCONSTANTS
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_BMKTEMPORARY = {DBBMKGUID, DBCOLKIND_GUID_NUMBER, 0};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_BMKTEMPORARYREL = {DBBMKGUID, DBCOLKIND_GUID_NUMBER, 1};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_BMKCURSOR = {DBBMKGUID, DBCOLKIND_GUID_NUMBER, 2};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_BMKCURSORREL = {DBBMKGUID, DBCOLKIND_GUID_NUMBER, 3};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_BMKSESSION = {DBBMKGUID, DBCOLKIND_GUID_NUMBER, 4};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_BMKSESSIONREL = {DBBMKGUID, DBCOLKIND_GUID_NUMBER, 5};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_BMKPERSIST = {DBBMKGUID, DBCOLKIND_GUID_NUMBER, 6};
EXTERNAL_DEFN DBCOLUMNID NEAR COLUMN_BMKPERSISTREL = {DBBMKGUID, DBCOLKIND_GUID_NUMBER, 7};
#else
extern const DBCOLUMNID NEAR COLUMN_BMKINVALID;
extern const DBCOLUMNID NEAR COLUMN_BMKTEMPORARY;
extern const DBCOLUMNID NEAR COLUMN_BMKTEMPORARYREL;
extern const DBCOLUMNID NEAR COLUMN_BMKCURSOR;
extern const DBCOLUMNID NEAR COLUMN_BMKCURSORREL;
extern const DBCOLUMNID NEAR COLUMN_BMKSESSION;
extern const DBCOLUMNID NEAR COLUMN_BMKSESSIONREL;
extern const DBCOLUMNID NEAR COLUMN_BMKPERSIST;
extern const DBCOLUMNID NEAR COLUMN_BMKPERSISTREL;
#endif
#define DB_BMK_SIZE sizeof(BYTE)
#ifdef DBINITCONSTANTS
#ifdef OLD_DEFS
EXTERNAL_DEFN BYTE NEAR DBBMK_INVALID = 0x0;
#endif
EXTERNAL_DEFN BYTE NEAR DBBMK_CURRENT = 0x1;
EXTERNAL_DEFN BYTE NEAR DBBMK_BEGINNING = 0x2;
EXTERNAL_DEFN BYTE NEAR DBBMK_END = 0x3;
#else
#ifdef OLD_DEFS
extern const BYTE NEAR DBBMK_INVALID;
#endif
extern const BYTE NEAR DBBMK_CURRENT;
extern const BYTE NEAR DBBMK_BEGINNING;
extern const BYTE NEAR DBBMK_END;
#endif
typedef enum tagDBCOLUMNBINDOPTS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -