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 interface ConnectionEventsVt
;
51 dispinterface ConnectionEvents
;
52 dispinterface RecordsetEvents
;
54 typedef [uuid(0000052A
-0000-0010-8000-00AA006D2EA4
)] enum ErrorValueEnum
56 adErrInvalidArgument
= 3001,
57 adErrOpeningFile
= 3002,
59 adErrWriteFile
= 3004,
60 adErrNoCurrentRecord
= 3021,
61 adErrIllegalOperation
= 3219,
62 adErrCantChangeProvider
= 3220,
63 adErrInTransaction
= 3246,
64 adErrFeatureNotAvailable
= 3251,
65 adErrItemNotFound
= 3265,
66 adErrObjectInCollection
= 3367,
67 adErrObjectNotSet
= 3420,
68 adErrDataConversion
= 3421,
69 adErrObjectClosed
= 3704,
70 adErrObjectOpen
= 3705,
71 adErrProviderNotFound
= 3706,
72 adErrBoundToCommand
= 3707,
73 adErrInvalidParamInfo
= 3708,
74 adErrInvalidConnection
= 3709,
75 adErrNotReentrant
= 3710,
76 adErrStillExecuting
= 3711,
77 adErrOperationCancelled
= 3712,
78 adErrStillConnecting
= 3713,
79 adErrInvalidTransaction
= 3714,
80 adErrNotExecuting
= 3715,
81 adErrUnsafeOperation
= 3716,
82 adWrnSecurityDialog
= 3717,
83 adWrnSecurityDialogHeader
= 3718,
84 adErrIntegrityViolation
= 3719,
85 adErrPermissionDenied
= 3720,
86 adErrDataOverflow
= 3721,
87 adErrSchemaViolation
= 3722,
88 adErrSignMismatch
= 3723,
89 adErrCantConvertvalue
= 3724,
90 adErrCantCreate
= 3725,
91 adErrColumnNotOnThisRow
= 3726,
92 adErrURLDoesNotExist
= 3727,
93 adErrTreePermissionDenied
= 3728,
94 adErrInvalidURL
= 3729,
95 adErrResourceLocked
= 3730,
96 adErrResourceExists
= 3731,
97 adErrCannotComplete
= 3732,
98 adErrVolumeNotFound
= 3733,
99 adErrOutOfSpace
= 3734,
100 adErrResourceOutOfScope
= 3735,
101 adErrUnavailable
= 3736,
102 adErrURLNamedRowDoesNotExist
= 3737,
103 adErrDelResOutOfScope
= 3738,
104 adErrPropInvalidColumn
= 3739,
105 adErrPropInvalidOption
= 3740,
106 adErrPropInvalidValue
= 3741,
107 adErrPropConflicting
= 3742,
108 adErrPropNotAllSettable
= 3743,
109 adErrPropNotSet
= 3744,
110 adErrPropNotSettable
= 3745,
111 adErrPropNotSupported
= 3746,
112 adErrCatalogNotSet
= 3747,
113 adErrCantChangeConnection
= 3748,
114 adErrFieldsUpdateFailed
= 3749,
115 adErrDenyNotSupported
= 3750,
116 adErrDenyTypeNotSupported
= 3751,
117 adErrProviderNotSpecified
= 3753,
118 adErrConnectionStringTooLong
= 3754
121 typedef [uuid(00000528-0000-0010-8000-00aa006d2ea4
)] enum PositionEnum
128 typedef [uuid(a56187c5
-d690
-4037-ae32
-a00edc376ac3
), public] PositionEnum PositionEnum_Param
;
130 typedef [uuid(0000051f
-0000-0010-8000-00aa006d2ea4
)] enum DataTypeEnum
137 adUnsignedTinyInt
= 17,
138 adUnsignedSmallInt
= 18,
140 adUnsignedBigInt
= 21,
163 adLongVarWChar
= 203,
166 adLongVarBinary
= 205,
174 typedef [uuid(00000548-0000-0010-8000-00aa006d2ea4
)] enum PersistFormatEnum
180 typedef [uuid(00000552-0000-0010-8000-00aa006d2ea4
)] enum SeekEnum
190 typedef [uuid(0000051b
-0000-0010-8000-00aa006d2ea4
)] enum CursorTypeEnum
192 adOpenUnspecified
= -1,
193 adOpenForwardOnly
= 0,
199 typedef [uuid(00000525-0000-0010-8000-00aa006d2ea4
)] enum FieldAttributeEnum
201 adFldUnspecified
= -1,
202 adFldMayDefer
= 0x00000002,
203 adFldUpdatable
= 0x00000004,
204 adFldUnknownUpdatable
= 0x00000008,
205 adFldFixed
= 0x00000010,
206 adFldIsNullable
= 0x00000020,
207 adFldMayBeNull
= 0x00000040,
208 adFldLong
= 0x00000080,
209 adFldRowID
= 0x00000100,
210 adFldRowVersion
= 0x00000200,
211 adFldCacheDeferred
= 0x00001000,
212 adFldIsChapter
= 0x00002000,
213 adFldNegativeScale
= 0x00004000,
214 adFldKeyColumn
= 0x00008000,
215 adFldIsRowURL
= 0x00010000,
216 adFldIsDefaultStream
= 0x00020000,
217 adFldIsCollection
= 0x00040000
218 } FieldAttributeEnum
;
220 typedef [uuid(00000544-0000-0010-8000-00aa006d2ea4
)] enum ResyncEnum
222 adResyncUnderlyingValues
= 1,
223 adResyncAllValues
= 2
226 typedef [uuid(0000051d
-0000-0010-8000-00aa006d2ea4
)] enum LockTypeEnum
228 adLockUnspecified
= -1,
230 adLockPessimistic
= 2,
231 adLockOptimistic
= 3,
232 adLockBatchOptimistic
= 4
235 typedef [uuid(00000543-0000-0010-8000-00aa006d2ea4
)] enum AffectEnum
240 adAffectAllChapters
= 4
243 typedef [uuid(00000526-0000-0010-8000-00aa006d2ea4
)] enum EditModeEnum
246 adEditInProgress
= 1,
251 typedef [uuid(0000052f
-0000-0010-8000-00aa006d2ea4
)] enum CursorLocationEnum
257 } CursorLocationEnum
;
259 typedef [uuid(0000051c
-0000-0010-8000-00aa006d2ea4
)] enum CursorOptionEnum
262 adMovePrevious
= 512,
264 adApproxPosition
= 16384,
265 adUpdateBatch
= 65536,
276 typedef [uuid(00000540-0000-0010-8000-00aa006d2ea4
)] enum MarshalOptionsEnum
279 adMarshalModifiedOnly
= 1
280 } MarshalOptionsEnum
;
282 typedef [uuid(00000547-0000-0010-8000-00aa006d2ea4
)] enum SearchDirectionEnum
285 adSearchBackward
= -1
286 } SearchDirectionEnum
;
288 typedef [uuid(00000549-0000-0010-8000-00aa006d2ea4
)] enum StringFormatEnum
293 typedef [uuid(00000545-0000-0010-8000-00aa006d2ea4
)] enum CompareEnum
295 adCompareLessThan
= 0,
297 adCompareGreaterThan
= 2,
298 adCompareNotEqual
= 3,
299 adCompareNotComparable
= 4
302 typedef [uuid(00000523-0000-0010-8000-00aa006d2ea4
)] enum IsolationLevelEnum
304 adXactUnspecified
= -1,
306 adXactReadUncommitted
= 256,
308 adXactCursorStability
= 4096,
309 adXactReadCommitted
= 4096,
310 adXactRepeatableRead
= 65536,
311 adXactSerializable
= 1048576,
312 adXactIsolated
= 1048576
313 } IsolationLevelEnum
;
315 typedef [uuid(00000521-0000-0010-8000-00aa006d2ea4
)] enum ConnectModeEnum
321 adModeShareDenyRead
= 4,
322 adModeShareDenyWrite
= 8,
323 adModeShareExclusive
= 12,
324 adModeShareDenyNone
= 16,
325 adModeRecursive
= 4194304
328 typedef [uuid(00000533-0000-0010-8000-00aa006d2ea4
)] enum SchemaEnum
330 adSchemaProviderSpecific
= -1,
332 adSchemaCatalogs
= 1,
333 adSchemaCharacterSets
= 2,
334 adSchemaCollations
= 3,
336 adSchemaCheckConstraints
= 5,
337 adSchemaConstraintColumnUsage
= 6,
338 adSchemaConstraintTableUsage
= 7,
339 adSchemaKeyColumnUsage
= 8,
340 adSchemaReferentialContraints
= 9,
341 adSchemaReferentialConstraints
= 9,
342 adSchemaTableConstraints
= 10,
343 adSchemaColumnsDomainUsage
= 11,
344 adSchemaIndexes
= 12,
345 adSchemaColumnPrivileges
= 13,
346 adSchemaTablePrivileges
= 14,
347 adSchemaUsagePrivileges
= 15,
348 adSchemaProcedures
= 16,
349 adSchemaSchemata
= 17,
350 adSchemaSQLLanguages
= 18,
351 adSchemaStatistics
= 19,
353 adSchemaTranslations
= 21,
354 adSchemaProviderTypes
= 22,
356 adSchemaViewColumnUsage
= 24,
357 adSchemaViewTableUsage
= 25,
358 adSchemaProcedureParameters
= 26,
359 adSchemaForeignKeys
= 27,
360 adSchemaPrimaryKeys
= 28,
361 adSchemaProcedureColumns
= 29,
362 adSchemaDBInfoKeywords
= 30,
363 adSchemaDBInfoLiterals
= 31,
365 adSchemaDimensions
= 33,
366 adSchemaHierarchies
= 34,
368 adSchemaMeasures
= 36,
369 adSchemaProperties
= 37,
370 adSchemaMembers
= 38,
371 adSchemaTrustees
= 39,
372 adSchemaFunctions
= 40,
373 adSchemaActions
= 41,
374 adSchemaCommands
= 42,
378 typedef [uuid(00000530-0000-0010-8000-00aa006d2ea4
)] enum EventStatusEnum
381 adStatusErrorsOccurred
= 2,
382 adStatusCantDeny
= 3,
384 adStatusUnwantedEvent
= 5
387 typedef [uuid(0000052c
-0000-0010-8000-00aa006d2ea4
)] enum ParameterDirectionEnum
392 adParamInputOutput
= 3,
393 adParamReturnValue
= 4
394 } ParameterDirectionEnum
;
396 typedef [uuid(0000052e-0000-0010-8000-00aa006d2ea4
)] enum CommandTypeEnum
398 adCmdUnspecified
= -1,
404 adCmdTableDirect
= 512
407 typedef [uuid(00000532-0000-0010-8000-00aa006d2ea4
)] enum ObjectStateEnum
411 adStateConnecting
= 2,
412 adStateExecuting
= 4,
416 typedef [uuid(00000573-0000-0010-8000-00aa006d2ea4
)] enum MoveRecordOptionsEnum
418 adMoveUnspecified
= -1,
420 adMoveDontUpdateLinks
= 2,
421 adMoveAllowEmulation
= 4
422 } MoveRecordOptionsEnum
;
424 typedef [uuid(00000574-0000-0010-8000-00aa006d2ea4
)] enum CopyRecordOptionsEnum
426 adCopyUnspecified
= -1,
428 adCopyAllowEmulation
= 4,
429 adCopyNonRecursive
= 2
430 } CopyRecordOptionsEnum
;
432 typedef [uuid(00000570-0000-0010-8000-00aa006d2ea4
)] enum RecordCreateOptionsEnum
434 adCreateCollection
= (int) 0x00002000,
435 adCreateStructDoc
= (int) 0x80000000,
436 adCreateNonCollection
= (int) 0x00000000,
437 adOpenIfExists
= (int) 0x02000000,
438 adCreateOverwrite
= (int) 0x04000000,
439 adFailIfNotExists
= (int) -1
440 } RecordCreateOptionsEnum
;
442 typedef [uuid(00000571-0000-0010-8000-00aa006d2ea4
)] enum RecordOpenOptionsEnum
444 adOpenRecordUnspecified
= -1,
445 adOpenOutput
= 0x00800000,
446 adOpenAsync
= 0x00001000,
447 adDelayFetchStream
= 0x00004000,
448 adDelayFetchFields
= 0x00008000,
449 adOpenExecuteCommand
= 0x00010000
450 } RecordOpenOptionsEnum
;
452 typedef [uuid(0000057d
-0000-0010-8000-00aa006d2ea4
)] enum RecordTypeEnum
455 adCollectionRecord
= 1,
459 typedef [uuid(00000576-0000-0010-8000-00aa006d2ea4
)] enum StreamTypeEnum
465 typedef [uuid(00000577-0000-0010-8000-00aa006d2ea4
)] enum LineSeparatorEnum
478 typedef [uuid(0000057c
-0000-0010-8000-00aa006d2ea4
)] enum SaveOptionsEnum
480 adSaveCreateNotExist
= 1,
481 adSaveCreateOverWrite
= 2
484 typedef [uuid(0000057a
-0000-0010-8000-00aa006d2ea4
)] enum StreamOpenOptionsEnum
486 adOpenStreamUnspecified
= -1,
487 adOpenStreamAsync
= 1,
488 adOpenStreamFromRecord
= 4
489 } StreamOpenOptionsEnum
;
491 typedef [uuid(0000057b
-0000-0010-8000-00aa006d2ea4
)] enum StreamWriteEnum
497 typedef [uuid(00000531-0000-0010-8000-00aa006d2ea4
)] enum EventReasonEnum
509 adRsnFirstChange
= 11,
512 adRsnMovePrevious
= 14,
516 typedef [uuid(0000051e-0000-0010-8000-00aa006d2ea4
)] enum ExecuteOptionEnum
518 adOptionUnspecified
= -1,
521 adAsyncFetchNonBlocking
= 64,
522 adExecuteNoRecords
= 128,
523 adExecuteStream
= 1024,
524 [hidden] adExecuteRecord
= 2048
527 typedef [uuid(00000541-0000-0010-8000-00aa006d2ea4
)] enum ConnectOptionEnum
529 adConnectUnspecified
= -1,
530 adAsyncConnect
= 0x10
534 uuid(00000503-0000-0010-8000-00aa006d2ea4
),
540 interface Property
: IDispatch
542 [id(00000000), propget]
544 [out, retval] VARIANT *val
);
546 [id(00000000), propput]
550 [id(0x60020002), propget]
552 [out, retval] BSTR *str
);
554 [id(0x60020003), propget]
556 [out, retval] DataTypeEnum
*type
);
558 [id(0x60020004), propget]
560 [out, retval] LONG *attributes
);
562 [id(0x60020004), propput]
564 [in] LONG attributes
);
568 uuid(00000512-0000-0010-8000-00aa006d2ea4
),
574 interface _Collection
: IDispatch
576 [id(0x60020000), propget]
578 [out, retval] LONG *count
);
580 [id(0xfffffffc), restricted]
582 [out, retval] IUnknown
**object);
589 uuid(00000504-0000-0010-8000-00aa006d2ea4
),
595 interface Properties
: _Collection
597 [id(00000000), propget]
600 [out, retval] Property
**object);
604 uuid(00000534-0000-0010-8000-00aa006d2ea4
),
610 interface _ADO
: IDispatch
612 [id(0x000001f4), propget]
614 [out, retval] Properties
**object);
618 uuid(0000054c
-0000-0010-8000-00aa006d2ea4
),
625 interface Field20
: _ADO
627 [id(0x00000455), propget]
629 [out, retval] LONG *size
);
631 [id(0x0000040c), propget]
633 [out, retval] LONG *attrs
);
635 [id(0x0000044f), propget]
637 [out, retval] LONG *size
);
639 [id(0x0000044c), propget]
641 [out, retval] BSTR *str
);
643 [id(0x0000044e), propget]
645 [out, retval] DataTypeEnum
*type
);
647 [id(00000000), propget]
649 [out, retval] VARIANT *val
);
651 [id(00000000), propput]
655 [id(0x60030007), propget]
657 [out, retval] unsigned char *precision
);
659 [id(0x60030008), propget]
660 HRESULT NumericScale
(
661 [out, retval] unsigned char *scale
);
670 [out, retval] VARIANT *var
);
672 [id(0x00000450), propget]
673 HRESULT OriginalValue
(
674 [out, retval] VARIANT *val
);
676 [id(0x00000451), propget]
677 HRESULT UnderlyingValue
(
678 [out, retval] VARIANT *val
);
680 [id(0x6003000d), propget]
682 [out, retval] IUnknown
**format
);
684 [id(0x6003000d), propputref]
686 [in] IUnknown
*format
);
688 [id(0x60030007), propput]
690 [in] unsigned char precision
);
692 [id(0x60030008), propput]
693 HRESULT NumericScale
(
694 [in] unsigned char scale
);
696 [id(0x0000044e), propput]
698 [in] DataTypeEnum type
);
700 [id(0x0000044f), propput]
704 [id(0x0000040c), propput]
710 uuid(00000569-0000-0010-8000-00aa006d2ea4
),
716 interface Field
: Field20
718 [id(0x0000045c), propget]
720 [out, retval] LONG *status
);
724 uuid(00000506-0000-0010-8000-00aa006d2ea4
),
730 interface Fields15
: _Collection
732 [id(00000000), propget]
735 [out, retval] Field
**object);
739 uuid(0000054d
-0000-0010-8000-00aa006d2ea4
),
745 interface Fields20
: Fields15
750 [in] DataTypeEnum type
,
751 [in, defaultvalue(0)] LONG size
,
752 [in, defaultvalue(adFldUnspecified
)] FieldAttributeEnum attr
);
760 uuid(00000564-0000-0010-8000-00aa006d2ea4
),
766 interface Fields
: Fields20
771 [in] DataTypeEnum type
,
772 [in, defaultvalue(0)] LONG size
,
773 [in, defaultvalue(adFldUnspecified
)] FieldAttributeEnum attr
,
774 [in, optional] VARIANT value
);
781 [in, defaultvalue(adResyncAllValues
)] ResyncEnum resync_values
);
784 HRESULT CancelUpdate
();
788 uuid(0000050e-0000-0010-8000-00aa006d2ea4
),
794 interface Recordset15
: _ADO
796 [id(0x000003e8), propget]
797 HRESULT AbsolutePosition
(
798 [out, retval] PositionEnum_Param
*position
);
800 [id(0x000003e8), propput]
801 HRESULT AbsolutePosition
(
802 [in] PositionEnum_Param position
);
804 [id(0x000003e9), propputref]
805 HRESULT ActiveConnection
(
806 [in] IDispatch
*connection
);
808 [id(0x000003e9), propput]
809 HRESULT ActiveConnection
(
810 [in] VARIANT connection
);
812 [id(0x000003e9), propget]
813 HRESULT ActiveConnection
(
814 [out, retval] VARIANT *connection
);
816 [id(0x000003ea), propget]
818 [out, retval] VARIANT_BOOL *bof
);
820 [id(0x000003eb), propget]
822 [out, retval] VARIANT *bookmark
);
824 [id(0x000003eb), propput]
826 [in] VARIANT bookmark
);
828 [id(0x000003ec), propget]
830 [out, retval] LONG *size
);
832 [id(0x000003ec), propput]
836 [id(0x000003ed), propget]
838 [out, retval] CursorTypeEnum
*cursor_type
);
840 [id(0x000003ed), propput]
842 [in] CursorTypeEnum cursor_type
);
844 [id(0x000003ee), propget]
846 [out, retval] VARIANT_BOOL *eof
);
848 [id(00000000), propget]
850 [out, retval] Fields
**object);
852 [id(0x000003f0), propget]
854 [out, retval] LockTypeEnum
*lock_type
);
856 [id(0x000003f0), propput]
858 [in] LockTypeEnum lock_type
);
860 [id(0x000003f1), propget]
862 [out, retval] LONG *max_records
);
864 [id(0x000003f1), propput]
866 [in] LONG max_records
);
868 [id(0x000003f2), propget]
870 [out, retval] LONG *count
);
872 [id(0x000003f3), propputref]
874 [in] IDispatch
*source);
876 [id(0x000003f3), propput]
880 [id(0x000003f3), propget]
882 [out, retval] VARIANT *source);
886 [in, optional] VARIANT field_list
,
887 [in, optional] VARIANT values
);
890 HRESULT CancelUpdate
();
897 [in, defaultvalue(adAffectCurrent
)] AffectEnum affect_records
);
901 [in, defaultvalue(-1)] LONG rows
,
902 [in, optional] VARIANT start
,
903 [in, optional] VARIANT fields
,
904 [out, retval] VARIANT *var
);
908 [in] LONG num_records
,
909 [in, optional] VARIANT start
);
915 HRESULT MovePrevious
();
925 [in, optional] VARIANT source,
926 [in, optional] VARIANT active_connection
,
927 [in, defaultvalue(adOpenUnspecified
)] CursorTypeEnum cursor_type
,
928 [in, defaultvalue(adLockUnspecified
)] LockTypeEnum lock_type
,
929 [in, defaultvalue(-1)] LONG options
);
933 [in, defaultvalue(-1)] LONG options
);
935 [id(0x60030022), hidden]
937 [in, defaultvalue(adAffectAll
)] AffectEnum affect_records
);
941 [in, optional] VARIANT fields
,
942 [in, optional] VARIANT values
);
944 [id(0x00000417), propget]
945 HRESULT AbsolutePage
(
946 [out, retval] PositionEnum_Param
*position
);
948 [id(0x00000417), propput]
949 HRESULT AbsolutePage
(
950 [in] PositionEnum_Param position
);
952 [id(0x00000402), propget]
954 [out, retval] EditModeEnum
*mode
);
956 [id(0x00000406), propget]
958 [out, retval] VARIANT *criteria
);
960 [id(0x00000406), propput]
962 [in] VARIANT criteria
);
964 [id(0x0000041a), propget]
966 [out, retval] LONG *count
);
968 [id(0x00000418), propget]
970 [out, retval] LONG *size
);
972 [id(0x00000418), propput]
976 [id(0x00000407), propget]
978 [out, retval] BSTR *criteria
);
980 [id(0x00000407), propput]
984 [id(0x00000405), propget]
986 [out, retval] LONG *status
);
988 [id(0x0000041e), propget]
990 [out, retval] LONG *state
);
992 [id(0x60030030), hidden]
994 [out, retval] _Recordset
**object);
998 [in, defaultvalue(adAffectAll
)] AffectEnum affect_records
);
1001 HRESULT CancelBatch
(
1002 [in, defaultvalue(adAffectAll
)] AffectEnum affect_records
);
1004 [id(0x0000041b), propget]
1005 HRESULT CursorLocation
(
1006 [out, retval] CursorLocationEnum
*cursor_loc
);
1008 [id(0x0000041b), propput]
1009 HRESULT CursorLocation
(
1010 [in] CursorLocationEnum cursor_loc
);
1013 HRESULT NextRecordset
(
1014 [out, optional] VARIANT *records_affected
,
1015 [out, retval] _Recordset
**record_set
);
1019 [in] CursorOptionEnum cursor_options
,
1020 [out, retval] VARIANT_BOOL *ret
);
1022 [id(0xfffffff8), propget, hidden]
1025 [out, retval] VARIANT *var
);
1027 [id(0xfffffff8), propput, hidden]
1032 [id(0x0000041d), propget]
1033 HRESULT MarshalOptions
(
1034 [out, retval] MarshalOptionsEnum
*options
);
1036 [id(0x0000041d), propput]
1037 HRESULT MarshalOptions
(
1038 [in] MarshalOptionsEnum options
);
1043 [in, defaultvalue(0)] LONG skip_records
,
1044 [in, defaultvalue(adSearchForward
)] SearchDirectionEnum search_direction
,
1045 [in, optional] VARIANT start
);
1049 uuid(0000054f
-0000-0010-8000-00aa006d2ea4
),
1055 interface Recordset20
: Recordset15
1060 [id(0x00000420), propget]
1062 [out, retval] IUnknown
**data_source
);
1064 [id(0x00000420), propputref]
1066 [in] IUnknown
*data_source
);
1070 [in, optional] BSTR filename
,
1071 [in, defaultvalue(adPersistADTG
)] PersistFormatEnum persist_format
);
1073 [id(0x00000425), propget]
1074 HRESULT ActiveCommand
(
1075 [out, retval] IDispatch
**cmd
);
1077 [id(0x00000427), propput]
1079 [in] VARIANT_BOOL stay_in_sync
);
1081 [id(0x00000427), propget]
1083 [out, retval] VARIANT_BOOL *stay_in_sync
);
1087 [in, defaultvalue(adClipString
)] StringFormatEnum string_format
,
1088 [in, defaultvalue(-1)] LONG num_rows
,
1089 [in, optional] BSTR column_delimiter
,
1090 [in, optional] BSTR row_delimiter
,
1091 [in, optional] BSTR null_expr
,
1092 [out, retval] BSTR *ret_string
);
1094 [id(0x00000428), propget]
1096 [out, retval] BSTR *data_member
);
1098 [id(0x00000428), propput]
1100 [in] BSTR data_member
);
1103 HRESULT CompareBookmarks
(
1104 [in] VARIANT bookmark1
,
1105 [in] VARIANT bookmark2
,
1106 [out, retval] CompareEnum
*compare
);
1110 [in, defaultvalue(adLockUnspecified
)] LockTypeEnum lock_type
,
1111 [out, retval] _Recordset
**object);
1115 [in, defaultvalue(adAffectAll
)] AffectEnum affect_records
,
1116 [in, defaultvalue(adResyncAllValues
)] ResyncEnum resync_values
);
1120 uuid(00000555-0000-0010-8000-00aa006d2ea4
),
1126 interface Recordset21
: Recordset20
1130 [in] VARIANT key_values
,
1131 [in, defaultvalue(adSeekFirstEQ
)] SeekEnum seek_option
);
1133 [id(0x0000042b), propput]
1137 [id(0x0000042b), propget]
1139 [out, retval] BSTR *index
);
1143 uuid(00000556-0000-0010-8000-00aa006d2ea4
),
1149 interface _Recordset
: Recordset21
1153 [in, optional] VARIANT destination
,
1154 [in, defaultvalue(adPersistADTG
)] PersistFormatEnum persist_format
);
1158 uuid(00000500-0000-0010-8000-00aa006d2ea4
),
1164 interface Error
: IDispatch
1166 [id(0x60020000), propget]
1168 [out, retval] LONG *number
);
1170 [id(0x60020001), propget]
1172 [out, retval] BSTR *str
);
1174 [id(00000000), propget]
1175 HRESULT Description
(
1176 [out, retval] BSTR *str
);
1178 [id(0x60020003), propget]
1180 [out, retval] BSTR *str
);
1182 [id(0x60020004), propget]
1183 HRESULT HelpContext(
1184 [out, retval] LONG *ctx
);
1186 [id(0x60020005), propget]
1188 [out, retval] BSTR *str
);
1190 [id(0x60020006), propget]
1191 HRESULT NativeError
(
1192 [out, retval] LONG *error
);
1196 uuid(00000501-0000-0010-8000-00aa006d2ea4
),
1202 interface Errors
: _Collection
1204 [id(00000000), propget]
1207 [out, retval] Error
**object);
1214 uuid(00000515-0000-0010-8000-00aa006d2ea4
),
1219 interface Connection15
: _ADO
1221 [id(00000000), propget]
1222 HRESULT ConnectionString
(
1223 [out, retval] BSTR *str
);
1225 [id(00000000), propput]
1226 HRESULT ConnectionString
(
1229 [id(0x00000002), propget]
1230 HRESULT CommandTimeout
(
1231 [out, retval] LONG *timeout
);
1233 [id(0x00000002), propput]
1234 HRESULT CommandTimeout
(
1237 [id(0x00000003), propget]
1238 HRESULT ConnectionTimeout
(
1239 [out, retval] LONG *timeout
);
1241 [id(0x00000003), propput]
1242 HRESULT ConnectionTimeout
(
1245 [id(0x00000004), propget]
1247 [out, retval] BSTR *str
);
1255 [out, optional] VARIANT *records_affected
,
1256 [in, defaultvalue(-1)] LONG options
,
1257 [out, retval] _Recordset
**record_set
);
1261 [out, retval] LONG *transaction_level
);
1264 HRESULT CommitTrans
();
1267 HRESULT RollbackTrans
();
1271 [in, defaultvalue("")] BSTR connection_str
,
1272 [in, defaultvalue("")] BSTR user_id
,
1273 [in, defaultvalue("")] BSTR password
,
1274 [in, defaultvalue(-1)] LONG options
);
1276 [id(0x0000000b), propget]
1278 [out, retval] Errors
**object);
1280 [id(0x0000000c), propget]
1281 HRESULT DefaultDatabase
(
1282 [out, retval] BSTR *str
);
1284 [id(0x0000000c), propput]
1285 HRESULT DefaultDatabase
(
1288 [id(0x0000000d), propget]
1289 HRESULT IsolationLevel
(
1290 [out, retval] IsolationLevelEnum
*level
);
1292 [id(0x0000000d), propput]
1293 HRESULT IsolationLevel
(
1294 [in] IsolationLevelEnum level
);
1296 [id(0x0000000e), propget]
1298 [out, retval] LONG *attr
);
1300 [id(0x0000000e), propput]
1304 [id(0x0000000f), propget]
1305 HRESULT CursorLocation
(
1306 [out, retval] CursorLocationEnum
*cursor_loc
);
1308 [id(0x0000000f), propput]
1309 HRESULT CursorLocation
(
1310 [in] CursorLocationEnum cursor_loc
);
1312 [id(0x00000010), propget]
1314 [out, retval] ConnectModeEnum
*mode
);
1316 [id(0x00000010), propput]
1318 [in] ConnectModeEnum mode
);
1320 [id(0x00000011), propget]
1322 [out, retval] BSTR *str
);
1324 [id(0x00000011), propput]
1328 [id(0x00000012), propget]
1330 [out, retval] LONG *state
);
1334 [in] SchemaEnum schema
,
1335 [in, optional] VARIANT restrictions
,
1336 [in, optional] VARIANT schema_id
,
1337 [out, retval] _Recordset
**record_set
);
1341 uuid(00000550-0000-0010-8000-00aa006d2ea4
),
1346 interface _Connection
: Connection15
1353 uuid(0000050c
-0000-0010-8000-00aa006d2ea4
),
1359 interface _Parameter
: _ADO
1361 [id(0x60030000), propget]
1363 [out, retval] BSTR *str
);
1365 [id(0x60030000), propput]
1369 [id(00000000), propget]
1371 [out, retval] VARIANT *val
);
1373 [id(00000000), propput]
1377 [id(0x60030004), propget]
1379 [out, retval] DataTypeEnum
*data_type
);
1381 [id(0x60030004), propput]
1383 [in] DataTypeEnum data_type
);
1385 [id(0x60030006), propput]
1387 [in] ParameterDirectionEnum direction
);
1389 [id(0x60030006), propget]
1391 [out, retval] ParameterDirectionEnum
*direction
);
1393 [id(0x60030008), propput]
1395 [in] unsigned char precision
);
1397 [id(0x60030008), propget]
1399 [out, retval] unsigned char *precision
);
1401 [id(0x6003000a), propput]
1402 HRESULT NumericScale
(
1403 [in] unsigned char scale
);
1405 [id(0x6003000a), propget]
1406 HRESULT NumericScale
(
1407 [out, retval] unsigned char *scale
);
1409 [id(0x6003000c), propput]
1413 [id(0x6003000c), propget]
1415 [out, retval] LONG *size
);
1418 HRESULT AppendChunk
(
1421 [id(0x6003000f), propget]
1423 [out, retval] LONG *attrs
);
1425 [id(0x6003000f), propput]
1431 uuid(00000513-0000-0010-8000-00aa006d2ea4
),
1437 interface _DynaCollection
: _Collection
1441 [in] IDispatch
*object);
1445 [in] VARIANT index
);
1449 uuid(0000050d
-0000-0010-8000-00aa006d2ea4
),
1455 interface Parameters
: _DynaCollection
1457 [id(00000000), propget]
1460 [out, retval] _Parameter
**object);
1464 uuid(00000508-0000-0010-8000-00aa006d2ea4
),
1470 interface Command15
: _ADO
1472 [id(0x60030000), propget]
1473 HRESULT ActiveConnection
(
1474 [out, retval] _Connection
**object);
1476 [id(0x60030000), propputref]
1477 HRESULT ActiveConnection
(
1478 [in] _Connection
*object);
1480 [id(0x60030000), propput]
1481 HRESULT ActiveConnection
(
1482 [in] VARIANT object);
1484 [id(0x60030003), propget]
1485 HRESULT CommandText
(
1486 [out, retval] BSTR *str
);
1488 [id(0x60030003), propput]
1489 HRESULT CommandText
(
1492 [id(0x60030005), propget]
1493 HRESULT CommandTimeout
(
1494 [out, retval] LONG *timeout
);
1496 [id(0x60030005), propput]
1497 HRESULT CommandTimeout
(
1500 [id(0x60030007), propget]
1502 [out, retval] VARIANT_BOOL *prepared
);
1504 [id(0x60030007), propput]
1506 [in] VARIANT_BOOL prepared
);
1510 [out, optional] VARIANT *records_affected
,
1511 [in, optional] VARIANT *parameters
,
1512 [in, defaultvalue(-1)] LONG options
,
1513 [out, retval] _Recordset
**record_set
);
1516 HRESULT CreateParameter
(
1517 [in, defaultvalue("")] BSTR name
,
1518 [in, defaultvalue(adEmpty
)] DataTypeEnum type
,
1519 [in, defaultvalue(adParamInput
)] ParameterDirectionEnum direction
,
1520 [in, defaultvalue(0)] LONG size
,
1521 [in, optional] VARIANT value
,
1522 [out, retval] _Parameter
**parameter
);
1524 [id(00000000), propget]
1526 [out, retval] Parameters
**object);
1528 [id(0x6003000c), propput]
1529 HRESULT CommandType
(
1530 [in] CommandTypeEnum cmd_type
);
1532 [id(0x6003000c), propget]
1533 HRESULT CommandType
(
1534 [out, retval] CommandTypeEnum
*cmd_type
);
1536 [id(0x6003000e), propget]
1538 [out, retval] BSTR *name
);
1540 [id(0x6003000e), propput]
1546 uuid(0000054e-0000-0010-8000-00aa006d2ea4
),
1552 interface Command25
: Command15
1554 [id(0x60030010), propget]
1556 [out, retval] LONG *state
);
1563 uuid(b08400bd
-f9d1
-4d02
-b856
-71d5dba123e9
),
1569 interface _Command
: Command25
1571 [id(0x60030012), propputref]
1572 HRESULT CommandStream
(
1573 [in] IUnknown
*stream
);
1575 [id(0x60030012), propget]
1576 HRESULT CommandStream
(
1577 [out, retval] VARIANT *stream
);
1579 [id(0x60030013), propput]
1583 [id(0x60030013), propget]
1585 [out, retval] BSTR *dialect
);
1587 [id(0x60030014), propput]
1588 HRESULT NamedParameters
(
1589 [in] VARIANT_BOOL named_parameters
);
1591 [id(0x60030014), propget]
1592 HRESULT NamedParameters
(
1593 [out, retval] VARIANT_BOOL *named_parameters
);
1597 uuid(00000402-0000-0010-8000-00aa006d2ea4
),
1601 interface ConnectionEventsVt
: IUnknown
1603 HRESULT InfoMessage
(
1605 [in, out] EventStatusEnum
*status
,
1606 [in] _Connection
*connection
);
1608 HRESULT BeginTransComplete
(
1609 [in] LONG TransactionLevel
,
1611 [in, out] EventStatusEnum
*status
,
1612 [in] _Connection
*connection
);
1614 HRESULT CommitTransComplete
(
1616 [in, out] EventStatusEnum
*status
,
1617 [in] _Connection
*connection
);
1619 HRESULT RollbackTransComplete
(
1621 [in, out] EventStatusEnum
*status
,
1622 [in] _Connection
*connection
);
1624 HRESULT WillExecute
(
1625 [in, out] BSTR *source,
1626 [in, out] CursorTypeEnum
*cursor_type
,
1627 [in, out] LockTypeEnum
*lock_type
,
1628 [in, out] LONG *options
,
1629 [in, out] EventStatusEnum
*status
,
1630 [in] _Command
*command
,
1631 [in] _Recordset
*record_set
,
1632 [in] _Connection
*connection
);
1634 HRESULT ExecuteComplete
(
1635 [in] LONG records_affected
,
1637 [in, out] EventStatusEnum
*status
,
1638 [in] _Command
*command
,
1639 [in] _Recordset
*record_set
,
1640 [in] _Connection
*connection
);
1642 HRESULT WillConnect
(
1643 [in, out] BSTR *string,
1644 [in, out] BSTR *userid
,
1645 [in, out] BSTR *password
,
1646 [in, out] LONG *options
,
1647 [in, out] EventStatusEnum
*status
,
1648 [in] _Connection
*connection
);
1650 HRESULT ConnectComplete
(
1652 [in, out] EventStatusEnum
*status
,
1653 [in] _Connection
*connection
);
1656 [in, out] EventStatusEnum
*status
,
1657 [in] _Connection
*connection
);
1661 uuid(00000400-0000-0010-8000-00aa006d2ea4
)
1663 dispinterface ConnectionEvents
1668 HRESULT InfoMessage
(
1670 [in, out] EventStatusEnum
*status
,
1671 [in] _Connection
*Connection
);
1674 HRESULT BeginTransComplete
(
1675 [in] LONG TransactionLevel
,
1677 [in, out] EventStatusEnum
*status
,
1678 [in] _Connection
*connection
);
1681 HRESULT CommitTransComplete
(
1683 [in, out] EventStatusEnum
*status
,
1684 [in] _Connection
*connection
);
1687 HRESULT RollbackTransComplete
(
1689 [in, out] EventStatusEnum
*status
,
1690 [in] _Connection
*connection
);
1693 HRESULT WillExecute
(
1694 [in, out] BSTR *source,
1695 [in, out] CursorTypeEnum
*cursor_type
,
1696 [in, out] LockTypeEnum
*lock_type
,
1697 [in, out] LONG *options
,
1698 [in, out] EventStatusEnum
*status
,
1699 [in] _Command
*command
,
1700 [in] _Recordset
*record_set
,
1701 [in] _Connection
*connection
);
1704 HRESULT ExecuteComplete
(
1705 [in] LONG records_affected
,
1707 [in, out] EventStatusEnum
*status
,
1708 [in] _Command
*command
,
1709 [in] _Recordset
*record_set
,
1710 [in] _Connection
*connection
);
1713 HRESULT WillConnect
(
1714 [in, out] BSTR *string,
1715 [in, out] BSTR *userid
,
1716 [in, out] BSTR *password
,
1717 [in, out] LONG *options
,
1718 [in, out] EventStatusEnum
*status
,
1719 [in] _Connection
*connection
);
1722 HRESULT ConnectComplete
(
1724 [in, out] EventStatusEnum
*status
,
1725 [in] _Connection
*connection
);
1729 [in, out] EventStatusEnum
*status
,
1730 [in] _Connection
*connection
);
1734 uuid(00000562-0000-0010-8000-00aa006d2ea4
),
1740 interface _Record
: _ADO
1743 HRESULT ActiveConnection
(
1744 [out, retval] VARIANT *connection
);
1747 HRESULT ActiveConnection
(
1748 [in] BSTR connection
);
1751 HRESULT ActiveConnection
(
1752 [in] _Connection
*connection
);
1756 [out, retval] ObjectStateEnum
*state
);
1760 [out, retval] VARIANT *source);
1768 [in] IDispatch
*source);
1772 [out, retval] ConnectModeEnum
*mode
);
1776 [in] ConnectModeEnum mode
);
1780 [out, retval] BSTR *parent_URL
);
1784 [in, defaultvalue("")] BSTR source,
1785 [in, defaultvalue("")] BSTR Destination
,
1786 [in, optional] BSTR UserName
,
1787 [in, optional] BSTR Password
,
1788 [in, defaultvalue(adMoveUnspecified
)] MoveRecordOptionsEnum Options
,
1789 [in, optional] VARIANT_BOOL Async
,
1790 [out, retval] BSTR *pbstrNewURL
);
1794 [in, defaultvalue("")] BSTR source,
1795 [in, defaultvalue("")] BSTR destination
,
1796 [in, optional] BSTR username
,
1797 [in, optional] BSTR password
,
1798 [in, defaultvalue(adCopyUnspecified
)] CopyRecordOptionsEnum options
,
1799 [in, optional] VARIANT_BOOL async
,
1800 [out, retval] BSTR *new_URL
);
1803 HRESULT DeleteRecord
(
1805 [in, optional] VARIANT_BOOL async
);
1809 [in, optional] VARIANT source,
1810 [in, optional] VARIANT active_connection
,
1811 [in, optional] ConnectModeEnum mode
,
1812 [in, defaultvalue(adFailIfNotExists
)] RecordCreateOptionsEnum create_options
,
1813 [in, defaultvalue(adOpenRecordUnspecified
)] RecordOpenOptionsEnum options
,
1814 [in, optional] BSTR username
,
1815 [in, optional] BSTR password
);
1822 [out, retval] Fields
**fields
);
1826 [out, retval] RecordTypeEnum
*type
);
1829 HRESULT GetChildren
(
1830 [out, retval] _Recordset
**record_set
);
1837 uuid(00000565-0000-0010-8000-00aa006d2ea4
),
1843 interface _Stream
: IDispatch
1847 [out, retval] LONG *size
);
1851 [out, retval] VARIANT_BOOL *eos
);
1855 [out, retval] LONG *position
);
1859 [in] LONG position
);
1863 [out, retval] StreamTypeEnum
*type
);
1867 [in] StreamTypeEnum type
);
1870 HRESULT LineSeparator
(
1871 [out, retval] LineSeparatorEnum
*separator
);
1874 HRESULT LineSeparator
(
1875 [in] LineSeparatorEnum separator
);
1879 [out, retval] ObjectStateEnum
*state
);
1883 [out, retval] ConnectModeEnum
*mode
);
1887 [in] ConnectModeEnum mode
);
1891 [out, retval] BSTR *charset
);
1899 [in, defaultvalue(adReadAll
)] LONG num_bytes
,
1900 [out, retval] VARIANT *val
);
1904 [in, optional] VARIANT source,
1905 [in, defaultvalue(adModeUnknown
)] ConnectModeEnum mode
,
1906 [in, defaultvalue(adOpenStreamUnspecified
)] StreamOpenOptionsEnum options
,
1907 [in, optional] BSTR username
,
1908 [in, optional] BSTR password
);
1911 HRESULT Close
(void);
1914 HRESULT SkipLine
(void);
1918 [in] VARIANT buffer
);
1921 HRESULT SetEOS
(void);
1926 [in, defaultvalue(-1)] LONG size
);
1929 HRESULT Flush
(void);
1934 [in, defaultvalue(adSaveCreateNotExist
)] SaveOptionsEnum options
);
1937 HRESULT LoadFromFile
(
1938 [in] BSTR filename
);
1942 [in, defaultvalue(adReadAll
)] LONG size
,
1943 [out, retval] BSTR *str
);
1948 [in, defaultvalue(adWriteChar
)] StreamWriteEnum options
);
1951 HRESULT Cancel
(void);
1955 uuid(00000266-0000-0010-8000-00aa006d2ea4
)
1957 dispinterface RecordsetEvents
1962 HRESULT WillChangeField
(
1964 [in] VARIANT fields
,
1965 [in, out] EventStatusEnum
*status
,
1966 [in] _Recordset
*record_set
);
1969 HRESULT FieldChangeComplete
(
1971 [in] VARIANT fields
,
1973 [in, out] EventStatusEnum
*status
,
1974 [in] _Recordset
*record_set
);
1977 HRESULT WillChangeRecord
(
1978 [in] EventReasonEnum reason
,
1980 [in, out] EventStatusEnum
*status
,
1981 [in] _Recordset
*record_set
);
1984 HRESULT RecordChangeComplete
(
1985 [in] EventReasonEnum reason
,
1988 [in, out] EventStatusEnum
*status
,
1989 [in] _Recordset
*record_set
);
1992 HRESULT WillChangeRecordset
(
1993 [in] EventReasonEnum reason
,
1994 [in, out] EventStatusEnum
*status
,
1995 [in] _Recordset
*record_set
);
1998 HRESULT RecordsetChangeComplete
(
1999 [in] EventReasonEnum reason
,
2001 [in, out] EventStatusEnum
*status
,
2002 [in] _Recordset
*record_set
);
2006 [in] EventReasonEnum reason
,
2007 [in, out] EventStatusEnum
*status
,
2008 [in] _Recordset
*record_set
);
2011 HRESULT MoveComplete
(
2012 [in] EventReasonEnum reason
,
2014 [in, out] EventStatusEnum
*status
,
2015 [in] _Recordset
*record_set
);
2018 HRESULT EndOfRecordset
(
2019 [in, out] VARIANT_BOOL *more_data
,
2020 [in, out] EventStatusEnum
*status
,
2021 [in] _Recordset
*record_set
);
2024 HRESULT FetchProgress
(
2026 [in] LONG max_progress
,
2027 [in, out] EventStatusEnum
*status
,
2028 [in] _Recordset
*record_set
);
2031 HRESULT FetchComplete
(
2033 [in, out] EventStatusEnum
*status
,
2034 [in] _Recordset
*record_set
);
2038 uuid(00000538-0000-0010-8000-00aa006d2ea4
),
2042 interface ADODebugging
: IUnknown
2044 HRESULT IsGlobalDebugMode
(
2045 VARIANT_BOOL *debugging_on
);
2047 HRESULT SetGlobalDebugMode
(
2049 VARIANT_BOOL debugging_on
);
2053 uuid(00000516-0000-0010-8000-00aa006d2ea4
),
2057 interface ADOConnectionConstruction15
: IUnknown
2061 [out, retval] IUnknown
**dso
);
2065 [out, retval] IUnknown
**session
);
2067 HRESULT WrapDSOandSession
(
2069 [in] IUnknown
*session
);
2073 uuid(00000551-0000-0010-8000-00aa006d2ea4
),
2077 interface ADOConnectionConstruction
: ADOConnectionConstruction15
2082 uuid(00000517-0000-0010-8000-00aa006d2ea4
),
2086 interface ADOCommandConstruction
: IUnknown
2089 HRESULT OLEDBCommand
(
2090 [out, retval] IUnknown
**command
);
2093 HRESULT OLEDBCommand
(
2094 [in] IUnknown
*command
);
2098 uuid(00000283-0000-0010-8000-00aa006d2ea4
),
2102 interface ADORecordsetConstruction
: IDispatch
2106 [out, retval] IUnknown
**row_set
);
2110 [in] IUnknown
*row_set
);
2114 [out, retval] LONG *chapter
);
2121 HRESULT RowPosition
(
2122 [out, retval] IUnknown
**row_pos
);
2125 HRESULT RowPosition
(
2126 [in] IUnknown
*row_pos
);
2130 uuid(2a75196c
-d9eb
-4129-b803
-931327f72d5c
),
2135 importlib
("stdole2.tlb");
2138 uuid(00000514-0000-0010-8000-00aa006d2ea4
),
2142 [default] interface _Connection
;
2143 [default, source] dispinterface ConnectionEvents
;
2147 uuid(00000507-0000-0010-8000-00aa006d2ea4
),
2151 [default] interface _Command
;
2155 uuid(00000535-0000-0010-8000-00aa006d2ea4
),
2159 [default] interface _Recordset
;
2160 [default, source] dispinterface RecordsetEvents
;
2164 uuid(0000050b
-0000-0010-8000-00aa006d2ea4
),
2168 [default] interface _Parameter
;
2172 uuid(00000560-0000-0010-8000-00aa006d2ea4
),
2176 [default] interface _Record
;
2180 uuid(00000566-0000-0010-8000-00aa006d2ea4
),
2184 [default] interface _Stream
;