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