2 * Copyright 2019 Hans Leidekker for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
22 interface _Collection
;
24 interface _Connection
;
25 interface _DynaCollection
;
30 interface ADODebugging
;
31 interface ADOConnectionConstruction
;
32 interface ADOCommandConstruction
;
33 interface ADORecordsetConstruction
;
47 interface Recordset15
;
48 interface Recordset20
;
49 interface Recordset21
;
50 dispinterface ConnectionEvents
;
51 dispinterface RecordsetEvents
;
53 typedef [uuid(0000052A
-0000-0010-8000-00AA006D2EA4
)] enum ErrorValueEnum
55 adErrInvalidArgument
= 3001,
56 adErrOpeningFile
= 3002,
58 adErrWriteFile
= 3004,
59 adErrNoCurrentRecord
= 3021,
60 adErrIllegalOperation
= 3219,
61 adErrCantChangeProvider
= 3220,
62 adErrInTransaction
= 3246,
63 adErrFeatureNotAvailable
= 3251,
64 adErrItemNotFound
= 3265,
65 adErrObjectInCollection
= 3367,
66 adErrObjectNotSet
= 3420,
67 adErrDataConversion
= 3421,
68 adErrObjectClosed
= 3704,
69 adErrObjectOpen
= 3705,
70 adErrProviderNotFound
= 3706,
71 adErrBoundToCommand
= 3707,
72 adErrInvalidParamInfo
= 3708,
73 adErrInvalidConnection
= 3709,
74 adErrNotReentrant
= 3710,
75 adErrStillExecuting
= 3711,
76 adErrOperationCancelled
= 3712,
77 adErrStillConnecting
= 3713,
78 adErrInvalidTransaction
= 3714,
79 adErrNotExecuting
= 3715,
80 adErrUnsafeOperation
= 3716,
81 adWrnSecurityDialog
= 3717,
82 adWrnSecurityDialogHeader
= 3718,
83 adErrIntegrityViolation
= 3719,
84 adErrPermissionDenied
= 3720,
85 adErrDataOverflow
= 3721,
86 adErrSchemaViolation
= 3722,
87 adErrSignMismatch
= 3723,
88 adErrCantConvertvalue
= 3724,
89 adErrCantCreate
= 3725,
90 adErrColumnNotOnThisRow
= 3726,
91 adErrURLDoesNotExist
= 3727,
92 adErrTreePermissionDenied
= 3728,
93 adErrInvalidURL
= 3729,
94 adErrResourceLocked
= 3730,
95 adErrResourceExists
= 3731,
96 adErrCannotComplete
= 3732,
97 adErrVolumeNotFound
= 3733,
98 adErrOutOfSpace
= 3734,
99 adErrResourceOutOfScope
= 3735,
100 adErrUnavailable
= 3736,
101 adErrURLNamedRowDoesNotExist
= 3737,
102 adErrDelResOutOfScope
= 3738,
103 adErrPropInvalidColumn
= 3739,
104 adErrPropInvalidOption
= 3740,
105 adErrPropInvalidValue
= 3741,
106 adErrPropConflicting
= 3742,
107 adErrPropNotAllSettable
= 3743,
108 adErrPropNotSet
= 3744,
109 adErrPropNotSettable
= 3745,
110 adErrPropNotSupported
= 3746,
111 adErrCatalogNotSet
= 3747,
112 adErrCantChangeConnection
= 3748,
113 adErrFieldsUpdateFailed
= 3749,
114 adErrDenyNotSupported
= 3750,
115 adErrDenyTypeNotSupported
= 3751,
116 adErrProviderNotSpecified
= 3753,
117 adErrConnectionStringTooLong
= 3754
120 typedef [uuid(00000528-0000-0010-8000-00aa006d2ea4
)] enum PositionEnum
127 typedef [uuid(a56187c5
-d690
-4037-ae32
-a00edc376ac3
), public] PositionEnum PositionEnum_Param
;
129 typedef [uuid(0000051f
-0000-0010-8000-00aa006d2ea4
)] enum DataTypeEnum
136 adUnsignedTinyInt
= 17,
137 adUnsignedSmallInt
= 18,
139 adUnsignedBigInt
= 21,
162 adLongVarWChar
= 203,
165 adLongVarBinary
= 205,
173 typedef [uuid(00000548-0000-0010-8000-00aa006d2ea4
)] enum PersistFormatEnum
179 typedef [uuid(00000552-0000-0010-8000-00aa006d2ea4
)] enum SeekEnum
189 typedef [uuid(0000051b
-0000-0010-8000-00aa006d2ea4
)] enum CursorTypeEnum
191 adOpenUnspecified
= -1,
192 adOpenForwardOnly
= 0,
198 typedef [uuid(00000525-0000-0010-8000-00aa006d2ea4
)] enum FieldAttributeEnum
200 adFldUnspecified
= -1,
201 adFldMayDefer
= 0x00000002,
202 adFldUpdatable
= 0x00000004,
203 adFldUnknownUpdatable
= 0x00000008,
204 adFldFixed
= 0x00000010,
205 adFldIsNullable
= 0x00000020,
206 adFldMayBeNull
= 0x00000040,
207 adFldLong
= 0x00000080,
208 adFldRowID
= 0x00000100,
209 adFldRowVersion
= 0x00000200,
210 adFldCacheDeferred
= 0x00001000,
211 adFldIsChapter
= 0x00002000,
212 adFldNegativeScale
= 0x00004000,
213 adFldKeyColumn
= 0x00008000,
214 adFldIsRowURL
= 0x00010000,
215 adFldIsDefaultStream
= 0x00020000,
216 adFldIsCollection
= 0x00040000
217 } FieldAttributeEnum
;
219 typedef [uuid(00000544-0000-0010-8000-00aa006d2ea4
)] enum ResyncEnum
221 adResyncUnderlyingValues
= 1,
222 adResyncAllValues
= 2
225 typedef [uuid(0000051d
-0000-0010-8000-00aa006d2ea4
)] enum LockTypeEnum
227 adLockUnspecified
= -1,
229 adLockPessimistic
= 2,
230 adLockOptimistic
= 3,
231 adLockBatchOptimistic
= 4
234 typedef [uuid(00000543-0000-0010-8000-00aa006d2ea4
)] enum AffectEnum
239 adAffectAllChapters
= 4
242 typedef [uuid(00000526-0000-0010-8000-00aa006d2ea4
)] enum EditModeEnum
245 adEditInProgress
= 1,
250 typedef [uuid(0000052f
-0000-0010-8000-00aa006d2ea4
)] enum CursorLocationEnum
256 } CursorLocationEnum
;
258 typedef [uuid(0000051c
-0000-0010-8000-00aa006d2ea4
)] enum CursorOptionEnum
261 adMovePrevious
= 512,
263 adApproxPosition
= 16384,
264 adUpdateBatch
= 65536,
275 typedef [uuid(00000540-0000-0010-8000-00aa006d2ea4
)] enum MarshalOptionsEnum
278 adMarshalModifiedOnly
= 1
279 } MarshalOptionsEnum
;
281 typedef [uuid(00000547-0000-0010-8000-00aa006d2ea4
)] enum SearchDirectionEnum
284 adSearchBackward
= -1
285 } SearchDirectionEnum
;
287 typedef [uuid(00000549-0000-0010-8000-00aa006d2ea4
)] enum StringFormatEnum
292 typedef [uuid(00000545-0000-0010-8000-00aa006d2ea4
)] enum CompareEnum
294 adCompareLessThan
= 0,
296 adCompareGreaterThan
= 2,
297 adCompareNotEqual
= 3,
298 adCompareNotComparable
= 4
301 typedef [uuid(00000523-0000-0010-8000-00aa006d2ea4
)] enum IsolationLevelEnum
303 adXactUnspecified
= -1,
305 adXactReadUncommitted
= 256,
307 adXactCursorStability
= 4096,
308 adXactReadCommitted
= 4096,
309 adXactRepeatableRead
= 65536,
310 adXactSerializable
= 1048576,
311 adXactIsolated
= 1048576
312 } IsolationLevelEnum
;
314 typedef [uuid(00000521-0000-0010-8000-00aa006d2ea4
)] enum ConnectModeEnum
320 adModeShareDenyRead
= 4,
321 adModeShareDenyWrite
= 8,
322 adModeShareExclusive
= 12,
323 adModeShareDenyNone
= 16,
324 adModeRecursive
= 4194304
327 typedef [uuid(00000533-0000-0010-8000-00aa006d2ea4
)] enum SchemaEnum
329 adSchemaProviderSpecific
= -1,
331 adSchemaCatalogs
= 1,
332 adSchemaCharacterSets
= 2,
333 adSchemaCollations
= 3,
335 adSchemaCheckConstraints
= 5,
336 adSchemaConstraintColumnUsage
= 6,
337 adSchemaConstraintTableUsage
= 7,
338 adSchemaKeyColumnUsage
= 8,
339 adSchemaReferentialContraints
= 9,
340 adSchemaReferentialConstraints
= 9,
341 adSchemaTableConstraints
= 10,
342 adSchemaColumnsDomainUsage
= 11,
343 adSchemaIndexes
= 12,
344 adSchemaColumnPrivileges
= 13,
345 adSchemaTablePrivileges
= 14,
346 adSchemaUsagePrivileges
= 15,
347 adSchemaProcedures
= 16,
348 adSchemaSchemata
= 17,
349 adSchemaSQLLanguages
= 18,
350 adSchemaStatistics
= 19,
352 adSchemaTranslations
= 21,
353 adSchemaProviderTypes
= 22,
355 adSchemaViewColumnUsage
= 24,
356 adSchemaViewTableUsage
= 25,
357 adSchemaProcedureParameters
= 26,
358 adSchemaForeignKeys
= 27,
359 adSchemaPrimaryKeys
= 28,
360 adSchemaProcedureColumns
= 29,
361 adSchemaDBInfoKeywords
= 30,
362 adSchemaDBInfoLiterals
= 31,
364 adSchemaDimensions
= 33,
365 adSchemaHierarchies
= 34,
367 adSchemaMeasures
= 36,
368 adSchemaProperties
= 37,
369 adSchemaMembers
= 38,
370 adSchemaTrustees
= 39,
371 adSchemaFunctions
= 40,
372 adSchemaActions
= 41,
373 adSchemaCommands
= 42,
377 typedef [uuid(00000530-0000-0010-8000-00aa006d2ea4
)] enum EventStatusEnum
380 adStatusErrorsOccurred
= 2,
381 adStatusCantDeny
= 3,
383 adStatusUnwantedEvent
= 5
386 typedef [uuid(0000052c
-0000-0010-8000-00aa006d2ea4
)] enum ParameterDirectionEnum
391 adParamInputOutput
= 3,
392 adParamReturnValue
= 4
393 } ParameterDirectionEnum
;
395 typedef [uuid(0000052e-0000-0010-8000-00aa006d2ea4
)] enum CommandTypeEnum
397 adCmdUnspecified
= -1,
403 adCmdTableDirect
= 512
406 typedef [uuid(00000532-0000-0010-8000-00aa006d2ea4
)] enum ObjectStateEnum
410 adStateConnecting
= 2,
411 adStateExecuting
= 4,
415 typedef [uuid(00000573-0000-0010-8000-00aa006d2ea4
)] enum MoveRecordOptionsEnum
417 adMoveUnspecified
= -1,
419 adMoveDontUpdateLinks
= 2,
420 adMoveAllowEmulation
= 4
421 } MoveRecordOptionsEnum
;
423 typedef [uuid(00000574-0000-0010-8000-00aa006d2ea4
)] enum CopyRecordOptionsEnum
425 adCopyUnspecified
= -1,
427 adCopyAllowEmulation
= 4,
428 adCopyNonRecursive
= 2
429 } CopyRecordOptionsEnum
;
431 typedef [uuid(00000570-0000-0010-8000-00aa006d2ea4
)] enum RecordCreateOptionsEnum
433 adCreateCollection
= 0x00002000,
434 adCreateStructDoc
= 0x80000000,
435 adCreateNonCollection
= 0x00000000,
436 adOpenIfExists
= 0x02000000,
437 adCreateOverwrite
= 0x04000000,
438 adFailIfNotExists
= -1
439 } RecordCreateOptionsEnum
;
441 typedef [uuid(00000571-0000-0010-8000-00aa006d2ea4
)] enum RecordOpenOptionsEnum
443 adOpenRecordUnspecified
= -1,
444 adOpenOutput
= 0x00800000,
445 adOpenAsync
= 0x00001000,
446 adDelayFetchStream
= 0x00004000,
447 adDelayFetchFields
= 0x00008000,
448 adOpenExecuteCommand
= 0x00010000
449 } RecordOpenOptionsEnum
;
451 typedef [uuid(0000057d
-0000-0010-8000-00aa006d2ea4
)] enum RecordTypeEnum
454 adCollectionRecord
= 1,
458 typedef [uuid(00000576-0000-0010-8000-00aa006d2ea4
)] enum StreamTypeEnum
464 typedef [uuid(00000577-0000-0010-8000-00aa006d2ea4
)] enum LineSeparatorEnum
477 typedef [uuid(0000057c
-0000-0010-8000-00aa006d2ea4
)] enum SaveOptionsEnum
479 adSaveCreateNotExist
= 1,
480 adSaveCreateOverWrite
= 2
483 typedef [uuid(0000057a
-0000-0010-8000-00aa006d2ea4
)] enum StreamOpenOptionsEnum
485 adOpenStreamUnspecified
= -1,
486 adOpenStreamAsync
= 1,
487 adOpenStreamFromRecord
= 4
488 } StreamOpenOptionsEnum
;
490 typedef [uuid(0000057b
-0000-0010-8000-00aa006d2ea4
)] enum StreamWriteEnum
496 typedef [uuid(00000531-0000-0010-8000-00aa006d2ea4
)] enum EventReasonEnum
508 adRsnFirstChange
= 11,
511 adRsnMovePrevious
= 14,
516 uuid(00000503-0000-0010-8000-00aa006d2ea4
),
522 interface Property
: IDispatch
524 [id(00000000), propget]
526 [out, retval] VARIANT *val
);
528 [id(00000000), propput]
532 [id(0x60020002), propget]
534 [out, retval] BSTR *str
);
536 [id(0x60020003), propget]
538 [out, retval] DataTypeEnum
*type
);
540 [id(0x60020004), propget]
542 [out, retval] LONG *attributes
);
544 [id(0x60020004), propput]
546 [in] LONG attributes
);
550 uuid(00000512-0000-0010-8000-00aa006d2ea4
),
556 interface _Collection
: IDispatch
558 [id(0x60020000), propget]
560 [out, retval] LONG *count
);
562 [id(0xfffffffc), restricted]
564 [out, retval] IUnknown
**object);
571 uuid(00000504-0000-0010-8000-00aa006d2ea4
),
577 interface Properties
: _Collection
579 [id(00000000), propget]
582 [out, retval] Property
**object);
586 uuid(00000534-0000-0010-8000-00aa006d2ea4
),
592 interface _ADO
: IDispatch
594 [id(0x000001f4), propget]
596 [out, retval] Properties
**object);
600 uuid(0000054c
-0000-0010-8000-00aa006d2ea4
),
607 interface Field20
: _ADO
609 [id(0x00000455), propget]
611 [out, retval] LONG *size
);
613 [id(0x0000040c), propget]
615 [out, retval] LONG *attrs
);
617 [id(0x0000044f), propget]
619 [out, retval] LONG *size
);
621 [id(0x0000044c), propget]
623 [out, retval] BSTR *str
);
625 [id(0x0000044e), propget]
627 [out, retval] DataTypeEnum
*type
);
629 [id(00000000), propget]
631 [out, retval] VARIANT *val
);
633 [id(00000000), propput]
637 [id(0x60030007), propget]
639 [out, retval] unsigned char *precision
);
641 [id(0x60030008), propget]
642 HRESULT NumericScale
(
643 [out, retval] unsigned char *scale
);
652 [out, retval] VARIANT *var
);
654 [id(0x00000450), propget]
655 HRESULT OriginalValue
(
656 [out, retval] VARIANT *val
);
658 [id(0x00000451), propget]
659 HRESULT UnderlyingValue
(
660 [out, retval] VARIANT *val
);
662 [id(0x6003000d), propget]
664 [out, retval] IUnknown
**format
);
666 [id(0x6003000d), propputref]
668 [in] IUnknown
*format
);
670 [id(0x60030007), propput]
672 [in] unsigned char precision
);
674 [id(0x60030008), propput]
675 HRESULT NumericScale
(
676 [in] unsigned char scale
);
678 [id(0x0000044e), propput]
680 [in] DataTypeEnum type
);
682 [id(0x0000044f), propput]
686 [id(0x0000040c), propput]
692 uuid(00000569-0000-0010-8000-00aa006d2ea4
),
698 interface Field
: Field20
700 [id(0x0000045c), propget]
702 [out, retval] LONG *status
);
706 uuid(00000506-0000-0010-8000-00aa006d2ea4
),
712 interface Fields15
: _Collection
714 [id(00000000), propget]
717 [out, retval] Field
**object);
721 uuid(0000054d
-0000-0010-8000-00aa006d2ea4
),
727 interface Fields20
: Fields15
732 [in] DataTypeEnum type
,
733 [in, defaultvalue(0)] LONG size
,
734 [in, defaultvalue(adFldUnspecified
)] FieldAttributeEnum attr
);
742 uuid(00000564-0000-0010-8000-00aa006d2ea4
),
748 interface Fields
: Fields20
753 [in] DataTypeEnum type
,
754 [in, defaultvalue(0)] LONG size
,
755 [in, defaultvalue(adFldUnspecified
)] FieldAttributeEnum attr
,
756 [in, optional] VARIANT value
);
763 [in, defaultvalue(adResyncAllValues
)] ResyncEnum resync_values
);
766 HRESULT CancelUpdate
();
770 uuid(0000050e-0000-0010-8000-00aa006d2ea4
),
776 interface Recordset15
: _ADO
778 [id(0x000003e8), propget]
779 HRESULT AbsolutePosition
(
780 [out, retval] PositionEnum_Param
*position
);
782 [id(0x000003e8), propput]
783 HRESULT AbsolutePosition
(
784 [in] PositionEnum_Param position
);
786 [id(0x000003e9), propputref]
787 HRESULT ActiveConnection
(
788 [in] IDispatch
*connection
);
790 [id(0x000003e9), propput]
791 HRESULT ActiveConnection
(
792 [in] VARIANT connection
);
794 [id(0x000003e9), propget]
795 HRESULT ActiveConnection
(
796 [out, retval] VARIANT *connection
);
798 [id(0x000003ea), propget]
800 [out, retval] VARIANT_BOOL *bof
);
802 [id(0x000003eb), propget]
804 [out, retval] VARIANT *bookmark
);
806 [id(0x000003eb), propput]
808 [in] VARIANT bookmark
);
810 [id(0x000003ec), propget]
812 [out, retval] LONG *size
);
814 [id(0x000003ec), propput]
818 [id(0x000003ed), propget]
820 [out, retval] CursorTypeEnum
*cursor_type
);
822 [id(0x000003ed), propput]
824 [in] CursorTypeEnum cursor_type
);
826 [id(0x000003ee), propget]
828 [out, retval] VARIANT_BOOL *eof
);
830 [id(00000000), propget]
832 [out, retval] Fields
**object);
834 [id(0x000003f0), propget]
836 [out, retval] LockTypeEnum
*lock_type
);
838 [id(0x000003f0), propput]
840 [in] LockTypeEnum lock_type
);
842 [id(0x000003f1), propget]
844 [out, retval] LONG *max_records
);
846 [id(0x000003f1), propput]
848 [in] LONG max_records
);
850 [id(0x000003f2), propget]
852 [out, retval] LONG *count
);
854 [id(0x000003f3), propputref]
856 [in] IDispatch
*source);
858 [id(0x000003f3), propput]
862 [id(0x000003f3), propget]
864 [out, retval] VARIANT *source);
868 [in, optional] VARIANT field_list
,
869 [in, optional] VARIANT values
);
872 HRESULT CancelUpdate
();
879 [in, defaultvalue(adAffectCurrent
)] AffectEnum affect_records
);
883 [in, defaultvalue(-1)] LONG rows
,
884 [in, optional] VARIANT start
,
885 [in, optional] VARIANT fields
,
886 [out, retval] VARIANT *var
);
890 [in] LONG num_records
,
891 [in, optional] VARIANT start
);
897 HRESULT MovePrevious
();
907 [in, optional] VARIANT source,
908 [in, optional] VARIANT active_connection
,
909 [in, defaultvalue(adOpenUnspecified
)] CursorTypeEnum cursor_type
,
910 [in, defaultvalue(adLockUnspecified
)] LockTypeEnum lock_type
,
911 [in, defaultvalue(-1)] LONG options
);
915 [in, defaultvalue(-1)] LONG options
);
917 [id(0x60030022), hidden]
919 [in, defaultvalue(adAffectAll
)] AffectEnum affect_records
);
923 [in, optional] VARIANT fields
,
924 [in, optional] VARIANT values
);
926 [id(0x00000417), propget]
927 HRESULT AbsolutePage
(
928 [out, retval] PositionEnum_Param
*position
);
930 [id(0x00000417), propput]
931 HRESULT AbsolutePage
(
932 [in] PositionEnum_Param position
);
934 [id(0x00000402), propget]
936 [out, retval] EditModeEnum
*mode
);
938 [id(0x00000406), propget]
940 [out, retval] VARIANT *criteria
);
942 [id(0x00000406), propput]
944 [in] VARIANT criteria
);
946 [id(0x0000041a), propget]
948 [out, retval] LONG *count
);
950 [id(0x00000418), propget]
952 [out, retval] LONG *size
);
954 [id(0x00000418), propput]
958 [id(0x00000407), propget]
960 [out, retval] BSTR *criteria
);
962 [id(0x00000407), propput]
966 [id(0x00000405), propget]
968 [out, retval] LONG *status
);
970 [id(0x0000041e), propget]
972 [out, retval] LONG *state
);
974 [id(0x60030030), hidden]
976 [out, retval] _Recordset
**object);
980 [in, defaultvalue(adAffectAll
)] AffectEnum affect_records
);
984 [in, defaultvalue(adAffectAll
)] AffectEnum affect_records
);
986 [id(0x0000041b), propget]
987 HRESULT CursorLocation
(
988 [out, retval] CursorLocationEnum
*cursor_loc
);
990 [id(0x0000041b), propput]
991 HRESULT CursorLocation
(
992 [in] CursorLocationEnum cursor_loc
);
995 HRESULT NextRecordset
(
996 [out, optional] VARIANT *records_affected
,
997 [out, retval] _Recordset
**record_set
);
1001 [in] CursorOptionEnum cursor_options
,
1002 [out, retval] VARIANT_BOOL *ret
);
1004 [id(0xfffffff8), propget, hidden]
1007 [out, retval] VARIANT *var
);
1009 [id(0xfffffff8), propput, hidden]
1014 [id(0x0000041d), propget]
1015 HRESULT MarshalOptions
(
1016 [out, retval] MarshalOptionsEnum
*options
);
1018 [id(0x0000041d), propput]
1019 HRESULT MarshalOptions
(
1020 [in] MarshalOptionsEnum options
);
1025 [in, defaultvalue(0)] LONG skip_records
,
1026 [in, defaultvalue(adSearchForward
)] SearchDirectionEnum search_direction
,
1027 [in, optional] VARIANT start
);
1031 uuid(0000054f
-0000-0010-8000-00aa006d2ea4
),
1037 interface Recordset20
: Recordset15
1042 [id(0x00000420), propget]
1044 [out, retval] IUnknown
**data_source
);
1046 [id(0x00000420), propputref]
1048 [in] IUnknown
*data_source
);
1052 [in, optional] BSTR filename
,
1053 [in, defaultvalue(adPersistADTG
)] PersistFormatEnum persist_format
);
1055 [id(0x00000425), propget]
1056 HRESULT ActiveCommand
(
1057 [out, retval] IDispatch
**cmd
);
1059 [id(0x00000427), propput]
1061 [in] VARIANT_BOOL stay_in_sync
);
1063 [id(0x00000427), propget]
1065 [out, retval] VARIANT_BOOL *stay_in_sync
);
1069 [in, defaultvalue(adClipString
)] StringFormatEnum string_format
,
1070 [in, defaultvalue(-1)] LONG num_rows
,
1071 [in, optional] BSTR column_delimiter
,
1072 [in, optional] BSTR row_delimiter
,
1073 [in, optional] BSTR null_expr
,
1074 [out, retval] BSTR *ret_string
);
1076 [id(0x00000428), propget]
1078 [out, retval] BSTR *data_member
);
1080 [id(0x00000428), propput]
1082 [in] BSTR data_member
);
1085 HRESULT CompareBookmarks
(
1086 [in] VARIANT bookmark1
,
1087 [in] VARIANT bookmark2
,
1088 [out, retval] CompareEnum
*compare
);
1092 [in, defaultvalue(adLockUnspecified
)] LockTypeEnum lock_type
,
1093 [out, retval] _Recordset
**object);
1097 [in, defaultvalue(adAffectAll
)] AffectEnum affect_records
,
1098 [in, defaultvalue(adResyncAllValues
)] ResyncEnum resync_values
);
1102 uuid(00000555-0000-0010-8000-00aa006d2ea4
),
1108 interface Recordset21
: Recordset20
1112 [in] VARIANT key_values
,
1113 [in, defaultvalue(adSeekFirstEQ
)] SeekEnum seek_option
);
1115 [id(0x0000042b), propput]
1119 [id(0x0000042b), propget]
1121 [out, retval] BSTR *index
);
1125 uuid(00000556-0000-0010-8000-00aa006d2ea4
),
1131 interface _Recordset
: Recordset21
1135 [in, optional] VARIANT destination
,
1136 [in, defaultvalue(adPersistADTG
)] PersistFormatEnum persist_format
);
1140 uuid(00000500-0000-0010-8000-00aa006d2ea4
),
1146 interface Error
: IDispatch
1148 [id(0x60020000), propget]
1150 [out, retval] LONG *number
);
1152 [id(0x60020001), propget]
1154 [out, retval] BSTR *str
);
1156 [id(00000000), propget]
1157 HRESULT Description
(
1158 [out, retval] BSTR *str
);
1160 [id(0x60020003), propget]
1162 [out, retval] BSTR *str
);
1164 [id(0x60020004), propget]
1165 HRESULT HelpContext(
1166 [out, retval] LONG *ctx
);
1168 [id(0x60020005), propget]
1170 [out, retval] BSTR *str
);
1172 [id(0x60020006), propget]
1173 HRESULT NativeError
(
1174 [out, retval] LONG *error
);
1178 uuid(00000501-0000-0010-8000-00aa006d2ea4
),
1184 interface Errors
: _Collection
1186 [id(00000000), propget]
1189 [out, retval] Error
**object);
1196 uuid(00000515-0000-0010-8000-00aa006d2ea4
),
1201 interface Connection15
: _ADO
1203 [id(00000000), propget]
1204 HRESULT ConnectionString
(
1205 [out, retval] BSTR *str
);
1207 [id(00000000), propput]
1208 HRESULT ConnectionString
(
1211 [id(0x00000002), propget]
1212 HRESULT CommandTimeout
(
1213 [out, retval] LONG *timeout
);
1215 [id(0x00000002), propput]
1216 HRESULT CommandTimeout
(
1219 [id(0x00000003), propget]
1220 HRESULT ConnectionTimeout
(
1221 [out, retval] LONG *timeout
);
1223 [id(0x00000003), propput]
1224 HRESULT ConnectionTimeout
(
1227 [id(0x00000004), propget]
1229 [out, retval] BSTR *str
);
1237 [out, optional] VARIANT *records_affected
,
1238 [in, defaultvalue(-1)] LONG options
,
1239 [out, retval] _Recordset
**record_set
);
1243 [out, retval] LONG *transaction_level
);
1246 HRESULT CommitTrans
();
1249 HRESULT RollbackTrans
();
1253 [in, defaultvalue("")] BSTR connection_str
,
1254 [in, defaultvalue("")] BSTR user_id
,
1255 [in, defaultvalue("")] BSTR password
,
1256 [in, defaultvalue(-1)] LONG options
);
1258 [id(0x0000000b), propget]
1260 [out, retval] Errors
**object);
1262 [id(0x0000000c), propget]
1263 HRESULT DefaultDatabase
(
1264 [out, retval] BSTR *str
);
1266 [id(0x0000000c), propput]
1267 HRESULT DefaultDatabase
(
1270 [id(0x0000000d), propget]
1271 HRESULT IsolationLevel
(
1272 [out, retval] IsolationLevelEnum
*level
);
1274 [id(0x0000000d), propput]
1275 HRESULT IsolationLevel
(
1276 [in] IsolationLevelEnum level
);
1278 [id(0x0000000e), propget]
1280 [out, retval] LONG *attr
);
1282 [id(0x0000000e), propput]
1286 [id(0x0000000f), propget]
1287 HRESULT CursorLocation
(
1288 [out, retval] CursorLocationEnum
*cursor_loc
);
1290 [id(0x0000000f), propput]
1291 HRESULT CursorLocation
(
1292 [in] CursorLocationEnum cursor_loc
);
1294 [id(0x00000010), propget]
1296 [out, retval] ConnectModeEnum
*mode
);
1298 [id(0x00000010), propput]
1300 [in] ConnectModeEnum mode
);
1302 [id(0x00000011), propget]
1304 [out, retval] BSTR *str
);
1306 [id(0x00000011), propput]
1310 [id(0x00000012), propget]
1312 [out, retval] LONG *state
);
1316 [in] SchemaEnum schema
,
1317 [in, optional] VARIANT restrictions
,
1318 [in, optional] VARIANT schema_id
,
1319 [out, retval] _Recordset
**record_set
);
1323 uuid(00000550-0000-0010-8000-00aa006d2ea4
),
1328 interface _Connection
: Connection15
1335 uuid(0000050c
-0000-0010-8000-00aa006d2ea4
),
1341 interface _Parameter
: _ADO
1343 [id(0x60030000), propget]
1345 [out, retval] BSTR *str
);
1347 [id(0x60030000), propput]
1351 [id(00000000), propget]
1353 [out, retval] VARIANT *val
);
1355 [id(00000000), propput]
1359 [id(0x60030004), propget]
1361 [out, retval] DataTypeEnum
*data_type
);
1363 [id(0x60030004), propput]
1365 [in] DataTypeEnum data_type
);
1367 [id(0x60030006), propput]
1369 [in] ParameterDirectionEnum direction
);
1371 [id(0x60030006), propget]
1373 [out, retval] ParameterDirectionEnum
*direction
);
1375 [id(0x60030008), propput]
1377 [in] unsigned char precision
);
1379 [id(0x60030008), propget]
1381 [out, retval] unsigned char *precision
);
1383 [id(0x6003000a), propput]
1384 HRESULT NumericScale
(
1385 [in] unsigned char scale
);
1387 [id(0x6003000a), propget]
1388 HRESULT NumericScale
(
1389 [out, retval] unsigned char *scale
);
1391 [id(0x6003000c), propput]
1395 [id(0x6003000c), propget]
1397 [out, retval] LONG *size
);
1400 HRESULT AppendChunk
(
1403 [id(0x6003000f), propget]
1405 [out, retval] LONG *attrs
);
1407 [id(0x6003000f), propput]
1413 uuid(00000513-0000-0010-8000-00aa006d2ea4
),
1419 interface _DynaCollection
: _Collection
1423 [in] IDispatch
*object);
1427 [in] VARIANT index
);
1431 uuid(0000050d
-0000-0010-8000-00aa006d2ea4
),
1437 interface Parameters
: _DynaCollection
1439 [id(00000000), propget]
1442 [out, retval] _Parameter
**object);
1446 uuid(00000508-0000-0010-8000-00aa006d2ea4
),
1452 interface Command15
: _ADO
1454 [id(0x60030000), propget]
1455 HRESULT ActiveConnection
(
1456 [out, retval] _Connection
**object);
1458 [id(0x60030000), propputref]
1459 HRESULT ActiveConnection
(
1460 [in] _Connection
*object);
1462 [id(0x60030000), propput]
1463 HRESULT ActiveConnection
(
1464 [in] VARIANT object);
1466 [id(0x60030003), propget]
1467 HRESULT CommandText
(
1468 [out, retval] BSTR *str
);
1470 [id(0x60030003), propput]
1471 HRESULT CommandText
(
1474 [id(0x60030005), propget]
1475 HRESULT CommandTimeout
(
1476 [out, retval] LONG *timeout
);
1478 [id(0x60030005), propput]
1479 HRESULT CommandTimeout
(
1482 [id(0x60030007), propget]
1484 [out, retval] VARIANT_BOOL *prepared
);
1486 [id(0x60030007), propput]
1488 [in] VARIANT_BOOL prepared
);
1492 [out, optional] VARIANT *records_affected
,
1493 [in, optional] VARIANT *parameters
,
1494 [in, defaultvalue(-1)] LONG options
,
1495 [out, retval] _Recordset
**record_set
);
1498 HRESULT CreateParameter
(
1499 [in, defaultvalue("")] BSTR name
,
1500 [in, defaultvalue(adEmpty
)] DataTypeEnum type
,
1501 [in, defaultvalue(adParamInput
)] ParameterDirectionEnum direction
,
1502 [in, defaultvalue(0)] LONG size
,
1503 [in, optional] VARIANT value
,
1504 [out, retval] _Parameter
**parameter
);
1506 [id(00000000), propget]
1508 [out, retval] Parameters
**object);
1510 [id(0x6003000c), propput]
1511 HRESULT CommandType
(
1512 [in] CommandTypeEnum cmd_type
);
1514 [id(0x6003000c), propget]
1515 HRESULT CommandType
(
1516 [out, retval] CommandTypeEnum
*cmd_type
);
1518 [id(0x6003000e), propget]
1520 [out, retval] BSTR *name
);
1522 [id(0x6003000e), propput]
1528 uuid(0000054e-0000-0010-8000-00aa006d2ea4
),
1534 interface Command25
: Command15
1536 [id(0x60030010), propget]
1538 [out, retval] LONG *state
);
1545 uuid(b08400bd
-f9d1
-4d02
-b856
-71d5dba123e9
),
1551 interface _Command
: Command25
1553 [id(0x60030012), propputref]
1554 HRESULT CommandStream
(
1555 [in] IUnknown
*stream
);
1557 [id(0x60030012), propget]
1558 HRESULT CommandStream
(
1559 [out, retval] VARIANT *stream
);
1561 [id(0x60030013), propput]
1565 [id(0x60030013), propget]
1567 [out, retval] BSTR *dialect
);
1569 [id(0x60030014), propput]
1570 HRESULT NamedParameters
(
1571 [in] VARIANT_BOOL named_parameters
);
1573 [id(0x60030014), propget]
1574 HRESULT NamedParameters
(
1575 [out, retval] VARIANT_BOOL *named_parameters
);
1579 uuid(00000400-0000-0010-8000-00aa006d2ea4
)
1581 dispinterface ConnectionEvents
1586 HRESULT InfoMessage
(
1588 [in, out] EventStatusEnum
*status
,
1589 [in] _Connection
*Connection
);
1592 HRESULT BeginTransComplete
(
1593 [in] LONG TransactionLevel
,
1595 [in, out] EventStatusEnum
*status
,
1596 [in] _Connection
*connection
);
1599 HRESULT CommitTransComplete
(
1601 [in, out] EventStatusEnum
*status
,
1602 [in] _Connection
*connection
);
1605 HRESULT RollbackTransComplete
(
1607 [in, out] EventStatusEnum
*status
,
1608 [in] _Connection
*connection
);
1611 HRESULT WillExecute
(
1612 [in, out] BSTR *source,
1613 [in, out] CursorTypeEnum
*cursor_type
,
1614 [in, out] LockTypeEnum
*lock_type
,
1615 [in, out] LONG *options
,
1616 [in, out] EventStatusEnum
*status
,
1617 [in] _Command
*command
,
1618 [in] _Recordset
*record_set
,
1619 [in] _Connection
*connection
);
1622 HRESULT ExecuteComplete
(
1623 [in] LONG records_affected
,
1625 [in, out] EventStatusEnum
*status
,
1626 [in] _Command
*command
,
1627 [in] _Recordset
*record_set
,
1628 [in] _Connection
*connection
);
1631 HRESULT WillConnect
(
1632 [in, out] BSTR *string,
1633 [in, out] BSTR *userid
,
1634 [in, out] BSTR *password
,
1635 [in, out] LONG *options
,
1636 [in, out] EventStatusEnum
*status
,
1637 [in] _Connection
*connection
);
1640 HRESULT ConnectComplete
(
1642 [in, out] EventStatusEnum
*status
,
1643 [in] _Connection
*connection
);
1647 [in, out] EventStatusEnum
*status
,
1648 [in] _Connection
*connection
);
1652 uuid(00000562-0000-0010-8000-00aa006d2ea4
),
1658 interface _Record
: _ADO
1661 HRESULT ActiveConnection
(
1662 [out, retval] VARIANT *connection
);
1665 HRESULT ActiveConnection
(
1666 [in] BSTR connection
);
1669 HRESULT ActiveConnection
(
1670 [in] _Connection
*connection
);
1674 [out, retval] ObjectStateEnum
*state
);
1678 [out, retval] VARIANT *source);
1686 [in] IDispatch
*source);
1690 [out, retval] ConnectModeEnum
*mode
);
1694 [in] ConnectModeEnum mode
);
1698 [out, retval] BSTR *parent_URL
);
1702 [in, defaultvalue("")] BSTR source,
1703 [in, defaultvalue("")] BSTR Destination
,
1704 [in, optional] BSTR UserName
,
1705 [in, optional] BSTR Password
,
1706 [in, defaultvalue(adMoveUnspecified
)] MoveRecordOptionsEnum Options
,
1707 [in, optional] VARIANT_BOOL Async
,
1708 [out, retval] BSTR *pbstrNewURL
);
1712 [in, defaultvalue("")] BSTR source,
1713 [in, defaultvalue("")] BSTR destination
,
1714 [in, optional] BSTR username
,
1715 [in, optional] BSTR password
,
1716 [in, defaultvalue(adCopyUnspecified
)] CopyRecordOptionsEnum options
,
1717 [in, optional] VARIANT_BOOL async
,
1718 [out, retval] BSTR *new_URL
);
1721 HRESULT DeleteRecord
(
1723 [in, optional] VARIANT_BOOL async
);
1727 [in, optional] VARIANT source,
1728 [in, optional] VARIANT active_connection
,
1729 [in, optional] ConnectModeEnum mode
,
1730 [in, defaultvalue(adFailIfNotExists
)] RecordCreateOptionsEnum create_options
,
1731 [in, defaultvalue(adOpenRecordUnspecified
)] RecordOpenOptionsEnum options
,
1732 [in, optional] BSTR username
,
1733 [in, optional] BSTR password
);
1740 [out, retval] Fields
**fields
);
1744 [out, retval] RecordTypeEnum
*type
);
1747 HRESULT GetChildren
(
1748 [out, retval] _Recordset
**record_set
);
1755 uuid(00000565-0000-0010-8000-00aa006d2ea4
),
1761 interface _Stream
: IDispatch
1765 [out, retval] LONG *size
);
1769 [out, retval] VARIANT_BOOL *eos
);
1773 [out, retval] LONG *position
);
1777 [in] LONG position
);
1781 [out, retval] StreamTypeEnum
*type
);
1785 [in] StreamTypeEnum type
);
1788 HRESULT LineSeparator
(
1789 [out, retval] LineSeparatorEnum
*separator
);
1792 HRESULT LineSeparator
(
1793 [in] LineSeparatorEnum separator
);
1797 [out, retval] ObjectStateEnum
*state
);
1801 [out, retval] ConnectModeEnum
*mode
);
1805 [in] ConnectModeEnum mode
);
1809 [out, retval] BSTR *charset
);
1817 [in, defaultvalue(adReadAll
)] LONG num_bytes
,
1818 [out, retval] VARIANT *val
);
1822 [in, optional] VARIANT source,
1823 [in, defaultvalue(adModeUnknown
)] ConnectModeEnum mode
,
1824 [in, defaultvalue(adOpenStreamUnspecified
)] StreamOpenOptionsEnum options
,
1825 [in, optional] BSTR username
,
1826 [in, optional] BSTR password
);
1829 HRESULT Close
(void);
1832 HRESULT SkipLine
(void);
1836 [in] VARIANT buffer
);
1839 HRESULT SetEOS
(void);
1844 [in, defaultvalue(-1)] LONG size
);
1847 HRESULT Flush
(void);
1852 [in, defaultvalue(adSaveCreateNotExist
)] SaveOptionsEnum options
);
1855 HRESULT LoadFromFile
(
1856 [in] BSTR filename
);
1860 [in, defaultvalue(adReadAll
)] LONG size
,
1861 [out, retval] BSTR *str
);
1866 [in, defaultvalue(adWriteChar
)] StreamWriteEnum options
);
1869 HRESULT Cancel
(void);
1873 uuid(00000266-0000-0010-8000-00aa006d2ea4
)
1875 dispinterface RecordsetEvents
1880 HRESULT WillChangeField
(
1882 [in] VARIANT fields
,
1883 [in, out] EventStatusEnum
*status
,
1884 [in] _Recordset
*record_set
);
1887 HRESULT FieldChangeComplete
(
1889 [in] VARIANT fields
,
1891 [in, out] EventStatusEnum
*status
,
1892 [in] _Recordset
*record_set
);
1895 HRESULT WillChangeRecord
(
1896 [in] EventReasonEnum reason
,
1898 [in, out] EventStatusEnum
*status
,
1899 [in] _Recordset
*record_set
);
1902 HRESULT RecordChangeComplete
(
1903 [in] EventReasonEnum reason
,
1906 [in, out] EventStatusEnum
*status
,
1907 [in] _Recordset
*record_set
);
1910 HRESULT WillChangeRecordset
(
1911 [in] EventReasonEnum reason
,
1912 [in, out] EventStatusEnum
*status
,
1913 [in] _Recordset
*record_set
);
1916 HRESULT RecordsetChangeComplete
(
1917 [in] EventReasonEnum reason
,
1919 [in, out] EventStatusEnum
*status
,
1920 [in] _Recordset
*record_set
);
1924 [in] EventReasonEnum reason
,
1925 [in, out] EventStatusEnum
*status
,
1926 [in] _Recordset
*record_set
);
1929 HRESULT MoveComplete
(
1930 [in] EventReasonEnum reason
,
1932 [in, out] EventStatusEnum
*status
,
1933 [in] _Recordset
*record_set
);
1936 HRESULT EndOfRecordset
(
1937 [in, out] VARIANT_BOOL *more_data
,
1938 [in, out] EventStatusEnum
*status
,
1939 [in] _Recordset
*record_set
);
1942 HRESULT FetchProgress
(
1944 [in] LONG max_progress
,
1945 [in, out] EventStatusEnum
*status
,
1946 [in] _Recordset
*record_set
);
1949 HRESULT FetchComplete
(
1951 [in, out] EventStatusEnum
*status
,
1952 [in] _Recordset
*record_set
);
1956 uuid(00000538-0000-0010-8000-00aa006d2ea4
),
1960 interface ADODebugging
: IUnknown
1962 HRESULT IsGlobalDebugMode
(
1963 VARIANT_BOOL *debugging_on
);
1965 HRESULT SetGlobalDebugMode
(
1967 VARIANT_BOOL debugging_on
);
1971 uuid(00000516-0000-0010-8000-00aa006d2ea4
),
1975 interface ADOConnectionConstruction15
: IUnknown
1979 [out, retval] IUnknown
**dso
);
1983 [out, retval] IUnknown
**session
);
1985 HRESULT WrapDSOandSession
(
1987 [in] IUnknown
*session
);
1991 uuid(00000551-0000-0010-8000-00aa006d2ea4
),
1995 interface ADOConnectionConstruction
: ADOConnectionConstruction15
2000 uuid(00000517-0000-0010-8000-00aa006d2ea4
),
2004 interface ADOCommandConstruction
: IUnknown
2007 HRESULT OLEDBCommand
(
2008 [out, retval] IUnknown
**command
);
2011 HRESULT OLEDBCommand
(
2012 [in] IUnknown
*command
);
2016 uuid(00000283-0000-0010-8000-00aa006d2ea4
),
2020 interface ADORecordsetConstruction
: IDispatch
2024 [out, retval] IUnknown
**row_set
);
2028 [in] IUnknown
*row_set
);
2032 [out, retval] LONG *chapter
);
2039 HRESULT RowPosition
(
2040 [out, retval] IUnknown
**row_pos
);
2043 HRESULT RowPosition
(
2044 [in] IUnknown
*row_pos
);
2048 uuid(2a75196c
-d9eb
-4129-b803
-931327f72d5c
),
2053 importlib
("stdole2.tlb");
2056 uuid(00000514-0000-0010-8000-00aa006d2ea4
),
2060 [default] interface _Connection
;
2061 [default, source] dispinterface ConnectionEvents
;
2065 uuid(00000507-0000-0010-8000-00aa006d2ea4
),
2069 [default] interface _Command
;
2073 uuid(00000535-0000-0010-8000-00aa006d2ea4
),
2077 [default] interface _Recordset
;
2078 [default, source] dispinterface RecordsetEvents
;
2082 uuid(0000050b
-0000-0010-8000-00aa006d2ea4
),
2086 [default] interface _Parameter
;
2090 uuid(00000560-0000-0010-8000-00aa006d2ea4
),
2094 [default] interface _Record
;
2098 uuid(00000566-0000-0010-8000-00aa006d2ea4
),
2102 [default] interface _Stream
;