daogetrw.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. #if !defined (_DAOGETRW_H_)
  7. #define _DAOGETRW_H_
  8. typedef enum {
  9. DAOCOLKIND_IND = 0,DAOCOLKIND_STR,DAOCOLKIND_WSTR
  10. } DAOCOLKIND;
  11. typedef enum {
  12. 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,
  13. DAO_BOOKMARK,DAO_BYTE,DAO_GUID,DAO_DATATYPEMAX
  14. } DAODATATYPE;
  15. #define DAO_NOINDICATOR 0xffffffff
  16. #define DAO_NULL 0xffffffff
  17. #define DAO_CANTCOERCE 0xfffffffc
  18. #define DAO_NOMAXLENGTH 0x00000000
  19. #define DAOROWFETCH_CALLEEALLOCATES 0x00000001
  20. #define DAOROWFETCH_DONTADVANCE 0x00000002
  21. #define DAOROWFETCH_FORCEREFRESH 0x00000004
  22. #define DAOROWFETCH_BINDABSOLUTE 0x00000008
  23. #define DAOROWFETCH_ODBCNEXT 0x00000010
  24. #define DAOBINDING_DIRECT 0x00000001
  25. #define DAOBINDING_VARIANT 0x00000002
  26. #define DAOBINDING_CALLBACK 0x00000004
  27. typedef struct {
  28. DWORD dwKind;
  29. union
  30. {
  31. LONG ind;
  32. LPCSTR lpstr;
  33. LPCWSTR lpwstr;
  34. };
  35. } DAOCOLUMNID;
  36. typedef DAOCOLUMNID *LPDAOCOLUMNID;
  37. #ifdef __cplusplus
  38. extern "C" {
  39. #endif
  40. typedef HRESULT (WINAPI *LPDAOBINDFUNC)(ULONG cb,DWORD dwUser,LPVOID *ppData);
  41. #ifdef __cplusplus
  42. }
  43. #endif
  44. #define DAOBINDINGFUNC(f) STDAPI f (ULONG cb,DWORD dwUser,LPVOID *ppData)
  45. typedef struct {
  46. DAOCOLUMNID columnID;
  47. ULONG cbDataOffset;
  48. ULONG cbMaxLen;
  49. ULONG cbInfoOffset;
  50. DWORD dwBinding;
  51. DWORD dwDataType;
  52. DWORD dwUser;
  53. } DAOCOLUMNBINDING;
  54. typedef DAOCOLUMNBINDING *LPDAOCOLUMNBINDING;
  55. typedef struct {
  56. ULONG cRowsRequested;
  57. DWORD dwFlags;
  58. LPVOID pData;
  59. LPVOID pVarData;
  60. ULONG cbVarData;
  61. ULONG cRowsReturned;
  62. } DAOFETCHROWS;
  63. typedef DAOFETCHROWS *LPDAOFETCHROWS;
  64. #define S_BUFFERTOOSMALL MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x1000)
  65. #define S_ENDOFCURSOR MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x1001)
  66. #define S_SILENTCANCEL MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x1002)
  67. #define S_RECORDDELETED MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x1003)
  68. #define E_ROWTOOSHORT MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x1000)
  69. #define E_BADBINDINFO MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x1001)
  70. #define E_COLUMNUNAVAILABLE MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x1002)
  71. #undef INTERFACE
  72. #define INTERFACE ICDAORecordset
  73. DECLARE_INTERFACE_(ICDAORecordset,IDispatch) {
  74. STDMETHOD(GetRows) (THIS_ LONG cRowsToSkip,LONG cCol,LPDAOCOLUMNBINDING prgBndCol,ULONG cbRowLen,LPDAOFETCHROWS pFetchRows) PURE;
  75. STDMETHOD(SetNotify) (THIS_ REFIID riid,WINBOOL fNotify);
  76. STDMETHOD(GetNotify) (THIS_ REFIID riid,WINBOOL *fNotify);
  77. STDMETHOD(OnBeforeNotify) (THIS_ REFIID riid,DWORD cat,DWORD rsn,VARIANT v1,VARIANT v2);
  78. STDMETHOD(OnAfterNotify) (THIS_ REFIID riid,DWORD cat,DWORD rsn,VARIANT v1,VARIANT v2,HRESULT hr);
  79. STDMETHOD(PutLock) (THIS_ WINBOOL f);
  80. STDMETHOD(GetLock) (THIS_ WINBOOL *f);
  81. STDMETHOD(AddGetRowsErr) (THIS_ HRESULT hr) PURE;
  82. };
  83. #define errVtoFetchBuffTooSmall -30028
  84. #define errVtoEOFDuringFetch -30029
  85. #define errVtoSilentCancel -30030
  86. #define errVtoRecordDeleted -30031
  87. #define errVtoRowLenTooSmall -30032
  88. #define errVtoBadBindInfo -30033
  89. #define errVtoColumnMissing -30034
  90. #endif