master
   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__
  38typedef interface _ADOCollection _ADOCollection;
  39#endif
  40#ifndef ___ADODynaCollection_FWD_DEFINED__
  41#define ___ADODynaCollection_FWD_DEFINED__
  42typedef interface _ADODynaCollection _ADODynaCollection;
  43#endif
  44#ifndef ___ADO_FWD_DEFINED__
  45#define ___ADO_FWD_DEFINED__
  46typedef interface _ADO _ADO;
  47#endif
  48#ifndef __Error_FWD_DEFINED__
  49#define __Error_FWD_DEFINED__
  50typedef interface ADOError Error;
  51#endif
  52#ifndef __Errors_FWD_DEFINED__
  53#define __Errors_FWD_DEFINED__
  54typedef interface ADOErrors Errors;
  55#endif
  56#ifndef __Command15_FWD_DEFINED__
  57#define __Command15_FWD_DEFINED__
  58typedef interface Command15 Command15;
  59#endif
  60#ifndef __Command25_FWD_DEFINED__
  61#define __Command25_FWD_DEFINED__
  62typedef interface Command25 Command25;
  63#endif
  64#ifndef ___Command_FWD_DEFINED__
  65#define ___Command_FWD_DEFINED__
  66typedef interface _ADOCommand _Command;
  67#endif
  68#ifndef __ConnectionEventsVt_FWD_DEFINED__
  69#define __ConnectionEventsVt_FWD_DEFINED__
  70typedef interface ConnectionEventsVt ConnectionEventsVt;
  71#endif
  72#ifndef __RecordsetEventsVt_FWD_DEFINED__
  73#define __RecordsetEventsVt_FWD_DEFINED__
  74typedef interface RecordsetEventsVt RecordsetEventsVt;
  75#endif
  76#ifndef __ConnectionEvents_FWD_DEFINED__
  77#define __ConnectionEvents_FWD_DEFINED__
  78typedef interface ConnectionEvents ConnectionEvents;
  79#endif
  80#ifndef __RecordsetEvents_FWD_DEFINED__
  81#define __RecordsetEvents_FWD_DEFINED__
  82typedef interface RecordsetEvents RecordsetEvents;
  83#endif
  84#ifndef __Connection15_FWD_DEFINED__
  85#define __Connection15_FWD_DEFINED__
  86typedef interface Connection15 Connection15;
  87#endif
  88#ifndef ___Connection_FWD_DEFINED__
  89#define ___Connection_FWD_DEFINED__
  90typedef interface _ADOConnection _Connection;
  91#endif
  92#ifndef __ADOConnectionConstruction15_FWD_DEFINED__
  93#define __ADOConnectionConstruction15_FWD_DEFINED__
  94typedef interface ADOConnectionConstruction15 ADOConnectionConstruction15;
  95#endif
  96#ifndef __ADOConnectionConstruction_FWD_DEFINED__
  97#define __ADOConnectionConstruction_FWD_DEFINED__
  98typedef interface ADOConnectionConstruction ADOConnectionConstruction;
  99#endif
 100#ifndef __Connection_FWD_DEFINED__
 101#define __Connection_FWD_DEFINED__
 102#ifdef __cplusplus
 103typedef class ADOConnection Connection;
 104#else
 105typedef struct ADOConnection Connection;
 106#endif
 107#endif
 108#ifndef ___Record_FWD_DEFINED__
 109#define ___Record_FWD_DEFINED__
 110typedef interface _ADORecord _Record;
 111#endif
 112#ifndef __Record_FWD_DEFINED__
 113#define __Record_FWD_DEFINED__
 114#ifdef __cplusplus
 115typedef class ADORecord Record;
 116#else
 117typedef struct ADORecord Record;
 118#endif
 119#endif
 120#ifndef ___Stream_FWD_DEFINED__
 121#define ___Stream_FWD_DEFINED__
 122typedef interface _ADOStream _Stream;
 123#endif
 124#ifndef __Stream_FWD_DEFINED__
 125#define __Stream_FWD_DEFINED__
 126#ifdef __cplusplus
 127typedef class ADOStream Stream;
 128#else
 129typedef struct ADOStream Stream;
 130#endif
 131#endif
 132#ifndef __ADORecordConstruction_FWD_DEFINED__
 133#define __ADORecordConstruction_FWD_DEFINED__
 134typedef interface ADORecordConstruction ADORecordConstruction;
 135#endif
 136#ifndef __ADOStreamConstruction_FWD_DEFINED__
 137#define __ADOStreamConstruction_FWD_DEFINED__
 138typedef interface ADOStreamConstruction ADOStreamConstruction;
 139#endif
 140#ifndef __ADOCommandConstruction_FWD_DEFINED__
 141#define __ADOCommandConstruction_FWD_DEFINED__
 142typedef interface ADOCommandConstruction ADOCommandConstruction;
 143#endif
 144#ifndef __Command_FWD_DEFINED__
 145#define __Command_FWD_DEFINED__
 146#ifdef __cplusplus
 147typedef class ADOCommand Command;
 148#else
 149typedef struct ADOCommand Command;
 150#endif
 151#endif
 152#ifndef __Recordset_FWD_DEFINED__
 153#define __Recordset_FWD_DEFINED__
 154#ifdef __cplusplus
 155typedef class ADORecordset Recordset;
 156#else
 157typedef struct ADORecordset Recordset;
 158#endif
 159#endif
 160#ifndef __Recordset15_FWD_DEFINED__
 161#define __Recordset15_FWD_DEFINED__
 162typedef interface Recordset15 Recordset15;
 163#endif
 164#ifndef __Recordset20_FWD_DEFINED__
 165#define __Recordset20_FWD_DEFINED__
 166typedef interface Recordset20 Recordset20;
 167#endif
 168#ifndef __Recordset21_FWD_DEFINED__
 169#define __Recordset21_FWD_DEFINED__
 170typedef interface Recordset21 Recordset21;
 171#endif
 172#ifndef ___Recordset_FWD_DEFINED__
 173#define ___Recordset_FWD_DEFINED__
 174typedef interface _ADORecordset _Recordset;
 175#endif
 176#ifndef __ADORecordsetConstruction_FWD_DEFINED__
 177#define __ADORecordsetConstruction_FWD_DEFINED__
 178typedef interface ADORecordsetConstruction ADORecordsetConstruction;
 179#endif
 180#ifndef __Field15_FWD_DEFINED__
 181#define __Field15_FWD_DEFINED__
 182typedef interface Field15 Field15;
 183#endif
 184#ifndef __Field20_FWD_DEFINED__
 185#define __Field20_FWD_DEFINED__
 186typedef interface Field20 Field20;
 187#endif
 188#ifndef __Field_FWD_DEFINED__
 189#define __Field_FWD_DEFINED__
 190typedef interface ADOField Field;
 191#endif
 192#ifndef __Fields15_FWD_DEFINED__
 193#define __Fields15_FWD_DEFINED__
 194typedef interface Fields15 Fields15;
 195#endif
 196#ifndef __Fields20_FWD_DEFINED__
 197#define __Fields20_FWD_DEFINED__
 198typedef interface Fields20 Fields20;
 199#endif
 200#ifndef __Fields_FWD_DEFINED__
 201#define __Fields_FWD_DEFINED__
 202typedef interface ADOFields Fields;
 203#endif
 204#ifndef ___Parameter_FWD_DEFINED__
 205#define ___Parameter_FWD_DEFINED__
 206typedef interface _ADOParameter _Parameter;
 207#endif
 208#ifndef __Parameter_FWD_DEFINED__
 209#define __Parameter_FWD_DEFINED__
 210#ifdef __cplusplus
 211typedef class ADOParameter Parameter;
 212#else
 213typedef struct ADOParameter Parameter;
 214#endif
 215#endif
 216#ifndef __Parameters_FWD_DEFINED__
 217#define __Parameters_FWD_DEFINED__
 218typedef interface ADOParameters Parameters;
 219#endif
 220#ifndef __Property_FWD_DEFINED__
 221#define __Property_FWD_DEFINED__
 222typedef interface ADOProperty Property;
 223#endif
 224#ifndef __Properties_FWD_DEFINED__
 225#define __Properties_FWD_DEFINED__
 226typedef interface ADOProperties Properties;
 227#endif
 228#ifdef __cplusplus
 229extern "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