diff options
Diffstat (limited to 'public/sdk/inc/mfc42/daogetrw.h')
-rw-r--r-- | public/sdk/inc/mfc42/daogetrw.h | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/public/sdk/inc/mfc42/daogetrw.h b/public/sdk/inc/mfc42/daogetrw.h new file mode 100644 index 000000000..50f0ed369 --- /dev/null +++ b/public/sdk/inc/mfc42/daogetrw.h @@ -0,0 +1,143 @@ +/************************************************************************ +** 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_ |