144 lines
3.8 KiB
C
144 lines
3.8 KiB
C
/************************************************************************
|
|
** D A O G E T R W . H *
|
|
** *
|
|
** GetRows interface *
|
|
** *
|
|
** Warning: The interface defined in this file is for internal use by *
|
|
** the Microsoft Foundation Classes and the dbdao C++ classes. *
|
|
** Future releases of DAO may not be completely compatible with this *
|
|
** implementation. However, if you write to the MFC or dbdao *
|
|
** classes that use this interface, those classes will continue to *
|
|
** be compatible even if this underlying interface changes. *
|
|
** *
|
|
*************************************************************************
|
|
** Copyright (C) 1995 by Microsoft Corporation *
|
|
** All Rights Reserved *
|
|
************************************************************************/
|
|
|
|
#if !defined (_DAOGETRW_H_)
|
|
#define _DAOGETRW_H_
|
|
|
|
|
|
/*
|
|
Enumerations
|
|
*/
|
|
typedef enum
|
|
{
|
|
DAOCOLKIND_IND = 0,
|
|
DAOCOLKIND_STR,
|
|
DAOCOLKIND_WSTR
|
|
} DAOCOLKIND;
|
|
|
|
typedef enum
|
|
{
|
|
DAO_I2 = 0,
|
|
DAO_I4,
|
|
DAO_R4,
|
|
DAO_R8,
|
|
DAO_CURRENCY,
|
|
DAO_DATE,
|
|
DAO_BOOL,
|
|
DAO_BSTR,
|
|
DAO_LPSTR,
|
|
DAO_LPWSTR,
|
|
DAO_BLOB,
|
|
DAO_BYTES,
|
|
DAO_CHAR,
|
|
DAO_WCHAR,
|
|
DAO_ANYVARIANT,
|
|
DAO_BOOKMARK,
|
|
DAO_BYTE,
|
|
DAO_GUID,
|
|
DAO_DATATYPEMAX
|
|
} DAODATATYPE;
|
|
|
|
/*
|
|
Macros
|
|
*/
|
|
#define DAO_NOINDICATOR 0xffffffff
|
|
#define DAO_NULL 0xffffffff
|
|
#define DAO_CANTCOERCE 0xfffffffc
|
|
#define DAO_NOMAXLENGTH 0x00000000
|
|
|
|
#define DAOROWFETCH_CALLEEALLOCATES 0x00000001
|
|
#define DAOROWFETCH_DONTADVANCE 0x00000002
|
|
#define DAOROWFETCH_FORCEREFRESH 0x00000004
|
|
#define DAOROWFETCH_BINDABSOLUTE 0x00000008
|
|
|
|
#define DAOBINDING_DIRECT 0x00000001
|
|
#define DAOBINDING_VARIANT 0x00000002
|
|
#define DAOBINDING_CALLBACK 0x00000004
|
|
|
|
/*
|
|
Structures
|
|
*/
|
|
typedef struct
|
|
{
|
|
DWORD dwKind;
|
|
union
|
|
{
|
|
LONG ind;
|
|
LPCSTR lpstr;
|
|
LPCWSTR lpwstr;
|
|
};
|
|
} DAOCOLUMNID;
|
|
typedef DAOCOLUMNID *LPDAOCOLUMNID;
|
|
|
|
// Callback for binding
|
|
EXTERN_C typedef HRESULT (STDAPICALLTYPE *LPDAOBINDFUNC)(ULONG cb, DWORD dwUser, LPVOID *ppData);
|
|
#define DAOBINDINGFUNC(f) STDAPI f (ULONG cb, DWORD dwUser, LPVOID *ppData)
|
|
|
|
typedef struct
|
|
{
|
|
DAOCOLUMNID columnID;
|
|
ULONG cbDataOffset;
|
|
ULONG cbMaxLen;
|
|
ULONG cbInfoOffset;
|
|
DWORD dwBinding;
|
|
DWORD dwDataType;
|
|
DWORD dwUser;
|
|
} DAOCOLUMNBINDING;
|
|
typedef DAOCOLUMNBINDING *LPDAOCOLUMNBINDING;
|
|
|
|
typedef struct
|
|
{
|
|
ULONG cRowsRequested;
|
|
DWORD dwFlags;
|
|
LPVOID pData;
|
|
LPVOID pVarData;
|
|
ULONG cbVarData;
|
|
ULONG cRowsReturned;
|
|
} DAOFETCHROWS;
|
|
typedef DAOFETCHROWS *LPDAOFETCHROWS;
|
|
|
|
/*
|
|
New Errors
|
|
|
|
**NOTE: OLE standard ids to be determined.
|
|
*/
|
|
|
|
#define GETROWSUCCESS(x) MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, x)
|
|
#define GETROWERR(x) MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, x)
|
|
|
|
#define S_BUFFERTOOSMALL GETROWSUCCESS(0x1000)
|
|
#define S_ENDOFCURSOR GETROWSUCCESS(0x1001)
|
|
#define S_SILENTCANCEL GETROWSUCCESS(0x1002)
|
|
#define S_RECORDDELETED GETROWSUCCESS(0x1003)
|
|
|
|
#define E_ROWTOOSHORT GETROWERR(0x1000)
|
|
#define E_BADBINDINFO GETROWERR(0x1001)
|
|
#define E_COLUMNUNAVAILABLE GETROWERR(0x1002)
|
|
|
|
|
|
/*
|
|
Interfaces
|
|
*/
|
|
#undef INTERFACE
|
|
#define INTERFACE ICDAORecordset
|
|
DECLARE_INTERFACE_(ICDAORecordset, IDispatch)
|
|
{
|
|
STDMETHOD(GetRows) (THIS_ LONG cRowsToSkip, LONG cCol, LPDAOCOLUMNBINDING prgBndCol, ULONG cbRowLen, LPDAOFETCHROWS pFetchRows) PURE;
|
|
};
|
|
|
|
#endif // _DAOGETRW_H_
|