zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

adoint.h (248867B) - Raw


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