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 _MSDASQL_H_
7 #define _MSDASQL_H_
8 
9 #undef MSDASQLDECLSPEC
10 #define MSDASQLDECLSPEC __declspec(selectany)
11 
12 #ifdef DBINITCONSTANTS
13 extern const MSDASQLDECLSPEC GUID IID_ISQLRequestDiagFields = { 0x228972f0,0xb5ff,0x11d0,{ 0x8a,0x80,0x0,0xc0,0x4f,0xd6,0x11,0xcd } };
14 extern const MSDASQLDECLSPEC GUID IID_ISQLGetDiagField = { 0x228972f1,0xb5ff,0x11d0,{ 0x8a,0x80,0x0,0xc0,0x4f,0xd6,0x11,0xcd } };
15 extern const MSDASQLDECLSPEC GUID IID_IRowsetChangeExtInfo = {0x0C733A8F,0x2A1C,0x11CE,{0xAD,0xE5,0x00,0xAA,0x00,0x44,0x77,0x3D}};
16 extern const MSDASQLDECLSPEC GUID CLSID_MSDASQL = {0xC8B522CB,0x5CF3,0x11CE,{0xAD,0xE5,0x00,0xAA,0x00,0x44,0x77,0x3D}};
17 extern const MSDASQLDECLSPEC GUID CLSID_MSDASQL_ENUMERATOR = {0xC8B522CD,0x5CF3,0x11CE,{0xAD,0xE5,0x00,0xAA,0x00,0x44,0x77,0x3D}};
18 #else
19 extern const GUID IID_ISQLRequestDiagFields;
20 extern const GUID IID_ISQLGetDiagField;
21 extern const GUID IID_IRowsetChangeExtInfo;
22 extern const GUID CLSID_MSDASQL;
23 extern const GUID CLSID_MSDASQL_ENUMERATOR;
24 #endif
25 
26 #ifdef DBINITCONSTANTS
27 extern const MSDASQLDECLSPEC GUID DBPROPSET_PROVIDERDATASOURCEINFO = {0x497c60e0,0x7123,0x11cf,{0xb1,0x71,0x0,0xaa,0x0,0x57,0x59,0x9e}};
28 extern const MSDASQLDECLSPEC GUID DBPROPSET_PROVIDERROWSET = {0x497c60e1,0x7123,0x11cf,{0xb1,0x71,0x0,0xaa,0x0,0x57,0x59,0x9e}};
29 extern const MSDASQLDECLSPEC GUID DBPROPSET_PROVIDERDBINIT = {0x497c60e2,0x7123,0x11cf,{0xb1,0x71,0x0,0xaa,0x0,0x57,0x59,0x9e}};
30 extern const MSDASQLDECLSPEC GUID DBPROPSET_PROVIDERSTMTATTR = {0x497c60e3,0x7123,0x11cf,{0xb1,0x71,0x0,0xaa,0x0,0x57,0x59,0x9e}};
31 extern const MSDASQLDECLSPEC GUID DBPROPSET_PROVIDERCONNATTR = {0x497c60e4,0x7123,0x11cf,{0xb1,0x71,0x0,0xaa,0x0,0x57,0x59,0x9e}};
32 #else
33 extern const GUID DBPROPSET_PROVIDERDATASOURCEINFO;
34 extern const GUID DBPROPSET_PROVIDERROWSET;
35 extern const GUID DBPROPSET_PROVIDERDBINIT;
36 extern const GUID DBPROPSET_PROVIDERSTMTATTR;
37 extern const GUID DBPROPSET_PROVIDERCONNATTR;
38 #endif
39 
40 #define KAGPROP_QUERYBASEDUPDATES 2
41 #define KAGPROP_MARSHALLABLE 3
42 #define KAGPROP_POSITIONONNEWROW 4
43 #define KAGPROP_IRowsetChangeExtInfo 5
44 #define KAGPROP_CURSOR 6
45 #define KAGPROP_CONCURRENCY 7
46 #define KAGPROP_BLOBSONFOCURSOR 8
47 #define KAGPROP_INCLUDENONEXACT 9
48 #define KAGPROP_FORCESSFIREHOSEMODE 10
49 #define KAGPROP_FORCENOPARAMETERREBIND 11
50 #define KAGPROP_FORCENOPREPARE 12
51 #define KAGPROP_FORCENOREEXECUTE 13
52 
53 #define KAGPROP_ACCESSIBLEPROCEDURES 2
54 #define KAGPROP_ACCESSIBLETABLES 3
55 #define KAGPROP_ODBCSQLOPTIEF 4
56 #define KAGPROP_OJCAPABILITY 5
57 #define KAGPROP_PROCEDURES 6
58 #define KAGPROP_DRIVERNAME 7
59 #define KAGPROP_DRIVERVER 8
60 #define KAGPROP_DRIVERODBCVER 9
61 #define KAGPROP_LIKEESCAPECLAUSE 10
62 #define KAGPROP_SPECIALCHARACTERS 11
63 #define KAGPROP_MAXCOLUMNSINGROUPBY 12
64 #define KAGPROP_MAXCOLUMNSININDEX 13
65 #define KAGPROP_MAXCOLUMNSINORDERBY 14
66 #define KAGPROP_MAXCOLUMNSINSELECT 15
67 #define KAGPROP_MAXCOLUMNSINTABLE 16
68 #define KAGPROP_NUMERICFUNCTIONS 17
69 #define KAGPROP_ODBCSQLCONFORMANCE 18
70 #define KAGPROP_OUTERJOINS 19
71 #define KAGPROP_STRINGFUNCTIONS 20
72 #define KAGPROP_SYSTEMFUNCTIONS 21
73 #define KAGPROP_TIMEDATEFUNCTIONS 22
74 #define KAGPROP_FILEUSAGE 23
75 #define KAGPROP_ACTIVESTATEMENTS 24
76 
77 #define KAGPROP_AUTH_TRUSTEDCONNECTION 2
78 #define KAGPROP_AUTH_SERVERINTEGRATED 3
79 
80 #define KAGPROPVAL_CONCUR_ROWVER 0x00000001
81 #define KAGPROPVAL_CONCUR_VALUES 0x00000002
82 #define KAGPROPVAL_CONCUR_LOCK 0x00000004
83 #define KAGPROPVAL_CONCUR_READ_ONLY 0x00000008
84 
85 #ifndef __REQUIRED_RPCNDR_H_VERSION__
86 #define __REQUIRED_RPCNDR_H_VERSION__ 440
87 #endif
88 
89 #include "rpc.h"
90 #include "rpcndr.h"
91 
92 #ifndef __RPCNDR_H_VERSION__
93 #error This stub requires an updated version of <rpcndr.h>
94 #endif
95 
96 #ifndef COM_NO_WINDOWS_H
97 #include "windows.h"
98 #include "ole2.h"
99 #endif
100 
101 #ifndef __rstcei_h__
102 #define __rstcei_h__
103 
104 #ifndef __IRowsetChangeExtInfo_FWD_DEFINED__
105 #define __IRowsetChangeExtInfo_FWD_DEFINED__
106 typedef struct IRowsetChangeExtInfo IRowsetChangeExtInfo;
107 #endif
108 
109 #include "oledb.h"
110 
111 #ifdef __cplusplus
112 extern "C" {
113 #endif
114 
115 #ifndef __MIDL_user_allocate_free_DEFINED__
116 #define __MIDL_user_allocate_free_DEFINED__
117   void *__RPC_API MIDL_user_allocate(size_t);
118   void __RPC_API MIDL_user_free(void *);
119 #endif
120 
121 #ifndef __IRowsetChangeExtInfo_INTERFACE_DEFINED__
122 #define __IRowsetChangeExtInfo_INTERFACE_DEFINED__
123 
124   EXTERN_C const IID IID_IRowsetChangeExtInfo;
125 #if defined(__cplusplus) && !defined(CINTERFACE)
126   struct IRowsetChangeExtInfo : public IUnknown {
127   public:
128     virtual HRESULT WINAPI GetOriginalRow(HCHAPTER hReserved,HROW hRow,HROW *phRowOriginal) = 0;
129     virtual HRESULT WINAPI GetPendingColumns(HCHAPTER hReserved,HROW hRow,ULONG cColumnOrdinals,const ULONG rgiOrdinals[],DBPENDINGSTATUS rgColumnStatus[]) = 0;
130   };
131 #else
132   typedef struct IRowsetChangeExtInfoVtbl {
133     BEGIN_INTERFACE
134       HRESULT (WINAPI *QueryInterface)(IRowsetChangeExtInfo *This,REFIID riid,void **ppvObject);
135       ULONG (WINAPI *AddRef)(IRowsetChangeExtInfo *This);
136       ULONG (WINAPI *Release)(IRowsetChangeExtInfo *This);
137       HRESULT (WINAPI *GetOriginalRow)(IRowsetChangeExtInfo *This,HCHAPTER hReserved,HROW hRow,HROW *phRowOriginal);
138       HRESULT (WINAPI *GetPendingColumns)(IRowsetChangeExtInfo *This,HCHAPTER hReserved,HROW hRow,ULONG cColumnOrdinals,const ULONG rgiOrdinals[],DBPENDINGSTATUS rgColumnStatus[]);
139     END_INTERFACE
140   } IRowsetChangeExtInfoVtbl;
141   struct IRowsetChangeExtInfo {
142     CONST_VTBL struct IRowsetChangeExtInfoVtbl *lpVtbl;
143   };
144 #ifdef COBJMACROS
145 #define IRowsetChangeExtInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
146 #define IRowsetChangeExtInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
147 #define IRowsetChangeExtInfo_Release(This) (This)->lpVtbl->Release(This)
148 #define IRowsetChangeExtInfo_GetOriginalRow(This,hReserved,hRow,phRowOriginal) (This)->lpVtbl->GetOriginalRow(This,hReserved,hRow,phRowOriginal)
149 #define IRowsetChangeExtInfo_GetPendingColumns(This,hReserved,hRow,cColumnOrdinals,rgiOrdinals,rgColumnStatus) (This)->lpVtbl->GetPendingColumns(This,hReserved,hRow,cColumnOrdinals,rgiOrdinals,rgColumnStatus)
150 #endif
151 #endif
152   HRESULT WINAPI IRowsetChangeExtInfo_GetOriginalRow_Proxy(IRowsetChangeExtInfo *This,HCHAPTER hReserved,HROW hRow,HROW *phRowOriginal);
153   void __RPC_STUB IRowsetChangeExtInfo_GetOriginalRow_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
154   HRESULT WINAPI IRowsetChangeExtInfo_GetPendingColumns_Proxy(IRowsetChangeExtInfo *This,HCHAPTER hReserved,HROW hRow,ULONG cColumnOrdinals,const ULONG rgiOrdinals[],DBPENDINGSTATUS rgColumnStatus[]);
155   void __RPC_STUB IRowsetChangeExtInfo_GetPendingColumns_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
156 #endif
157 
158 #ifdef __cplusplus
159 }
160 #endif
161 #endif
162 
163 #ifndef __REQUIRED_RPCNDR_H_VERSION__
164 #define __REQUIRED_RPCNDR_H_VERSION__ 440
165 #endif
166 
167 #include "rpc.h"
168 #include "rpcndr.h"
169 
170 #ifndef __RPCNDR_H_VERSION__
171 #error This stub requires an updated version of <rpcndr.h>
172 #endif
173 
174 #ifndef COM_NO_WINDOWS_H
175 #include "windows.h"
176 #include "ole2.h"
177 #endif
178 
179 #ifndef __kagdiag_h__
180 #define __kagdiag_h__
181 
182 #ifndef __ISQLRequestDiagFields_FWD_DEFINED__
183 #define __ISQLRequestDiagFields_FWD_DEFINED__
184 typedef struct ISQLRequestDiagFields ISQLRequestDiagFields;
185 #endif
186 
187 #ifndef __ISQLGetDiagField_FWD_DEFINED__
188 #define __ISQLGetDiagField_FWD_DEFINED__
189 typedef struct ISQLGetDiagField ISQLGetDiagField;
190 #endif
191 
192 #include "unknwn.h"
193 #include "oaidl.h"
194 
195 #ifdef __cplusplus
196 extern "C" {
197 #endif
198 
199 #ifndef __MIDL_user_allocate_free_DEFINED__
200 #define __MIDL_user_allocate_free_DEFINED__
201   void *__RPC_API MIDL_user_allocate(size_t);
202   void __RPC_API MIDL_user_free(void *);
203 #endif
204 
205   enum KAGREQDIAGFLAGSENUM {
206     KAGREQDIAGFLAGS_HEADER = 0x1,KAGREQDIAGFLAGS_RECORD = 0x2
207   };
208 
209   typedef struct tagKAGREQDIAG {
210     ULONG ulDiagFlags;
211     VARTYPE vt;
212     SHORT sDiagField;
213   } KAGREQDIAG;
214 
215   typedef struct tagKAGGETDIAG {
216     ULONG ulSize;
217     VARIANTARG vDiagInfo;
218     SHORT sDiagField;
219   } KAGGETDIAG;
220 
221   extern RPC_IF_HANDLE __MIDL_itf_kagdiag_0000_v0_0_c_ifspec;
222   extern RPC_IF_HANDLE __MIDL_itf_kagdiag_0000_v0_0_s_ifspec;
223 
224 #ifndef __ISQLRequestDiagFields_INTERFACE_DEFINED__
225 #define __ISQLRequestDiagFields_INTERFACE_DEFINED__
226   EXTERN_C const IID IID_ISQLRequestDiagFields;
227 #if defined(__cplusplus) && !defined(CINTERFACE)
228   struct ISQLRequestDiagFields : public IUnknown {
229   public:
230     virtual HRESULT WINAPI RequestDiagFields(ULONG cDiagFields,KAGREQDIAG rgDiagFields[]) = 0;
231   };
232 #else
233   typedef struct ISQLRequestDiagFieldsVtbl {
234     BEGIN_INTERFACE
235       HRESULT (WINAPI *QueryInterface)(ISQLRequestDiagFields *This,REFIID riid,void **ppvObject);
236       ULONG (WINAPI *AddRef)(ISQLRequestDiagFields *This);
237       ULONG (WINAPI *Release)(ISQLRequestDiagFields *This);
238       HRESULT (WINAPI *RequestDiagFields)(ISQLRequestDiagFields *This,ULONG cDiagFields,KAGREQDIAG rgDiagFields[]);
239     END_INTERFACE
240   } ISQLRequestDiagFieldsVtbl;
241   struct ISQLRequestDiagFields {
242     CONST_VTBL struct ISQLRequestDiagFieldsVtbl *lpVtbl;
243   };
244 #ifdef COBJMACROS
245 #define ISQLRequestDiagFields_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
246 #define ISQLRequestDiagFields_AddRef(This) (This)->lpVtbl->AddRef(This)
247 #define ISQLRequestDiagFields_Release(This) (This)->lpVtbl->Release(This)
248 #define ISQLRequestDiagFields_RequestDiagFields(This,cDiagFields,rgDiagFields) (This)->lpVtbl->RequestDiagFields(This,cDiagFields,rgDiagFields)
249 #endif
250 #endif
251   HRESULT WINAPI ISQLRequestDiagFields_RequestDiagFields_Proxy(ISQLRequestDiagFields *This,ULONG cDiagFields,KAGREQDIAG rgDiagFields[]);
252   void __RPC_STUB ISQLRequestDiagFields_RequestDiagFields_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
253 #endif
254 
255 #ifndef __ISQLGetDiagField_INTERFACE_DEFINED__
256 #define __ISQLGetDiagField_INTERFACE_DEFINED__
257   EXTERN_C const IID IID_ISQLGetDiagField;
258 #if defined(__cplusplus) && !defined(CINTERFACE)
259   struct ISQLGetDiagField : public IUnknown {
260   public:
261     virtual HRESULT WINAPI GetDiagField(KAGGETDIAG *pDiagInfo) = 0;
262   };
263 #else
264   typedef struct ISQLGetDiagFieldVtbl {
265     BEGIN_INTERFACE
266       HRESULT (WINAPI *QueryInterface)(ISQLGetDiagField *This,REFIID riid,void **ppvObject);
267       ULONG (WINAPI *AddRef)(ISQLGetDiagField *This);
268       ULONG (WINAPI *Release)(ISQLGetDiagField *This);
269       HRESULT (WINAPI *GetDiagField)(ISQLGetDiagField *This,KAGGETDIAG *pDiagInfo);
270     END_INTERFACE
271   } ISQLGetDiagFieldVtbl;
272   struct ISQLGetDiagField {
273     CONST_VTBL struct ISQLGetDiagFieldVtbl *lpVtbl;
274   };
275 #ifdef COBJMACROS
276 #define ISQLGetDiagField_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
277 #define ISQLGetDiagField_AddRef(This) (This)->lpVtbl->AddRef(This)
278 #define ISQLGetDiagField_Release(This) (This)->lpVtbl->Release(This)
279 #define ISQLGetDiagField_GetDiagField(This,pDiagInfo) (This)->lpVtbl->GetDiagField(This,pDiagInfo)
280 #endif
281 #endif
282   HRESULT WINAPI ISQLGetDiagField_GetDiagField_Proxy(ISQLGetDiagField *This,KAGGETDIAG *pDiagInfo);
283   void __RPC_STUB ISQLGetDiagField_GetDiagField_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
284 #endif
285 
286   ULONG __RPC_API VARIANT_UserSize(ULONG *,ULONG,VARIANT *);
287   unsigned char *__RPC_API VARIANT_UserMarshal(ULONG *,unsigned char *,VARIANT *);
288   unsigned char *__RPC_API VARIANT_UserUnmarshal(ULONG *,unsigned char *,VARIANT *);
289   void __RPC_API VARIANT_UserFree(ULONG *,VARIANT *);
290 
291 #ifdef __cplusplus
292 }
293 #endif
294 #endif
295 #endif
296