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 #if !defined (NTDDI_VERSION) || (NTDDI_VERSION < 0x06020000)
7 #include "adoint_backcompat.h"
8 #else
9 
10 #ifndef _ADOINT_H_
11 #define _ADOINT_H_
12 
13 #ifndef _INC_TCHAR
14 #include <tchar.h>
15 #endif
16 
17 #ifndef DECLSPEC_UUID
18 #define DECLSPEC_UUID(x)
19 #endif
20 
21 #ifndef __REQUIRED_RPCNDR_H_VERSION__
22 #define __REQUIRED_RPCNDR_H_VERSION__ 500
23 #endif
24 
25 #ifndef __REQUIRED_RPCSAL_H_VERSION__
26 #define __REQUIRED_RPCSAL_H_VERSION__ 100
27 #endif
28 #include "rpc.h"
29 #include "rpcndr.h"
30 #ifndef __RPCNDR_H_VERSION__
31 #error this stub requires an updated version of <rpcndr.h>
32 #endif
33 #ifndef __ado10_h__
34 #define __ado10_h__
35 
36 #ifndef ___ADOCollection_FWD_DEFINED__
37 #define ___ADOCollection_FWD_DEFINED__
38 typedef interface _ADOCollection _ADOCollection;
39 #endif
40 #ifndef ___ADODynaCollection_FWD_DEFINED__
41 #define ___ADODynaCollection_FWD_DEFINED__
42 typedef interface _ADODynaCollection _ADODynaCollection;
43 #endif
44 #ifndef ___ADO_FWD_DEFINED__
45 #define ___ADO_FWD_DEFINED__
46 typedef interface _ADO _ADO;
47 #endif
48 #ifndef __Error_FWD_DEFINED__
49 #define __Error_FWD_DEFINED__
50 typedef interface ADOError Error;
51 #endif
52 #ifndef __Errors_FWD_DEFINED__
53 #define __Errors_FWD_DEFINED__
54 typedef interface ADOErrors Errors;
55 #endif
56 #ifndef __Command15_FWD_DEFINED__
57 #define __Command15_FWD_DEFINED__
58 typedef interface Command15 Command15;
59 #endif
60 #ifndef __Command25_FWD_DEFINED__
61 #define __Command25_FWD_DEFINED__
62 typedef interface Command25 Command25;
63 #endif
64 #ifndef ___Command_FWD_DEFINED__
65 #define ___Command_FWD_DEFINED__
66 typedef interface _ADOCommand _Command;
67 #endif
68 #ifndef __ConnectionEventsVt_FWD_DEFINED__
69 #define __ConnectionEventsVt_FWD_DEFINED__
70 typedef interface ConnectionEventsVt ConnectionEventsVt;
71 #endif
72 #ifndef __RecordsetEventsVt_FWD_DEFINED__
73 #define __RecordsetEventsVt_FWD_DEFINED__
74 typedef interface RecordsetEventsVt RecordsetEventsVt;
75 #endif
76 #ifndef __ConnectionEvents_FWD_DEFINED__
77 #define __ConnectionEvents_FWD_DEFINED__
78 typedef interface ConnectionEvents ConnectionEvents;
79 #endif
80 #ifndef __RecordsetEvents_FWD_DEFINED__
81 #define __RecordsetEvents_FWD_DEFINED__
82 typedef interface RecordsetEvents RecordsetEvents;
83 #endif
84 #ifndef __Connection15_FWD_DEFINED__
85 #define __Connection15_FWD_DEFINED__
86 typedef interface Connection15 Connection15;
87 #endif
88 #ifndef ___Connection_FWD_DEFINED__
89 #define ___Connection_FWD_DEFINED__
90 typedef interface _ADOConnection _Connection;
91 #endif
92 #ifndef __ADOConnectionConstruction15_FWD_DEFINED__
93 #define __ADOConnectionConstruction15_FWD_DEFINED__
94 typedef interface ADOConnectionConstruction15 ADOConnectionConstruction15;
95 #endif
96 #ifndef __ADOConnectionConstruction_FWD_DEFINED__
97 #define __ADOConnectionConstruction_FWD_DEFINED__
98 typedef interface ADOConnectionConstruction ADOConnectionConstruction;
99 #endif
100 #ifndef __Connection_FWD_DEFINED__
101 #define __Connection_FWD_DEFINED__
102 #ifdef __cplusplus
103 typedef class ADOConnection Connection;
104 #else
105 typedef struct ADOConnection Connection;
106 #endif
107 #endif
108 #ifndef ___Record_FWD_DEFINED__
109 #define ___Record_FWD_DEFINED__
110 typedef interface _ADORecord _Record;
111 #endif
112 #ifndef __Record_FWD_DEFINED__
113 #define __Record_FWD_DEFINED__
114 #ifdef __cplusplus
115 typedef class ADORecord Record;
116 #else
117 typedef struct ADORecord Record;
118 #endif
119 #endif
120 #ifndef ___Stream_FWD_DEFINED__
121 #define ___Stream_FWD_DEFINED__
122 typedef interface _ADOStream _Stream;
123 #endif
124 #ifndef __Stream_FWD_DEFINED__
125 #define __Stream_FWD_DEFINED__
126 #ifdef __cplusplus
127 typedef class ADOStream Stream;
128 #else
129 typedef struct ADOStream Stream;
130 #endif
131 #endif
132 #ifndef __ADORecordConstruction_FWD_DEFINED__
133 #define __ADORecordConstruction_FWD_DEFINED__
134 typedef interface ADORecordConstruction ADORecordConstruction;
135 #endif
136 #ifndef __ADOStreamConstruction_FWD_DEFINED__
137 #define __ADOStreamConstruction_FWD_DEFINED__
138 typedef interface ADOStreamConstruction ADOStreamConstruction;
139 #endif
140 #ifndef __ADOCommandConstruction_FWD_DEFINED__
141 #define __ADOCommandConstruction_FWD_DEFINED__
142 typedef interface ADOCommandConstruction ADOCommandConstruction;
143 #endif
144 #ifndef __Command_FWD_DEFINED__
145 #define __Command_FWD_DEFINED__
146 #ifdef __cplusplus
147 typedef class ADOCommand Command;
148 #else
149 typedef struct ADOCommand Command;
150 #endif
151 #endif
152 #ifndef __Recordset_FWD_DEFINED__
153 #define __Recordset_FWD_DEFINED__
154 #ifdef __cplusplus
155 typedef class ADORecordset Recordset;
156 #else
157 typedef struct ADORecordset Recordset;
158 #endif
159 #endif
160 #ifndef __Recordset15_FWD_DEFINED__
161 #define __Recordset15_FWD_DEFINED__
162 typedef interface Recordset15 Recordset15;
163 #endif
164 #ifndef __Recordset20_FWD_DEFINED__
165 #define __Recordset20_FWD_DEFINED__
166 typedef interface Recordset20 Recordset20;
167 #endif
168 #ifndef __Recordset21_FWD_DEFINED__
169 #define __Recordset21_FWD_DEFINED__
170 typedef interface Recordset21 Recordset21;
171 #endif
172 #ifndef ___Recordset_FWD_DEFINED__
173 #define ___Recordset_FWD_DEFINED__
174 typedef interface _ADORecordset _Recordset;
175 #endif
176 #ifndef __ADORecordsetConstruction_FWD_DEFINED__
177 #define __ADORecordsetConstruction_FWD_DEFINED__
178 typedef interface ADORecordsetConstruction ADORecordsetConstruction;
179 #endif
180 #ifndef __Field15_FWD_DEFINED__
181 #define __Field15_FWD_DEFINED__
182 typedef interface Field15 Field15;
183 #endif
184 #ifndef __Field20_FWD_DEFINED__
185 #define __Field20_FWD_DEFINED__
186 typedef interface Field20 Field20;
187 #endif
188 #ifndef __Field_FWD_DEFINED__
189 #define __Field_FWD_DEFINED__
190 typedef interface ADOField Field;
191 #endif
192 #ifndef __Fields15_FWD_DEFINED__
193 #define __Fields15_FWD_DEFINED__
194 typedef interface Fields15 Fields15;
195 #endif
196 #ifndef __Fields20_FWD_DEFINED__
197 #define __Fields20_FWD_DEFINED__
198 typedef interface Fields20 Fields20;
199 #endif
200 #ifndef __Fields_FWD_DEFINED__
201 #define __Fields_FWD_DEFINED__
202 typedef interface ADOFields Fields;
203 #endif
204 #ifndef ___Parameter_FWD_DEFINED__
205 #define ___Parameter_FWD_DEFINED__
206 typedef interface _ADOParameter _Parameter;
207 #endif
208 #ifndef __Parameter_FWD_DEFINED__
209 #define __Parameter_FWD_DEFINED__
210 #ifdef __cplusplus
211 typedef class ADOParameter Parameter;
212 #else
213 typedef struct ADOParameter Parameter;
214 #endif
215 #endif
216 #ifndef __Parameters_FWD_DEFINED__
217 #define __Parameters_FWD_DEFINED__
218 typedef interface ADOParameters Parameters;
219 #endif
220 #ifndef __Property_FWD_DEFINED__
221 #define __Property_FWD_DEFINED__
222 typedef interface ADOProperty Property;
223 #endif
224 #ifndef __Properties_FWD_DEFINED__
225 #define __Properties_FWD_DEFINED__
226 typedef interface ADOProperties Properties;
227 #endif
228 #ifdef __cplusplus
229 extern "C" {
230 #endif
231 
232 #ifdef _WIN64
233 
234   typedef LONGLONG ADO_LONGPTR;
235 #else
236 
237   typedef LONG ADO_LONGPTR;
238 #endif
239   extern RPC_IF_HANDLE __MIDL_itf_ado10_0000_0000_v0_0_c_ifspec;
240   extern RPC_IF_HANDLE __MIDL_itf_ado10_0000_0000_v0_0_s_ifspec;
241 #ifndef __ADODB_LIBRARY_DEFINED__
242 #define __ADODB_LIBRARY_DEFINED__
243 
244   typedef DECLSPEC_UUID ("0000051B-0000-0010-8000-00AA006D2EA4")
245   enum CursorTypeEnum {
246     adOpenUnspecified = -1,
247     adOpenForwardOnly = 0,
248     adOpenKeyset = 1,
249     adOpenDynamic = 2,
250     adOpenStatic = 3
251   } CursorTypeEnum;
252   typedef DECLSPEC_UUID ("0000051C-0000-0010-8000-00AA006D2EA4")
253   enum CursorOptionEnum {
254     adHoldRecords = 0x100,
255     adMovePrevious = 0x200,
256     adAddNew = 0x1000400,
257     adDelete = 0x1000800,
258     adUpdate = 0x1008000,
259     adBookmark = 0x2000,
260     adApproxPosition = 0x4000,
261     adUpdateBatch = 0x10000,
262     adResync = 0x20000,
263     adNotify = 0x40000,
264     adFind = 0x80000,
265     adSeek = 0x400000,
266     adIndex = 0x800000
267   } CursorOptionEnum;
268   typedef DECLSPEC_UUID ("0000051D-0000-0010-8000-00AA006D2EA4")
269   enum LockTypeEnum {
270     adLockUnspecified = -1,
271     adLockReadOnly = 1,
272     adLockPessimistic = 2,
273     adLockOptimistic = 3,
274     adLockBatchOptimistic = 4
275   } LockTypeEnum;
276   typedef DECLSPEC_UUID ("0000051E-0000-0010-8000-00AA006D2EA4")
277   enum ExecuteOptionEnum {
278     adOptionUnspecified = -1,
279     adAsyncExecute = 0x10,
280     adAsyncFetch = 0x20,
281     adAsyncFetchNonBlocking = 0x40,
282     adExecuteNoRecords = 0x80,
283     adExecuteStream = 0x400,
284     adExecuteRecord = 0x800
285   } ExecuteOptionEnum;
286   typedef DECLSPEC_UUID ("00000541-0000-0010-8000-00AA006D2EA4")
287   enum ConnectOptionEnum {
288     adConnectUnspecified = -1,
289     adAsyncConnect = 0x10
290   } ConnectOptionEnum;
291   typedef DECLSPEC_UUID ("00000532-0000-0010-8000-00AA006D2EA4")
292   enum ObjectStateEnum {
293     adStateClosed = 0,
294     adStateOpen = 0x1,
295     adStateConnecting = 0x2,
296     adStateExecuting = 0x4,
297     adStateFetching = 0x8
298   } ObjectStateEnum;
299   typedef DECLSPEC_UUID ("0000052F-0000-0010-8000-00AA006D2EA4")
300   enum CursorLocationEnum {
301     adUseNone = 1,
302     adUseServer = 2,
303     adUseClient = 3,
304     adUseClientBatch = 3
305   } CursorLocationEnum;
306   typedef DECLSPEC_UUID ("0000051F-0000-0010-8000-00AA006D2EA4")
307   enum DataTypeEnum {
308     adEmpty = 0,
309     adTinyInt = 16,
310     adSmallInt = 2,
311     adInteger = 3,
312     adBigInt = 20,
313     adUnsignedTinyInt = 17,
314     adUnsignedSmallInt = 18,
315     adUnsignedInt = 19,
316     adUnsignedBigInt = 21,
317     adSingle = 4,
318     adDouble = 5,
319     adCurrency = 6,
320     adDecimal = 14,
321     adNumeric = 131,
322     adBoolean = 11,
323     adError = 10,
324     adUserDefined = 132,
325     adVariant = 12,
326     adIDispatch = 9,
327     adIUnknown = 13,
328     adGUID = 72,
329     adDate = 7,
330     adDBDate = 133,
331     adDBTime = 134,
332     adDBTimeStamp = 135,
333     adBSTR = 8,
334     adChar = 129,
335     adVarChar = 200,
336     adLongVarChar = 201,
337     adWChar = 130,
338     adVarWChar = 202,
339     adLongVarWChar = 203,
340     adBinary = 128,
341     adVarBinary = 204,
342     adLongVarBinary = 205,
343     adChapter = 136,
344     adFileTime = 64,
345     adPropVariant = 138,
346     adVarNumeric = 139,
347     adArray = 0x2000
348   } DataTypeEnum;
349   typedef DECLSPEC_UUID ("00000525-0000-0010-8000-00AA006D2EA4")
350   enum FieldAttributeEnum {
351     adFldUnspecified = -1,
352     adFldMayDefer = 0x2,
353     adFldUpdatable = 0x4,
354     adFldUnknownUpdatable = 0x8,
355     adFldFixed = 0x10,
356     adFldIsNullable = 0x20,
357     adFldMayBeNull = 0x40,
358     adFldLong = 0x80,
359     adFldRowID = 0x100,
360     adFldRowVersion = 0x200,
361     adFldCacheDeferred = 0x1000,
362     adFldIsChapter = 0x2000,
363     adFldNegativeScale = 0x4000,
364     adFldKeyColumn = 0x8000,
365     adFldIsRowURL = 0x10000,
366     adFldIsDefaultStream = 0x20000,
367     adFldIsCollection = 0x40000
368   } FieldAttributeEnum;
369   typedef DECLSPEC_UUID ("00000526-0000-0010-8000-00AA006D2EA4")
370   enum EditModeEnum {
371     adEditNone = 0,
372     adEditInProgress = 0x1,
373     adEditAdd = 0x2,
374     adEditDelete = 0x4
375   } EditModeEnum;
376   typedef DECLSPEC_UUID ("00000527-0000-0010-8000-00AA006D2EA4")
377   enum RecordStatusEnum {
378     adRecOK = 0,
379     adRecNew = 0x1,
380     adRecModified = 0x2,
381     adRecDeleted = 0x4,
382     adRecUnmodified = 0x8,
383     adRecInvalid = 0x10,
384     adRecMultipleChanges = 0x40,
385     adRecPendingChanges = 0x80,
386     adRecCanceled = 0x100,
387     adRecCantRelease = 0x400,
388     adRecConcurrencyViolation = 0x800,
389     adRecIntegrityViolation = 0x1000,
390     adRecMaxChangesExceeded = 0x2000,
391     adRecObjectOpen = 0x4000,
392     adRecOutOfMemory = 0x8000,
393     adRecPermissionDenied = 0x10000,
394     adRecSchemaViolation = 0x20000,
395     adRecDBDeleted = 0x40000
396   } RecordStatusEnum;
397   typedef DECLSPEC_UUID ("00000542-0000-0010-8000-00AA006D2EA4")
398   enum GetRowsOptionEnum {
399     adGetRowsRest = -1
400   } GetRowsOptionEnum;
401   typedef DECLSPEC_UUID ("00000528-0000-0010-8000-00AA006D2EA4")
402   enum PositionEnum {
403     adPosUnknown = -1,
404     adPosBOF = -2,
405     adPosEOF = -3
406   } PositionEnum;
407   typedef
408   enum BookmarkEnum {
409     adBookmarkCurrent = 0,
410     adBookmarkFirst = 1,
411     adBookmarkLast = 2
412   } BookmarkEnum;
413   typedef DECLSPEC_UUID ("00000540-0000-0010-8000-00AA006D2EA4")
414   enum MarshalOptionsEnum {
415     adMarshalAll = 0,
416     adMarshalModifiedOnly = 1
417   } MarshalOptionsEnum;
418   typedef DECLSPEC_UUID ("00000543-0000-0010-8000-00AA006D2EA4")
419   enum AffectEnum {
420     adAffectCurrent = 1,
421     adAffectGroup = 2,
422     adAffectAll = 3,
423     adAffectAllChapters = 4
424   } AffectEnum;
425   typedef DECLSPEC_UUID ("00000544-0000-0010-8000-00AA006D2EA4")
426   enum ResyncEnum {
427     adResyncUnderlyingValues = 1,
428     adResyncAllValues = 2
429   } ResyncEnum;
430   typedef DECLSPEC_UUID ("00000545-0000-0010-8000-00AA006D2EA4")
431   enum CompareEnum {
432     adCompareLessThan = 0,
433     adCompareEqual = 1,
434     adCompareGreaterThan = 2,
435     adCompareNotEqual = 3,
436     adCompareNotComparable = 4
437   } CompareEnum;
438   typedef DECLSPEC_UUID ("00000546-0000-0010-8000-00AA006D2EA4")
439   enum FilterGroupEnum {
440     adFilterNone = 0,
441     adFilterPendingRecords = 1,
442     adFilterAffectedRecords = 2,
443     adFilterFetchedRecords = 3,
444     adFilterPredicate = 4,
445     adFilterConflictingRecords = 5
446   } FilterGroupEnum;
447   typedef DECLSPEC_UUID ("00000547-0000-0010-8000-00AA006D2EA4")
448   enum SearchDirectionEnum {
449     adSearchForward = 1,
450     adSearchBackward = -1
451   } SearchDirectionEnum;
452   typedef SearchDirectionEnum SearchDirection;
453   typedef DECLSPEC_UUID ("00000548-0000-0010-8000-00AA006D2EA4")
454   enum PersistFormatEnum {
455     adPersistADTG = 0,
456     adPersistXML = 1
457   } PersistFormatEnum;
458   typedef DECLSPEC_UUID ("00000549-0000-0010-8000-00AA006D2EA4")
459   enum StringFormatEnum {
460     adClipString = 2
461   } StringFormatEnum;
462   typedef DECLSPEC_UUID ("00000520-0000-0010-8000-00AA006D2EA4")
463   enum ConnectPromptEnum {
464     adPromptAlways = 1,
465     adPromptComplete = 2,
466     adPromptCompleteRequired = 3,
467     adPromptNever = 4
468   } ConnectPromptEnum;
469   typedef DECLSPEC_UUID ("00000521-0000-0010-8000-00AA006D2EA4")
470   enum ConnectModeEnum {
471     adModeUnknown = 0,
472     adModeRead = 1,
473     adModeWrite = 2,
474     adModeReadWrite = 3,
475     adModeShareDenyRead = 4,
476     adModeShareDenyWrite = 8,
477     adModeShareExclusive = 0xc,
478     adModeShareDenyNone = 0x10,
479     adModeRecursive = 0x400000
480   } ConnectModeEnum;
481   typedef DECLSPEC_UUID ("00000570-0000-0010-8000-00AA006D2EA4")
482   enum RecordCreateOptionsEnum {
483     adCreateCollection = 0x2000,
484     adCreateStructDoc = 0x80000000,
485     adCreateNonCollection = 0,
486     adOpenIfExists = 0x2000000,
487     adCreateOverwrite = 0x4000000,
488     adFailIfNotExists = -1
489   } RecordCreateOptionsEnum;
490   typedef DECLSPEC_UUID ("00000571-0000-0010-8000-00AA006D2EA4")
491   enum RecordOpenOptionsEnum {
492     adOpenRecordUnspecified = -1,
493     adOpenSource = 0x800000,
494     adOpenOutput = 0x800000,
495     adOpenAsync = 0x1000,
496     adDelayFetchStream = 0x4000,
497     adDelayFetchFields = 0x8000,
498     adOpenExecuteCommand = 0x10000
499   } RecordOpenOptionsEnum;
500   typedef DECLSPEC_UUID ("00000523-0000-0010-8000-00AA006D2EA4")
501   enum IsolationLevelEnum {
502     adXactUnspecified = 0xffffffff,
503     adXactChaos = 0x10,
504     adXactReadUncommitted = 0x100,
505     adXactBrowse = 0x100,
506     adXactCursorStability = 0x1000,
507     adXactReadCommitted = 0x1000,
508     adXactRepeatableRead = 0x10000,
509     adXactSerializable = 0x100000,
510     adXactIsolated = 0x100000
511   } IsolationLevelEnum;
512   typedef DECLSPEC_UUID ("00000524-0000-0010-8000-00AA006D2EA4")
513   enum XactAttributeEnum {
514     adXactCommitRetaining = 0x20000,
515     adXactAbortRetaining = 0x40000,
516     adXactAsyncPhaseOne = 0x80000,
517     adXactSyncPhaseOne = 0x100000
518   } XactAttributeEnum;
519   typedef DECLSPEC_UUID ("00000529-0000-0010-8000-00AA006D2EA4")
520   enum PropertyAttributesEnum {
521     adPropNotSupported = 0,
522     adPropRequired = 0x1,
523     adPropOptional = 0x2,
524     adPropRead = 0x200,
525     adPropWrite = 0x400
526   } PropertyAttributesEnum;
527   typedef DECLSPEC_UUID ("0000052A-0000-0010-8000-00AA006D2EA4")
528   enum ErrorValueEnum {
529     adErrProviderFailed = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xbb8),
530     adErrInvalidArgument = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xbb9),
531     adErrOpeningFile = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xbba),
532     adErrReadFile = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xbbb),
533     adErrWriteFile = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xbbc),
534     adErrNoCurrentRecord = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xbcd),
535     adErrIllegalOperation = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xc93),
536     adErrCantChangeProvider = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xc94),
537     adErrInTransaction = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xcae),
538     adErrFeatureNotAvailable = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xcb3),
539     adErrItemNotFound = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xcc1),
540     adErrObjectInCollection = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xd27),
541     adErrObjectNotSet = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xd5c),
542     adErrDataConversion = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xd5d),
543     adErrObjectClosed = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe78),
544     adErrObjectOpen = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe79),
545     adErrProviderNotFound = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe7a),
546     adErrBoundToCommand = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe7b),
547     adErrInvalidParamInfo = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe7c),
548     adErrInvalidConnection = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe7d),
549     adErrNotReentrant = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe7e),
550     adErrStillExecuting = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe7f),
551     adErrOperationCancelled = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe80),
552     adErrStillConnecting = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe81),
553     adErrInvalidTransaction = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe82),
554     adErrNotExecuting = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe83),
555     adErrUnsafeOperation = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe84),
556     adwrnSecurityDialog = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe85),
557     adwrnSecurityDialogHeader = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe86),
558     adErrIntegrityViolation = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe87),
559     adErrPermissionDenied = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe88),
560     adErrDataOverflow = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe89),
561     adErrSchemaViolation = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe8a),
562     adErrSignMismatch = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe8b),
563     adErrCantConvertvalue = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe8c),
564     adErrCantCreate = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe8d),
565     adErrColumnNotOnThisRow = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe8e),
566     adErrURLDoesNotExist = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe8f),
567     adErrTreePermissionDenied = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe90),
568     adErrInvalidURL = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe91),
569     adErrResourceLocked = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe92),
570     adErrResourceExists = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe93),
571     adErrCannotComplete = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe94),
572     adErrVolumeNotFound = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe95),
573     adErrOutOfSpace = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe96),
574     adErrResourceOutOfScope = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe97),
575     adErrUnavailable = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe98),
576     adErrURLNamedRowDoesNotExist = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe99),
577     adErrDelResOutOfScope = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe9a),
578     adErrPropInvalidColumn = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe9b),
579     adErrPropInvalidOption = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe9c),
580     adErrPropInvalidValue = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe9d),
581     adErrPropConflicting = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe9e),
582     adErrPropNotAllSettable = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xe9f),
583     adErrPropNotSet = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xea0),
584     adErrPropNotSettable = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xea1),
585     adErrPropNotSupported = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xea2),
586     adErrCatalogNotSet = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xea3),
587     adErrCantChangeConnection = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xea4),
588     adErrFieldsUpdateFailed = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xea5),
589     adErrDenyNotSupported = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xea6),
590     adErrDenyTypeNotSupported = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xea7),
591     adErrProviderNotSpecified = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xea9),
592     adErrConnectionStringTooLong = MAKE_HRESULT (SEVERITY_ERROR, FACILITY_CONTROL, 0xeaa)
593   } ErrorValueEnum;
594   typedef DECLSPEC_UUID ("0000052B-0000-0010-8000-00AA006D2EA4")
595   enum ParameterAttributesEnum {
596     adParamSigned = 0x10,
597     adParamNullable = 0x40,
598     adParamLong = 0x80
599   } ParameterAttributesEnum;
600   typedef DECLSPEC_UUID ("0000052C-0000-0010-8000-00AA006D2EA4")
601   enum ParameterDirectionEnum {
602     adParamUnknown = 0,
603     adParamInput = 0x1,
604     adParamOutput = 0x2,
605     adParamInputOutput = 0x3,
606     adParamReturnValue = 0x4
607   } ParameterDirectionEnum;
608   typedef DECLSPEC_UUID ("0000052E-0000-0010-8000-00AA006D2EA4")
609   enum CommandTypeEnum {
610     adCmdUnspecified = -1,
611     adCmdUnknown = 0x8,
612     adCmdText = 0x1,
613     adCmdTable = 0x2,
614     adCmdStoredProc = 0x4,
615     adCmdFile = 0x100,
616     adCmdTableDirect = 0x200
617   } CommandTypeEnum;
618   typedef DECLSPEC_UUID ("00000530-0000-0010-8000-00AA006D2EA4")
619   enum EventStatusEnum {
620     adStatusOK = 0x1,
621     adStatusErrorsOccurred = 0x2,
622     adStatusCantDeny = 0x3,
623     adStatusCancel = 0x4,
624     adStatusUnwantedEvent = 0x5
625   } EventStatusEnum;
626   typedef DECLSPEC_UUID ("00000531-0000-0010-8000-00AA006D2EA4")
627   enum EventReasonEnum {
628     adRsnAddNew = 1,
629     adRsnDelete = 2,
630     adRsnUpdate = 3,
631     adRsnUndoUpdate = 4,
632     adRsnUndoAddNew = 5,
633     adRsnUndoDelete = 6,
634     adRsnRequery = 7,
635     adRsnResynch = 8,
636     adRsnClose = 9,
637     adRsnMove = 10,
638     adRsnFirstChange = 11,
639     adRsnMoveFirst = 12,
640     adRsnMoveNext = 13,
641     adRsnMovePrevious = 14,
642     adRsnMoveLast = 15
643   } EventReasonEnum;
644   typedef DECLSPEC_UUID ("00000533-0000-0010-8000-00AA006D2EA4")
645   enum SchemaEnum {
646     adSchemaProviderSpecific = -1,
647     adSchemaAsserts = 0,
648     adSchemaCatalogs = 1,
649     adSchemaCharacterSets = 2,
650     adSchemaCollations = 3,
651     adSchemaColumns = 4,
652     adSchemaCheckConstraints = 5,
653     adSchemaConstraintColumnUsage = 6,
654     adSchemaConstraintTableUsage = 7,
655     adSchemaKeyColumnUsage = 8,
656     adSchemaReferentialContraints = 9,
657     adSchemaReferentialConstraints = 9,
658     adSchemaTableConstraints = 10,
659     adSchemaColumnsDomainUsage = 11,
660     adSchemaIndexes = 12,
661     adSchemaColumnPrivileges = 13,
662     adSchemaTablePrivileges = 14,
663     adSchemaUsagePrivileges = 15,
664     adSchemaProcedures = 16,
665     adSchemaSchemata = 17,
666     adSchemaSQLLanguages = 18,
667     adSchemaStatistics = 19,
668     adSchemaTables = 20,
669     adSchemaTranslations = 21,
670     adSchemaProviderTypes = 22,
671     adSchemaViews = 23,
672     adSchemaViewColumnUsage = 24,
673     adSchemaViewTableUsage = 25,
674     adSchemaProcedureParameters = 26,
675     adSchemaForeignKeys = 27,
676     adSchemaPrimaryKeys = 28,
677     adSchemaProcedureColumns = 29,
678     adSchemaDBInfoKeywords = 30,
679     adSchemaDBInfoLiterals = 31,
680     adSchemaCubes = 32,
681     adSchemaDimensions = 33,
682     adSchemaHierarchies = 34,
683     adSchemaLevels = 35,
684     adSchemaMeasures = 36,
685     adSchemaProperties = 37,
686     adSchemaMembers = 38,
687     adSchemaTrustees = 39,
688     adSchemaFunctions = 40,
689     adSchemaActions = 41,
690     adSchemaCommands = 42,
691     adSchemaSets = 43
692   } SchemaEnum;
693   typedef DECLSPEC_UUID ("0000057E-0000-0010-8000-00AA006D2EA4")
694   enum FieldStatusEnum {
695     adFieldOK = 0,
696     adFieldCantConvertValue = 2,
697     adFieldIsNull = 3,
698     adFieldTruncated = 4,
699     adFieldSignMismatch = 5,
700     adFieldDataOverflow = 6,
701     adFieldCantCreate = 7,
702     adFieldUnavailable = 8,
703     adFieldPermissionDenied = 9,
704     adFieldIntegrityViolation = 10,
705     adFieldSchemaViolation = 11,
706     adFieldBadStatus = 12,
707     adFieldDefault = 13,
708     adFieldIgnore = 15,
709     adFieldDoesNotExist = 16,
710     adFieldInvalidURL = 17,
711     adFieldResourceLocked = 18,
712     adFieldResourceExists = 19,
713     adFieldCannotComplete = 20,
714     adFieldVolumeNotFound = 21,
715     adFieldOutOfSpace = 22,
716     adFieldCannotDeleteSource = 23,
717     adFieldReadOnly = 24,
718     adFieldResourceOutOfScope = 25,
719     adFieldAlreadyExists = 26,
720     adFieldPendingInsert = 0x10000,
721     adFieldPendingDelete = 0x20000,
722     adFieldPendingChange = 0x40000,
723     adFieldPendingUnknown = 0x80000,
724     adFieldPendingUnknownDelete = 0x100000
725   } FieldStatusEnum;
726   typedef DECLSPEC_UUID ("00000552-0000-0010-8000-00AA006D2EA4")
727   enum SeekEnum {
728     adSeekFirstEQ = 0x1,
729     adSeekLastEQ = 0x2,
730     adSeekAfterEQ = 0x4,
731     adSeekAfter = 0x8,
732     adSeekBeforeEQ = 0x10,
733     adSeekBefore = 0x20
734   } SeekEnum;
735 #ifndef _COMMON_ADC_AND_ADO_PROPS_
736 #define _COMMON_ADC_AND_ADO_PROPS_
737   typedef DECLSPEC_UUID ("0000054A-0000-0010-8000-00AA006D2EA4")
738   enum ADCPROP_UPDATECRITERIA_ENUM {
739     adCriteriaKey = 0,
740     adCriteriaAllCols = 1,
741     adCriteriaUpdCols = 2,
742     adCriteriaTimeStamp = 3
743   } ADCPROP_UPDATECRITERIA_ENUM;
744   typedef DECLSPEC_UUID ("0000054B-0000-0010-8000-00AA006D2EA4")
745   enum ADCPROP_ASYNCTHREADPRIORITY_ENUM {
746     adPriorityLowest = 1,
747     adPriorityBelowNormal = 2,
748     adPriorityNormal = 3,
749     adPriorityAboveNormal = 4,
750     adPriorityHighest = 5
751   } ADCPROP_ASYNCTHREADPRIORITY_ENUM;
752   typedef DECLSPEC_UUID ("00000554-0000-0010-8000-00AA006D2EA4")
753   enum ADCPROP_AUTORECALC_ENUM {
754     adRecalcUpFront = 0,
755     adRecalcAlways = 1
756   } ADCPROP_AUTORECALC_ENUM;
757   typedef DECLSPEC_UUID ("00000553-0000-0010-8000-00AA006D2EA4")
758   enum ADCPROP_UPDATERESYNC_ENUM {
759     adResyncNone = 0,
760     adResyncAutoIncrement = 1,
761     adResyncConflicts = 2,
762     adResyncUpdates = 4,
763     adResyncInserts = 8,
764     adResyncAll = 15
765   } ADCPROP_UPDATERESYNC_ENUM;
766 #endif
767   typedef ADCPROP_UPDATERESYNC_ENUM CEResyncEnum;
768   typedef DECLSPEC_UUID ("00000573-0000-0010-8000-00AA006D2EA4")
769   enum MoveRecordOptionsEnum {
770     adMoveUnspecified = -1,
771     adMoveOverWrite = 1,
772     adMoveDontUpdateLinks = 2,
773     adMoveAllowEmulation = 4
774   } MoveRecordOptionsEnum;
775   typedef DECLSPEC_UUID ("00000574-0000-0010-8000-00AA006D2EA4")
776   enum CopyRecordOptionsEnum {
777     adCopyUnspecified = -1,
778     adCopyOverWrite = 1,
779     adCopyAllowEmulation = 4,
780     adCopyNonRecursive = 2
781   } CopyRecordOptionsEnum;
782   typedef DECLSPEC_UUID ("00000576-0000-0010-8000-00AA006D2EA4")
783   enum StreamTypeEnum {
784     adTypeBinary = 1,
785     adTypeText = 2
786   } StreamTypeEnum;
787   typedef DECLSPEC_UUID ("00000577-0000-0010-8000-00AA006D2EA4")
788   enum LineSeparatorEnum {
789     adLF = 10,
790     adCR = 13,
791     adCRLF = -1
792   } LineSeparatorEnum;
793   typedef DECLSPEC_UUID ("0000057A-0000-0010-8000-00AA006D2EA4")
794   enum StreamOpenOptionsEnum {
795     adOpenStreamUnspecified = -1,
796     adOpenStreamAsync = 1,
797     adOpenStreamFromRecord = 4
798   } StreamOpenOptionsEnum;
799   typedef DECLSPEC_UUID ("0000057B-0000-0010-8000-00AA006D2EA4")
800   enum StreamWriteEnum {
801     adWriteChar = 0,
802     adWriteLine = 1,
803     stWriteChar = 0,
804     stWriteLine = 1
805   } StreamWriteEnum;
806   typedef DECLSPEC_UUID ("0000057C-0000-0010-8000-00AA006D2EA4")
807   enum SaveOptionsEnum {
808     adSaveCreateNotExist = 1,
809     adSaveCreateOverWrite = 2
810   } SaveOptionsEnum;
811   typedef
812   enum FieldEnum {
813     adDefaultStream = -1,
814     adRecordURL = -2
815   } FieldEnum;
816   typedef
817   enum StreamReadEnum {
818     adReadAll = -1,
819     adReadLine = -2
820   } StreamReadEnum;
821   typedef DECLSPEC_UUID ("0000057D-0000-0010-8000-00AA006D2EA4")
822   enum RecordTypeEnum {
823     adSimpleRecord = 0,
824     adCollectionRecord = 1,
825     adStructDoc = 2
826   } RecordTypeEnum;
827   EXTERN_C const IID LIBID_ADODB;
828 #ifndef ___ADOCollection_INTERFACE_DEFINED__
829 #define ___ADOCollection_INTERFACE_DEFINED__
830 
831   EXTERN_C const IID IID__ADOCollection;
832 #if defined (__cplusplus) && !defined (CINTERFACE)
833 
834   MIDL_INTERFACE ("00000512-0000-0010-8000-00AA006D2EA4")
835   _ADOCollection : public IDispatch {
836     public:
837     virtual HRESULT STDMETHODCALLTYPE get_Count (long *c) = 0;
838     virtual HRESULT STDMETHODCALLTYPE _NewEnum (IUnknown **ppvObject) = 0;
839     virtual HRESULT STDMETHODCALLTYPE Refresh (void) = 0;
840   };
841 #else
842   typedef struct _ADOCollectionVtbl {
843     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADOCollection *This, REFIID riid, _COM_Outptr_ void **ppvObject);
844     ULONG (STDMETHODCALLTYPE *AddRef) (_ADOCollection *This);
845     ULONG (STDMETHODCALLTYPE *Release) (_ADOCollection *This);
846     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADOCollection *This, UINT *pctinfo);
847     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADOCollection *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
848     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADOCollection *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
849     HRESULT (STDMETHODCALLTYPE *Invoke) (_ADOCollection *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
850     HRESULT (STDMETHODCALLTYPE *get_Count) (_ADOCollection *This, long *c);
851     HRESULT (STDMETHODCALLTYPE *_NewEnum) (_ADOCollection *This, IUnknown **ppvObject);
852     HRESULT (STDMETHODCALLTYPE *Refresh) (_ADOCollection *This);
853     END_INTERFACE
854   } _ADOCollectionVtbl;
855   interface _ADOCollection {
856     CONST_VTBL struct _ADOCollectionVtbl *lpVtbl;
857   };
858 #ifdef COBJMACROS
859 #define _ADOCollection_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
860 #define _ADOCollection_AddRef(This) ((This)->lpVtbl ->AddRef (This))
861 #define _ADOCollection_Release(This) ((This)->lpVtbl ->Release (This))
862 #define _ADOCollection_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
863 #define _ADOCollection_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
864 #define _ADOCollection_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
865 #define _ADOCollection_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
866 #define _Collection_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
867 #define _ADOCollection__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
868 #define _ADOCollection_Refresh(This) ((This)->lpVtbl ->Refresh (This))
869 #endif
870 #endif
871 #endif
872 #ifndef ___ADODynaCollection_INTERFACE_DEFINED__
873 #define ___ADODynaCollection_INTERFACE_DEFINED__
874 
875   EXTERN_C const IID IID__ADODynaCollection;
876 #if defined (__cplusplus) && !defined (CINTERFACE)
877 
878   MIDL_INTERFACE ("00000513-0000-0010-8000-00AA006D2EA4")
879   _ADODynaCollection : public _ADOCollection {
880     public:
881     virtual HRESULT STDMETHODCALLTYPE Append (IDispatch *Object) = 0;
882     virtual HRESULT STDMETHODCALLTYPE Delete (VARIANT Index) = 0;
883   };
884 #else
885   typedef struct _ADODynaCollectionVtbl {
886     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADODynaCollection *This, REFIID riid, _COM_Outptr_ void **ppvObject);
887     ULONG (STDMETHODCALLTYPE *AddRef) (_ADODynaCollection *This);
888     ULONG (STDMETHODCALLTYPE *Release) (_ADODynaCollection *This);
889     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADODynaCollection *This, UINT *pctinfo);
890     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADODynaCollection *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
891     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADODynaCollection *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
892     HRESULT (STDMETHODCALLTYPE *Invoke) (_ADODynaCollection *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
893     HRESULT (STDMETHODCALLTYPE *get_Count) (_ADODynaCollection *This, long *c);
894     HRESULT (STDMETHODCALLTYPE *_NewEnum) (_ADODynaCollection *This, IUnknown **ppvObject);
895     HRESULT (STDMETHODCALLTYPE *Refresh) (_ADODynaCollection *This);
896     HRESULT (STDMETHODCALLTYPE *Append) (_ADODynaCollection *This, IDispatch *Object);
897     HRESULT (STDMETHODCALLTYPE *Delete) (_ADODynaCollection *This, VARIANT Index);
898     END_INTERFACE
899   } _ADODynaCollectionVtbl;
900   interface _ADODynaCollection {
901     CONST_VTBL struct _ADODynaCollectionVtbl *lpVtbl;
902   };
903 #ifdef COBJMACROS
904 #define _ADODynaCollection_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
905 #define _ADODynaCollection_AddRef(This) ((This)->lpVtbl ->AddRef (This))
906 #define _ADODynaCollection_Release(This) ((This)->lpVtbl ->Release (This))
907 #define _ADODynaCollection_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
908 #define _ADODynaCollection_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
909 #define _ADODynaCollection_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
910 #define _ADODynaCollection_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
911 #define _DynaCollection_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
912 #define _ADODynaCollection__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
913 #define _ADODynaCollection_Refresh(This) ((This)->lpVtbl ->Refresh (This))
914 #define _ADODynaCollection_Append(This, Object) ((This)->lpVtbl ->Append (This, Object))
915 #define _ADODynaCollection_Delete(This, Index) ((This)->lpVtbl ->Delete (This, Index))
916 #endif
917 #endif
918 #endif
919 #ifndef ___ADO_INTERFACE_DEFINED__
920 #define ___ADO_INTERFACE_DEFINED__
921 
922   EXTERN_C const IID IID__ADO;
923 #if defined (__cplusplus) && !defined (CINTERFACE)
924 
925   MIDL_INTERFACE ("00000534-0000-0010-8000-00AA006D2EA4")
926   _ADO : public IDispatch {
927     public:
928     virtual HRESULT STDMETHODCALLTYPE get_Properties (ADOProperties **ppvObject) = 0;
929   };
930 #else
931   typedef struct _ADOVtbl {
932     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADO *This, REFIID riid, _COM_Outptr_ void **ppvObject);
933     ULONG (STDMETHODCALLTYPE *AddRef) (_ADO *This);
934     ULONG (STDMETHODCALLTYPE *Release) (_ADO *This);
935     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADO *This, UINT *pctinfo);
936     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADO *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
937     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADO *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
938     HRESULT (STDMETHODCALLTYPE *Invoke) (_ADO *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
939     HRESULT (STDMETHODCALLTYPE *get_Properties) (_ADO *This, ADOProperties **ppvObject);
940     END_INTERFACE
941   } _ADOVtbl;
942   interface _ADO {
943     CONST_VTBL struct _ADOVtbl *lpVtbl;
944   };
945 #ifdef COBJMACROS
946 #define _ADO_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
947 #define _ADO_AddRef(This) ((This)->lpVtbl ->AddRef (This))
948 #define _ADO_Release(This) ((This)->lpVtbl ->Release (This))
949 #define _ADO_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
950 #define _ADO_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
951 #define _ADO_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
952 #define _ADO_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
953 #define _ADO_get_Properties(This, ppvObject) ((This)->lpVtbl ->get_Properties (This, ppvObject))
954 #endif
955 #endif
956 #endif
957 #ifndef __Error_INTERFACE_DEFINED__
958 #define __Error_INTERFACE_DEFINED__
959 
960   EXTERN_C const IID IID_Error;
961 #if defined (__cplusplus) && !defined (CINTERFACE)
962 
963   MIDL_INTERFACE ("00000500-0000-0010-8000-00AA006D2EA4")
964   ADOError : public IDispatch {
965     public:
966     virtual HRESULT STDMETHODCALLTYPE get_Number (long *pl) = 0;
967     virtual HRESULT STDMETHODCALLTYPE get_Source (BSTR *pbstr) = 0;
968     virtual HRESULT STDMETHODCALLTYPE get_Description (BSTR *pbstr) = 0;
969     virtual HRESULT STDMETHODCALLTYPE get_HelpFile (BSTR *pbstr) = 0;
970     virtual HRESULT STDMETHODCALLTYPE get_HelpContext (long *pl) = 0;
971     virtual HRESULT STDMETHODCALLTYPE get_SQLState (BSTR *pbstr) = 0;
972     virtual HRESULT STDMETHODCALLTYPE get_NativeError (long *pl) = 0;
973   };
974 #else
975   typedef struct ErrorVtbl {
976     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOError *This, REFIID riid, _COM_Outptr_ void **ppvObject);
977     ULONG (STDMETHODCALLTYPE *AddRef) (ADOError *This);
978     ULONG (STDMETHODCALLTYPE *Release) (ADOError *This);
979     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOError *This, UINT *pctinfo);
980     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOError *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
981     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOError *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
982     HRESULT (STDMETHODCALLTYPE *Invoke) (ADOError *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
983     HRESULT (STDMETHODCALLTYPE *get_Number) (ADOError *This, long *pl);
984     HRESULT (STDMETHODCALLTYPE *get_Source) (ADOError *This, BSTR *pbstr);
985     HRESULT (STDMETHODCALLTYPE *get_Description) (ADOError *This, BSTR *pbstr);
986     HRESULT (STDMETHODCALLTYPE *get_HelpFile) (ADOError *This, BSTR *pbstr);
987     HRESULT (STDMETHODCALLTYPE *get_HelpContext) (ADOError *This, long *pl);
988     HRESULT (STDMETHODCALLTYPE *get_SQLState) (ADOError *This, BSTR *pbstr);
989     HRESULT (STDMETHODCALLTYPE *get_NativeError) (ADOError *This, long *pl);
990     END_INTERFACE
991   } ErrorVtbl;
992   interface Error {
993     CONST_VTBL struct ErrorVtbl *lpVtbl;
994   };
995 #ifdef COBJMACROS
996 #define Error_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
997 #define Error_AddRef(This) ((This)->lpVtbl ->AddRef (This))
998 #define Error_Release(This) ((This)->lpVtbl ->Release (This))
999 #define Error_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1000 #define Error_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1001 #define Error_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1002 #define Error_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1003 #define Error_get_Number(This, pl) ((This)->lpVtbl ->get_Number (This, pl))
1004 #define Error_get_Source(This, pbstr) ((This)->lpVtbl ->get_Source (This, pbstr))
1005 #define Error_get_Description(This, pbstr) ((This)->lpVtbl ->get_Description (This, pbstr))
1006 #define Error_get_HelpFile(This, pbstr) ((This)->lpVtbl ->get_HelpFile (This, pbstr))
1007 #define Error_get_HelpContext(This, pl) ((This)->lpVtbl ->get_HelpContext (This, pl))
1008 #define Error_get_SQLState(This, pbstr) ((This)->lpVtbl ->get_SQLState (This, pbstr))
1009 #define Error_get_NativeError(This, pl) ((This)->lpVtbl ->get_NativeError (This, pl))
1010 #endif
1011 #endif
1012 #endif
1013 #ifndef __Errors_INTERFACE_DEFINED__
1014 #define __Errors_INTERFACE_DEFINED__
1015 
1016   EXTERN_C const IID IID_Errors;
1017 #if defined (__cplusplus) && !defined (CINTERFACE)
1018 
1019   MIDL_INTERFACE ("00000501-0000-0010-8000-00AA006D2EA4")
1020   ADOErrors : public _ADOCollection {
1021     public:
1022     virtual HRESULT STDMETHODCALLTYPE get_Item (VARIANT Index, ADOError **ppvObject) = 0;
1023     virtual HRESULT STDMETHODCALLTYPE Clear (void) = 0;
1024   };
1025 #else
1026   typedef struct ErrorsVtbl {
1027     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOErrors *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1028     ULONG (STDMETHODCALLTYPE *AddRef) (ADOErrors *This);
1029     ULONG (STDMETHODCALLTYPE *Release) (ADOErrors *This);
1030     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOErrors *This, UINT *pctinfo);
1031     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOErrors *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1032     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOErrors *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1033     HRESULT (STDMETHODCALLTYPE *Invoke) (ADOErrors *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1034     HRESULT (STDMETHODCALLTYPE *get_Count) (ADOErrors *This, long *c);
1035     HRESULT (STDMETHODCALLTYPE *_NewEnum) (ADOErrors *This, IUnknown **ppvObject);
1036     HRESULT (STDMETHODCALLTYPE *Refresh) (ADOErrors *This);
1037     HRESULT (STDMETHODCALLTYPE *get_Item) (ADOErrors *This, VARIANT Index, ADOError **ppvObject);
1038     HRESULT (STDMETHODCALLTYPE *Clear) (ADOErrors *This);
1039     END_INTERFACE
1040   } ErrorsVtbl;
1041   interface Errors {
1042     CONST_VTBL struct ErrorsVtbl *lpVtbl;
1043   };
1044 #ifdef COBJMACROS
1045 #define Errors_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1046 #define Errors_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1047 #define Errors_Release(This) ((This)->lpVtbl ->Release (This))
1048 #define Errors_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1049 #define Errors_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1050 #define Errors_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1051 #define Errors_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1052 #define Errors_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
1053 #define Errors__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
1054 #define Errors_Refresh(This) ((This)->lpVtbl ->Refresh (This))
1055 #define Errors_get_Item(This, Index, ppvObject) ((This)->lpVtbl ->get_Item (This, Index, ppvObject))
1056 #define Errors_Clear(This) ((This)->lpVtbl ->Clear (This))
1057 #endif
1058 #endif
1059 #endif
1060 #ifndef __Command15_INTERFACE_DEFINED__
1061 #define __Command15_INTERFACE_DEFINED__
1062 
1063   EXTERN_C const IID IID_Command15;
1064 #if defined (__cplusplus) && !defined (CINTERFACE)
1065 
1066   MIDL_INTERFACE ("00001508-0000-0010-8000-00AA006D2EA4")
1067   Command15 : public _ADO {
1068     public:
1069     virtual HRESULT STDMETHODCALLTYPE get_ActiveConnection (_ADOConnection **ppvObject) = 0;
1070     virtual HRESULT STDMETHODCALLTYPE putref_ActiveConnection (_ADOConnection *pCon) = 0;
1071     virtual HRESULT STDMETHODCALLTYPE put_ActiveConnection (VARIANT vConn) = 0;
1072     virtual HRESULT STDMETHODCALLTYPE get_CommandText (BSTR *pbstr) = 0;
1073     virtual HRESULT STDMETHODCALLTYPE put_CommandText (BSTR bstr) = 0;
1074     virtual HRESULT STDMETHODCALLTYPE get_CommandTimeout (LONG *pl) = 0;
1075     virtual HRESULT STDMETHODCALLTYPE put_CommandTimeout (LONG Timeout) = 0;
1076     virtual HRESULT STDMETHODCALLTYPE get_Prepared (VARIANT_BOOL *pfPrepared) = 0;
1077     virtual HRESULT STDMETHODCALLTYPE put_Prepared (VARIANT_BOOL fPrepared) = 0;
1078     virtual HRESULT STDMETHODCALLTYPE Execute (VARIANT *RecordsAffected, VARIANT *Parameters, long Options, _ADORecordset **ppirs) = 0;
1079     virtual HRESULT STDMETHODCALLTYPE CreateParameter (BSTR Name, DataTypeEnum Type, ParameterDirectionEnum Direction, long Size, VARIANT Value, _ADOParameter **ppiprm) = 0;
1080     virtual HRESULT STDMETHODCALLTYPE get_Parameters (ADOParameters **ppvObject) = 0;
1081     virtual HRESULT STDMETHODCALLTYPE put_CommandType (CommandTypeEnum lCmdType) = 0;
1082     virtual HRESULT STDMETHODCALLTYPE get_CommandType (CommandTypeEnum *plCmdType) = 0;
1083     virtual HRESULT STDMETHODCALLTYPE get_Name (BSTR *pbstrName) = 0;
1084     virtual HRESULT STDMETHODCALLTYPE put_Name (BSTR bstrName) = 0;
1085   };
1086 #else
1087   typedef struct Command15Vtbl {
1088     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (Command15 *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1089     ULONG (STDMETHODCALLTYPE *AddRef) (Command15 *This);
1090     ULONG (STDMETHODCALLTYPE *Release) (Command15 *This);
1091     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (Command15 *This, UINT *pctinfo);
1092     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (Command15 *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1093     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (Command15 *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1094     HRESULT (STDMETHODCALLTYPE *Invoke) (Command15 *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1095     HRESULT (STDMETHODCALLTYPE *get_Properties) (Command15 *This, ADOProperties **ppvObject);
1096     HRESULT (STDMETHODCALLTYPE *get_ActiveConnection) (Command15 *This, _ADOConnection **ppvObject);
1097     HRESULT (STDMETHODCALLTYPE *putref_ActiveADOConnection) (Command15 *This, _ADOConnection *pCon);
1098     HRESULT (STDMETHODCALLTYPE *put_ActiveConnection) (Command15 *This, VARIANT vConn);
1099     HRESULT (STDMETHODCALLTYPE *get_CommandText) (Command15 *This, BSTR *pbstr);
1100     HRESULT (STDMETHODCALLTYPE *put_CommandText) (Command15 *This, BSTR bstr);
1101     HRESULT (STDMETHODCALLTYPE *get_CommandTimeout) (Command15 *This, LONG *pl);
1102     HRESULT (STDMETHODCALLTYPE *put_CommandTimeout) (Command15 *This, LONG Timeout);
1103     HRESULT (STDMETHODCALLTYPE *get_Prepared) (Command15 *This, VARIANT_BOOL *pfPrepared);
1104     HRESULT (STDMETHODCALLTYPE *put_Prepared) (Command15 *This, VARIANT_BOOL fPrepared);
1105     HRESULT (STDMETHODCALLTYPE *Execute) (Command15 *This, VARIANT *RecordsAffected, VARIANT *Parameters, long Options, _ADORecordset **ppirs);
1106     HRESULT (STDMETHODCALLTYPE *CreateParameter) (Command15 *This, BSTR Name, DataTypeEnum Type, ParameterDirectionEnum Direction, long Size, VARIANT Value, _ADOParameter **ppiprm);
1107     HRESULT (STDMETHODCALLTYPE *get_Parameters) (Command15 *This, ADOParameters **ppvObject);
1108     HRESULT (STDMETHODCALLTYPE *put_CommandType) (Command15 *This, CommandTypeEnum lCmdType);
1109     HRESULT (STDMETHODCALLTYPE *get_CommandType) (Command15 *This, CommandTypeEnum *plCmdType);
1110     HRESULT (STDMETHODCALLTYPE *get_Name) (Command15 *This, BSTR *pbstrName);
1111     HRESULT (STDMETHODCALLTYPE *put_Name) (Command15 *This, BSTR bstrName);
1112     END_INTERFACE
1113   } Command15Vtbl;
1114   interface Command15 {
1115     CONST_VTBL struct Command15Vtbl *lpVtbl;
1116   };
1117 #ifdef COBJMACROS
1118 #define Command15_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1119 #define Command15_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1120 #define Command15_Release(This) ((This)->lpVtbl ->Release (This))
1121 #define Command15_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1122 #define Command15_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1123 #define Command15_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1124 #define Command15_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1125 #define Command15_get_Properties(This, ppvObject) ((This)->lpVtbl ->get_Properties (This, ppvObject))
1126 #define Command15_get_ActiveConnection(This, ppvObject) ((This)->lpVtbl ->get_ActiveConnection (This, ppvObject))
1127 #define Command15_putref_ActiveConnection(This, pCon) ((This)->lpVtbl ->putref_ActiveConnection (This, pCon))
1128 #define Command15_put_ActiveConnection(This, vConn) ((This)->lpVtbl ->put_ActiveConnection (This, vConn))
1129 #define Command15_get_CommandText(This, pbstr) ((This)->lpVtbl ->get_CommandText (This, pbstr))
1130 #define Command15_put_CommandText(This, bstr) ((This)->lpVtbl ->put_CommandText (This, bstr))
1131 #define Command15_get_CommandTimeout(This, pl) ((This)->lpVtbl ->get_CommandTimeout (This, pl))
1132 #define Command15_put_CommandTimeout(This, Timeout) ((This)->lpVtbl ->put_CommandTimeout (This, Timeout))
1133 #define Command15_get_Prepared(This, pfPrepared) ((This)->lpVtbl ->get_Prepared (This, pfPrepared))
1134 #define Command15_put_Prepared(This, fPrepared) ((This)->lpVtbl ->put_Prepared (This, fPrepared))
1135 #define Command15_Execute(This, RecordsAffected, Parameters, Options, ppirs) ((This)->lpVtbl ->Execute (This, RecordsAffected, Parameters, Options, ppirs))
1136 #define Command15_CreateParameter(This, Name, Type, Direction, Size, Value, ppiprm) ((This)->lpVtbl ->CreateParameter (This, Name, Type, Direction, Size, Value, ppiprm))
1137 #define Command15_get_Parameters(This, ppvObject) ((This)->lpVtbl ->get_Parameters (This, ppvObject))
1138 #define Command15_put_CommandType(This, lCmdType) ((This)->lpVtbl ->put_CommandType (This, lCmdType))
1139 #define Command15_get_CommandType(This, plCmdType) ((This)->lpVtbl ->get_CommandType (This, plCmdType))
1140 #define Command15_get_Name(This, pbstrName) ((This)->lpVtbl ->get_Name (This, pbstrName))
1141 #define Command15_put_Name(This, bstrName) ((This)->lpVtbl ->put_Name (This, bstrName))
1142 #endif
1143 #endif
1144 #endif
1145 #ifndef __Command25_INTERFACE_DEFINED__
1146 #define __Command25_INTERFACE_DEFINED__
1147 
1148   EXTERN_C const IID IID_Command25;
1149 #if defined (__cplusplus) && !defined (CINTERFACE)
1150 
1151   MIDL_INTERFACE ("0000154E-0000-0010-8000-00AA006D2EA4")
1152   Command25 : public Command15 {
1153     public:
1154     virtual HRESULT STDMETHODCALLTYPE get_State (LONG *plObjState) = 0;
1155     virtual HRESULT STDMETHODCALLTYPE Cancel (void) = 0;
1156   };
1157 #else
1158   typedef struct Command25Vtbl {
1159     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (Command25 *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1160     ULONG (STDMETHODCALLTYPE *AddRef) (Command25 *This);
1161     ULONG (STDMETHODCALLTYPE *Release) (Command25 *This);
1162     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (Command25 *This, UINT *pctinfo);
1163     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (Command25 *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1164     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (Command25 *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1165     HRESULT (STDMETHODCALLTYPE *Invoke) (Command25 *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1166     HRESULT (STDMETHODCALLTYPE *get_Properties) (Command25 *This, ADOProperties **ppvObject);
1167     HRESULT (STDMETHODCALLTYPE *get_ActiveConnection) (Command25 *This, _ADOConnection **ppvObject);
1168     HRESULT (STDMETHODCALLTYPE *putref_ActiveADOConnection) (Command25 *This, _ADOConnection *pCon);
1169     HRESULT (STDMETHODCALLTYPE *put_ActiveConnection) (Command25 *This, VARIANT vConn);
1170     HRESULT (STDMETHODCALLTYPE *get_CommandText) (Command25 *This, BSTR *pbstr);
1171     HRESULT (STDMETHODCALLTYPE *put_CommandText) (Command25 *This, BSTR bstr);
1172     HRESULT (STDMETHODCALLTYPE *get_CommandTimeout) (Command25 *This, LONG *pl);
1173     HRESULT (STDMETHODCALLTYPE *put_CommandTimeout) (Command25 *This, LONG Timeout);
1174     HRESULT (STDMETHODCALLTYPE *get_Prepared) (Command25 *This, VARIANT_BOOL *pfPrepared);
1175     HRESULT (STDMETHODCALLTYPE *put_Prepared) (Command25 *This, VARIANT_BOOL fPrepared);
1176     HRESULT (STDMETHODCALLTYPE *Execute) (Command25 *This, VARIANT *RecordsAffected, VARIANT *Parameters, long Options, _ADORecordset **ppirs);
1177     HRESULT (STDMETHODCALLTYPE *CreateParameter) (Command25 *This, BSTR Name, DataTypeEnum Type, ParameterDirectionEnum Direction, long Size, VARIANT Value, _ADOParameter **ppiprm);
1178     HRESULT (STDMETHODCALLTYPE *get_Parameters) (Command25 *This, ADOParameters **ppvObject);
1179     HRESULT (STDMETHODCALLTYPE *put_CommandType) (Command25 *This, CommandTypeEnum lCmdType);
1180     HRESULT (STDMETHODCALLTYPE *get_CommandType) (Command25 *This, CommandTypeEnum *plCmdType);
1181     HRESULT (STDMETHODCALLTYPE *get_Name) (Command25 *This, BSTR *pbstrName);
1182     HRESULT (STDMETHODCALLTYPE *put_Name) (Command25 *This, BSTR bstrName);
1183     HRESULT (STDMETHODCALLTYPE *get_State) (Command25 *This, LONG *plObjState);
1184     HRESULT (STDMETHODCALLTYPE *Cancel) (Command25 *This);
1185     END_INTERFACE
1186   } Command25Vtbl;
1187   interface Command25 {
1188     CONST_VTBL struct Command25Vtbl *lpVtbl;
1189   };
1190 #ifdef COBJMACROS
1191 #define Command25_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1192 #define Command25_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1193 #define Command25_Release(This) ((This)->lpVtbl ->Release (This))
1194 #define Command25_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1195 #define Command25_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1196 #define Command25_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1197 #define Command25_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1198 #define Command25_get_Properties(This, ppvObject) ((This)->lpVtbl ->get_Properties (This, ppvObject))
1199 #define Command25_get_ActiveConnection(This, ppvObject) ((This)->lpVtbl ->get_ActiveConnection (This, ppvObject))
1200 #define Command25_putref_ActiveConnection(This, pCon) ((This)->lpVtbl ->putref_ActiveConnection (This, pCon))
1201 #define Command25_put_ActiveConnection(This, vConn) ((This)->lpVtbl ->put_ActiveConnection (This, vConn))
1202 #define Command25_get_CommandText(This, pbstr) ((This)->lpVtbl ->get_CommandText (This, pbstr))
1203 #define Command25_put_CommandText(This, bstr) ((This)->lpVtbl ->put_CommandText (This, bstr))
1204 #define Command25_get_CommandTimeout(This, pl) ((This)->lpVtbl ->get_CommandTimeout (This, pl))
1205 #define Command25_put_CommandTimeout(This, Timeout) ((This)->lpVtbl ->put_CommandTimeout (This, Timeout))
1206 #define Command25_get_Prepared(This, pfPrepared) ((This)->lpVtbl ->get_Prepared (This, pfPrepared))
1207 #define Command25_put_Prepared(This, fPrepared) ((This)->lpVtbl ->put_Prepared (This, fPrepared))
1208 #define Command25_Execute(This, RecordsAffected, Parameters, Options, ppirs) ((This)->lpVtbl ->Execute (This, RecordsAffected, Parameters, Options, ppirs))
1209 #define Command25_CreateParameter(This, Name, Type, Direction, Size, Value, ppiprm) ((This)->lpVtbl ->CreateParameter (This, Name, Type, Direction, Size, Value, ppiprm))
1210 #define Command25_get_Parameters(This, ppvObject) ((This)->lpVtbl ->get_Parameters (This, ppvObject))
1211 #define Command25_put_CommandType(This, lCmdType) ((This)->lpVtbl ->put_CommandType (This, lCmdType))
1212 #define Command25_get_CommandType(This, plCmdType) ((This)->lpVtbl ->get_CommandType (This, plCmdType))
1213 #define Command25_get_Name(This, pbstrName) ((This)->lpVtbl ->get_Name (This, pbstrName))
1214 #define Command25_put_Name(This, bstrName) ((This)->lpVtbl ->put_Name (This, bstrName))
1215 #define Command25_get_State(This, plObjState) ((This)->lpVtbl ->get_State (This, plObjState))
1216 #define Command25_Cancel(This) ((This)->lpVtbl ->Cancel (This))
1217 #endif
1218 #endif
1219 #endif
1220 #ifndef ___Command_INTERFACE_DEFINED__
1221 #define ___Command_INTERFACE_DEFINED__
1222 
1223   EXTERN_C const IID IID__Command;
1224 #if defined (__cplusplus) && !defined (CINTERFACE)
1225 
1226   MIDL_INTERFACE ("986761E8-7269-4890-AA65-AD7C03697A6D")
1227   _ADOCommand : public Command25 {
1228     public:
1229     virtual HRESULT __stdcall putref_CommandStream (IUnknown *pStream) = 0;
1230     virtual HRESULT __stdcall get_CommandStream (VARIANT *pvStream) = 0;
1231     virtual HRESULT __stdcall put_Dialect (BSTR bstrDialect) = 0;
1232     virtual HRESULT __stdcall get_Dialect (BSTR *pbstrDialect) = 0;
1233     virtual HRESULT __stdcall put_NamedParameters (VARIANT_BOOL fNamedParameters) = 0;
1234     virtual HRESULT __stdcall get_NamedParameters (VARIANT_BOOL *pfNamedParameters) = 0;
1235   };
1236 #else
1237   typedef struct _CommandVtbl {
1238     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADOCommand *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1239     ULONG (STDMETHODCALLTYPE *AddRef) (_ADOCommand *This);
1240     ULONG (STDMETHODCALLTYPE *Release) (_ADOCommand *This);
1241     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADOCommand *This, UINT *pctinfo);
1242     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADOCommand *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1243     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADOCommand *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1244     HRESULT (STDMETHODCALLTYPE *Invoke) (_ADOCommand *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1245     HRESULT (STDMETHODCALLTYPE *get_Properties) (_ADOCommand *This, ADOProperties **ppvObject);
1246     HRESULT (STDMETHODCALLTYPE *get_ActiveConnection) (_ADOCommand *This, _ADOConnection **ppvObject);
1247     HRESULT (STDMETHODCALLTYPE *putref_ActiveADOConnection) (_ADOCommand *This, _ADOConnection *pCon);
1248     HRESULT (STDMETHODCALLTYPE *put_ActiveConnection) (_ADOCommand *This, VARIANT vConn);
1249     HRESULT (STDMETHODCALLTYPE *get_CommandText) (_ADOCommand *This, BSTR *pbstr);
1250     HRESULT (STDMETHODCALLTYPE *put_CommandText) (_ADOCommand *This, BSTR bstr);
1251     HRESULT (STDMETHODCALLTYPE *get_CommandTimeout) (_ADOCommand *This, LONG *pl);
1252     HRESULT (STDMETHODCALLTYPE *put_CommandTimeout) (_ADOCommand *This, LONG Timeout);
1253     HRESULT (STDMETHODCALLTYPE *get_Prepared) (_ADOCommand *This, VARIANT_BOOL *pfPrepared);
1254     HRESULT (STDMETHODCALLTYPE *put_Prepared) (_ADOCommand *This, VARIANT_BOOL fPrepared);
1255     HRESULT (STDMETHODCALLTYPE *Execute) (_ADOCommand *This, VARIANT *RecordsAffected, VARIANT *Parameters, long Options, _ADORecordset **ppirs);
1256     HRESULT (STDMETHODCALLTYPE *CreateParameter) (_ADOCommand *This, BSTR Name, DataTypeEnum Type, ParameterDirectionEnum Direction, long Size, VARIANT Value, _ADOParameter **ppiprm);
1257     HRESULT (STDMETHODCALLTYPE *get_Parameters) (_ADOCommand *This, ADOParameters **ppvObject);
1258     HRESULT (STDMETHODCALLTYPE *put_CommandType) (_ADOCommand *This, CommandTypeEnum lCmdType);
1259     HRESULT (STDMETHODCALLTYPE *get_CommandType) (_ADOCommand *This, CommandTypeEnum *plCmdType);
1260     HRESULT (STDMETHODCALLTYPE *get_Name) (_ADOCommand *This, BSTR *pbstrName);
1261     HRESULT (STDMETHODCALLTYPE *put_Name) (_ADOCommand *This, BSTR bstrName);
1262     HRESULT (STDMETHODCALLTYPE *get_State) (_ADOCommand *This, LONG *plObjState);
1263     HRESULT (STDMETHODCALLTYPE *Cancel) (_ADOCommand *This);
1264     HRESULT (__stdcall *putref_CommandADOStream) (_ADOCommand *This, IUnknown *pStream);
1265     HRESULT (__stdcall *get_CommandStream) (_ADOCommand *This, VARIANT *pvStream);
1266     HRESULT (__stdcall *put_Dialect) (_ADOCommand *This, BSTR bstrDialect);
1267     HRESULT (__stdcall *get_Dialect) (_ADOCommand *This, BSTR *pbstrDialect);
1268     HRESULT (__stdcall *put_NamedParameters) (_ADOCommand *This, VARIANT_BOOL fNamedParameters);
1269     HRESULT (__stdcall *get_NamedParameters) (_ADOCommand *This, VARIANT_BOOL *pfNamedParameters);
1270     END_INTERFACE
1271   } _CommandVtbl;
1272   interface _Command {
1273     CONST_VTBL struct _CommandVtbl *lpVtbl;
1274   };
1275 #ifdef COBJMACROS
1276 #define _Command_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1277 #define _Command_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1278 #define _Command_Release(This) ((This)->lpVtbl ->Release (This))
1279 #define _Command_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1280 #define _Command_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1281 #define _Command_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1282 #define _Command_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1283 #define _Command_get_Properties(This, ppvObject) ((This)->lpVtbl ->get_Properties (This, ppvObject))
1284 #define _Command_get_ActiveConnection(This, ppvObject) ((This)->lpVtbl ->get_ActiveConnection (This, ppvObject))
1285 #define _Command_putref_ActiveConnection(This, pCon) ((This)->lpVtbl ->putref_ActiveConnection (This, pCon))
1286 #define _Command_put_ActiveConnection(This, vConn) ((This)->lpVtbl ->put_ActiveConnection (This, vConn))
1287 #define _Command_get_CommandText(This, pbstr) ((This)->lpVtbl ->get_CommandText (This, pbstr))
1288 #define _Command_put_CommandText(This, bstr) ((This)->lpVtbl ->put_CommandText (This, bstr))
1289 #define _Command_get_CommandTimeout(This, pl) ((This)->lpVtbl ->get_CommandTimeout (This, pl))
1290 #define _Command_put_CommandTimeout(This, Timeout) ((This)->lpVtbl ->put_CommandTimeout (This, Timeout))
1291 #define _Command_get_Prepared(This, pfPrepared) ((This)->lpVtbl ->get_Prepared (This, pfPrepared))
1292 #define _Command_put_Prepared(This, fPrepared) ((This)->lpVtbl ->put_Prepared (This, fPrepared))
1293 #define _Command_Execute(This, RecordsAffected, Parameters, Options, ppirs) ((This)->lpVtbl ->Execute (This, RecordsAffected, Parameters, Options, ppirs))
1294 #define _Command_CreateParameter(This, Name, Type, Direction, Size, Value, ppiprm) ((This)->lpVtbl ->CreateParameter (This, Name, Type, Direction, Size, Value, ppiprm))
1295 #define _Command_get_Parameters(This, ppvObject) ((This)->lpVtbl ->get_Parameters (This, ppvObject))
1296 #define _Command_put_CommandType(This, lCmdType) ((This)->lpVtbl ->put_CommandType (This, lCmdType))
1297 #define _Command_get_CommandType(This, plCmdType) ((This)->lpVtbl ->get_CommandType (This, plCmdType))
1298 #define _Command_get_Name(This, pbstrName) ((This)->lpVtbl ->get_Name (This, pbstrName))
1299 #define _Command_put_Name(This, bstrName) ((This)->lpVtbl ->put_Name (This, bstrName))
1300 #define _Command_get_State(This, plObjState) ((This)->lpVtbl ->get_State (This, plObjState))
1301 #define _Command_Cancel(This) ((This)->lpVtbl ->Cancel (This))
1302 #define _Command_putref_CommandStream(This, pStream) ((This)->lpVtbl ->putref_CommandStream (This, pStream))
1303 #define _Command_get_CommandStream(This, pvStream) ((This)->lpVtbl ->get_CommandStream (This, pvStream))
1304 #define _Command_put_Dialect(This, bstrDialect) ((This)->lpVtbl ->put_Dialect (This, bstrDialect))
1305 #define _Command_get_Dialect(This, pbstrDialect) ((This)->lpVtbl ->get_Dialect (This, pbstrDialect))
1306 #define _Command_put_NamedParameters(This, fNamedParameters) ((This)->lpVtbl ->put_NamedParameters (This, fNamedParameters))
1307 #define _Command_get_NamedParameters(This, pfNamedParameters) ((This)->lpVtbl ->get_NamedParameters (This, pfNamedParameters))
1308 #endif
1309 #endif
1310 #endif
1311 #ifndef __ConnectionEventsVt_INTERFACE_DEFINED__
1312 #define __ConnectionEventsVt_INTERFACE_DEFINED__
1313 
1314   EXTERN_C const IID IID_ConnectionEventsVt;
1315 #if defined (__cplusplus) && !defined (CINTERFACE)
1316 
1317   MIDL_INTERFACE ("00001402-0000-0010-8000-00AA006D2EA4")
1318   ConnectionEventsVt : public IUnknown {
1319     public:
1320     virtual HRESULT STDMETHODCALLTYPE InfoMessage (ADOError *pError, EventStatusEnum *adStatus, _ADOConnection *pConnection) = 0;
1321     virtual HRESULT STDMETHODCALLTYPE BeginTransComplete (LONG TransactionLevel, ADOError *pError, EventStatusEnum *adStatus, _ADOConnection *pConnection) = 0;
1322     virtual HRESULT STDMETHODCALLTYPE CommitTransComplete (ADOError *pError, EventStatusEnum *adStatus, _ADOConnection *pConnection) = 0;
1323     virtual HRESULT STDMETHODCALLTYPE RollbackTransComplete (ADOError *pError, EventStatusEnum *adStatus, _ADOConnection *pConnection) = 0;
1324     virtual HRESULT STDMETHODCALLTYPE WillExecute (BSTR *Source, CursorTypeEnum *CursorType, LockTypeEnum *LockType, long *Options, EventStatusEnum *adStatus, _ADOCommand *pCommand, _ADORecordset *pRecordset, _ADOConnection *pConnection) = 0;
1325     virtual HRESULT STDMETHODCALLTYPE ExecuteComplete (LONG RecordsAffected, ADOError *pError, EventStatusEnum *adStatus, _ADOCommand *pCommand, _ADORecordset *pRecordset, _ADOConnection *pConnection) = 0;
1326     virtual HRESULT STDMETHODCALLTYPE WillConnect (BSTR *ConnectionString, BSTR *UserID, BSTR *Password, long *Options, EventStatusEnum *adStatus, _ADOConnection *pConnection) = 0;
1327     virtual HRESULT STDMETHODCALLTYPE ConnectComplete (ADOError *pError, EventStatusEnum *adStatus, _ADOConnection *pConnection) = 0;
1328     virtual HRESULT STDMETHODCALLTYPE Disconnect (EventStatusEnum *adStatus, _ADOConnection *pConnection) = 0;
1329   };
1330 #else
1331   typedef struct ConnectionEventsVtVtbl {
1332     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ConnectionEventsVt *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1333     ULONG (STDMETHODCALLTYPE *AddRef) (ConnectionEventsVt *This);
1334     ULONG (STDMETHODCALLTYPE *Release) (ConnectionEventsVt *This);
1335     HRESULT (STDMETHODCALLTYPE *InfoMessage) (ConnectionEventsVt *This, ADOError *pError, EventStatusEnum *adStatus, _ADOConnection *pConnection);
1336     HRESULT (STDMETHODCALLTYPE *BeginTransComplete) (ConnectionEventsVt *This, LONG TransactionLevel, ADOError *pError, EventStatusEnum *adStatus, _ADOConnection *pConnection);
1337     HRESULT (STDMETHODCALLTYPE *CommitTransComplete) (ConnectionEventsVt *This, ADOError *pError, EventStatusEnum *adStatus, _ADOConnection *pConnection);
1338     HRESULT (STDMETHODCALLTYPE *RollbackTransComplete) (ConnectionEventsVt *This, ADOError *pError, EventStatusEnum *adStatus, _ADOConnection *pConnection);
1339     HRESULT (STDMETHODCALLTYPE *WillExecute) (ConnectionEventsVt *This, BSTR *Source, CursorTypeEnum *CursorType, LockTypeEnum *LockType, long *Options, EventStatusEnum *adStatus, _ADOCommand *pCommand, _ADORecordset *pRecordset, _ADOConnection *pConnection);
1340     HRESULT (STDMETHODCALLTYPE *ExecuteComplete) (ConnectionEventsVt *This, LONG RecordsAffected, ADOError *pError, EventStatusEnum *adStatus, _ADOCommand *pCommand, _ADORecordset *pRecordset, _ADOConnection *pConnection);
1341     HRESULT (STDMETHODCALLTYPE *WillConnect) (ConnectionEventsVt *This, BSTR *ConnectionString, BSTR *UserID, BSTR *Password, long *Options, EventStatusEnum *adStatus, _ADOConnection *pConnection);
1342     HRESULT (STDMETHODCALLTYPE *ConnectComplete) (ConnectionEventsVt *This, ADOError *pError, EventStatusEnum *adStatus, _ADOConnection *pConnection);
1343     HRESULT (STDMETHODCALLTYPE *Disconnect) (ConnectionEventsVt *This, EventStatusEnum *adStatus, _ADOConnection *pConnection);
1344     END_INTERFACE
1345   } ConnectionEventsVtVtbl;
1346   interface ConnectionEventsVt {
1347     CONST_VTBL struct ConnectionEventsVtVtbl *lpVtbl;
1348   };
1349 #ifdef COBJMACROS
1350 #define ConnectionEventsVt_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1351 #define ConnectionEventsVt_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1352 #define ConnectionEventsVt_Release(This) ((This)->lpVtbl ->Release (This))
1353 #define ConnectionEventsVt_InfoMessage(This, pError, adStatus, pConnection) ((This)->lpVtbl ->InfoMessage (This, pError, adStatus, pConnection))
1354 #define ConnectionEventsVt_BeginTransComplete(This, TransactionLevel, pError, adStatus, pConnection) ((This)->lpVtbl ->BeginTransComplete (This, TransactionLevel, pError, adStatus, pConnection))
1355 #define ConnectionEventsVt_CommitTransComplete(This, pError, adStatus, pConnection) ((This)->lpVtbl ->CommitTransComplete (This, pError, adStatus, pConnection))
1356 #define ConnectionEventsVt_RollbackTransComplete(This, pError, adStatus, pConnection) ((This)->lpVtbl ->RollbackTransComplete (This, pError, adStatus, pConnection))
1357 #define ConnectionEventsVt_WillExecute(This, Source, CursorType, LockType, Options, adStatus, pCommand, pRecordset, pConnection) ((This)->lpVtbl ->WillExecute (This, Source, CursorType, LockType, Options, adStatus, pCommand, pRecordset, pConnection))
1358 #define ConnectionEventsVt_ExecuteComplete(This, RecordsAffected, pError, adStatus, pCommand, pRecordset, pConnection) ((This)->lpVtbl ->ExecuteComplete (This, RecordsAffected, pError, adStatus, pCommand, pRecordset, pConnection))
1359 #define ConnectionEventsVt_WillConnect(This, ConnectionString, UserID, Password, Options, adStatus, pConnection) ((This)->lpVtbl ->WillConnect (This, ConnectionString, UserID, Password, Options, adStatus, pConnection))
1360 #define ConnectionEventsVt_ConnectComplete(This, pError, adStatus, pConnection) ((This)->lpVtbl ->ConnectComplete (This, pError, adStatus, pConnection))
1361 #define ConnectionEventsVt_Disconnect(This, adStatus, pConnection) ((This)->lpVtbl ->Disconnect (This, adStatus, pConnection))
1362 #endif
1363 #endif
1364 #endif
1365 #ifndef __RecordsetEventsVt_INTERFACE_DEFINED__
1366 #define __RecordsetEventsVt_INTERFACE_DEFINED__
1367 
1368   EXTERN_C const IID IID_RecordsetEventsVt;
1369 #if defined (__cplusplus) && !defined (CINTERFACE)
1370 
1371   MIDL_INTERFACE ("00001403-0000-0010-8000-00AA006D2EA4")
1372   RecordsetEventsVt : public IUnknown {
1373     public:
1374     virtual HRESULT STDMETHODCALLTYPE WillChangeField (LONG cFields, VARIANT Fields, EventStatusEnum *adStatus, _ADORecordset *pRecordset) = 0;
1375     virtual HRESULT STDMETHODCALLTYPE FieldChangeComplete (LONG cFields, VARIANT Fields, ADOError *pError, EventStatusEnum *adStatus, _ADORecordset *pRecordset) = 0;
1376     virtual HRESULT STDMETHODCALLTYPE WillChangeRecord (EventReasonEnum adReason, LONG cRecords, EventStatusEnum *adStatus, _ADORecordset *pRecordset) = 0;
1377     virtual HRESULT STDMETHODCALLTYPE RecordChangeComplete (EventReasonEnum adReason, LONG cRecords, ADOError *pError, EventStatusEnum *adStatus, _ADORecordset *pRecordset) = 0;
1378     virtual HRESULT STDMETHODCALLTYPE WillChangeRecordset (EventReasonEnum adReason, EventStatusEnum *adStatus, _ADORecordset *pRecordset) = 0;
1379     virtual HRESULT STDMETHODCALLTYPE RecordsetChangeComplete (EventReasonEnum adReason, ADOError *pError, EventStatusEnum *adStatus, _ADORecordset *pRecordset) = 0;
1380     virtual HRESULT STDMETHODCALLTYPE WillMove (EventReasonEnum adReason, EventStatusEnum *adStatus, _ADORecordset *pRecordset) = 0;
1381     virtual HRESULT STDMETHODCALLTYPE MoveComplete (EventReasonEnum adReason, ADOError *pError, EventStatusEnum *adStatus, _ADORecordset *pRecordset) = 0;
1382     virtual HRESULT STDMETHODCALLTYPE EndOfRecordset (VARIANT_BOOL *fMoreData, EventStatusEnum *adStatus, _ADORecordset *pRecordset) = 0;
1383     virtual HRESULT STDMETHODCALLTYPE FetchProgress (long Progress, long MaxProgress, EventStatusEnum *adStatus, _ADORecordset *pRecordset) = 0;
1384     virtual HRESULT STDMETHODCALLTYPE FetchComplete (ADOError *pError, EventStatusEnum *adStatus, _ADORecordset *pRecordset) = 0;
1385   };
1386 #else
1387   typedef struct RecordsetEventsVtVtbl {
1388     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (RecordsetEventsVt *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1389     ULONG (STDMETHODCALLTYPE *AddRef) (RecordsetEventsVt *This);
1390     ULONG (STDMETHODCALLTYPE *Release) (RecordsetEventsVt *This);
1391     HRESULT (STDMETHODCALLTYPE *WillChangeADOField) (RecordsetEventsVt *This, LONG cFields, VARIANT Fields, EventStatusEnum *adStatus, _ADORecordset *pRecordset);
1392     HRESULT (STDMETHODCALLTYPE *FieldChangeComplete) (RecordsetEventsVt *This, LONG cFields, VARIANT Fields, ADOError *pError, EventStatusEnum *adStatus, _ADORecordset *pRecordset);
1393     HRESULT (STDMETHODCALLTYPE *WillChangeADORecord) (RecordsetEventsVt *This, EventReasonEnum adReason, LONG cRecords, EventStatusEnum *adStatus, _ADORecordset *pRecordset);
1394     HRESULT (STDMETHODCALLTYPE *RecordChangeComplete) (RecordsetEventsVt *This, EventReasonEnum adReason, LONG cRecords, ADOError *pError, EventStatusEnum *adStatus, _ADORecordset *pRecordset);
1395     HRESULT (STDMETHODCALLTYPE *WillChangeADORecordset) (RecordsetEventsVt *This, EventReasonEnum adReason, EventStatusEnum *adStatus, _ADORecordset *pRecordset);
1396     HRESULT (STDMETHODCALLTYPE *RecordsetChangeComplete) (RecordsetEventsVt *This, EventReasonEnum adReason, ADOError *pError, EventStatusEnum *adStatus, _ADORecordset *pRecordset);
1397     HRESULT (STDMETHODCALLTYPE *WillMove) (RecordsetEventsVt *This, EventReasonEnum adReason, EventStatusEnum *adStatus, _ADORecordset *pRecordset);
1398     HRESULT (STDMETHODCALLTYPE *MoveComplete) (RecordsetEventsVt *This, EventReasonEnum adReason, ADOError *pError, EventStatusEnum *adStatus, _ADORecordset *pRecordset);
1399     HRESULT (STDMETHODCALLTYPE *EndOfADORecordset) (RecordsetEventsVt *This, VARIANT_BOOL *fMoreData, EventStatusEnum *adStatus, _ADORecordset *pRecordset);
1400     HRESULT (STDMETHODCALLTYPE *FetchProgress) (RecordsetEventsVt *This, long Progress, long MaxProgress, EventStatusEnum *adStatus, _ADORecordset *pRecordset);
1401     HRESULT (STDMETHODCALLTYPE *FetchComplete) (RecordsetEventsVt *This, ADOError *pError, EventStatusEnum *adStatus, _ADORecordset *pRecordset);
1402     END_INTERFACE
1403   } RecordsetEventsVtVtbl;
1404   interface RecordsetEventsVt {
1405     CONST_VTBL struct RecordsetEventsVtVtbl *lpVtbl;
1406   };
1407 #ifdef COBJMACROS
1408 #define RecordsetEventsVt_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1409 #define RecordsetEventsVt_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1410 #define RecordsetEventsVt_Release(This) ((This)->lpVtbl ->Release (This))
1411 #define RecordsetEventsVt_WillChangeField(This, cFields, Fields, adStatus, pRecordset) ((This)->lpVtbl ->WillChangeField (This, cFields, Fields, adStatus, pRecordset))
1412 #define RecordsetEventsVt_FieldChangeComplete(This, cFields, Fields, pError, adStatus, pRecordset) ((This)->lpVtbl ->FieldChangeComplete (This, cFields, Fields, pError, adStatus, pRecordset))
1413 #define RecordsetEventsVt_WillChangeRecord(This, adReason, cRecords, adStatus, pRecordset) ((This)->lpVtbl ->WillChangeRecord (This, adReason, cRecords, adStatus, pRecordset))
1414 #define RecordsetEventsVt_RecordChangeComplete(This, adReason, cRecords, pError, adStatus, pRecordset) ((This)->lpVtbl ->RecordChangeComplete (This, adReason, cRecords, pError, adStatus, pRecordset))
1415 #define RecordsetEventsVt_WillChangeRecordset(This, adReason, adStatus, pRecordset) ((This)->lpVtbl ->WillChangeRecordset (This, adReason, adStatus, pRecordset))
1416 #define RecordsetEventsVt_RecordsetChangeComplete(This, adReason, pError, adStatus, pRecordset) ((This)->lpVtbl ->RecordsetChangeComplete (This, adReason, pError, adStatus, pRecordset))
1417 #define RecordsetEventsVt_WillMove(This, adReason, adStatus, pRecordset) ((This)->lpVtbl ->WillMove (This, adReason, adStatus, pRecordset))
1418 #define RecordsetEventsVt_MoveComplete(This, adReason, pError, adStatus, pRecordset) ((This)->lpVtbl ->MoveComplete (This, adReason, pError, adStatus, pRecordset))
1419 #define RecordsetEventsVt_EndOfRecordset(This, fMoreData, adStatus, pRecordset) ((This)->lpVtbl ->EndOfRecordset (This, fMoreData, adStatus, pRecordset))
1420 #define RecordsetEventsVt_FetchProgress(This, Progress, MaxProgress, adStatus, pRecordset) ((This)->lpVtbl ->FetchProgress (This, Progress, MaxProgress, adStatus, pRecordset))
1421 #define RecordsetEventsVt_FetchComplete(This, pError, adStatus, pRecordset) ((This)->lpVtbl ->FetchComplete (This, pError, adStatus, pRecordset))
1422 #endif
1423 #endif
1424 #endif
1425 #ifndef __ConnectionEvents_DISPINTERFACE_DEFINED__
1426 #define __ConnectionEvents_DISPINTERFACE_DEFINED__
1427 
1428   EXTERN_C const IID DIID_ConnectionEvents;
1429 #if defined (__cplusplus) && !defined (CINTERFACE)
1430   MIDL_INTERFACE ("00001400-0000-0010-8000-00AA006D2EA4")
1431   ConnectionEvents : public IDispatch {
1432   };
1433 #else
1434   typedef struct ConnectionEventsVtbl {
1435     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ConnectionEvents *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1436     ULONG (STDMETHODCALLTYPE *AddRef) (ConnectionEvents *This);
1437     ULONG (STDMETHODCALLTYPE *Release) (ConnectionEvents *This);
1438     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ConnectionEvents *This, UINT *pctinfo);
1439     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ConnectionEvents *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1440     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ConnectionEvents *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1441     HRESULT (STDMETHODCALLTYPE *Invoke) (ConnectionEvents *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1442     END_INTERFACE
1443   } ConnectionEventsVtbl;
1444   interface ConnectionEvents {
1445     CONST_VTBL struct ConnectionEventsVtbl *lpVtbl;
1446   };
1447 #ifdef COBJMACROS
1448 #define ConnectionEvents_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1449 #define ConnectionEvents_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1450 #define ConnectionEvents_Release(This) ((This)->lpVtbl ->Release (This))
1451 #define ConnectionEvents_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1452 #define ConnectionEvents_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1453 #define ConnectionEvents_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1454 #define ConnectionEvents_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1455 #endif
1456 #endif
1457 #endif
1458 #ifndef __RecordsetEvents_DISPINTERFACE_DEFINED__
1459 #define __RecordsetEvents_DISPINTERFACE_DEFINED__
1460 
1461   EXTERN_C const IID DIID_RecordsetEvents;
1462 #if defined (__cplusplus) && !defined (CINTERFACE)
1463   MIDL_INTERFACE ("00001266-0000-0010-8000-00AA006D2EA4")
1464   RecordsetEvents : public IDispatch {
1465   };
1466 #else
1467   typedef struct RecordsetEventsVtbl {
1468     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (RecordsetEvents *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1469     ULONG (STDMETHODCALLTYPE *AddRef) (RecordsetEvents *This);
1470     ULONG (STDMETHODCALLTYPE *Release) (RecordsetEvents *This);
1471     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (RecordsetEvents *This, UINT *pctinfo);
1472     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (RecordsetEvents *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1473     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (RecordsetEvents *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1474     HRESULT (STDMETHODCALLTYPE *Invoke) (RecordsetEvents *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1475     END_INTERFACE
1476   } RecordsetEventsVtbl;
1477   interface RecordsetEvents {
1478     CONST_VTBL struct RecordsetEventsVtbl *lpVtbl;
1479   };
1480 #ifdef COBJMACROS
1481 #define RecordsetEvents_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1482 #define RecordsetEvents_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1483 #define RecordsetEvents_Release(This) ((This)->lpVtbl ->Release (This))
1484 #define RecordsetEvents_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1485 #define RecordsetEvents_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1486 #define RecordsetEvents_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1487 #define RecordsetEvents_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1488 #endif
1489 #endif
1490 #endif
1491 #ifndef __Connection15_INTERFACE_DEFINED__
1492 #define __Connection15_INTERFACE_DEFINED__
1493 
1494   EXTERN_C const IID IID_Connection15;
1495 #if defined (__cplusplus) && !defined (CINTERFACE)
1496 
1497   MIDL_INTERFACE ("00001515-0000-0010-8000-00AA006D2EA4")
1498   Connection15 : public _ADO {
1499     public:
1500     virtual HRESULT STDMETHODCALLTYPE get_ConnectionString (BSTR *pbstr) = 0;
1501     virtual HRESULT STDMETHODCALLTYPE put_ConnectionString (BSTR bstr) = 0;
1502     virtual HRESULT STDMETHODCALLTYPE get_CommandTimeout (LONG *plTimeout) = 0;
1503     virtual HRESULT STDMETHODCALLTYPE put_CommandTimeout (LONG lTimeout) = 0;
1504     virtual HRESULT STDMETHODCALLTYPE get_ConnectionTimeout (LONG *plTimeout) = 0;
1505     virtual HRESULT STDMETHODCALLTYPE put_ConnectionTimeout (LONG lTimeout) = 0;
1506     virtual HRESULT STDMETHODCALLTYPE get_Version (BSTR *pbstr) = 0;
1507     virtual HRESULT STDMETHODCALLTYPE Close (void) = 0;
1508     virtual HRESULT STDMETHODCALLTYPE Execute (BSTR CommandText, VARIANT *RecordsAffected, long Options, _ADORecordset **ppiRset) = 0;
1509     virtual HRESULT STDMETHODCALLTYPE BeginTrans (long *TransactionLevel) = 0;
1510     virtual HRESULT STDMETHODCALLTYPE CommitTrans (void) = 0;
1511     virtual HRESULT STDMETHODCALLTYPE RollbackTrans (void) = 0;
1512     virtual HRESULT STDMETHODCALLTYPE Open (BSTR ConnectionString = NULL, BSTR UserID = NULL, BSTR Password = NULL, long Options = adOptionUnspecified) = 0;
1513     virtual HRESULT STDMETHODCALLTYPE get_Errors (ADOErrors **ppvObject) = 0;
1514     virtual HRESULT STDMETHODCALLTYPE get_DefaultDatabase (BSTR *pbstr) = 0;
1515     virtual HRESULT STDMETHODCALLTYPE put_DefaultDatabase (BSTR bstr) = 0;
1516     virtual HRESULT STDMETHODCALLTYPE get_IsolationLevel (IsolationLevelEnum *Level) = 0;
1517     virtual HRESULT STDMETHODCALLTYPE put_IsolationLevel (IsolationLevelEnum Level) = 0;
1518     virtual HRESULT STDMETHODCALLTYPE get_Attributes (long *plAttr) = 0;
1519     virtual HRESULT STDMETHODCALLTYPE put_Attributes (long lAttr) = 0;
1520     virtual HRESULT STDMETHODCALLTYPE get_CursorLocation (CursorLocationEnum *plCursorLoc) = 0;
1521     virtual HRESULT STDMETHODCALLTYPE put_CursorLocation (CursorLocationEnum lCursorLoc) = 0;
1522     virtual HRESULT STDMETHODCALLTYPE get_Mode (ConnectModeEnum *plMode) = 0;
1523     virtual HRESULT STDMETHODCALLTYPE put_Mode (ConnectModeEnum lMode) = 0;
1524     virtual HRESULT STDMETHODCALLTYPE get_Provider (BSTR *pbstr) = 0;
1525     virtual HRESULT STDMETHODCALLTYPE put_Provider (BSTR Provider) = 0;
1526     virtual HRESULT STDMETHODCALLTYPE get_State (LONG *plObjState) = 0;
1527     virtual HRESULT STDMETHODCALLTYPE OpenSchema (SchemaEnum Schema, VARIANT Restrictions, VARIANT SchemaID, _ADORecordset **pprset) = 0;
1528   };
1529 #else
1530   typedef struct Connection15Vtbl {
1531     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (Connection15 *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1532     ULONG (STDMETHODCALLTYPE *AddRef) (Connection15 *This);
1533     ULONG (STDMETHODCALLTYPE *Release) (Connection15 *This);
1534     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (Connection15 *This, UINT *pctinfo);
1535     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (Connection15 *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1536     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (Connection15 *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1537     HRESULT (STDMETHODCALLTYPE *Invoke) (Connection15 *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1538     HRESULT (STDMETHODCALLTYPE *get_Properties) (Connection15 *This, ADOProperties **ppvObject);
1539     HRESULT (STDMETHODCALLTYPE *get_ConnectionString) (Connection15 *This, BSTR *pbstr);
1540     HRESULT (STDMETHODCALLTYPE *put_ConnectionString) (Connection15 *This, BSTR bstr);
1541     HRESULT (STDMETHODCALLTYPE *get_CommandTimeout) (Connection15 *This, LONG *plTimeout);
1542     HRESULT (STDMETHODCALLTYPE *put_CommandTimeout) (Connection15 *This, LONG lTimeout);
1543     HRESULT (STDMETHODCALLTYPE *get_ConnectionTimeout) (Connection15 *This, LONG *plTimeout);
1544     HRESULT (STDMETHODCALLTYPE *put_ConnectionTimeout) (Connection15 *This, LONG lTimeout);
1545     HRESULT (STDMETHODCALLTYPE *get_Version) (Connection15 *This, BSTR *pbstr);
1546     HRESULT (STDMETHODCALLTYPE *Close) (Connection15 *This);
1547     HRESULT (STDMETHODCALLTYPE *Execute) (Connection15 *This, BSTR CommandText, VARIANT *RecordsAffected, long Options, _ADORecordset **ppiRset);
1548     HRESULT (STDMETHODCALLTYPE *BeginTrans) (Connection15 *This, long *TransactionLevel);
1549     HRESULT (STDMETHODCALLTYPE *CommitTrans) (Connection15 *This);
1550     HRESULT (STDMETHODCALLTYPE *RollbackTrans) (Connection15 *This);
1551     HRESULT (STDMETHODCALLTYPE *Open) (Connection15 *This, BSTR ConnectionString, BSTR UserID, BSTR Password, long Options);
1552     HRESULT (STDMETHODCALLTYPE *get_Errors) (Connection15 *This, ADOErrors **ppvObject);
1553     HRESULT (STDMETHODCALLTYPE *get_DefaultDatabase) (Connection15 *This, BSTR *pbstr);
1554     HRESULT (STDMETHODCALLTYPE *put_DefaultDatabase) (Connection15 *This, BSTR bstr);
1555     HRESULT (STDMETHODCALLTYPE *get_IsolationLevel) (Connection15 *This, IsolationLevelEnum *Level);
1556     HRESULT (STDMETHODCALLTYPE *put_IsolationLevel) (Connection15 *This, IsolationLevelEnum Level);
1557     HRESULT (STDMETHODCALLTYPE *get_Attributes) (Connection15 *This, long *plAttr);
1558     HRESULT (STDMETHODCALLTYPE *put_Attributes) (Connection15 *This, long lAttr);
1559     HRESULT (STDMETHODCALLTYPE *get_CursorLocation) (Connection15 *This, CursorLocationEnum *plCursorLoc);
1560     HRESULT (STDMETHODCALLTYPE *put_CursorLocation) (Connection15 *This, CursorLocationEnum lCursorLoc);
1561     HRESULT (STDMETHODCALLTYPE *get_Mode) (Connection15 *This, ConnectModeEnum *plMode);
1562     HRESULT (STDMETHODCALLTYPE *put_Mode) (Connection15 *This, ConnectModeEnum lMode);
1563     HRESULT (STDMETHODCALLTYPE *get_Provider) (Connection15 *This, BSTR *pbstr);
1564     HRESULT (STDMETHODCALLTYPE *put_Provider) (Connection15 *This, BSTR Provider);
1565     HRESULT (STDMETHODCALLTYPE *get_State) (Connection15 *This, LONG *plObjState);
1566     HRESULT (STDMETHODCALLTYPE *OpenSchema) (Connection15 *This, SchemaEnum Schema, VARIANT Restrictions, VARIANT SchemaID, _ADORecordset **pprset);
1567     END_INTERFACE
1568   } Connection15Vtbl;
1569   interface Connection15 {
1570     CONST_VTBL struct Connection15Vtbl *lpVtbl;
1571   };
1572 #ifdef COBJMACROS
1573 #define Connection15_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1574 #define Connection15_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1575 #define Connection15_Release(This) ((This)->lpVtbl ->Release (This))
1576 #define Connection15_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1577 #define Connection15_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1578 #define Connection15_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1579 #define Connection15_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1580 #define Connection15_get_Properties(This, ppvObject) ((This)->lpVtbl ->get_Properties (This, ppvObject))
1581 #define Connection15_get_ConnectionString(This, pbstr) ((This)->lpVtbl ->get_ConnectionString (This, pbstr))
1582 #define Connection15_put_ConnectionString(This, bstr) ((This)->lpVtbl ->put_ConnectionString (This, bstr))
1583 #define Connection15_get_CommandTimeout(This, plTimeout) ((This)->lpVtbl ->get_CommandTimeout (This, plTimeout))
1584 #define Connection15_put_CommandTimeout(This, lTimeout) ((This)->lpVtbl ->put_CommandTimeout (This, lTimeout))
1585 #define Connection15_get_ConnectionTimeout(This, plTimeout) ((This)->lpVtbl ->get_ConnectionTimeout (This, plTimeout))
1586 #define Connection15_put_ConnectionTimeout(This, lTimeout) ((This)->lpVtbl ->put_ConnectionTimeout (This, lTimeout))
1587 #define Connection15_get_Version(This, pbstr) ((This)->lpVtbl ->get_Version (This, pbstr))
1588 #define Connection15_Close(This) ((This)->lpVtbl ->Close (This))
1589 #define Connection15_Execute(This, CommandText, RecordsAffected, Options, ppiRset) ((This)->lpVtbl ->Execute (This, CommandText, RecordsAffected, Options, ppiRset))
1590 #define Connection15_BeginTrans(This, TransactionLevel) ((This)->lpVtbl ->BeginTrans (This, TransactionLevel))
1591 #define Connection15_CommitTrans(This) ((This)->lpVtbl ->CommitTrans (This))
1592 #define Connection15_RollbackTrans(This) ((This)->lpVtbl ->RollbackTrans (This))
1593 #define Connection15_Open(This, ConnectionString, UserID, Password, Options) ((This)->lpVtbl ->Open (This, ConnectionString, UserID, Password, Options))
1594 #define Connection15_get_Errors(This, ppvObject) ((This)->lpVtbl ->get_Errors (This, ppvObject))
1595 #define Connection15_get_DefaultDatabase(This, pbstr) ((This)->lpVtbl ->get_DefaultDatabase (This, pbstr))
1596 #define Connection15_put_DefaultDatabase(This, bstr) ((This)->lpVtbl ->put_DefaultDatabase (This, bstr))
1597 #define Connection15_get_IsolationLevel(This, Level) ((This)->lpVtbl ->get_IsolationLevel (This, Level))
1598 #define Connection15_put_IsolationLevel(This, Level) ((This)->lpVtbl ->put_IsolationLevel (This, Level))
1599 #define Connection15_get_Attributes(This, plAttr) ((This)->lpVtbl ->get_Attributes (This, plAttr))
1600 #define Connection15_put_Attributes(This, lAttr) ((This)->lpVtbl ->put_Attributes (This, lAttr))
1601 #define Connection15_get_CursorLocation(This, plCursorLoc) ((This)->lpVtbl ->get_CursorLocation (This, plCursorLoc))
1602 #define Connection15_put_CursorLocation(This, lCursorLoc) ((This)->lpVtbl ->put_CursorLocation (This, lCursorLoc))
1603 #define Connection15_get_Mode(This, plMode) ((This)->lpVtbl ->get_Mode (This, plMode))
1604 #define Connection15_put_Mode(This, lMode) ((This)->lpVtbl ->put_Mode (This, lMode))
1605 #define Connection15_get_Provider(This, pbstr) ((This)->lpVtbl ->get_Provider (This, pbstr))
1606 #define Connection15_put_Provider(This, Provider) ((This)->lpVtbl ->put_Provider (This, Provider))
1607 #define Connection15_get_State(This, plObjState) ((This)->lpVtbl ->get_State (This, plObjState))
1608 #define Connection15_OpenSchema(This, Schema, Restrictions, SchemaID, pprset) ((This)->lpVtbl ->OpenSchema (This, Schema, Restrictions, SchemaID, pprset))
1609 #endif
1610 #endif
1611 #endif
1612 #ifndef ___Connection_INTERFACE_DEFINED__
1613 #define ___Connection_INTERFACE_DEFINED__
1614 
1615   EXTERN_C const IID IID__Connection;
1616 #if defined (__cplusplus) && !defined (CINTERFACE)
1617 
1618   MIDL_INTERFACE ("00001550-0000-0010-8000-00AA006D2EA4")
1619   _ADOConnection : public Connection15 {
1620     public:
1621     virtual HRESULT STDMETHODCALLTYPE Cancel (void) = 0;
1622   };
1623 #else
1624   typedef struct _ConnectionVtbl {
1625     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADOConnection *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1626     ULONG (STDMETHODCALLTYPE *AddRef) (_ADOConnection *This);
1627     ULONG (STDMETHODCALLTYPE *Release) (_ADOConnection *This);
1628     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADOConnection *This, UINT *pctinfo);
1629     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADOConnection *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1630     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADOConnection *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1631     HRESULT (STDMETHODCALLTYPE *Invoke) (_ADOConnection *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1632     HRESULT (STDMETHODCALLTYPE *get_Properties) (_ADOConnection *This, ADOProperties **ppvObject);
1633     HRESULT (STDMETHODCALLTYPE *get_ConnectionString) (_ADOConnection *This, BSTR *pbstr);
1634     HRESULT (STDMETHODCALLTYPE *put_ConnectionString) (_ADOConnection *This, BSTR bstr);
1635     HRESULT (STDMETHODCALLTYPE *get_CommandTimeout) (_ADOConnection *This, LONG *plTimeout);
1636     HRESULT (STDMETHODCALLTYPE *put_CommandTimeout) (_ADOConnection *This, LONG lTimeout);
1637     HRESULT (STDMETHODCALLTYPE *get_ConnectionTimeout) (_ADOConnection *This, LONG *plTimeout);
1638     HRESULT (STDMETHODCALLTYPE *put_ConnectionTimeout) (_ADOConnection *This, LONG lTimeout);
1639     HRESULT (STDMETHODCALLTYPE *get_Version) (_ADOConnection *This, BSTR *pbstr);
1640     HRESULT (STDMETHODCALLTYPE *Close) (_ADOConnection *This);
1641     HRESULT (STDMETHODCALLTYPE *Execute) (_ADOConnection *This, BSTR CommandText, VARIANT *RecordsAffected, long Options, _ADORecordset **ppiRset);
1642     HRESULT (STDMETHODCALLTYPE *BeginTrans) (_ADOConnection *This, long *TransactionLevel);
1643     HRESULT (STDMETHODCALLTYPE *CommitTrans) (_ADOConnection *This);
1644     HRESULT (STDMETHODCALLTYPE *RollbackTrans) (_ADOConnection *This);
1645     HRESULT (STDMETHODCALLTYPE *Open) (_ADOConnection *This, BSTR ConnectionString, BSTR UserID, BSTR Password, long Options);
1646     HRESULT (STDMETHODCALLTYPE *get_Errors) (_ADOConnection *This, ADOErrors **ppvObject);
1647     HRESULT (STDMETHODCALLTYPE *get_DefaultDatabase) (_ADOConnection *This, BSTR *pbstr);
1648     HRESULT (STDMETHODCALLTYPE *put_DefaultDatabase) (_ADOConnection *This, BSTR bstr);
1649     HRESULT (STDMETHODCALLTYPE *get_IsolationLevel) (_ADOConnection *This, IsolationLevelEnum *Level);
1650     HRESULT (STDMETHODCALLTYPE *put_IsolationLevel) (_ADOConnection *This, IsolationLevelEnum Level);
1651     HRESULT (STDMETHODCALLTYPE *get_Attributes) (_ADOConnection *This, long *plAttr);
1652     HRESULT (STDMETHODCALLTYPE *put_Attributes) (_ADOConnection *This, long lAttr);
1653     HRESULT (STDMETHODCALLTYPE *get_CursorLocation) (_ADOConnection *This, CursorLocationEnum *plCursorLoc);
1654     HRESULT (STDMETHODCALLTYPE *put_CursorLocation) (_ADOConnection *This, CursorLocationEnum lCursorLoc);
1655     HRESULT (STDMETHODCALLTYPE *get_Mode) (_ADOConnection *This, ConnectModeEnum *plMode);
1656     HRESULT (STDMETHODCALLTYPE *put_Mode) (_ADOConnection *This, ConnectModeEnum lMode);
1657     HRESULT (STDMETHODCALLTYPE *get_Provider) (_ADOConnection *This, BSTR *pbstr);
1658     HRESULT (STDMETHODCALLTYPE *put_Provider) (_ADOConnection *This, BSTR Provider);
1659     HRESULT (STDMETHODCALLTYPE *get_State) (_ADOConnection *This, LONG *plObjState);
1660     HRESULT (STDMETHODCALLTYPE *OpenSchema) (_ADOConnection *This, SchemaEnum Schema, VARIANT Restrictions, VARIANT SchemaID, _ADORecordset **pprset);
1661     HRESULT (STDMETHODCALLTYPE *Cancel) (_ADOConnection *This);
1662     END_INTERFACE
1663   } _ConnectionVtbl;
1664   interface _Connection {
1665     CONST_VTBL struct _ConnectionVtbl *lpVtbl;
1666   };
1667 #ifdef COBJMACROS
1668 #define _Connection_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1669 #define _Connection_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1670 #define _Connection_Release(This) ((This)->lpVtbl ->Release (This))
1671 #define _Connection_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1672 #define _Connection_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1673 #define _Connection_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1674 #define _Connection_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1675 #define _Connection_get_Properties(This, ppvObject) ((This)->lpVtbl ->get_Properties (This, ppvObject))
1676 #define _Connection_get_ConnectionString(This, pbstr) ((This)->lpVtbl ->get_ConnectionString (This, pbstr))
1677 #define _Connection_put_ConnectionString(This, bstr) ((This)->lpVtbl ->put_ConnectionString (This, bstr))
1678 #define _Connection_get_CommandTimeout(This, plTimeout) ((This)->lpVtbl ->get_CommandTimeout (This, plTimeout))
1679 #define _Connection_put_CommandTimeout(This, lTimeout) ((This)->lpVtbl ->put_CommandTimeout (This, lTimeout))
1680 #define _Connection_get_ConnectionTimeout(This, plTimeout) ((This)->lpVtbl ->get_ConnectionTimeout (This, plTimeout))
1681 #define _Connection_put_ConnectionTimeout(This, lTimeout) ((This)->lpVtbl ->put_ConnectionTimeout (This, lTimeout))
1682 #define _Connection_get_Version(This, pbstr) ((This)->lpVtbl ->get_Version (This, pbstr))
1683 #define _Connection_Close(This) ((This)->lpVtbl ->Close (This))
1684 #define _Connection_Execute(This, CommandText, RecordsAffected, Options, ppiRset) ((This)->lpVtbl ->Execute (This, CommandText, RecordsAffected, Options, ppiRset))
1685 #define _Connection_BeginTrans(This, TransactionLevel) ((This)->lpVtbl ->BeginTrans (This, TransactionLevel))
1686 #define _Connection_CommitTrans(This) ((This)->lpVtbl ->CommitTrans (This))
1687 #define _Connection_RollbackTrans(This) ((This)->lpVtbl ->RollbackTrans (This))
1688 #define _Connection_Open(This, ConnectionString, UserID, Password, Options) ((This)->lpVtbl ->Open (This, ConnectionString, UserID, Password, Options))
1689 #define _Connection_get_Errors(This, ppvObject) ((This)->lpVtbl ->get_Errors (This, ppvObject))
1690 #define _Connection_get_DefaultDatabase(This, pbstr) ((This)->lpVtbl ->get_DefaultDatabase (This, pbstr))
1691 #define _Connection_put_DefaultDatabase(This, bstr) ((This)->lpVtbl ->put_DefaultDatabase (This, bstr))
1692 #define _Connection_get_IsolationLevel(This, Level) ((This)->lpVtbl ->get_IsolationLevel (This, Level))
1693 #define _Connection_put_IsolationLevel(This, Level) ((This)->lpVtbl ->put_IsolationLevel (This, Level))
1694 #define _Connection_get_Attributes(This, plAttr) ((This)->lpVtbl ->get_Attributes (This, plAttr))
1695 #define _Connection_put_Attributes(This, lAttr) ((This)->lpVtbl ->put_Attributes (This, lAttr))
1696 #define _Connection_get_CursorLocation(This, plCursorLoc) ((This)->lpVtbl ->get_CursorLocation (This, plCursorLoc))
1697 #define _Connection_put_CursorLocation(This, lCursorLoc) ((This)->lpVtbl ->put_CursorLocation (This, lCursorLoc))
1698 #define _Connection_get_Mode(This, plMode) ((This)->lpVtbl ->get_Mode (This, plMode))
1699 #define _Connection_put_Mode(This, lMode) ((This)->lpVtbl ->put_Mode (This, lMode))
1700 #define _Connection_get_Provider(This, pbstr) ((This)->lpVtbl ->get_Provider (This, pbstr))
1701 #define _Connection_put_Provider(This, Provider) ((This)->lpVtbl ->put_Provider (This, Provider))
1702 #define _Connection_get_State(This, plObjState) ((This)->lpVtbl ->get_State (This, plObjState))
1703 #define _Connection_OpenSchema(This, Schema, Restrictions, SchemaID, pprset) ((This)->lpVtbl ->OpenSchema (This, Schema, Restrictions, SchemaID, pprset))
1704 #define _Connection_Cancel(This) ((This)->lpVtbl ->Cancel (This))
1705 #endif
1706 #endif
1707 #endif
1708 #ifndef __ADOConnectionConstruction15_INTERFACE_DEFINED__
1709 #define __ADOConnectionConstruction15_INTERFACE_DEFINED__
1710 
1711   EXTERN_C const IID IID_ADOConnectionConstruction15;
1712 #if defined (__cplusplus) && !defined (CINTERFACE)
1713 
1714   MIDL_INTERFACE ("00000516-0000-0010-8000-00AA006D2EA4")
1715   ADOConnectionConstruction15 : public IUnknown {
1716     public:
1717     virtual HRESULT STDMETHODCALLTYPE get_DSO (IUnknown **ppDSO) = 0;
1718     virtual HRESULT STDMETHODCALLTYPE get_Session (IUnknown **ppSession) = 0;
1719     virtual HRESULT STDMETHODCALLTYPE WrapDSOandSession (IUnknown *pDSO, IUnknown *pSession) = 0;
1720   };
1721 #else
1722   typedef struct ADOConnectionConstruction15Vtbl {
1723     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOConnectionConstruction15 *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1724     ULONG (STDMETHODCALLTYPE *AddRef) (ADOConnectionConstruction15 *This);
1725     ULONG (STDMETHODCALLTYPE *Release) (ADOConnectionConstruction15 *This);
1726     HRESULT (STDMETHODCALLTYPE *get_DSO) (ADOConnectionConstruction15 *This, IUnknown **ppDSO);
1727     HRESULT (STDMETHODCALLTYPE *get_Session) (ADOConnectionConstruction15 *This, IUnknown **ppSession);
1728     HRESULT (STDMETHODCALLTYPE *WrapDSOandSession) (ADOConnectionConstruction15 *This, IUnknown *pDSO, IUnknown *pSession);
1729     END_INTERFACE
1730   } ADOConnectionConstruction15Vtbl;
1731   interface ADOConnectionConstruction15 {
1732     CONST_VTBL struct ADOConnectionConstruction15Vtbl *lpVtbl;
1733   };
1734 #ifdef COBJMACROS
1735 #define ADOConnectionConstruction15_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1736 #define ADOConnectionConstruction15_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1737 #define ADOConnectionConstruction15_Release(This) ((This)->lpVtbl ->Release (This))
1738 #define ADOConnectionConstruction15_get_DSO(This, ppDSO) ((This)->lpVtbl ->get_DSO (This, ppDSO))
1739 #define ADOConnectionConstruction15_get_Session(This, ppSession) ((This)->lpVtbl ->get_Session (This, ppSession))
1740 #define ADOConnectionConstruction15_WrapDSOandSession(This, pDSO, pSession) ((This)->lpVtbl ->WrapDSOandSession (This, pDSO, pSession))
1741 #endif
1742 #endif
1743 #endif
1744 #ifndef __ADOConnectionConstruction_INTERFACE_DEFINED__
1745 #define __ADOConnectionConstruction_INTERFACE_DEFINED__
1746 
1747   EXTERN_C const IID IID_ADOConnectionConstruction;
1748 #if defined (__cplusplus) && !defined (CINTERFACE)
1749 
1750   MIDL_INTERFACE ("00000551-0000-0010-8000-00AA006D2EA4")
1751   ADOConnectionConstruction : public ADOConnectionConstruction15 {
1752     public:
1753   };
1754 #else
1755   typedef struct ADOConnectionConstructionVtbl {
1756     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOConnectionConstruction *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1757     ULONG (STDMETHODCALLTYPE *AddRef) (ADOConnectionConstruction *This);
1758     ULONG (STDMETHODCALLTYPE *Release) (ADOConnectionConstruction *This);
1759     HRESULT (STDMETHODCALLTYPE *get_DSO) (ADOConnectionConstruction *This, IUnknown **ppDSO);
1760     HRESULT (STDMETHODCALLTYPE *get_Session) (ADOConnectionConstruction *This, IUnknown **ppSession);
1761     HRESULT (STDMETHODCALLTYPE *WrapDSOandSession) (ADOConnectionConstruction *This, IUnknown *pDSO, IUnknown *pSession);
1762     END_INTERFACE
1763   } ADOConnectionConstructionVtbl;
1764   interface ADOConnectionConstruction {
1765     CONST_VTBL struct ADOConnectionConstructionVtbl *lpVtbl;
1766   };
1767 #ifdef COBJMACROS
1768 #define ADOConnectionConstruction_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1769 #define ADOConnectionConstruction_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1770 #define ADOConnectionConstruction_Release(This) ((This)->lpVtbl ->Release (This))
1771 #define ADOConnectionConstruction_get_DSO(This, ppDSO) ((This)->lpVtbl ->get_DSO (This, ppDSO))
1772 #define ADOConnectionConstruction_get_Session(This, ppSession) ((This)->lpVtbl ->get_Session (This, ppSession))
1773 #define ADOConnectionConstruction_WrapDSOandSession(This, pDSO, pSession) ((This)->lpVtbl ->WrapDSOandSession (This, pDSO, pSession))
1774 #endif
1775 #endif
1776 #endif
1777   EXTERN_C const CLSID CLSID_Connection;
1778 #ifdef __cplusplus
1779   Connection;
1780 #endif
1781 #ifndef ___Record_INTERFACE_DEFINED__
1782 #define ___Record_INTERFACE_DEFINED__
1783 
1784   EXTERN_C const IID IID__Record;
1785 #if defined (__cplusplus) && !defined (CINTERFACE)
1786 
1787   MIDL_INTERFACE ("00001562-0000-0010-8000-00AA006D2EA4")
1788   _ADORecord : public _ADO {
1789     public:
1790     virtual HRESULT STDMETHODCALLTYPE get_ActiveConnection (VARIANT *pvar) = 0;
1791     virtual HRESULT STDMETHODCALLTYPE put_ActiveConnection (BSTR bstrConn) = 0;
1792     virtual HRESULT STDMETHODCALLTYPE putref_ActiveConnection (_ADOConnection *Con) = 0;
1793     virtual HRESULT STDMETHODCALLTYPE get_State (ObjectStateEnum *pState) = 0;
1794     virtual HRESULT STDMETHODCALLTYPE get_Source (VARIANT *pvar) = 0;
1795     virtual HRESULT STDMETHODCALLTYPE put_Source (BSTR Source) = 0;
1796     virtual HRESULT STDMETHODCALLTYPE putref_Source (IDispatch *Source) = 0;
1797     virtual HRESULT STDMETHODCALLTYPE get_Mode (ConnectModeEnum *pMode) = 0;
1798     virtual HRESULT STDMETHODCALLTYPE put_Mode (ConnectModeEnum Mode) = 0;
1799     virtual HRESULT STDMETHODCALLTYPE get_ParentURL (BSTR *pbstrParentURL) = 0;
1800     virtual HRESULT STDMETHODCALLTYPE MoveRecord (BSTR Source, BSTR Destination, BSTR UserName, BSTR Password, MoveRecordOptionsEnum Options, VARIANT_BOOL Async, BSTR *pbstrNewURL) = 0;
1801     virtual HRESULT STDMETHODCALLTYPE CopyRecord (BSTR Source, BSTR Destination, BSTR UserName, BSTR Password, CopyRecordOptionsEnum Options, VARIANT_BOOL Async, BSTR *pbstrNewURL) = 0;
1802     virtual HRESULT STDMETHODCALLTYPE DeleteRecord (BSTR Source = NULL, VARIANT_BOOL Async = 0) = 0;
1803     virtual HRESULT STDMETHODCALLTYPE Open (VARIANT Source, VARIANT ActiveConnection, ConnectModeEnum Mode = adModeUnknown, RecordCreateOptionsEnum CreateOptions = adFailIfNotExists, RecordOpenOptionsEnum Options = adOpenRecordUnspecified, BSTR UserName = NULL, BSTR Password = NULL) = 0;
1804     virtual HRESULT STDMETHODCALLTYPE Close (void) = 0;
1805     virtual HRESULT STDMETHODCALLTYPE get_Fields (ADOFields **ppFlds) = 0;
1806     virtual HRESULT STDMETHODCALLTYPE get_RecordType (RecordTypeEnum *pType) = 0;
1807     virtual HRESULT STDMETHODCALLTYPE GetChildren (_ADORecordset **ppRSet) = 0;
1808     virtual HRESULT STDMETHODCALLTYPE Cancel (void) = 0;
1809   };
1810 #else
1811   typedef struct _RecordVtbl {
1812     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADORecord *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1813     ULONG (STDMETHODCALLTYPE *AddRef) (_ADORecord *This);
1814     ULONG (STDMETHODCALLTYPE *Release) (_ADORecord *This);
1815     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADORecord *This, UINT *pctinfo);
1816     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADORecord *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1817     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADORecord *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1818     HRESULT (STDMETHODCALLTYPE *Invoke) (_ADORecord *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1819     HRESULT (STDMETHODCALLTYPE *get_Properties) (_ADORecord *This, ADOProperties **ppvObject);
1820     HRESULT (STDMETHODCALLTYPE *get_ActiveConnection) (_ADORecord *This, VARIANT *pvar);
1821     HRESULT (STDMETHODCALLTYPE *put_ActiveConnection) (_ADORecord *This, BSTR bstrConn);
1822     HRESULT (STDMETHODCALLTYPE *putref_ActiveADOConnection) (_ADORecord *This, _ADOConnection *Con);
1823     HRESULT (STDMETHODCALLTYPE *get_State) (_ADORecord *This, ObjectStateEnum *pState);
1824     HRESULT (STDMETHODCALLTYPE *get_Source) (_ADORecord *This, VARIANT *pvar);
1825     HRESULT (STDMETHODCALLTYPE *put_Source) (_ADORecord *This, BSTR Source);
1826     HRESULT (STDMETHODCALLTYPE *putref_Source) (_ADORecord *This, IDispatch *Source);
1827     HRESULT (STDMETHODCALLTYPE *get_Mode) (_ADORecord *This, ConnectModeEnum *pMode);
1828     HRESULT (STDMETHODCALLTYPE *put_Mode) (_ADORecord *This, ConnectModeEnum Mode);
1829     HRESULT (STDMETHODCALLTYPE *get_ParentURL) (_ADORecord *This, BSTR *pbstrParentURL);
1830     HRESULT (STDMETHODCALLTYPE *MoveADORecord) (_ADORecord *This, BSTR Source, BSTR Destination, BSTR UserName, BSTR Password, MoveRecordOptionsEnum Options, VARIANT_BOOL Async, BSTR *pbstrNewURL);
1831     HRESULT (STDMETHODCALLTYPE *CopyADORecord) (_ADORecord *This, BSTR Source, BSTR Destination, BSTR UserName, BSTR Password, CopyRecordOptionsEnum Options, VARIANT_BOOL Async, BSTR *pbstrNewURL);
1832     HRESULT (STDMETHODCALLTYPE *DeleteADORecord) (_ADORecord *This, BSTR Source, VARIANT_BOOL Async);
1833     HRESULT (STDMETHODCALLTYPE *Open) (_ADORecord *This, VARIANT Source, VARIANT ActiveConnection, ConnectModeEnum Mode, RecordCreateOptionsEnum CreateOptions, RecordOpenOptionsEnum Options, BSTR UserName, BSTR Password);
1834     HRESULT (STDMETHODCALLTYPE *Close) (_ADORecord *This);
1835     HRESULT (STDMETHODCALLTYPE *get_Fields) (_ADORecord *This, ADOFields **ppFlds);
1836     HRESULT (STDMETHODCALLTYPE *get_RecordType) (_ADORecord *This, RecordTypeEnum *pType);
1837     HRESULT (STDMETHODCALLTYPE *GetChildren) (_ADORecord *This, _ADORecordset **ppRSet);
1838     HRESULT (STDMETHODCALLTYPE *Cancel) (_ADORecord *This);
1839     END_INTERFACE
1840   } _RecordVtbl;
1841   interface _Record {
1842     CONST_VTBL struct _RecordVtbl *lpVtbl;
1843   };
1844 #ifdef COBJMACROS
1845 #define _Record_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1846 #define _Record_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1847 #define _Record_Release(This) ((This)->lpVtbl ->Release (This))
1848 #define _Record_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1849 #define _Record_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1850 #define _Record_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1851 #define _Record_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1852 #define _Record_get_Properties(This, ppvObject) ((This)->lpVtbl ->get_Properties (This, ppvObject))
1853 #define _Record_get_ActiveConnection(This, pvar) ((This)->lpVtbl ->get_ActiveConnection (This, pvar))
1854 #define _Record_put_ActiveConnection(This, bstrConn) ((This)->lpVtbl ->put_ActiveConnection (This, bstrConn))
1855 #define _Record_putref_ActiveConnection(This, Con) ((This)->lpVtbl ->putref_ActiveConnection (This, Con))
1856 #define _Record_get_State(This, pState) ((This)->lpVtbl ->get_State (This, pState))
1857 #define _Record_get_Source(This, pvar) ((This)->lpVtbl ->get_Source (This, pvar))
1858 #define _Record_put_Source(This, Source) ((This)->lpVtbl ->put_Source (This, Source))
1859 #define _Record_putref_Source(This, Source) ((This)->lpVtbl ->putref_Source (This, Source))
1860 #define _Record_get_Mode(This, pMode) ((This)->lpVtbl ->get_Mode (This, pMode))
1861 #define _Record_put_Mode(This, Mode) ((This)->lpVtbl ->put_Mode (This, Mode))
1862 #define _Record_get_ParentURL(This, pbstrParentURL) ((This)->lpVtbl ->get_ParentURL (This, pbstrParentURL))
1863 #define _Record_MoveRecord(This, Source, Destination, UserName, Password, Options, Async, pbstrNewURL) ((This)->lpVtbl ->MoveRecord (This, Source, Destination, UserName, Password, Options, Async, pbstrNewURL))
1864 #define _Record_CopyRecord(This, Source, Destination, UserName, Password, Options, Async, pbstrNewURL) ((This)->lpVtbl ->CopyRecord (This, Source, Destination, UserName, Password, Options, Async, pbstrNewURL))
1865 #define _Record_DeleteRecord(This, Source, Async) ((This)->lpVtbl ->DeleteRecord (This, Source, Async))
1866 #define _Record_Open(This, Source, ActiveConnection, Mode, CreateOptions, Options, UserName, Password) ((This)->lpVtbl ->Open (This, Source, ActiveConnection, Mode, CreateOptions, Options, UserName, Password))
1867 #define _Record_Close(This) ((This)->lpVtbl ->Close (This))
1868 #define _Record_get_Fields(This, ppFlds) ((This)->lpVtbl ->get_Fields (This, ppFlds))
1869 #define _Record_get_RecordType(This, pType) ((This)->lpVtbl ->get_RecordType (This, pType))
1870 #define _Record_GetChildren(This, ppRSet) ((This)->lpVtbl ->GetChildren (This, ppRSet))
1871 #define _Record_Cancel(This) ((This)->lpVtbl ->Cancel (This))
1872 #endif
1873 #endif
1874 #endif
1875   EXTERN_C const CLSID CLSID_Record;
1876 #ifdef __cplusplus
1877   Record;
1878 #endif
1879 #ifndef ___Stream_INTERFACE_DEFINED__
1880 #define ___Stream_INTERFACE_DEFINED__
1881 
1882   EXTERN_C const IID IID__Stream;
1883 #if defined (__cplusplus) && !defined (CINTERFACE)
1884 
1885   MIDL_INTERFACE ("00001565-0000-0010-8000-00AA006D2EA4")
1886   _ADOStream : public IDispatch {
1887     public:
1888     virtual HRESULT STDMETHODCALLTYPE get_Size (long *pSize) = 0;
1889     virtual HRESULT STDMETHODCALLTYPE get_EOS (VARIANT_BOOL *pEOS) = 0;
1890     virtual HRESULT STDMETHODCALLTYPE get_Position (long *pPos) = 0;
1891     virtual HRESULT STDMETHODCALLTYPE put_Position (long Position) = 0;
1892     virtual HRESULT STDMETHODCALLTYPE get_Type (StreamTypeEnum *pType) = 0;
1893     virtual HRESULT STDMETHODCALLTYPE put_Type (StreamTypeEnum Type) = 0;
1894     virtual HRESULT STDMETHODCALLTYPE get_LineSeparator (LineSeparatorEnum *pLS) = 0;
1895     virtual HRESULT STDMETHODCALLTYPE put_LineSeparator (LineSeparatorEnum LineSeparator) = 0;
1896     virtual HRESULT STDMETHODCALLTYPE get_State (ObjectStateEnum *pState) = 0;
1897     virtual HRESULT STDMETHODCALLTYPE get_Mode (ConnectModeEnum *pMode) = 0;
1898     virtual HRESULT STDMETHODCALLTYPE put_Mode (ConnectModeEnum Mode) = 0;
1899     virtual HRESULT STDMETHODCALLTYPE get_Charset (BSTR *pbstrCharset) = 0;
1900     virtual HRESULT STDMETHODCALLTYPE put_Charset (BSTR Charset) = 0;
1901     virtual HRESULT STDMETHODCALLTYPE Read (long NumBytes, VARIANT *pVal) = 0;
1902     virtual HRESULT STDMETHODCALLTYPE Open (VARIANT Source, ConnectModeEnum Mode = adModeUnknown, StreamOpenOptionsEnum Options = adOpenStreamUnspecified, BSTR UserName = NULL, BSTR Password = NULL) = 0;
1903     virtual HRESULT STDMETHODCALLTYPE Close (void) = 0;
1904     virtual HRESULT STDMETHODCALLTYPE SkipLine (void) = 0;
1905     virtual HRESULT STDMETHODCALLTYPE Write (VARIANT Buffer) = 0;
1906     virtual HRESULT STDMETHODCALLTYPE SetEOS (void) = 0;
1907     virtual HRESULT STDMETHODCALLTYPE CopyTo (_ADOStream *DestStream, long CharNumber = -1) = 0;
1908     virtual HRESULT STDMETHODCALLTYPE Flush (void) = 0;
1909     virtual HRESULT STDMETHODCALLTYPE SaveToFile (BSTR FileName, SaveOptionsEnum Options = adSaveCreateNotExist) = 0;
1910     virtual HRESULT STDMETHODCALLTYPE LoadFromFile (BSTR FileName) = 0;
1911     virtual HRESULT STDMETHODCALLTYPE ReadText (long NumChars, BSTR *pbstr) = 0;
1912     virtual HRESULT STDMETHODCALLTYPE WriteText (BSTR Data, StreamWriteEnum Options = adWriteChar) = 0;
1913     virtual HRESULT STDMETHODCALLTYPE Cancel (void) = 0;
1914   };
1915 #else
1916   typedef struct _StreamVtbl {
1917     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADOStream *This, REFIID riid, _COM_Outptr_ void **ppvObject);
1918     ULONG (STDMETHODCALLTYPE *AddRef) (_ADOStream *This);
1919     ULONG (STDMETHODCALLTYPE *Release) (_ADOStream *This);
1920     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADOStream *This, UINT *pctinfo);
1921     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADOStream *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
1922     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADOStream *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
1923     HRESULT (STDMETHODCALLTYPE *Invoke) (_ADOStream *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
1924     HRESULT (STDMETHODCALLTYPE *get_Size) (_ADOStream *This, long *pSize);
1925     HRESULT (STDMETHODCALLTYPE *get_EOS) (_ADOStream *This, VARIANT_BOOL *pEOS);
1926     HRESULT (STDMETHODCALLTYPE *get_Position) (_ADOStream *This, long *pPos);
1927     HRESULT (STDMETHODCALLTYPE *put_Position) (_ADOStream *This, long Position);
1928     HRESULT (STDMETHODCALLTYPE *get_Type) (_ADOStream *This, StreamTypeEnum *pType);
1929     HRESULT (STDMETHODCALLTYPE *put_Type) (_ADOStream *This, StreamTypeEnum Type);
1930     HRESULT (STDMETHODCALLTYPE *get_LineSeparator) (_ADOStream *This, LineSeparatorEnum *pLS);
1931     HRESULT (STDMETHODCALLTYPE *put_LineSeparator) (_ADOStream *This, LineSeparatorEnum LineSeparator);
1932     HRESULT (STDMETHODCALLTYPE *get_State) (_ADOStream *This, ObjectStateEnum *pState);
1933     HRESULT (STDMETHODCALLTYPE *get_Mode) (_ADOStream *This, ConnectModeEnum *pMode);
1934     HRESULT (STDMETHODCALLTYPE *put_Mode) (_ADOStream *This, ConnectModeEnum Mode);
1935     HRESULT (STDMETHODCALLTYPE *get_Charset) (_ADOStream *This, BSTR *pbstrCharset);
1936     HRESULT (STDMETHODCALLTYPE *put_Charset) (_ADOStream *This, BSTR Charset);
1937     HRESULT (STDMETHODCALLTYPE *Read) (_ADOStream *This, long NumBytes, VARIANT *pVal);
1938     HRESULT (STDMETHODCALLTYPE *Open) (_ADOStream *This, VARIANT Source, ConnectModeEnum Mode, StreamOpenOptionsEnum Options, BSTR UserName, BSTR Password);
1939     HRESULT (STDMETHODCALLTYPE *Close) (_ADOStream *This);
1940     HRESULT (STDMETHODCALLTYPE *SkipLine) (_ADOStream *This);
1941     HRESULT (STDMETHODCALLTYPE *Write) (_ADOStream *This, VARIANT Buffer);
1942     HRESULT (STDMETHODCALLTYPE *SetEOS) (_ADOStream *This);
1943     HRESULT (STDMETHODCALLTYPE *CopyTo) (_ADOStream *This, _ADOStream *DestStream, long CharNumber);
1944     HRESULT (STDMETHODCALLTYPE *Flush) (_ADOStream *This);
1945     HRESULT (STDMETHODCALLTYPE *SaveToFile) (_ADOStream *This, BSTR FileName, SaveOptionsEnum Options);
1946     HRESULT (STDMETHODCALLTYPE *LoadFromFile) (_ADOStream *This, BSTR FileName);
1947     HRESULT (STDMETHODCALLTYPE *ReadText) (_ADOStream *This, long NumChars, BSTR *pbstr);
1948     HRESULT (STDMETHODCALLTYPE *WriteText) (_ADOStream *This, BSTR Data, StreamWriteEnum Options);
1949     HRESULT (STDMETHODCALLTYPE *Cancel) (_ADOStream *This);
1950     END_INTERFACE
1951   } _StreamVtbl;
1952   interface _Stream {
1953     CONST_VTBL struct _StreamVtbl *lpVtbl;
1954   };
1955 #ifdef COBJMACROS
1956 #define _Stream_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
1957 #define _Stream_AddRef(This) ((This)->lpVtbl ->AddRef (This))
1958 #define _Stream_Release(This) ((This)->lpVtbl ->Release (This))
1959 #define _Stream_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
1960 #define _Stream_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
1961 #define _Stream_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
1962 #define _Stream_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
1963 #define _Stream_get_Size(This, pSize) ((This)->lpVtbl ->get_Size (This, pSize))
1964 #define _Stream_get_EOS(This, pEOS) ((This)->lpVtbl ->get_EOS (This, pEOS))
1965 #define _Stream_get_Position(This, pPos) ((This)->lpVtbl ->get_Position (This, pPos))
1966 #define _Stream_put_Position(This, Position) ((This)->lpVtbl ->put_Position (This, Position))
1967 #define _Stream_get_Type(This, pType) ((This)->lpVtbl ->get_Type (This, pType))
1968 #define _Stream_put_Type(This, Type) ((This)->lpVtbl ->put_Type (This, Type))
1969 #define _Stream_get_LineSeparator(This, pLS) ((This)->lpVtbl ->get_LineSeparator (This, pLS))
1970 #define _Stream_put_LineSeparator(This, LineSeparator) ((This)->lpVtbl ->put_LineSeparator (This, LineSeparator))
1971 #define _Stream_get_State(This, pState) ((This)->lpVtbl ->get_State (This, pState))
1972 #define _Stream_get_Mode(This, pMode) ((This)->lpVtbl ->get_Mode (This, pMode))
1973 #define _Stream_put_Mode(This, Mode) ((This)->lpVtbl ->put_Mode (This, Mode))
1974 #define _Stream_get_Charset(This, pbstrCharset) ((This)->lpVtbl ->get_Charset (This, pbstrCharset))
1975 #define _Stream_put_Charset(This, Charset) ((This)->lpVtbl ->put_Charset (This, Charset))
1976 #define _Stream_Read(This, NumBytes, pVal) ((This)->lpVtbl ->Read (This, NumBytes, pVal))
1977 #define _Stream_Open(This, Source, Mode, Options, UserName, Password) ((This)->lpVtbl ->Open (This, Source, Mode, Options, UserName, Password))
1978 #define _Stream_Close(This) ((This)->lpVtbl ->Close (This))
1979 #define _Stream_SkipLine(This) ((This)->lpVtbl ->SkipLine (This))
1980 #define _Stream_Write(This, Buffer) ((This)->lpVtbl ->Write (This, Buffer))
1981 #define _Stream_SetEOS(This) ((This)->lpVtbl ->SetEOS (This))
1982 #define _Stream_CopyTo(This, DestStream, CharNumber) ((This)->lpVtbl ->CopyTo (This, DestStream, CharNumber))
1983 #define _Stream_Flush(This) ((This)->lpVtbl ->Flush (This))
1984 #define _Stream_SaveToFile(This, FileName, Options) ((This)->lpVtbl ->SaveToFile (This, FileName, Options))
1985 #define _Stream_LoadFromFile(This, FileName) ((This)->lpVtbl ->LoadFromFile (This, FileName))
1986 #define _Stream_ReadText(This, NumChars, pbstr) ((This)->lpVtbl ->ReadText (This, NumChars, pbstr))
1987 #define _Stream_WriteText(This, Data, Options) ((This)->lpVtbl ->WriteText (This, Data, Options))
1988 #define _Stream_Cancel(This) ((This)->lpVtbl ->Cancel (This))
1989 #endif
1990 #endif
1991 #endif
1992   EXTERN_C const CLSID CLSID_Stream;
1993 #ifdef __cplusplus
1994   Stream;
1995 #endif
1996 #ifndef __ADORecordConstruction_INTERFACE_DEFINED__
1997 #define __ADORecordConstruction_INTERFACE_DEFINED__
1998 
1999   EXTERN_C const IID IID_ADORecordConstruction;
2000 #if defined (__cplusplus) && !defined (CINTERFACE)
2001 
2002   MIDL_INTERFACE ("00000567-0000-0010-8000-00AA006D2EA4")
2003   ADORecordConstruction : public IDispatch {
2004     public:
2005     virtual HRESULT STDMETHODCALLTYPE get_Row (IUnknown **ppRow) = 0;
2006     virtual HRESULT STDMETHODCALLTYPE put_Row (IUnknown *pRow) = 0;
2007     virtual HRESULT STDMETHODCALLTYPE put_ParentRow (IUnknown *pRow) = 0;
2008   };
2009 #else
2010   typedef struct ADORecordConstructionVtbl {
2011     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADORecordConstruction *This, REFIID riid, _COM_Outptr_ void **ppvObject);
2012     ULONG (STDMETHODCALLTYPE *AddRef) (ADORecordConstruction *This);
2013     ULONG (STDMETHODCALLTYPE *Release) (ADORecordConstruction *This);
2014     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADORecordConstruction *This, UINT *pctinfo);
2015     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADORecordConstruction *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
2016     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADORecordConstruction *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
2017     HRESULT (STDMETHODCALLTYPE *Invoke) (ADORecordConstruction *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
2018     HRESULT (STDMETHODCALLTYPE *get_Row) (ADORecordConstruction *This, IUnknown **ppRow);
2019     HRESULT (STDMETHODCALLTYPE *put_Row) (ADORecordConstruction *This, IUnknown *pRow);
2020     HRESULT (STDMETHODCALLTYPE *put_ParentRow) (ADORecordConstruction *This, IUnknown *pRow);
2021     END_INTERFACE
2022   } ADORecordConstructionVtbl;
2023   interface ADORecordConstruction {
2024     CONST_VTBL struct ADORecordConstructionVtbl *lpVtbl;
2025   };
2026 #ifdef COBJMACROS
2027 #define ADORecordConstruction_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
2028 #define ADORecordConstruction_AddRef(This) ((This)->lpVtbl ->AddRef (This))
2029 #define ADORecordConstruction_Release(This) ((This)->lpVtbl ->Release (This))
2030 #define ADORecordConstruction_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
2031 #define ADORecordConstruction_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
2032 #define ADORecordConstruction_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
2033 #define ADORecordConstruction_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
2034 #define ADORecordConstruction_get_Row(This, ppRow) ((This)->lpVtbl ->get_Row (This, ppRow))
2035 #define ADORecordConstruction_put_Row(This, pRow) ((This)->lpVtbl ->put_Row (This, pRow))
2036 #define ADORecordConstruction_put_ParentRow(This, pRow) ((This)->lpVtbl ->put_ParentRow (This, pRow))
2037 #endif
2038 #endif
2039 #endif
2040 #ifndef __ADOStreamConstruction_INTERFACE_DEFINED__
2041 #define __ADOStreamConstruction_INTERFACE_DEFINED__
2042 
2043   EXTERN_C const IID IID_ADOStreamConstruction;
2044 #if defined (__cplusplus) && !defined (CINTERFACE)
2045 
2046   MIDL_INTERFACE ("00000568-0000-0010-8000-00AA006D2EA4")
2047   ADOStreamConstruction : public IDispatch {
2048     public:
2049     virtual HRESULT STDMETHODCALLTYPE get_Stream (IUnknown **ppStm) = 0;
2050     virtual HRESULT STDMETHODCALLTYPE put_Stream (IUnknown *pStm) = 0;
2051   };
2052 #else
2053   typedef struct ADOStreamConstructionVtbl {
2054     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOStreamConstruction *This, REFIID riid, _COM_Outptr_ void **ppvObject);
2055     ULONG (STDMETHODCALLTYPE *AddRef) (ADOStreamConstruction *This);
2056     ULONG (STDMETHODCALLTYPE *Release) (ADOStreamConstruction *This);
2057     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOStreamConstruction *This, UINT *pctinfo);
2058     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOStreamConstruction *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
2059     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOStreamConstruction *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
2060     HRESULT (STDMETHODCALLTYPE *Invoke) (ADOStreamConstruction *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
2061     HRESULT (STDMETHODCALLTYPE *get_Stream) (ADOStreamConstruction *This, IUnknown **ppStm);
2062     HRESULT (STDMETHODCALLTYPE *put_Stream) (ADOStreamConstruction *This, IUnknown *pStm);
2063     END_INTERFACE
2064   } ADOStreamConstructionVtbl;
2065   interface ADOStreamConstruction {
2066     CONST_VTBL struct ADOStreamConstructionVtbl *lpVtbl;
2067   };
2068 #ifdef COBJMACROS
2069 #define ADOStreamConstruction_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
2070 #define ADOStreamConstruction_AddRef(This) ((This)->lpVtbl ->AddRef (This))
2071 #define ADOStreamConstruction_Release(This) ((This)->lpVtbl ->Release (This))
2072 #define ADOStreamConstruction_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
2073 #define ADOStreamConstruction_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
2074 #define ADOStreamConstruction_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
2075 #define ADOStreamConstruction_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
2076 #define ADOStreamConstruction_get_Stream(This, ppStm) ((This)->lpVtbl ->get_Stream (This, ppStm))
2077 #define ADOStreamConstruction_put_Stream(This, pStm) ((This)->lpVtbl ->put_Stream (This, pStm))
2078 #endif
2079 #endif
2080 #endif
2081 #ifndef __ADOCommandConstruction_INTERFACE_DEFINED__
2082 #define __ADOCommandConstruction_INTERFACE_DEFINED__
2083 
2084   EXTERN_C const IID IID_ADOCommandConstruction;
2085 #if defined (__cplusplus) && !defined (CINTERFACE)
2086 
2087   MIDL_INTERFACE ("00000517-0000-0010-8000-00AA006D2EA4")
2088   ADOCommandConstruction : public IUnknown {
2089     public:
2090     virtual HRESULT STDMETHODCALLTYPE get_OLEDBCommand (IUnknown **ppOLEDBCommand) = 0;
2091     virtual HRESULT STDMETHODCALLTYPE put_OLEDBCommand (IUnknown *pOLEDBCommand) = 0;
2092   };
2093 #else
2094   typedef struct ADOCommandConstructionVtbl {
2095     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOCommandConstruction *This, REFIID riid, _COM_Outptr_ void **ppvObject);
2096     ULONG (STDMETHODCALLTYPE *AddRef) (ADOCommandConstruction *This);
2097     ULONG (STDMETHODCALLTYPE *Release) (ADOCommandConstruction *This);
2098     HRESULT (STDMETHODCALLTYPE *get_OLEDBCommand) (ADOCommandConstruction *This, IUnknown **ppOLEDBCommand);
2099     HRESULT (STDMETHODCALLTYPE *put_OLEDBCommand) (ADOCommandConstruction *This, IUnknown *pOLEDBCommand);
2100     END_INTERFACE
2101   } ADOCommandConstructionVtbl;
2102   interface ADOCommandConstruction {
2103     CONST_VTBL struct ADOCommandConstructionVtbl *lpVtbl;
2104   };
2105 #ifdef COBJMACROS
2106 #define ADOCommandConstruction_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
2107 #define ADOCommandConstruction_AddRef(This) ((This)->lpVtbl ->AddRef (This))
2108 #define ADOCommandConstruction_Release(This) ((This)->lpVtbl ->Release (This))
2109 #define ADOCommandConstruction_get_OLEDBCommand(This, ppOLEDBCommand) ((This)->lpVtbl ->get_OLEDBCommand (This, ppOLEDBCommand))
2110 #define ADOCommandConstruction_put_OLEDBCommand(This, pOLEDBCommand) ((This)->lpVtbl ->put_OLEDBCommand (This, pOLEDBCommand))
2111 #endif
2112 #endif
2113 #endif
2114   EXTERN_C const CLSID CLSID_Command;
2115 #ifdef __cplusplus
2116   Command;
2117 #endif
2118   EXTERN_C const CLSID CLSID_Recordset;
2119 #ifdef __cplusplus
2120   Recordset;
2121 #endif
2122 #ifndef __Recordset15_INTERFACE_DEFINED__
2123 #define __Recordset15_INTERFACE_DEFINED__
2124 
2125   EXTERN_C const IID IID_Recordset15;
2126 #if defined (__cplusplus) && !defined (CINTERFACE)
2127 
2128   MIDL_INTERFACE ("0000150E-0000-0010-8000-00AA006D2EA4")
2129   Recordset15 : public _ADO {
2130     public:
2131     virtual HRESULT STDMETHODCALLTYPE get_AbsolutePosition (PositionEnum *pl) = 0;
2132     virtual HRESULT STDMETHODCALLTYPE put_AbsolutePosition (PositionEnum Position) = 0;
2133     virtual HRESULT STDMETHODCALLTYPE putref_ActiveConnection (IDispatch *pconn) = 0;
2134     virtual HRESULT STDMETHODCALLTYPE put_ActiveConnection (VARIANT vConn) = 0;
2135     virtual HRESULT STDMETHODCALLTYPE get_ActiveConnection (VARIANT *pvar) = 0;
2136     virtual HRESULT STDMETHODCALLTYPE get_BOF (VARIANT_BOOL *pb) = 0;
2137     virtual HRESULT STDMETHODCALLTYPE get_Bookmark (VARIANT *pvBookmark) = 0;
2138     virtual HRESULT STDMETHODCALLTYPE put_Bookmark (VARIANT vBookmark) = 0;
2139     virtual HRESULT STDMETHODCALLTYPE get_CacheSize (long *pl) = 0;
2140     virtual HRESULT STDMETHODCALLTYPE put_CacheSize (long CacheSize) = 0;
2141     virtual HRESULT STDMETHODCALLTYPE get_CursorType (CursorTypeEnum *plCursorType) = 0;
2142     virtual HRESULT STDMETHODCALLTYPE put_CursorType (CursorTypeEnum lCursorType) = 0;
2143     virtual HRESULT STDMETHODCALLTYPE get_EOF (VARIANT_BOOL *pb) = 0;
2144     virtual HRESULT STDMETHODCALLTYPE get_Fields (ADOFields **ppvObject) = 0;
2145     virtual HRESULT STDMETHODCALLTYPE get_LockType (LockTypeEnum *plLockType) = 0;
2146     virtual HRESULT STDMETHODCALLTYPE put_LockType (LockTypeEnum lLockType) = 0;
2147     virtual HRESULT STDMETHODCALLTYPE get_MaxRecords (long *plMaxRecords) = 0;
2148     virtual HRESULT STDMETHODCALLTYPE put_MaxRecords (long lMaxRecords) = 0;
2149     virtual HRESULT STDMETHODCALLTYPE get_RecordCount (long *pl) = 0;
2150     virtual HRESULT STDMETHODCALLTYPE putref_Source (IDispatch *pcmd) = 0;
2151     virtual HRESULT STDMETHODCALLTYPE put_Source (BSTR bstrConn) = 0;
2152     virtual HRESULT STDMETHODCALLTYPE get_Source (VARIANT *pvSource) = 0;
2153     virtual HRESULT STDMETHODCALLTYPE AddNew (VARIANT FieldList, VARIANT Values) = 0;
2154     virtual HRESULT STDMETHODCALLTYPE CancelUpdate (void) = 0;
2155     virtual HRESULT STDMETHODCALLTYPE Close (void) = 0;
2156     virtual HRESULT STDMETHODCALLTYPE Delete (AffectEnum AffectRecords = adAffectCurrent) = 0;
2157     virtual HRESULT STDMETHODCALLTYPE GetRows (long Rows, VARIANT Start, VARIANT Fields, VARIANT *pvar) = 0;
2158     virtual HRESULT STDMETHODCALLTYPE Move (long NumRecords, VARIANT Start) = 0;
2159     virtual HRESULT STDMETHODCALLTYPE MoveNext (void) = 0;
2160     virtual HRESULT STDMETHODCALLTYPE MovePrevious (void) = 0;
2161     virtual HRESULT STDMETHODCALLTYPE MoveFirst (void) = 0;
2162     virtual HRESULT STDMETHODCALLTYPE MoveLast (void) = 0;
2163     virtual HRESULT STDMETHODCALLTYPE Open (VARIANT Source, VARIANT ActiveConnection, CursorTypeEnum CursorType = adOpenUnspecified, LockTypeEnum LockType = adLockUnspecified, LONG Options = adCmdUnspecified) = 0;
2164     virtual HRESULT STDMETHODCALLTYPE Requery (LONG Options = adOptionUnspecified) = 0;
2165     virtual HRESULT STDMETHODCALLTYPE _xResync (AffectEnum AffectRecords = adAffectAll) = 0;
2166     virtual HRESULT STDMETHODCALLTYPE Update (VARIANT Fields, VARIANT Values) = 0;
2167     virtual HRESULT STDMETHODCALLTYPE get_AbsolutePage (PositionEnum *pl) = 0;
2168     virtual HRESULT STDMETHODCALLTYPE put_AbsolutePage (PositionEnum Page) = 0;
2169     virtual HRESULT STDMETHODCALLTYPE get_EditMode (EditModeEnum *pl) = 0;
2170     virtual HRESULT STDMETHODCALLTYPE get_Filter (VARIANT *Criteria) = 0;
2171     virtual HRESULT STDMETHODCALLTYPE put_Filter (VARIANT Criteria) = 0;
2172     virtual HRESULT STDMETHODCALLTYPE get_PageCount (long *pl) = 0;
2173     virtual HRESULT STDMETHODCALLTYPE get_PageSize (long *pl) = 0;
2174     virtual HRESULT STDMETHODCALLTYPE put_PageSize (long PageSize) = 0;
2175     virtual HRESULT STDMETHODCALLTYPE get_Sort (BSTR *Criteria) = 0;
2176     virtual HRESULT STDMETHODCALLTYPE put_Sort (BSTR Criteria) = 0;
2177     virtual HRESULT STDMETHODCALLTYPE get_Status (long *pl) = 0;
2178     virtual HRESULT STDMETHODCALLTYPE get_State (LONG *plObjState) = 0;
2179     virtual HRESULT STDMETHODCALLTYPE _xClone (_ADORecordset **ppvObject) = 0;
2180     virtual HRESULT STDMETHODCALLTYPE UpdateBatch (AffectEnum AffectRecords = adAffectAll) = 0;
2181     virtual HRESULT STDMETHODCALLTYPE CancelBatch (AffectEnum AffectRecords = adAffectAll) = 0;
2182     virtual HRESULT STDMETHODCALLTYPE get_CursorLocation (CursorLocationEnum *plCursorLoc) = 0;
2183     virtual HRESULT STDMETHODCALLTYPE put_CursorLocation (CursorLocationEnum lCursorLoc) = 0;
2184     virtual HRESULT STDMETHODCALLTYPE NextRecordset (VARIANT *RecordsAffected, _ADORecordset **ppiRs) = 0;
2185     virtual HRESULT STDMETHODCALLTYPE Supports (CursorOptionEnum CursorOptions, VARIANT_BOOL *pb) = 0;
2186     virtual HRESULT STDMETHODCALLTYPE get_Collect (VARIANT Index, VARIANT *pvar) = 0;
2187     virtual HRESULT STDMETHODCALLTYPE put_Collect (VARIANT Index, VARIANT value) = 0;
2188     virtual HRESULT STDMETHODCALLTYPE get_MarshalOptions (MarshalOptionsEnum *peMarshal) = 0;
2189     virtual HRESULT STDMETHODCALLTYPE put_MarshalOptions (MarshalOptionsEnum eMarshal) = 0;
2190     virtual HRESULT STDMETHODCALLTYPE Find (BSTR Criteria, long SkipRecords, SearchDirectionEnum SearchDirection, VARIANT Start) = 0;
2191   };
2192 #else
2193   typedef struct Recordset15Vtbl {
2194     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (Recordset15 *This, REFIID riid, _COM_Outptr_ void **ppvObject);
2195     ULONG (STDMETHODCALLTYPE *AddRef) (Recordset15 *This);
2196     ULONG (STDMETHODCALLTYPE *Release) (Recordset15 *This);
2197     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (Recordset15 *This, UINT *pctinfo);
2198     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (Recordset15 *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
2199     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (Recordset15 *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
2200     HRESULT (STDMETHODCALLTYPE *Invoke) (Recordset15 *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
2201     HRESULT (STDMETHODCALLTYPE *get_Properties) (Recordset15 *This, ADOProperties **ppvObject);
2202     HRESULT (STDMETHODCALLTYPE *get_AbsolutePosition) (Recordset15 *This, PositionEnum *pl);
2203     HRESULT (STDMETHODCALLTYPE *put_AbsolutePosition) (Recordset15 *This, PositionEnum Position);
2204     HRESULT (STDMETHODCALLTYPE *putref_ActiveADOConnection) (Recordset15 *This, IDispatch *pconn);
2205     HRESULT (STDMETHODCALLTYPE *put_ActiveConnection) (Recordset15 *This, VARIANT vConn);
2206     HRESULT (STDMETHODCALLTYPE *get_ActiveConnection) (Recordset15 *This, VARIANT *pvar);
2207     HRESULT (STDMETHODCALLTYPE *get_BOF) (Recordset15 *This, VARIANT_BOOL *pb);
2208     HRESULT (STDMETHODCALLTYPE *get_Bookmark) (Recordset15 *This, VARIANT *pvBookmark);
2209     HRESULT (STDMETHODCALLTYPE *put_Bookmark) (Recordset15 *This, VARIANT vBookmark);
2210     HRESULT (STDMETHODCALLTYPE *get_CacheSize) (Recordset15 *This, long *pl);
2211     HRESULT (STDMETHODCALLTYPE *put_CacheSize) (Recordset15 *This, long CacheSize);
2212     HRESULT (STDMETHODCALLTYPE *get_CursorType) (Recordset15 *This, CursorTypeEnum *plCursorType);
2213     HRESULT (STDMETHODCALLTYPE *put_CursorType) (Recordset15 *This, CursorTypeEnum lCursorType);
2214     HRESULT (STDMETHODCALLTYPE *get_EOF) (Recordset15 *This, VARIANT_BOOL *pb);
2215     HRESULT (STDMETHODCALLTYPE *get_Fields) (Recordset15 *This, ADOFields **ppvObject);
2216     HRESULT (STDMETHODCALLTYPE *get_LockType) (Recordset15 *This, LockTypeEnum *plLockType);
2217     HRESULT (STDMETHODCALLTYPE *put_LockType) (Recordset15 *This, LockTypeEnum lLockType);
2218     HRESULT (STDMETHODCALLTYPE *get_MaxRecords) (Recordset15 *This, long *plMaxRecords);
2219     HRESULT (STDMETHODCALLTYPE *put_MaxRecords) (Recordset15 *This, long lMaxRecords);
2220     HRESULT (STDMETHODCALLTYPE *get_RecordCount) (Recordset15 *This, long *pl);
2221     HRESULT (STDMETHODCALLTYPE *putref_Source) (Recordset15 *This, IDispatch *pcmd);
2222     HRESULT (STDMETHODCALLTYPE *put_Source) (Recordset15 *This, BSTR bstrConn);
2223     HRESULT (STDMETHODCALLTYPE *get_Source) (Recordset15 *This, VARIANT *pvSource);
2224     HRESULT (STDMETHODCALLTYPE *AddNew) (Recordset15 *This, VARIANT FieldList, VARIANT Values);
2225     HRESULT (STDMETHODCALLTYPE *CancelUpdate) (Recordset15 *This);
2226     HRESULT (STDMETHODCALLTYPE *Close) (Recordset15 *This);
2227     HRESULT (STDMETHODCALLTYPE *Delete) (Recordset15 *This, AffectEnum AffectRecords);
2228     HRESULT (STDMETHODCALLTYPE *GetRows) (Recordset15 *This, long Rows, VARIANT Start, VARIANT Fields, VARIANT *pvar);
2229     HRESULT (STDMETHODCALLTYPE *Move) (Recordset15 *This, long NumRecords, VARIANT Start);
2230     HRESULT (STDMETHODCALLTYPE *MoveNext) (Recordset15 *This);
2231     HRESULT (STDMETHODCALLTYPE *MovePrevious) (Recordset15 *This);
2232     HRESULT (STDMETHODCALLTYPE *MoveFirst) (Recordset15 *This);
2233     HRESULT (STDMETHODCALLTYPE *MoveLast) (Recordset15 *This);
2234     HRESULT (STDMETHODCALLTYPE *Open) (Recordset15 *This, VARIANT Source, VARIANT ActiveConnection, CursorTypeEnum CursorType, LockTypeEnum LockType, LONG Options);
2235     HRESULT (STDMETHODCALLTYPE *Requery) (Recordset15 *This, LONG Options);
2236     HRESULT (STDMETHODCALLTYPE *_xResync) (Recordset15 *This, AffectEnum AffectRecords);
2237     HRESULT (STDMETHODCALLTYPE *Update) (Recordset15 *This, VARIANT Fields, VARIANT Values);
2238     HRESULT (STDMETHODCALLTYPE *get_AbsolutePage) (Recordset15 *This, PositionEnum *pl);
2239     HRESULT (STDMETHODCALLTYPE *put_AbsolutePage) (Recordset15 *This, PositionEnum Page);
2240     HRESULT (STDMETHODCALLTYPE *get_EditMode) (Recordset15 *This, EditModeEnum *pl);
2241     HRESULT (STDMETHODCALLTYPE *get_Filter) (Recordset15 *This, VARIANT *Criteria);
2242     HRESULT (STDMETHODCALLTYPE *put_Filter) (Recordset15 *This, VARIANT Criteria);
2243     HRESULT (STDMETHODCALLTYPE *get_PageCount) (Recordset15 *This, long *pl);
2244     HRESULT (STDMETHODCALLTYPE *get_PageSize) (Recordset15 *This, long *pl);
2245     HRESULT (STDMETHODCALLTYPE *put_PageSize) (Recordset15 *This, long PageSize);
2246     HRESULT (STDMETHODCALLTYPE *get_Sort) (Recordset15 *This, BSTR *Criteria);
2247     HRESULT (STDMETHODCALLTYPE *put_Sort) (Recordset15 *This, BSTR Criteria);
2248     HRESULT (STDMETHODCALLTYPE *get_Status) (Recordset15 *This, long *pl);
2249     HRESULT (STDMETHODCALLTYPE *get_State) (Recordset15 *This, LONG *plObjState);
2250     HRESULT (STDMETHODCALLTYPE *_xClone) (Recordset15 *This, _ADORecordset **ppvObject);
2251     HRESULT (STDMETHODCALLTYPE *UpdateBatch) (Recordset15 *This, AffectEnum AffectRecords);
2252     HRESULT (STDMETHODCALLTYPE *CancelBatch) (Recordset15 *This, AffectEnum AffectRecords);
2253     HRESULT (STDMETHODCALLTYPE *get_CursorLocation) (Recordset15 *This, CursorLocationEnum *plCursorLoc);
2254     HRESULT (STDMETHODCALLTYPE *put_CursorLocation) (Recordset15 *This, CursorLocationEnum lCursorLoc);
2255     HRESULT (STDMETHODCALLTYPE *NextADORecordset) (Recordset15 *This, VARIANT *RecordsAffected, _ADORecordset **ppiRs);
2256     HRESULT (STDMETHODCALLTYPE *Supports) (Recordset15 *This, CursorOptionEnum CursorOptions, VARIANT_BOOL *pb);
2257     HRESULT (STDMETHODCALLTYPE *get_Collect) (Recordset15 *This, VARIANT Index, VARIANT *pvar);
2258     HRESULT (STDMETHODCALLTYPE *put_Collect) (Recordset15 *This, VARIANT Index, VARIANT value);
2259     HRESULT (STDMETHODCALLTYPE *get_MarshalOptions) (Recordset15 *This, MarshalOptionsEnum *peMarshal);
2260     HRESULT (STDMETHODCALLTYPE *put_MarshalOptions) (Recordset15 *This, MarshalOptionsEnum eMarshal);
2261     HRESULT (STDMETHODCALLTYPE *Find) (Recordset15 *This, BSTR Criteria, long SkipRecords, SearchDirectionEnum SearchDirection, VARIANT Start);
2262     END_INTERFACE
2263   } Recordset15Vtbl;
2264   interface Recordset15 {
2265     CONST_VTBL struct Recordset15Vtbl *lpVtbl;
2266   };
2267 #ifdef COBJMACROS
2268 #define Recordset15_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
2269 #define Recordset15_AddRef(This) ((This)->lpVtbl ->AddRef (This))
2270 #define Recordset15_Release(This) ((This)->lpVtbl ->Release (This))
2271 #define Recordset15_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
2272 #define Recordset15_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
2273 #define Recordset15_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
2274 #define Recordset15_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
2275 #define Recordset15_get_Properties(This, ppvObject) ((This)->lpVtbl ->get_Properties (This, ppvObject))
2276 #define Recordset15_get_AbsolutePosition(This, pl) ((This)->lpVtbl ->get_AbsolutePosition (This, pl))
2277 #define Recordset15_put_AbsolutePosition(This, Position) ((This)->lpVtbl ->put_AbsolutePosition (This, Position))
2278 #define Recordset15_putref_ActiveConnection(This, pconn) ((This)->lpVtbl ->putref_ActiveConnection (This, pconn))
2279 #define Recordset15_put_ActiveConnection(This, vConn) ((This)->lpVtbl ->put_ActiveConnection (This, vConn))
2280 #define Recordset15_get_ActiveConnection(This, pvar) ((This)->lpVtbl ->get_ActiveConnection (This, pvar))
2281 #define Recordset15_get_BOF(This, pb) ((This)->lpVtbl ->get_BOF (This, pb))
2282 #define Recordset15_get_Bookmark(This, pvBookmark) ((This)->lpVtbl ->get_Bookmark (This, pvBookmark))
2283 #define Recordset15_put_Bookmark(This, vBookmark) ((This)->lpVtbl ->put_Bookmark (This, vBookmark))
2284 #define Recordset15_get_CacheSize(This, pl) ((This)->lpVtbl ->get_CacheSize (This, pl))
2285 #define Recordset15_put_CacheSize(This, CacheSize) ((This)->lpVtbl ->put_CacheSize (This, CacheSize))
2286 #define Recordset15_get_CursorType(This, plCursorType) ((This)->lpVtbl ->get_CursorType (This, plCursorType))
2287 #define Recordset15_put_CursorType(This, lCursorType) ((This)->lpVtbl ->put_CursorType (This, lCursorType))
2288 #define Recordset15_get_EOF(This, pb) ((This)->lpVtbl ->get_EOF (This, pb))
2289 #define Recordset15_get_Fields(This, ppvObject) ((This)->lpVtbl ->get_Fields (This, ppvObject))
2290 #define Recordset15_get_LockType(This, plLockType) ((This)->lpVtbl ->get_LockType (This, plLockType))
2291 #define Recordset15_put_LockType(This, lLockType) ((This)->lpVtbl ->put_LockType (This, lLockType))
2292 #define Recordset15_get_MaxRecords(This, plMaxRecords) ((This)->lpVtbl ->get_MaxRecords (This, plMaxRecords))
2293 #define Recordset15_put_MaxRecords(This, lMaxRecords) ((This)->lpVtbl ->put_MaxRecords (This, lMaxRecords))
2294 #define Recordset15_get_RecordCount(This, pl) ((This)->lpVtbl ->get_RecordCount (This, pl))
2295 #define Recordset15_putref_Source(This, pcmd) ((This)->lpVtbl ->putref_Source (This, pcmd))
2296 #define Recordset15_put_Source(This, bstrConn) ((This)->lpVtbl ->put_Source (This, bstrConn))
2297 #define Recordset15_get_Source(This, pvSource) ((This)->lpVtbl ->get_Source (This, pvSource))
2298 #define Recordset15_AddNew(This, FieldList, Values) ((This)->lpVtbl ->AddNew (This, FieldList, Values))
2299 #define Recordset15_CancelUpdate(This) ((This)->lpVtbl ->CancelUpdate (This))
2300 #define Recordset15_Close(This) ((This)->lpVtbl ->Close (This))
2301 #define Recordset15_Delete(This, AffectRecords) ((This)->lpVtbl ->Delete (This, AffectRecords))
2302 #define Recordset15_GetRows(This, Rows, Start, Fields, pvar) ((This)->lpVtbl ->GetRows (This, Rows, Start, Fields, pvar))
2303 #define Recordset15_Move(This, NumRecords, Start) ((This)->lpVtbl ->Move (This, NumRecords, Start))
2304 #define Recordset15_MoveNext(This) ((This)->lpVtbl ->MoveNext (This))
2305 #define Recordset15_MovePrevious(This) ((This)->lpVtbl ->MovePrevious (This))
2306 #define Recordset15_MoveFirst(This) ((This)->lpVtbl ->MoveFirst (This))
2307 #define Recordset15_MoveLast(This) ((This)->lpVtbl ->MoveLast (This))
2308 #define Recordset15_Open(This, Source, ActiveConnection, CursorType, LockType, Options) ((This)->lpVtbl ->Open (This, Source, ActiveConnection, CursorType, LockType, Options))
2309 #define Recordset15_Requery(This, Options) ((This)->lpVtbl ->Requery (This, Options))
2310 #define Recordset15__xResync(This, AffectRecords) ((This)->lpVtbl ->_xResync (This, AffectRecords))
2311 #define Recordset15_Update(This, Fields, Values) ((This)->lpVtbl ->Update (This, Fields, Values))
2312 #define Recordset15_get_AbsolutePage(This, pl) ((This)->lpVtbl ->get_AbsolutePage (This, pl))
2313 #define Recordset15_put_AbsolutePage(This, Page) ((This)->lpVtbl ->put_AbsolutePage (This, Page))
2314 #define Recordset15_get_EditMode(This, pl) ((This)->lpVtbl ->get_EditMode (This, pl))
2315 #define Recordset15_get_Filter(This, Criteria) ((This)->lpVtbl ->get_Filter (This, Criteria))
2316 #define Recordset15_put_Filter(This, Criteria) ((This)->lpVtbl ->put_Filter (This, Criteria))
2317 #define Recordset15_get_PageCount(This, pl) ((This)->lpVtbl ->get_PageCount (This, pl))
2318 #define Recordset15_get_PageSize(This, pl) ((This)->lpVtbl ->get_PageSize (This, pl))
2319 #define Recordset15_put_PageSize(This, PageSize) ((This)->lpVtbl ->put_PageSize (This, PageSize))
2320 #define Recordset15_get_Sort(This, Criteria) ((This)->lpVtbl ->get_Sort (This, Criteria))
2321 #define Recordset15_put_Sort(This, Criteria) ((This)->lpVtbl ->put_Sort (This, Criteria))
2322 #define Recordset15_get_Status(This, pl) ((This)->lpVtbl ->get_Status (This, pl))
2323 #define Recordset15_get_State(This, plObjState) ((This)->lpVtbl ->get_State (This, plObjState))
2324 #define Recordset15__xClone(This, ppvObject) ((This)->lpVtbl ->_xClone (This, ppvObject))
2325 #define Recordset15_UpdateBatch(This, AffectRecords) ((This)->lpVtbl ->UpdateBatch (This, AffectRecords))
2326 #define Recordset15_CancelBatch(This, AffectRecords) ((This)->lpVtbl ->CancelBatch (This, AffectRecords))
2327 #define Recordset15_get_CursorLocation(This, plCursorLoc) ((This)->lpVtbl ->get_CursorLocation (This, plCursorLoc))
2328 #define Recordset15_put_CursorLocation(This, lCursorLoc) ((This)->lpVtbl ->put_CursorLocation (This, lCursorLoc))
2329 #define Recordset15_NextRecordset(This, RecordsAffected, ppiRs) ((This)->lpVtbl ->NextRecordset (This, RecordsAffected, ppiRs))
2330 #define Recordset15_Supports(This, CursorOptions, pb) ((This)->lpVtbl ->Supports (This, CursorOptions, pb))
2331 #define Recordset15_get_Collect(This, Index, pvar) ((This)->lpVtbl ->get_Collect (This, Index, pvar))
2332 #define Recordset15_put_Collect(This, Index, value) ((This)->lpVtbl ->put_Collect (This, Index, value))
2333 #define Recordset15_get_MarshalOptions(This, peMarshal) ((This)->lpVtbl ->get_MarshalOptions (This, peMarshal))
2334 #define Recordset15_put_MarshalOptions(This, eMarshal) ((This)->lpVtbl ->put_MarshalOptions (This, eMarshal))
2335 #define Recordset15_Find(This, Criteria, SkipRecords, SearchDirection, Start) ((This)->lpVtbl ->Find (This, Criteria, SkipRecords, SearchDirection, Start))
2336 #endif
2337 #endif
2338 #endif
2339 #ifndef __Recordset20_INTERFACE_DEFINED__
2340 #define __Recordset20_INTERFACE_DEFINED__
2341 
2342   EXTERN_C const IID IID_Recordset20;
2343 #if defined (__cplusplus) && !defined (CINTERFACE)
2344 
2345   MIDL_INTERFACE ("0000154F-0000-0010-8000-00AA006D2EA4")
2346   Recordset20 : public Recordset15 {
2347     public:
2348     virtual HRESULT STDMETHODCALLTYPE Cancel (void) = 0;
2349     virtual HRESULT STDMETHODCALLTYPE get_DataSource (IUnknown **ppunkDataSource) = 0;
2350     virtual HRESULT STDMETHODCALLTYPE putref_DataSource (IUnknown *punkDataSource) = 0;
2351     virtual HRESULT STDMETHODCALLTYPE _xSave (BSTR FileName = NULL, PersistFormatEnum PersistFormat = adPersistADTG) = 0;
2352     virtual HRESULT STDMETHODCALLTYPE get_ActiveCommand (IDispatch **ppCmd) = 0;
2353     virtual HRESULT STDMETHODCALLTYPE put_StayInSync (VARIANT_BOOL bStayInSync) = 0;
2354     virtual HRESULT STDMETHODCALLTYPE get_StayInSync (VARIANT_BOOL *pbStayInSync) = 0;
2355     virtual HRESULT STDMETHODCALLTYPE GetString (StringFormatEnum StringFormat, long NumRows, BSTR ColumnDelimeter, BSTR RowDelimeter, BSTR NullExpr, BSTR *pRetString) = 0;
2356     virtual HRESULT STDMETHODCALLTYPE get_DataMember (BSTR *pbstrDataMember) = 0;
2357     virtual HRESULT STDMETHODCALLTYPE put_DataMember (BSTR bstrDataMember) = 0;
2358     virtual HRESULT STDMETHODCALLTYPE CompareBookmarks (VARIANT Bookmark1, VARIANT Bookmark2, CompareEnum *pCompare) = 0;
2359     virtual HRESULT STDMETHODCALLTYPE Clone (LockTypeEnum LockType, _ADORecordset **ppvObject) = 0;
2360     virtual HRESULT STDMETHODCALLTYPE Resync (AffectEnum AffectRecords = adAffectAll, ResyncEnum ResyncValues = adResyncAllValues) = 0;
2361   };
2362 #else
2363   typedef struct Recordset20Vtbl {
2364     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (Recordset20 *This, REFIID riid, _COM_Outptr_ void **ppvObject);
2365     ULONG (STDMETHODCALLTYPE *AddRef) (Recordset20 *This);
2366     ULONG (STDMETHODCALLTYPE *Release) (Recordset20 *This);
2367     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (Recordset20 *This, UINT *pctinfo);
2368     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (Recordset20 *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
2369     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (Recordset20 *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
2370     HRESULT (STDMETHODCALLTYPE *Invoke) (Recordset20 *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
2371     HRESULT (STDMETHODCALLTYPE *get_Properties) (Recordset20 *This, ADOProperties **ppvObject);
2372     HRESULT (STDMETHODCALLTYPE *get_AbsolutePosition) (Recordset20 *This, PositionEnum *pl);
2373     HRESULT (STDMETHODCALLTYPE *put_AbsolutePosition) (Recordset20 *This, PositionEnum Position);
2374     HRESULT (STDMETHODCALLTYPE *putref_ActiveADOConnection) (Recordset20 *This, IDispatch *pconn);
2375     HRESULT (STDMETHODCALLTYPE *put_ActiveConnection) (Recordset20 *This, VARIANT vConn);
2376     HRESULT (STDMETHODCALLTYPE *get_ActiveConnection) (Recordset20 *This, VARIANT *pvar);
2377     HRESULT (STDMETHODCALLTYPE *get_BOF) (Recordset20 *This, VARIANT_BOOL *pb);
2378     HRESULT (STDMETHODCALLTYPE *get_Bookmark) (Recordset20 *This, VARIANT *pvBookmark);
2379     HRESULT (STDMETHODCALLTYPE *put_Bookmark) (Recordset20 *This, VARIANT vBookmark);
2380     HRESULT (STDMETHODCALLTYPE *get_CacheSize) (Recordset20 *This, long *pl);
2381     HRESULT (STDMETHODCALLTYPE *put_CacheSize) (Recordset20 *This, long CacheSize);
2382     HRESULT (STDMETHODCALLTYPE *get_CursorType) (Recordset20 *This, CursorTypeEnum *plCursorType);
2383     HRESULT (STDMETHODCALLTYPE *put_CursorType) (Recordset20 *This, CursorTypeEnum lCursorType);
2384     HRESULT (STDMETHODCALLTYPE *get_EOF) (Recordset20 *This, VARIANT_BOOL *pb);
2385     HRESULT (STDMETHODCALLTYPE *get_Fields) (Recordset20 *This, ADOFields **ppvObject);
2386     HRESULT (STDMETHODCALLTYPE *get_LockType) (Recordset20 *This, LockTypeEnum *plLockType);
2387     HRESULT (STDMETHODCALLTYPE *put_LockType) (Recordset20 *This, LockTypeEnum lLockType);
2388     HRESULT (STDMETHODCALLTYPE *get_MaxRecords) (Recordset20 *This, long *plMaxRecords);
2389     HRESULT (STDMETHODCALLTYPE *put_MaxRecords) (Recordset20 *This, long lMaxRecords);
2390     HRESULT (STDMETHODCALLTYPE *get_RecordCount) (Recordset20 *This, long *pl);
2391     HRESULT (STDMETHODCALLTYPE *putref_Source) (Recordset20 *This, IDispatch *pcmd);
2392     HRESULT (STDMETHODCALLTYPE *put_Source) (Recordset20 *This, BSTR bstrConn);
2393     HRESULT (STDMETHODCALLTYPE *get_Source) (Recordset20 *This, VARIANT *pvSource);
2394     HRESULT (STDMETHODCALLTYPE *AddNew) (Recordset20 *This, VARIANT FieldList, VARIANT Values);
2395     HRESULT (STDMETHODCALLTYPE *CancelUpdate) (Recordset20 *This);
2396     HRESULT (STDMETHODCALLTYPE *Close) (Recordset20 *This);
2397     HRESULT (STDMETHODCALLTYPE *Delete) (Recordset20 *This, AffectEnum AffectRecords);
2398     HRESULT (STDMETHODCALLTYPE *GetRows) (Recordset20 *This, long Rows, VARIANT Start, VARIANT Fields, VARIANT *pvar);
2399     HRESULT (STDMETHODCALLTYPE *Move) (Recordset20 *This, long NumRecords, VARIANT Start);
2400     HRESULT (STDMETHODCALLTYPE *MoveNext) (Recordset20 *This);
2401     HRESULT (STDMETHODCALLTYPE *MovePrevious) (Recordset20 *This);
2402     HRESULT (STDMETHODCALLTYPE *MoveFirst) (Recordset20 *This);
2403     HRESULT (STDMETHODCALLTYPE *MoveLast) (Recordset20 *This);
2404     HRESULT (STDMETHODCALLTYPE *Open) (Recordset20 *This, VARIANT Source, VARIANT ActiveConnection, CursorTypeEnum CursorType, LockTypeEnum LockType, LONG Options);
2405     HRESULT (STDMETHODCALLTYPE *Requery) (Recordset20 *This, LONG Options);
2406     HRESULT (STDMETHODCALLTYPE *_xResync) (Recordset20 *This, AffectEnum AffectRecords);
2407     HRESULT (STDMETHODCALLTYPE *Update) (Recordset20 *This, VARIANT Fields, VARIANT Values);
2408     HRESULT (STDMETHODCALLTYPE *get_AbsolutePage) (Recordset20 *This, PositionEnum *pl);
2409     HRESULT (STDMETHODCALLTYPE *put_AbsolutePage) (Recordset20 *This, PositionEnum Page);
2410     HRESULT (STDMETHODCALLTYPE *get_EditMode) (Recordset20 *This, EditModeEnum *pl);
2411     HRESULT (STDMETHODCALLTYPE *get_Filter) (Recordset20 *This, VARIANT *Criteria);
2412     HRESULT (STDMETHODCALLTYPE *put_Filter) (Recordset20 *This, VARIANT Criteria);
2413     HRESULT (STDMETHODCALLTYPE *get_PageCount) (Recordset20 *This, long *pl);
2414     HRESULT (STDMETHODCALLTYPE *get_PageSize) (Recordset20 *This, long *pl);
2415     HRESULT (STDMETHODCALLTYPE *put_PageSize) (Recordset20 *This, long PageSize);
2416     HRESULT (STDMETHODCALLTYPE *get_Sort) (Recordset20 *This, BSTR *Criteria);
2417     HRESULT (STDMETHODCALLTYPE *put_Sort) (Recordset20 *This, BSTR Criteria);
2418     HRESULT (STDMETHODCALLTYPE *get_Status) (Recordset20 *This, long *pl);
2419     HRESULT (STDMETHODCALLTYPE *get_State) (Recordset20 *This, LONG *plObjState);
2420     HRESULT (STDMETHODCALLTYPE *_xClone) (Recordset20 *This, _ADORecordset **ppvObject);
2421     HRESULT (STDMETHODCALLTYPE *UpdateBatch) (Recordset20 *This, AffectEnum AffectRecords);
2422     HRESULT (STDMETHODCALLTYPE *CancelBatch) (Recordset20 *This, AffectEnum AffectRecords);
2423     HRESULT (STDMETHODCALLTYPE *get_CursorLocation) (Recordset20 *This, CursorLocationEnum *plCursorLoc);
2424     HRESULT (STDMETHODCALLTYPE *put_CursorLocation) (Recordset20 *This, CursorLocationEnum lCursorLoc);
2425     HRESULT (STDMETHODCALLTYPE *NextADORecordset) (Recordset20 *This, VARIANT *RecordsAffected, _ADORecordset **ppiRs);
2426     HRESULT (STDMETHODCALLTYPE *Supports) (Recordset20 *This, CursorOptionEnum CursorOptions, VARIANT_BOOL *pb);
2427     HRESULT (STDMETHODCALLTYPE *get_Collect) (Recordset20 *This, VARIANT Index, VARIANT *pvar);
2428     HRESULT (STDMETHODCALLTYPE *put_Collect) (Recordset20 *This, VARIANT Index, VARIANT value);
2429     HRESULT (STDMETHODCALLTYPE *get_MarshalOptions) (Recordset20 *This, MarshalOptionsEnum *peMarshal);
2430     HRESULT (STDMETHODCALLTYPE *put_MarshalOptions) (Recordset20 *This, MarshalOptionsEnum eMarshal);
2431     HRESULT (STDMETHODCALLTYPE *Find) (Recordset20 *This, BSTR Criteria, long SkipRecords, SearchDirectionEnum SearchDirection, VARIANT Start);
2432     HRESULT (STDMETHODCALLTYPE *Cancel) (Recordset20 *This);
2433     HRESULT (STDMETHODCALLTYPE *get_DataSource) (Recordset20 *This, IUnknown **ppunkDataSource);
2434     HRESULT (STDMETHODCALLTYPE *putref_DataSource) (Recordset20 *This, IUnknown *punkDataSource);
2435     HRESULT (STDMETHODCALLTYPE *_xSave) (Recordset20 *This, BSTR FileName, PersistFormatEnum PersistFormat);
2436     HRESULT (STDMETHODCALLTYPE *get_ActiveCommand) (Recordset20 *This, IDispatch **ppCmd);
2437     HRESULT (STDMETHODCALLTYPE *put_StayInSync) (Recordset20 *This, VARIANT_BOOL bStayInSync);
2438     HRESULT (STDMETHODCALLTYPE *get_StayInSync) (Recordset20 *This, VARIANT_BOOL *pbStayInSync);
2439     HRESULT (STDMETHODCALLTYPE *GetString) (Recordset20 *This, StringFormatEnum StringFormat, long NumRows, BSTR ColumnDelimeter, BSTR RowDelimeter, BSTR NullExpr, BSTR *pRetString);
2440     HRESULT (STDMETHODCALLTYPE *get_DataMember) (Recordset20 *This, BSTR *pbstrDataMember);
2441     HRESULT (STDMETHODCALLTYPE *put_DataMember) (Recordset20 *This, BSTR bstrDataMember);
2442     HRESULT (STDMETHODCALLTYPE *CompareBookmarks) (Recordset20 *This, VARIANT Bookmark1, VARIANT Bookmark2, CompareEnum *pCompare);
2443     HRESULT (STDMETHODCALLTYPE *Clone) (Recordset20 *This, LockTypeEnum LockType, _ADORecordset **ppvObject);
2444     HRESULT (STDMETHODCALLTYPE *Resync) (Recordset20 *This, AffectEnum AffectRecords, ResyncEnum ResyncValues);
2445     END_INTERFACE
2446   } Recordset20Vtbl;
2447   interface Recordset20 {
2448     CONST_VTBL struct Recordset20Vtbl *lpVtbl;
2449   };
2450 #ifdef COBJMACROS
2451 #define Recordset20_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
2452 #define Recordset20_AddRef(This) ((This)->lpVtbl ->AddRef (This))
2453 #define Recordset20_Release(This) ((This)->lpVtbl ->Release (This))
2454 #define Recordset20_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
2455 #define Recordset20_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
2456 #define Recordset20_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
2457 #define Recordset20_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
2458 #define Recordset20_get_Properties(This, ppvObject) ((This)->lpVtbl ->get_Properties (This, ppvObject))
2459 #define Recordset20_get_AbsolutePosition(This, pl) ((This)->lpVtbl ->get_AbsolutePosition (This, pl))
2460 #define Recordset20_put_AbsolutePosition(This, Position) ((This)->lpVtbl ->put_AbsolutePosition (This, Position))
2461 #define Recordset20_putref_ActiveConnection(This, pconn) ((This)->lpVtbl ->putref_ActiveConnection (This, pconn))
2462 #define Recordset20_put_ActiveConnection(This, vConn) ((This)->lpVtbl ->put_ActiveConnection (This, vConn))
2463 #define Recordset20_get_ActiveConnection(This, pvar) ((This)->lpVtbl ->get_ActiveConnection (This, pvar))
2464 #define Recordset20_get_BOF(This, pb) ((This)->lpVtbl ->get_BOF (This, pb))
2465 #define Recordset20_get_Bookmark(This, pvBookmark) ((This)->lpVtbl ->get_Bookmark (This, pvBookmark))
2466 #define Recordset20_put_Bookmark(This, vBookmark) ((This)->lpVtbl ->put_Bookmark (This, vBookmark))
2467 #define Recordset20_get_CacheSize(This, pl) ((This)->lpVtbl ->get_CacheSize (This, pl))
2468 #define Recordset20_put_CacheSize(This, CacheSize) ((This)->lpVtbl ->put_CacheSize (This, CacheSize))
2469 #define Recordset20_get_CursorType(This, plCursorType) ((This)->lpVtbl ->get_CursorType (This, plCursorType))
2470 #define Recordset20_put_CursorType(This, lCursorType) ((This)->lpVtbl ->put_CursorType (This, lCursorType))
2471 #define Recordset20_get_EOF(This, pb) ((This)->lpVtbl ->get_EOF (This, pb))
2472 #define Recordset20_get_Fields(This, ppvObject) ((This)->lpVtbl ->get_Fields (This, ppvObject))
2473 #define Recordset20_get_LockType(This, plLockType) ((This)->lpVtbl ->get_LockType (This, plLockType))
2474 #define Recordset20_put_LockType(This, lLockType) ((This)->lpVtbl ->put_LockType (This, lLockType))
2475 #define Recordset20_get_MaxRecords(This, plMaxRecords) ((This)->lpVtbl ->get_MaxRecords (This, plMaxRecords))
2476 #define Recordset20_put_MaxRecords(This, lMaxRecords) ((This)->lpVtbl ->put_MaxRecords (This, lMaxRecords))
2477 #define Recordset20_get_RecordCount(This, pl) ((This)->lpVtbl ->get_RecordCount (This, pl))
2478 #define Recordset20_putref_Source(This, pcmd) ((This)->lpVtbl ->putref_Source (This, pcmd))
2479 #define Recordset20_put_Source(This, bstrConn) ((This)->lpVtbl ->put_Source (This, bstrConn))
2480 #define Recordset20_get_Source(This, pvSource) ((This)->lpVtbl ->get_Source (This, pvSource))
2481 #define Recordset20_AddNew(This, FieldList, Values) ((This)->lpVtbl ->AddNew (This, FieldList, Values))
2482 #define Recordset20_CancelUpdate(This) ((This)->lpVtbl ->CancelUpdate (This))
2483 #define Recordset20_Close(This) ((This)->lpVtbl ->Close (This))
2484 #define Recordset20_Delete(This, AffectRecords) ((This)->lpVtbl ->Delete (This, AffectRecords))
2485 #define Recordset20_GetRows(This, Rows, Start, Fields, pvar) ((This)->lpVtbl ->GetRows (This, Rows, Start, Fields, pvar))
2486 #define Recordset20_Move(This, NumRecords, Start) ((This)->lpVtbl ->Move (This, NumRecords, Start))
2487 #define Recordset20_MoveNext(This) ((This)->lpVtbl ->MoveNext (This))
2488 #define Recordset20_MovePrevious(This) ((This)->lpVtbl ->MovePrevious (This))
2489 #define Recordset20_MoveFirst(This) ((This)->lpVtbl ->MoveFirst (This))
2490 #define Recordset20_MoveLast(This) ((This)->lpVtbl ->MoveLast (This))
2491 #define Recordset20_Open(This, Source, ActiveConnection, CursorType, LockType, Options) ((This)->lpVtbl ->Open (This, Source, ActiveConnection, CursorType, LockType, Options))
2492 #define Recordset20_Requery(This, Options) ((This)->lpVtbl ->Requery (This, Options))
2493 #define Recordset20__xResync(This, AffectRecords) ((This)->lpVtbl ->_xResync (This, AffectRecords))
2494 #define Recordset20_Update(This, Fields, Values) ((This)->lpVtbl ->Update (This, Fields, Values))
2495 #define Recordset20_get_AbsolutePage(This, pl) ((This)->lpVtbl ->get_AbsolutePage (This, pl))
2496 #define Recordset20_put_AbsolutePage(This, Page) ((This)->lpVtbl ->put_AbsolutePage (This, Page))
2497 #define Recordset20_get_EditMode(This, pl) ((This)->lpVtbl ->get_EditMode (This, pl))
2498 #define Recordset20_get_Filter(This, Criteria) ((This)->lpVtbl ->get_Filter (This, Criteria))
2499 #define Recordset20_put_Filter(This, Criteria) ((This)->lpVtbl ->put_Filter (This, Criteria))
2500 #define Recordset20_get_PageCount(This, pl) ((This)->lpVtbl ->get_PageCount (This, pl))
2501 #define Recordset20_get_PageSize(This, pl) ((This)->lpVtbl ->get_PageSize (This, pl))
2502 #define Recordset20_put_PageSize(This, PageSize) ((This)->lpVtbl ->put_PageSize (This, PageSize))
2503 #define Recordset20_get_Sort(This, Criteria) ((This)->lpVtbl ->get_Sort (This, Criteria))
2504 #define Recordset20_put_Sort(This, Criteria) ((This)->lpVtbl ->put_Sort (This, Criteria))
2505 #define Recordset20_get_Status(This, pl) ((This)->lpVtbl ->get_Status (This, pl))
2506 #define Recordset20_get_State(This, plObjState) ((This)->lpVtbl ->get_State (This, plObjState))
2507 #define Recordset20__xClone(This, ppvObject) ((This)->lpVtbl ->_xClone (This, ppvObject))
2508 #define Recordset20_UpdateBatch(This, AffectRecords) ((This)->lpVtbl ->UpdateBatch (This, AffectRecords))
2509 #define Recordset20_CancelBatch(This, AffectRecords) ((This)->lpVtbl ->CancelBatch (This, AffectRecords))
2510 #define Recordset20_get_CursorLocation(This, plCursorLoc) ((This)->lpVtbl ->get_CursorLocation (This, plCursorLoc))
2511 #define Recordset20_put_CursorLocation(This, lCursorLoc) ((This)->lpVtbl ->put_CursorLocation (This, lCursorLoc))
2512 #define Recordset20_NextRecordset(This, RecordsAffected, ppiRs) ((This)->lpVtbl ->NextRecordset (This, RecordsAffected, ppiRs))
2513 #define Recordset20_Supports(This, CursorOptions, pb) ((This)->lpVtbl ->Supports (This, CursorOptions, pb))
2514 #define Recordset20_get_Collect(This, Index, pvar) ((This)->lpVtbl ->get_Collect (This, Index, pvar))
2515 #define Recordset20_put_Collect(This, Index, value) ((This)->lpVtbl ->put_Collect (This, Index, value))
2516 #define Recordset20_get_MarshalOptions(This, peMarshal) ((This)->lpVtbl ->get_MarshalOptions (This, peMarshal))
2517 #define Recordset20_put_MarshalOptions(This, eMarshal) ((This)->lpVtbl ->put_MarshalOptions (This, eMarshal))
2518 #define Recordset20_Find(This, Criteria, SkipRecords, SearchDirection, Start) ((This)->lpVtbl ->Find (This, Criteria, SkipRecords, SearchDirection, Start))
2519 #define Recordset20_Cancel(This) ((This)->lpVtbl ->Cancel (This))
2520 #define Recordset20_get_DataSource(This, ppunkDataSource) ((This)->lpVtbl ->get_DataSource (This, ppunkDataSource))
2521 #define Recordset20_putref_DataSource(This, punkDataSource) ((This)->lpVtbl ->putref_DataSource (This, punkDataSource))
2522 #define Recordset20__xSave(This, FileName, PersistFormat) ((This)->lpVtbl ->_xSave (This, FileName, PersistFormat))
2523 #define Recordset20_get_ActiveCommand(This, ppCmd) ((This)->lpVtbl ->get_ActiveCommand (This, ppCmd))
2524 #define Recordset20_put_StayInSync(This, bStayInSync) ((This)->lpVtbl ->put_StayInSync (This, bStayInSync))
2525 #define Recordset20_get_StayInSync(This, pbStayInSync) ((This)->lpVtbl ->get_StayInSync (This, pbStayInSync))
2526 #define Recordset20_GetString(This, StringFormat, NumRows, ColumnDelimeter, RowDelimeter, NullExpr, pRetString) ((This)->lpVtbl ->GetString (This, StringFormat, NumRows, ColumnDelimeter, RowDelimeter, NullExpr, pRetString))
2527 #define Recordset20_get_DataMember(This, pbstrDataMember) ((This)->lpVtbl ->get_DataMember (This, pbstrDataMember))
2528 #define Recordset20_put_DataMember(This, bstrDataMember) ((This)->lpVtbl ->put_DataMember (This, bstrDataMember))
2529 #define Recordset20_CompareBookmarks(This, Bookmark1, Bookmark2, pCompare) ((This)->lpVtbl ->CompareBookmarks (This, Bookmark1, Bookmark2, pCompare))
2530 #define Recordset20_Clone(This, LockType, ppvObject) ((This)->lpVtbl ->Clone (This, LockType, ppvObject))
2531 #define Recordset20_Resync(This, AffectRecords, ResyncValues) ((This)->lpVtbl ->Resync (This, AffectRecords, ResyncValues))
2532 #endif
2533 #endif
2534 #endif
2535 #ifndef __Recordset21_INTERFACE_DEFINED__
2536 #define __Recordset21_INTERFACE_DEFINED__
2537 
2538   EXTERN_C const IID IID_Recordset21;
2539 #if defined (__cplusplus) && !defined (CINTERFACE)
2540 
2541   MIDL_INTERFACE ("00001555-0000-0010-8000-00AA006D2EA4")
2542   Recordset21 : public Recordset20 {
2543     public:
2544     virtual HRESULT STDMETHODCALLTYPE Seek (VARIANT KeyValues, SeekEnum SeekOption = adSeekFirstEQ) = 0;
2545     virtual HRESULT STDMETHODCALLTYPE put_Index (BSTR Index) = 0;
2546     virtual HRESULT STDMETHODCALLTYPE get_Index (BSTR *pbstrIndex) = 0;
2547   };
2548 #else
2549   typedef struct Recordset21Vtbl {
2550     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (Recordset21 *This, REFIID riid, _COM_Outptr_ void **ppvObject);
2551     ULONG (STDMETHODCALLTYPE *AddRef) (Recordset21 *This);
2552     ULONG (STDMETHODCALLTYPE *Release) (Recordset21 *This);
2553     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (Recordset21 *This, UINT *pctinfo);
2554     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (Recordset21 *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
2555     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (Recordset21 *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
2556     HRESULT (STDMETHODCALLTYPE *Invoke) (Recordset21 *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
2557     HRESULT (STDMETHODCALLTYPE *get_Properties) (Recordset21 *This, ADOProperties **ppvObject);
2558     HRESULT (STDMETHODCALLTYPE *get_AbsolutePosition) (Recordset21 *This, PositionEnum *pl);
2559     HRESULT (STDMETHODCALLTYPE *put_AbsolutePosition) (Recordset21 *This, PositionEnum Position);
2560     HRESULT (STDMETHODCALLTYPE *putref_ActiveADOConnection) (Recordset21 *This, IDispatch *pconn);
2561     HRESULT (STDMETHODCALLTYPE *put_ActiveConnection) (Recordset21 *This, VARIANT vConn);
2562     HRESULT (STDMETHODCALLTYPE *get_ActiveConnection) (Recordset21 *This, VARIANT *pvar);
2563     HRESULT (STDMETHODCALLTYPE *get_BOF) (Recordset21 *This, VARIANT_BOOL *pb);
2564     HRESULT (STDMETHODCALLTYPE *get_Bookmark) (Recordset21 *This, VARIANT *pvBookmark);
2565     HRESULT (STDMETHODCALLTYPE *put_Bookmark) (Recordset21 *This, VARIANT vBookmark);
2566     HRESULT (STDMETHODCALLTYPE *get_CacheSize) (Recordset21 *This, long *pl);
2567     HRESULT (STDMETHODCALLTYPE *put_CacheSize) (Recordset21 *This, long CacheSize);
2568     HRESULT (STDMETHODCALLTYPE *get_CursorType) (Recordset21 *This, CursorTypeEnum *plCursorType);
2569     HRESULT (STDMETHODCALLTYPE *put_CursorType) (Recordset21 *This, CursorTypeEnum lCursorType);
2570     HRESULT (STDMETHODCALLTYPE *get_EOF) (Recordset21 *This, VARIANT_BOOL *pb);
2571     HRESULT (STDMETHODCALLTYPE *get_Fields) (Recordset21 *This, ADOFields **ppvObject);
2572     HRESULT (STDMETHODCALLTYPE *get_LockType) (Recordset21 *This, LockTypeEnum *plLockType);
2573     HRESULT (STDMETHODCALLTYPE *put_LockType) (Recordset21 *This, LockTypeEnum lLockType);
2574     HRESULT (STDMETHODCALLTYPE *get_MaxRecords) (Recordset21 *This, long *plMaxRecords);
2575     HRESULT (STDMETHODCALLTYPE *put_MaxRecords) (Recordset21 *This, long lMaxRecords);
2576     HRESULT (STDMETHODCALLTYPE *get_RecordCount) (Recordset21 *This, long *pl);
2577     HRESULT (STDMETHODCALLTYPE *putref_Source) (Recordset21 *This, IDispatch *pcmd);
2578     HRESULT (STDMETHODCALLTYPE *put_Source) (Recordset21 *This, BSTR bstrConn);
2579     HRESULT (STDMETHODCALLTYPE *get_Source) (Recordset21 *This, VARIANT *pvSource);
2580     HRESULT (STDMETHODCALLTYPE *AddNew) (Recordset21 *This, VARIANT FieldList, VARIANT Values);
2581     HRESULT (STDMETHODCALLTYPE *CancelUpdate) (Recordset21 *This);
2582     HRESULT (STDMETHODCALLTYPE *Close) (Recordset21 *This);
2583     HRESULT (STDMETHODCALLTYPE *Delete) (Recordset21 *This, AffectEnum AffectRecords);
2584     HRESULT (STDMETHODCALLTYPE *GetRows) (Recordset21 *This, long Rows, VARIANT Start, VARIANT Fields, VARIANT *pvar);
2585     HRESULT (STDMETHODCALLTYPE *Move) (Recordset21 *This, long NumRecords, VARIANT Start);
2586     HRESULT (STDMETHODCALLTYPE *MoveNext) (Recordset21 *This);
2587     HRESULT (STDMETHODCALLTYPE *MovePrevious) (Recordset21 *This);
2588     HRESULT (STDMETHODCALLTYPE *MoveFirst) (Recordset21 *This);
2589     HRESULT (STDMETHODCALLTYPE *MoveLast) (Recordset21 *This);
2590     HRESULT (STDMETHODCALLTYPE *Open) (Recordset21 *This, VARIANT Source, VARIANT ActiveConnection, CursorTypeEnum CursorType, LockTypeEnum LockType, LONG Options);
2591     HRESULT (STDMETHODCALLTYPE *Requery) (Recordset21 *This, LONG Options);
2592     HRESULT (STDMETHODCALLTYPE *_xResync) (Recordset21 *This, AffectEnum AffectRecords);
2593     HRESULT (STDMETHODCALLTYPE *Update) (Recordset21 *This, VARIANT Fields, VARIANT Values);
2594     HRESULT (STDMETHODCALLTYPE *get_AbsolutePage) (Recordset21 *This, PositionEnum *pl);
2595     HRESULT (STDMETHODCALLTYPE *put_AbsolutePage) (Recordset21 *This, PositionEnum Page);
2596     HRESULT (STDMETHODCALLTYPE *get_EditMode) (Recordset21 *This, EditModeEnum *pl);
2597     HRESULT (STDMETHODCALLTYPE *get_Filter) (Recordset21 *This, VARIANT *Criteria);
2598     HRESULT (STDMETHODCALLTYPE *put_Filter) (Recordset21 *This, VARIANT Criteria);
2599     HRESULT (STDMETHODCALLTYPE *get_PageCount) (Recordset21 *This, long *pl);
2600     HRESULT (STDMETHODCALLTYPE *get_PageSize) (Recordset21 *This, long *pl);
2601     HRESULT (STDMETHODCALLTYPE *put_PageSize) (Recordset21 *This, long PageSize);
2602     HRESULT (STDMETHODCALLTYPE *get_Sort) (Recordset21 *This, BSTR *Criteria);
2603     HRESULT (STDMETHODCALLTYPE *put_Sort) (Recordset21 *This, BSTR Criteria);
2604     HRESULT (STDMETHODCALLTYPE *get_Status) (Recordset21 *This, long *pl);
2605     HRESULT (STDMETHODCALLTYPE *get_State) (Recordset21 *This, LONG *plObjState);
2606     HRESULT (STDMETHODCALLTYPE *_xClone) (Recordset21 *This, _ADORecordset **ppvObject);
2607     HRESULT (STDMETHODCALLTYPE *UpdateBatch) (Recordset21 *This, AffectEnum AffectRecords);
2608     HRESULT (STDMETHODCALLTYPE *CancelBatch) (Recordset21 *This, AffectEnum AffectRecords);
2609     HRESULT (STDMETHODCALLTYPE *get_CursorLocation) (Recordset21 *This, CursorLocationEnum *plCursorLoc);
2610     HRESULT (STDMETHODCALLTYPE *put_CursorLocation) (Recordset21 *This, CursorLocationEnum lCursorLoc);
2611     HRESULT (STDMETHODCALLTYPE *NextADORecordset) (Recordset21 *This, VARIANT *RecordsAffected, _ADORecordset **ppiRs);
2612     HRESULT (STDMETHODCALLTYPE *Supports) (Recordset21 *This, CursorOptionEnum CursorOptions, VARIANT_BOOL *pb);
2613     HRESULT (STDMETHODCALLTYPE *get_Collect) (Recordset21 *This, VARIANT Index, VARIANT *pvar);
2614     HRESULT (STDMETHODCALLTYPE *put_Collect) (Recordset21 *This, VARIANT Index, VARIANT value);
2615     HRESULT (STDMETHODCALLTYPE *get_MarshalOptions) (Recordset21 *This, MarshalOptionsEnum *peMarshal);
2616     HRESULT (STDMETHODCALLTYPE *put_MarshalOptions) (Recordset21 *This, MarshalOptionsEnum eMarshal);
2617     HRESULT (STDMETHODCALLTYPE *Find) (Recordset21 *This, BSTR Criteria, long SkipRecords, SearchDirectionEnum SearchDirection, VARIANT Start);
2618     HRESULT (STDMETHODCALLTYPE *Cancel) (Recordset21 *This);
2619     HRESULT (STDMETHODCALLTYPE *get_DataSource) (Recordset21 *This, IUnknown **ppunkDataSource);
2620     HRESULT (STDMETHODCALLTYPE *putref_DataSource) (Recordset21 *This, IUnknown *punkDataSource);
2621     HRESULT (STDMETHODCALLTYPE *_xSave) (Recordset21 *This, BSTR FileName, PersistFormatEnum PersistFormat);
2622     HRESULT (STDMETHODCALLTYPE *get_ActiveCommand) (Recordset21 *This, IDispatch **ppCmd);
2623     HRESULT (STDMETHODCALLTYPE *put_StayInSync) (Recordset21 *This, VARIANT_BOOL bStayInSync);
2624     HRESULT (STDMETHODCALLTYPE *get_StayInSync) (Recordset21 *This, VARIANT_BOOL *pbStayInSync);
2625     HRESULT (STDMETHODCALLTYPE *GetString) (Recordset21 *This, StringFormatEnum StringFormat, long NumRows, BSTR ColumnDelimeter, BSTR RowDelimeter, BSTR NullExpr, BSTR *pRetString);
2626     HRESULT (STDMETHODCALLTYPE *get_DataMember) (Recordset21 *This, BSTR *pbstrDataMember);
2627     HRESULT (STDMETHODCALLTYPE *put_DataMember) (Recordset21 *This, BSTR bstrDataMember);
2628     HRESULT (STDMETHODCALLTYPE *CompareBookmarks) (Recordset21 *This, VARIANT Bookmark1, VARIANT Bookmark2, CompareEnum *pCompare);
2629     HRESULT (STDMETHODCALLTYPE *Clone) (Recordset21 *This, LockTypeEnum LockType, _ADORecordset **ppvObject);
2630     HRESULT (STDMETHODCALLTYPE *Resync) (Recordset21 *This, AffectEnum AffectRecords, ResyncEnum ResyncValues);
2631     HRESULT (STDMETHODCALLTYPE *Seek) (Recordset21 *This, VARIANT KeyValues, SeekEnum SeekOption);
2632     HRESULT (STDMETHODCALLTYPE *put_Index) (Recordset21 *This, BSTR Index);
2633     HRESULT (STDMETHODCALLTYPE *get_Index) (Recordset21 *This, BSTR *pbstrIndex);
2634     END_INTERFACE
2635   } Recordset21Vtbl;
2636   interface Recordset21 {
2637     CONST_VTBL struct Recordset21Vtbl *lpVtbl;
2638   };
2639 #ifdef COBJMACROS
2640 #define Recordset21_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
2641 #define Recordset21_AddRef(This) ((This)->lpVtbl ->AddRef (This))
2642 #define Recordset21_Release(This) ((This)->lpVtbl ->Release (This))
2643 #define Recordset21_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
2644 #define Recordset21_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
2645 #define Recordset21_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
2646 #define Recordset21_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
2647 #define Recordset21_get_Properties(This, ppvObject) ((This)->lpVtbl ->get_Properties (This, ppvObject))
2648 #define Recordset21_get_AbsolutePosition(This, pl) ((This)->lpVtbl ->get_AbsolutePosition (This, pl))
2649 #define Recordset21_put_AbsolutePosition(This, Position) ((This)->lpVtbl ->put_AbsolutePosition (This, Position))
2650 #define Recordset21_putref_ActiveConnection(This, pconn) ((This)->lpVtbl ->putref_ActiveConnection (This, pconn))
2651 #define Recordset21_put_ActiveConnection(This, vConn) ((This)->lpVtbl ->put_ActiveConnection (This, vConn))
2652 #define Recordset21_get_ActiveConnection(This, pvar) ((This)->lpVtbl ->get_ActiveConnection (This, pvar))
2653 #define Recordset21_get_BOF(This, pb) ((This)->lpVtbl ->get_BOF (This, pb))
2654 #define Recordset21_get_Bookmark(This, pvBookmark) ((This)->lpVtbl ->get_Bookmark (This, pvBookmark))
2655 #define Recordset21_put_Bookmark(This, vBookmark) ((This)->lpVtbl ->put_Bookmark (This, vBookmark))
2656 #define Recordset21_get_CacheSize(This, pl) ((This)->lpVtbl ->get_CacheSize (This, pl))
2657 #define Recordset21_put_CacheSize(This, CacheSize) ((This)->lpVtbl ->put_CacheSize (This, CacheSize))
2658 #define Recordset21_get_CursorType(This, plCursorType) ((This)->lpVtbl ->get_CursorType (This, plCursorType))
2659 #define Recordset21_put_CursorType(This, lCursorType) ((This)->lpVtbl ->put_CursorType (This, lCursorType))
2660 #define Recordset21_get_EOF(This, pb) ((This)->lpVtbl ->get_EOF (This, pb))
2661 #define Recordset21_get_Fields(This, ppvObject) ((This)->lpVtbl ->get_Fields (This, ppvObject))
2662 #define Recordset21_get_LockType(This, plLockType) ((This)->lpVtbl ->get_LockType (This, plLockType))
2663 #define Recordset21_put_LockType(This, lLockType) ((This)->lpVtbl ->put_LockType (This, lLockType))
2664 #define Recordset21_get_MaxRecords(This, plMaxRecords) ((This)->lpVtbl ->get_MaxRecords (This, plMaxRecords))
2665 #define Recordset21_put_MaxRecords(This, lMaxRecords) ((This)->lpVtbl ->put_MaxRecords (This, lMaxRecords))
2666 #define Recordset21_get_RecordCount(This, pl) ((This)->lpVtbl ->get_RecordCount (This, pl))
2667 #define Recordset21_putref_Source(This, pcmd) ((This)->lpVtbl ->putref_Source (This, pcmd))
2668 #define Recordset21_put_Source(This, bstrConn) ((This)->lpVtbl ->put_Source (This, bstrConn))
2669 #define Recordset21_get_Source(This, pvSource) ((This)->lpVtbl ->get_Source (This, pvSource))
2670 #define Recordset21_AddNew(This, FieldList, Values) ((This)->lpVtbl ->AddNew (This, FieldList, Values))
2671 #define Recordset21_CancelUpdate(This) ((This)->lpVtbl ->CancelUpdate (This))
2672 #define Recordset21_Close(This) ((This)->lpVtbl ->Close (This))
2673 #define Recordset21_Delete(This, AffectRecords) ((This)->lpVtbl ->Delete (This, AffectRecords))
2674 #define Recordset21_GetRows(This, Rows, Start, Fields, pvar) ((This)->lpVtbl ->GetRows (This, Rows, Start, Fields, pvar))
2675 #define Recordset21_Move(This, NumRecords, Start) ((This)->lpVtbl ->Move (This, NumRecords, Start))
2676 #define Recordset21_MoveNext(This) ((This)->lpVtbl ->MoveNext (This))
2677 #define Recordset21_MovePrevious(This) ((This)->lpVtbl ->MovePrevious (This))
2678 #define Recordset21_MoveFirst(This) ((This)->lpVtbl ->MoveFirst (This))
2679 #define Recordset21_MoveLast(This) ((This)->lpVtbl ->MoveLast (This))
2680 #define Recordset21_Open(This, Source, ActiveConnection, CursorType, LockType, Options) ((This)->lpVtbl ->Open (This, Source, ActiveConnection, CursorType, LockType, Options))
2681 #define Recordset21_Requery(This, Options) ((This)->lpVtbl ->Requery (This, Options))
2682 #define Recordset21__xResync(This, AffectRecords) ((This)->lpVtbl ->_xResync (This, AffectRecords))
2683 #define Recordset21_Update(This, Fields, Values) ((This)->lpVtbl ->Update (This, Fields, Values))
2684 #define Recordset21_get_AbsolutePage(This, pl) ((This)->lpVtbl ->get_AbsolutePage (This, pl))
2685 #define Recordset21_put_AbsolutePage(This, Page) ((This)->lpVtbl ->put_AbsolutePage (This, Page))
2686 #define Recordset21_get_EditMode(This, pl) ((This)->lpVtbl ->get_EditMode (This, pl))
2687 #define Recordset21_get_Filter(This, Criteria) ((This)->lpVtbl ->get_Filter (This, Criteria))
2688 #define Recordset21_put_Filter(This, Criteria) ((This)->lpVtbl ->put_Filter (This, Criteria))
2689 #define Recordset21_get_PageCount(This, pl) ((This)->lpVtbl ->get_PageCount (This, pl))
2690 #define Recordset21_get_PageSize(This, pl) ((This)->lpVtbl ->get_PageSize (This, pl))
2691 #define Recordset21_put_PageSize(This, PageSize) ((This)->lpVtbl ->put_PageSize (This, PageSize))
2692 #define Recordset21_get_Sort(This, Criteria) ((This)->lpVtbl ->get_Sort (This, Criteria))
2693 #define Recordset21_put_Sort(This, Criteria) ((This)->lpVtbl ->put_Sort (This, Criteria))
2694 #define Recordset21_get_Status(This, pl) ((This)->lpVtbl ->get_Status (This, pl))
2695 #define Recordset21_get_State(This, plObjState) ((This)->lpVtbl ->get_State (This, plObjState))
2696 #define Recordset21__xClone(This, ppvObject) ((This)->lpVtbl ->_xClone (This, ppvObject))
2697 #define Recordset21_UpdateBatch(This, AffectRecords) ((This)->lpVtbl ->UpdateBatch (This, AffectRecords))
2698 #define Recordset21_CancelBatch(This, AffectRecords) ((This)->lpVtbl ->CancelBatch (This, AffectRecords))
2699 #define Recordset21_get_CursorLocation(This, plCursorLoc) ((This)->lpVtbl ->get_CursorLocation (This, plCursorLoc))
2700 #define Recordset21_put_CursorLocation(This, lCursorLoc) ((This)->lpVtbl ->put_CursorLocation (This, lCursorLoc))
2701 #define Recordset21_NextRecordset(This, RecordsAffected, ppiRs) ((This)->lpVtbl ->NextRecordset (This, RecordsAffected, ppiRs))
2702 #define Recordset21_Supports(This, CursorOptions, pb) ((This)->lpVtbl ->Supports (This, CursorOptions, pb))
2703 #define Recordset21_get_Collect(This, Index, pvar) ((This)->lpVtbl ->get_Collect (This, Index, pvar))
2704 #define Recordset21_put_Collect(This, Index, value) ((This)->lpVtbl ->put_Collect (This, Index, value))
2705 #define Recordset21_get_MarshalOptions(This, peMarshal) ((This)->lpVtbl ->get_MarshalOptions (This, peMarshal))
2706 #define Recordset21_put_MarshalOptions(This, eMarshal) ((This)->lpVtbl ->put_MarshalOptions (This, eMarshal))
2707 #define Recordset21_Find(This, Criteria, SkipRecords, SearchDirection, Start) ((This)->lpVtbl ->Find (This, Criteria, SkipRecords, SearchDirection, Start))
2708 #define Recordset21_Cancel(This) ((This)->lpVtbl ->Cancel (This))
2709 #define Recordset21_get_DataSource(This, ppunkDataSource) ((This)->lpVtbl ->get_DataSource (This, ppunkDataSource))
2710 #define Recordset21_putref_DataSource(This, punkDataSource) ((This)->lpVtbl ->putref_DataSource (This, punkDataSource))
2711 #define Recordset21__xSave(This, FileName, PersistFormat) ((This)->lpVtbl ->_xSave (This, FileName, PersistFormat))
2712 #define Recordset21_get_ActiveCommand(This, ppCmd) ((This)->lpVtbl ->get_ActiveCommand (This, ppCmd))
2713 #define Recordset21_put_StayInSync(This, bStayInSync) ((This)->lpVtbl ->put_StayInSync (This, bStayInSync))
2714 #define Recordset21_get_StayInSync(This, pbStayInSync) ((This)->lpVtbl ->get_StayInSync (This, pbStayInSync))
2715 #define Recordset21_GetString(This, StringFormat, NumRows, ColumnDelimeter, RowDelimeter, NullExpr, pRetString) ((This)->lpVtbl ->GetString (This, StringFormat, NumRows, ColumnDelimeter, RowDelimeter, NullExpr, pRetString))
2716 #define Recordset21_get_DataMember(This, pbstrDataMember) ((This)->lpVtbl ->get_DataMember (This, pbstrDataMember))
2717 #define Recordset21_put_DataMember(This, bstrDataMember) ((This)->lpVtbl ->put_DataMember (This, bstrDataMember))
2718 #define Recordset21_CompareBookmarks(This, Bookmark1, Bookmark2, pCompare) ((This)->lpVtbl ->CompareBookmarks (This, Bookmark1, Bookmark2, pCompare))
2719 #define Recordset21_Clone(This, LockType, ppvObject) ((This)->lpVtbl ->Clone (This, LockType, ppvObject))
2720 #define Recordset21_Resync(This, AffectRecords, ResyncValues) ((This)->lpVtbl ->Resync (This, AffectRecords, ResyncValues))
2721 #define Recordset21_Seek(This, KeyValues, SeekOption) ((This)->lpVtbl ->Seek (This, KeyValues, SeekOption))
2722 #define Recordset21_put_Index(This, Index) ((This)->lpVtbl ->put_Index (This, Index))
2723 #define Recordset21_get_Index(This, pbstrIndex) ((This)->lpVtbl ->get_Index (This, pbstrIndex))
2724 #endif
2725 #endif
2726 #endif
2727 #ifndef ___Recordset_INTERFACE_DEFINED__
2728 #define ___Recordset_INTERFACE_DEFINED__
2729 
2730   EXTERN_C const IID IID__Recordset;
2731 #if defined (__cplusplus) && !defined (CINTERFACE)
2732 
2733   MIDL_INTERFACE ("00001556-0000-0010-8000-00AA006D2EA4")
2734   _ADORecordset : public Recordset21 {
2735     public:
2736     virtual HRESULT STDMETHODCALLTYPE Save (VARIANT Destination, PersistFormatEnum PersistFormat = adPersistADTG) = 0;
2737   };
2738 #else
2739   typedef struct _RecordsetVtbl {
2740     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADORecordset *This, REFIID riid, _COM_Outptr_ void **ppvObject);
2741     ULONG (STDMETHODCALLTYPE *AddRef) (_ADORecordset *This);
2742     ULONG (STDMETHODCALLTYPE *Release) (_ADORecordset *This);
2743     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADORecordset *This, UINT *pctinfo);
2744     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADORecordset *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
2745     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADORecordset *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
2746     HRESULT (STDMETHODCALLTYPE *Invoke) (_ADORecordset *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
2747     HRESULT (STDMETHODCALLTYPE *get_Properties) (_ADORecordset *This, ADOProperties **ppvObject);
2748     HRESULT (STDMETHODCALLTYPE *get_AbsolutePosition) (_ADORecordset *This, PositionEnum *pl);
2749     HRESULT (STDMETHODCALLTYPE *put_AbsolutePosition) (_ADORecordset *This, PositionEnum Position);
2750     HRESULT (STDMETHODCALLTYPE *putref_ActiveADOConnection) (_ADORecordset *This, IDispatch *pconn);
2751     HRESULT (STDMETHODCALLTYPE *put_ActiveConnection) (_ADORecordset *This, VARIANT vConn);
2752     HRESULT (STDMETHODCALLTYPE *get_ActiveConnection) (_ADORecordset *This, VARIANT *pvar);
2753     HRESULT (STDMETHODCALLTYPE *get_BOF) (_ADORecordset *This, VARIANT_BOOL *pb);
2754     HRESULT (STDMETHODCALLTYPE *get_Bookmark) (_ADORecordset *This, VARIANT *pvBookmark);
2755     HRESULT (STDMETHODCALLTYPE *put_Bookmark) (_ADORecordset *This, VARIANT vBookmark);
2756     HRESULT (STDMETHODCALLTYPE *get_CacheSize) (_ADORecordset *This, long *pl);
2757     HRESULT (STDMETHODCALLTYPE *put_CacheSize) (_ADORecordset *This, long CacheSize);
2758     HRESULT (STDMETHODCALLTYPE *get_CursorType) (_ADORecordset *This, CursorTypeEnum *plCursorType);
2759     HRESULT (STDMETHODCALLTYPE *put_CursorType) (_ADORecordset *This, CursorTypeEnum lCursorType);
2760     HRESULT (STDMETHODCALLTYPE *get_EOF) (_ADORecordset *This, VARIANT_BOOL *pb);
2761     HRESULT (STDMETHODCALLTYPE *get_Fields) (_ADORecordset *This, ADOFields **ppvObject);
2762     HRESULT (STDMETHODCALLTYPE *get_LockType) (_ADORecordset *This, LockTypeEnum *plLockType);
2763     HRESULT (STDMETHODCALLTYPE *put_LockType) (_ADORecordset *This, LockTypeEnum lLockType);
2764     HRESULT (STDMETHODCALLTYPE *get_MaxRecords) (_ADORecordset *This, long *plMaxRecords);
2765     HRESULT (STDMETHODCALLTYPE *put_MaxRecords) (_ADORecordset *This, long lMaxRecords);
2766     HRESULT (STDMETHODCALLTYPE *get_RecordCount) (_ADORecordset *This, long *pl);
2767     HRESULT (STDMETHODCALLTYPE *putref_Source) (_ADORecordset *This, IDispatch *pcmd);
2768     HRESULT (STDMETHODCALLTYPE *put_Source) (_ADORecordset *This, BSTR bstrConn);
2769     HRESULT (STDMETHODCALLTYPE *get_Source) (_ADORecordset *This, VARIANT *pvSource);
2770     HRESULT (STDMETHODCALLTYPE *AddNew) (_ADORecordset *This, VARIANT FieldList, VARIANT Values);
2771     HRESULT (STDMETHODCALLTYPE *CancelUpdate) (_ADORecordset *This);
2772     HRESULT (STDMETHODCALLTYPE *Close) (_ADORecordset *This);
2773     HRESULT (STDMETHODCALLTYPE *Delete) (_ADORecordset *This, AffectEnum AffectRecords);
2774     HRESULT (STDMETHODCALLTYPE *GetRows) (_ADORecordset *This, long Rows, VARIANT Start, VARIANT Fields, VARIANT *pvar);
2775     HRESULT (STDMETHODCALLTYPE *Move) (_ADORecordset *This, long NumRecords, VARIANT Start);
2776     HRESULT (STDMETHODCALLTYPE *MoveNext) (_ADORecordset *This);
2777     HRESULT (STDMETHODCALLTYPE *MovePrevious) (_ADORecordset *This);
2778     HRESULT (STDMETHODCALLTYPE *MoveFirst) (_ADORecordset *This);
2779     HRESULT (STDMETHODCALLTYPE *MoveLast) (_ADORecordset *This);
2780     HRESULT (STDMETHODCALLTYPE *Open) (_ADORecordset *This, VARIANT Source, VARIANT ActiveConnection, CursorTypeEnum CursorType, LockTypeEnum LockType, LONG Options);
2781     HRESULT (STDMETHODCALLTYPE *Requery) (_ADORecordset *This, LONG Options);
2782     HRESULT (STDMETHODCALLTYPE *_xResync) (_ADORecordset *This, AffectEnum AffectRecords);
2783     HRESULT (STDMETHODCALLTYPE *Update) (_ADORecordset *This, VARIANT Fields, VARIANT Values);
2784     HRESULT (STDMETHODCALLTYPE *get_AbsolutePage) (_ADORecordset *This, PositionEnum *pl);
2785     HRESULT (STDMETHODCALLTYPE *put_AbsolutePage) (_ADORecordset *This, PositionEnum Page);
2786     HRESULT (STDMETHODCALLTYPE *get_EditMode) (_ADORecordset *This, EditModeEnum *pl);
2787     HRESULT (STDMETHODCALLTYPE *get_Filter) (_ADORecordset *This, VARIANT *Criteria);
2788     HRESULT (STDMETHODCALLTYPE *put_Filter) (_ADORecordset *This, VARIANT Criteria);
2789     HRESULT (STDMETHODCALLTYPE *get_PageCount) (_ADORecordset *This, long *pl);
2790     HRESULT (STDMETHODCALLTYPE *get_PageSize) (_ADORecordset *This, long *pl);
2791     HRESULT (STDMETHODCALLTYPE *put_PageSize) (_ADORecordset *This, long PageSize);
2792     HRESULT (STDMETHODCALLTYPE *get_Sort) (_ADORecordset *This, BSTR *Criteria);
2793     HRESULT (STDMETHODCALLTYPE *put_Sort) (_ADORecordset *This, BSTR Criteria);
2794     HRESULT (STDMETHODCALLTYPE *get_Status) (_ADORecordset *This, long *pl);
2795     HRESULT (STDMETHODCALLTYPE *get_State) (_ADORecordset *This, LONG *plObjState);
2796     HRESULT (STDMETHODCALLTYPE *_xClone) (_ADORecordset *This, _ADORecordset **ppvObject);
2797     HRESULT (STDMETHODCALLTYPE *UpdateBatch) (_ADORecordset *This, AffectEnum AffectRecords);
2798     HRESULT (STDMETHODCALLTYPE *CancelBatch) (_ADORecordset *This, AffectEnum AffectRecords);
2799     HRESULT (STDMETHODCALLTYPE *get_CursorLocation) (_ADORecordset *This, CursorLocationEnum *plCursorLoc);
2800     HRESULT (STDMETHODCALLTYPE *put_CursorLocation) (_ADORecordset *This, CursorLocationEnum lCursorLoc);
2801     HRESULT (STDMETHODCALLTYPE *NextADORecordset) (_ADORecordset *This, VARIANT *RecordsAffected, _ADORecordset **ppiRs);
2802     HRESULT (STDMETHODCALLTYPE *Supports) (_ADORecordset *This, CursorOptionEnum CursorOptions, VARIANT_BOOL *pb);
2803     HRESULT (STDMETHODCALLTYPE *get_Collect) (_ADORecordset *This, VARIANT Index, VARIANT *pvar);
2804     HRESULT (STDMETHODCALLTYPE *put_Collect) (_ADORecordset *This, VARIANT Index, VARIANT value);
2805     HRESULT (STDMETHODCALLTYPE *get_MarshalOptions) (_ADORecordset *This, MarshalOptionsEnum *peMarshal);
2806     HRESULT (STDMETHODCALLTYPE *put_MarshalOptions) (_ADORecordset *This, MarshalOptionsEnum eMarshal);
2807     HRESULT (STDMETHODCALLTYPE *Find) (_ADORecordset *This, BSTR Criteria, long SkipRecords, SearchDirectionEnum SearchDirection, VARIANT Start);
2808     HRESULT (STDMETHODCALLTYPE *Cancel) (_ADORecordset *This);
2809     HRESULT (STDMETHODCALLTYPE *get_DataSource) (_ADORecordset *This, IUnknown **ppunkDataSource);
2810     HRESULT (STDMETHODCALLTYPE *putref_DataSource) (_ADORecordset *This, IUnknown *punkDataSource);
2811     HRESULT (STDMETHODCALLTYPE *_xSave) (_ADORecordset *This, BSTR FileName, PersistFormatEnum PersistFormat);
2812     HRESULT (STDMETHODCALLTYPE *get_ActiveCommand) (_ADORecordset *This, IDispatch **ppCmd);
2813     HRESULT (STDMETHODCALLTYPE *put_StayInSync) (_ADORecordset *This, VARIANT_BOOL bStayInSync);
2814     HRESULT (STDMETHODCALLTYPE *get_StayInSync) (_ADORecordset *This, VARIANT_BOOL *pbStayInSync);
2815     HRESULT (STDMETHODCALLTYPE *GetString) (_ADORecordset *This, StringFormatEnum StringFormat, long NumRows, BSTR ColumnDelimeter, BSTR RowDelimeter, BSTR NullExpr, BSTR *pRetString);
2816     HRESULT (STDMETHODCALLTYPE *get_DataMember) (_ADORecordset *This, BSTR *pbstrDataMember);
2817     HRESULT (STDMETHODCALLTYPE *put_DataMember) (_ADORecordset *This, BSTR bstrDataMember);
2818     HRESULT (STDMETHODCALLTYPE *CompareBookmarks) (_ADORecordset *This, VARIANT Bookmark1, VARIANT Bookmark2, CompareEnum *pCompare);
2819     HRESULT (STDMETHODCALLTYPE *Clone) (_ADORecordset *This, LockTypeEnum LockType, _ADORecordset **ppvObject);
2820     HRESULT (STDMETHODCALLTYPE *Resync) (_ADORecordset *This, AffectEnum AffectRecords, ResyncEnum ResyncValues);
2821     HRESULT (STDMETHODCALLTYPE *Seek) (_ADORecordset *This, VARIANT KeyValues, SeekEnum SeekOption);
2822     HRESULT (STDMETHODCALLTYPE *put_Index) (_ADORecordset *This, BSTR Index);
2823     HRESULT (STDMETHODCALLTYPE *get_Index) (_ADORecordset *This, BSTR *pbstrIndex);
2824     HRESULT (STDMETHODCALLTYPE *Save) (_ADORecordset *This, VARIANT Destination, PersistFormatEnum PersistFormat);
2825     END_INTERFACE
2826   } _RecordsetVtbl;
2827   interface _Recordset {
2828     CONST_VTBL struct _RecordsetVtbl *lpVtbl;
2829   };
2830 #ifdef COBJMACROS
2831 #define _Recordset_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
2832 #define _Recordset_AddRef(This) ((This)->lpVtbl ->AddRef (This))
2833 #define _Recordset_Release(This) ((This)->lpVtbl ->Release (This))
2834 #define _Recordset_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
2835 #define _Recordset_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
2836 #define _Recordset_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
2837 #define _Recordset_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
2838 #define _Recordset_get_Properties(This, ppvObject) ((This)->lpVtbl ->get_Properties (This, ppvObject))
2839 #define _Recordset_get_AbsolutePosition(This, pl) ((This)->lpVtbl ->get_AbsolutePosition (This, pl))
2840 #define _Recordset_put_AbsolutePosition(This, Position) ((This)->lpVtbl ->put_AbsolutePosition (This, Position))
2841 #define _Recordset_putref_ActiveConnection(This, pconn) ((This)->lpVtbl ->putref_ActiveConnection (This, pconn))
2842 #define _Recordset_put_ActiveConnection(This, vConn) ((This)->lpVtbl ->put_ActiveConnection (This, vConn))
2843 #define _Recordset_get_ActiveConnection(This, pvar) ((This)->lpVtbl ->get_ActiveConnection (This, pvar))
2844 #define _Recordset_get_BOF(This, pb) ((This)->lpVtbl ->get_BOF (This, pb))
2845 #define _Recordset_get_Bookmark(This, pvBookmark) ((This)->lpVtbl ->get_Bookmark (This, pvBookmark))
2846 #define _Recordset_put_Bookmark(This, vBookmark) ((This)->lpVtbl ->put_Bookmark (This, vBookmark))
2847 #define _Recordset_get_CacheSize(This, pl) ((This)->lpVtbl ->get_CacheSize (This, pl))
2848 #define _Recordset_put_CacheSize(This, CacheSize) ((This)->lpVtbl ->put_CacheSize (This, CacheSize))
2849 #define _Recordset_get_CursorType(This, plCursorType) ((This)->lpVtbl ->get_CursorType (This, plCursorType))
2850 #define _Recordset_put_CursorType(This, lCursorType) ((This)->lpVtbl ->put_CursorType (This, lCursorType))
2851 #define _Recordset_get_EOF(This, pb) ((This)->lpVtbl ->get_EOF (This, pb))
2852 #define _Recordset_get_Fields(This, ppvObject) ((This)->lpVtbl ->get_Fields (This, ppvObject))
2853 #define _Recordset_get_LockType(This, plLockType) ((This)->lpVtbl ->get_LockType (This, plLockType))
2854 #define _Recordset_put_LockType(This, lLockType) ((This)->lpVtbl ->put_LockType (This, lLockType))
2855 #define _Recordset_get_MaxRecords(This, plMaxRecords) ((This)->lpVtbl ->get_MaxRecords (This, plMaxRecords))
2856 #define _Recordset_put_MaxRecords(This, lMaxRecords) ((This)->lpVtbl ->put_MaxRecords (This, lMaxRecords))
2857 #define _Recordset_get_RecordCount(This, pl) ((This)->lpVtbl ->get_RecordCount (This, pl))
2858 #define _Recordset_putref_Source(This, pcmd) ((This)->lpVtbl ->putref_Source (This, pcmd))
2859 #define _Recordset_put_Source(This, bstrConn) ((This)->lpVtbl ->put_Source (This, bstrConn))
2860 #define _Recordset_get_Source(This, pvSource) ((This)->lpVtbl ->get_Source (This, pvSource))
2861 #define _Recordset_AddNew(This, FieldList, Values) ((This)->lpVtbl ->AddNew (This, FieldList, Values))
2862 #define _Recordset_CancelUpdate(This) ((This)->lpVtbl ->CancelUpdate (This))
2863 #define _Recordset_Close(This) ((This)->lpVtbl ->Close (This))
2864 #define _Recordset_Delete(This, AffectRecords) ((This)->lpVtbl ->Delete (This, AffectRecords))
2865 #define _Recordset_GetRows(This, Rows, Start, Fields, pvar) ((This)->lpVtbl ->GetRows (This, Rows, Start, Fields, pvar))
2866 #define _Recordset_Move(This, NumRecords, Start) ((This)->lpVtbl ->Move (This, NumRecords, Start))
2867 #define _Recordset_MoveNext(This) ((This)->lpVtbl ->MoveNext (This))
2868 #define _Recordset_MovePrevious(This) ((This)->lpVtbl ->MovePrevious (This))
2869 #define _Recordset_MoveFirst(This) ((This)->lpVtbl ->MoveFirst (This))
2870 #define _Recordset_MoveLast(This) ((This)->lpVtbl ->MoveLast (This))
2871 #define _Recordset_Open(This, Source, ActiveConnection, CursorType, LockType, Options) ((This)->lpVtbl ->Open (This, Source, ActiveConnection, CursorType, LockType, Options))
2872 #define _Recordset_Requery(This, Options) ((This)->lpVtbl ->Requery (This, Options))
2873 #define _Recordset__xResync(This, AffectRecords) ((This)->lpVtbl ->_xResync (This, AffectRecords))
2874 #define _Recordset_Update(This, Fields, Values) ((This)->lpVtbl ->Update (This, Fields, Values))
2875 #define _Recordset_get_AbsolutePage(This, pl) ((This)->lpVtbl ->get_AbsolutePage (This, pl))
2876 #define _Recordset_put_AbsolutePage(This, Page) ((This)->lpVtbl ->put_AbsolutePage (This, Page))
2877 #define _Recordset_get_EditMode(This, pl) ((This)->lpVtbl ->get_EditMode (This, pl))
2878 #define _Recordset_get_Filter(This, Criteria) ((This)->lpVtbl ->get_Filter (This, Criteria))
2879 #define _Recordset_put_Filter(This, Criteria) ((This)->lpVtbl ->put_Filter (This, Criteria))
2880 #define _Recordset_get_PageCount(This, pl) ((This)->lpVtbl ->get_PageCount (This, pl))
2881 #define _Recordset_get_PageSize(This, pl) ((This)->lpVtbl ->get_PageSize (This, pl))
2882 #define _Recordset_put_PageSize(This, PageSize) ((This)->lpVtbl ->put_PageSize (This, PageSize))
2883 #define _Recordset_get_Sort(This, Criteria) ((This)->lpVtbl ->get_Sort (This, Criteria))
2884 #define _Recordset_put_Sort(This, Criteria) ((This)->lpVtbl ->put_Sort (This, Criteria))
2885 #define _Recordset_get_Status(This, pl) ((This)->lpVtbl ->get_Status (This, pl))
2886 #define _Recordset_get_State(This, plObjState) ((This)->lpVtbl ->get_State (This, plObjState))
2887 #define _Recordset__xClone(This, ppvObject) ((This)->lpVtbl ->_xClone (This, ppvObject))
2888 #define _Recordset_UpdateBatch(This, AffectRecords) ((This)->lpVtbl ->UpdateBatch (This, AffectRecords))
2889 #define _Recordset_CancelBatch(This, AffectRecords) ((This)->lpVtbl ->CancelBatch (This, AffectRecords))
2890 #define _Recordset_get_CursorLocation(This, plCursorLoc) ((This)->lpVtbl ->get_CursorLocation (This, plCursorLoc))
2891 #define _Recordset_put_CursorLocation(This, lCursorLoc) ((This)->lpVtbl ->put_CursorLocation (This, lCursorLoc))
2892 #define _Recordset_NextRecordset(This, RecordsAffected, ppiRs) ((This)->lpVtbl ->NextRecordset (This, RecordsAffected, ppiRs))
2893 #define _Recordset_Supports(This, CursorOptions, pb) ((This)->lpVtbl ->Supports (This, CursorOptions, pb))
2894 #define _Recordset_get_Collect(This, Index, pvar) ((This)->lpVtbl ->get_Collect (This, Index, pvar))
2895 #define _Recordset_put_Collect(This, Index, value) ((This)->lpVtbl ->put_Collect (This, Index, value))
2896 #define _Recordset_get_MarshalOptions(This, peMarshal) ((This)->lpVtbl ->get_MarshalOptions (This, peMarshal))
2897 #define _Recordset_put_MarshalOptions(This, eMarshal) ((This)->lpVtbl ->put_MarshalOptions (This, eMarshal))
2898 #define _Recordset_Find(This, Criteria, SkipRecords, SearchDirection, Start) ((This)->lpVtbl ->Find (This, Criteria, SkipRecords, SearchDirection, Start))
2899 #define _Recordset_Cancel(This) ((This)->lpVtbl ->Cancel (This))
2900 #define _Recordset_get_DataSource(This, ppunkDataSource) ((This)->lpVtbl ->get_DataSource (This, ppunkDataSource))
2901 #define _Recordset_putref_DataSource(This, punkDataSource) ((This)->lpVtbl ->putref_DataSource (This, punkDataSource))
2902 #define _Recordset__xSave(This, FileName, PersistFormat) ((This)->lpVtbl ->_xSave (This, FileName, PersistFormat))
2903 #define _Recordset_get_ActiveCommand(This, ppCmd) ((This)->lpVtbl ->get_ActiveCommand (This, ppCmd))
2904 #define _Recordset_put_StayInSync(This, bStayInSync) ((This)->lpVtbl ->put_StayInSync (This, bStayInSync))
2905 #define _Recordset_get_StayInSync(This, pbStayInSync) ((This)->lpVtbl ->get_StayInSync (This, pbStayInSync))
2906 #define _Recordset_GetString(This, StringFormat, NumRows, ColumnDelimeter, RowDelimeter, NullExpr, pRetString) ((This)->lpVtbl ->GetString (This, StringFormat, NumRows, ColumnDelimeter, RowDelimeter, NullExpr, pRetString))
2907 #define _Recordset_get_DataMember(This, pbstrDataMember) ((This)->lpVtbl ->get_DataMember (This, pbstrDataMember))
2908 #define _Recordset_put_DataMember(This, bstrDataMember) ((This)->lpVtbl ->put_DataMember (This, bstrDataMember))
2909 #define _Recordset_CompareBookmarks(This, Bookmark1, Bookmark2, pCompare) ((This)->lpVtbl ->CompareBookmarks (This, Bookmark1, Bookmark2, pCompare))
2910 #define _Recordset_Clone(This, LockType, ppvObject) ((This)->lpVtbl ->Clone (This, LockType, ppvObject))
2911 #define _Recordset_Resync(This, AffectRecords, ResyncValues) ((This)->lpVtbl ->Resync (This, AffectRecords, ResyncValues))
2912 #define _Recordset_Seek(This, KeyValues, SeekOption) ((This)->lpVtbl ->Seek (This, KeyValues, SeekOption))
2913 #define _Recordset_put_Index(This, Index) ((This)->lpVtbl ->put_Index (This, Index))
2914 #define _Recordset_get_Index(This, pbstrIndex) ((This)->lpVtbl ->get_Index (This, pbstrIndex))
2915 #define _Recordset_Save(This, Destination, PersistFormat) ((This)->lpVtbl ->Save (This, Destination, PersistFormat))
2916 #endif
2917 #endif
2918 #endif
2919 #ifndef __ADORecordsetConstruction_INTERFACE_DEFINED__
2920 #define __ADORecordsetConstruction_INTERFACE_DEFINED__
2921 
2922   EXTERN_C const IID IID_ADORecordsetConstruction;
2923 #if defined (__cplusplus) && !defined (CINTERFACE)
2924 
2925   MIDL_INTERFACE ("00000283-0000-0010-8000-00AA006D2EA4")
2926   ADORecordsetConstruction : public IDispatch {
2927     public:
2928     virtual HRESULT STDMETHODCALLTYPE get_Rowset (IUnknown **ppRowset) = 0;
2929     virtual HRESULT STDMETHODCALLTYPE put_Rowset (IUnknown *pRowset) = 0;
2930     virtual HRESULT STDMETHODCALLTYPE get_Chapter (ADO_LONGPTR *plChapter) = 0;
2931     virtual HRESULT STDMETHODCALLTYPE put_Chapter (ADO_LONGPTR lChapter) = 0;
2932     virtual HRESULT STDMETHODCALLTYPE get_RowPosition (IUnknown **ppRowPos) = 0;
2933     virtual HRESULT STDMETHODCALLTYPE put_RowPosition (IUnknown *pRowPos) = 0;
2934   };
2935 #else
2936   typedef struct ADORecordsetConstructionVtbl {
2937     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADORecordsetConstruction *This, REFIID riid, _COM_Outptr_ void **ppvObject);
2938     ULONG (STDMETHODCALLTYPE *AddRef) (ADORecordsetConstruction *This);
2939     ULONG (STDMETHODCALLTYPE *Release) (ADORecordsetConstruction *This);
2940     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADORecordsetConstruction *This, UINT *pctinfo);
2941     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADORecordsetConstruction *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
2942     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADORecordsetConstruction *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
2943     HRESULT (STDMETHODCALLTYPE *Invoke) (ADORecordsetConstruction *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
2944     HRESULT (STDMETHODCALLTYPE *get_Rowset) (ADORecordsetConstruction *This, IUnknown **ppRowset);
2945     HRESULT (STDMETHODCALLTYPE *put_Rowset) (ADORecordsetConstruction *This, IUnknown *pRowset);
2946     HRESULT (STDMETHODCALLTYPE *get_Chapter) (ADORecordsetConstruction *This, ADO_LONGPTR *plChapter);
2947     HRESULT (STDMETHODCALLTYPE *put_Chapter) (ADORecordsetConstruction *This, ADO_LONGPTR lChapter);
2948     HRESULT (STDMETHODCALLTYPE *get_RowPosition) (ADORecordsetConstruction *This, IUnknown **ppRowPos);
2949     HRESULT (STDMETHODCALLTYPE *put_RowPosition) (ADORecordsetConstruction *This, IUnknown *pRowPos);
2950     END_INTERFACE
2951   } ADORecordsetConstructionVtbl;
2952   interface ADORecordsetConstruction {
2953     CONST_VTBL struct ADORecordsetConstructionVtbl *lpVtbl;
2954   };
2955 #ifdef COBJMACROS
2956 #define ADORecordsetConstruction_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
2957 #define ADORecordsetConstruction_AddRef(This) ((This)->lpVtbl ->AddRef (This))
2958 #define ADORecordsetConstruction_Release(This) ((This)->lpVtbl ->Release (This))
2959 #define ADORecordsetConstruction_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
2960 #define ADORecordsetConstruction_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
2961 #define ADORecordsetConstruction_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
2962 #define ADORecordsetConstruction_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
2963 #define ADORecordsetConstruction_get_Rowset(This, ppRowset) ((This)->lpVtbl ->get_Rowset (This, ppRowset))
2964 #define ADORecordsetConstruction_put_Rowset(This, pRowset) ((This)->lpVtbl ->put_Rowset (This, pRowset))
2965 #define ADORecordsetConstruction_get_Chapter(This, plChapter) ((This)->lpVtbl ->get_Chapter (This, plChapter))
2966 #define ADORecordsetConstruction_put_Chapter(This, lChapter) ((This)->lpVtbl ->put_Chapter (This, lChapter))
2967 #define ADORecordsetConstruction_get_RowPosition(This, ppRowPos) ((This)->lpVtbl ->get_RowPosition (This, ppRowPos))
2968 #define ADORecordsetConstruction_put_RowPosition(This, pRowPos) ((This)->lpVtbl ->put_RowPosition (This, pRowPos))
2969 #endif
2970 #endif
2971 #endif
2972 #ifndef __Field15_INTERFACE_DEFINED__
2973 #define __Field15_INTERFACE_DEFINED__
2974 
2975   EXTERN_C const IID IID_Field15;
2976 #if defined (__cplusplus) && !defined (CINTERFACE)
2977 
2978   MIDL_INTERFACE ("00001505-0000-0010-8000-00AA006D2EA4")
2979   Field15 : public _ADO {
2980     public:
2981     virtual HRESULT STDMETHODCALLTYPE get_ActualSize (long *pl) = 0;
2982     virtual HRESULT STDMETHODCALLTYPE get_Attributes (long *pl) = 0;
2983     virtual HRESULT STDMETHODCALLTYPE get_DefinedSize (long *pl) = 0;
2984     virtual HRESULT STDMETHODCALLTYPE get_Name (BSTR *pbstr) = 0;
2985     virtual HRESULT STDMETHODCALLTYPE get_Type (DataTypeEnum *pDataType) = 0;
2986     virtual HRESULT STDMETHODCALLTYPE get_Value (VARIANT *pvar) = 0;
2987     virtual HRESULT STDMETHODCALLTYPE put_Value (VARIANT Val) = 0;
2988     virtual HRESULT STDMETHODCALLTYPE get_Precision (BYTE *pbPrecision) = 0;
2989     virtual HRESULT STDMETHODCALLTYPE get_NumericScale (BYTE *pbNumericScale) = 0;
2990     virtual HRESULT STDMETHODCALLTYPE AppendChunk (VARIANT Data) = 0;
2991     virtual HRESULT STDMETHODCALLTYPE GetChunk (long Length, VARIANT *pvar) = 0;
2992     virtual HRESULT STDMETHODCALLTYPE get_OriginalValue (VARIANT *pvar) = 0;
2993     virtual HRESULT STDMETHODCALLTYPE get_UnderlyingValue (VARIANT *pvar) = 0;
2994   };
2995 #else
2996   typedef struct Field15Vtbl {
2997     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (Field15 *This, REFIID riid, _COM_Outptr_ void **ppvObject);
2998     ULONG (STDMETHODCALLTYPE *AddRef) (Field15 *This);
2999     ULONG (STDMETHODCALLTYPE *Release) (Field15 *This);
3000     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (Field15 *This, UINT *pctinfo);
3001     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (Field15 *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
3002     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (Field15 *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
3003     HRESULT (STDMETHODCALLTYPE *Invoke) (Field15 *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
3004     HRESULT (STDMETHODCALLTYPE *get_Properties) (Field15 *This, ADOProperties **ppvObject);
3005     HRESULT (STDMETHODCALLTYPE *get_ActualSize) (Field15 *This, long *pl);
3006     HRESULT (STDMETHODCALLTYPE *get_Attributes) (Field15 *This, long *pl);
3007     HRESULT (STDMETHODCALLTYPE *get_DefinedSize) (Field15 *This, long *pl);
3008     HRESULT (STDMETHODCALLTYPE *get_Name) (Field15 *This, BSTR *pbstr);
3009     HRESULT (STDMETHODCALLTYPE *get_Type) (Field15 *This, DataTypeEnum *pDataType);
3010     HRESULT (STDMETHODCALLTYPE *get_Value) (Field15 *This, VARIANT *pvar);
3011     HRESULT (STDMETHODCALLTYPE *put_Value) (Field15 *This, VARIANT Val);
3012     HRESULT (STDMETHODCALLTYPE *get_Precision) (Field15 *This, BYTE *pbPrecision);
3013     HRESULT (STDMETHODCALLTYPE *get_NumericScale) (Field15 *This, BYTE *pbNumericScale);
3014     HRESULT (STDMETHODCALLTYPE *AppendChunk) (Field15 *This, VARIANT Data);
3015     HRESULT (STDMETHODCALLTYPE *GetChunk) (Field15 *This, long Length, VARIANT *pvar);
3016     HRESULT (STDMETHODCALLTYPE *get_OriginalValue) (Field15 *This, VARIANT *pvar);
3017     HRESULT (STDMETHODCALLTYPE *get_UnderlyingValue) (Field15 *This, VARIANT *pvar);
3018     END_INTERFACE
3019   } Field15Vtbl;
3020   interface Field15 {
3021     CONST_VTBL struct Field15Vtbl *lpVtbl;
3022   };
3023 #ifdef COBJMACROS
3024 #define Field15_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
3025 #define Field15_AddRef(This) ((This)->lpVtbl ->AddRef (This))
3026 #define Field15_Release(This) ((This)->lpVtbl ->Release (This))
3027 #define Field15_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
3028 #define Field15_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
3029 #define Field15_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
3030 #define Field15_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
3031 #define Field15_get_Properties(This, ppvObject) ((This)->lpVtbl ->get_Properties (This, ppvObject))
3032 #define Field15_get_ActualSize(This, pl) ((This)->lpVtbl ->get_ActualSize (This, pl))
3033 #define Field15_get_Attributes(This, pl) ((This)->lpVtbl ->get_Attributes (This, pl))
3034 #define Field15_get_DefinedSize(This, pl) ((This)->lpVtbl ->get_DefinedSize (This, pl))
3035 #define Field15_get_Name(This, pbstr) ((This)->lpVtbl ->get_Name (This, pbstr))
3036 #define Field15_get_Type(This, pDataType) ((This)->lpVtbl ->get_Type (This, pDataType))
3037 #define Field15_get_Value(This, pvar) ((This)->lpVtbl ->get_Value (This, pvar))
3038 #define Field15_put_Value(This, Val) ((This)->lpVtbl ->put_Value (This, Val))
3039 #define Field15_get_Precision(This, pbPrecision) ((This)->lpVtbl ->get_Precision (This, pbPrecision))
3040 #define Field15_get_NumericScale(This, pbNumericScale) ((This)->lpVtbl ->get_NumericScale (This, pbNumericScale))
3041 #define Field15_AppendChunk(This, Data) ((This)->lpVtbl ->AppendChunk (This, Data))
3042 #define Field15_GetChunk(This, Length, pvar) ((This)->lpVtbl ->GetChunk (This, Length, pvar))
3043 #define Field15_get_OriginalValue(This, pvar) ((This)->lpVtbl ->get_OriginalValue (This, pvar))
3044 #define Field15_get_UnderlyingValue(This, pvar) ((This)->lpVtbl ->get_UnderlyingValue (This, pvar))
3045 #endif
3046 #endif
3047 #endif
3048 #ifndef __Field20_INTERFACE_DEFINED__
3049 #define __Field20_INTERFACE_DEFINED__
3050 
3051   EXTERN_C const IID IID_Field20;
3052 #if defined (__cplusplus) && !defined (CINTERFACE)
3053 
3054   MIDL_INTERFACE ("0000154C-0000-0010-8000-00AA006D2EA4")
3055   Field20 : public _ADO {
3056     public:
3057     virtual HRESULT STDMETHODCALLTYPE get_ActualSize (long *pl) = 0;
3058     virtual HRESULT STDMETHODCALLTYPE get_Attributes (long *pl) = 0;
3059     virtual HRESULT STDMETHODCALLTYPE get_DefinedSize (long *pl) = 0;
3060     virtual HRESULT STDMETHODCALLTYPE get_Name (BSTR *pbstr) = 0;
3061     virtual HRESULT STDMETHODCALLTYPE get_Type (DataTypeEnum *pDataType) = 0;
3062     virtual HRESULT STDMETHODCALLTYPE get_Value (VARIANT *pvar) = 0;
3063     virtual HRESULT STDMETHODCALLTYPE put_Value (VARIANT Val) = 0;
3064     virtual HRESULT STDMETHODCALLTYPE get_Precision (BYTE *pbPrecision) = 0;
3065     virtual HRESULT STDMETHODCALLTYPE get_NumericScale (BYTE *pbNumericScale) = 0;
3066     virtual HRESULT STDMETHODCALLTYPE AppendChunk (VARIANT Data) = 0;
3067     virtual HRESULT STDMETHODCALLTYPE GetChunk (long Length, VARIANT *pvar) = 0;
3068     virtual HRESULT STDMETHODCALLTYPE get_OriginalValue (VARIANT *pvar) = 0;
3069     virtual HRESULT STDMETHODCALLTYPE get_UnderlyingValue (VARIANT *pvar) = 0;
3070     virtual HRESULT STDMETHODCALLTYPE get_DataFormat (IUnknown **ppiDF) = 0;
3071     virtual HRESULT STDMETHODCALLTYPE putref_DataFormat (IUnknown *piDF) = 0;
3072     virtual HRESULT STDMETHODCALLTYPE put_Precision (BYTE bPrecision) = 0;
3073     virtual HRESULT STDMETHODCALLTYPE put_NumericScale (BYTE bScale) = 0;
3074     virtual HRESULT STDMETHODCALLTYPE put_Type (DataTypeEnum DataType) = 0;
3075     virtual HRESULT STDMETHODCALLTYPE put_DefinedSize (long lSize) = 0;
3076     virtual HRESULT STDMETHODCALLTYPE put_Attributes (long lAttributes) = 0;
3077   };
3078 #else
3079   typedef struct Field20Vtbl {
3080     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (Field20 *This, REFIID riid, _COM_Outptr_ void **ppvObject);
3081     ULONG (STDMETHODCALLTYPE *AddRef) (Field20 *This);
3082     ULONG (STDMETHODCALLTYPE *Release) (Field20 *This);
3083     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (Field20 *This, UINT *pctinfo);
3084     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (Field20 *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
3085     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (Field20 *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
3086     HRESULT (STDMETHODCALLTYPE *Invoke) (Field20 *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
3087     HRESULT (STDMETHODCALLTYPE *get_Properties) (Field20 *This, ADOProperties **ppvObject);
3088     HRESULT (STDMETHODCALLTYPE *get_ActualSize) (Field20 *This, long *pl);
3089     HRESULT (STDMETHODCALLTYPE *get_Attributes) (Field20 *This, long *pl);
3090     HRESULT (STDMETHODCALLTYPE *get_DefinedSize) (Field20 *This, long *pl);
3091     HRESULT (STDMETHODCALLTYPE *get_Name) (Field20 *This, BSTR *pbstr);
3092     HRESULT (STDMETHODCALLTYPE *get_Type) (Field20 *This, DataTypeEnum *pDataType);
3093     HRESULT (STDMETHODCALLTYPE *get_Value) (Field20 *This, VARIANT *pvar);
3094     HRESULT (STDMETHODCALLTYPE *put_Value) (Field20 *This, VARIANT Val);
3095     HRESULT (STDMETHODCALLTYPE *get_Precision) (Field20 *This, BYTE *pbPrecision);
3096     HRESULT (STDMETHODCALLTYPE *get_NumericScale) (Field20 *This, BYTE *pbNumericScale);
3097     HRESULT (STDMETHODCALLTYPE *AppendChunk) (Field20 *This, VARIANT Data);
3098     HRESULT (STDMETHODCALLTYPE *GetChunk) (Field20 *This, long Length, VARIANT *pvar);
3099     HRESULT (STDMETHODCALLTYPE *get_OriginalValue) (Field20 *This, VARIANT *pvar);
3100     HRESULT (STDMETHODCALLTYPE *get_UnderlyingValue) (Field20 *This, VARIANT *pvar);
3101     HRESULT (STDMETHODCALLTYPE *get_DataFormat) (Field20 *This, IUnknown **ppiDF);
3102     HRESULT (STDMETHODCALLTYPE *putref_DataFormat) (Field20 *This, IUnknown *piDF);
3103     HRESULT (STDMETHODCALLTYPE *put_Precision) (Field20 *This, BYTE bPrecision);
3104     HRESULT (STDMETHODCALLTYPE *put_NumericScale) (Field20 *This, BYTE bScale);
3105     HRESULT (STDMETHODCALLTYPE *put_Type) (Field20 *This, DataTypeEnum DataType);
3106     HRESULT (STDMETHODCALLTYPE *put_DefinedSize) (Field20 *This, long lSize);
3107     HRESULT (STDMETHODCALLTYPE *put_Attributes) (Field20 *This, long lAttributes);
3108     END_INTERFACE
3109   } Field20Vtbl;
3110   interface Field20 {
3111     CONST_VTBL struct Field20Vtbl *lpVtbl;
3112   };
3113 #ifdef COBJMACROS
3114 #define Field20_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
3115 #define Field20_AddRef(This) ((This)->lpVtbl ->AddRef (This))
3116 #define Field20_Release(This) ((This)->lpVtbl ->Release (This))
3117 #define Field20_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
3118 #define Field20_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
3119 #define Field20_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
3120 #define Field20_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
3121 #define Field20_get_Properties(This, ppvObject) ((This)->lpVtbl ->get_Properties (This, ppvObject))
3122 #define Field20_get_ActualSize(This, pl) ((This)->lpVtbl ->get_ActualSize (This, pl))
3123 #define Field20_get_Attributes(This, pl) ((This)->lpVtbl ->get_Attributes (This, pl))
3124 #define Field20_get_DefinedSize(This, pl) ((This)->lpVtbl ->get_DefinedSize (This, pl))
3125 #define Field20_get_Name(This, pbstr) ((This)->lpVtbl ->get_Name (This, pbstr))
3126 #define Field20_get_Type(This, pDataType) ((This)->lpVtbl ->get_Type (This, pDataType))
3127 #define Field20_get_Value(This, pvar) ((This)->lpVtbl ->get_Value (This, pvar))
3128 #define Field20_put_Value(This, Val) ((This)->lpVtbl ->put_Value (This, Val))
3129 #define Field20_get_Precision(This, pbPrecision) ((This)->lpVtbl ->get_Precision (This, pbPrecision))
3130 #define Field20_get_NumericScale(This, pbNumericScale) ((This)->lpVtbl ->get_NumericScale (This, pbNumericScale))
3131 #define Field20_AppendChunk(This, Data) ((This)->lpVtbl ->AppendChunk (This, Data))
3132 #define Field20_GetChunk(This, Length, pvar) ((This)->lpVtbl ->GetChunk (This, Length, pvar))
3133 #define Field20_get_OriginalValue(This, pvar) ((This)->lpVtbl ->get_OriginalValue (This, pvar))
3134 #define Field20_get_UnderlyingValue(This, pvar) ((This)->lpVtbl ->get_UnderlyingValue (This, pvar))
3135 #define Field20_get_DataFormat(This, ppiDF) ((This)->lpVtbl ->get_DataFormat (This, ppiDF))
3136 #define Field20_putref_DataFormat(This, piDF) ((This)->lpVtbl ->putref_DataFormat (This, piDF))
3137 #define Field20_put_Precision(This, bPrecision) ((This)->lpVtbl ->put_Precision (This, bPrecision))
3138 #define Field20_put_NumericScale(This, bScale) ((This)->lpVtbl ->put_NumericScale (This, bScale))
3139 #define Field20_put_Type(This, DataType) ((This)->lpVtbl ->put_Type (This, DataType))
3140 #define Field20_put_DefinedSize(This, lSize) ((This)->lpVtbl ->put_DefinedSize (This, lSize))
3141 #define Field20_put_Attributes(This, lAttributes) ((This)->lpVtbl ->put_Attributes (This, lAttributes))
3142 #endif
3143 #endif
3144 #endif
3145 #ifndef __Field_INTERFACE_DEFINED__
3146 #define __Field_INTERFACE_DEFINED__
3147 
3148   EXTERN_C const IID IID_Field;
3149 #if defined (__cplusplus) && !defined (CINTERFACE)
3150 
3151   MIDL_INTERFACE ("00001569-0000-0010-8000-00AA006D2EA4")
3152   ADOField : public Field20 {
3153     public:
3154     virtual HRESULT STDMETHODCALLTYPE get_Status (long *pFStatus) = 0;
3155   };
3156 #else
3157   typedef struct FieldVtbl {
3158     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOField *This, REFIID riid, _COM_Outptr_ void **ppvObject);
3159     ULONG (STDMETHODCALLTYPE *AddRef) (ADOField *This);
3160     ULONG (STDMETHODCALLTYPE *Release) (ADOField *This);
3161     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOField *This, UINT *pctinfo);
3162     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOField *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
3163     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOField *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
3164     HRESULT (STDMETHODCALLTYPE *Invoke) (ADOField *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
3165     HRESULT (STDMETHODCALLTYPE *get_Properties) (ADOField *This, ADOProperties **ppvObject);
3166     HRESULT (STDMETHODCALLTYPE *get_ActualSize) (ADOField *This, long *pl);
3167     HRESULT (STDMETHODCALLTYPE *get_Attributes) (ADOField *This, long *pl);
3168     HRESULT (STDMETHODCALLTYPE *get_DefinedSize) (ADOField *This, long *pl);
3169     HRESULT (STDMETHODCALLTYPE *get_Name) (ADOField *This, BSTR *pbstr);
3170     HRESULT (STDMETHODCALLTYPE *get_Type) (ADOField *This, DataTypeEnum *pDataType);
3171     HRESULT (STDMETHODCALLTYPE *get_Value) (ADOField *This, VARIANT *pvar);
3172     HRESULT (STDMETHODCALLTYPE *put_Value) (ADOField *This, VARIANT Val);
3173     HRESULT (STDMETHODCALLTYPE *get_Precision) (ADOField *This, BYTE *pbPrecision);
3174     HRESULT (STDMETHODCALLTYPE *get_NumericScale) (ADOField *This, BYTE *pbNumericScale);
3175     HRESULT (STDMETHODCALLTYPE *AppendChunk) (ADOField *This, VARIANT Data);
3176     HRESULT (STDMETHODCALLTYPE *GetChunk) (ADOField *This, long Length, VARIANT *pvar);
3177     HRESULT (STDMETHODCALLTYPE *get_OriginalValue) (ADOField *This, VARIANT *pvar);
3178     HRESULT (STDMETHODCALLTYPE *get_UnderlyingValue) (ADOField *This, VARIANT *pvar);
3179     HRESULT (STDMETHODCALLTYPE *get_DataFormat) (ADOField *This, IUnknown **ppiDF);
3180     HRESULT (STDMETHODCALLTYPE *putref_DataFormat) (ADOField *This, IUnknown *piDF);
3181     HRESULT (STDMETHODCALLTYPE *put_Precision) (ADOField *This, BYTE bPrecision);
3182     HRESULT (STDMETHODCALLTYPE *put_NumericScale) (ADOField *This, BYTE bScale);
3183     HRESULT (STDMETHODCALLTYPE *put_Type) (ADOField *This, DataTypeEnum DataType);
3184     HRESULT (STDMETHODCALLTYPE *put_DefinedSize) (ADOField *This, long lSize);
3185     HRESULT (STDMETHODCALLTYPE *put_Attributes) (ADOField *This, long lAttributes);
3186     HRESULT (STDMETHODCALLTYPE *get_Status) (ADOField *This, long *pFStatus);
3187     END_INTERFACE
3188   } FieldVtbl;
3189   interface Field {
3190     CONST_VTBL struct FieldVtbl *lpVtbl;
3191   };
3192 #ifdef COBJMACROS
3193 #define Field_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
3194 #define Field_AddRef(This) ((This)->lpVtbl ->AddRef (This))
3195 #define Field_Release(This) ((This)->lpVtbl ->Release (This))
3196 #define Field_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
3197 #define Field_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
3198 #define Field_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
3199 #define Field_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
3200 #define Field_get_Properties(This, ppvObject) ((This)->lpVtbl ->get_Properties (This, ppvObject))
3201 #define Field_get_ActualSize(This, pl) ((This)->lpVtbl ->get_ActualSize (This, pl))
3202 #define Field_get_Attributes(This, pl) ((This)->lpVtbl ->get_Attributes (This, pl))
3203 #define Field_get_DefinedSize(This, pl) ((This)->lpVtbl ->get_DefinedSize (This, pl))
3204 #define Field_get_Name(This, pbstr) ((This)->lpVtbl ->get_Name (This, pbstr))
3205 #define Field_get_Type(This, pDataType) ((This)->lpVtbl ->get_Type (This, pDataType))
3206 #define Field_get_Value(This, pvar) ((This)->lpVtbl ->get_Value (This, pvar))
3207 #define Field_put_Value(This, Val) ((This)->lpVtbl ->put_Value (This, Val))
3208 #define Field_get_Precision(This, pbPrecision) ((This)->lpVtbl ->get_Precision (This, pbPrecision))
3209 #define Field_get_NumericScale(This, pbNumericScale) ((This)->lpVtbl ->get_NumericScale (This, pbNumericScale))
3210 #define Field_AppendChunk(This, Data) ((This)->lpVtbl ->AppendChunk (This, Data))
3211 #define Field_GetChunk(This, Length, pvar) ((This)->lpVtbl ->GetChunk (This, Length, pvar))
3212 #define Field_get_OriginalValue(This, pvar) ((This)->lpVtbl ->get_OriginalValue (This, pvar))
3213 #define Field_get_UnderlyingValue(This, pvar) ((This)->lpVtbl ->get_UnderlyingValue (This, pvar))
3214 #define Field_get_DataFormat(This, ppiDF) ((This)->lpVtbl ->get_DataFormat (This, ppiDF))
3215 #define Field_putref_DataFormat(This, piDF) ((This)->lpVtbl ->putref_DataFormat (This, piDF))
3216 #define Field_put_Precision(This, bPrecision) ((This)->lpVtbl ->put_Precision (This, bPrecision))
3217 #define Field_put_NumericScale(This, bScale) ((This)->lpVtbl ->put_NumericScale (This, bScale))
3218 #define Field_put_Type(This, DataType) ((This)->lpVtbl ->put_Type (This, DataType))
3219 #define Field_put_DefinedSize(This, lSize) ((This)->lpVtbl ->put_DefinedSize (This, lSize))
3220 #define Field_put_Attributes(This, lAttributes) ((This)->lpVtbl ->put_Attributes (This, lAttributes))
3221 #define Field_get_Status(This, pFStatus) ((This)->lpVtbl ->get_Status (This, pFStatus))
3222 #endif
3223 #endif
3224 #endif
3225 #ifndef __Fields15_INTERFACE_DEFINED__
3226 #define __Fields15_INTERFACE_DEFINED__
3227 
3228   EXTERN_C const IID IID_Fields15;
3229 #if defined (__cplusplus) && !defined (CINTERFACE)
3230 
3231   MIDL_INTERFACE ("00001506-0000-0010-8000-00AA006D2EA4")
3232   Fields15 : public _ADOCollection {
3233     public:
3234     virtual HRESULT STDMETHODCALLTYPE get_Item (VARIANT Index, ADOField **ppvObject) = 0;
3235   };
3236 #else
3237   typedef struct Fields15Vtbl {
3238     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (Fields15 *This, REFIID riid, _COM_Outptr_ void **ppvObject);
3239     ULONG (STDMETHODCALLTYPE *AddRef) (Fields15 *This);
3240     ULONG (STDMETHODCALLTYPE *Release) (Fields15 *This);
3241     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (Fields15 *This, UINT *pctinfo);
3242     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (Fields15 *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
3243     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (Fields15 *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
3244     HRESULT (STDMETHODCALLTYPE *Invoke) (Fields15 *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
3245     HRESULT (STDMETHODCALLTYPE *get_Count) (Fields15 *This, long *c);
3246     HRESULT (STDMETHODCALLTYPE *_NewEnum) (Fields15 *This, IUnknown **ppvObject);
3247     HRESULT (STDMETHODCALLTYPE *Refresh) (Fields15 *This);
3248     HRESULT (STDMETHODCALLTYPE *get_Item) (Fields15 *This, VARIANT Index, ADOField **ppvObject);
3249     END_INTERFACE
3250   } Fields15Vtbl;
3251   interface Fields15 {
3252     CONST_VTBL struct Fields15Vtbl *lpVtbl;
3253   };
3254 #ifdef COBJMACROS
3255 #define Fields15_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
3256 #define Fields15_AddRef(This) ((This)->lpVtbl ->AddRef (This))
3257 #define Fields15_Release(This) ((This)->lpVtbl ->Release (This))
3258 #define Fields15_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
3259 #define Fields15_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
3260 #define Fields15_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
3261 #define Fields15_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
3262 #define Fields15_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
3263 #define Fields15__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
3264 #define Fields15_Refresh(This) ((This)->lpVtbl ->Refresh (This))
3265 #define Fields15_get_Item(This, Index, ppvObject) ((This)->lpVtbl ->get_Item (This, Index, ppvObject))
3266 #endif
3267 #endif
3268 #endif
3269 #ifndef __Fields20_INTERFACE_DEFINED__
3270 #define __Fields20_INTERFACE_DEFINED__
3271 
3272   EXTERN_C const IID IID_Fields20;
3273 #if defined (__cplusplus) && !defined (CINTERFACE)
3274 
3275   MIDL_INTERFACE ("0000154D-0000-0010-8000-00AA006D2EA4")
3276   Fields20 : public Fields15 {
3277     public:
3278     virtual HRESULT STDMETHODCALLTYPE _Append (BSTR Name, DataTypeEnum Type, long DefinedSize = 0, FieldAttributeEnum Attrib = adFldUnspecified) = 0;
3279     virtual HRESULT STDMETHODCALLTYPE Delete (VARIANT Index) = 0;
3280   };
3281 #else
3282   typedef struct Fields20Vtbl {
3283     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (Fields20 *This, REFIID riid, _COM_Outptr_ void **ppvObject);
3284     ULONG (STDMETHODCALLTYPE *AddRef) (Fields20 *This);
3285     ULONG (STDMETHODCALLTYPE *Release) (Fields20 *This);
3286     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (Fields20 *This, UINT *pctinfo);
3287     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (Fields20 *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
3288     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (Fields20 *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
3289     HRESULT (STDMETHODCALLTYPE *Invoke) (Fields20 *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
3290     HRESULT (STDMETHODCALLTYPE *get_Count) (Fields20 *This, long *c);
3291     HRESULT (STDMETHODCALLTYPE *_NewEnum) (Fields20 *This, IUnknown **ppvObject);
3292     HRESULT (STDMETHODCALLTYPE *Refresh) (Fields20 *This);
3293     HRESULT (STDMETHODCALLTYPE *get_Item) (Fields20 *This, VARIANT Index, ADOField **ppvObject);
3294     HRESULT (STDMETHODCALLTYPE *_Append) (Fields20 *This, BSTR Name, DataTypeEnum Type, long DefinedSize, FieldAttributeEnum Attrib);
3295     HRESULT (STDMETHODCALLTYPE *Delete) (Fields20 *This, VARIANT Index);
3296     END_INTERFACE
3297   } Fields20Vtbl;
3298   interface Fields20 {
3299     CONST_VTBL struct Fields20Vtbl *lpVtbl;
3300   };
3301 #ifdef COBJMACROS
3302 #define Fields20_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
3303 #define Fields20_AddRef(This) ((This)->lpVtbl ->AddRef (This))
3304 #define Fields20_Release(This) ((This)->lpVtbl ->Release (This))
3305 #define Fields20_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
3306 #define Fields20_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
3307 #define Fields20_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
3308 #define Fields20_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
3309 #define Fields20_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
3310 #define Fields20__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
3311 #define Fields20_Refresh(This) ((This)->lpVtbl ->Refresh (This))
3312 #define Fields20_get_Item(This, Index, ppvObject) ((This)->lpVtbl ->get_Item (This, Index, ppvObject))
3313 #define Fields20__Append(This, Name, Type, DefinedSize, Attrib) ((This)->lpVtbl ->_Append (This, Name, Type, DefinedSize, Attrib))
3314 #define Fields20_Delete(This, Index) ((This)->lpVtbl ->Delete (This, Index))
3315 #endif
3316 #endif
3317 #endif
3318 #ifndef __Fields_INTERFACE_DEFINED__
3319 #define __Fields_INTERFACE_DEFINED__
3320 
3321   EXTERN_C const IID IID_Fields;
3322 #if defined (__cplusplus) && !defined (CINTERFACE)
3323 
3324   MIDL_INTERFACE ("00001564-0000-0010-8000-00AA006D2EA4")
3325   ADOFields : public Fields20 {
3326     public:
3327     virtual HRESULT STDMETHODCALLTYPE Append (BSTR Name, DataTypeEnum Type, long DefinedSize, FieldAttributeEnum Attrib, VARIANT FieldValue) = 0;
3328     virtual HRESULT STDMETHODCALLTYPE Update (void) = 0;
3329     virtual HRESULT STDMETHODCALLTYPE Resync (ResyncEnum ResyncValues = adResyncAllValues) = 0;
3330     virtual HRESULT STDMETHODCALLTYPE CancelUpdate (void) = 0;
3331   };
3332 #else
3333   typedef struct FieldsVtbl {
3334     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOFields *This, REFIID riid, _COM_Outptr_ void **ppvObject);
3335     ULONG (STDMETHODCALLTYPE *AddRef) (ADOFields *This);
3336     ULONG (STDMETHODCALLTYPE *Release) (ADOFields *This);
3337     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOFields *This, UINT *pctinfo);
3338     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOFields *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
3339     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOFields *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
3340     HRESULT (STDMETHODCALLTYPE *Invoke) (ADOFields *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
3341     HRESULT (STDMETHODCALLTYPE *get_Count) (ADOFields *This, long *c);
3342     HRESULT (STDMETHODCALLTYPE *_NewEnum) (ADOFields *This, IUnknown **ppvObject);
3343     HRESULT (STDMETHODCALLTYPE *Refresh) (ADOFields *This);
3344     HRESULT (STDMETHODCALLTYPE *get_Item) (ADOFields *This, VARIANT Index, ADOField **ppvObject);
3345     HRESULT (STDMETHODCALLTYPE *_Append) (ADOFields *This, BSTR Name, DataTypeEnum Type, long DefinedSize, FieldAttributeEnum Attrib);
3346     HRESULT (STDMETHODCALLTYPE *Delete) (ADOFields *This, VARIANT Index);
3347     HRESULT (STDMETHODCALLTYPE *Append) (ADOFields *This, BSTR Name, DataTypeEnum Type, long DefinedSize, FieldAttributeEnum Attrib, VARIANT FieldValue);
3348     HRESULT (STDMETHODCALLTYPE *Update) (ADOFields *This);
3349     HRESULT (STDMETHODCALLTYPE *Resync) (ADOFields *This, ResyncEnum ResyncValues);
3350     HRESULT (STDMETHODCALLTYPE *CancelUpdate) (ADOFields *This);
3351     END_INTERFACE
3352   } FieldsVtbl;
3353   interface Fields {
3354     CONST_VTBL struct FieldsVtbl *lpVtbl;
3355   };
3356 #ifdef COBJMACROS
3357 #define Fields_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
3358 #define Fields_AddRef(This) ((This)->lpVtbl ->AddRef (This))
3359 #define Fields_Release(This) ((This)->lpVtbl ->Release (This))
3360 #define Fields_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
3361 #define Fields_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
3362 #define Fields_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
3363 #define Fields_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
3364 #define Fields_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
3365 #define Fields__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
3366 #define Fields_Refresh(This) ((This)->lpVtbl ->Refresh (This))
3367 #define Fields_get_Item(This, Index, ppvObject) ((This)->lpVtbl ->get_Item (This, Index, ppvObject))
3368 #define Fields__Append(This, Name, Type, DefinedSize, Attrib) ((This)->lpVtbl ->_Append (This, Name, Type, DefinedSize, Attrib))
3369 #define Fields_Delete(This, Index) ((This)->lpVtbl ->Delete (This, Index))
3370 #define Fields_Append(This, Name, Type, DefinedSize, Attrib, FieldValue) ((This)->lpVtbl ->Append (This, Name, Type, DefinedSize, Attrib, FieldValue))
3371 #define Fields_Update(This) ((This)->lpVtbl ->Update (This))
3372 #define Fields_Resync(This, ResyncValues) ((This)->lpVtbl ->Resync (This, ResyncValues))
3373 #define Fields_CancelUpdate(This) ((This)->lpVtbl ->CancelUpdate (This))
3374 #endif
3375 #endif
3376 #endif
3377 #ifndef ___Parameter_INTERFACE_DEFINED__
3378 #define ___Parameter_INTERFACE_DEFINED__
3379 
3380   EXTERN_C const IID IID__Parameter;
3381 #if defined (__cplusplus) && !defined (CINTERFACE)
3382 
3383   MIDL_INTERFACE ("0000150C-0000-0010-8000-00AA006D2EA4")
3384   _ADOParameter : public _ADO {
3385     public:
3386     virtual HRESULT STDMETHODCALLTYPE get_Name (BSTR *pbstr) = 0;
3387     virtual HRESULT STDMETHODCALLTYPE put_Name (BSTR bstr) = 0;
3388     virtual HRESULT STDMETHODCALLTYPE get_Value (VARIANT *pvar) = 0;
3389     virtual HRESULT STDMETHODCALLTYPE put_Value (VARIANT val) = 0;
3390     virtual HRESULT STDMETHODCALLTYPE get_Type (DataTypeEnum *psDataType) = 0;
3391     virtual HRESULT STDMETHODCALLTYPE put_Type (DataTypeEnum sDataType) = 0;
3392     virtual HRESULT STDMETHODCALLTYPE put_Direction (ParameterDirectionEnum lParmDirection) = 0;
3393     virtual HRESULT STDMETHODCALLTYPE get_Direction (ParameterDirectionEnum *plParmDirection) = 0;
3394     virtual HRESULT STDMETHODCALLTYPE put_Precision (BYTE bPrecision) = 0;
3395     virtual HRESULT STDMETHODCALLTYPE get_Precision (BYTE *pbPrecision) = 0;
3396     virtual HRESULT STDMETHODCALLTYPE put_NumericScale (BYTE bScale) = 0;
3397     virtual HRESULT STDMETHODCALLTYPE get_NumericScale (BYTE *pbScale) = 0;
3398     virtual HRESULT STDMETHODCALLTYPE put_Size (long l) = 0;
3399     virtual HRESULT STDMETHODCALLTYPE get_Size (long *pl) = 0;
3400     virtual HRESULT STDMETHODCALLTYPE AppendChunk (VARIANT Val) = 0;
3401     virtual HRESULT STDMETHODCALLTYPE get_Attributes (LONG *plParmAttribs) = 0;
3402     virtual HRESULT STDMETHODCALLTYPE put_Attributes (LONG lParmAttribs) = 0;
3403   };
3404 #else
3405   typedef struct _ParameterVtbl {
3406     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (_ADOParameter *This, REFIID riid, _COM_Outptr_ void **ppvObject);
3407     ULONG (STDMETHODCALLTYPE *AddRef) (_ADOParameter *This);
3408     ULONG (STDMETHODCALLTYPE *Release) (_ADOParameter *This);
3409     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (_ADOParameter *This, UINT *pctinfo);
3410     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (_ADOParameter *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
3411     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (_ADOParameter *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
3412     HRESULT (STDMETHODCALLTYPE *Invoke) (_ADOParameter *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
3413     HRESULT (STDMETHODCALLTYPE *get_Properties) (_ADOParameter *This, ADOProperties **ppvObject);
3414     HRESULT (STDMETHODCALLTYPE *get_Name) (_ADOParameter *This, BSTR *pbstr);
3415     HRESULT (STDMETHODCALLTYPE *put_Name) (_ADOParameter *This, BSTR bstr);
3416     HRESULT (STDMETHODCALLTYPE *get_Value) (_ADOParameter *This, VARIANT *pvar);
3417     HRESULT (STDMETHODCALLTYPE *put_Value) (_ADOParameter *This, VARIANT val);
3418     HRESULT (STDMETHODCALLTYPE *get_Type) (_ADOParameter *This, DataTypeEnum *psDataType);
3419     HRESULT (STDMETHODCALLTYPE *put_Type) (_ADOParameter *This, DataTypeEnum sDataType);
3420     HRESULT (STDMETHODCALLTYPE *put_Direction) (_ADOParameter *This, ParameterDirectionEnum lParmDirection);
3421     HRESULT (STDMETHODCALLTYPE *get_Direction) (_ADOParameter *This, ParameterDirectionEnum *plParmDirection);
3422     HRESULT (STDMETHODCALLTYPE *put_Precision) (_ADOParameter *This, BYTE bPrecision);
3423     HRESULT (STDMETHODCALLTYPE *get_Precision) (_ADOParameter *This, BYTE *pbPrecision);
3424     HRESULT (STDMETHODCALLTYPE *put_NumericScale) (_ADOParameter *This, BYTE bScale);
3425     HRESULT (STDMETHODCALLTYPE *get_NumericScale) (_ADOParameter *This, BYTE *pbScale);
3426     HRESULT (STDMETHODCALLTYPE *put_Size) (_ADOParameter *This, long l);
3427     HRESULT (STDMETHODCALLTYPE *get_Size) (_ADOParameter *This, long *pl);
3428     HRESULT (STDMETHODCALLTYPE *AppendChunk) (_ADOParameter *This, VARIANT Val);
3429     HRESULT (STDMETHODCALLTYPE *get_Attributes) (_ADOParameter *This, LONG *plParmAttribs);
3430     HRESULT (STDMETHODCALLTYPE *put_Attributes) (_ADOParameter *This, LONG lParmAttribs);
3431     END_INTERFACE
3432   } _ParameterVtbl;
3433   interface _Parameter {
3434     CONST_VTBL struct _ParameterVtbl *lpVtbl;
3435   };
3436 #ifdef COBJMACROS
3437 #define _Parameter_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
3438 #define _Parameter_AddRef(This) ((This)->lpVtbl ->AddRef (This))
3439 #define _Parameter_Release(This) ((This)->lpVtbl ->Release (This))
3440 #define _Parameter_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
3441 #define _Parameter_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
3442 #define _Parameter_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
3443 #define _Parameter_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
3444 #define _Parameter_get_Properties(This, ppvObject) ((This)->lpVtbl ->get_Properties (This, ppvObject))
3445 #define _Parameter_get_Name(This, pbstr) ((This)->lpVtbl ->get_Name (This, pbstr))
3446 #define _Parameter_put_Name(This, bstr) ((This)->lpVtbl ->put_Name (This, bstr))
3447 #define _Parameter_get_Value(This, pvar) ((This)->lpVtbl ->get_Value (This, pvar))
3448 #define _Parameter_put_Value(This, val) ((This)->lpVtbl ->put_Value (This, val))
3449 #define _Parameter_get_Type(This, psDataType) ((This)->lpVtbl ->get_Type (This, psDataType))
3450 #define _Parameter_put_Type(This, sDataType) ((This)->lpVtbl ->put_Type (This, sDataType))
3451 #define _Parameter_put_Direction(This, lParmDirection) ((This)->lpVtbl ->put_Direction (This, lParmDirection))
3452 #define _Parameter_get_Direction(This, plParmDirection) ((This)->lpVtbl ->get_Direction (This, plParmDirection))
3453 #define _Parameter_put_Precision(This, bPrecision) ((This)->lpVtbl ->put_Precision (This, bPrecision))
3454 #define _Parameter_get_Precision(This, pbPrecision) ((This)->lpVtbl ->get_Precision (This, pbPrecision))
3455 #define _Parameter_put_NumericScale(This, bScale) ((This)->lpVtbl ->put_NumericScale (This, bScale))
3456 #define _Parameter_get_NumericScale(This, pbScale) ((This)->lpVtbl ->get_NumericScale (This, pbScale))
3457 #define _Parameter_put_Size(This, l) ((This)->lpVtbl ->put_Size (This, l))
3458 #define _Parameter_get_Size(This, pl) ((This)->lpVtbl ->get_Size (This, pl))
3459 #define _Parameter_AppendChunk(This, Val) ((This)->lpVtbl ->AppendChunk (This, Val))
3460 #define _Parameter_get_Attributes(This, plParmAttribs) ((This)->lpVtbl ->get_Attributes (This, plParmAttribs))
3461 #define _Parameter_put_Attributes(This, lParmAttribs) ((This)->lpVtbl ->put_Attributes (This, lParmAttribs))
3462 #endif
3463 #endif
3464 #endif
3465   EXTERN_C const CLSID CLSID_Parameter;
3466 #ifdef __cplusplus
3467   Parameter;
3468 #endif
3469 #ifndef __Parameters_INTERFACE_DEFINED__
3470 #define __Parameters_INTERFACE_DEFINED__
3471 
3472   EXTERN_C const IID IID_Parameters;
3473 #if defined (__cplusplus) && !defined (CINTERFACE)
3474 
3475   MIDL_INTERFACE ("0000150D-0000-0010-8000-00AA006D2EA4")
3476   ADOParameters : public _ADODynaCollection {
3477     public:
3478     virtual HRESULT STDMETHODCALLTYPE get_Item (VARIANT Index, _ADOParameter **ppvObject) = 0;
3479   };
3480 #else
3481   typedef struct ParametersVtbl {
3482     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOParameters *This, REFIID riid, _COM_Outptr_ void **ppvObject);
3483     ULONG (STDMETHODCALLTYPE *AddRef) (ADOParameters *This);
3484     ULONG (STDMETHODCALLTYPE *Release) (ADOParameters *This);
3485     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOParameters *This, UINT *pctinfo);
3486     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOParameters *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
3487     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOParameters *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
3488     HRESULT (STDMETHODCALLTYPE *Invoke) (ADOParameters *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
3489     HRESULT (STDMETHODCALLTYPE *get_Count) (ADOParameters *This, long *c);
3490     HRESULT (STDMETHODCALLTYPE *_NewEnum) (ADOParameters *This, IUnknown **ppvObject);
3491     HRESULT (STDMETHODCALLTYPE *Refresh) (ADOParameters *This);
3492     HRESULT (STDMETHODCALLTYPE *Append) (ADOParameters *This, IDispatch *Object);
3493     HRESULT (STDMETHODCALLTYPE *Delete) (ADOParameters *This, VARIANT Index);
3494     HRESULT (STDMETHODCALLTYPE *get_Item) (ADOParameters *This, VARIANT Index, _ADOParameter **ppvObject);
3495     END_INTERFACE
3496   } ParametersVtbl;
3497   interface Parameters {
3498     CONST_VTBL struct ParametersVtbl *lpVtbl;
3499   };
3500 #ifdef COBJMACROS
3501 #define Parameters_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
3502 #define Parameters_AddRef(This) ((This)->lpVtbl ->AddRef (This))
3503 #define Parameters_Release(This) ((This)->lpVtbl ->Release (This))
3504 #define Parameters_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
3505 #define Parameters_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
3506 #define Parameters_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
3507 #define Parameters_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
3508 #define Parameters_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
3509 #define Parameters__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
3510 #define Parameters_Refresh(This) ((This)->lpVtbl ->Refresh (This))
3511 #define Parameters_Append(This, Object) ((This)->lpVtbl ->Append (This, Object))
3512 #define Parameters_Delete(This, Index) ((This)->lpVtbl ->Delete (This, Index))
3513 #define Parameters_get_Item(This, Index, ppvObject) ((This)->lpVtbl ->get_Item (This, Index, ppvObject))
3514 #endif
3515 #endif
3516 #endif
3517 #ifndef __Property_INTERFACE_DEFINED__
3518 #define __Property_INTERFACE_DEFINED__
3519 
3520   EXTERN_C const IID IID_Property;
3521 #if defined (__cplusplus) && !defined (CINTERFACE)
3522 
3523   MIDL_INTERFACE ("00000503-0000-0010-8000-00AA006D2EA4")
3524   ADOProperty : public IDispatch {
3525     public:
3526     virtual HRESULT STDMETHODCALLTYPE get_Value (VARIANT *pval) = 0;
3527     virtual HRESULT STDMETHODCALLTYPE put_Value (VARIANT val) = 0;
3528     virtual HRESULT STDMETHODCALLTYPE get_Name (BSTR *pbstr) = 0;
3529     virtual HRESULT STDMETHODCALLTYPE get_Type (DataTypeEnum *ptype) = 0;
3530     virtual HRESULT STDMETHODCALLTYPE get_Attributes (long *plAttributes) = 0;
3531     virtual HRESULT STDMETHODCALLTYPE put_Attributes (long lAttributes) = 0;
3532   };
3533 #else
3534   typedef struct PropertyVtbl {
3535     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOProperty *This, REFIID riid, _COM_Outptr_ void **ppvObject);
3536     ULONG (STDMETHODCALLTYPE *AddRef) (ADOProperty *This);
3537     ULONG (STDMETHODCALLTYPE *Release) (ADOProperty *This);
3538     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOProperty *This, UINT *pctinfo);
3539     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOProperty *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
3540     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOProperty *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
3541     HRESULT (STDMETHODCALLTYPE *Invoke) (ADOProperty *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
3542     HRESULT (STDMETHODCALLTYPE *get_Value) (ADOProperty *This, VARIANT *pval);
3543     HRESULT (STDMETHODCALLTYPE *put_Value) (ADOProperty *This, VARIANT val);
3544     HRESULT (STDMETHODCALLTYPE *get_Name) (ADOProperty *This, BSTR *pbstr);
3545     HRESULT (STDMETHODCALLTYPE *get_Type) (ADOProperty *This, DataTypeEnum *ptype);
3546     HRESULT (STDMETHODCALLTYPE *get_Attributes) (ADOProperty *This, long *plAttributes);
3547     HRESULT (STDMETHODCALLTYPE *put_Attributes) (ADOProperty *This, long lAttributes);
3548     END_INTERFACE
3549   } PropertyVtbl;
3550   interface Property {
3551     CONST_VTBL struct PropertyVtbl *lpVtbl;
3552   };
3553 #ifdef COBJMACROS
3554 #define Property_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
3555 #define Property_AddRef(This) ((This)->lpVtbl ->AddRef (This))
3556 #define Property_Release(This) ((This)->lpVtbl ->Release (This))
3557 #define Property_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
3558 #define Property_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
3559 #define Property_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
3560 #define Property_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
3561 #define Property_get_Value(This, pval) ((This)->lpVtbl ->get_Value (This, pval))
3562 #define Property_put_Value(This, val) ((This)->lpVtbl ->put_Value (This, val))
3563 #define Property_get_Name(This, pbstr) ((This)->lpVtbl ->get_Name (This, pbstr))
3564 #define Property_get_Type(This, ptype) ((This)->lpVtbl ->get_Type (This, ptype))
3565 #define Property_get_Attributes(This, plAttributes) ((This)->lpVtbl ->get_Attributes (This, plAttributes))
3566 #define Property_put_Attributes(This, lAttributes) ((This)->lpVtbl ->put_Attributes (This, lAttributes))
3567 #endif
3568 #endif
3569 #endif
3570 #ifndef __Properties_INTERFACE_DEFINED__
3571 #define __Properties_INTERFACE_DEFINED__
3572 
3573   EXTERN_C const IID IID_Properties;
3574 #if defined (__cplusplus) && !defined (CINTERFACE)
3575 
3576   MIDL_INTERFACE ("00000504-0000-0010-8000-00AA006D2EA4")
3577   ADOProperties : public _ADOCollection {
3578     public:
3579     virtual HRESULT STDMETHODCALLTYPE get_Item (VARIANT Index, ADOProperty **ppvObject) = 0;
3580   };
3581 #else
3582   typedef struct PropertiesVtbl {
3583     BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE *QueryInterface) (ADOProperties *This, REFIID riid, _COM_Outptr_ void **ppvObject);
3584     ULONG (STDMETHODCALLTYPE *AddRef) (ADOProperties *This);
3585     ULONG (STDMETHODCALLTYPE *Release) (ADOProperties *This);
3586     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount) (ADOProperties *This, UINT *pctinfo);
3587     HRESULT (STDMETHODCALLTYPE *GetTypeInfo) (ADOProperties *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
3588     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames) (ADOProperties *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
3589     HRESULT (STDMETHODCALLTYPE *Invoke) (ADOProperties *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
3590     HRESULT (STDMETHODCALLTYPE *get_Count) (ADOProperties *This, long *c);
3591     HRESULT (STDMETHODCALLTYPE *_NewEnum) (ADOProperties *This, IUnknown **ppvObject);
3592     HRESULT (STDMETHODCALLTYPE *Refresh) (ADOProperties *This);
3593     HRESULT (STDMETHODCALLTYPE *get_Item) (ADOProperties *This, VARIANT Index, ADOProperty **ppvObject);
3594     END_INTERFACE
3595   } PropertiesVtbl;
3596   interface Properties {
3597     CONST_VTBL struct PropertiesVtbl *lpVtbl;
3598   };
3599 #ifdef COBJMACROS
3600 #define Properties_QueryInterface(This, riid, ppvObject) ((This)->lpVtbl ->QueryInterface (This, riid, ppvObject))
3601 #define Properties_AddRef(This) ((This)->lpVtbl ->AddRef (This))
3602 #define Properties_Release(This) ((This)->lpVtbl ->Release (This))
3603 #define Properties_GetTypeInfoCount(This, pctinfo) ((This)->lpVtbl ->GetTypeInfoCount (This, pctinfo))
3604 #define Properties_GetTypeInfo(This, iTInfo, lcid, ppTInfo) ((This)->lpVtbl ->GetTypeInfo (This, iTInfo, lcid, ppTInfo))
3605 #define Properties_GetIDsOfNames(This, riid, rgszNames, cNames, lcid, rgDispId) ((This)->lpVtbl ->GetIDsOfNames (This, riid, rgszNames, cNames, lcid, rgDispId))
3606 #define Properties_Invoke(This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) ((This)->lpVtbl ->Invoke (This, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr))
3607 #define Properties_get_Count(This, c) ((This)->lpVtbl ->get_Count (This, c))
3608 #define Properties__NewEnum(This, ppvObject) ((This)->lpVtbl ->_NewEnum (This, ppvObject))
3609 #define Properties_Refresh(This) ((This)->lpVtbl ->Refresh (This))
3610 #define Properties_get_Item(This, Index, ppvObject) ((This)->lpVtbl ->get_Item (This, Index, ppvObject))
3611 #endif
3612 #endif
3613 #endif
3614 #endif
3615 
3616   extern RPC_IF_HANDLE __MIDL_itf_ado10_0000_0001_v0_0_c_ifspec;
3617   extern RPC_IF_HANDLE __MIDL_itf_ado10_0000_0001_v0_0_s_ifspec;
3618 #ifdef __cplusplus
3619 }
3620 #endif
3621 #endif
3622 #define ADOCommand _ADOCommand
3623 #define ADORecordset _ADORecordset
3624 #define ADOTransaction _ADOTransaction
3625 #define ADOParameter _ADOParameter
3626 #define ADOConnection _ADOConnection
3627 #define ADOCollection _ADOCollection
3628 #define ADODynaCollection _ADODynaCollection
3629 #define ADORecord _ADORecord
3630 #define ADORecField _ADORecField
3631 #define ADOStream _ADOStream
3632 #endif
3633 
3634 #endif
3635