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(54D8B4B9
-663B
-4a9c
-95F6
-0E749ABD70F1
)] LONG_PTR ADO_LONGPTR
;
56 typedef [uuid(0000052A
-0000-0010-8000-00AA006D2EA4
)] enum ErrorValueEnum
58 adErrInvalidArgument
= 3001,
59 adErrOpeningFile
= 3002,
61 adErrWriteFile
= 3004,
62 adErrNoCurrentRecord
= 3021,
63 adErrIllegalOperation
= 3219,
64 adErrCantChangeProvider
= 3220,
65 adErrInTransaction
= 3246,
66 adErrFeatureNotAvailable
= 3251,
67 adErrItemNotFound
= 3265,
68 adErrObjectInCollection
= 3367,
69 adErrObjectNotSet
= 3420,
70 adErrDataConversion
= 3421,
71 adErrObjectClosed
= 3704,
72 adErrObjectOpen
= 3705,
73 adErrProviderNotFound
= 3706,
74 adErrBoundToCommand
= 3707,
75 adErrInvalidParamInfo
= 3708,
76 adErrInvalidConnection
= 3709,
77 adErrNotReentrant
= 3710,
78 adErrStillExecuting
= 3711,
79 adErrOperationCancelled
= 3712,
80 adErrStillConnecting
= 3713,
81 adErrInvalidTransaction
= 3714,
82 adErrNotExecuting
= 3715,
83 adErrUnsafeOperation
= 3716,
84 adWrnSecurityDialog
= 3717,
85 adWrnSecurityDialogHeader
= 3718,
86 adErrIntegrityViolation
= 3719,
87 adErrPermissionDenied
= 3720,
88 adErrDataOverflow
= 3721,
89 adErrSchemaViolation
= 3722,
90 adErrSignMismatch
= 3723,
91 adErrCantConvertvalue
= 3724,
92 adErrCantCreate
= 3725,
93 adErrColumnNotOnThisRow
= 3726,
94 adErrURLDoesNotExist
= 3727,
95 adErrTreePermissionDenied
= 3728,
96 adErrInvalidURL
= 3729,
97 adErrResourceLocked
= 3730,
98 adErrResourceExists
= 3731,
99 adErrCannotComplete
= 3732,
100 adErrVolumeNotFound
= 3733,
101 adErrOutOfSpace
= 3734,
102 adErrResourceOutOfScope
= 3735,
103 adErrUnavailable
= 3736,
104 adErrURLNamedRowDoesNotExist
= 3737,
105 adErrDelResOutOfScope
= 3738,
106 adErrPropInvalidColumn
= 3739,
107 adErrPropInvalidOption
= 3740,
108 adErrPropInvalidValue
= 3741,
109 adErrPropConflicting
= 3742,
110 adErrPropNotAllSettable
= 3743,
111 adErrPropNotSet
= 3744,
112 adErrPropNotSettable
= 3745,
113 adErrPropNotSupported
= 3746,
114 adErrCatalogNotSet
= 3747,
115 adErrCantChangeConnection
= 3748,
116 adErrFieldsUpdateFailed
= 3749,
117 adErrDenyNotSupported
= 3750,
118 adErrDenyTypeNotSupported
= 3751,
119 adErrProviderNotSpecified
= 3753,
120 adErrConnectionStringTooLong
= 3754
123 typedef [uuid(00000528-0000-0010-8000-00aa006d2ea4
)] enum PositionEnum
130 typedef [uuid(a56187c5
-d690
-4037-ae32
-a00edc376ac3
), public] ADO_LONGPTR PositionEnum_Param
;
132 typedef [uuid(0000051f
-0000-0010-8000-00aa006d2ea4
)] enum DataTypeEnum
139 adUnsignedTinyInt
= 17,
140 adUnsignedSmallInt
= 18,
142 adUnsignedBigInt
= 21,
165 adLongVarWChar
= 203,
168 adLongVarBinary
= 205,
176 typedef [uuid(00000548-0000-0010-8000-00aa006d2ea4
)] enum PersistFormatEnum
182 typedef [uuid(00000552-0000-0010-8000-00aa006d2ea4
)] enum SeekEnum
192 typedef [uuid(0000051b
-0000-0010-8000-00aa006d2ea4
)] enum CursorTypeEnum
194 adOpenUnspecified
= -1,
195 adOpenForwardOnly
= 0,
201 typedef [uuid(00000525-0000-0010-8000-00aa006d2ea4
)] enum FieldAttributeEnum
203 adFldUnspecified
= -1,
204 adFldMayDefer
= 0x00000002,
205 adFldUpdatable
= 0x00000004,
206 adFldUnknownUpdatable
= 0x00000008,
207 adFldFixed
= 0x00000010,
208 adFldIsNullable
= 0x00000020,
209 adFldMayBeNull
= 0x00000040,
210 adFldLong
= 0x00000080,
211 adFldRowID
= 0x00000100,
212 adFldRowVersion
= 0x00000200,
213 adFldCacheDeferred
= 0x00001000,
214 adFldIsChapter
= 0x00002000,
215 adFldNegativeScale
= 0x00004000,
216 adFldKeyColumn
= 0x00008000,
217 adFldIsRowURL
= 0x00010000,
218 adFldIsDefaultStream
= 0x00020000,
219 adFldIsCollection
= 0x00040000
220 } FieldAttributeEnum
;
222 typedef [uuid(00000544-0000-0010-8000-00aa006d2ea4
)] enum ResyncEnum
224 adResyncUnderlyingValues
= 1,
225 adResyncAllValues
= 2
228 typedef [uuid(0000051d
-0000-0010-8000-00aa006d2ea4
)] enum LockTypeEnum
230 adLockUnspecified
= -1,
232 adLockPessimistic
= 2,
233 adLockOptimistic
= 3,
234 adLockBatchOptimistic
= 4
237 typedef [uuid(00000543-0000-0010-8000-00aa006d2ea4
)] enum AffectEnum
242 adAffectAllChapters
= 4
245 typedef [uuid(00000526-0000-0010-8000-00aa006d2ea4
)] enum EditModeEnum
248 adEditInProgress
= 1,
253 typedef [uuid(0000052f
-0000-0010-8000-00aa006d2ea4
)] enum CursorLocationEnum
259 } CursorLocationEnum
;
261 typedef [uuid(0000051c
-0000-0010-8000-00aa006d2ea4
)] enum CursorOptionEnum
264 adMovePrevious
= 512,
266 adApproxPosition
= 16384,
267 adUpdateBatch
= 65536,
278 typedef [uuid(00000540-0000-0010-8000-00aa006d2ea4
)] enum MarshalOptionsEnum
281 adMarshalModifiedOnly
= 1
282 } MarshalOptionsEnum
;
284 typedef [uuid(00000547-0000-0010-8000-00aa006d2ea4
)] enum SearchDirectionEnum
287 adSearchBackward
= -1
288 } SearchDirectionEnum
;
290 typedef [uuid(00000549-0000-0010-8000-00aa006d2ea4
)] enum StringFormatEnum
295 typedef [uuid(00000545-0000-0010-8000-00aa006d2ea4
)] enum CompareEnum
297 adCompareLessThan
= 0,
299 adCompareGreaterThan
= 2,
300 adCompareNotEqual
= 3,
301 adCompareNotComparable
= 4
304 typedef [uuid(00000523-0000-0010-8000-00aa006d2ea4
)] enum IsolationLevelEnum
306 adXactUnspecified
= -1,
308 adXactReadUncommitted
= 256,
310 adXactCursorStability
= 4096,
311 adXactReadCommitted
= 4096,
312 adXactRepeatableRead
= 65536,
313 adXactSerializable
= 1048576,
314 adXactIsolated
= 1048576
315 } IsolationLevelEnum
;
317 typedef [uuid(00000521-0000-0010-8000-00aa006d2ea4
)] enum ConnectModeEnum
323 adModeShareDenyRead
= 4,
324 adModeShareDenyWrite
= 8,
325 adModeShareExclusive
= 12,
326 adModeShareDenyNone
= 16,
327 adModeRecursive
= 4194304
330 typedef [uuid(00000533-0000-0010-8000-00aa006d2ea4
)] enum SchemaEnum
332 adSchemaProviderSpecific
= -1,
334 adSchemaCatalogs
= 1,
335 adSchemaCharacterSets
= 2,
336 adSchemaCollations
= 3,
338 adSchemaCheckConstraints
= 5,
339 adSchemaConstraintColumnUsage
= 6,
340 adSchemaConstraintTableUsage
= 7,
341 adSchemaKeyColumnUsage
= 8,
342 adSchemaReferentialContraints
= 9,
343 adSchemaReferentialConstraints
= 9,
344 adSchemaTableConstraints
= 10,
345 adSchemaColumnsDomainUsage
= 11,
346 adSchemaIndexes
= 12,
347 adSchemaColumnPrivileges
= 13,
348 adSchemaTablePrivileges
= 14,
349 adSchemaUsagePrivileges
= 15,
350 adSchemaProcedures
= 16,
351 adSchemaSchemata
= 17,
352 adSchemaSQLLanguages
= 18,
353 adSchemaStatistics
= 19,
355 adSchemaTranslations
= 21,
356 adSchemaProviderTypes
= 22,
358 adSchemaViewColumnUsage
= 24,
359 adSchemaViewTableUsage
= 25,
360 adSchemaProcedureParameters
= 26,
361 adSchemaForeignKeys
= 27,
362 adSchemaPrimaryKeys
= 28,
363 adSchemaProcedureColumns
= 29,
364 adSchemaDBInfoKeywords
= 30,
365 adSchemaDBInfoLiterals
= 31,
367 adSchemaDimensions
= 33,
368 adSchemaHierarchies
= 34,
370 adSchemaMeasures
= 36,
371 adSchemaProperties
= 37,
372 adSchemaMembers
= 38,
373 adSchemaTrustees
= 39,
374 adSchemaFunctions
= 40,
375 adSchemaActions
= 41,
376 adSchemaCommands
= 42,
380 typedef [uuid(00000530-0000-0010-8000-00aa006d2ea4
)] enum EventStatusEnum
383 adStatusErrorsOccurred
= 2,
384 adStatusCantDeny
= 3,
386 adStatusUnwantedEvent
= 5
389 typedef [uuid(0000052c
-0000-0010-8000-00aa006d2ea4
)] enum ParameterDirectionEnum
394 adParamInputOutput
= 3,
395 adParamReturnValue
= 4
396 } ParameterDirectionEnum
;
398 typedef [uuid(0000052e-0000-0010-8000-00aa006d2ea4
)] enum CommandTypeEnum
400 adCmdUnspecified
= -1,
406 adCmdTableDirect
= 512
409 typedef [uuid(00000532-0000-0010-8000-00aa006d2ea4
)] enum ObjectStateEnum
413 adStateConnecting
= 2,
414 adStateExecuting
= 4,
418 typedef [uuid(00000573-0000-0010-8000-00aa006d2ea4
)] enum MoveRecordOptionsEnum
420 adMoveUnspecified
= -1,
422 adMoveDontUpdateLinks
= 2,
423 adMoveAllowEmulation
= 4
424 } MoveRecordOptionsEnum
;
426 typedef [uuid(00000574-0000-0010-8000-00aa006d2ea4
)] enum CopyRecordOptionsEnum
428 adCopyUnspecified
= -1,
430 adCopyAllowEmulation
= 4,
431 adCopyNonRecursive
= 2
432 } CopyRecordOptionsEnum
;
434 typedef [uuid(00000570-0000-0010-8000-00aa006d2ea4
)] enum RecordCreateOptionsEnum
436 adCreateCollection
= (int) 0x00002000,
437 adCreateStructDoc
= (int) 0x80000000,
438 adCreateNonCollection
= (int) 0x00000000,
439 adOpenIfExists
= (int) 0x02000000,
440 adCreateOverwrite
= (int) 0x04000000,
441 adFailIfNotExists
= (int) -1
442 } RecordCreateOptionsEnum
;
444 typedef [uuid(00000571-0000-0010-8000-00aa006d2ea4
)] enum RecordOpenOptionsEnum
446 adOpenRecordUnspecified
= -1,
447 adOpenOutput
= 0x00800000,
448 adOpenAsync
= 0x00001000,
449 adDelayFetchStream
= 0x00004000,
450 adDelayFetchFields
= 0x00008000,
451 adOpenExecuteCommand
= 0x00010000
452 } RecordOpenOptionsEnum
;
454 typedef [uuid(0000057d
-0000-0010-8000-00aa006d2ea4
)] enum RecordTypeEnum
457 adCollectionRecord
= 1,
461 typedef [uuid(00000576-0000-0010-8000-00aa006d2ea4
)] enum StreamTypeEnum
467 typedef [uuid(00000577-0000-0010-8000-00aa006d2ea4
)] enum LineSeparatorEnum
480 typedef [uuid(0000057c
-0000-0010-8000-00aa006d2ea4
)] enum SaveOptionsEnum
482 adSaveCreateNotExist
= 1,
483 adSaveCreateOverWrite
= 2
486 typedef [uuid(0000057a
-0000-0010-8000-00aa006d2ea4
)] enum StreamOpenOptionsEnum
488 adOpenStreamUnspecified
= -1,
489 adOpenStreamAsync
= 1,
490 adOpenStreamFromRecord
= 4
491 } StreamOpenOptionsEnum
;
493 typedef [uuid(0000057b
-0000-0010-8000-00aa006d2ea4
)] enum StreamWriteEnum
499 typedef [uuid(00000531-0000-0010-8000-00aa006d2ea4
)] enum EventReasonEnum
511 adRsnFirstChange
= 11,
514 adRsnMovePrevious
= 14,
518 typedef [uuid(0000051e-0000-0010-8000-00aa006d2ea4
)] enum ExecuteOptionEnum
520 adOptionUnspecified
= -1,
523 adAsyncFetchNonBlocking
= 64,
524 adExecuteNoRecords
= 128,
525 adExecuteStream
= 1024,
526 [hidden] adExecuteRecord
= 2048
529 typedef [uuid(00000541-0000-0010-8000-00aa006d2ea4
)] enum ConnectOptionEnum
531 adConnectUnspecified
= -1,
532 adAsyncConnect
= 0x10
536 uuid(00000503-0000-0010-8000-00aa006d2ea4
),
542 interface Property
: IDispatch
544 [id(00000000), propget]
546 [out, retval] VARIANT *val
);
548 [id(00000000), propput]
552 [id(0x60020002), propget]
554 [out, retval] BSTR *str
);
556 [id(0x60020003), propget]
558 [out, retval] DataTypeEnum
*type
);
560 [id(0x60020004), propget]
562 [out, retval] LONG *attributes
);
564 [id(0x60020004), propput]
566 [in] LONG attributes
);
570 uuid(00000512-0000-0010-8000-00aa006d2ea4
),
576 interface _Collection
: IDispatch
578 [id(0x60020000), propget]
580 [out, retval] LONG *count
);
582 [id(0xfffffffc), restricted]
584 [out, retval] IUnknown
**object);
591 uuid(00000504-0000-0010-8000-00aa006d2ea4
),
597 interface Properties
: _Collection
599 [id(00000000), propget]
602 [out, retval] Property
**object);
606 uuid(00000534-0000-0010-8000-00aa006d2ea4
),
612 interface _ADO
: IDispatch
614 [id(0x000001f4), propget]
616 [out, retval] Properties
**object);
620 uuid(0000054c
-0000-0010-8000-00aa006d2ea4
),
627 interface Field20
: _ADO
629 [id(0x00000455), propget]
631 [out, retval] ADO_LONGPTR
*size
);
633 [id(0x0000040c), propget]
635 [out, retval] LONG *attrs
);
637 [id(0x0000044f), propget]
639 [out, retval] ADO_LONGPTR
*size
);
641 [id(0x0000044c), propget]
643 [out, retval] BSTR *str
);
645 [id(0x0000044e), propget]
647 [out, retval] DataTypeEnum
*type
);
649 [id(00000000), propget]
651 [out, retval] VARIANT *val
);
653 [id(00000000), propput]
657 [id(0x60030007), propget]
659 [out, retval] unsigned char *precision
);
661 [id(0x60030008), propget]
662 HRESULT NumericScale
(
663 [out, retval] unsigned char *scale
);
672 [out, retval] VARIANT *var
);
674 [id(0x00000450), propget]
675 HRESULT OriginalValue
(
676 [out, retval] VARIANT *val
);
678 [id(0x00000451), propget]
679 HRESULT UnderlyingValue
(
680 [out, retval] VARIANT *val
);
682 [id(0x6003000d), propget]
684 [out, retval] IUnknown
**format
);
686 [id(0x6003000d), propputref]
688 [in] IUnknown
*format
);
690 [id(0x60030007), propput]
692 [in] unsigned char precision
);
694 [id(0x60030008), propput]
695 HRESULT NumericScale
(
696 [in] unsigned char scale
);
698 [id(0x0000044e), propput]
700 [in] DataTypeEnum type
);
702 [id(0x0000044f), propput]
704 [in] ADO_LONGPTR size
);
706 [id(0x0000040c), propput]
712 uuid(00000569-0000-0010-8000-00aa006d2ea4
),
718 interface Field
: Field20
720 [id(0x0000045c), propget]
722 [out, retval] LONG *status
);
726 uuid(00000506-0000-0010-8000-00aa006d2ea4
),
732 interface Fields15
: _Collection
734 [id(00000000), propget]
737 [out, retval] Field
**object);
741 uuid(0000054d
-0000-0010-8000-00aa006d2ea4
),
747 interface Fields20
: Fields15
752 [in] DataTypeEnum type
,
753 [in, defaultvalue(0)] ADO_LONGPTR size
,
754 [in, defaultvalue(adFldUnspecified
)] FieldAttributeEnum attr
);
762 uuid(00000564-0000-0010-8000-00aa006d2ea4
),
768 interface Fields
: Fields20
773 [in] DataTypeEnum type
,
774 [in, defaultvalue(0)] ADO_LONGPTR size
,
775 [in, defaultvalue(adFldUnspecified
)] FieldAttributeEnum attr
,
776 [in, optional] VARIANT value
);
783 [in, defaultvalue(adResyncAllValues
)] ResyncEnum resync_values
);
786 HRESULT CancelUpdate
();
790 uuid(0000050e-0000-0010-8000-00aa006d2ea4
),
796 interface Recordset15
: _ADO
798 [id(0x000003e8), propget]
799 HRESULT AbsolutePosition
(
800 [out, retval] PositionEnum_Param
*position
);
802 [id(0x000003e8), propput]
803 HRESULT AbsolutePosition
(
804 [in] PositionEnum_Param position
);
806 [id(0x000003e9), propputref]
807 HRESULT ActiveConnection
(
808 [in] IDispatch
*connection
);
810 [id(0x000003e9), propput]
811 HRESULT ActiveConnection
(
812 [in] VARIANT connection
);
814 [id(0x000003e9), propget]
815 HRESULT ActiveConnection
(
816 [out, retval] VARIANT *connection
);
818 [id(0x000003ea), propget]
820 [out, retval] VARIANT_BOOL *bof
);
822 [id(0x000003eb), propget]
824 [out, retval] VARIANT *bookmark
);
826 [id(0x000003eb), propput]
828 [in] VARIANT bookmark
);
830 [id(0x000003ec), propget]
832 [out, retval] LONG *size
);
834 [id(0x000003ec), propput]
838 [id(0x000003ed), propget]
840 [out, retval] CursorTypeEnum
*cursor_type
);
842 [id(0x000003ed), propput]
844 [in] CursorTypeEnum cursor_type
);
846 [id(0x000003ee), propget]
848 [out, retval] VARIANT_BOOL *eof
);
850 [id(00000000), propget]
852 [out, retval] Fields
**object);
854 [id(0x000003f0), propget]
856 [out, retval] LockTypeEnum
*lock_type
);
858 [id(0x000003f0), propput]
860 [in] LockTypeEnum lock_type
);
862 [id(0x000003f1), propget]
864 [out, retval] ADO_LONGPTR
*max_records
);
866 [id(0x000003f1), propput]
868 [in] ADO_LONGPTR max_records
);
870 [id(0x000003f2), propget]
872 [out, retval] ADO_LONGPTR
*count
);
874 [id(0x000003f3), propputref]
876 [in] IDispatch
*source);
878 [id(0x000003f3), propput]
882 [id(0x000003f3), propget]
884 [out, retval] VARIANT *source);
888 [in, optional] VARIANT field_list
,
889 [in, optional] VARIANT values
);
892 HRESULT CancelUpdate
();
899 [in, defaultvalue(adAffectCurrent
)] AffectEnum affect_records
);
903 [in, defaultvalue(-1)] LONG rows
,
904 [in, optional] VARIANT start
,
905 [in, optional] VARIANT fields
,
906 [out, retval] VARIANT *var
);
910 [in] ADO_LONGPTR num_records
,
911 [in, optional] VARIANT start
);
917 HRESULT MovePrevious
();
927 [in, optional] VARIANT source,
928 [in, optional] VARIANT active_connection
,
929 [in, defaultvalue(adOpenUnspecified
)] CursorTypeEnum cursor_type
,
930 [in, defaultvalue(adLockUnspecified
)] LockTypeEnum lock_type
,
931 [in, defaultvalue(-1)] LONG options
);
935 [in, defaultvalue(-1)] LONG options
);
937 [id(0x60030022), hidden]
939 [in, defaultvalue(adAffectAll
)] AffectEnum affect_records
);
943 [in, optional] VARIANT fields
,
944 [in, optional] VARIANT values
);
946 [id(0x00000417), propget]
947 HRESULT AbsolutePage
(
948 [out, retval] PositionEnum_Param
*position
);
950 [id(0x00000417), propput]
951 HRESULT AbsolutePage
(
952 [in] PositionEnum_Param position
);
954 [id(0x00000402), propget]
956 [out, retval] EditModeEnum
*mode
);
958 [id(0x00000406), propget]
960 [out, retval] VARIANT *criteria
);
962 [id(0x00000406), propput]
964 [in] VARIANT criteria
);
966 [id(0x0000041a), propget]
968 [out, retval] ADO_LONGPTR
*count
);
970 [id(0x00000418), propget]
972 [out, retval] LONG *size
);
974 [id(0x00000418), propput]
978 [id(0x00000407), propget]
980 [out, retval] BSTR *criteria
);
982 [id(0x00000407), propput]
986 [id(0x00000405), propget]
988 [out, retval] LONG *status
);
990 [id(0x0000041e), propget]
992 [out, retval] LONG *state
);
994 [id(0x60030030), hidden]
996 [out, retval] _Recordset
**object);
1000 [in, defaultvalue(adAffectAll
)] AffectEnum affect_records
);
1003 HRESULT CancelBatch
(
1004 [in, defaultvalue(adAffectAll
)] AffectEnum affect_records
);
1006 [id(0x0000041b), propget]
1007 HRESULT CursorLocation
(
1008 [out, retval] CursorLocationEnum
*cursor_loc
);
1010 [id(0x0000041b), propput]
1011 HRESULT CursorLocation
(
1012 [in] CursorLocationEnum cursor_loc
);
1015 HRESULT NextRecordset
(
1016 [out, optional] VARIANT *records_affected
,
1017 [out, retval] _Recordset
**record_set
);
1021 [in] CursorOptionEnum cursor_options
,
1022 [out, retval] VARIANT_BOOL *ret
);
1024 [id(0xfffffff8), propget, hidden]
1027 [out, retval] VARIANT *var
);
1029 [id(0xfffffff8), propput, hidden]
1034 [id(0x0000041d), propget]
1035 HRESULT MarshalOptions
(
1036 [out, retval] MarshalOptionsEnum
*options
);
1038 [id(0x0000041d), propput]
1039 HRESULT MarshalOptions
(
1040 [in] MarshalOptionsEnum options
);
1045 [in, defaultvalue(0)] LONG skip_records
,
1046 [in, defaultvalue(adSearchForward
)] SearchDirectionEnum search_direction
,
1047 [in, optional] VARIANT start
);
1051 uuid(0000054f
-0000-0010-8000-00aa006d2ea4
),
1057 interface Recordset20
: Recordset15
1062 [id(0x00000420), propget]
1064 [out, retval] IUnknown
**data_source
);
1066 [id(0x00000420), propputref]
1068 [in] IUnknown
*data_source
);
1072 [in, optional] BSTR filename
,
1073 [in, defaultvalue(adPersistADTG
)] PersistFormatEnum persist_format
);
1075 [id(0x00000425), propget]
1076 HRESULT ActiveCommand
(
1077 [out, retval] IDispatch
**cmd
);
1079 [id(0x00000427), propput]
1081 [in] VARIANT_BOOL stay_in_sync
);
1083 [id(0x00000427), propget]
1085 [out, retval] VARIANT_BOOL *stay_in_sync
);
1089 [in, defaultvalue(adClipString
)] StringFormatEnum string_format
,
1090 [in, defaultvalue(-1)] LONG num_rows
,
1091 [in, optional] BSTR column_delimiter
,
1092 [in, optional] BSTR row_delimiter
,
1093 [in, optional] BSTR null_expr
,
1094 [out, retval] BSTR *ret_string
);
1096 [id(0x00000428), propget]
1098 [out, retval] BSTR *data_member
);
1100 [id(0x00000428), propput]
1102 [in] BSTR data_member
);
1105 HRESULT CompareBookmarks
(
1106 [in] VARIANT bookmark1
,
1107 [in] VARIANT bookmark2
,
1108 [out, retval] CompareEnum
*compare
);
1112 [in, defaultvalue(adLockUnspecified
)] LockTypeEnum lock_type
,
1113 [out, retval] _Recordset
**object);
1117 [in, defaultvalue(adAffectAll
)] AffectEnum affect_records
,
1118 [in, defaultvalue(adResyncAllValues
)] ResyncEnum resync_values
);
1122 uuid(00000555-0000-0010-8000-00aa006d2ea4
),
1128 interface Recordset21
: Recordset20
1132 [in] VARIANT key_values
,
1133 [in, defaultvalue(adSeekFirstEQ
)] SeekEnum seek_option
);
1135 [id(0x0000042b), propput]
1139 [id(0x0000042b), propget]
1141 [out, retval] BSTR *index
);
1145 uuid(00000556-0000-0010-8000-00aa006d2ea4
),
1151 interface _Recordset
: Recordset21
1155 [in, optional] VARIANT destination
,
1156 [in, defaultvalue(adPersistADTG
)] PersistFormatEnum persist_format
);
1160 uuid(00000500-0000-0010-8000-00aa006d2ea4
),
1166 interface Error
: IDispatch
1168 [id(0x60020000), propget]
1170 [out, retval] LONG *number
);
1172 [id(0x60020001), propget]
1174 [out, retval] BSTR *str
);
1176 [id(00000000), propget]
1177 HRESULT Description
(
1178 [out, retval] BSTR *str
);
1180 [id(0x60020003), propget]
1182 [out, retval] BSTR *str
);
1184 [id(0x60020004), propget]
1185 HRESULT HelpContext(
1186 [out, retval] LONG *ctx
);
1188 [id(0x60020005), propget]
1190 [out, retval] BSTR *str
);
1192 [id(0x60020006), propget]
1193 HRESULT NativeError
(
1194 [out, retval] LONG *error
);
1198 uuid(00000501-0000-0010-8000-00aa006d2ea4
),
1204 interface Errors
: _Collection
1206 [id(00000000), propget]
1209 [out, retval] Error
**object);
1216 uuid(00000515-0000-0010-8000-00aa006d2ea4
),
1221 interface Connection15
: _ADO
1223 [id(00000000), propget]
1224 HRESULT ConnectionString
(
1225 [out, retval] BSTR *str
);
1227 [id(00000000), propput]
1228 HRESULT ConnectionString
(
1231 [id(0x00000002), propget]
1232 HRESULT CommandTimeout
(
1233 [out, retval] LONG *timeout
);
1235 [id(0x00000002), propput]
1236 HRESULT CommandTimeout
(
1239 [id(0x00000003), propget]
1240 HRESULT ConnectionTimeout
(
1241 [out, retval] LONG *timeout
);
1243 [id(0x00000003), propput]
1244 HRESULT ConnectionTimeout
(
1247 [id(0x00000004), propget]
1249 [out, retval] BSTR *str
);
1257 [out, optional] VARIANT *records_affected
,
1258 [in, defaultvalue(-1)] LONG options
,
1259 [out, retval] _Recordset
**record_set
);
1263 [out, retval] LONG *transaction_level
);
1266 HRESULT CommitTrans
();
1269 HRESULT RollbackTrans
();
1273 [in, defaultvalue("")] BSTR connection_str
,
1274 [in, defaultvalue("")] BSTR user_id
,
1275 [in, defaultvalue("")] BSTR password
,
1276 [in, defaultvalue(-1)] LONG options
);
1278 [id(0x0000000b), propget]
1280 [out, retval] Errors
**object);
1282 [id(0x0000000c), propget]
1283 HRESULT DefaultDatabase
(
1284 [out, retval] BSTR *str
);
1286 [id(0x0000000c), propput]
1287 HRESULT DefaultDatabase
(
1290 [id(0x0000000d), propget]
1291 HRESULT IsolationLevel
(
1292 [out, retval] IsolationLevelEnum
*level
);
1294 [id(0x0000000d), propput]
1295 HRESULT IsolationLevel
(
1296 [in] IsolationLevelEnum level
);
1298 [id(0x0000000e), propget]
1300 [out, retval] LONG *attr
);
1302 [id(0x0000000e), propput]
1306 [id(0x0000000f), propget]
1307 HRESULT CursorLocation
(
1308 [out, retval] CursorLocationEnum
*cursor_loc
);
1310 [id(0x0000000f), propput]
1311 HRESULT CursorLocation
(
1312 [in] CursorLocationEnum cursor_loc
);
1314 [id(0x00000010), propget]
1316 [out, retval] ConnectModeEnum
*mode
);
1318 [id(0x00000010), propput]
1320 [in] ConnectModeEnum mode
);
1322 [id(0x00000011), propget]
1324 [out, retval] BSTR *str
);
1326 [id(0x00000011), propput]
1330 [id(0x00000012), propget]
1332 [out, retval] LONG *state
);
1336 [in] SchemaEnum schema
,
1337 [in, optional] VARIANT restrictions
,
1338 [in, optional] VARIANT schema_id
,
1339 [out, retval] _Recordset
**record_set
);
1343 uuid(00000550-0000-0010-8000-00aa006d2ea4
),
1348 interface _Connection
: Connection15
1355 uuid(0000050c
-0000-0010-8000-00aa006d2ea4
),
1361 interface _Parameter
: _ADO
1363 [id(0x60030000), propget]
1365 [out, retval] BSTR *str
);
1367 [id(0x60030000), propput]
1371 [id(00000000), propget]
1373 [out, retval] VARIANT *val
);
1375 [id(00000000), propput]
1379 [id(0x60030004), propget]
1381 [out, retval] DataTypeEnum
*data_type
);
1383 [id(0x60030004), propput]
1385 [in] DataTypeEnum data_type
);
1387 [id(0x60030006), propput]
1389 [in] ParameterDirectionEnum direction
);
1391 [id(0x60030006), propget]
1393 [out, retval] ParameterDirectionEnum
*direction
);
1395 [id(0x60030008), propput]
1397 [in] unsigned char precision
);
1399 [id(0x60030008), propget]
1401 [out, retval] unsigned char *precision
);
1403 [id(0x6003000a), propput]
1404 HRESULT NumericScale
(
1405 [in] unsigned char scale
);
1407 [id(0x6003000a), propget]
1408 HRESULT NumericScale
(
1409 [out, retval] unsigned char *scale
);
1411 [id(0x6003000c), propput]
1413 [in] ADO_LONGPTR size
);
1415 [id(0x6003000c), propget]
1417 [out, retval] ADO_LONGPTR
*size
);
1420 HRESULT AppendChunk
(
1423 [id(0x6003000f), propget]
1425 [out, retval] LONG *attrs
);
1427 [id(0x6003000f), propput]
1433 uuid(00000513-0000-0010-8000-00aa006d2ea4
),
1439 interface _DynaCollection
: _Collection
1443 [in] IDispatch
*object);
1447 [in] VARIANT index
);
1451 uuid(0000050d
-0000-0010-8000-00aa006d2ea4
),
1457 interface Parameters
: _DynaCollection
1459 [id(00000000), propget]
1462 [out, retval] _Parameter
**object);
1466 uuid(00000508-0000-0010-8000-00aa006d2ea4
),
1472 interface Command15
: _ADO
1474 [id(0x60030000), propget]
1475 HRESULT ActiveConnection
(
1476 [out, retval] _Connection
**object);
1478 [id(0x60030000), propputref]
1479 HRESULT ActiveConnection
(
1480 [in] _Connection
*object);
1482 [id(0x60030000), propput]
1483 HRESULT ActiveConnection
(
1484 [in] VARIANT object);
1486 [id(0x60030003), propget]
1487 HRESULT CommandText
(
1488 [out, retval] BSTR *str
);
1490 [id(0x60030003), propput]
1491 HRESULT CommandText
(
1494 [id(0x60030005), propget]
1495 HRESULT CommandTimeout
(
1496 [out, retval] LONG *timeout
);
1498 [id(0x60030005), propput]
1499 HRESULT CommandTimeout
(
1502 [id(0x60030007), propget]
1504 [out, retval] VARIANT_BOOL *prepared
);
1506 [id(0x60030007), propput]
1508 [in] VARIANT_BOOL prepared
);
1512 [out, optional] VARIANT *records_affected
,
1513 [in, optional] VARIANT *parameters
,
1514 [in, defaultvalue(-1)] LONG options
,
1515 [out, retval] _Recordset
**record_set
);
1518 HRESULT CreateParameter
(
1519 [in, defaultvalue("")] BSTR name
,
1520 [in, defaultvalue(adEmpty
)] DataTypeEnum type
,
1521 [in, defaultvalue(adParamInput
)] ParameterDirectionEnum direction
,
1522 [in, defaultvalue(0)] ADO_LONGPTR size
,
1523 [in, optional] VARIANT value
,
1524 [out, retval] _Parameter
**parameter
);
1526 [id(00000000), propget]
1528 [out, retval] Parameters
**object);
1530 [id(0x6003000c), propput]
1531 HRESULT CommandType
(
1532 [in] CommandTypeEnum cmd_type
);
1534 [id(0x6003000c), propget]
1535 HRESULT CommandType
(
1536 [out, retval] CommandTypeEnum
*cmd_type
);
1538 [id(0x6003000e), propget]
1540 [out, retval] BSTR *name
);
1542 [id(0x6003000e), propput]
1548 uuid(0000054e-0000-0010-8000-00aa006d2ea4
),
1554 interface Command25
: Command15
1556 [id(0x60030010), propget]
1558 [out, retval] LONG *state
);
1565 uuid(b08400bd
-f9d1
-4d02
-b856
-71d5dba123e9
),
1571 interface _Command
: Command25
1573 [id(0x60030012), propputref]
1574 HRESULT CommandStream
(
1575 [in] IUnknown
*stream
);
1577 [id(0x60030012), propget]
1578 HRESULT CommandStream
(
1579 [out, retval] VARIANT *stream
);
1581 [id(0x60030013), propput]
1585 [id(0x60030013), propget]
1587 [out, retval] BSTR *dialect
);
1589 [id(0x60030014), propput]
1590 HRESULT NamedParameters
(
1591 [in] VARIANT_BOOL named_parameters
);
1593 [id(0x60030014), propget]
1594 HRESULT NamedParameters
(
1595 [out, retval] VARIANT_BOOL *named_parameters
);
1599 uuid(00000402-0000-0010-8000-00aa006d2ea4
),
1603 interface ConnectionEventsVt
: IUnknown
1605 HRESULT InfoMessage
(
1607 [in, out] EventStatusEnum
*status
,
1608 [in] _Connection
*connection
);
1610 HRESULT BeginTransComplete
(
1611 [in] LONG TransactionLevel
,
1613 [in, out] EventStatusEnum
*status
,
1614 [in] _Connection
*connection
);
1616 HRESULT CommitTransComplete
(
1618 [in, out] EventStatusEnum
*status
,
1619 [in] _Connection
*connection
);
1621 HRESULT RollbackTransComplete
(
1623 [in, out] EventStatusEnum
*status
,
1624 [in] _Connection
*connection
);
1626 HRESULT WillExecute
(
1627 [in, out] BSTR *source,
1628 [in, out] CursorTypeEnum
*cursor_type
,
1629 [in, out] LockTypeEnum
*lock_type
,
1630 [in, out] LONG *options
,
1631 [in, out] EventStatusEnum
*status
,
1632 [in] _Command
*command
,
1633 [in] _Recordset
*record_set
,
1634 [in] _Connection
*connection
);
1636 HRESULT ExecuteComplete
(
1637 [in] LONG records_affected
,
1639 [in, out] EventStatusEnum
*status
,
1640 [in] _Command
*command
,
1641 [in] _Recordset
*record_set
,
1642 [in] _Connection
*connection
);
1644 HRESULT WillConnect
(
1645 [in, out] BSTR *string,
1646 [in, out] BSTR *userid
,
1647 [in, out] BSTR *password
,
1648 [in, out] LONG *options
,
1649 [in, out] EventStatusEnum
*status
,
1650 [in] _Connection
*connection
);
1652 HRESULT ConnectComplete
(
1654 [in, out] EventStatusEnum
*status
,
1655 [in] _Connection
*connection
);
1658 [in, out] EventStatusEnum
*status
,
1659 [in] _Connection
*connection
);
1663 uuid(00000400-0000-0010-8000-00aa006d2ea4
)
1665 dispinterface ConnectionEvents
1670 HRESULT InfoMessage
(
1672 [in, out] EventStatusEnum
*status
,
1673 [in] _Connection
*Connection
);
1676 HRESULT BeginTransComplete
(
1677 [in] LONG TransactionLevel
,
1679 [in, out] EventStatusEnum
*status
,
1680 [in] _Connection
*connection
);
1683 HRESULT CommitTransComplete
(
1685 [in, out] EventStatusEnum
*status
,
1686 [in] _Connection
*connection
);
1689 HRESULT RollbackTransComplete
(
1691 [in, out] EventStatusEnum
*status
,
1692 [in] _Connection
*connection
);
1695 HRESULT WillExecute
(
1696 [in, out] BSTR *source,
1697 [in, out] CursorTypeEnum
*cursor_type
,
1698 [in, out] LockTypeEnum
*lock_type
,
1699 [in, out] LONG *options
,
1700 [in, out] EventStatusEnum
*status
,
1701 [in] _Command
*command
,
1702 [in] _Recordset
*record_set
,
1703 [in] _Connection
*connection
);
1706 HRESULT ExecuteComplete
(
1707 [in] LONG records_affected
,
1709 [in, out] EventStatusEnum
*status
,
1710 [in] _Command
*command
,
1711 [in] _Recordset
*record_set
,
1712 [in] _Connection
*connection
);
1715 HRESULT WillConnect
(
1716 [in, out] BSTR *string,
1717 [in, out] BSTR *userid
,
1718 [in, out] BSTR *password
,
1719 [in, out] LONG *options
,
1720 [in, out] EventStatusEnum
*status
,
1721 [in] _Connection
*connection
);
1724 HRESULT ConnectComplete
(
1726 [in, out] EventStatusEnum
*status
,
1727 [in] _Connection
*connection
);
1731 [in, out] EventStatusEnum
*status
,
1732 [in] _Connection
*connection
);
1736 uuid(00000562-0000-0010-8000-00aa006d2ea4
),
1742 interface _Record
: _ADO
1745 HRESULT ActiveConnection
(
1746 [out, retval] VARIANT *connection
);
1749 HRESULT ActiveConnection
(
1750 [in] BSTR connection
);
1753 HRESULT ActiveConnection
(
1754 [in] _Connection
*connection
);
1758 [out, retval] ObjectStateEnum
*state
);
1762 [out, retval] VARIANT *source);
1770 [in] IDispatch
*source);
1774 [out, retval] ConnectModeEnum
*mode
);
1778 [in] ConnectModeEnum mode
);
1782 [out, retval] BSTR *parent_URL
);
1786 [in, defaultvalue("")] BSTR source,
1787 [in, defaultvalue("")] BSTR Destination
,
1788 [in, optional] BSTR UserName
,
1789 [in, optional] BSTR Password
,
1790 [in, defaultvalue(adMoveUnspecified
)] MoveRecordOptionsEnum Options
,
1791 [in, optional] VARIANT_BOOL Async
,
1792 [out, retval] BSTR *pbstrNewURL
);
1796 [in, defaultvalue("")] BSTR source,
1797 [in, defaultvalue("")] BSTR destination
,
1798 [in, optional] BSTR username
,
1799 [in, optional] BSTR password
,
1800 [in, defaultvalue(adCopyUnspecified
)] CopyRecordOptionsEnum options
,
1801 [in, optional] VARIANT_BOOL async
,
1802 [out, retval] BSTR *new_URL
);
1805 HRESULT DeleteRecord
(
1807 [in, optional] VARIANT_BOOL async
);
1811 [in, optional] VARIANT source,
1812 [in, optional] VARIANT active_connection
,
1813 [in, optional] ConnectModeEnum mode
,
1814 [in, defaultvalue(adFailIfNotExists
)] RecordCreateOptionsEnum create_options
,
1815 [in, defaultvalue(adOpenRecordUnspecified
)] RecordOpenOptionsEnum options
,
1816 [in, optional] BSTR username
,
1817 [in, optional] BSTR password
);
1824 [out, retval] Fields
**fields
);
1828 [out, retval] RecordTypeEnum
*type
);
1831 HRESULT GetChildren
(
1832 [out, retval] _Recordset
**record_set
);
1839 uuid(00000565-0000-0010-8000-00aa006d2ea4
),
1845 interface _Stream
: IDispatch
1849 [out, retval] ADO_LONGPTR
*size
);
1853 [out, retval] VARIANT_BOOL *eos
);
1857 [out, retval] ADO_LONGPTR
*position
);
1861 [in] ADO_LONGPTR position
);
1865 [out, retval] StreamTypeEnum
*type
);
1869 [in] StreamTypeEnum type
);
1872 HRESULT LineSeparator
(
1873 [out, retval] LineSeparatorEnum
*separator
);
1876 HRESULT LineSeparator
(
1877 [in] LineSeparatorEnum separator
);
1881 [out, retval] ObjectStateEnum
*state
);
1885 [out, retval] ConnectModeEnum
*mode
);
1889 [in] ConnectModeEnum mode
);
1893 [out, retval] BSTR *charset
);
1901 [in, defaultvalue(adReadAll
)] LONG num_bytes
,
1902 [out, retval] VARIANT *val
);
1906 [in, optional] VARIANT source,
1907 [in, defaultvalue(adModeUnknown
)] ConnectModeEnum mode
,
1908 [in, defaultvalue(adOpenStreamUnspecified
)] StreamOpenOptionsEnum options
,
1909 [in, optional] BSTR username
,
1910 [in, optional] BSTR password
);
1913 HRESULT Close
(void);
1916 HRESULT SkipLine
(void);
1920 [in] VARIANT buffer
);
1923 HRESULT SetEOS
(void);
1928 [in, defaultvalue(-1)] ADO_LONGPTR size
);
1931 HRESULT Flush
(void);
1936 [in, defaultvalue(adSaveCreateNotExist
)] SaveOptionsEnum options
);
1939 HRESULT LoadFromFile
(
1940 [in] BSTR filename
);
1944 [in, defaultvalue(adReadAll
)] LONG size
,
1945 [out, retval] BSTR *str
);
1950 [in, defaultvalue(adWriteChar
)] StreamWriteEnum options
);
1953 HRESULT Cancel
(void);
1957 uuid(00000266-0000-0010-8000-00aa006d2ea4
)
1959 dispinterface RecordsetEvents
1964 HRESULT WillChangeField
(
1966 [in] VARIANT fields
,
1967 [in, out] EventStatusEnum
*status
,
1968 [in] _Recordset
*record_set
);
1971 HRESULT FieldChangeComplete
(
1973 [in] VARIANT fields
,
1975 [in, out] EventStatusEnum
*status
,
1976 [in] _Recordset
*record_set
);
1979 HRESULT WillChangeRecord
(
1980 [in] EventReasonEnum reason
,
1982 [in, out] EventStatusEnum
*status
,
1983 [in] _Recordset
*record_set
);
1986 HRESULT RecordChangeComplete
(
1987 [in] EventReasonEnum reason
,
1990 [in, out] EventStatusEnum
*status
,
1991 [in] _Recordset
*record_set
);
1994 HRESULT WillChangeRecordset
(
1995 [in] EventReasonEnum reason
,
1996 [in, out] EventStatusEnum
*status
,
1997 [in] _Recordset
*record_set
);
2000 HRESULT RecordsetChangeComplete
(
2001 [in] EventReasonEnum reason
,
2003 [in, out] EventStatusEnum
*status
,
2004 [in] _Recordset
*record_set
);
2008 [in] EventReasonEnum reason
,
2009 [in, out] EventStatusEnum
*status
,
2010 [in] _Recordset
*record_set
);
2013 HRESULT MoveComplete
(
2014 [in] EventReasonEnum reason
,
2016 [in, out] EventStatusEnum
*status
,
2017 [in] _Recordset
*record_set
);
2020 HRESULT EndOfRecordset
(
2021 [in, out] VARIANT_BOOL *more_data
,
2022 [in, out] EventStatusEnum
*status
,
2023 [in] _Recordset
*record_set
);
2026 HRESULT FetchProgress
(
2028 [in] LONG max_progress
,
2029 [in, out] EventStatusEnum
*status
,
2030 [in] _Recordset
*record_set
);
2033 HRESULT FetchComplete
(
2035 [in, out] EventStatusEnum
*status
,
2036 [in] _Recordset
*record_set
);
2040 uuid(00000538-0000-0010-8000-00aa006d2ea4
),
2044 interface ADODebugging
: IUnknown
2046 HRESULT IsGlobalDebugMode
(
2047 VARIANT_BOOL *debugging_on
);
2049 HRESULT SetGlobalDebugMode
(
2051 VARIANT_BOOL debugging_on
);
2055 uuid(00000516-0000-0010-8000-00aa006d2ea4
),
2059 interface ADOConnectionConstruction15
: IUnknown
2063 [out, retval] IUnknown
**dso
);
2067 [out, retval] IUnknown
**session
);
2069 HRESULT WrapDSOandSession
(
2071 [in] IUnknown
*session
);
2075 uuid(00000551-0000-0010-8000-00aa006d2ea4
),
2079 interface ADOConnectionConstruction
: ADOConnectionConstruction15
2084 uuid(00000517-0000-0010-8000-00aa006d2ea4
),
2088 interface ADOCommandConstruction
: IUnknown
2091 HRESULT OLEDBCommand
(
2092 [out, retval] IUnknown
**command
);
2095 HRESULT OLEDBCommand
(
2096 [in] IUnknown
*command
);
2100 uuid(00000283-0000-0010-8000-00aa006d2ea4
),
2104 interface ADORecordsetConstruction
: IDispatch
2108 [out, retval] IUnknown
**row_set
);
2112 [in] IUnknown
*row_set
);
2116 [out, retval] ADO_LONGPTR
*chapter
);
2120 [in] ADO_LONGPTR chapter
);
2123 HRESULT RowPosition
(
2124 [out, retval] IUnknown
**row_pos
);
2127 HRESULT RowPosition
(
2128 [in] IUnknown
*row_pos
);
2132 uuid(2a75196c
-d9eb
-4129-b803
-931327f72d5c
),
2137 importlib
("stdole2.tlb");
2140 uuid(00000514-0000-0010-8000-00aa006d2ea4
),
2144 [default] interface _Connection
;
2145 [default, source] dispinterface ConnectionEvents
;
2149 uuid(00000507-0000-0010-8000-00aa006d2ea4
),
2153 [default] interface _Command
;
2157 uuid(00000535-0000-0010-8000-00aa006d2ea4
),
2161 [default] interface _Recordset
;
2162 [default, source] dispinterface RecordsetEvents
;
2166 uuid(0000050b
-0000-0010-8000-00aa006d2ea4
),
2170 [default] interface _Parameter
;
2174 uuid(00000560-0000-0010-8000-00aa006d2ea4
),
2178 [default] interface _Record
;
2182 uuid(00000566-0000-0010-8000-00aa006d2ea4
),
2186 [default] interface _Stream
;