daogetrw.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:5k
- /************************************************************************
- ** D A O G E T R W . H *
- ** *
- ** GetRows interface *
- ** *
- ** Warning: This file is copied from cdaost.h. Changes must be made *
- ** in both files *
- ** *
- ** *
- *************************************************************************
- ** Copyright (C) 1996 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 DAOROWFETCH_ODBCNEXT 0x00000010
- #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 S_BUFFERTOOSMALL MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x1000)
- #define S_ENDOFCURSOR MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x1001)
- #define S_SILENTCANCEL MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x1002)
- #define S_RECORDDELETED MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x1003)
- #define E_ROWTOOSHORT MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x1000)
- #define E_BADBINDINFO MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x1001)
- #define E_COLUMNUNAVAILABLE MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 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;
- STDMETHOD(SetNotify) (THIS_ REFIID riid, BOOL fNotify);
- STDMETHOD(GetNotify) (THIS_ REFIID riid, BOOL *fNotify);
- STDMETHOD(OnBeforeNotify) (THIS_ REFIID riid, DWORD cat, DWORD rsn, VARIANT v1, VARIANT v2);
- STDMETHOD(OnAfterNotify) (THIS_ REFIID riid, DWORD cat, DWORD rsn, VARIANT v1, VARIANT v2, HRESULT hr);
- STDMETHOD(PutLock) (THIS_ BOOL f);
- STDMETHOD(GetLock) (THIS_ BOOL *f);
- STDMETHOD(AddGetRowsErr) (THIS_ HRESULT hr) PURE;
- };
- //Get rows errors
- #define errVtoFetchBuffTooSmall -30028 //3640 The fetch buffer was too small for the amount of data you requested.
- #define errVtoEOFDuringFetch -30029 //3641 There are fewer records remaining in the recordset than you requested.
- #define errVtoSilentCancel -30030 //3642 A cancel was performed on the operation.
- #define errVtoRecordDeleted -30031 //3643 One of the records in the recordset was deleted by another process.
- #define errVtoRowLenTooSmall -30032 //3646 The specified row length is shorter than the sum of the column lengths.
- #define errVtoBadBindInfo -30033 //3645 One of the binding parameters is incorrect.
- #define errVtoColumnMissing -30034 //3647 A column requested is not being returned to the recordset.
- #endif // _DAOGETRW_H_