source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/icrsint.h@ 1167

Last change on this file since 1167 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 3.4 KB
Line 
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#ifndef _ICRSINT_H_
7#define _ICRSINT_H_
8
9#include <olectl.h>
10#include <stddef.h>
11
12class CADORecordBinding;
13
14#define classoffset(base,derived) ((DWORD_PTR)(static_cast<base*>((derived*)8))-8)
15
16enum ADOFieldStatusEnum {
17 adFldOK = 0,adFldBadAccessor = 1,adFldCantConvertValue = 2,adFldNull = 3,adFldTruncated = 4,adFldSignMismatch = 5,adFldDataOverFlow = 6,
18 adFldCantCreate = 7,adFldUnavailable = 8,adFldPermissionDenied = 9,adFldIntegrityViolation = 10,adFldSchemaViolation = 11,adFldBadStatus = 12,
19 adFldDefault = 13
20};
21
22typedef struct stADO_BINDING_ENTRY {
23 ULONG_PTR ulOrdinal;
24 WORD wDataType;
25 BYTE bPrecision;
26 BYTE bScale;
27 ULONG_PTR ulSize;
28 ULONG_PTR ulBufferOffset;
29 ULONG_PTR ulStatusOffset;
30 ULONG_PTR ulLengthOffset;
31 ULONG_PTR ulADORecordBindingOffSet;
32 WINBOOL fModify;
33} ADO_BINDING_ENTRY;
34
35#define BEGIN_ADO_BINDING(cls) public: typedef cls ADORowClass; \
36 const ADO_BINDING_ENTRY *WINAPI GetADOBindingEntries() { static const ADO_BINDING_ENTRY rgADOBindingEntries[] = {
37#define ADO_FIXED_LENGTH_ENTRY(Ordinal,DataType,Buffer,Status,Modify) {Ordinal,DataType,0,0,0,offsetof(ADORowClass,Buffer),offsetof(ADORowClass,Status),0,classoffset(CADORecordBinding,ADORowClass),Modify},
38#define ADO_FIXED_LENGTH_ENTRY2(Ordinal,DataType,Buffer,Modify) {Ordinal,DataType,0,0,0,offsetof(ADORowClass,Buffer),0,0,classoffset(CADORecordBinding,ADORowClass),Modify},
39#define ADO_NUMERIC_ENTRY(Ordinal,DataType,Buffer,Precision,Scale,Status,Modify) {Ordinal,DataType,Precision,Scale,0,offsetof(ADORowClass,Buffer),offsetof(ADORowClass,Status),0,classoffset(CADORecordBinding,ADORowClass),Modify},
40#define ADO_NUMERIC_ENTRY2(Ordinal,DataType,Buffer,Precision,Scale,Modify) {Ordinal,DataType,Precision,Scale,0,offsetof(ADORowClass,Buffer),0,0,classoffset(CADORecordBinding,ADORowClass),Modify},
41#define ADO_VARIABLE_LENGTH_ENTRY(Ordinal,DataType,Buffer,Size,Status,Length,Modify) {Ordinal,DataType,0,0,Size,offsetof(ADORowClass,Buffer),offsetof(ADORowClass,Status),offsetof(ADORowClass,Length),classoffset(CADORecordBinding,ADORowClass),Modify},
42#define ADO_VARIABLE_LENGTH_ENTRY2(Ordinal,DataType,Buffer,Size,Status,Modify) {Ordinal,DataType,0,0,Size,offsetof(ADORowClass,Buffer),offsetof(ADORowClass,Status),0,classoffset(CADORecordBinding,ADORowClass),Modify},
43#define ADO_VARIABLE_LENGTH_ENTRY3(Ordinal,DataType,Buffer,Size,Length,Modify) {Ordinal,DataType,0,0,Size,offsetof(ADORowClass,Buffer),0,offsetof(ADORowClass,Length),classoffset(CADORecordBinding,ADORowClass),Modify},
44#define ADO_VARIABLE_LENGTH_ENTRY4(Ordinal,DataType,Buffer,Size,Modify) {Ordinal,DataType,0,0,Size,offsetof(ADORowClass,Buffer),0,0,classoffset(CADORecordBinding,ADORowClass),Modify},
45#define END_ADO_BINDING() {0,adEmpty,0,0,0,0,0,0,0,FALSE}}; return rgADOBindingEntries;}
46
47class CADORecordBinding {
48public:
49 STDMETHOD_(const ADO_BINDING_ENTRY*,GetADOBindingEntries) (VOID) PURE;
50};
51
52struct __declspec(uuid("00000544-0000-0010-8000-00aa006d2ea4")) IADORecordBinding;
53DECLARE_INTERFACE_(IADORecordBinding,IUnknown) {
54public:
55 STDMETHOD(BindToRecordset) (CADORecordBinding *pAdoRecordBinding) PURE;
56 STDMETHOD(AddNew) (CADORecordBinding *pAdoRecordBinding) PURE;
57 STDMETHOD(Update) (CADORecordBinding *pAdoRecordBinding) PURE;
58};
59#endif
Note: See TracBrowser for help on using the repository browser.