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