/* * Copyright 2019 Hans Leidekker for CodeWeavers * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ import "oaidl.idl"; interface _ADO; interface _Collection; interface _Command; interface _Connection; interface _DynaCollection; interface _Parameter; interface _Record; interface _Recordset; interface _Stream; interface ADODebugging; interface ADOConnectionConstruction; interface ADOCommandConstruction; interface ADORecordsetConstruction; interface Command15; interface Command25; interface Error; interface Errors; interface Field; interface Field15; interface Field20; interface Fields; interface Fields15; interface Fields20; interface Parameters; interface Properties; interface Property; interface Recordset15; interface Recordset20; interface Recordset21; interface ConnectionEventsVt; dispinterface ConnectionEvents; dispinterface RecordsetEvents; typedef [uuid(0000052A-0000-0010-8000-00AA006D2EA4)] enum ErrorValueEnum { adErrInvalidArgument = 3001, adErrOpeningFile = 3002, adErrReadFile = 3003, adErrWriteFile = 3004, adErrNoCurrentRecord = 3021, adErrIllegalOperation = 3219, adErrCantChangeProvider = 3220, adErrInTransaction = 3246, adErrFeatureNotAvailable = 3251, adErrItemNotFound = 3265, adErrObjectInCollection = 3367, adErrObjectNotSet = 3420, adErrDataConversion = 3421, adErrObjectClosed = 3704, adErrObjectOpen = 3705, adErrProviderNotFound = 3706, adErrBoundToCommand = 3707, adErrInvalidParamInfo = 3708, adErrInvalidConnection = 3709, adErrNotReentrant = 3710, adErrStillExecuting = 3711, adErrOperationCancelled = 3712, adErrStillConnecting = 3713, adErrInvalidTransaction = 3714, adErrNotExecuting = 3715, adErrUnsafeOperation = 3716, adWrnSecurityDialog = 3717, adWrnSecurityDialogHeader = 3718, adErrIntegrityViolation = 3719, adErrPermissionDenied = 3720, adErrDataOverflow = 3721, adErrSchemaViolation = 3722, adErrSignMismatch = 3723, adErrCantConvertvalue = 3724, adErrCantCreate = 3725, adErrColumnNotOnThisRow = 3726, adErrURLDoesNotExist = 3727, adErrTreePermissionDenied = 3728, adErrInvalidURL = 3729, adErrResourceLocked = 3730, adErrResourceExists = 3731, adErrCannotComplete = 3732, adErrVolumeNotFound = 3733, adErrOutOfSpace = 3734, adErrResourceOutOfScope = 3735, adErrUnavailable = 3736, adErrURLNamedRowDoesNotExist = 3737, adErrDelResOutOfScope = 3738, adErrPropInvalidColumn = 3739, adErrPropInvalidOption = 3740, adErrPropInvalidValue = 3741, adErrPropConflicting = 3742, adErrPropNotAllSettable = 3743, adErrPropNotSet = 3744, adErrPropNotSettable = 3745, adErrPropNotSupported = 3746, adErrCatalogNotSet = 3747, adErrCantChangeConnection = 3748, adErrFieldsUpdateFailed = 3749, adErrDenyNotSupported = 3750, adErrDenyTypeNotSupported = 3751, adErrProviderNotSpecified = 3753, adErrConnectionStringTooLong = 3754 } ErrorValueEnum; typedef [uuid(00000528-0000-0010-8000-00aa006d2ea4)] enum PositionEnum { adPosUnknown = -1, adPosBOF = -2, adPosEOF = -3 } PositionEnum; typedef [uuid(a56187c5-d690-4037-ae32-a00edc376ac3), public] PositionEnum PositionEnum_Param; typedef [uuid(0000051f-0000-0010-8000-00aa006d2ea4)] enum DataTypeEnum { adEmpty = 0, adTinyInt = 16, adSmallInt = 2, adInteger = 3, adBigInt = 20, adUnsignedTinyInt = 17, adUnsignedSmallInt = 18, adUnsignedInt = 19, adUnsignedBigInt = 21, adSingle = 4, adDouble = 5, adCurrency = 6, adDecimal = 14, adNumeric = 131, adBoolean = 11, adError = 10, adUserDefined = 132, adVariant = 12, adIDispatch = 9, adIUnknown = 13, adGUID = 72, adDate = 7, adDBDate = 133, adDBTime = 134, adDBTimeStamp = 135, adBSTR = 8, adChar = 129, adVarChar = 200, adLongVarChar = 201, adWChar = 130, adVarWChar = 202, adLongVarWChar = 203, adBinary = 128, adVarBinary = 204, adLongVarBinary = 205, adChapter = 136, adFileTime = 64, adPropVariant = 138, adVarNumeric = 139, adArray = 0x2000 } DataTypeEnum; typedef [uuid(00000548-0000-0010-8000-00aa006d2ea4)] enum PersistFormatEnum { adPersistADTG = 0, adPersistXML = 1 } PersistFormatEnum; typedef [uuid(00000552-0000-0010-8000-00aa006d2ea4)] enum SeekEnum { adSeekFirstEQ = 1, adSeekLastEQ = 2, adSeekAfterEQ = 4, adSeekAfter = 8, adSeekBeforeEQ = 16, adSeekBefore = 32 } SeekEnum; typedef [uuid(0000051b-0000-0010-8000-00aa006d2ea4)] enum CursorTypeEnum { adOpenUnspecified = -1, adOpenForwardOnly = 0, adOpenKeyset = 1, adOpenDynamic = 2, adOpenStatic = 3 } CursorTypeEnum; typedef [uuid(00000525-0000-0010-8000-00aa006d2ea4)] enum FieldAttributeEnum { adFldUnspecified = -1, adFldMayDefer = 0x00000002, adFldUpdatable = 0x00000004, adFldUnknownUpdatable = 0x00000008, adFldFixed = 0x00000010, adFldIsNullable = 0x00000020, adFldMayBeNull = 0x00000040, adFldLong = 0x00000080, adFldRowID = 0x00000100, adFldRowVersion = 0x00000200, adFldCacheDeferred = 0x00001000, adFldIsChapter = 0x00002000, adFldNegativeScale = 0x00004000, adFldKeyColumn = 0x00008000, adFldIsRowURL = 0x00010000, adFldIsDefaultStream = 0x00020000, adFldIsCollection = 0x00040000 } FieldAttributeEnum; typedef [uuid(00000544-0000-0010-8000-00aa006d2ea4)] enum ResyncEnum { adResyncUnderlyingValues = 1, adResyncAllValues = 2 } ResyncEnum; typedef [uuid(0000051d-0000-0010-8000-00aa006d2ea4)] enum LockTypeEnum { adLockUnspecified = -1, adLockReadOnly = 1, adLockPessimistic = 2, adLockOptimistic = 3, adLockBatchOptimistic = 4 } LockTypeEnum; typedef [uuid(00000543-0000-0010-8000-00aa006d2ea4)] enum AffectEnum { adAffectCurrent = 1, adAffectGroup = 2, adAffectAll = 3, adAffectAllChapters = 4 } AffectEnum; typedef [uuid(00000526-0000-0010-8000-00aa006d2ea4)] enum EditModeEnum { adEditNone = 0, adEditInProgress = 1, adEditAdd = 2, adEditDelete = 4 } EditModeEnum; typedef [uuid(0000052f-0000-0010-8000-00aa006d2ea4)] enum CursorLocationEnum { adUseNone = 1, adUseServer = 2, adUseClient = 3, adUseClientBatch = 3 } CursorLocationEnum; typedef [uuid(0000051c-0000-0010-8000-00aa006d2ea4)] enum CursorOptionEnum { adHoldRecords = 256, adMovePrevious = 512, adBookmark = 8192, adApproxPosition = 16384, adUpdateBatch = 65536, adResync = 131072, adNotify = 262144, adFind = 524288, adSeek = 4194304, adIndex = 8388608, adAddNew = 16778240, adDelete = 16779264, adUpdate = 16809984 } CursorOptionEnum; typedef [uuid(00000540-0000-0010-8000-00aa006d2ea4)] enum MarshalOptionsEnum { adMarshalAll = 0, adMarshalModifiedOnly = 1 } MarshalOptionsEnum; typedef [uuid(00000547-0000-0010-8000-00aa006d2ea4)] enum SearchDirectionEnum { adSearchForward = 1, adSearchBackward = -1 } SearchDirectionEnum; typedef [uuid(00000549-0000-0010-8000-00aa006d2ea4)] enum StringFormatEnum { adClipString = 2 } StringFormatEnum; typedef [uuid(00000545-0000-0010-8000-00aa006d2ea4)] enum CompareEnum { adCompareLessThan = 0, adCompareEqual = 1, adCompareGreaterThan = 2, adCompareNotEqual = 3, adCompareNotComparable = 4 } CompareEnum; typedef [uuid(00000523-0000-0010-8000-00aa006d2ea4)] enum IsolationLevelEnum { adXactUnspecified = -1, adXactChaos = 16, adXactReadUncommitted = 256, adXactBrowse = 256, adXactCursorStability = 4096, adXactReadCommitted = 4096, adXactRepeatableRead = 65536, adXactSerializable = 1048576, adXactIsolated = 1048576 } IsolationLevelEnum; typedef [uuid(00000521-0000-0010-8000-00aa006d2ea4)] enum ConnectModeEnum { adModeUnknown = 0, adModeRead = 1, adModeWrite = 2, adModeReadWrite = 3, adModeShareDenyRead = 4, adModeShareDenyWrite = 8, adModeShareExclusive = 12, adModeShareDenyNone = 16, adModeRecursive = 4194304 } ConnectModeEnum; typedef [uuid(00000533-0000-0010-8000-00aa006d2ea4)] enum SchemaEnum { adSchemaProviderSpecific = -1, adSchemaAsserts = 0, adSchemaCatalogs = 1, adSchemaCharacterSets = 2, adSchemaCollations = 3, adSchemaColumns = 4, adSchemaCheckConstraints = 5, adSchemaConstraintColumnUsage = 6, adSchemaConstraintTableUsage = 7, adSchemaKeyColumnUsage = 8, adSchemaReferentialContraints = 9, adSchemaReferentialConstraints = 9, adSchemaTableConstraints = 10, adSchemaColumnsDomainUsage = 11, adSchemaIndexes = 12, adSchemaColumnPrivileges = 13, adSchemaTablePrivileges = 14, adSchemaUsagePrivileges = 15, adSchemaProcedures = 16, adSchemaSchemata = 17, adSchemaSQLLanguages = 18, adSchemaStatistics = 19, adSchemaTables = 20, adSchemaTranslations = 21, adSchemaProviderTypes = 22, adSchemaViews = 23, adSchemaViewColumnUsage = 24, adSchemaViewTableUsage = 25, adSchemaProcedureParameters = 26, adSchemaForeignKeys = 27, adSchemaPrimaryKeys = 28, adSchemaProcedureColumns = 29, adSchemaDBInfoKeywords = 30, adSchemaDBInfoLiterals = 31, adSchemaCubes = 32, adSchemaDimensions = 33, adSchemaHierarchies = 34, adSchemaLevels = 35, adSchemaMeasures = 36, adSchemaProperties = 37, adSchemaMembers = 38, adSchemaTrustees = 39, adSchemaFunctions = 40, adSchemaActions = 41, adSchemaCommands = 42, adSchemaSets = 43 } SchemaEnum; typedef [uuid(00000530-0000-0010-8000-00aa006d2ea4)] enum EventStatusEnum { adStatusOK = 1, adStatusErrorsOccurred = 2, adStatusCantDeny = 3, adStatusCancel = 4, adStatusUnwantedEvent = 5 } EventStatusEnum; typedef [uuid(0000052c-0000-0010-8000-00aa006d2ea4)] enum ParameterDirectionEnum { adParamUnknown = 0, adParamInput = 1, adParamOutput = 2, adParamInputOutput = 3, adParamReturnValue = 4 } ParameterDirectionEnum; typedef [uuid(0000052e-0000-0010-8000-00aa006d2ea4)] enum CommandTypeEnum { adCmdUnspecified = -1, adCmdUnknown = 8, adCmdText = 1, adCmdTable = 2, adCmdStoredProc = 4, adCmdFile = 256, adCmdTableDirect = 512 } CommandTypeEnum; typedef [uuid(00000532-0000-0010-8000-00aa006d2ea4)] enum ObjectStateEnum { adStateClosed = 0, adStateOpen = 1, adStateConnecting = 2, adStateExecuting = 4, adStateFetching = 8 } ObjectStateEnum; typedef [uuid(00000573-0000-0010-8000-00aa006d2ea4)] enum MoveRecordOptionsEnum { adMoveUnspecified = -1, adMoveOverWrite = 1, adMoveDontUpdateLinks = 2, adMoveAllowEmulation = 4 } MoveRecordOptionsEnum; typedef [uuid(00000574-0000-0010-8000-00aa006d2ea4)] enum CopyRecordOptionsEnum { adCopyUnspecified = -1, adCopyOverWrite = 1, adCopyAllowEmulation = 4, adCopyNonRecursive = 2 } CopyRecordOptionsEnum; typedef [uuid(00000570-0000-0010-8000-00aa006d2ea4)] enum RecordCreateOptionsEnum { adCreateCollection = (int) 0x00002000, adCreateStructDoc = (int) 0x80000000, adCreateNonCollection = (int) 0x00000000, adOpenIfExists = (int) 0x02000000, adCreateOverwrite = (int) 0x04000000, adFailIfNotExists = (int) -1 } RecordCreateOptionsEnum; typedef [uuid(00000571-0000-0010-8000-00aa006d2ea4)] enum RecordOpenOptionsEnum { adOpenRecordUnspecified = -1, adOpenOutput = 0x00800000, adOpenAsync = 0x00001000, adDelayFetchStream = 0x00004000, adDelayFetchFields = 0x00008000, adOpenExecuteCommand = 0x00010000 } RecordOpenOptionsEnum; typedef [uuid(0000057d-0000-0010-8000-00aa006d2ea4)] enum RecordTypeEnum { adSimpleRecord = 0, adCollectionRecord = 1, adStructDoc = 2 } RecordTypeEnum; typedef [uuid(00000576-0000-0010-8000-00aa006d2ea4)] enum StreamTypeEnum { adTypeBinary = 1, adTypeText = 2 } StreamTypeEnum; typedef [uuid(00000577-0000-0010-8000-00aa006d2ea4)] enum LineSeparatorEnum { adLF = 10, adCR = 13, adCRLF = -1 } LineSeparatorEnum; typedef enum { adReadAll = -1, adReadLine = -2 } StreamReadEnum; typedef [uuid(0000057c-0000-0010-8000-00aa006d2ea4)] enum SaveOptionsEnum { adSaveCreateNotExist = 1, adSaveCreateOverWrite = 2 } SaveOptionsEnum; typedef [uuid(0000057a-0000-0010-8000-00aa006d2ea4)] enum StreamOpenOptionsEnum { adOpenStreamUnspecified = -1, adOpenStreamAsync = 1, adOpenStreamFromRecord = 4 } StreamOpenOptionsEnum; typedef [uuid(0000057b-0000-0010-8000-00aa006d2ea4)] enum StreamWriteEnum { adWriteChar = 0, adWriteLine = 1 } StreamWriteEnum; typedef [uuid(00000531-0000-0010-8000-00aa006d2ea4)] enum EventReasonEnum { adRsnAddNew = 1, adRsnDelete = 2, adRsnUpdate = 3, adRsnUndoUpdate = 4, adRsnUndoAddNew = 5, adRsnUndoDelete = 6, adRsnRequery = 7, adRsnResynch = 8, adRsnClose = 9, adRsnMove = 10, adRsnFirstChange = 11, adRsnMoveFirst = 12, adRsnMoveNext = 13, adRsnMovePrevious = 14, adRsnMoveLast = 15 } EventReasonEnum; typedef [uuid(00000541-0000-0010-8000-00aa006d2ea4)] enum ConnectOptionEnum { adConnectUnspecified = -1, adAsyncConnect = 0x10 } ConnectOptionEnum; [ uuid(00000503-0000-0010-8000-00aa006d2ea4), odl, dual, nonextensible, oleautomation ] interface Property : IDispatch { [id(00000000), propget] HRESULT Value( [out, retval] VARIANT *val); [id(00000000), propput] HRESULT Value( [in] VARIANT val); [id(0x60020002), propget] HRESULT Name( [out, retval] BSTR *str); [id(0x60020003), propget] HRESULT Type( [out, retval] DataTypeEnum *type); [id(0x60020004), propget] HRESULT Attributes( [out, retval] LONG *attributes); [id(0x60020004), propput] HRESULT Attributes( [in] LONG attributes); }; [ uuid(00000512-0000-0010-8000-00aa006d2ea4), odl, dual, nonextensible, oleautomation ] interface _Collection : IDispatch { [id(0x60020000), propget] HRESULT Count( [out, retval] LONG *count); [id(0xfffffffc), restricted] HRESULT _NewEnum( [out, retval] IUnknown **object); [id(0x60020002)] HRESULT Refresh(); }; [ uuid(00000504-0000-0010-8000-00aa006d2ea4), odl, dual, nonextensible, oleautomation ] interface Properties : _Collection { [id(00000000), propget] HRESULT Item( [in] VARIANT index, [out, retval] Property **object); }; [ uuid(00000534-0000-0010-8000-00aa006d2ea4), odl, dual, nonextensible, oleautomation ] interface _ADO : IDispatch { [id(0x000001f4), propget] HRESULT Properties( [out, retval] Properties **object); }; [ uuid(0000054c-0000-0010-8000-00aa006d2ea4), odl, dual, nonextensible, oleautomation, hidden ] interface Field20 : _ADO { [id(0x00000455), propget] HRESULT ActualSize( [out, retval] LONG *size); [id(0x0000040c), propget] HRESULT Attributes( [out, retval] LONG *attrs); [id(0x0000044f), propget] HRESULT DefinedSize( [out, retval] LONG *size); [id(0x0000044c), propget] HRESULT Name( [out, retval] BSTR *str); [id(0x0000044e), propget] HRESULT Type( [out, retval] DataTypeEnum *type); [id(00000000), propget] HRESULT Value( [out, retval] VARIANT *val); [id(00000000), propput] HRESULT Value( [in] VARIANT val); [id(0x60030007), propget] HRESULT Precision( [out, retval] unsigned char *precision); [id(0x60030008), propget] HRESULT NumericScale( [out, retval] unsigned char *scale); [id(0x00000453)] HRESULT AppendChunk( [in] VARIANT data); [id(0x00000454)] HRESULT GetChunk( [in] LONG length, [out, retval] VARIANT *var); [id(0x00000450), propget] HRESULT OriginalValue( [out, retval] VARIANT *val); [id(0x00000451), propget] HRESULT UnderlyingValue( [out, retval] VARIANT *val); [id(0x6003000d), propget] HRESULT DataFormat( [out, retval] IUnknown **format); [id(0x6003000d), propputref] HRESULT DataFormat( [in] IUnknown *format); [id(0x60030007), propput] HRESULT Precision( [in] unsigned char precision); [id(0x60030008), propput] HRESULT NumericScale( [in] unsigned char scale); [id(0x0000044e), propput] HRESULT Type( [in] DataTypeEnum type); [id(0x0000044f), propput] HRESULT DefinedSize( [in] LONG size); [id(0x0000040c), propput] HRESULT Attributes( [in] LONG attrs); }; [ uuid(00000569-0000-0010-8000-00aa006d2ea4), odl, dual, nonextensible, oleautomation ] interface Field : Field20 { [id(0x0000045c), propget] HRESULT Status( [out, retval] LONG *status); }; [ uuid(00000506-0000-0010-8000-00aa006d2ea4), odl, dual, nonextensible, oleautomation ] interface Fields15 : _Collection { [id(00000000), propget] HRESULT Item( [in] VARIANT index, [out, retval] Field **object); }; [ uuid(0000054d-0000-0010-8000-00aa006d2ea4), odl, dual, nonextensible, oleautomation ] interface Fields20 : Fields15 { [id(0x60030001)] HRESULT _Append( [in] BSTR name, [in] DataTypeEnum type, [in, defaultvalue(0)] LONG size, [in, defaultvalue(adFldUnspecified)] FieldAttributeEnum attr); [id(0x60030002)] HRESULT Delete( [in] VARIANT index); }; [ uuid(00000564-0000-0010-8000-00aa006d2ea4), odl, dual, nonextensible, oleautomation ] interface Fields : Fields20 { [id(0x60040001)] HRESULT Append( [in] BSTR name, [in] DataTypeEnum type, [in, defaultvalue(0)] LONG size, [in, defaultvalue(adFldUnspecified)] FieldAttributeEnum attr, [in, optional] VARIANT value); [id(0x60040002)] HRESULT Update(); [id(0x60040003)] HRESULT Resync( [in, defaultvalue(adResyncAllValues)] ResyncEnum resync_values); [id(0x60040004)] HRESULT CancelUpdate(); }; [ uuid(0000050e-0000-0010-8000-00aa006d2ea4), odl, dual, nonextensible, oleautomation ] interface Recordset15 : _ADO { [id(0x000003e8), propget] HRESULT AbsolutePosition( [out, retval] PositionEnum_Param *position); [id(0x000003e8), propput] HRESULT AbsolutePosition( [in] PositionEnum_Param position); [id(0x000003e9), propputref] HRESULT ActiveConnection( [in] IDispatch *connection); [id(0x000003e9), propput] HRESULT ActiveConnection( [in] VARIANT connection); [id(0x000003e9), propget] HRESULT ActiveConnection( [out, retval] VARIANT *connection); [id(0x000003ea), propget] HRESULT BOF( [out, retval] VARIANT_BOOL *bof); [id(0x000003eb), propget] HRESULT Bookmark( [out, retval] VARIANT *bookmark); [id(0x000003eb), propput] HRESULT Bookmark( [in] VARIANT bookmark); [id(0x000003ec), propget] HRESULT CacheSize( [out, retval] LONG *size); [id(0x000003ec), propput] HRESULT CacheSize( [in] LONG size); [id(0x000003ed), propget] HRESULT CursorType( [out, retval] CursorTypeEnum *cursor_type); [id(0x000003ed), propput] HRESULT CursorType( [in] CursorTypeEnum cursor_type); [id(0x000003ee), propget] HRESULT EOF( [out, retval] VARIANT_BOOL *eof); [id(00000000), propget] HRESULT Fields( [out, retval] Fields **object); [id(0x000003f0), propget] HRESULT LockType( [out, retval] LockTypeEnum *lock_type); [id(0x000003f0), propput] HRESULT LockType( [in] LockTypeEnum lock_type); [id(0x000003f1), propget] HRESULT MaxRecords( [out, retval] LONG *max_records); [id(0x000003f1), propput] HRESULT MaxRecords( [in] LONG max_records); [id(0x000003f2), propget] HRESULT RecordCount( [out, retval] LONG *count); [id(0x000003f3), propputref] HRESULT Source( [in] IDispatch *source); [id(0x000003f3), propput] HRESULT Source( [in] BSTR source); [id(0x000003f3), propget] HRESULT Source( [out, retval] VARIANT *source); [id(0x000003f4)] HRESULT AddNew( [in, optional] VARIANT field_list, [in, optional] VARIANT values); [id(0x000003f5)] HRESULT CancelUpdate(); [id(0x000003f6)] HRESULT Close(); [id(0x000003f7)] HRESULT Delete( [in, defaultvalue(adAffectCurrent)] AffectEnum affect_records); [id(0x000003f8)] HRESULT GetRows( [in, defaultvalue(-1)] LONG rows, [in, optional] VARIANT start, [in, optional] VARIANT fields, [out, retval] VARIANT *var); [id(0x000003f9)] HRESULT Move( [in] LONG num_records, [in, optional] VARIANT start); [id(0x000003fa)] HRESULT MoveNext(); [id(0x000003fb)] HRESULT MovePrevious(); [id(0x000003fc)] HRESULT MoveFirst(); [id(0x000003fd)] HRESULT MoveLast(); [id(0x000003fe)] HRESULT Open( [in, optional] VARIANT source, [in, optional] VARIANT active_connection, [in, defaultvalue(adOpenUnspecified)] CursorTypeEnum cursor_type, [in, defaultvalue(adLockUnspecified)] LockTypeEnum lock_type, [in, defaultvalue(-1)] LONG options); [id(0x000003ff)] HRESULT Requery( [in, defaultvalue(-1)] LONG options); [id(0x60030022), hidden] HRESULT _xResync( [in, defaultvalue(adAffectAll)] AffectEnum affect_records); [id(0x00000401)] HRESULT Update( [in, optional] VARIANT fields, [in, optional] VARIANT values); [id(0x00000417), propget] HRESULT AbsolutePage( [out, retval] PositionEnum_Param *position); [id(0x00000417), propput] HRESULT AbsolutePage( [in] PositionEnum_Param position); [id(0x00000402), propget] HRESULT EditMode( [out, retval] EditModeEnum *mode); [id(0x00000406), propget] HRESULT Filter( [out, retval] VARIANT *criteria); [id(0x00000406), propput] HRESULT Filter( [in] VARIANT criteria); [id(0x0000041a), propget] HRESULT PageCount( [out, retval] LONG *count); [id(0x00000418), propget] HRESULT PageSize( [out, retval] LONG *size); [id(0x00000418), propput] HRESULT PageSize( [in] LONG size); [id(0x00000407), propget] HRESULT Sort( [out, retval] BSTR *criteria); [id(0x00000407), propput] HRESULT Sort( [in] BSTR criteria); [id(0x00000405), propget] HRESULT Status( [out, retval] LONG *status); [id(0x0000041e), propget] HRESULT State( [out, retval] LONG *state); [id(0x60030030), hidden] HRESULT _xClone( [out, retval] _Recordset **object); [id(0x0000040b)] HRESULT UpdateBatch( [in, defaultvalue(adAffectAll)] AffectEnum affect_records); [id(0x00000419)] HRESULT CancelBatch( [in, defaultvalue(adAffectAll)] AffectEnum affect_records); [id(0x0000041b), propget] HRESULT CursorLocation( [out, retval] CursorLocationEnum *cursor_loc); [id(0x0000041b), propput] HRESULT CursorLocation( [in] CursorLocationEnum cursor_loc); [id(0x0000041c)] HRESULT NextRecordset( [out, optional] VARIANT *records_affected, [out, retval] _Recordset **record_set); [id(0x0000040c)] HRESULT Supports( [in] CursorOptionEnum cursor_options, [out, retval] VARIANT_BOOL *ret); [id(0xfffffff8), propget, hidden] HRESULT Collect( [in] VARIANT index, [out, retval] VARIANT *var); [id(0xfffffff8), propput, hidden] HRESULT Collect( [in] VARIANT index, [in] VARIANT var); [id(0x0000041d), propget] HRESULT MarshalOptions( [out, retval] MarshalOptionsEnum *options); [id(0x0000041d), propput] HRESULT MarshalOptions( [in] MarshalOptionsEnum options); [id(0x00000422)] HRESULT Find( [in] BSTR criteria, [in, defaultvalue(0)] LONG skip_records, [in, defaultvalue(adSearchForward)] SearchDirectionEnum search_direction, [in, optional] VARIANT start); }; [ uuid(0000054f-0000-0010-8000-00aa006d2ea4), odl, dual, nonextensible, oleautomation ] interface Recordset20 : Recordset15 { [id(0x0000041f)] HRESULT Cancel(); [id(0x00000420), propget] HRESULT DataSource( [out, retval] IUnknown **data_source); [id(0x00000420), propputref] HRESULT DataSource( [in] IUnknown *data_source); [hidden] HRESULT _xSave( [in, optional] BSTR filename, [in, defaultvalue(adPersistADTG)] PersistFormatEnum persist_format); [id(0x00000425), propget] HRESULT ActiveCommand( [out, retval] IDispatch **cmd); [id(0x00000427), propput] HRESULT StayInSync( [in] VARIANT_BOOL stay_in_sync); [id(0x00000427), propget] HRESULT StayInSync( [out, retval] VARIANT_BOOL *stay_in_sync); [id(0x00000426)] HRESULT GetString( [in, defaultvalue(adClipString)] StringFormatEnum string_format, [in, defaultvalue(-1)] LONG num_rows, [in, optional] BSTR column_delimiter, [in, optional] BSTR row_delimiter, [in, optional] BSTR null_expr, [out, retval] BSTR *ret_string); [id(0x00000428), propget] HRESULT DataMember( [out, retval] BSTR *data_member); [id(0x00000428), propput] HRESULT DataMember( [in] BSTR data_member); [id(0x00000429)] HRESULT CompareBookmarks( [in] VARIANT bookmark1, [in] VARIANT bookmark2, [out, retval] CompareEnum *compare); [id(0x0000040a)] HRESULT Clone( [in, defaultvalue(adLockUnspecified)] LockTypeEnum lock_type, [out, retval] _Recordset **object); [id(0x00000400)] HRESULT Resync( [in, defaultvalue(adAffectAll)] AffectEnum affect_records, [in, defaultvalue(adResyncAllValues)] ResyncEnum resync_values); }; [ uuid(00000555-0000-0010-8000-00aa006d2ea4), odl, dual, nonextensible, oleautomation ] interface Recordset21 : Recordset20 { [id(0x0000042a)] HRESULT Seek( [in] VARIANT key_values, [in, defaultvalue(adSeekFirstEQ)] SeekEnum seek_option); [id(0x0000042b), propput] HRESULT Index( [in] BSTR index); [id(0x0000042b), propget] HRESULT Index( [out, retval] BSTR *index); }; [ uuid(00000556-0000-0010-8000-00aa006d2ea4), odl, dual, nonextensible, oleautomation ] interface _Recordset : Recordset21 { [id(0x00000421)] HRESULT Save( [in, optional] VARIANT destination, [in, defaultvalue(adPersistADTG)] PersistFormatEnum persist_format); }; [ uuid(00000500-0000-0010-8000-00aa006d2ea4), odl, dual, nonextensible, oleautomation ] interface Error : IDispatch { [id(0x60020000), propget] HRESULT Number( [out, retval] LONG *number); [id(0x60020001), propget] HRESULT Source( [out, retval] BSTR *str); [id(00000000), propget] HRESULT Description( [out, retval] BSTR *str); [id(0x60020003), propget] HRESULT HelpFile( [out, retval] BSTR *str); [id(0x60020004), propget] HRESULT HelpContext( [out, retval] LONG *ctx); [id(0x60020005), propget] HRESULT SQLState( [out, retval] BSTR *str); [id(0x60020006), propget] HRESULT NativeError( [out, retval] LONG *error); }; [ uuid(00000501-0000-0010-8000-00aa006d2ea4), odl, dual, nonextensible, oleautomation ] interface Errors : _Collection { [id(00000000), propget] HRESULT Item( [in] VARIANT index, [out, retval] Error **object); [id(0x60030001)] HRESULT Clear(); }; [ uuid(00000515-0000-0010-8000-00aa006d2ea4), odl, dual, oleautomation ] interface Connection15 : _ADO { [id(00000000), propget] HRESULT ConnectionString( [out, retval] BSTR *str); [id(00000000), propput] HRESULT ConnectionString( [in] BSTR str); [id(0x00000002), propget] HRESULT CommandTimeout( [out, retval] LONG *timeout); [id(0x00000002), propput] HRESULT CommandTimeout( [in] LONG timeout); [id(0x00000003), propget] HRESULT ConnectionTimeout( [out, retval] LONG *timeout); [id(0x00000003), propput] HRESULT ConnectionTimeout( [in] LONG timeout); [id(0x00000004), propget] HRESULT Version( [out, retval] BSTR *str); [id(0x00000005)] HRESULT Close(); [id(0x00000006)] HRESULT Execute( [in] BSTR command, [out, optional] VARIANT *records_affected, [in, defaultvalue(-1)] LONG options, [out, retval] _Recordset **record_set); [id(0x00000007)] HRESULT BeginTrans( [out, retval] LONG *transaction_level); [id(0x00000008)] HRESULT CommitTrans(); [id(0x00000009)] HRESULT RollbackTrans(); [id(0x0000000a)] HRESULT Open( [in, defaultvalue("")] BSTR connection_str, [in, defaultvalue("")] BSTR user_id, [in, defaultvalue("")] BSTR password, [in, defaultvalue(-1)] LONG options); [id(0x0000000b), propget] HRESULT Errors( [out, retval] Errors **object); [id(0x0000000c), propget] HRESULT DefaultDatabase( [out, retval] BSTR *str); [id(0x0000000c), propput] HRESULT DefaultDatabase( [in] BSTR str); [id(0x0000000d), propget] HRESULT IsolationLevel( [out, retval] IsolationLevelEnum *level); [id(0x0000000d), propput] HRESULT IsolationLevel( [in] IsolationLevelEnum level); [id(0x0000000e), propget] HRESULT Attributes( [out, retval] LONG *attr); [id(0x0000000e), propput] HRESULT Attributes( [in] LONG attr); [id(0x0000000f), propget] HRESULT CursorLocation( [out, retval] CursorLocationEnum *cursor_loc); [id(0x0000000f), propput] HRESULT CursorLocation( [in] CursorLocationEnum cursor_loc); [id(0x00000010), propget] HRESULT Mode( [out, retval] ConnectModeEnum *mode); [id(0x00000010), propput] HRESULT Mode( [in] ConnectModeEnum mode); [id(0x00000011), propget] HRESULT Provider( [out, retval] BSTR *str); [id(0x00000011), propput] HRESULT Provider( [in] BSTR str); [id(0x00000012), propget] HRESULT State( [out, retval] LONG *state); [id(0x00000013)] HRESULT OpenSchema( [in] SchemaEnum schema, [in, optional] VARIANT restrictions, [in, optional] VARIANT schema_id, [out, retval] _Recordset **record_set); }; [ uuid(00000550-0000-0010-8000-00aa006d2ea4), odl, dual, oleautomation ] interface _Connection : Connection15 { [id(0x00000015)] HRESULT Cancel(); }; [ uuid(0000050c-0000-0010-8000-00aa006d2ea4), odl, dual, nonextensible, oleautomation ] interface _Parameter : _ADO { [id(0x60030000), propget] HRESULT Name( [out, retval] BSTR *str); [id(0x60030000), propput] HRESULT Name( [in] BSTR str); [id(00000000), propget] HRESULT Value( [out, retval] VARIANT *val); [id(00000000), propput] HRESULT Value( [in] VARIANT val); [id(0x60030004), propget] HRESULT Type( [out, retval] DataTypeEnum *data_type); [id(0x60030004), propput] HRESULT Type( [in] DataTypeEnum data_type); [id(0x60030006), propput] HRESULT Direction( [in] ParameterDirectionEnum direction); [id(0x60030006), propget] HRESULT Direction( [out, retval] ParameterDirectionEnum *direction); [id(0x60030008), propput] HRESULT Precision( [in] unsigned char precision); [id(0x60030008), propget] HRESULT Precision( [out, retval] unsigned char *precision); [id(0x6003000a), propput] HRESULT NumericScale( [in] unsigned char scale); [id(0x6003000a), propget] HRESULT NumericScale( [out, retval] unsigned char *scale); [id(0x6003000c), propput] HRESULT Size( [in] LONG size); [id(0x6003000c), propget] HRESULT Size( [out, retval] LONG *size); [id(0x6003000e)] HRESULT AppendChunk( [in] VARIANT val); [id(0x6003000f), propget] HRESULT Attributes( [out, retval] LONG *attrs); [id(0x6003000f), propput] HRESULT Attributes( [in] LONG attrs); }; [ uuid(00000513-0000-0010-8000-00aa006d2ea4), odl, dual, nonextensible, oleautomation ] interface _DynaCollection : _Collection { [id(0x60030000)] HRESULT Append( [in] IDispatch *object); [id(0x60030001)] HRESULT Delete( [in] VARIANT index); }; [ uuid(0000050d-0000-0010-8000-00aa006d2ea4), odl, dual, nonextensible, oleautomation ] interface Parameters : _DynaCollection { [id(00000000), propget] HRESULT Item( [in] VARIANT index, [out, retval] _Parameter **object); }; [ uuid(00000508-0000-0010-8000-00aa006d2ea4), odl, dual, nonextensible, oleautomation ] interface Command15 : _ADO { [id(0x60030000), propget] HRESULT ActiveConnection( [out, retval] _Connection **object); [id(0x60030000), propputref] HRESULT ActiveConnection( [in] _Connection *object); [id(0x60030000), propput] HRESULT ActiveConnection( [in] VARIANT object); [id(0x60030003), propget] HRESULT CommandText( [out, retval] BSTR *str); [id(0x60030003), propput] HRESULT CommandText( [in] BSTR str); [id(0x60030005), propget] HRESULT CommandTimeout( [out, retval] LONG *timeout); [id(0x60030005), propput] HRESULT CommandTimeout( [in] LONG timeout); [id(0x60030007), propget] HRESULT Prepared( [out, retval] VARIANT_BOOL *prepared); [id(0x60030007), propput] HRESULT Prepared( [in] VARIANT_BOOL prepared); [id(0x60030009)] HRESULT Execute( [out, optional] VARIANT *records_affected, [in, optional] VARIANT *parameters, [in, defaultvalue(-1)] LONG options, [out, retval] _Recordset **record_set); [id(0x6003000a)] HRESULT CreateParameter( [in, defaultvalue("")] BSTR name, [in, defaultvalue(adEmpty)] DataTypeEnum type, [in, defaultvalue(adParamInput)] ParameterDirectionEnum direction, [in, defaultvalue(0)] LONG size, [in, optional] VARIANT value, [out, retval] _Parameter **parameter); [id(00000000), propget] HRESULT Parameters( [out, retval] Parameters **object); [id(0x6003000c), propput] HRESULT CommandType( [in] CommandTypeEnum cmd_type); [id(0x6003000c), propget] HRESULT CommandType( [out, retval] CommandTypeEnum *cmd_type); [id(0x6003000e), propget] HRESULT Name( [out, retval] BSTR *name); [id(0x6003000e), propput] HRESULT Name( [in] BSTR name); }; [ uuid(0000054e-0000-0010-8000-00aa006d2ea4), odl, dual, nonextensible, oleautomation ] interface Command25 : Command15 { [id(0x60030010), propget] HRESULT State( [out, retval] LONG *state); [id(0x60030011)] HRESULT Cancel(); }; [ uuid(b08400bd-f9d1-4d02-b856-71d5dba123e9), odl, dual, nonextensible, oleautomation ] interface _Command : Command25 { [id(0x60030012), propputref] HRESULT CommandStream( [in] IUnknown *stream); [id(0x60030012), propget] HRESULT CommandStream( [out, retval] VARIANT *stream); [id(0x60030013), propput] HRESULT Dialect( [in] BSTR dialect); [id(0x60030013), propget] HRESULT Dialect( [out, retval] BSTR *dialect); [id(0x60030014), propput] HRESULT NamedParameters( [in] VARIANT_BOOL named_parameters); [id(0x60030014), propget] HRESULT NamedParameters( [out, retval] VARIANT_BOOL *named_parameters); }; [ uuid(00000402-0000-0010-8000-00aa006d2ea4), odl, hidden ] interface ConnectionEventsVt : IUnknown { HRESULT InfoMessage( [in] Error *error, [in, out] EventStatusEnum *status, [in] _Connection *connection); HRESULT BeginTransComplete( [in] LONG TransactionLevel, [in] Error *error, [in, out] EventStatusEnum *status, [in] _Connection *connection); HRESULT CommitTransComplete( [in] Error *error, [in, out] EventStatusEnum *status, [in] _Connection *connection); HRESULT RollbackTransComplete( [in] Error *error, [in, out] EventStatusEnum *status, [in] _Connection *connection); HRESULT WillExecute( [in, out] BSTR *source, [in, out] CursorTypeEnum *cursor_type, [in, out] LockTypeEnum *lock_type, [in, out] LONG *options, [in, out] EventStatusEnum *status, [in] _Command *command, [in] _Recordset *record_set, [in] _Connection *connection); HRESULT ExecuteComplete( [in] LONG records_affected, [in] Error *error, [in, out] EventStatusEnum *status, [in] _Command *command, [in] _Recordset *record_set, [in] _Connection *connection); HRESULT WillConnect( [in, out] BSTR *string, [in, out] BSTR *userid, [in, out] BSTR *password, [in, out] LONG *options, [in, out] EventStatusEnum *status, [in] _Connection *connection); HRESULT ConnectComplete( [in] Error *error, [in, out] EventStatusEnum *status, [in] _Connection *connection); HRESULT Disconnect( [in, out] EventStatusEnum *status, [in] _Connection *connection); }; [ uuid(00000400-0000-0010-8000-00aa006d2ea4) ] dispinterface ConnectionEvents { properties: methods: [id(00000000)] HRESULT InfoMessage( [in] Error *error, [in, out] EventStatusEnum *status, [in] _Connection *Connection); [id(0x00000001)] HRESULT BeginTransComplete( [in] LONG TransactionLevel, [in] Error *error, [in, out] EventStatusEnum *status, [in] _Connection *connection); [id(0x00000003)] HRESULT CommitTransComplete( [in] Error *error, [in, out] EventStatusEnum *status, [in] _Connection *connection); [id(0x00000002)] HRESULT RollbackTransComplete( [in] Error *error, [in, out] EventStatusEnum *status, [in] _Connection *connection); [id(0x00000004)] HRESULT WillExecute( [in, out] BSTR *source, [in, out] CursorTypeEnum *cursor_type, [in, out] LockTypeEnum *lock_type, [in, out] LONG *options, [in, out] EventStatusEnum *status, [in] _Command *command, [in] _Recordset *record_set, [in] _Connection *connection); [id(0x00000005)] HRESULT ExecuteComplete( [in] LONG records_affected, [in] Error *error, [in, out] EventStatusEnum *status, [in] _Command *command, [in] _Recordset *record_set, [in] _Connection *connection); [id(0x00000006)] HRESULT WillConnect( [in, out] BSTR *string, [in, out] BSTR *userid, [in, out] BSTR *password, [in, out] LONG *options, [in, out] EventStatusEnum *status, [in] _Connection *connection); [id(0x00000007)] HRESULT ConnectComplete( [in] Error *error, [in, out] EventStatusEnum *status, [in] _Connection *connection); [id(0x00000008)] HRESULT Disconnect( [in, out] EventStatusEnum *status, [in] _Connection *connection); }; [ uuid(00000562-0000-0010-8000-00aa006d2ea4), odl, dual, nonextensible, oleautomation ] interface _Record : _ADO { [id(1), propget] HRESULT ActiveConnection( [out, retval] VARIANT *connection); [id(1), propput] HRESULT ActiveConnection( [in] BSTR connection); [id(1), propputref] HRESULT ActiveConnection( [in] _Connection *connection); [id(2), propget] HRESULT State( [out, retval] ObjectStateEnum *state); [id(3), propget] HRESULT Source( [out, retval] VARIANT *source); [id(3), propput] HRESULT Source( [in] BSTR source); [id(3), propputref] HRESULT Source( [in] IDispatch *source); [id(4), propget] HRESULT Mode( [out, retval] ConnectModeEnum *mode); [id(4), propput] HRESULT Mode( [in] ConnectModeEnum mode); [id(5), propget] HRESULT ParentURL( [out, retval] BSTR *parent_URL); [id(6)] HRESULT MoveRecord( [in, defaultvalue("")] BSTR source, [in, defaultvalue("")] BSTR Destination, [in, optional] BSTR UserName, [in, optional] BSTR Password, [in, defaultvalue(adMoveUnspecified)] MoveRecordOptionsEnum Options, [in, optional] VARIANT_BOOL Async, [out, retval] BSTR *pbstrNewURL); [id(7)] HRESULT CopyRecord( [in, defaultvalue("")] BSTR source, [in, defaultvalue("")] BSTR destination, [in, optional] BSTR username, [in, optional] BSTR password, [in, defaultvalue(adCopyUnspecified)] CopyRecordOptionsEnum options, [in, optional] VARIANT_BOOL async, [out, retval] BSTR *new_URL); [id(8)] HRESULT DeleteRecord( [in] BSTR source, [in, optional] VARIANT_BOOL async); [id(9)] HRESULT Open( [in, optional] VARIANT source, [in, optional] VARIANT active_connection, [in, optional] ConnectModeEnum mode, [in, defaultvalue(adFailIfNotExists)] RecordCreateOptionsEnum create_options, [in, defaultvalue(adOpenRecordUnspecified)] RecordOpenOptionsEnum options, [in, optional] BSTR username, [in, optional] BSTR password); [id(10)] HRESULT Close(); [id(0), propget] HRESULT Fields( [out, retval] Fields **fields); [id(11), propget] HRESULT RecordType( [out, retval] RecordTypeEnum *type); [id(12)] HRESULT GetChildren( [out, retval] _Recordset **record_set); [id(13)] HRESULT Cancel(); }; [ uuid(00000565-0000-0010-8000-00aa006d2ea4), odl, dual, nonextensible, oleautomation ] interface _Stream : IDispatch { [id(1), propget] HRESULT Size( [out, retval] LONG *size); [id(2), propget] HRESULT EOS( [out, retval] VARIANT_BOOL *eos); [id(3), propget] HRESULT Position( [out, retval] LONG *position); [id(3), propput] HRESULT Position( [in] LONG position); [id(4), propget] HRESULT Type( [out, retval] StreamTypeEnum *type); [id(4), propput] HRESULT Type( [in] StreamTypeEnum type); [id(5), propget] HRESULT LineSeparator( [out, retval] LineSeparatorEnum *separator); [id(5), propput] HRESULT LineSeparator( [in] LineSeparatorEnum separator); [id(6), propget] HRESULT State( [out, retval] ObjectStateEnum *state); [id(7), propget] HRESULT Mode( [out, retval] ConnectModeEnum *mode); [id(7), propput] HRESULT Mode( [in] ConnectModeEnum mode); [id(8), propget] HRESULT Charset( [out, retval] BSTR *charset); [id(8), propput] HRESULT Charset( [in] BSTR charset); [id(9)] HRESULT Read( [in, defaultvalue(adReadAll)] LONG num_bytes, [out, retval] VARIANT *val); [id(10)] HRESULT Open( [in, optional] VARIANT source, [in, defaultvalue(adModeUnknown)] ConnectModeEnum mode, [in, defaultvalue(adOpenStreamUnspecified)] StreamOpenOptionsEnum options, [in, optional] BSTR username, [in, optional] BSTR password); [id(11)] HRESULT Close(void); [id(12)] HRESULT SkipLine(void); [id(13)] HRESULT Write( [in] VARIANT buffer); [id(14)] HRESULT SetEOS(void); [id(15)] HRESULT CopyTo( [in] _Stream *dest, [in, defaultvalue(-1)] LONG size); [id(16)] HRESULT Flush(void); [id(17)] HRESULT SaveToFile( [in] BSTR FileName, [in, defaultvalue(adSaveCreateNotExist)] SaveOptionsEnum options); [id(18)] HRESULT LoadFromFile( [in] BSTR filename); [id(19)] HRESULT ReadText( [in, defaultvalue(adReadAll)] LONG size, [out, retval] BSTR *str); [id(20)] HRESULT WriteText( [in] BSTR data, [in, defaultvalue(adWriteChar)] StreamWriteEnum options); [id(21)] HRESULT Cancel(void); }; [ uuid(00000266-0000-0010-8000-00aa006d2ea4) ] dispinterface RecordsetEvents { properties: methods: [id(0x00000009)] HRESULT WillChangeField( [in] LONG count, [in] VARIANT fields, [in, out] EventStatusEnum *status, [in] _Recordset *record_set); [id(0x0000000a)] HRESULT FieldChangeComplete( [in] LONG count, [in] VARIANT fields, [in] Error *error, [in, out] EventStatusEnum *status, [in] _Recordset *record_set); [id(0x0000000b)] HRESULT WillChangeRecord( [in] EventReasonEnum reason, [in] LONG count, [in, out] EventStatusEnum *status, [in] _Recordset *record_set); [id(0x0000000c)] HRESULT RecordChangeComplete( [in] EventReasonEnum reason, [in] LONG count, [in] Error *error, [in, out] EventStatusEnum *status, [in] _Recordset *record_set); [id(0x0000000d)] HRESULT WillChangeRecordset( [in] EventReasonEnum reason, [in, out] EventStatusEnum *status, [in] _Recordset *record_set); [id(0x0000000e)] HRESULT RecordsetChangeComplete( [in] EventReasonEnum reason, [in] Error *error, [in, out] EventStatusEnum *status, [in] _Recordset *record_set); [id(0x0000000f)] HRESULT WillMove( [in] EventReasonEnum reason, [in, out] EventStatusEnum *status, [in] _Recordset *record_set); [id(0x00000010)] HRESULT MoveComplete( [in] EventReasonEnum reason, [in] Error *error, [in, out] EventStatusEnum *status, [in] _Recordset *record_set); [id(0x00000011)] HRESULT EndOfRecordset( [in, out] VARIANT_BOOL *more_data, [in, out] EventStatusEnum *status, [in] _Recordset *record_set); [id(0x00000012)] HRESULT FetchProgress( [in] LONG progress, [in] LONG max_progress, [in, out] EventStatusEnum *status, [in] _Recordset *record_set); [id(0x00000013)] HRESULT FetchComplete( [in] Error *error, [in, out] EventStatusEnum *status, [in] _Recordset *record_set); }; [ uuid(00000538-0000-0010-8000-00aa006d2ea4), odl, hidden ] interface ADODebugging : IUnknown { HRESULT IsGlobalDebugMode( VARIANT_BOOL *debugging_on); HRESULT SetGlobalDebugMode( IUnknown *debugger, VARIANT_BOOL debugging_on); }; [ uuid(00000516-0000-0010-8000-00aa006d2ea4), odl, restricted ] interface ADOConnectionConstruction15 : IUnknown { [propget] HRESULT DSO( [out, retval] IUnknown **dso); [propget] HRESULT Session( [out, retval] IUnknown **session); HRESULT WrapDSOandSession( [in] IUnknown *dso, [in] IUnknown *session); }; [ uuid(00000551-0000-0010-8000-00aa006d2ea4), odl, restricted ] interface ADOConnectionConstruction : ADOConnectionConstruction15 { }; [ uuid(00000517-0000-0010-8000-00aa006d2ea4), odl, restricted ] interface ADOCommandConstruction : IUnknown { [propget] HRESULT OLEDBCommand( [out, retval] IUnknown **command); [propput] HRESULT OLEDBCommand( [in] IUnknown *command); }; [ uuid(00000283-0000-0010-8000-00aa006d2ea4), odl, restricted ] interface ADORecordsetConstruction : IDispatch { [propget] HRESULT Rowset( [out, retval] IUnknown **row_set); [propput] HRESULT Rowset( [in] IUnknown *row_set); [propget] HRESULT Chapter( [out, retval] LONG *chapter); [propput] HRESULT Chapter( [in] LONG chapter); [propget] HRESULT RowPosition( [out, retval] IUnknown **row_pos); [propput] HRESULT RowPosition( [in] IUnknown *row_pos); }; [ uuid(2a75196c-d9eb-4129-b803-931327f72d5c), version(2.8) ] library ADODB { importlib("stdole2.tlb"); [ uuid(00000514-0000-0010-8000-00aa006d2ea4), ] coclass Connection { [default] interface _Connection; [default, source] dispinterface ConnectionEvents; }; [ uuid(00000507-0000-0010-8000-00aa006d2ea4), ] coclass Command { [default] interface _Command; }; [ uuid(00000535-0000-0010-8000-00aa006d2ea4), ] coclass Recordset { [default] interface _Recordset; [default, source] dispinterface RecordsetEvents; }; [ uuid(0000050b-0000-0010-8000-00aa006d2ea4), ] coclass Parameter { [default] interface _Parameter; }; [ uuid(00000560-0000-0010-8000-00aa006d2ea4), ] coclass Record { [default] interface _Record; }; [ uuid(00000566-0000-0010-8000-00aa006d2ea4), ] coclass Stream { [default] interface _Stream; }; }