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
13extern const MSDASQLDECLSPEC GUID IID_ISQLRequestDiagFields = { 0x228972f0,0xb5ff,0x11d0,{ 0x8a,0x80,0x0,0xc0,0x4f,0xd6,0x11,0xcd } };
14extern const MSDASQLDECLSPEC GUID IID_ISQLGetDiagField = { 0x228972f1,0xb5ff,0x11d0,{ 0x8a,0x80,0x0,0xc0,0x4f,0xd6,0x11,0xcd } };
15extern const MSDASQLDECLSPEC GUID IID_IRowsetChangeExtInfo = {0x0C733A8F,0x2A1C,0x11CE,{0xAD,0xE5,0x00,0xAA,0x00,0x44,0x77,0x3D}};
16extern const MSDASQLDECLSPEC GUID CLSID_MSDASQL = {0xC8B522CB,0x5CF3,0x11CE,{0xAD,0xE5,0x00,0xAA,0x00,0x44,0x77,0x3D}};
17extern const MSDASQLDECLSPEC GUID CLSID_MSDASQL_ENUMERATOR = {0xC8B522CD,0x5CF3,0x11CE,{0xAD,0xE5,0x00,0xAA,0x00,0x44,0x77,0x3D}};
18#else
19extern const GUID IID_ISQLRequestDiagFields;
20extern const GUID IID_ISQLGetDiagField;
21extern const GUID IID_IRowsetChangeExtInfo;
22extern const GUID CLSID_MSDASQL;
23extern const GUID CLSID_MSDASQL_ENUMERATOR;
24#endif
25
26#ifdef DBINITCONSTANTS
27extern const MSDASQLDECLSPEC GUID DBPROPSET_PROVIDERDATASOURCEINFO = {0x497c60e0,0x7123,0x11cf,{0xb1,0x71,0x0,0xaa,0x0,0x57,0x59,0x9e}};
28extern const MSDASQLDECLSPEC GUID DBPROPSET_PROVIDERROWSET = {0x497c60e1,0x7123,0x11cf,{0xb1,0x71,0x0,0xaa,0x0,0x57,0x59,0x9e}};
29extern const MSDASQLDECLSPEC GUID DBPROPSET_PROVIDERDBINIT = {0x497c60e2,0x7123,0x11cf,{0xb1,0x71,0x0,0xaa,0x0,0x57,0x59,0x9e}};
30extern const MSDASQLDECLSPEC GUID DBPROPSET_PROVIDERSTMTATTR = {0x497c60e3,0x7123,0x11cf,{0xb1,0x71,0x0,0xaa,0x0,0x57,0x59,0x9e}};
31extern const MSDASQLDECLSPEC GUID DBPROPSET_PROVIDERCONNATTR = {0x497c60e4,0x7123,0x11cf,{0xb1,0x71,0x0,0xaa,0x0,0x57,0x59,0x9e}};
32#else
33extern const GUID DBPROPSET_PROVIDERDATASOURCEINFO;
34extern const GUID DBPROPSET_PROVIDERROWSET;
35extern const GUID DBPROPSET_PROVIDERDBINIT;
36extern const GUID DBPROPSET_PROVIDERSTMTATTR;
37extern 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__
106typedef struct IRowsetChangeExtInfo IRowsetChangeExtInfo;
107#endif
108
109#include "oledb.h"
110
111#ifdef __cplusplus
112extern "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__
184typedef struct ISQLRequestDiagFields ISQLRequestDiagFields;
185#endif
186
187#ifndef __ISQLGetDiagField_FWD_DEFINED__
188#define __ISQLGetDiagField_FWD_DEFINED__
189typedef struct ISQLGetDiagField ISQLGetDiagField;
190#endif
191
192#include "unknwn.h"
193#include "oaidl.h"
194
195#ifdef __cplusplus
196extern "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