zig

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

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