1 /**
2  * This file is part of the mingw-w64 runtime package.
3  * No warranty is given; refer to the file DISCLAIMER within this package.
4  */
5 
6 #ifndef _ADOCTINT_H_
7 #define _ADOCTINT_H_
8 
9 #ifndef _INC_TCHAR
10 #include <tchar.h>
11 #endif
12 
13 #ifndef __REQUIRED_RPCNDR_H_VERSION__
14 #define __REQUIRED_RPCNDR_H_VERSION__ 500
15 #endif
16 
17 #ifndef __REQUIRED_RPCSAL_H_VERSION__
18 #define __REQUIRED_RPCSAL_H_VERSION__ 100
19 #endif
20 
21 #include "rpc.h"
22 #include "rpcndr.h"
23 
24 #ifndef __RPCNDR_H_VERSION__
25 #error this stub requires an updated version of rpcndr.h header.
26 #endif
27 
28 #ifndef __adocat_h__
29 #define __adocat_h__
30 
31 #ifndef ___ADOCollection_FWD_DEFINED__
32 #define ___ADOCollection_FWD_DEFINED__
33 typedef interface _ADOADOCollection _ADOCollection;
34 #endif
35 
36 #ifndef ___ADODynaCollection_FWD_DEFINED__
37 #define ___ADODynaCollection_FWD_DEFINED__
38 typedef interface _ADODynaADOCollection _ADODynaCollection;
39 #endif
40 
41 #ifndef ___Catalog_FWD_DEFINED__
42 #define ___Catalog_FWD_DEFINED__
43 typedef interface _ADOCatalog _Catalog;
44 #endif
45 
46 #ifndef ___Table_FWD_DEFINED__
47 #define ___Table_FWD_DEFINED__
48 typedef interface _ADOTable _Table;
49 #endif
50 
51 #ifndef ___Group25_FWD_DEFINED__
52 #define ___Group25_FWD_DEFINED__
53 typedef interface _Group25 _Group25;
54 #endif
55 
56 #ifndef ___Group_FWD_DEFINED__
57 #define ___Group_FWD_DEFINED__
58 typedef interface _ADOGroup _Group;
59 #endif
60 
61 #ifndef ___User25_FWD_DEFINED__
62 #define ___User25_FWD_DEFINED__
63 typedef interface _User25 _User25;
64 #endif
65 
66 #ifndef ___User_FWD_DEFINED__
67 #define ___User_FWD_DEFINED__
68 typedef interface _ADOUser _User;
69 #endif
70 
71 #ifndef ___Column_FWD_DEFINED__
72 #define ___Column_FWD_DEFINED__
73 typedef interface _ADOColumn _Column;
74 #endif
75 
76 #ifndef ___Index_FWD_DEFINED__
77 #define ___Index_FWD_DEFINED__
78 typedef interface _ADOIndex _Index;
79 #endif
80 
81 #ifndef ___Key_FWD_DEFINED__
82 #define ___Key_FWD_DEFINED__
83 typedef interface _ADOKey _Key;
84 #endif
85 
86 #ifndef __View_FWD_DEFINED__
87 #define __View_FWD_DEFINED__
88 typedef interface ADOView View;
89 #endif
90 
91 #ifndef __Procedure_FWD_DEFINED__
92 #define __Procedure_FWD_DEFINED__
93 typedef interface ADOProcedure Procedure;
94 #endif
95 
96 #ifndef __Catalog_FWD_DEFINED__
97 #define __Catalog_FWD_DEFINED__
98 #ifdef __cplusplus
99 typedef class ADOCatalog Catalog;
100 #else
101 typedef struct ADOCatalog Catalog;
102 #endif
103 #endif
104 
105 #ifndef __Table_FWD_DEFINED__
106 #define __Table_FWD_DEFINED__
107 #ifdef __cplusplus
108 typedef class ADOTable Table;
109 #else
110 typedef struct ADOTable Table;
111 #endif
112 #endif
113 
114 #ifndef __Property_FWD_DEFINED__
115 #define __Property_FWD_DEFINED__
116 typedef interface ADOProperty Property;
117 #endif
118 
119 #ifndef __Group_FWD_DEFINED__
120 #define __Group_FWD_DEFINED__
121 #ifdef __cplusplus
122 typedef class ADOGroup Group;
123 #else
124 typedef struct ADOGroup Group;
125 #endif
126 #endif
127 
128 #ifndef __User_FWD_DEFINED__
129 #define __User_FWD_DEFINED__
130 #ifdef __cplusplus
131 typedef class ADOUser User;
132 #else
133 typedef struct ADOUser User;
134 #endif
135 #endif
136 #ifndef __Column_FWD_DEFINED__
137 #define __Column_FWD_DEFINED__
138 #ifdef __cplusplus
139 typedef class ADOColumn Column;
140 #else
141 typedef struct ADOColumn Column;
142 #endif
143 #endif
144 #ifndef __Index_FWD_DEFINED__
145 #define __Index_FWD_DEFINED__
146 #ifdef __cplusplus
147 typedef class ADOIndex Index;
148 #else
149 typedef struct ADOIndex Index;
150 #endif
151 #endif
152 #ifndef __Key_FWD_DEFINED__
153 #define __Key_FWD_DEFINED__
154 #ifdef __cplusplus
155 typedef class ADOKey Key;
156 #else
157 typedef struct ADOKey Key;
158 #endif
159 #endif
160 #ifndef __Tables_FWD_DEFINED__
161 #define __Tables_FWD_DEFINED__
162 typedef interface ADOTables Tables;
163 #endif
164 
165 #ifndef __Columns_FWD_DEFINED__
166 #define __Columns_FWD_DEFINED__
167 typedef interface ADOColumns Columns;
168 #endif
169 
170 #ifndef __Procedures_FWD_DEFINED__
171 #define __Procedures_FWD_DEFINED__
172 typedef interface ADOProcedures Procedures;
173 #endif
174 
175 #ifndef __Views_FWD_DEFINED__
176 #define __Views_FWD_DEFINED__
177 typedef interface ADOViews Views;
178 #endif
179 
180 #ifndef __Indexes_FWD_DEFINED__
181 #define __Indexes_FWD_DEFINED__
182 typedef interface ADOIndexes Indexes;
183 #endif
184 
185 #ifndef __Keys_FWD_DEFINED__
186 #define __Keys_FWD_DEFINED__
187 typedef interface ADOKeys Keys;
188 #endif
189 
190 #ifndef __Users_FWD_DEFINED__
191 #define __Users_FWD_DEFINED__
192 typedef interface ADOUsers Users;
193 #endif
194 
195 #ifndef __Groups_FWD_DEFINED__
196 #define __Groups_FWD_DEFINED__
197 typedef interface ADOGroups Groups;
198 #endif
199 #ifndef __Properties_FWD_DEFINED__
200 #define __Properties_FWD_DEFINED__
201 typedef interface ADOProperties Properties;
202 #endif
203 
204 #include "oaidl.h"
205 #include "ocidl.h"
206 
207 #ifdef __cplusplus
208 extern "C" {
209 #endif
210 
211   typedef enum RuleEnum {
212     adRINone = 0,
213     adRICascade = 1,
214     adRISetNull = 2,
215     adRISetDefault = 3
216   } RuleEnum;
217 
218   typedef enum KeyTypeEnum {
219     adKeyPrimary = 1,
220     adKeyForeign = 2,
221     adKeyUnique = 3
222   } KeyTypeEnum;
223 
224   typedef enum ActionEnum {
225     adAccessGrant = 1,
226     adAccessSet = 2,
227     adAccessDeny = 3,
228     adAccessRevoke = 4
229   } ActionEnum;
230 
231   typedef enum ColumnAttributesEnum {
232     adColFixed = 1,
233     adColNullable = 2
234   } ColumnAttributesEnum;
235 
236   typedef enum SortOrderEnum {
237     adSortAscending = 1,
238     adSortDescending = 2
239   } SortOrderEnum;
240 
241   typedef enum RightsEnum {
242     adRightNone = __MSABI_LONG(0),
243     adRightDrop = __MSABI_LONG(0x100),
244     adRightExclusive = __MSABI_LONG(0x200),
245     adRightReadDesign = __MSABI_LONG(0x400),
246     adRightWriteDesign = __MSABI_LONG(0x800),
247     adRightWithGrant = __MSABI_LONG(0x1000),
248     adRightReference = __MSABI_LONG(0x2000),
249     adRightCreate = __MSABI_LONG(0x4000),
250     adRightInsert = __MSABI_LONG(0x8000),
251     adRightDelete = __MSABI_LONG(0x10000),
252     adRightReadPermissions = __MSABI_LONG(0x20000),
253     adRightWritePermissions = __MSABI_LONG(0x40000),
254     adRightWriteOwner = __MSABI_LONG(0x80000),
255     adRightMaximumAllowed = __MSABI_LONG(0x2000000),
256     adRightFull = __MSABI_LONG(0x10000000),
257     adRightExecute = __MSABI_LONG(0x20000000),
258     adRightUpdate = __MSABI_LONG(0x40000000),
259     adRightRead = __MSABI_LONG(0x80000000)
260   } RightsEnum;
261 
262   typedef
263 #ifdef _ADOINT_H_
264   class dummy dummy;
265 #else
266   enum DataTypeEnum {
267     adEmpty = 0,
268     adTinyInt = 16,
269     adSmallInt = 2,
270     adInteger = 3,
271     adBigInt = 20,
272     adUnsignedTinyInt = 17,
273     adUnsignedSmallInt = 18,
274     adUnsignedInt = 19,
275     adUnsignedBigInt = 21,
276     adSingle = 4,
277     adDouble = 5,
278     adCurrency = 6,
279     adDecimal = 14,
280     adNumeric = 131,
281     adBoolean = 11,
282     adError = 10,
283     adUserDefined = 132,
284     adVariant = 12,
285     adIDispatch = 9,
286     adIUnknown = 13,
287     adGUID = 72,
288     adDate = 7,
289     adDBDate = 133,
290     adDBTime = 134,
291     adDBTimeStamp = 135,
292     adBSTR = 8,
293     adChar = 129,
294     adVarChar = 200,
295     adLongVarChar = 201,
296     adWChar = 130,
297     adVarWChar = 202,
298     adLongVarWChar = 203,
299     adBinary = 128,
300     adVarBinary = 204,
301     adLongVarBinary = 205,
302     adChapter = 136,
303     adFileTime = 64,
304     adPropVariant = 138,
305     adVarNumeric = 139
306   } DataTypeEnum;
307 #endif
308 
309   typedef enum AllowNullsEnum {
310     adIndexNullsAllow = 0,
311     adIndexNullsDisallow = 1,
312     adIndexNullsIgnore = 2,
313     adIndexNullsIgnoreAny = 4
314   } AllowNullsEnum;
315 
316   typedef enum ObjectTypeEnum {
317     adPermObjProviderSpecific = -1,
318     adPermObjTable = 1,
319     adPermObjColumn = 2,
320     adPermObjDatabase = 3,
321     adPermObjProcedure = 4,
322     adPermObjView = 5
323   } ObjectTypeEnum;
324 
325   typedef enum InheritTypeEnum {
326     adInheritNone = 0,
327     adInheritObjects = 1,
328     adInheritContainers = 2,
329     adInheritBoth = 3,
330     adInheritNoPropogate = 4
331   } InheritTypeEnum;
332 
333   extern RPC_IF_HANDLE __MIDL_itf_adocat_0000_0000_v0_0_c_ifspec;
334   extern RPC_IF_HANDLE __MIDL_itf_adocat_0000_0000_v0_0_s_ifspec;
335 
336 #ifndef __ADOX_LIBRARY_DEFINED__
337 #define __ADOX_LIBRARY_DEFINED__
338 
339   EXTERN_C const IID LIBID_ADOX;
340 
341 #ifndef ___ADOCollection_INTERFACE_DEFINED__
342 #define ___ADOCollection_INTERFACE_DEFINED__
343 
344   EXTERN_C const IID IID__ADOCollection;
345 
346 #if defined (__cplusplus) && !defined (CINTERFACE)
347   MIDL_INTERFACE ("00000512-0000-0010-8000-00AA006D2EA4")
348   _ADOADOCollection : public IDispatch {
349     public:
350     virtual HRESULT STDMETHODCALLTYPE get_Count (long *c) = 0;
351     virtual HRESULT STDMETHODCALLTYPE _NewEnum (IUnknown **ppvObject) = 0;
352     virtual HRESULT STDMETHODCALLTYPE Refresh (void) = 0;
353   };
354 #else
355   typedef struct _ADOCollectionVtbl {
356     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADOADOCollection *This, REFIID riid, _COM_Outptr_ void **ppvObject);
357     ULONG (STDMETHODCALLTYPE *AddRef) (_ADOADOCollection *This);
358     ULONG (STDMETHODCALLTYPE *Release) (_ADOADOCollection *This);
359     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADOADOCollection *This, UINT *pctinfo);
360     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADOADOCollection *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
361     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADOADOCollection *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
362     HRESULT (STDMETHODCALLTYPE *Invoke) (_ADOADOCollection *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
363     HRESULT (STDMETHODCALLTYPE *get_Count) (_ADOADOCollection *This, long *c);
364     HRESULT (STDMETHODCALLTYPE *_NewEnum) (_ADOADOCollection *This, IUnknown **ppvObject);
365     HRESULT (STDMETHODCALLTYPE *Refresh) (_ADOADOCollection *This);
366     END_INTERFACE
367   } _ADOCollectionVtbl;
368   interface _ADOCollection {
369     CONST_VTBL struct _ADOCollectionVtbl *lpVtbl;
370   };
371 
372 #ifdef COBJMACROS
373 #define _ADOCollection_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
374 #define _ADOCollection_AddRef(This) ((This)->lpVtbl ->AddRef (This))
375 #define _ADOCollection_Release(This) ((This)->lpVtbl ->Release (This))
376 #define _ADOCollection_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
377 #define _ADOCollection_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
378 #define _ADOCollection_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
379 #define _ADOCollection_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
380 #define _Collection_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
381 #define _ADOCollection__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
382 #define _ADOCollection_Refresh(This) ((This)->lpVtbl ->Refresh (This))
383 #endif
384 
385 #endif
386 #endif
387 
388 #ifndef ___ADODynaCollection_INTERFACE_DEFINED__
389 #define ___ADODynaCollection_INTERFACE_DEFINED__
390 
391   EXTERN_C const IID IID__ADODynaCollection;
392 
393 #if defined (__cplusplus) && !defined (CINTERFACE)
394   MIDL_INTERFACE ("00000513-0000-0010-8000-00AA006D2EA4")
395   _ADODynaADOCollection : public _ADOCollection {
396     public:
397     virtual HRESULT STDMETHODCALLTYPE Append (IDispatch *Object) = 0;
398     virtual HRESULT STDMETHODCALLTYPE Delete (VARIANT Item) = 0;
399   };
400 #else
401   typedef struct _ADODynaCollectionVtbl {
402     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADODynaADOCollection *This, REFIID riid, _COM_Outptr_ void **ppvObject);
403     ULONG (STDMETHODCALLTYPE *AddRef) (_ADODynaADOCollection *This);
404     ULONG (STDMETHODCALLTYPE *Release) (_ADODynaADOCollection *This);
405     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADODynaADOCollection *This, UINT *pctinfo);
406     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADODynaADOCollection *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
407     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADODynaADOCollection *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
408     HRESULT (STDMETHODCALLTYPE *Invoke) (_ADODynaADOCollection *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
409     HRESULT (STDMETHODCALLTYPE *get_Count) (_ADODynaADOCollection *This, long *c);
410     HRESULT (STDMETHODCALLTYPE *_NewEnum) (_ADODynaADOCollection *This, IUnknown **ppvObject);
411     HRESULT (STDMETHODCALLTYPE *Refresh) (_ADODynaADOCollection *This);
412     HRESULT (STDMETHODCALLTYPE *Append) (_ADODynaADOCollection *This, IDispatch *Object);
413     HRESULT (STDMETHODCALLTYPE *Delete) (_ADODynaADOCollection *This, VARIANT Item);
414     END_INTERFACE
415   } _ADODynaCollectionVtbl;
416 
417   interface _ADODynaCollection {
418     CONST_VTBL struct _ADODynaCollectionVtbl *lpVtbl;
419   };
420 
421 #ifdef COBJMACROS
422 #define _ADODynaCollection_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
423 #define _ADODynaCollection_AddRef(This) ((This)->lpVtbl ->AddRef (This))
424 #define _ADODynaCollection_Release(This) ((This)->lpVtbl ->Release (This))
425 #define _ADODynaCollection_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
426 #define _ADODynaCollection_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
427 #define _ADODynaCollection_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
428 #define _ADODynaCollection_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
429 #define _DynaCollection_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
430 #define _ADODynaCollection__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
431 #define _ADODynaCollection_Refresh(This) ((This)->lpVtbl ->Refresh (This))
432 #define _ADODynaCollection_Append(This, Object) ((This)->lpVtbl ->Append (This, Object))
433 #define _ADODynaCollection_Delete(This, Item) ((This)->lpVtbl ->Delete (This, Item))
434 #endif
435 
436 #endif
437 #endif
438 
439 #ifndef ___Catalog_INTERFACE_DEFINED__
440 #define ___Catalog_INTERFACE_DEFINED__
441 
442   EXTERN_C const IID IID__Catalog;
443 
444 #if defined (__cplusplus) && !defined (CINTERFACE)
445   MIDL_INTERFACE ("00000603-0000-0010-8000-00AA006D2EA4")
446   _ADOCatalog : public IDispatch {
447     public:
448     virtual HRESULT STDMETHODCALLTYPE get_Tables (ADOTables **ppvObject) = 0;
449     virtual HRESULT STDMETHODCALLTYPE get_ActiveConnection (VARIANT *pVal) = 0;
450     virtual HRESULT STDMETHODCALLTYPE put_ActiveConnection (VARIANT newVal) = 0;
451     virtual HRESULT STDMETHODCALLTYPE putref_ActiveConnection (IDispatch *pCon) = 0;
452     virtual HRESULT STDMETHODCALLTYPE get_Procedures (ADOProcedures **ppvObject) = 0;
453     virtual HRESULT STDMETHODCALLTYPE get_Views (ADOViews **ppvObject) = 0;
454     virtual HRESULT STDMETHODCALLTYPE get_Groups (ADOGroups **ppvObject) = 0;
455     virtual HRESULT STDMETHODCALLTYPE get_Users (ADOUsers **ppvObject) = 0;
456     virtual HRESULT STDMETHODCALLTYPE Create (BSTR ConnectString, VARIANT *Connection) = 0;
457     virtual HRESULT STDMETHODCALLTYPE GetObjectOwner (BSTR ObjectName, ObjectTypeEnum ObjectType, VARIANT ObjectTypeId, BSTR *OwnerName) = 0;
458     virtual HRESULT STDMETHODCALLTYPE SetObjectOwner (BSTR ObjectName, ObjectTypeEnum ObjectType, BSTR UserName, VARIANT ObjectTypeId) = 0;
459   };
460 #else
461   typedef struct _CatalogVtbl {
462     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADOCatalog *This, REFIID riid, _COM_Outptr_ void **ppvObject);
463     ULONG (STDMETHODCALLTYPE *AddRef) (_ADOCatalog *This);
464     ULONG (STDMETHODCALLTYPE *Release) (_ADOCatalog *This);
465     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADOCatalog *This, UINT *pctinfo);
466     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADOCatalog *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
467     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADOCatalog *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
468     HRESULT (STDMETHODCALLTYPE *Invoke) (_ADOCatalog *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
469     HRESULT (STDMETHODCALLTYPE *get_Tables) (_ADOCatalog *This, ADOTables **ppvObject);
470     HRESULT (STDMETHODCALLTYPE *get_ActiveConnection) (_ADOCatalog *This, VARIANT *pVal);
471     HRESULT (STDMETHODCALLTYPE *put_ActiveConnection) (_ADOCatalog *This, VARIANT newVal);
472     HRESULT (STDMETHODCALLTYPE *putref_ActiveConnection) (_ADOCatalog *This, IDispatch *pCon);
473     HRESULT (STDMETHODCALLTYPE *get_Procedures) (_ADOCatalog *This, ADOProcedures **ppvObject);
474     HRESULT (STDMETHODCALLTYPE *get_Views) (_ADOCatalog *This, ADOViews **ppvObject);
475     HRESULT (STDMETHODCALLTYPE *get_Groups) (_ADOCatalog *This, ADOGroups **ppvObject);
476     HRESULT (STDMETHODCALLTYPE *get_Users) (_ADOCatalog *This, ADOUsers **ppvObject);
477     HRESULT (STDMETHODCALLTYPE *Create) (_ADOCatalog *This, BSTR ConnectString, VARIANT *Connection);
478     HRESULT (STDMETHODCALLTYPE *GetObjectOwner) (_ADOCatalog *This, BSTR ObjectName, ObjectTypeEnum ObjectType, VARIANT ObjectTypeId, BSTR *OwnerName);
479     HRESULT (STDMETHODCALLTYPE *SetObjectOwner) (_ADOCatalog *This, BSTR ObjectName, ObjectTypeEnum ObjectType, BSTR UserName, VARIANT ObjectTypeId);
480     END_INTERFACE
481   } _CatalogVtbl;
482 
483   interface _Catalog {
484     CONST_VTBL struct _CatalogVtbl *lpVtbl;
485   };
486 
487 #ifdef COBJMACROS
488 #define _Catalog_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
489 #define _Catalog_AddRef(This) ((This)->lpVtbl ->AddRef (This))
490 #define _Catalog_Release(This) ((This)->lpVtbl ->Release (This))
491 #define _Catalog_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
492 #define _Catalog_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
493 #define _Catalog_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
494 #define _Catalog_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
495 #define _Catalog_get_Tables(This, ppvObject) ((This)->lpVtbl ->get_Tables (This, ppvObject))
496 #define _Catalog_get_ActiveConnection(This, pVal) ((This)->lpVtbl ->get_ActiveConnection (This, pVal))
497 #define _Catalog_put_ActiveConnection(This, newVal) ((This)->lpVtbl ->put_ActiveConnection (This, newVal))
498 #define _Catalog_putref_ActiveConnection(This, pCon) ((This)->lpVtbl ->putref_ActiveConnection (This, pCon))
499 #define _Catalog_get_Procedures(This, ppvObject) ((This)->lpVtbl ->get_Procedures (This, ppvObject))
500 #define _Catalog_get_Views(This, ppvObject) ((This)->lpVtbl ->get_Views (This, ppvObject))
501 #define _Catalog_get_Groups(This, ppvObject) ((This)->lpVtbl ->get_Groups (This, ppvObject))
502 #define _Catalog_get_Users(This, ppvObject) ((This)->lpVtbl ->get_Users (This, ppvObject))
503 #define _Catalog_Create(This, ConnectString, Connection) ((This)->lpVtbl ->Create (This, ConnectString, Connection))
504 #define _Catalog_GetObjectOwner(This, ObjectName, ObjectType, ObjectTypeId, OwnerName) ((This)->lpVtbl ->GetObjectOwner (This, ObjectName, ObjectType, ObjectTypeId, OwnerName))
505 #define _Catalog_SetObjectOwner(This, ObjectName, ObjectType, UserName, ObjectTypeId) ((This)->lpVtbl ->SetObjectOwner (This, ObjectName, ObjectType, UserName, ObjectTypeId))
506 #endif
507 
508 #endif
509 #endif
510 
511 #ifndef ___Table_INTERFACE_DEFINED__
512 #define ___Table_INTERFACE_DEFINED__
513 
514   EXTERN_C const IID IID__Table;
515 
516 #if defined (__cplusplus) && !defined (CINTERFACE)
517   MIDL_INTERFACE ("00000610-0000-0010-8000-00AA006D2EA4")
518   _ADOTable : public IDispatch {
519     public:
520     virtual HRESULT STDMETHODCALLTYPE get_Columns (ADOColumns **ppvObject) = 0;
521     virtual HRESULT STDMETHODCALLTYPE get_Name (BSTR *pVal) = 0;
522     virtual HRESULT STDMETHODCALLTYPE put_Name (BSTR newVal) = 0;
523     virtual HRESULT STDMETHODCALLTYPE get_Type (BSTR *pVal) = 0;
524     virtual HRESULT STDMETHODCALLTYPE get_Indexes (ADOIndexes **ppvObject) = 0;
525     virtual HRESULT STDMETHODCALLTYPE get_Keys (ADOKeys **ppvObject) = 0;
526     virtual HRESULT STDMETHODCALLTYPE get_Properties (ADOProperties **ppvObject) = 0;
527     virtual HRESULT STDMETHODCALLTYPE get_DateCreated (VARIANT *pVal) = 0;
528     virtual HRESULT STDMETHODCALLTYPE get_DateModified (VARIANT *pVal) = 0;
529     virtual HRESULT STDMETHODCALLTYPE get_ParentCatalog (_ADOCatalog **ppvObject) = 0;
530     virtual HRESULT STDMETHODCALLTYPE put_ParentCatalog (_ADOCatalog *ppvObject) = 0;
531     virtual HRESULT STDMETHODCALLTYPE putref_ParentCatalog (_ADOCatalog *ppvObject) = 0;
532   };
533 #else
534   typedef struct _TableVtbl {
535     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADOTable *This, REFIID riid, _COM_Outptr_ void **ppvObject);
536     ULONG (STDMETHODCALLTYPE *AddRef) (_ADOTable *This);
537     ULONG (STDMETHODCALLTYPE *Release) (_ADOTable *This);
538     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADOTable *This, UINT *pctinfo);
539     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADOTable *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
540     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADOTable *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
541     HRESULT (STDMETHODCALLTYPE *Invoke) (_ADOTable *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
542     HRESULT (STDMETHODCALLTYPE *get_Columns) (_ADOTable *This, ADOColumns **ppvObject);
543     HRESULT (STDMETHODCALLTYPE *get_Name) (_ADOTable *This, BSTR *pVal);
544     HRESULT (STDMETHODCALLTYPE *put_Name) (_ADOTable *This, BSTR newVal);
545     HRESULT (STDMETHODCALLTYPE *get_Type) (_ADOTable *This, BSTR *pVal);
546     HRESULT (STDMETHODCALLTYPE *get_Indexes) (_ADOTable *This, ADOIndexes **ppvObject);
547     HRESULT (STDMETHODCALLTYPE *get_Keys) (_ADOTable *This, ADOKeys **ppvObject);
548     HRESULT (STDMETHODCALLTYPE *get_Properties) (_ADOTable *This, ADOProperties **ppvObject);
549     HRESULT (STDMETHODCALLTYPE *get_DateCreated) (_ADOTable *This, VARIANT *pVal);
550     HRESULT (STDMETHODCALLTYPE *get_DateModified) (_ADOTable *This, VARIANT *pVal);
551     HRESULT (STDMETHODCALLTYPE *get_ParentCatalog) (_ADOTable *This, _ADOCatalog **ppvObject);
552     HRESULT (STDMETHODCALLTYPE *put_ParentCatalog) (_ADOTable *This, _ADOCatalog *ppvObject);
553     HRESULT (STDMETHODCALLTYPE *putref_ParentADOCatalog) (_ADOTable *This, _ADOCatalog *ppvObject);
554     END_INTERFACE
555   } _TableVtbl;
556 
557   interface _Table {
558     CONST_VTBL struct _TableVtbl *lpVtbl;
559   };
560 
561 #ifdef COBJMACROS
562 #define _Table_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
563 #define _Table_AddRef(This) ((This)->lpVtbl ->AddRef (This))
564 #define _Table_Release(This) ((This)->lpVtbl ->Release (This))
565 #define _Table_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
566 #define _Table_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
567 #define _Table_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
568 #define _Table_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
569 #define _Table_get_Columns(This, ppvObject) ((This)->lpVtbl ->get_Columns (This, ppvObject))
570 #define _Table_get_Name(This, pVal) ((This)->lpVtbl ->get_Name (This, pVal))
571 #define _Table_put_Name(This, newVal) ((This)->lpVtbl ->put_Name (This, newVal))
572 #define _Table_get_Type(This, pVal) ((This)->lpVtbl ->get_Type (This, pVal))
573 #define _Table_get_Indexes(This, ppvObject) ((This)->lpVtbl ->get_Indexes (This, ppvObject))
574 #define _Table_get_Keys(This, ppvObject) ((This)->lpVtbl ->get_Keys (This, ppvObject))
575 #define _Table_get_Properties(This, ppvObject) ((This)->lpVtbl ->get_Properties (This, ppvObject))
576 #define _Table_get_DateCreated(This, pVal) ((This)->lpVtbl ->get_DateCreated (This, pVal))
577 #define _Table_get_DateModified(This, pVal) ((This)->lpVtbl ->get_DateModified (This, pVal))
578 #define _Table_get_ParentCatalog(This, ppvObject) ((This)->lpVtbl ->get_ParentCatalog (This, ppvObject))
579 #define _Table_put_ParentCatalog(This, ppvObject) ((This)->lpVtbl ->put_ParentCatalog (This, ppvObject))
580 #define _Table_putref_ParentCatalog(This, ppvObject) ((This)->lpVtbl ->putref_ParentCatalog (This, ppvObject))
581 #endif
582 
583 #endif
584 #endif
585 
586 #ifndef ___Group25_INTERFACE_DEFINED__
587 #define ___Group25_INTERFACE_DEFINED__
588 
589   EXTERN_C const IID IID__Group25;
590 
591 #if defined (__cplusplus) && !defined (CINTERFACE)
592   MIDL_INTERFACE ("00000616-0000-0010-8000-00AA006D2EA4")
593   _Group25 : public IDispatch {
594     public:
595     virtual HRESULT STDMETHODCALLTYPE get_Name (BSTR *pVal) = 0;
596     virtual HRESULT STDMETHODCALLTYPE put_Name (BSTR newVal) = 0;
597     virtual HRESULT STDMETHODCALLTYPE GetPermissions (VARIANT Name, ObjectTypeEnum ObjectType, VARIANT ObjectTypeId, RightsEnum *Rights) = 0;
598     virtual HRESULT STDMETHODCALLTYPE SetPermissions (VARIANT Name, ObjectTypeEnum ObjectType, ActionEnum Action, RightsEnum Rights, InheritTypeEnum Inherit, VARIANT ObjectTypeId) = 0;
599     virtual HRESULT STDMETHODCALLTYPE get_Users (ADOUsers **ppvObject) = 0;
600   };
601 #else
602   typedef struct _Group25Vtbl {
603     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_Group25 *This, REFIID riid, _COM_Outptr_ void **ppvObject);
604     ULONG (STDMETHODCALLTYPE *AddRef) (_Group25 *This);
605     ULONG (STDMETHODCALLTYPE *Release) (_Group25 *This);
606     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_Group25 *This, UINT *pctinfo);
607     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_Group25 *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
608     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_Group25 *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
609     HRESULT (STDMETHODCALLTYPE *Invoke) (_Group25 *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
610     HRESULT (STDMETHODCALLTYPE *get_Name) (_Group25 *This, BSTR *pVal);
611     HRESULT (STDMETHODCALLTYPE *put_Name) (_Group25 *This, BSTR newVal);
612     HRESULT (STDMETHODCALLTYPE *GetPermissions) (_Group25 *This, VARIANT Name, ObjectTypeEnum ObjectType, VARIANT ObjectTypeId, RightsEnum *Rights);
613     HRESULT (STDMETHODCALLTYPE *SetPermissions) (_Group25 *This, VARIANT Name, ObjectTypeEnum ObjectType, ActionEnum Action, RightsEnum Rights, InheritTypeEnum Inherit, VARIANT ObjectTypeId);
614     HRESULT (STDMETHODCALLTYPE *get_Users) (_Group25 *This, ADOUsers **ppvObject);
615     END_INTERFACE
616   } _Group25Vtbl;
617 
618   interface _Group25 {
619     CONST_VTBL struct _Group25Vtbl *lpVtbl;
620   };
621 
622 #ifdef COBJMACROS
623 #define _Group25_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
624 #define _Group25_AddRef(This) ((This)->lpVtbl ->AddRef (This))
625 #define _Group25_Release(This) ((This)->lpVtbl ->Release (This))
626 #define _Group25_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
627 #define _Group25_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
628 #define _Group25_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
629 #define _Group25_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
630 #define _Group25_get_Name(This, pVal) ((This)->lpVtbl ->get_Name (This, pVal))
631 #define _Group25_put_Name(This, newVal) ((This)->lpVtbl ->put_Name (This, newVal))
632 #define _Group25_GetPermissions(This, Name, ObjectType, ObjectTypeId, Rights) ((This)->lpVtbl ->GetPermissions (This, Name, ObjectType, ObjectTypeId, Rights))
633 #define _Group25_SetPermissions(This, Name, ObjectType, Action, Rights, Inherit, ObjectTypeId) ((This)->lpVtbl ->SetPermissions (This, Name, ObjectType, Action, Rights, Inherit, ObjectTypeId))
634 #define _Group25_get_Users(This, ppvObject) ((This)->lpVtbl ->get_Users (This, ppvObject))
635 #endif
636 
637 #endif
638 #endif
639 #ifndef ___Group_INTERFACE_DEFINED__
640 #define ___Group_INTERFACE_DEFINED__
641 
642   EXTERN_C const IID IID__Group;
643 
644 #if defined (__cplusplus) && !defined (CINTERFACE)
645   MIDL_INTERFACE ("00000628-0000-0010-8000-00AA006D2EA4")
646   _ADOGroup : public _Group25 {
647     public:
648     virtual HRESULT STDMETHODCALLTYPE get_Properties (ADOProperties **ppvObject) = 0;
649     virtual HRESULT STDMETHODCALLTYPE get_ParentCatalog (_ADOCatalog **ppvObject) = 0;
650     virtual HRESULT STDMETHODCALLTYPE put_ParentCatalog (_ADOCatalog *ppvObject) = 0;
651     virtual HRESULT STDMETHODCALLTYPE putref_ParentCatalog (_ADOCatalog *ppvObject) = 0;
652   };
653 #else
654   typedef struct _GroupVtbl {
655     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADOGroup *This, REFIID riid, _COM_Outptr_ void **ppvObject);
656     ULONG (STDMETHODCALLTYPE *AddRef) (_ADOGroup *This);
657     ULONG (STDMETHODCALLTYPE *Release) (_ADOGroup *This);
658     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADOGroup *This, UINT *pctinfo);
659     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADOGroup *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
660     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADOGroup *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
661     HRESULT (STDMETHODCALLTYPE *Invoke) (_ADOGroup *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
662     HRESULT (STDMETHODCALLTYPE *get_Name) (_ADOGroup *This, BSTR *pVal);
663     HRESULT (STDMETHODCALLTYPE *put_Name) (_ADOGroup *This, BSTR newVal);
664     HRESULT (STDMETHODCALLTYPE *GetPermissions) (_ADOGroup *This, VARIANT Name, ObjectTypeEnum ObjectType, VARIANT ObjectTypeId, RightsEnum *Rights);
665     HRESULT (STDMETHODCALLTYPE *SetPermissions) (_ADOGroup *This, VARIANT Name, ObjectTypeEnum ObjectType, ActionEnum Action, RightsEnum Rights, InheritTypeEnum Inherit, VARIANT ObjectTypeId);
666     HRESULT (STDMETHODCALLTYPE *get_Users) (_ADOGroup *This, ADOUsers **ppvObject);
667     HRESULT (STDMETHODCALLTYPE *get_Properties) (_ADOGroup *This, ADOProperties **ppvObject);
668     HRESULT (STDMETHODCALLTYPE *get_ParentCatalog) (_ADOGroup *This, _ADOCatalog **ppvObject);
669     HRESULT (STDMETHODCALLTYPE *put_ParentCatalog) (_ADOGroup *This, _ADOCatalog *ppvObject);
670     HRESULT (STDMETHODCALLTYPE *putref_ParentADOCatalog) (_ADOGroup *This, _ADOCatalog *ppvObject);
671     END_INTERFACE
672   } _GroupVtbl;
673 
674   interface _Group {
675     CONST_VTBL struct _GroupVtbl *lpVtbl;
676   };
677 
678 #ifdef COBJMACROS
679 #define _Group_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
680 #define _Group_AddRef(This) ((This)->lpVtbl ->AddRef (This))
681 #define _Group_Release(This) ((This)->lpVtbl ->Release (This))
682 #define _Group_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
683 #define _Group_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
684 #define _Group_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
685 #define _Group_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
686 #define _Group_get_Name(This, pVal) ((This)->lpVtbl ->get_Name (This, pVal))
687 #define _Group_put_Name(This, newVal) ((This)->lpVtbl ->put_Name (This, newVal))
688 #define _Group_GetPermissions(This, Name, ObjectType, ObjectTypeId, Rights) ((This)->lpVtbl ->GetPermissions (This, Name, ObjectType, ObjectTypeId, Rights))
689 #define _Group_SetPermissions(This, Name, ObjectType, Action, Rights, Inherit, ObjectTypeId) ((This)->lpVtbl ->SetPermissions (This, Name, ObjectType, Action, Rights, Inherit, ObjectTypeId))
690 #define _Group_get_Users(This, ppvObject) ((This)->lpVtbl ->get_Users (This, ppvObject))
691 #define _Group_get_Properties(This, ppvObject) ((This)->lpVtbl ->get_Properties (This, ppvObject))
692 #define _Group_get_ParentCatalog(This, ppvObject) ((This)->lpVtbl ->get_ParentCatalog (This, ppvObject))
693 #define _Group_put_ParentCatalog(This, ppvObject) ((This)->lpVtbl ->put_ParentCatalog (This, ppvObject))
694 #define _Group_putref_ParentCatalog(This, ppvObject) ((This)->lpVtbl ->putref_ParentCatalog (This, ppvObject))
695 #endif
696 #endif
697 
698 #endif
699 
700 #ifndef ___User25_INTERFACE_DEFINED__
701 #define ___User25_INTERFACE_DEFINED__
702 
703   EXTERN_C const IID IID__User25;
704 
705 #if defined (__cplusplus) && !defined (CINTERFACE)
706   MIDL_INTERFACE ("00000619-0000-0010-8000-00AA006D2EA4")
707   _User25 : public IDispatch {
708     public:
709     virtual HRESULT STDMETHODCALLTYPE get_Name (BSTR *pVal) = 0;
710     virtual HRESULT STDMETHODCALLTYPE put_Name (BSTR newVal) = 0;
711     virtual HRESULT STDMETHODCALLTYPE GetPermissions (VARIANT Name, ObjectTypeEnum ObjectType, VARIANT ObjectTypeId, RightsEnum *Rights) = 0;
712     virtual HRESULT STDMETHODCALLTYPE SetPermissions (VARIANT Name, ObjectTypeEnum ObjectType, ActionEnum Action, RightsEnum Rights, InheritTypeEnum Inherit, VARIANT ObjectTypeId) = 0;
713     virtual HRESULT STDMETHODCALLTYPE ChangePassword (BSTR OldPassword, BSTR NewPassword) = 0;
714     virtual HRESULT STDMETHODCALLTYPE get_Groups (ADOGroups **ppvObject) = 0;
715   };
716 #else
717   typedef struct _User25Vtbl {
718     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_User25 *This, REFIID riid, _COM_Outptr_ void **ppvObject);
719     ULONG (STDMETHODCALLTYPE *AddRef) (_User25 *This);
720     ULONG (STDMETHODCALLTYPE *Release) (_User25 *This);
721     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_User25 *This, UINT *pctinfo);
722     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_User25 *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
723     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_User25 *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
724     HRESULT (STDMETHODCALLTYPE *Invoke) (_User25 *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
725     HRESULT (STDMETHODCALLTYPE *get_Name) (_User25 *This, BSTR *pVal);
726     HRESULT (STDMETHODCALLTYPE *put_Name) (_User25 *This, BSTR newVal);
727     HRESULT (STDMETHODCALLTYPE *GetPermissions) (_User25 *This, VARIANT Name, ObjectTypeEnum ObjectType, VARIANT ObjectTypeId, RightsEnum *Rights);
728     HRESULT (STDMETHODCALLTYPE *SetPermissions) (_User25 *This, VARIANT Name, ObjectTypeEnum ObjectType, ActionEnum Action, RightsEnum Rights, InheritTypeEnum Inherit, VARIANT ObjectTypeId);
729     HRESULT (STDMETHODCALLTYPE *ChangePassword) (_User25 *This, BSTR OldPassword, BSTR NewPassword);
730     HRESULT (STDMETHODCALLTYPE *get_Groups) (_User25 *This, ADOGroups **ppvObject);
731     END_INTERFACE
732   } _User25Vtbl;
733 
734   interface _User25 {
735     CONST_VTBL struct _User25Vtbl *lpVtbl;
736   };
737 
738 #ifdef COBJMACROS
739 #define _User25_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
740 #define _User25_AddRef(This) ((This)->lpVtbl ->AddRef (This))
741 #define _User25_Release(This) ((This)->lpVtbl ->Release (This))
742 #define _User25_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
743 #define _User25_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
744 #define _User25_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
745 #define _User25_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
746 #define _User25_get_Name(This, pVal) ((This)->lpVtbl ->get_Name (This, pVal))
747 #define _User25_put_Name(This, newVal) ((This)->lpVtbl ->put_Name (This, newVal))
748 #define _User25_GetPermissions(This, Name, ObjectType, ObjectTypeId, Rights) ((This)->lpVtbl ->GetPermissions (This, Name, ObjectType, ObjectTypeId, Rights))
749 #define _User25_SetPermissions(This, Name, ObjectType, Action, Rights, Inherit, ObjectTypeId) ((This)->lpVtbl ->SetPermissions (This, Name, ObjectType, Action, Rights, Inherit, ObjectTypeId))
750 #define _User25_ChangePassword(This, OldPassword, NewPassword) ((This)->lpVtbl ->ChangePassword (This, OldPassword, NewPassword))
751 #define _User25_get_Groups(This, ppvObject) ((This)->lpVtbl ->get_Groups (This, ppvObject))
752 #endif
753 
754 #endif
755 #endif
756 
757 #ifndef ___User_INTERFACE_DEFINED__
758 #define ___User_INTERFACE_DEFINED__
759 
760   EXTERN_C const IID IID__User;
761 
762 #if defined (__cplusplus) && !defined (CINTERFACE)
763   MIDL_INTERFACE ("00000627-0000-0010-8000-00AA006D2EA4")
764   _ADOUser : public _User25 {
765     public:
766     virtual HRESULT STDMETHODCALLTYPE get_Properties (ADOProperties **ppvObject) = 0;
767     virtual HRESULT STDMETHODCALLTYPE get_ParentCatalog (_ADOCatalog **ppvObject) = 0;
768     virtual HRESULT STDMETHODCALLTYPE put_ParentCatalog (_ADOCatalog *ppvObject) = 0;
769     virtual HRESULT STDMETHODCALLTYPE putref_ParentCatalog (_ADOCatalog *ppvObject) = 0;
770   };
771 #else
772   typedef struct _UserVtbl {
773     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADOUser *This, REFIID riid, _COM_Outptr_ void **ppvObject);
774     ULONG (STDMETHODCALLTYPE *AddRef) (_ADOUser *This);
775     ULONG (STDMETHODCALLTYPE *Release) (_ADOUser *This);
776     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADOUser *This, UINT *pctinfo);
777     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADOUser *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
778     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADOUser *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
779     HRESULT (STDMETHODCALLTYPE *Invoke) (_ADOUser *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
780     HRESULT (STDMETHODCALLTYPE *get_Name) (_ADOUser *This, BSTR *pVal);
781     HRESULT (STDMETHODCALLTYPE *put_Name) (_ADOUser *This, BSTR newVal);
782     HRESULT (STDMETHODCALLTYPE *GetPermissions) (_ADOUser *This, VARIANT Name, ObjectTypeEnum ObjectType, VARIANT ObjectTypeId, RightsEnum *Rights);
783     HRESULT (STDMETHODCALLTYPE *SetPermissions) (_ADOUser *This, VARIANT Name, ObjectTypeEnum ObjectType, ActionEnum Action, RightsEnum Rights, InheritTypeEnum Inherit, VARIANT ObjectTypeId);
784     HRESULT (STDMETHODCALLTYPE *ChangePassword) (_ADOUser *This, BSTR OldPassword, BSTR NewPassword);
785     HRESULT (STDMETHODCALLTYPE *get_Groups) (_ADOUser *This, ADOGroups **ppvObject);
786     HRESULT (STDMETHODCALLTYPE *get_Properties) (_ADOUser *This, ADOProperties **ppvObject);
787     HRESULT (STDMETHODCALLTYPE *get_ParentCatalog) (_ADOUser *This, _ADOCatalog **ppvObject);
788     HRESULT (STDMETHODCALLTYPE *put_ParentCatalog) (_ADOUser *This, _ADOCatalog *ppvObject);
789     HRESULT (STDMETHODCALLTYPE *putref_ParentADOCatalog) (_ADOUser *This, _ADOCatalog *ppvObject);
790     END_INTERFACE
791   } _UserVtbl;
792 
793   interface _User {
794     CONST_VTBL struct _UserVtbl *lpVtbl;
795   };
796 
797 #ifdef COBJMACROS
798 #define _User_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
799 #define _User_AddRef(This) ((This)->lpVtbl ->AddRef (This))
800 #define _User_Release(This) ((This)->lpVtbl ->Release (This))
801 #define _User_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
802 #define _User_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
803 #define _User_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
804 #define _User_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
805 #define _User_get_Name(This, pVal) ((This)->lpVtbl ->get_Name (This, pVal))
806 #define _User_put_Name(This, newVal) ((This)->lpVtbl ->put_Name (This, newVal))
807 #define _User_GetPermissions(This, Name, ObjectType, ObjectTypeId, Rights) ((This)->lpVtbl ->GetPermissions (This, Name, ObjectType, ObjectTypeId, Rights))
808 #define _User_SetPermissions(This, Name, ObjectType, Action, Rights, Inherit, ObjectTypeId) ((This)->lpVtbl ->SetPermissions (This, Name, ObjectType, Action, Rights, Inherit, ObjectTypeId))
809 #define _User_ChangePassword(This, OldPassword, NewPassword) ((This)->lpVtbl ->ChangePassword (This, OldPassword, NewPassword))
810 #define _User_get_Groups(This, ppvObject) ((This)->lpVtbl ->get_Groups (This, ppvObject))
811 #define _User_get_Properties(This, ppvObject) ((This)->lpVtbl ->get_Properties (This, ppvObject))
812 #define _User_get_ParentCatalog(This, ppvObject) ((This)->lpVtbl ->get_ParentCatalog (This, ppvObject))
813 #define _User_put_ParentCatalog(This, ppvObject) ((This)->lpVtbl ->put_ParentCatalog (This, ppvObject))
814 #define _User_putref_ParentCatalog(This, ppvObject) ((This)->lpVtbl ->putref_ParentCatalog (This, ppvObject))
815 #endif
816 
817 #endif
818 #endif
819 
820 #ifndef ___Column_INTERFACE_DEFINED__
821 #define ___Column_INTERFACE_DEFINED__
822 
823   EXTERN_C const IID IID__Column;
824 
825 #if defined (__cplusplus) && !defined (CINTERFACE)
826   MIDL_INTERFACE ("0000061C-0000-0010-8000-00AA006D2EA4")
827   _ADOColumn : public IDispatch {
828     public:
829     virtual HRESULT STDMETHODCALLTYPE get_Name (BSTR *pVal) = 0;
830     virtual HRESULT STDMETHODCALLTYPE put_Name (BSTR newVal) = 0;
831     virtual HRESULT STDMETHODCALLTYPE get_Attributes (ColumnAttributesEnum *pVal) = 0;
832     virtual HRESULT STDMETHODCALLTYPE put_Attributes (ColumnAttributesEnum newVal) = 0;
833     virtual HRESULT STDMETHODCALLTYPE get_DefinedSize (long *pVal) = 0;
834     virtual HRESULT STDMETHODCALLTYPE put_DefinedSize (long DefinedSize) = 0;
835     virtual HRESULT STDMETHODCALLTYPE get_NumericScale (BYTE *pVal) = 0;
836     virtual HRESULT STDMETHODCALLTYPE put_NumericScale (BYTE newVal) = 0;
837     virtual HRESULT STDMETHODCALLTYPE get_Precision (long *pVal) = 0;
838     virtual HRESULT STDMETHODCALLTYPE put_Precision (long newVal) = 0;
839     virtual HRESULT STDMETHODCALLTYPE get_RelatedColumn (BSTR *pVal) = 0;
840     virtual HRESULT STDMETHODCALLTYPE put_RelatedColumn (BSTR newVal) = 0;
841     virtual HRESULT STDMETHODCALLTYPE get_SortOrder (SortOrderEnum *pVal) = 0;
842     virtual HRESULT STDMETHODCALLTYPE put_SortOrder (SortOrderEnum newVal) = 0;
843     virtual HRESULT STDMETHODCALLTYPE get_Type (DataTypeEnum *pVal) = 0;
844     virtual HRESULT STDMETHODCALLTYPE put_Type (DataTypeEnum newVal) = 0;
845     virtual HRESULT STDMETHODCALLTYPE get_Properties (ADOProperties **ppvObject) = 0;
846     virtual HRESULT STDMETHODCALLTYPE get_ParentCatalog (_ADOCatalog **ppvObject) = 0;
847     virtual HRESULT STDMETHODCALLTYPE put_ParentCatalog (_ADOCatalog *ppvObject) = 0;
848     virtual HRESULT STDMETHODCALLTYPE putref_ParentCatalog (_ADOCatalog *ppvObject) = 0;
849   };
850 #else
851   typedef struct _ColumnVtbl {
852     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADOColumn *This, REFIID riid, _COM_Outptr_ void **ppvObject);
853     ULONG (STDMETHODCALLTYPE *AddRef) (_ADOColumn *This);
854     ULONG (STDMETHODCALLTYPE *Release) (_ADOColumn *This);
855     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADOColumn *This, UINT *pctinfo);
856     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADOColumn *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
857     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADOColumn *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
858     HRESULT (STDMETHODCALLTYPE *Invoke) (_ADOColumn *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
859     HRESULT (STDMETHODCALLTYPE *get_Name) (_ADOColumn *This, BSTR *pVal);
860     HRESULT (STDMETHODCALLTYPE *put_Name) (_ADOColumn *This, BSTR newVal);
861     HRESULT (STDMETHODCALLTYPE *get_Attributes) (_ADOColumn *This, ColumnAttributesEnum *pVal);
862     HRESULT (STDMETHODCALLTYPE *put_Attributes) (_ADOColumn *This, ColumnAttributesEnum newVal);
863     HRESULT (STDMETHODCALLTYPE *get_DefinedSize) (_ADOColumn *This, long *pVal);
864     HRESULT (STDMETHODCALLTYPE *put_DefinedSize) (_ADOColumn *This, long DefinedSize);
865     HRESULT (STDMETHODCALLTYPE *get_NumericScale) (_ADOColumn *This, BYTE *pVal);
866     HRESULT (STDMETHODCALLTYPE *put_NumericScale) (_ADOColumn *This, BYTE newVal);
867     HRESULT (STDMETHODCALLTYPE *get_Precision) (_ADOColumn *This, long *pVal);
868     HRESULT (STDMETHODCALLTYPE *put_Precision) (_ADOColumn *This, long newVal);
869     HRESULT (STDMETHODCALLTYPE *get_RelatedColumn) (_ADOColumn *This, BSTR *pVal);
870     HRESULT (STDMETHODCALLTYPE *put_RelatedColumn) (_ADOColumn *This, BSTR newVal);
871     HRESULT (STDMETHODCALLTYPE *get_SortOrder) (_ADOColumn *This, SortOrderEnum *pVal);
872     HRESULT (STDMETHODCALLTYPE *put_SortOrder) (_ADOColumn *This, SortOrderEnum newVal);
873     HRESULT (STDMETHODCALLTYPE *get_Type) (_ADOColumn *This, DataTypeEnum *pVal);
874     HRESULT (STDMETHODCALLTYPE *put_Type) (_ADOColumn *This, DataTypeEnum newVal);
875     HRESULT (STDMETHODCALLTYPE *get_Properties) (_ADOColumn *This, ADOProperties **ppvObject);
876     HRESULT (STDMETHODCALLTYPE *get_ParentCatalog) (_ADOColumn *This, _ADOCatalog **ppvObject);
877     HRESULT (STDMETHODCALLTYPE *put_ParentCatalog) (_ADOColumn *This, _ADOCatalog *ppvObject);
878     HRESULT (STDMETHODCALLTYPE *putref_ParentADOCatalog) (_ADOColumn *This, _ADOCatalog *ppvObject);
879     END_INTERFACE
880   } _ColumnVtbl;
881 
882   interface _Column {
883     CONST_VTBL struct _ColumnVtbl *lpVtbl;
884   };
885 
886 #ifdef COBJMACROS
887 #define _Column_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
888 #define _Column_AddRef(This) ((This)->lpVtbl ->AddRef (This))
889 #define _Column_Release(This) ((This)->lpVtbl ->Release (This))
890 #define _Column_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
891 #define _Column_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
892 #define _Column_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
893 #define _Column_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
894 #define _Column_get_Name(This, pVal) ((This)->lpVtbl ->get_Name (This, pVal))
895 #define _Column_put_Name(This, newVal) ((This)->lpVtbl ->put_Name (This, newVal))
896 #define _Column_get_Attributes(This, pVal) ((This)->lpVtbl ->get_Attributes (This, pVal))
897 #define _Column_put_Attributes(This, newVal) ((This)->lpVtbl ->put_Attributes (This, newVal))
898 #define _Column_get_DefinedSize(This, pVal) ((This)->lpVtbl ->get_DefinedSize (This, pVal))
899 #define _Column_put_DefinedSize(This, DefinedSize) ((This)->lpVtbl ->put_DefinedSize (This, DefinedSize))
900 #define _Column_get_NumericScale(This, pVal) ((This)->lpVtbl ->get_NumericScale (This, pVal))
901 #define _Column_put_NumericScale(This, newVal) ((This)->lpVtbl ->put_NumericScale (This, newVal))
902 #define _Column_get_Precision(This, pVal) ((This)->lpVtbl ->get_Precision (This, pVal))
903 #define _Column_put_Precision(This, newVal) ((This)->lpVtbl ->put_Precision (This, newVal))
904 #define _Column_get_RelatedColumn(This, pVal) ((This)->lpVtbl ->get_RelatedColumn (This, pVal))
905 #define _Column_put_RelatedColumn(This, newVal) ((This)->lpVtbl ->put_RelatedColumn (This, newVal))
906 #define _Column_get_SortOrder(This, pVal) ((This)->lpVtbl ->get_SortOrder (This, pVal))
907 #define _Column_put_SortOrder(This, newVal) ((This)->lpVtbl ->put_SortOrder (This, newVal))
908 #define _Column_get_Type(This, pVal) ((This)->lpVtbl ->get_Type (This, pVal))
909 #define _Column_put_Type(This, newVal) ((This)->lpVtbl ->put_Type (This, newVal))
910 #define _Column_get_Properties(This, ppvObject) ((This)->lpVtbl ->get_Properties (This, ppvObject))
911 #define _Column_get_ParentCatalog(This, ppvObject) ((This)->lpVtbl ->get_ParentCatalog (This, ppvObject))
912 #define _Column_put_ParentCatalog(This, ppvObject) ((This)->lpVtbl ->put_ParentCatalog (This, ppvObject))
913 #define _Column_putref_ParentCatalog(This, ppvObject) ((This)->lpVtbl ->putref_ParentCatalog (This, ppvObject))
914 #endif
915 
916 #endif
917 #endif
918 
919 #ifndef ___Index_INTERFACE_DEFINED__
920 #define ___Index_INTERFACE_DEFINED__
921 
922   EXTERN_C const IID IID__Index;
923 
924 #if defined (__cplusplus) && !defined (CINTERFACE)
925   MIDL_INTERFACE ("0000061F-0000-0010-8000-00AA006D2EA4")
926   _ADOIndex : public IDispatch {
927     public:
928     virtual HRESULT STDMETHODCALLTYPE get_Name (BSTR *pVal) = 0;
929     virtual HRESULT STDMETHODCALLTYPE put_Name (BSTR newVal) = 0;
930     virtual HRESULT STDMETHODCALLTYPE get_Clustered (VARIANT_BOOL *pVal) = 0;
931     virtual HRESULT STDMETHODCALLTYPE put_Clustered (VARIANT_BOOL newVal) = 0;
932     virtual HRESULT STDMETHODCALLTYPE get_IndexNulls (AllowNullsEnum *pVal) = 0;
933     virtual HRESULT STDMETHODCALLTYPE put_IndexNulls (AllowNullsEnum newVal) = 0;
934     virtual HRESULT STDMETHODCALLTYPE get_PrimaryKey (VARIANT_BOOL *pVal) = 0;
935     virtual HRESULT STDMETHODCALLTYPE put_PrimaryKey (VARIANT_BOOL newVal) = 0;
936     virtual HRESULT STDMETHODCALLTYPE get_Unique (VARIANT_BOOL *pVal) = 0;
937     virtual HRESULT STDMETHODCALLTYPE put_Unique (VARIANT_BOOL newVal) = 0;
938     virtual HRESULT STDMETHODCALLTYPE get_Columns (ADOColumns **ppvObject) = 0;
939     virtual HRESULT STDMETHODCALLTYPE get_Properties (ADOProperties **ppvObject) = 0;
940   };
941 #else
942   typedef struct _IndexVtbl {
943     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADOIndex *This, REFIID riid, _COM_Outptr_ void **ppvObject);
944     ULONG (STDMETHODCALLTYPE *AddRef) (_ADOIndex *This);
945     ULONG (STDMETHODCALLTYPE *Release) (_ADOIndex *This);
946     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADOIndex *This, UINT *pctinfo);
947     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADOIndex *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
948     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADOIndex *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
949     HRESULT (STDMETHODCALLTYPE *Invoke) (_ADOIndex *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
950     HRESULT (STDMETHODCALLTYPE *get_Name) (_ADOIndex *This, BSTR *pVal);
951     HRESULT (STDMETHODCALLTYPE *put_Name) (_ADOIndex *This, BSTR newVal);
952     HRESULT (STDMETHODCALLTYPE *get_Clustered) (_ADOIndex *This, VARIANT_BOOL *pVal);
953     HRESULT (STDMETHODCALLTYPE *put_Clustered) (_ADOIndex *This, VARIANT_BOOL newVal);
954     HRESULT (STDMETHODCALLTYPE *get_IndexNulls) (_ADOIndex *This, AllowNullsEnum *pVal);
955     HRESULT (STDMETHODCALLTYPE *put_IndexNulls) (_ADOIndex *This, AllowNullsEnum newVal);
956     HRESULT (STDMETHODCALLTYPE *get_PrimaryKey) (_ADOIndex *This, VARIANT_BOOL *pVal);
957     HRESULT (STDMETHODCALLTYPE *put_PrimaryKey) (_ADOIndex *This, VARIANT_BOOL newVal);
958     HRESULT (STDMETHODCALLTYPE *get_Unique) (_ADOIndex *This, VARIANT_BOOL *pVal);
959     HRESULT (STDMETHODCALLTYPE *put_Unique) (_ADOIndex *This, VARIANT_BOOL newVal);
960     HRESULT (STDMETHODCALLTYPE *get_Columns) (_ADOIndex *This, ADOColumns **ppvObject);
961     HRESULT (STDMETHODCALLTYPE *get_Properties) (_ADOIndex *This, ADOProperties **ppvObject);
962     END_INTERFACE
963   } _IndexVtbl;
964 
965   interface _Index {
966     CONST_VTBL struct _IndexVtbl *lpVtbl;
967   };
968 
969 #ifdef COBJMACROS
970 #define _Index_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
971 #define _Index_AddRef(This) ((This)->lpVtbl ->AddRef (This))
972 #define _Index_Release(This) ((This)->lpVtbl ->Release (This))
973 #define _Index_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
974 #define _Index_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
975 #define _Index_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
976 #define _Index_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
977 #define _Index_get_Name(This, pVal) ((This)->lpVtbl ->get_Name (This, pVal))
978 #define _Index_put_Name(This, newVal) ((This)->lpVtbl ->put_Name (This, newVal))
979 #define _Index_get_Clustered(This, pVal) ((This)->lpVtbl ->get_Clustered (This, pVal))
980 #define _Index_put_Clustered(This, newVal) ((This)->lpVtbl ->put_Clustered (This, newVal))
981 #define _Index_get_IndexNulls(This, pVal) ((This)->lpVtbl ->get_IndexNulls (This, pVal))
982 #define _Index_put_IndexNulls(This, newVal) ((This)->lpVtbl ->put_IndexNulls (This, newVal))
983 #define _Index_get_PrimaryKey(This, pVal) ((This)->lpVtbl ->get_PrimaryKey (This, pVal))
984 #define _Index_put_PrimaryKey(This, newVal) ((This)->lpVtbl ->put_PrimaryKey (This, newVal))
985 #define _Index_get_Unique(This, pVal) ((This)->lpVtbl ->get_Unique (This, pVal))
986 #define _Index_put_Unique(This, newVal) ((This)->lpVtbl ->put_Unique (This, newVal))
987 #define _Index_get_Columns(This, ppvObject) ((This)->lpVtbl ->get_Columns (This, ppvObject))
988 #define _Index_get_Properties(This, ppvObject) ((This)->lpVtbl ->get_Properties (This, ppvObject))
989 #endif
990 
991 #endif
992 #endif
993 
994 #ifndef ___Key_INTERFACE_DEFINED__
995 #define ___Key_INTERFACE_DEFINED__
996 
997   EXTERN_C const IID IID__Key;
998 
999 #if defined (__cplusplus) && !defined (CINTERFACE)
1000   MIDL_INTERFACE ("00000622-0000-0010-8000-00AA006D2EA4")
1001   _ADOKey : public IDispatch {
1002     public:
1003     virtual HRESULT STDMETHODCALLTYPE get_Name (BSTR *pVal) = 0;
1004     virtual HRESULT STDMETHODCALLTYPE put_Name (BSTR newVal) = 0;
1005     virtual HRESULT STDMETHODCALLTYPE get_DeleteRule (RuleEnum *pVal) = 0;
1006     virtual HRESULT STDMETHODCALLTYPE put_DeleteRule (RuleEnum newVal) = 0;
1007     virtual HRESULT STDMETHODCALLTYPE get_Type (KeyTypeEnum *pVal) = 0;
1008     virtual HRESULT STDMETHODCALLTYPE put_Type (KeyTypeEnum newVal) = 0;
1009     virtual HRESULT STDMETHODCALLTYPE get_RelatedTable (BSTR *pVal) = 0;
1010     virtual HRESULT STDMETHODCALLTYPE put_RelatedTable (BSTR newVal) = 0;
1011     virtual HRESULT STDMETHODCALLTYPE get_UpdateRule (RuleEnum *pVal) = 0;
1012     virtual HRESULT STDMETHODCALLTYPE put_UpdateRule (RuleEnum newVal) = 0;
1013     virtual HRESULT STDMETHODCALLTYPE get_Columns (ADOColumns **ppvObject) = 0;
1014   };
1015 #else
1016   typedef struct _KeyVtbl {
1017     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADOKey *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1018     ULONG (STDMETHODCALLTYPE *AddRef) (_ADOKey *This);
1019     ULONG (STDMETHODCALLTYPE *Release) (_ADOKey *This);
1020     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADOKey *This, UINT *pctinfo);
1021     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADOKey *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1022     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADOKey *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1023     HRESULT (STDMETHODCALLTYPE *Invoke) (_ADOKey *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1024     HRESULT (STDMETHODCALLTYPE *get_Name) (_ADOKey *This, BSTR *pVal);
1025     HRESULT (STDMETHODCALLTYPE *put_Name) (_ADOKey *This, BSTR newVal);
1026     HRESULT (STDMETHODCALLTYPE *get_DeleteRule) (_ADOKey *This, RuleEnum *pVal);
1027     HRESULT (STDMETHODCALLTYPE *put_DeleteRule) (_ADOKey *This, RuleEnum newVal);
1028     HRESULT (STDMETHODCALLTYPE *get_Type) (_ADOKey *This, KeyTypeEnum *pVal);
1029     HRESULT (STDMETHODCALLTYPE *put_Type) (_ADOKey *This, KeyTypeEnum newVal);
1030     HRESULT (STDMETHODCALLTYPE *get_RelatedTable) (_ADOKey *This, BSTR *pVal);
1031     HRESULT (STDMETHODCALLTYPE *put_RelatedTable) (_ADOKey *This, BSTR newVal);
1032     HRESULT (STDMETHODCALLTYPE *get_UpdateRule) (_ADOKey *This, RuleEnum *pVal);
1033     HRESULT (STDMETHODCALLTYPE *put_UpdateRule) (_ADOKey *This, RuleEnum newVal);
1034     HRESULT (STDMETHODCALLTYPE *get_Columns) (_ADOKey *This, ADOColumns **ppvObject);
1035     END_INTERFACE
1036   } _KeyVtbl;
1037 
1038   interface _Key {
1039     CONST_VTBL struct _KeyVtbl *lpVtbl;
1040   };
1041 
1042 #ifdef COBJMACROS
1043 #define _Key_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1044 #define _Key_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1045 #define _Key_Release(This) ((This)->lpVtbl ->Release (This))
1046 #define _Key_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1047 #define _Key_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1048 #define _Key_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1049 #define _Key_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1050 #define _Key_get_Name(This, pVal) ((This)->lpVtbl ->get_Name (This, pVal))
1051 #define _Key_put_Name(This, newVal) ((This)->lpVtbl ->put_Name (This, newVal))
1052 #define _Key_get_DeleteRule(This, pVal) ((This)->lpVtbl ->get_DeleteRule (This, pVal))
1053 #define _Key_put_DeleteRule(This, newVal) ((This)->lpVtbl ->put_DeleteRule (This, newVal))
1054 #define _Key_get_Type(This, pVal) ((This)->lpVtbl ->get_Type (This, pVal))
1055 #define _Key_put_Type(This, newVal) ((This)->lpVtbl ->put_Type (This, newVal))
1056 #define _Key_get_RelatedTable(This, pVal) ((This)->lpVtbl ->get_RelatedTable (This, pVal))
1057 #define _Key_put_RelatedTable(This, newVal) ((This)->lpVtbl ->put_RelatedTable (This, newVal))
1058 #define _Key_get_UpdateRule(This, pVal) ((This)->lpVtbl ->get_UpdateRule (This, pVal))
1059 #define _Key_put_UpdateRule(This, newVal) ((This)->lpVtbl ->put_UpdateRule (This, newVal))
1060 #define _Key_get_Columns(This, ppvObject) ((This)->lpVtbl ->get_Columns (This, ppvObject))
1061 #endif
1062 
1063 #endif
1064 #endif
1065 
1066 #ifndef __View_INTERFACE_DEFINED__
1067 #define __View_INTERFACE_DEFINED__
1068 
1069   EXTERN_C const IID IID_View;
1070 
1071 #if defined (__cplusplus) && !defined (CINTERFACE)
1072   MIDL_INTERFACE ("00000613-0000-0010-8000-00AA006D2EA4")
1073   ADOView : public IDispatch {
1074     public:
1075     virtual HRESULT STDMETHODCALLTYPE get_Command (VARIANT *pVal) = 0;
1076     virtual HRESULT STDMETHODCALLTYPE put_Command (VARIANT newVal) = 0;
1077     virtual HRESULT STDMETHODCALLTYPE putref_Command (IDispatch *pComm) = 0;
1078     virtual HRESULT STDMETHODCALLTYPE get_Name (BSTR *pVal) = 0;
1079     virtual HRESULT STDMETHODCALLTYPE get_DateCreated (VARIANT *pVal) = 0;
1080     virtual HRESULT STDMETHODCALLTYPE get_DateModified (VARIANT *pVal) = 0;
1081   };
1082 #else
1083   typedef struct ViewVtbl {
1084     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOView *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1085     ULONG (STDMETHODCALLTYPE *AddRef) (ADOView *This);
1086     ULONG (STDMETHODCALLTYPE *Release) (ADOView *This);
1087     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOView *This, UINT *pctinfo);
1088     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOView *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1089     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOView *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1090     HRESULT (STDMETHODCALLTYPE *Invoke) (ADOView *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1091     HRESULT (STDMETHODCALLTYPE *get_Command) (ADOView *This, VARIANT *pVal);
1092     HRESULT (STDMETHODCALLTYPE *put_Command) (ADOView *This, VARIANT newVal);
1093     HRESULT (STDMETHODCALLTYPE *putref_Command) (ADOView *This, IDispatch *pComm);
1094     HRESULT (STDMETHODCALLTYPE *get_Name) (ADOView *This, BSTR *pVal);
1095     HRESULT (STDMETHODCALLTYPE *get_DateCreated) (ADOView *This, VARIANT *pVal);
1096     HRESULT (STDMETHODCALLTYPE *get_DateModified) (ADOView *This, VARIANT *pVal);
1097     END_INTERFACE
1098   } ViewVtbl;
1099 
1100   interface View {
1101     CONST_VTBL struct ViewVtbl *lpVtbl;
1102   };
1103 
1104 #ifdef COBJMACROS
1105 #define View_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1106 #define View_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1107 #define View_Release(This) ((This)->lpVtbl ->Release (This))
1108 #define View_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1109 #define View_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1110 #define View_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1111 #define View_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1112 #define View_get_Command(This, pVal) ((This)->lpVtbl ->get_Command (This, pVal))
1113 #define View_put_Command(This, newVal) ((This)->lpVtbl ->put_Command (This, newVal))
1114 #define View_putref_Command(This, pComm) ((This)->lpVtbl ->putref_Command (This, pComm))
1115 #define View_get_Name(This, pVal) ((This)->lpVtbl ->get_Name (This, pVal))
1116 #define View_get_DateCreated(This, pVal) ((This)->lpVtbl ->get_DateCreated (This, pVal))
1117 #define View_get_DateModified(This, pVal) ((This)->lpVtbl ->get_DateModified (This, pVal))
1118 #endif
1119 
1120 #endif
1121 #endif
1122 
1123 #ifndef __Procedure_INTERFACE_DEFINED__
1124 #define __Procedure_INTERFACE_DEFINED__
1125 
1126   EXTERN_C const IID IID_Procedure;
1127 
1128 #if defined (__cplusplus) && !defined (CINTERFACE)
1129   MIDL_INTERFACE ("00000625-0000-0010-8000-00AA006D2EA4")
1130   ADOProcedure : public IDispatch {
1131     public:
1132     virtual HRESULT STDMETHODCALLTYPE get_Command (VARIANT *pVar) = 0;
1133     virtual HRESULT STDMETHODCALLTYPE put_Command (VARIANT newVal) = 0;
1134     virtual HRESULT STDMETHODCALLTYPE putref_Command (IDispatch *pComm) = 0;
1135     virtual HRESULT STDMETHODCALLTYPE get_Name (BSTR *pVal) = 0;
1136     virtual HRESULT STDMETHODCALLTYPE get_DateCreated (VARIANT *pVal) = 0;
1137     virtual HRESULT STDMETHODCALLTYPE get_DateModified (VARIANT *pVal) = 0;
1138   };
1139 #else
1140   typedef struct ProcedureVtbl {
1141     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOProcedure *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1142     ULONG (STDMETHODCALLTYPE *AddRef) (ADOProcedure *This);
1143     ULONG (STDMETHODCALLTYPE *Release) (ADOProcedure *This);
1144     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOProcedure *This, UINT *pctinfo);
1145     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOProcedure *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1146     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOProcedure *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1147     HRESULT (STDMETHODCALLTYPE *Invoke) (ADOProcedure *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1148     HRESULT (STDMETHODCALLTYPE *get_Command) (ADOProcedure *This, VARIANT *pVar);
1149     HRESULT (STDMETHODCALLTYPE *put_Command) (ADOProcedure *This, VARIANT newVal);
1150     HRESULT (STDMETHODCALLTYPE *putref_Command) (ADOProcedure *This, IDispatch *pComm);
1151     HRESULT (STDMETHODCALLTYPE *get_Name) (ADOProcedure *This, BSTR *pVal);
1152     HRESULT (STDMETHODCALLTYPE *get_DateCreated) (ADOProcedure *This, VARIANT *pVal);
1153     HRESULT (STDMETHODCALLTYPE *get_DateModified) (ADOProcedure *This, VARIANT *pVal);
1154     END_INTERFACE
1155   } ProcedureVtbl;
1156 
1157   interface Procedure {
1158     CONST_VTBL struct ProcedureVtbl *lpVtbl;
1159   };
1160 
1161 #ifdef COBJMACROS
1162 #define Procedure_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1163 #define Procedure_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1164 #define Procedure_Release(This) ((This)->lpVtbl ->Release (This))
1165 #define Procedure_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1166 #define Procedure_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1167 #define Procedure_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1168 #define Procedure_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1169 #define Procedure_get_Command(This, pVar) ((This)->lpVtbl ->get_Command (This, pVar))
1170 #define Procedure_put_Command(This, newVal) ((This)->lpVtbl ->put_Command (This, newVal))
1171 #define Procedure_putref_Command(This, pComm) ((This)->lpVtbl ->putref_Command (This, pComm))
1172 #define Procedure_get_Name(This, pVal) ((This)->lpVtbl ->get_Name (This, pVal))
1173 #define Procedure_get_DateCreated(This, pVal) ((This)->lpVtbl ->get_DateCreated (This, pVal))
1174 #define Procedure_get_DateModified(This, pVal) ((This)->lpVtbl ->get_DateModified (This, pVal))
1175 #endif
1176 
1177 #endif
1178 #endif
1179 
1180   EXTERN_C const CLSID CLSID_Catalog;
1181 
1182 #ifdef __cplusplus
1183   Catalog;
1184 #endif
1185   EXTERN_C const CLSID CLSID_Table;
1186 #ifdef __cplusplus
1187   Table;
1188 #endif
1189 #ifndef __Property_INTERFACE_DEFINED__
1190 #define __Property_INTERFACE_DEFINED__
1191 
1192   EXTERN_C const IID IID_Property;
1193 
1194 #if defined (__cplusplus) && !defined (CINTERFACE)
1195   MIDL_INTERFACE ("00000503-0000-0010-8000-00AA006D2EA4")
1196   ADOProperty : public IDispatch {
1197     public:
1198     virtual HRESULT STDMETHODCALLTYPE get_Value (VARIANT *pval) = 0;
1199     virtual HRESULT STDMETHODCALLTYPE put_Value (VARIANT val) = 0;
1200     virtual HRESULT STDMETHODCALLTYPE get_Name (BSTR *pbstr) = 0;
1201     virtual HRESULT STDMETHODCALLTYPE get_Type (DataTypeEnum *ptype) = 0;
1202     virtual HRESULT STDMETHODCALLTYPE get_Attributes (long *plAttributes) = 0;
1203     virtual HRESULT STDMETHODCALLTYPE put_Attributes (long lAttributes) = 0;
1204   };
1205 #else
1206   typedef struct PropertyVtbl {
1207     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOProperty *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1208     ULONG (STDMETHODCALLTYPE *AddRef) (ADOProperty *This);
1209     ULONG (STDMETHODCALLTYPE *Release) (ADOProperty *This);
1210     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOProperty *This, UINT *pctinfo);
1211     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOProperty *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1212     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOProperty *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1213     HRESULT (STDMETHODCALLTYPE *Invoke) (ADOProperty *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1214     HRESULT (STDMETHODCALLTYPE *get_Value) (ADOProperty *This, VARIANT *pval);
1215     HRESULT (STDMETHODCALLTYPE *put_Value) (ADOProperty *This, VARIANT val);
1216     HRESULT (STDMETHODCALLTYPE *get_Name) (ADOProperty *This, BSTR *pbstr);
1217     HRESULT (STDMETHODCALLTYPE *get_Type) (ADOProperty *This, DataTypeEnum *ptype);
1218     HRESULT (STDMETHODCALLTYPE *get_Attributes) (ADOProperty *This, long *plAttributes);
1219     HRESULT (STDMETHODCALLTYPE *put_Attributes) (ADOProperty *This, long lAttributes);
1220     END_INTERFACE
1221   } PropertyVtbl;
1222 
1223   interface Property {
1224     CONST_VTBL struct PropertyVtbl *lpVtbl;
1225   };
1226 
1227 #ifdef COBJMACROS
1228 #define Property_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1229 #define Property_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1230 #define Property_Release(This) ((This)->lpVtbl ->Release (This))
1231 #define Property_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1232 #define Property_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1233 #define Property_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1234 #define Property_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1235 #define Property_get_Value(This, pval) ((This)->lpVtbl ->get_Value (This, pval))
1236 #define Property_put_Value(This, val) ((This)->lpVtbl ->put_Value (This, val))
1237 #define Property_get_Name(This, pbstr) ((This)->lpVtbl ->get_Name (This, pbstr))
1238 #define Property_get_Type(This, ptype) ((This)->lpVtbl ->get_Type (This, ptype))
1239 #define Property_get_Attributes(This, plAttributes) ((This)->lpVtbl ->get_Attributes (This, plAttributes))
1240 #define Property_put_Attributes(This, lAttributes) ((This)->lpVtbl ->put_Attributes (This, lAttributes))
1241 #endif
1242 
1243 #endif
1244 #endif
1245 
1246   EXTERN_C const CLSID CLSID_Group;
1247 
1248 #ifdef __cplusplus
1249   Group;
1250 #endif
1251 
1252   EXTERN_C const CLSID CLSID_User;
1253 
1254 #ifdef __cplusplus
1255   User;
1256 #endif
1257 
1258   EXTERN_C const CLSID CLSID_Column;
1259 
1260 #ifdef __cplusplus
1261   Column;
1262 #endif
1263 
1264   EXTERN_C const CLSID CLSID_Index;
1265 
1266 #ifdef __cplusplus
1267   Index;
1268 #endif
1269 
1270   EXTERN_C const CLSID CLSID_Key;
1271 
1272 #ifdef __cplusplus
1273   Key;
1274 #endif
1275 
1276 #ifndef __Tables_INTERFACE_DEFINED__
1277 #define __Tables_INTERFACE_DEFINED__
1278 
1279   EXTERN_C const IID IID_Tables;
1280 
1281 #if defined (__cplusplus) && !defined (CINTERFACE)
1282   MIDL_INTERFACE ("00000611-0000-0010-8000-00AA006D2EA4")
1283   ADOTables : public _ADOCollection {
1284     public:
1285     virtual HRESULT STDMETHODCALLTYPE get_Item (VARIANT Item, Table **ppvObject) = 0;
1286     virtual HRESULT STDMETHODCALLTYPE Append (VARIANT Item) = 0;
1287     virtual HRESULT STDMETHODCALLTYPE Delete (VARIANT Item) = 0;
1288   };
1289 #else
1290   typedef struct TablesVtbl {
1291     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOTables *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1292     ULONG (STDMETHODCALLTYPE *AddRef) (ADOTables *This);
1293     ULONG (STDMETHODCALLTYPE *Release) (ADOTables *This);
1294     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOTables *This, UINT *pctinfo);
1295     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOTables *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1296     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOTables *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1297     HRESULT (STDMETHODCALLTYPE *Invoke) (ADOTables *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1298     HRESULT (STDMETHODCALLTYPE *get_Count) (ADOTables *This, long *c);
1299     HRESULT (STDMETHODCALLTYPE *_NewEnum) (ADOTables *This, IUnknown **ppvObject);
1300     HRESULT (STDMETHODCALLTYPE *Refresh) (ADOTables *This);
1301     HRESULT (STDMETHODCALLTYPE *get_Item) (ADOTables *This, VARIANT Item, Table **ppvObject);
1302     HRESULT (STDMETHODCALLTYPE *Append) (ADOTables *This, VARIANT Item);
1303     HRESULT (STDMETHODCALLTYPE *Delete) (ADOTables *This, VARIANT Item);
1304     END_INTERFACE
1305   } TablesVtbl;
1306 
1307   interface Tables {
1308     CONST_VTBL struct TablesVtbl *lpVtbl;
1309   };
1310 
1311 #ifdef COBJMACROS
1312 #define Tables_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1313 #define Tables_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1314 #define Tables_Release(This) ((This)->lpVtbl ->Release (This))
1315 #define Tables_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1316 #define Tables_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1317 #define Tables_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1318 #define Tables_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1319 #define Tables_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
1320 #define Tables__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
1321 #define Tables_Refresh(This) ((This)->lpVtbl ->Refresh (This))
1322 #define Tables_get_Item(This, Item, ppvObject) ((This)->lpVtbl ->get_Item (This, Item, ppvObject))
1323 #define Tables_Append(This, Item) ((This)->lpVtbl ->Append (This, Item))
1324 #define Tables_Delete(This, Item) ((This)->lpVtbl ->Delete (This, Item))
1325 #endif
1326 
1327 #endif
1328 #endif
1329 
1330 #ifndef __Columns_INTERFACE_DEFINED__
1331 #define __Columns_INTERFACE_DEFINED__
1332 
1333   EXTERN_C const IID IID_Columns;
1334 
1335 #if defined (__cplusplus) && !defined (CINTERFACE)
1336   MIDL_INTERFACE ("0000061D-0000-0010-8000-00AA006D2EA4")
1337   ADOColumns : public _ADOCollection {
1338     public:
1339     virtual HRESULT STDMETHODCALLTYPE get_Item (VARIANT Item, Column **ppvObject) = 0;
1340     virtual HRESULT STDMETHODCALLTYPE Append (VARIANT Item, DataTypeEnum Type = adVarWChar, long DefinedSize = 0) = 0;
1341     virtual HRESULT STDMETHODCALLTYPE Delete (VARIANT Item) = 0;
1342   };
1343 #else
1344   typedef struct ColumnsVtbl {
1345     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOColumns *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1346     ULONG (STDMETHODCALLTYPE *AddRef) (ADOColumns *This);
1347     ULONG (STDMETHODCALLTYPE *Release) (ADOColumns *This);
1348     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOColumns *This, UINT *pctinfo);
1349     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOColumns *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1350     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOColumns *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1351     HRESULT (STDMETHODCALLTYPE *Invoke) (ADOColumns *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1352     HRESULT (STDMETHODCALLTYPE *get_Count) (ADOColumns *This, long *c);
1353     HRESULT (STDMETHODCALLTYPE *_NewEnum) (ADOColumns *This, IUnknown **ppvObject);
1354     HRESULT (STDMETHODCALLTYPE *Refresh) (ADOColumns *This);
1355     HRESULT (STDMETHODCALLTYPE *get_Item) (ADOColumns *This, VARIANT Item, Column **ppvObject);
1356     HRESULT (STDMETHODCALLTYPE *Append) (ADOColumns *This, VARIANT Item, DataTypeEnum Type, long DefinedSize);
1357     HRESULT (STDMETHODCALLTYPE *Delete) (ADOColumns *This, VARIANT Item);
1358     END_INTERFACE
1359   } ColumnsVtbl;
1360 
1361   interface Columns {
1362     CONST_VTBL struct ColumnsVtbl *lpVtbl;
1363   };
1364 
1365 #ifdef COBJMACROS
1366 #define Columns_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1367 #define Columns_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1368 #define Columns_Release(This) ((This)->lpVtbl ->Release (This))
1369 #define Columns_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1370 #define Columns_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1371 #define Columns_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1372 #define Columns_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1373 #define Columns_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
1374 #define Columns__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
1375 #define Columns_Refresh(This) ((This)->lpVtbl ->Refresh (This))
1376 #define Columns_get_Item(This, Item, ppvObject) ((This)->lpVtbl ->get_Item (This, Item, ppvObject))
1377 #define Columns_Append(This, Item, Type, DefinedSize) ((This)->lpVtbl ->Append (This, Item, Type, DefinedSize))
1378 #define Columns_Delete(This, Item) ((This)->lpVtbl ->Delete (This, Item))
1379 #endif
1380 
1381 #endif
1382 #endif
1383 
1384 #ifndef __Procedures_INTERFACE_DEFINED__
1385 #define __Procedures_INTERFACE_DEFINED__
1386 
1387   EXTERN_C const IID IID_Procedures;
1388 
1389 #if defined (__cplusplus) && !defined (CINTERFACE)
1390   MIDL_INTERFACE ("00000626-0000-0010-8000-00AA006D2EA4")
1391   ADOProcedures : public _ADOCollection {
1392     public:
1393     virtual HRESULT STDMETHODCALLTYPE get_Item (VARIANT Item, ADOProcedure **ppvObject) = 0;
1394     virtual HRESULT STDMETHODCALLTYPE Append (BSTR Name, IDispatch *Command) = 0;
1395     virtual HRESULT STDMETHODCALLTYPE Delete (VARIANT Item) = 0;
1396   };
1397 #else
1398   typedef struct ProceduresVtbl {
1399     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOProcedures *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1400     ULONG (STDMETHODCALLTYPE *AddRef) (ADOProcedures *This);
1401     ULONG (STDMETHODCALLTYPE *Release) (ADOProcedures *This);
1402     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOProcedures *This, UINT *pctinfo);
1403     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOProcedures *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1404     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOProcedures *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1405     HRESULT (STDMETHODCALLTYPE *Invoke) (ADOProcedures *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1406     HRESULT (STDMETHODCALLTYPE *get_Count) (ADOProcedures *This, long *c);
1407     HRESULT (STDMETHODCALLTYPE *_NewEnum) (ADOProcedures *This, IUnknown **ppvObject);
1408     HRESULT (STDMETHODCALLTYPE *Refresh) (ADOProcedures *This);
1409     HRESULT (STDMETHODCALLTYPE *get_Item) (ADOProcedures *This, VARIANT Item, ADOProcedure **ppvObject);
1410     HRESULT (STDMETHODCALLTYPE *Append) (ADOProcedures *This, BSTR Name, IDispatch *Command);
1411     HRESULT (STDMETHODCALLTYPE *Delete) (ADOProcedures *This, VARIANT Item);
1412     END_INTERFACE
1413   } ProceduresVtbl;
1414 
1415   interface Procedures {
1416     CONST_VTBL struct ProceduresVtbl *lpVtbl;
1417   };
1418 
1419 #ifdef COBJMACROS
1420 #define Procedures_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1421 #define Procedures_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1422 #define Procedures_Release(This) ((This)->lpVtbl ->Release (This))
1423 #define Procedures_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1424 #define Procedures_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1425 #define Procedures_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1426 #define Procedures_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1427 #define Procedures_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
1428 #define Procedures__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
1429 #define Procedures_Refresh(This) ((This)->lpVtbl ->Refresh (This))
1430 #define Procedures_get_Item(This, Item, ppvObject) ((This)->lpVtbl ->get_Item (This, Item, ppvObject))
1431 #define Procedures_Append(This, Name, Command) ((This)->lpVtbl ->Append (This, Name, Command))
1432 #define Procedures_Delete(This, Item) ((This)->lpVtbl ->Delete (This, Item))
1433 #endif
1434 
1435 #endif
1436 #endif
1437 
1438 #ifndef __Views_INTERFACE_DEFINED__
1439 #define __Views_INTERFACE_DEFINED__
1440 
1441   EXTERN_C const IID IID_Views;
1442 
1443 #if defined (__cplusplus) && !defined (CINTERFACE)
1444   MIDL_INTERFACE ("00000614-0000-0010-8000-00AA006D2EA4")
1445   ADOViews : public _ADOCollection {
1446     public:
1447     virtual HRESULT STDMETHODCALLTYPE get_Item (VARIANT Item, ADOView **ppvObject) = 0;
1448     virtual HRESULT STDMETHODCALLTYPE Append (BSTR Name, IDispatch *Command) = 0;
1449     virtual HRESULT STDMETHODCALLTYPE Delete (VARIANT Item) = 0;
1450   };
1451 #else
1452   typedef struct ViewsVtbl {
1453     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOViews *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1454     ULONG (STDMETHODCALLTYPE *AddRef) (ADOViews *This);
1455     ULONG (STDMETHODCALLTYPE *Release) (ADOViews *This);
1456     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOViews *This, UINT *pctinfo);
1457     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOViews *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1458     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOViews *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1459     HRESULT (STDMETHODCALLTYPE *Invoke) (ADOViews *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1460     HRESULT (STDMETHODCALLTYPE *get_Count) (ADOViews *This, long *c);
1461     HRESULT (STDMETHODCALLTYPE *_NewEnum) (ADOViews *This, IUnknown **ppvObject);
1462     HRESULT (STDMETHODCALLTYPE *Refresh) (ADOViews *This);
1463     HRESULT (STDMETHODCALLTYPE *get_Item) (ADOViews *This, VARIANT Item, ADOView **ppvObject);
1464     HRESULT (STDMETHODCALLTYPE *Append) (ADOViews *This, BSTR Name, IDispatch *Command);
1465     HRESULT (STDMETHODCALLTYPE *Delete) (ADOViews *This, VARIANT Item);
1466     END_INTERFACE
1467   } ViewsVtbl;
1468 
1469   interface Views {
1470     CONST_VTBL struct ViewsVtbl *lpVtbl;
1471   };
1472 
1473 #ifdef COBJMACROS
1474 #define Views_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1475 #define Views_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1476 #define Views_Release(This) ((This)->lpVtbl ->Release (This))
1477 #define Views_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1478 #define Views_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1479 #define Views_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1480 #define Views_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1481 #define Views_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
1482 #define Views__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
1483 #define Views_Refresh(This) ((This)->lpVtbl ->Refresh (This))
1484 #define Views_get_Item(This, Item, ppvObject) ((This)->lpVtbl ->get_Item (This, Item, ppvObject))
1485 #define Views_Append(This, Name, Command) ((This)->lpVtbl ->Append (This, Name, Command))
1486 #define Views_Delete(This, Item) ((This)->lpVtbl ->Delete (This, Item))
1487 #endif
1488 
1489 #endif
1490 #endif
1491 
1492 #ifndef __Indexes_INTERFACE_DEFINED__
1493 #define __Indexes_INTERFACE_DEFINED__
1494 
1495   EXTERN_C const IID IID_Indexes;
1496 
1497 #if defined (__cplusplus) && !defined (CINTERFACE)
1498   MIDL_INTERFACE ("00000620-0000-0010-8000-00AA006D2EA4")
1499   ADOIndexes : public _ADOCollection {
1500     public:
1501     virtual HRESULT STDMETHODCALLTYPE get_Item (VARIANT Item, Index **ppvObject) = 0;
1502     virtual HRESULT STDMETHODCALLTYPE Append (VARIANT Item, VARIANT columns) = 0;
1503     virtual HRESULT STDMETHODCALLTYPE Delete (VARIANT Item) = 0;
1504   };
1505 #else
1506   typedef struct IndexesVtbl {
1507     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOIndexes *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1508     ULONG (STDMETHODCALLTYPE *AddRef) (ADOIndexes *This);
1509     ULONG (STDMETHODCALLTYPE *Release) (ADOIndexes *This);
1510     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOIndexes *This, UINT *pctinfo);
1511     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOIndexes *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1512     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOIndexes *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1513     HRESULT (STDMETHODCALLTYPE *Invoke) (ADOIndexes *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1514     HRESULT (STDMETHODCALLTYPE *get_Count) (ADOIndexes *This, long *c);
1515     HRESULT (STDMETHODCALLTYPE *_NewEnum) (ADOIndexes *This, IUnknown **ppvObject);
1516     HRESULT (STDMETHODCALLTYPE *Refresh) (ADOIndexes *This);
1517     HRESULT (STDMETHODCALLTYPE *get_Item) (ADOIndexes *This, VARIANT Item, Index **ppvObject);
1518     HRESULT (STDMETHODCALLTYPE *Append) (ADOIndexes *This, VARIANT Item, VARIANT columns);
1519     HRESULT (STDMETHODCALLTYPE *Delete) (ADOIndexes *This, VARIANT Item);
1520     END_INTERFACE
1521   } IndexesVtbl;
1522 
1523   interface Indexes {
1524     CONST_VTBL struct IndexesVtbl *lpVtbl;
1525   };
1526 
1527 #ifdef COBJMACROS
1528 #define Indexes_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1529 #define Indexes_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1530 #define Indexes_Release(This) ((This)->lpVtbl ->Release (This))
1531 #define Indexes_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1532 #define Indexes_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1533 #define Indexes_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1534 #define Indexes_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1535 #define Indexes_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
1536 #define Indexes__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
1537 #define Indexes_Refresh(This) ((This)->lpVtbl ->Refresh (This))
1538 #define Indexes_get_Item(This, Item, ppvObject) ((This)->lpVtbl ->get_Item (This, Item, ppvObject))
1539 #define Indexes_Append(This, Item, columns) ((This)->lpVtbl ->Append (This, Item, columns))
1540 #define Indexes_Delete(This, Item) ((This)->lpVtbl ->Delete (This, Item))
1541 #endif
1542 
1543 #endif
1544 #endif
1545 
1546 #ifndef __Keys_INTERFACE_DEFINED__
1547 #define __Keys_INTERFACE_DEFINED__
1548 
1549   EXTERN_C const IID IID_Keys;
1550 
1551 #if defined (__cplusplus) && !defined (CINTERFACE)
1552   MIDL_INTERFACE ("00000623-0000-0010-8000-00AA006D2EA4")
1553   ADOKeys : public _ADOCollection {
1554     public:
1555     virtual HRESULT STDMETHODCALLTYPE get_Item (VARIANT Item, Key **ppvObject) = 0;
1556     virtual HRESULT STDMETHODCALLTYPE Append (VARIANT Item, KeyTypeEnum Type, VARIANT Column, BSTR RelatedADOTable = L"", BSTR RelatedADOColumn = L"") = 0;
1557     virtual HRESULT STDMETHODCALLTYPE Delete (VARIANT Item) = 0;
1558   };
1559 #else
1560   typedef struct KeysVtbl {
1561     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOKeys *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1562     ULONG (STDMETHODCALLTYPE *AddRef) (ADOKeys *This);
1563     ULONG (STDMETHODCALLTYPE *Release) (ADOKeys *This);
1564     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOKeys *This, UINT *pctinfo);
1565     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOKeys *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1566     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOKeys *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1567     HRESULT (STDMETHODCALLTYPE *Invoke) (ADOKeys *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1568     HRESULT (STDMETHODCALLTYPE *get_Count) (ADOKeys *This, long *c);
1569     HRESULT (STDMETHODCALLTYPE *_NewEnum) (ADOKeys *This, IUnknown **ppvObject);
1570     HRESULT (STDMETHODCALLTYPE *Refresh) (ADOKeys *This);
1571     HRESULT (STDMETHODCALLTYPE *get_Item) (ADOKeys *This, VARIANT Item, Key **ppvObject);
1572     HRESULT (STDMETHODCALLTYPE *Append) (ADOKeys *This, VARIANT Item, KeyTypeEnum Type, VARIANT Column, BSTR RelatedTable, BSTR RelatedColumn);
1573     HRESULT (STDMETHODCALLTYPE *Delete) (ADOKeys *This, VARIANT Item);
1574     END_INTERFACE
1575   } KeysVtbl;
1576 
1577   interface Keys {
1578     CONST_VTBL struct KeysVtbl *lpVtbl;
1579   };
1580 
1581 #ifdef COBJMACROS
1582 #define Keys_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1583 #define Keys_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1584 #define Keys_Release(This) ((This)->lpVtbl ->Release (This))
1585 #define Keys_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1586 #define Keys_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1587 #define Keys_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1588 #define Keys_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1589 #define Keys_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
1590 #define Keys__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
1591 #define Keys_Refresh(This) ((This)->lpVtbl ->Refresh (This))
1592 #define Keys_get_Item(This, Item, ppvObject) ((This)->lpVtbl ->get_Item (This, Item, ppvObject))
1593 #define Keys_Append(This, Item, Type, Column, RelatedTable, RelatedColumn) ((This)->lpVtbl ->Append (This, Item, Type, Column, RelatedTable, RelatedColumn))
1594 #define Keys_Delete(This, Item) ((This)->lpVtbl ->Delete (This, Item))
1595 #endif
1596 
1597 #endif
1598 #endif
1599 
1600 #ifndef __Users_INTERFACE_DEFINED__
1601 #define __Users_INTERFACE_DEFINED__
1602 
1603   EXTERN_C const IID IID_Users;
1604 
1605 #if defined (__cplusplus) && !defined (CINTERFACE)
1606   MIDL_INTERFACE ("0000061A-0000-0010-8000-00AA006D2EA4")
1607   ADOUsers : public _ADOCollection {
1608     public:
1609     virtual HRESULT STDMETHODCALLTYPE get_Item (VARIANT Item, User **ppvObject) = 0;
1610     virtual HRESULT STDMETHODCALLTYPE Append (VARIANT Item, BSTR Password = L"") = 0;
1611     virtual HRESULT STDMETHODCALLTYPE Delete (VARIANT Item) = 0;
1612   };
1613 #else
1614   typedef struct UsersVtbl {
1615     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOUsers *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1616     ULONG (STDMETHODCALLTYPE *AddRef) (ADOUsers *This);
1617     ULONG (STDMETHODCALLTYPE *Release) (ADOUsers *This);
1618     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOUsers *This, UINT *pctinfo);
1619     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOUsers *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1620     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOUsers *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1621     HRESULT (STDMETHODCALLTYPE *Invoke) (ADOUsers *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1622     HRESULT (STDMETHODCALLTYPE *get_Count) (ADOUsers *This, long *c);
1623     HRESULT (STDMETHODCALLTYPE *_NewEnum) (ADOUsers *This, IUnknown **ppvObject);
1624     HRESULT (STDMETHODCALLTYPE *Refresh) (ADOUsers *This);
1625     HRESULT (STDMETHODCALLTYPE *get_Item) (ADOUsers *This, VARIANT Item, User **ppvObject);
1626     HRESULT (STDMETHODCALLTYPE *Append) (ADOUsers *This, VARIANT Item, BSTR Password);
1627     HRESULT (STDMETHODCALLTYPE *Delete) (ADOUsers *This, VARIANT Item);
1628     END_INTERFACE
1629   } UsersVtbl;
1630   interface Users {
1631     CONST_VTBL struct UsersVtbl *lpVtbl;
1632   };
1633 
1634 #ifdef COBJMACROS
1635 #define Users_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1636 #define Users_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1637 #define Users_Release(This) ((This)->lpVtbl ->Release (This))
1638 #define Users_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1639 #define Users_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1640 #define Users_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1641 #define Users_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1642 #define Users_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
1643 #define Users__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
1644 #define Users_Refresh(This) ((This)->lpVtbl ->Refresh (This))
1645 #define Users_get_Item(This, Item, ppvObject) ((This)->lpVtbl ->get_Item (This, Item, ppvObject))
1646 #define Users_Append(This, Item, Password) ((This)->lpVtbl ->Append (This, Item, Password))
1647 #define Users_Delete(This, Item) ((This)->lpVtbl ->Delete (This, Item))
1648 #endif
1649 
1650 #endif
1651 #endif
1652 
1653 #ifndef __Groups_INTERFACE_DEFINED__
1654 #define __Groups_INTERFACE_DEFINED__
1655 
1656   EXTERN_C const IID IID_Groups;
1657 
1658 #if defined (__cplusplus) && !defined (CINTERFACE)
1659   MIDL_INTERFACE ("00000617-0000-0010-8000-00AA006D2EA4")
1660   ADOGroups : public _ADOCollection {
1661     public:
1662     virtual HRESULT STDMETHODCALLTYPE get_Item (VARIANT Item, Group **ppvObject) = 0;
1663     virtual HRESULT STDMETHODCALLTYPE Append (VARIANT Item) = 0;
1664     virtual HRESULT STDMETHODCALLTYPE Delete (VARIANT Item) = 0;
1665   };
1666 #else
1667   typedef struct GroupsVtbl {
1668     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOGroups *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1669     ULONG (STDMETHODCALLTYPE *AddRef) (ADOGroups *This);
1670     ULONG (STDMETHODCALLTYPE *Release) (ADOGroups *This);
1671     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOGroups *This, UINT *pctinfo);
1672     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOGroups *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1673     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOGroups *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1674     HRESULT (STDMETHODCALLTYPE *Invoke) (ADOGroups *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1675     HRESULT (STDMETHODCALLTYPE *get_Count) (ADOGroups *This, long *c);
1676     HRESULT (STDMETHODCALLTYPE *_NewEnum) (ADOGroups *This, IUnknown **ppvObject);
1677     HRESULT (STDMETHODCALLTYPE *Refresh) (ADOGroups *This);
1678     HRESULT (STDMETHODCALLTYPE *get_Item) (ADOGroups *This, VARIANT Item, Group **ppvObject);
1679     HRESULT (STDMETHODCALLTYPE *Append) (ADOGroups *This, VARIANT Item);
1680     HRESULT (STDMETHODCALLTYPE *Delete) (ADOGroups *This, VARIANT Item);
1681     END_INTERFACE
1682   } GroupsVtbl;
1683 
1684   interface Groups {
1685     CONST_VTBL struct GroupsVtbl *lpVtbl;
1686   };
1687 
1688 #ifdef COBJMACROS
1689 #define Groups_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1690 #define Groups_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1691 #define Groups_Release(This) ((This)->lpVtbl ->Release (This))
1692 #define Groups_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1693 #define Groups_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1694 #define Groups_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1695 #define Groups_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1696 #define Groups_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
1697 #define Groups__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
1698 #define Groups_Refresh(This) ((This)->lpVtbl ->Refresh (This))
1699 #define Groups_get_Item(This, Item, ppvObject) ((This)->lpVtbl ->get_Item (This, Item, ppvObject))
1700 #define Groups_Append(This, Item) ((This)->lpVtbl ->Append (This, Item))
1701 #define Groups_Delete(This, Item) ((This)->lpVtbl ->Delete (This, Item))
1702 #endif
1703 
1704 #endif
1705 #endif
1706 
1707 #ifndef __Properties_INTERFACE_DEFINED__
1708 #define __Properties_INTERFACE_DEFINED__
1709 
1710   EXTERN_C const IID IID_Properties;
1711 
1712 #if defined (__cplusplus) && !defined (CINTERFACE)
1713   MIDL_INTERFACE ("00000504-0000-0010-8000-00AA006D2EA4")
1714   ADOProperties : public _ADOCollection {
1715     public:
1716     virtual HRESULT STDMETHODCALLTYPE get_Item (VARIANT Item, ADOProperty **ppvObject) = 0;
1717   };
1718 #else
1719   typedef struct PropertiesVtbl {
1720     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOProperties *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1721     ULONG (STDMETHODCALLTYPE *AddRef) (ADOProperties *This);
1722     ULONG (STDMETHODCALLTYPE *Release) (ADOProperties *This);
1723     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOProperties *This, UINT *pctinfo);
1724     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOProperties *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1725     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOProperties *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1726     HRESULT (STDMETHODCALLTYPE *Invoke) (ADOProperties *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1727     HRESULT (STDMETHODCALLTYPE *get_Count) (ADOProperties *This, long *c);
1728     HRESULT (STDMETHODCALLTYPE *_NewEnum) (ADOProperties *This, IUnknown **ppvObject);
1729     HRESULT (STDMETHODCALLTYPE *Refresh) (ADOProperties *This);
1730     HRESULT (STDMETHODCALLTYPE *get_Item) (ADOProperties *This, VARIANT Item, ADOProperty **ppvObject);
1731     END_INTERFACE
1732   } PropertiesVtbl;
1733 
1734   interface Properties {
1735     CONST_VTBL struct PropertiesVtbl *lpVtbl;
1736   };
1737 
1738 #ifdef COBJMACROS
1739 #define Properties_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1740 #define Properties_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1741 #define Properties_Release(This) ((This)->lpVtbl ->Release (This))
1742 #define Properties_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1743 #define Properties_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1744 #define Properties_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1745 #define Properties_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1746 #define Properties_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
1747 #define Properties__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
1748 #define Properties_Refresh(This) ((This)->lpVtbl ->Refresh (This))
1749 #define Properties_get_Item(This, Item, ppvObject) ((This)->lpVtbl ->get_Item (This, Item, ppvObject))
1750 #endif
1751 
1752 #endif
1753 #endif
1754 #endif
1755 
1756 #ifdef __cplusplus
1757 }
1758 #endif
1759 #endif
1760 
1761 #define ADOCatalog _ADOCatalog
1762 #define ADOTable _ADOTable
1763 #define ADOGroup _ADOGroup
1764 #define ADOUser _ADOUser
1765 #define ADOIndex _ADOIndex
1766 #define ADOColumn _ADOColumn
1767 #define ADOKey _ADOKey
1768 #define ADOParameter _ADOParameter
1769 #define ADOCollection _ADOCollection
1770 #define ADODynaCollection _ADODynaCollection
1771 
1772 #endif
1773