MsAdo15.Idl
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:69k
源码类别:

模拟服务器

开发平台:

C/C++

  1. //-----------------------------------------------------------------------------
  2. // File: msado15.idl
  3. //
  4. // Copyright: Copyright (c) Microsoft Corporation           
  5. //
  6. // Contents:
  7. //
  8. // 
  9. // Comments: ADO interface definitions for inclusion in .IDL files
  10. //
  11. //-----------------------------------------------------------------------------
  12. #ifndef DO_NO_IMPORTS
  13. import "oaidl.idl";
  14. #endif
  15. midl_pragma warning (disable: 2400)
  16. interface _Collection;
  17. interface _DynaCollection;
  18. interface _ADO;
  19. interface Properties;
  20. interface Property;
  21. interface Error;
  22. interface Errors;
  23. interface _Command;
  24. interface Command25;
  25. interface Command15;
  26. interface _Connection;
  27. interface Connection15;
  28. interface _Recordset;
  29. interface Recordset21;
  30. interface Recordset20;
  31. interface Recordset15;
  32. interface _Record;
  33. interface _Stream;
  34. interface Fields;
  35. interface Fields20;
  36. interface Fields15;
  37. interface Field;
  38. interface Field20;
  39. interface Field15;
  40. interface _Parameter;
  41. interface Parameters;
  42. interface ADODebugging;
  43. interface ConnectionEventsVt;
  44. interface RecordsetEventsVt;
  45. dispinterface ConnectionEvents;
  46. dispinterface RecordsetEvents;
  47. interface ADOConnectionConstruction;
  48. interface ADOCommandConstruction;
  49. interface ADORecordsetConstruction;
  50. #ifdef _WIN64
  51. typedef
  52. [
  53. public,
  54. uuid(54D8B4B9-663B-4a9c-95F6-0E749ABD70F1),
  55. ]
  56.  __int64 ADO_LONGPTR;
  57. #else
  58. typedef 
  59. [
  60. public,
  61. uuid(54D8B4B9-663B-4a9c-95F6-0E749ABD70F1),
  62. ]
  63. long ADO_LONGPTR;
  64. #endif
  65. typedef [uuid(0000051B-0000-0010-8000-00AA006D2EA4)]
  66. enum {
  67.         adOpenUnspecified = -1,
  68.         adOpenForwardOnly = 0,
  69.         adOpenKeyset = 1,
  70.         adOpenDynamic = 2,
  71.         adOpenStatic = 3
  72. } CursorTypeEnum;
  73. typedef [uuid(0000051C-0000-0010-8000-00AA006D2EA4)]
  74. enum {
  75. adHoldRecords = 256,
  76.     adMovePrevious = 512,
  77.     adAddNew = 16778240,
  78.     adDelete = 16779264,
  79.     adUpdate = 16809984,
  80.     adBookmark = 8192,
  81.     adApproxPosition = 16384,
  82.     adUpdateBatch = 65536,
  83.     adResync = 131072,
  84.     adNotify = 262144,
  85.     adFind = 524288,
  86. adSeek = 4194304,
  87. adIndex = 8388608
  88. } CursorOptionEnum;
  89.     typedef [uuid(0000051D-0000-0010-8000-00AA006D2EA4)]
  90.     enum {
  91.         adLockUnspecified = -1,
  92.         adLockReadOnly = 1,
  93.         adLockPessimistic = 2,
  94.         adLockOptimistic = 3,
  95.         adLockBatchOptimistic = 4
  96.     } LockTypeEnum;
  97.     typedef [uuid(0000051E-0000-0010-8000-00AA006D2EA4)]
  98.     enum {
  99.         adOptionUnspecified = -1,
  100.         adAsyncExecute = 16,
  101.         adAsyncFetch = 32,
  102.         adAsyncFetchNonBlocking = 64,
  103.         adExecuteNoRecords = 128,
  104. adExecuteStream = 1024,
  105. [hidden] adExecuteRecord = 2048
  106.     } ExecuteOptionEnum;
  107.     typedef [uuid(00000541-0000-0010-8000-00AA006D2EA4)]
  108.     enum {
  109.         adConnectUnspecified = -1,
  110.         adAsyncConnect = 16
  111.     } ConnectOptionEnum;
  112.     typedef [uuid(00000532-0000-0010-8000-00AA006D2EA4)]
  113.     enum {
  114.         adStateClosed = 0,
  115.         adStateOpen = 1,
  116.         adStateConnecting = 2,
  117.         adStateExecuting = 4,
  118.         adStateFetching = 8
  119.     } ObjectStateEnum;
  120.     typedef [uuid(0000052F-0000-0010-8000-00AA006D2EA4)]
  121.     enum {
  122.         adUseNone = 1,
  123.         adUseServer = 2,
  124.         adUseClient = 3,
  125.         adUseClientBatch = 3
  126.     } CursorLocationEnum;
  127.     typedef [uuid(0000051F-0000-0010-8000-00AA006D2EA4)]
  128.     enum {
  129.         adEmpty = 0,
  130.         adTinyInt = 16,
  131.         adSmallInt = 2,
  132.         adInteger = 3,
  133.         adBigInt = 20,
  134.         adUnsignedTinyInt = 17,
  135.         adUnsignedSmallInt = 18,
  136.         adUnsignedInt = 19,
  137.         adUnsignedBigInt = 21,
  138.         adSingle = 4,
  139.         adDouble = 5,
  140.         adCurrency = 6,
  141.         adDecimal = 14,
  142.         adNumeric = 131,
  143.         adBoolean = 11,
  144.         adError = 10,
  145.         adUserDefined = 132,
  146.         adVariant = 12,
  147.         adIDispatch = 9,
  148.         adIUnknown = 13,
  149.         adGUID = 72,
  150.         adDate = 7,
  151.         adDBDate = 133,
  152.         adDBTime = 134,
  153.         adDBTimeStamp = 135,
  154.         adBSTR = 8,
  155.         adChar = 129,
  156.         adVarChar = 200,
  157.         adLongVarChar = 201,
  158.         adWChar = 130,
  159.         adVarWChar = 202,
  160.         adLongVarWChar = 203,
  161.         adBinary = 128,
  162.         adVarBinary = 204,
  163.         adLongVarBinary = 205,
  164.         adChapter = 136,
  165.         adFileTime = 64,        
  166.         adPropVariant = 138,  
  167.         adVarNumeric = 139,
  168. adArray = 0x2000
  169.     } DataTypeEnum;
  170.     typedef [uuid(00000525-0000-0010-8000-00AA006D2EA4)]
  171.     enum {
  172.         adFldUnspecified =      -1,
  173. adFldMayDefer = 0x00000002,
  174. adFldUpdatable = 0x00000004,
  175. adFldUnknownUpdatable = 0x00000008,
  176. adFldFixed = 0x00000010,
  177. adFldIsNullable = 0x00000020,
  178. adFldMayBeNull = 0x00000040,
  179. adFldLong = 0x00000080,
  180. adFldRowID = 0x00000100,
  181. adFldRowVersion = 0x00000200,
  182. adFldCacheDeferred = 0x00001000,
  183. adFldIsChapter = 0x00002000,
  184. adFldNegativeScale = 0x00004000,
  185. adFldKeyColumn = 0x00008000,
  186. adFldIsRowURL = 0x00010000,
  187. adFldIsDefaultStream = 0x00020000,
  188. adFldIsCollection = 0x00040000
  189.     } FieldAttributeEnum;
  190.     typedef [uuid(00000526-0000-0010-8000-00AA006D2EA4)]
  191.     enum {
  192.         adEditNone = 0,
  193.         adEditInProgress = 1,
  194.         adEditAdd = 2,
  195.         adEditDelete = 4
  196.     } EditModeEnum;
  197.     typedef [uuid(00000527-0000-0010-8000-00AA006D2EA4)]
  198.     enum {
  199.         adRecOK = 0,
  200.         adRecNew = 1,
  201.         adRecModified = 2,
  202.         adRecDeleted = 4,
  203.         adRecUnmodified = 8,
  204.         adRecInvalid = 16,
  205.         adRecMultipleChanges = 64,
  206.         adRecPendingChanges = 128,
  207.         adRecCanceled = 256,
  208.         adRecCantRelease = 1024,
  209.         adRecConcurrencyViolation = 2048,
  210.         adRecIntegrityViolation = 4096,
  211.         adRecMaxChangesExceeded = 8192,
  212.         adRecObjectOpen = 16384,
  213.         adRecOutOfMemory = 32768,
  214.         adRecPermissionDenied = 65536,
  215.         adRecSchemaViolation = 131072,
  216.         adRecDBDeleted = 262144
  217.     } RecordStatusEnum;
  218.     typedef [uuid(00000542-0000-0010-8000-00AA006D2EA4)]
  219.     enum {
  220.         adGetRowsRest = -1
  221.     } GetRowsOptionEnum;
  222.     typedef [uuid(00000528-0000-0010-8000-00AA006D2EA4)]
  223.     enum {
  224.         adPosUnknown = -1,
  225.         adPosBOF = -2,
  226.         adPosEOF = -3
  227.     } PositionEnum;
  228. #ifdef _WIN64
  229. typedef 
  230. [
  231. public,
  232. uuid(A56187C5-D690-4037-AE32-A00EDC376AC3),
  233. ]
  234. ADO_LONGPTR PositionEnum_Param;
  235. #else
  236. typedef
  237. [
  238. public,
  239. uuid(A56187C5-D690-4037-AE32-A00EDC376AC3),
  240. ]
  241. PositionEnum PositionEnum_Param;
  242. #endif
  243.     typedef enum {
  244.         adBookmarkCurrent = 0,
  245.         adBookmarkFirst = 1,
  246.         adBookmarkLast = 2
  247.     } BookmarkEnum;
  248.     typedef [uuid(00000540-0000-0010-8000-00AA006D2EA4)]
  249.     enum {
  250.         adMarshalAll = 0,
  251.         adMarshalModifiedOnly = 1
  252.     } MarshalOptionsEnum;
  253.     typedef [uuid(00000543-0000-0010-8000-00AA006D2EA4)]
  254.     enum {
  255.         adAffectCurrent = 1,
  256.         adAffectGroup = 2,
  257.         adAffectAll = 3,
  258.         adAffectAllChapters = 4
  259.     } AffectEnum;
  260.     typedef [uuid(00000544-0000-0010-8000-00AA006D2EA4)]
  261.     enum {
  262.         adResyncUnderlyingValues = 1,
  263.         adResyncAllValues = 2
  264.     } ResyncEnum;
  265.     typedef [uuid(00000545-0000-0010-8000-00AA006D2EA4)]
  266.     enum {
  267.         adCompareLessThan = 0,
  268.         adCompareEqual = 1,
  269.         adCompareGreaterThan = 2,
  270.         adCompareNotEqual = 3,
  271.         adCompareNotComparable = 4
  272.     } CompareEnum;
  273.     typedef [uuid(00000546-0000-0010-8000-00AA006D2EA4)]
  274.     enum {
  275.         adFilterNone = 0,
  276.         adFilterPendingRecords = 1,
  277.         adFilterAffectedRecords = 2,
  278.         adFilterFetchedRecords = 3,
  279.         adFilterPredicate = 4,
  280.         adFilterConflictingRecords = 5
  281.     } FilterGroupEnum;
  282.     typedef [uuid(00000547-0000-0010-8000-00AA006D2EA4)]
  283.     enum {
  284.         adSearchForward = 1,
  285.         adSearchBackward = -1
  286.     } SearchDirectionEnum;
  287. typedef [public]
  288. SearchDirectionEnum SearchDirection;
  289.     typedef [uuid(00000548-0000-0010-8000-00AA006D2EA4)]
  290.     enum {
  291.         adPersistADTG = 0,
  292.         adPersistXML = 1
  293.     } PersistFormatEnum;
  294.     typedef [uuid(00000549-0000-0010-8000-00AA006D2EA4)]
  295.     enum {
  296.         adClipString = 2
  297.     } StringFormatEnum;
  298.     typedef [uuid(00000520-0000-0010-8000-00AA006D2EA4)]
  299.     enum {
  300.         adPromptAlways = 1,
  301.         adPromptComplete = 2,
  302.         adPromptCompleteRequired = 3,
  303.         adPromptNever = 4
  304.     } ConnectPromptEnum;
  305.     typedef [uuid(00000521-0000-0010-8000-00AA006D2EA4)]
  306.     enum {
  307.         adModeUnknown = 0,
  308.         adModeRead = 1,
  309.         adModeWrite = 2,
  310.         adModeReadWrite = 3,
  311.         adModeShareDenyRead = 4,
  312.         adModeShareDenyWrite = 8,
  313.         adModeShareExclusive = 12,
  314.         adModeShareDenyNone = 16,
  315. adModeRecursive =4194304
  316.     } ConnectModeEnum;
  317.     typedef [uuid(00000523-0000-0010-8000-00AA006D2EA4)]
  318.     enum {
  319.         adXactUnspecified = -1,
  320.         adXactChaos = 16,
  321.         adXactReadUncommitted = 256,
  322.         adXactBrowse = 256,
  323.         adXactCursorStability = 4096,
  324.         adXactReadCommitted = 4096,
  325.         adXactRepeatableRead = 65536,
  326.         adXactSerializable = 1048576,
  327.         adXactIsolated = 1048576
  328.     } IsolationLevelEnum;
  329.     typedef [uuid(00000524-0000-0010-8000-00AA006D2EA4)]
  330.     enum {
  331.         adXactCommitRetaining = 131072,
  332.         adXactAbortRetaining = 262144,
  333.         adXactAsyncPhaseOne = 524288,
  334.         adXactSyncPhaseOne = 1048576
  335.     } XactAttributeEnum;
  336.     typedef [uuid(00000529-0000-0010-8000-00AA006D2EA4)]
  337.     enum {
  338.         adPropNotSupported = 0,
  339.         adPropRequired = 1,
  340.         adPropOptional = 2,
  341.         adPropRead = 512,
  342.         adPropWrite = 1024
  343.     } PropertyAttributesEnum;
  344.     typedef [uuid(0000052A-0000-0010-8000-00AA006D2EA4)]
  345.     enum {
  346.         adErrInvalidArgument = 3001,
  347. adErrOpeningFile  = 3002,
  348. adErrReadFile  = 3003,
  349. adErrWriteFile  = 3004,  
  350.         adErrNoCurrentRecord = 3021,
  351.         adErrIllegalOperation = 3219,
  352. adErrCantChangeProvider = 3220,
  353.         adErrInTransaction = 3246,
  354.         adErrFeatureNotAvailable = 3251,
  355.         adErrItemNotFound = 3265,
  356.         adErrObjectInCollection = 3367,
  357.         adErrObjectNotSet = 3420,
  358.         adErrDataConversion = 3421,
  359.         adErrObjectClosed = 3704,
  360.         adErrObjectOpen = 3705,
  361.         adErrProviderNotFound = 3706,
  362.         adErrBoundToCommand = 3707,
  363.         adErrInvalidParamInfo = 3708,
  364.         adErrInvalidConnection = 3709,
  365.         adErrNotReentrant = 3710,
  366.         adErrStillExecuting = 3711,
  367.         adErrOperationCancelled = 3712,
  368.         adErrStillConnecting = 3713,
  369. adErrInvalidTransaction = 3714,
  370.         adErrNotExecuting = 3715,
  371.         adErrUnsafeOperation = 3716,
  372. adWrnSecurityDialog = 3717,
  373. adWrnSecurityDialogHeader = 3718,
  374. adErrIntegrityViolation = 3719,
  375. adErrPermissionDenied = 3720,
  376. adErrDataOverflow = 3721,
  377. adErrSchemaViolation = 3722,
  378. adErrSignMismatch = 3723,
  379. adErrCantConvertvalue = 3724,
  380. adErrCantCreate = 3725,
  381. adErrColumnNotOnThisRow = 3726,
  382. //adErrURLIntegrViolSetColumns =3727,
  383. adErrURLDoesNotExist =3727,
  384. adErrTreePermissionDenied = 3728,
  385. adErrInvalidURL = 3729,
  386. adErrResourceLocked =3730,
  387. adErrResourceExists =3731,
  388. adErrCannotComplete = 3732,
  389. adErrVolumeNotFound = 3733,
  390. adErrOutOfSpace =3734, 
  391. adErrResourceOutOfScope =3735,
  392. adErrUnavailable =3736,
  393. adErrURLNamedRowDoesNotExist = 3737,
  394. adErrDelResOutOfScope = 3738,
  395. adErrPropInvalidColumn = 3739,
  396. adErrPropInvalidOption = 3740,
  397. adErrPropInvalidValue =3741,
  398. adErrPropConflicting = 3742,
  399. adErrPropNotAllSettable = 3743,
  400. adErrPropNotSet =3744,
  401. adErrPropNotSettable =3745,
  402. adErrPropNotSupported = 3746,
  403. adErrCatalogNotSet = 3747,
  404. adErrCantChangeConnection = 3748,
  405. adErrFieldsUpdateFailed = 3749,
  406. adErrDenyNotSupported = 3750,
  407. adErrDenyTypeNotSupported = 3751,
  408. adErrProviderNotSpecified = 3753
  409.     } ErrorValueEnum;
  410.     typedef [uuid(0000052B-0000-0010-8000-00AA006D2EA4)]
  411.     enum {
  412.         adParamSigned = 16,
  413.         adParamNullable = 64,
  414.         adParamLong = 128
  415.     } ParameterAttributesEnum;
  416.     typedef [uuid(0000052C-0000-0010-8000-00AA006D2EA4)]
  417.     enum {
  418.         adParamUnknown = 0,
  419.         adParamInput = 1,
  420.         adParamOutput = 2,
  421.         adParamInputOutput = 3,
  422.         adParamReturnValue = 4
  423.     } ParameterDirectionEnum;
  424.     typedef [uuid(0000052E-0000-0010-8000-00AA006D2EA4)]
  425.     enum {
  426.         adCmdUnspecified = -1,
  427.         adCmdUnknown = 8,
  428.         adCmdText = 1,
  429.         adCmdTable = 2,
  430.         adCmdStoredProc = 4,
  431.         adCmdFile = 256,
  432.         adCmdTableDirect = 512
  433.     } CommandTypeEnum;
  434.     typedef [uuid(00000530-0000-0010-8000-00AA006D2EA4)]
  435.     enum {
  436.         adStatusOK = 1,
  437.         adStatusErrorsOccurred = 2,
  438.         adStatusCantDeny = 3,
  439.         adStatusCancel = 4,
  440.         adStatusUnwantedEvent = 5
  441.     } EventStatusEnum;
  442.     typedef [uuid(00000531-0000-0010-8000-00AA006D2EA4)]
  443.     enum {
  444.         adRsnAddNew = 1,
  445.         adRsnDelete = 2,
  446.         adRsnUpdate = 3,
  447.         adRsnUndoUpdate = 4,
  448.         adRsnUndoAddNew = 5,
  449.         adRsnUndoDelete = 6,
  450.         adRsnRequery = 7,
  451.         adRsnResynch = 8,
  452.         adRsnClose = 9,
  453.         adRsnMove = 10,
  454.         adRsnFirstChange = 11,
  455.         adRsnMoveFirst = 12,
  456.         adRsnMoveNext = 13,
  457.         adRsnMovePrevious = 14,
  458.         adRsnMoveLast = 15
  459.     } EventReasonEnum;
  460.     typedef [uuid(00000533-0000-0010-8000-00AA006D2EA4)]
  461.     enum {
  462.         adSchemaProviderSpecific = -1,
  463.         adSchemaAsserts = 0,
  464.         adSchemaCatalogs = 1,
  465.         adSchemaCharacterSets = 2,
  466.         adSchemaCollations = 3,
  467.         adSchemaColumns = 4,
  468.         adSchemaCheckConstraints = 5,
  469.         adSchemaConstraintColumnUsage = 6,
  470.         adSchemaConstraintTableUsage = 7,
  471.         adSchemaKeyColumnUsage = 8,
  472.         [hidden] adSchemaReferentialContraints = 9,
  473.         adSchemaReferentialConstraints = 9,
  474.         adSchemaTableConstraints = 10,
  475.         adSchemaColumnsDomainUsage = 11,
  476.         adSchemaIndexes = 12,
  477.         adSchemaColumnPrivileges = 13,
  478.         adSchemaTablePrivileges = 14,
  479.         adSchemaUsagePrivileges = 15,
  480.         adSchemaProcedures = 16,
  481.         adSchemaSchemata = 17,
  482.         adSchemaSQLLanguages = 18,
  483.         adSchemaStatistics = 19,
  484.         adSchemaTables = 20,
  485.         adSchemaTranslations = 21,
  486.         adSchemaProviderTypes = 22,
  487.         adSchemaViews = 23,
  488.         adSchemaViewColumnUsage = 24,
  489.         adSchemaViewTableUsage = 25,
  490.         adSchemaProcedureParameters = 26,
  491.         adSchemaForeignKeys = 27,
  492.         adSchemaPrimaryKeys = 28,
  493.         adSchemaProcedureColumns = 29,
  494.         adSchemaDBInfoKeywords = 30,
  495.         adSchemaDBInfoLiterals = 31,
  496.         adSchemaCubes = 32,
  497.         adSchemaDimensions = 33,
  498.         adSchemaHierarchies = 34,
  499.         adSchemaLevels = 35,
  500.         adSchemaMeasures = 36,
  501.         adSchemaProperties = 37,
  502.         adSchemaMembers = 38,
  503. adSchemaTrustees = 39,
  504. adSchemaFunctions = 40,
  505. adSchemaActions = 41,
  506. adSchemaCommands = 42,
  507. adSchemaSets = 43
  508.     } SchemaEnum;
  509. typedef [uuid(00000552-0000-0010-8000-00AA006D2EA4)]
  510. enum {
  511. adSeekFirstEQ = 1,
  512. adSeekLastEQ = 2,
  513. adSeekAfterEQ = 4,
  514. adSeekAfter = 8,
  515. adSeekBeforeEQ = 16,
  516. adSeekBefore = 32
  517. } SeekEnum;
  518.     typedef [uuid(0000054A-0000-0010-8000-00AA006D2EA4)]
  519.     enum {
  520.         adCriteriaKey = 0,
  521.         adCriteriaAllCols = 1,
  522.         adCriteriaUpdCols = 2,
  523.         adCriteriaTimeStamp = 3
  524.     } ADCPROP_UPDATECRITERIA_ENUM;
  525.     typedef [uuid(0000054B-0000-0010-8000-00AA006D2EA4)]
  526.     enum {
  527.         adPriorityLowest = 1,
  528.         adPriorityBelowNormal = 2,
  529.         adPriorityNormal = 3,
  530.         adPriorityAboveNormal = 4,
  531.         adPriorityHighest = 5
  532.     } ADCPROP_ASYNCTHREADPRIORITY_ENUM;
  533. typedef [uuid(00000553-0000-0010-8000-00AA006D2EA4)]
  534. enum {
  535. adResyncNone = 0,
  536. adResyncAutoIncrement = 1,
  537. adResyncConflicts = 2,
  538. adResyncUpdates = 4,
  539. adResyncInserts = 8,
  540. adResyncAll = 15
  541. } CEResyncEnum;
  542. typedef [uuid(00000554-0000-0010-8000-00AA006D2EA4)]
  543. enum {
  544. adRecalcUpFront = 0,
  545. adRecalcAlways = 1
  546. } ADCPROP_AUTORECALC_ENUM;
  547. // Field states
  548. typedef [uuid(0000057E-0000-0010-8000-00AA006D2EA4)]
  549. enum FieldStatusEnum 
  550. {
  551. adFieldOK = 0,
  552. adFieldCantConvertValue = 2,
  553. adFieldIsNull = 3,
  554. adFieldTruncated = 4,
  555. adFieldSignMismatch = 5,
  556. adFieldDataOverflow = 6,
  557. adFieldCantCreate = 7,
  558. adFieldUnavailable = 8,
  559. adFieldPermissionDenied = 9,
  560. adFieldIntegrityViolation = 10,
  561. adFieldSchemaViolation = 11,
  562. adFieldBadStatus = 12,
  563. adFieldDefault = 13,
  564. adFieldIgnore = 15,
  565. adFieldDoesNotExist = 16, //(&H10)
  566. adFieldInvalidURL = 17, //(&H11)
  567. adFieldResourceLocked = 18, //(&H12)
  568. adFieldResourceExists = 19, //(&H13)
  569. adFieldCannotComplete = 20, //(&H14)
  570. adFieldVolumeNotFound = 21, //(&H15)
  571. adFieldOutOfSpace = 22, //(&H16)
  572. adFieldCannotDeleteSource = 23, //(&H17)
  573. adFieldReadOnly = 24, //(&H18)
  574. adFieldResourceOutOfScope = 25, //(&H19)
  575. adFieldAlreadyExists = 26, //(&H1A)
  576. adFieldPendingInsert = 0x10000,
  577. adFieldPendingDelete = 0x20000,
  578. adFieldPendingChange = 0x40000,
  579. adFieldPendingUnknown = 0x80000,
  580. adFieldPendingUnknownDelete = 0x100000
  581. FieldStatusEnum;
  582. typedef [uuid(00000570-0000-0010-8000-00AA006D2EA4)]
  583. enum {
  584. adCreateCollection = 0x00002000,
  585. adCreateStructDoc = 0x80000000,
  586. adCreateNonCollection = 0x00000000,
  587. adOpenIfExists = 0x02000000,
  588. adCreateOverwrite = 0x04000000,
  589. adFailIfNotExists = -1
  590. } RecordCreateOptionsEnum;
  591. typedef [uuid(00000571-0000-0010-8000-00AA006D2EA4)]
  592. enum {
  593. adOpenRecordUnspecified = -1,
  594. [hidden]adOpenSource = 0x00800000,
  595. adOpenOutput = 0x00800000,
  596. adOpenAsync = 0x00001000,
  597. adDelayFetchStream = 0x00004000,
  598. adDelayFetchFields = 0x00008000,
  599. adOpenExecuteCommand = 0x00010000
  600. } RecordOpenOptionsEnum;
  601. typedef [uuid(00000573-0000-0010-8000-00AA006D2EA4)]
  602. enum {
  603. adMoveUnspecified = -1,
  604. adMoveOverWrite = 1,
  605. adMoveDontUpdateLinks = 2,
  606. adMoveAllowEmulation = 4
  607. } MoveRecordOptionsEnum;
  608. typedef [uuid(00000574-0000-0010-8000-00AA006D2EA4)]
  609. enum {
  610. adCopyUnspecified = -1,
  611. adCopyOverWrite = 1,
  612. adCopyAllowEmulation = 4,
  613. adCopyNonRecursive = 2
  614. } CopyRecordOptionsEnum;
  615. typedef [uuid(00000576-0000-0010-8000-00AA006D2EA4)]
  616. enum {
  617. adTypeBinary = 1,
  618. adTypeText = 2
  619. } StreamTypeEnum;
  620.     typedef [uuid(00000577-0000-0010-8000-00AA006D2EA4)]
  621.     enum {
  622. adLF = 10,
  623. adCR = 13,
  624. adCRLF = -1
  625.     } LineSeparatorEnum;
  626.     typedef [uuid(0000057A-0000-0010-8000-00AA006D2EA4)]
  627.     enum {
  628. adOpenStreamUnspecified = -1,
  629. adOpenStreamAsync = 1,
  630. adOpenStreamFromRecord = 4
  631. #ifdef ADOSTREAMFROMCMD
  632. adOpenStreamFromCommand = 8
  633. #endif //ADOSTREAMFROMCMD
  634.     } StreamOpenOptionsEnum;
  635.     typedef [uuid(0000057B-0000-0010-8000-00AA006D2EA4)]
  636. enum
  637. {
  638. adWriteChar = 0,
  639. adWriteLine = 1
  640. }
  641. StreamWriteEnum;
  642.     typedef [uuid(0000057C-0000-0010-8000-00AA006D2EA4)]
  643. enum
  644. {
  645. adSaveCreateNotExist = 1,
  646. adSaveCreateOverWrite = 2
  647. }
  648. SaveOptionsEnum;
  649. // Special Fields
  650. typedef enum
  651. {
  652. adDefaultStream = -1,
  653. adRecordURL = -2
  654. }
  655. FieldEnum;
  656. // stream read options
  657. typedef enum
  658. {
  659. adReadAll = -1,
  660. adReadLine = -2
  661. }
  662. StreamReadEnum;
  663.     typedef [uuid(0000057D-0000-0010-8000-00AA006D2EA4)]
  664. enum
  665. {
  666. adSimpleRecord = 0,
  667. adCollectionRecord = 1,
  668. adStructDoc = 2
  669. }
  670. RecordTypeEnum;
  671.     [
  672.       odl,
  673.       uuid(00000512-0000-0010-8000-00AA006D2EA4),
  674.       dual,
  675.       nonextensible,
  676.       oleautomation
  677.     ]
  678.     interface _Collection : IDispatch {
  679.         [id(0x60020000), propget]
  680.         HRESULT _stdcall Count([out, retval] long* c);
  681.         [id(0xfffffffc), restricted]
  682.         HRESULT _stdcall _NewEnum([out, retval] IUnknown** ppvObject);
  683.         [id(0x60020002)]
  684.         HRESULT _stdcall Refresh();
  685.     };
  686.     [
  687.       odl,
  688.       uuid(00000513-0000-0010-8000-00AA006D2EA4),
  689.       dual,
  690.       nonextensible,
  691.       oleautomation
  692.     ]
  693.     interface _DynaCollection : _Collection {
  694.         [id(0x60030000)]
  695.         HRESULT _stdcall Append([in] IDispatch* Object);
  696.         [id(0x60030001)]
  697.         HRESULT _stdcall Delete([in] VARIANT Index);
  698.     };
  699.     [
  700.       odl,
  701.       uuid(00000534-0000-0010-8000-00AA006D2EA4),
  702.       dual,
  703.       nonextensible,
  704.       oleautomation
  705.     ]
  706.     interface _ADO : IDispatch {
  707.         [id(0x000001f4), propget]
  708.         HRESULT _stdcall Properties([out, retval] Properties** ppvObject);
  709.     };
  710.     [
  711.       odl,
  712.       uuid(00000504-0000-0010-8000-00AA006D2EA4),
  713.       dual,
  714.       nonextensible,
  715.       oleautomation
  716.     ]
  717.     interface Properties : _Collection {
  718.         [id(00000000), propget]
  719.         HRESULT _stdcall Item(
  720.                         [in] VARIANT Index, 
  721.                         [out, retval] Property** ppvObject);
  722.     };
  723.     [
  724.       odl,
  725.       uuid(00000503-0000-0010-8000-00AA006D2EA4),
  726.       dual,
  727.       nonextensible,
  728.       oleautomation
  729.     ]
  730.     interface Property : IDispatch {
  731.         [id(00000000), propget]
  732.         HRESULT _stdcall Value([out, retval] VARIANT* pval);
  733.         [id(00000000), propput]
  734.         HRESULT _stdcall Value([in] VARIANT pval);
  735.         [id(0x60020002), propget]
  736.         HRESULT _stdcall Name([out, retval] BSTR* pbstr);
  737.         [id(0x60020003), propget]
  738.         HRESULT _stdcall Type([out, retval] DataTypeEnum* ptype);
  739.         [id(0x60020004), propget]
  740.         HRESULT _stdcall Attributes([out, retval] long* plAttributes);
  741.         [id(0x60020004), propput]
  742.         HRESULT _stdcall Attributes([in] long plAttributes);
  743.     };
  744.     [
  745.       odl,
  746.       uuid(00000500-0000-0010-8000-00AA006D2EA4),
  747.       dual,
  748.       nonextensible,
  749.       oleautomation
  750.     ]
  751.     interface Error : IDispatch {
  752.         [id(0x60020000), propget]
  753.         HRESULT _stdcall Number([out, retval] long* pl);
  754.         [id(0x60020001), propget]
  755.         HRESULT _stdcall Source([out, retval] BSTR* pbstr);
  756.         [id(00000000), propget]
  757.         HRESULT _stdcall Description([out, retval] BSTR* pbstr);
  758.         [id(0x60020003), propget]
  759.         HRESULT _stdcall HelpFile([out, retval] BSTR* pbstr);
  760.         [id(0x60020004), propget]
  761.         HRESULT _stdcall HelpContext([out, retval] long* pl);
  762.         [id(0x60020005), propget]
  763.         HRESULT _stdcall SQLState([out, retval] BSTR* pbstr);
  764.         [id(0x60020006), propget]
  765.         HRESULT _stdcall NativeError([out, retval] long* pl);
  766.     };
  767.     [
  768.       odl,
  769.       uuid(00000501-0000-0010-8000-00AA006D2EA4),
  770.       dual,
  771.       nonextensible,
  772.       oleautomation
  773.     ]
  774.     interface Errors : _Collection {
  775.         [id(00000000), propget]
  776.         HRESULT _stdcall Item(
  777.                         [in] VARIANT Index, 
  778.                         [out, retval] Error** ppvObject);
  779.         [id(0x60030001)]
  780.         HRESULT _stdcall Clear();
  781.     };
  782.     [
  783.       odl,
  784.       uuid(00000508-0000-0010-8000-00AA006D2EA4),
  785.       dual,
  786.       nonextensible,
  787.       oleautomation
  788.     ]
  789.     interface Command15 : _ADO {
  790.         [id(0x60030000), propget]
  791.         HRESULT _stdcall ActiveConnection([out, retval] _Connection** ppvObject);
  792.         [id(0x60030000), propputref]
  793.         HRESULT _stdcall ActiveConnection([in] _Connection* ppvObject);
  794.         [id(0x60030000), propput]
  795.         HRESULT _stdcall ActiveConnection([in] VARIANT ppvObject);
  796.         [id(0x60030003), propget]
  797.         HRESULT _stdcall CommandText([out, retval] BSTR* pbstr);
  798.         [id(0x60030003), propput]
  799.         HRESULT _stdcall CommandText([in] BSTR pbstr);
  800.         [id(0x60030005), propget]
  801.         HRESULT _stdcall CommandTimeout([out, retval] long* pl);
  802.         [id(0x60030005), propput]
  803.         HRESULT _stdcall CommandTimeout([in] long pl);
  804.         [id(0x60030007), propget]
  805.         HRESULT _stdcall Prepared([out, retval] VARIANT_BOOL* pfPrepared);
  806.         [id(0x60030007), propput]
  807.         HRESULT _stdcall Prepared([in] VARIANT_BOOL pfPrepared);
  808.         [id(0x60030009)]
  809.         HRESULT _stdcall Execute(
  810.                         [out, optional] VARIANT* RecordsAffected, 
  811.                         [in, optional] VARIANT* Parameters, 
  812.                         [in, defaultvalue(-1)] long Options, 
  813.                         [out, retval] _Recordset** ppiRs);
  814.         [id(0x6003000a)]
  815.         HRESULT _stdcall CreateParameter(
  816.                         [in,  defaultvalue("")] BSTR Name, 
  817.                         [in, defaultvalue(adEmpty)] DataTypeEnum Type, 
  818.                         [in, defaultvalue(adParamInput)] ParameterDirectionEnum Direction, 
  819.                         [in, defaultvalue(0)] ADO_LONGPTR Size, 
  820.                         [in, optional] VARIANT Value, 
  821.                         [out, retval] _Parameter** ppiprm);
  822.         [id(00000000), propget]
  823.         HRESULT _stdcall Parameters([out, retval] Parameters** ppvObject);
  824.         [id(0x6003000c), propput]
  825.         HRESULT _stdcall CommandType([in] CommandTypeEnum plCmdType);
  826.         [id(0x6003000c), propget]
  827.         HRESULT _stdcall CommandType([out, retval] CommandTypeEnum* plCmdType);
  828.         [id(0x6003000e), propget]
  829.         HRESULT _stdcall Name([out, retval] BSTR* pbstrName);
  830.         [id(0x6003000e), propput]
  831.         HRESULT _stdcall Name([in] BSTR pbstrName);
  832.     };
  833.     [
  834.       odl,
  835.       uuid(0000054E-0000-0010-8000-00AA006D2EA4),
  836.       dual,
  837.       nonextensible,
  838.       oleautomation
  839.     ]
  840.     interface Command25 : Command15 {
  841.         [id(0x60030010), propget]
  842.         HRESULT _stdcall State([out, retval] long* plObjState);
  843.         [id(0x60030011)]
  844.         HRESULT _stdcall Cancel();
  845.     };
  846. [
  847.       odl,
  848.       uuid(B08400BD-F9D1-4D02-B856-71D5DBA123E9),
  849.       dual,
  850.       nonextensible,
  851.       oleautomation
  852.     ]
  853. interface _Command : Command25 {
  854. [id(0x60030012), propputref]
  855. HRESULT _stdcall CommandStream([in] IUnknown *pStream);
  856. [id(0x60030012), propget]
  857. HRESULT _stdcall CommandStream([out, retval] VARIANT* pvStream);
  858. [id(0x60030013), propput]
  859. HRESULT _stdcall Dialect([in] BSTR bstrDialect);
  860. [id(0x60030013), propget]
  861. HRESULT _stdcall Dialect([out, retval] BSTR* pbstrDialect);
  862. [id(0x60030014), propput]
  863. HRESULT _stdcall NamedParameters([in] VARIANT_BOOL fNamedParameters);
  864. [id(0x60030014), propget]
  865. HRESULT _stdcall NamedParameters([out, retval] VARIANT_BOOL* pfNamedParameters);
  866. };
  867.     [
  868.       odl,
  869.       uuid(00000515-0000-0010-8000-00AA006D2EA4),
  870.       dual,
  871.       oleautomation
  872.     ]
  873.     interface Connection15 : _ADO {
  874.         [id(00000000), propget]
  875.         HRESULT _stdcall ConnectionString([out, retval] BSTR* pbstr);
  876.         [id(00000000), propput]
  877.         HRESULT _stdcall ConnectionString([in] BSTR pbstr);
  878.         [id(0x00000002), propget]
  879.         HRESULT _stdcall CommandTimeout([out, retval] long* plTimeout);
  880.         [id(0x00000002), propput]
  881.         HRESULT _stdcall CommandTimeout([in] long plTimeout);
  882.         [id(0x00000003), propget]
  883.         HRESULT _stdcall ConnectionTimeout([out, retval] long* plTimeout);
  884.         [id(0x00000003), propput]
  885.         HRESULT _stdcall ConnectionTimeout([in] long plTimeout);
  886.         [id(0x00000004), propget]
  887.         HRESULT _stdcall Version([out, retval] BSTR* pbstr);
  888.         [id(0x00000005)]
  889.         HRESULT _stdcall Close();
  890.         [id(0x00000006)]
  891.         HRESULT _stdcall Execute(
  892.                         [in] BSTR CommandText, 
  893.                         [out, optional] VARIANT* RecordsAffected, 
  894.                         [in, defaultvalue(-1)] long Options, 
  895.                         [out, retval] _Recordset** ppiRset);
  896.         [id(0x00000007)]
  897.         HRESULT _stdcall BeginTrans([out, retval] long* TransactionLevel);
  898.         [id(0x00000008)]
  899.         HRESULT _stdcall CommitTrans();
  900.         [id(0x00000009)]
  901.         HRESULT _stdcall RollbackTrans();
  902.         [id(0x0000000a)]
  903.         HRESULT _stdcall Open(
  904.                         [in, defaultvalue("")] BSTR ConnectionString, 
  905.                         [in, defaultvalue("")] BSTR UserID, 
  906.                         [in, defaultvalue("")] BSTR Password, 
  907.                         [in, defaultvalue(-1)] long Options);
  908.         [id(0x0000000b), propget]
  909.         HRESULT _stdcall Errors([out, retval] Errors** ppvObject);
  910.         [id(0x0000000c), propget]
  911.         HRESULT _stdcall DefaultDatabase([out, retval] BSTR* pbstr);
  912.         [id(0x0000000c), propput]
  913.         HRESULT _stdcall DefaultDatabase([in] BSTR pbstr);
  914.         [id(0x0000000d), propget]
  915.         HRESULT _stdcall IsolationLevel([out, retval] IsolationLevelEnum* Level);
  916.         [id(0x0000000d), propput]
  917.         HRESULT _stdcall IsolationLevel([in] IsolationLevelEnum Level);
  918.         [id(0x0000000e), propget]
  919.         HRESULT _stdcall Attributes([out, retval] long* plAttr);
  920.         [id(0x0000000e), propput]
  921.         HRESULT _stdcall Attributes([in] long plAttr);
  922.         [id(0x0000000f), propget]
  923.         HRESULT _stdcall CursorLocation([out, retval] CursorLocationEnum* plCursorLoc);
  924.         [id(0x0000000f), propput]
  925.         HRESULT _stdcall CursorLocation([in] CursorLocationEnum plCursorLoc);
  926.         [id(0x00000010), propget]
  927.         HRESULT _stdcall Mode([out, retval] ConnectModeEnum* plMode);
  928.         [id(0x00000010), propput]
  929.         HRESULT _stdcall Mode([in] ConnectModeEnum plMode);
  930.         [id(0x00000011), propget]
  931.         HRESULT _stdcall Provider([out, retval] BSTR* pbstr);
  932.         [id(0x00000011), propput]
  933.         HRESULT _stdcall Provider([in] BSTR pbstr);
  934.         [id(0x00000012), propget]
  935.         HRESULT _stdcall State([out, retval] long* plObjState);
  936.         [id(0x00000013)]
  937.         HRESULT _stdcall OpenSchema(
  938.                         [in] SchemaEnum Schema, 
  939.                         [in, optional] VARIANT Restrictions, 
  940.                         [in, optional] VARIANT SchemaID, 
  941.                         [out, retval] _Recordset** pprset);
  942.     };
  943.     [
  944.       odl,
  945.       uuid(00000550-0000-0010-8000-00AA006D2EA4),
  946.       dual,
  947.       oleautomation
  948.     ]
  949.     interface _Connection : Connection15 {
  950.         [id(0x00000015)]
  951.         HRESULT _stdcall Cancel();
  952.     };
  953.     [
  954.       odl,
  955.       uuid(0000050E-0000-0010-8000-00AA006D2EA4),
  956.       dual,
  957.       nonextensible,
  958.       oleautomation
  959.     ]
  960.     interface Recordset15 : _ADO {
  961.         [id(0x000003e8), propget]
  962.         HRESULT _stdcall AbsolutePosition([out, retval] PositionEnum_Param *pl);
  963.         [id(0x000003e8), propput]
  964.         HRESULT _stdcall AbsolutePosition([in] PositionEnum_Param pl);
  965.         [id(0x000003e9), propputref]
  966.         HRESULT _stdcall ActiveConnection([in] IDispatch* pvar);
  967.         [id(0x000003e9), propput]
  968.         HRESULT _stdcall ActiveConnection([in] VARIANT pvar);
  969.         [id(0x000003e9), propget]
  970.         HRESULT _stdcall ActiveConnection([out, retval] VARIANT* pvar);
  971.         [id(0x000003ea), propget]
  972.         HRESULT _stdcall BOF([out, retval] VARIANT_BOOL* pb);
  973.         [id(0x000003eb), propget]
  974.         HRESULT _stdcall Bookmark([out, retval] VARIANT* pvBookmark);
  975.         [id(0x000003eb), propput]
  976.         HRESULT _stdcall Bookmark([in] VARIANT pvBookmark);
  977.         [id(0x000003ec), propget]
  978.         HRESULT _stdcall CacheSize([out, retval] long* pl);
  979.         [id(0x000003ec), propput]
  980.         HRESULT _stdcall CacheSize([in] long pl);
  981.         [id(0x000003ed), propget]
  982.         HRESULT _stdcall CursorType([out, retval] CursorTypeEnum* plCursorType);
  983.         [id(0x000003ed), propput]
  984.         HRESULT _stdcall CursorType([in] CursorTypeEnum plCursorType);
  985.         [id(0x000003ee), propget]
  986.         HRESULT _stdcall EOF([out, retval] VARIANT_BOOL* pb);
  987.         [id(00000000), propget]
  988.         HRESULT _stdcall Fields([out, retval] Fields** ppvObject);
  989.         [id(0x000003f0), propget]
  990.         HRESULT _stdcall LockType([out, retval] LockTypeEnum* plLockType);
  991.         [id(0x000003f0), propput]
  992.         HRESULT _stdcall LockType([in] LockTypeEnum plLockType);
  993.         [id(0x000003f1), propget]
  994.         HRESULT _stdcall MaxRecords([out, retval] ADO_LONGPTR* plMaxRecords);
  995.         [id(0x000003f1), propput]
  996.         HRESULT _stdcall MaxRecords([in] ADO_LONGPTR plMaxRecords);
  997.         [id(0x000003f2), propget]
  998.         HRESULT _stdcall RecordCount([out, retval] ADO_LONGPTR* pl);
  999.         [id(0x000003f3), propputref]
  1000.         HRESULT _stdcall Source([in] IDispatch* pvSource);
  1001.         [id(0x000003f3), propput]
  1002.         HRESULT _stdcall Source([in] BSTR pvSource);
  1003.         [id(0x000003f3), propget]
  1004.         HRESULT _stdcall Source([out, retval] VARIANT* pvSource);
  1005.         [id(0x000003f4)]
  1006.         HRESULT _stdcall AddNew(
  1007.                         [in, optional] VARIANT FieldList, 
  1008.                         [in, optional] VARIANT Values);
  1009.         [id(0x000003f5)]
  1010.         HRESULT _stdcall CancelUpdate();
  1011.         [id(0x000003f6)]
  1012.         HRESULT _stdcall Close();
  1013.         [id(0x000003f7)]
  1014.         HRESULT _stdcall Delete([in, defaultvalue(adAffectCurrent)] AffectEnum AffectRecords);
  1015.         [id(0x000003f8)]
  1016.         HRESULT _stdcall GetRows(
  1017.                         [in, defaultvalue(-1)] long Rows, 
  1018.                         [in, optional] VARIANT Start, 
  1019.                         [in, optional] VARIANT Fields, 
  1020.                         [out, retval] VARIANT* pvar);
  1021.         [id(0x000003f9)]
  1022.         HRESULT _stdcall Move(
  1023.                         [in] ADO_LONGPTR NumRecords, 
  1024.                         [in, optional] VARIANT Start);
  1025.         [id(0x000003fa)]
  1026.         HRESULT _stdcall MoveNext();
  1027.         [id(0x000003fb)]
  1028.         HRESULT _stdcall MovePrevious();
  1029.         [id(0x000003fc)]
  1030.         HRESULT _stdcall MoveFirst();
  1031.         [id(0x000003fd)]
  1032.         HRESULT _stdcall MoveLast();
  1033.         [id(0x000003fe)]
  1034.         HRESULT _stdcall Open(
  1035.                         [in, optional] VARIANT Source, 
  1036.                         [in, optional] VARIANT ActiveConnection, 
  1037.                         [in, defaultvalue(adOpenUnspecified)] CursorTypeEnum CursorType, 
  1038.                         [in, defaultvalue(adLockUnspecified)] LockTypeEnum LockType, 
  1039.                         [in, defaultvalue(-1)] long Options);
  1040.         [id(0x000003ff)]
  1041.         HRESULT _stdcall Requery([in, defaultvalue(-1)] long Options);
  1042.         [id(0x60030022), hidden]
  1043.         HRESULT _stdcall _xResync([in, defaultvalue(adAffectAll)] AffectEnum AffectRecords);
  1044.         [id(0x00000401)]
  1045.         HRESULT _stdcall Update(
  1046.                         [in, optional] VARIANT Fields, 
  1047.                         [in, optional] VARIANT Values);
  1048.         [id(0x00000417), propget]
  1049.         HRESULT _stdcall AbsolutePage([out, retval] PositionEnum_Param* pl);
  1050.         [id(0x00000417), propput]
  1051.         HRESULT _stdcall AbsolutePage([in] PositionEnum_Param pl);
  1052.         [id(0x00000402), propget]
  1053.         HRESULT _stdcall EditMode([out, retval] EditModeEnum* pl);
  1054.         [id(0x00000406), propget]
  1055.         HRESULT _stdcall Filter([out, retval] VARIANT* Criteria);
  1056.         [id(0x00000406), propput]
  1057.         HRESULT _stdcall Filter([in] VARIANT Criteria);
  1058.         [id(0x0000041a), propget]
  1059.         HRESULT _stdcall PageCount([out, retval] ADO_LONGPTR* pl);
  1060.         [id(0x00000418), propget]
  1061.         HRESULT _stdcall PageSize([out, retval] long* pl);
  1062.         [id(0x00000418), propput]
  1063.         HRESULT _stdcall PageSize([in] long pl);
  1064.         [id(0x00000407), propget]
  1065.         HRESULT _stdcall Sort([out, retval] BSTR* Criteria);
  1066.         [id(0x00000407), propput]
  1067.         HRESULT _stdcall Sort([in] BSTR Criteria);
  1068.         [id(0x00000405), propget]
  1069.         HRESULT _stdcall Status([out, retval] long* pl);
  1070.         [id(0x0000041e), propget]
  1071.         HRESULT _stdcall State([out, retval] long* plObjState);
  1072.         [id(0x60030030), hidden]
  1073.         HRESULT _stdcall _xClone([out, retval] _Recordset** ppvObject);
  1074.         [id(0x0000040b)]
  1075.         HRESULT _stdcall UpdateBatch([in, defaultvalue(adAffectAll)] AffectEnum AffectRecords);
  1076.         [id(0x00000419)]
  1077.         HRESULT _stdcall CancelBatch([in, defaultvalue(adAffectAll)] AffectEnum AffectRecords);
  1078.         [id(0x0000041b), propget]
  1079.         HRESULT _stdcall CursorLocation([out, retval] CursorLocationEnum* plCursorLoc);
  1080.         [id(0x0000041b), propput]
  1081.         HRESULT _stdcall CursorLocation([in] CursorLocationEnum plCursorLoc);
  1082.         [id(0x0000041c)]
  1083.         HRESULT _stdcall NextRecordset(
  1084.                         [out, optional] VARIANT* RecordsAffected, 
  1085.                         [out, retval] _Recordset** ppiRs);
  1086.         [id(0x0000040c)]
  1087.         HRESULT _stdcall Supports(
  1088.                         [in] CursorOptionEnum CursorOptions, 
  1089.                         [out, retval] VARIANT_BOOL* pb);
  1090.         [id(0xfffffff8), propget, hidden]
  1091.         HRESULT _stdcall Collect(
  1092.                         [in] VARIANT Index, 
  1093.                         [out, retval] VARIANT* pvar);
  1094.         [id(0xfffffff8), propput, hidden]
  1095.         HRESULT _stdcall Collect(
  1096.                         [in] VARIANT Index, 
  1097.                         [in] VARIANT pvar);
  1098.         [id(0x0000041d), propget]
  1099.         HRESULT _stdcall MarshalOptions([out, retval] MarshalOptionsEnum* peMarshal);
  1100.         [id(0x0000041d), propput]
  1101.         HRESULT _stdcall MarshalOptions([in] MarshalOptionsEnum peMarshal);
  1102.         [id(0x00000422)]
  1103.         HRESULT _stdcall Find(
  1104.                         [in] BSTR Criteria, 
  1105.                         [in, defaultvalue(0)] ADO_LONGPTR SkipRecords, 
  1106.                         [in, defaultvalue(adSearchForward)] SearchDirectionEnum SearchDirection, 
  1107.                         [in, optional] VARIANT Start);
  1108.     };
  1109.     [
  1110.       odl,
  1111.       uuid(0000054F-0000-0010-8000-00AA006D2EA4),
  1112.       dual,
  1113.       nonextensible,
  1114.       oleautomation
  1115.     ]
  1116.     interface Recordset20 : Recordset15 {
  1117.         [id(0x0000041f)]
  1118.         HRESULT _stdcall Cancel();
  1119.         [id(0x00000420), propget]
  1120.         HRESULT _stdcall DataSource([out, retval] IUnknown** ppunkDataSource);
  1121.         [id(0x00000420), propputref]
  1122.         HRESULT _stdcall DataSource([in] IUnknown* ppunkDataSource);
  1123.         [hidden]
  1124.         HRESULT _stdcall _xSave(
  1125.                         [in, optional] BSTR FileName, 
  1126.                         [in, defaultvalue(adPersistADTG)] PersistFormatEnum PersistFormat);
  1127.         [id(0x00000425), propget]
  1128.         HRESULT _stdcall ActiveCommand([out, retval] IDispatch** ppCmd);
  1129.         [id(0x00000427), propput]
  1130.         HRESULT _stdcall StayInSync([in] VARIANT_BOOL pbStayInSync);
  1131.         [id(0x00000427), propget]
  1132.         HRESULT _stdcall StayInSync([out, retval] VARIANT_BOOL* pbStayInSync);
  1133.         [id(0x00000426)]
  1134.         HRESULT _stdcall GetString(
  1135.                         [in, defaultvalue(adClipString)] StringFormatEnum StringFormat, 
  1136.                         [in, defaultvalue(-1)] long NumRows, 
  1137.                         [in, optional] BSTR ColumnDelimeter, 
  1138.                         [in, optional] BSTR RowDelimeter, 
  1139.                         [in, optional] BSTR NullExpr, 
  1140.                         [out, retval] BSTR* pRetString);
  1141.         [id(0x00000428), propget]
  1142.         HRESULT _stdcall DataMember([out, retval] BSTR* pbstrDataMember);
  1143.         [id(0x00000428), propput]
  1144.         HRESULT _stdcall DataMember([in] BSTR pbstrDataMember);
  1145.         [id(0x00000429)]
  1146.         HRESULT _stdcall CompareBookmarks(
  1147.                         [in] VARIANT Bookmark1, 
  1148.                         [in] VARIANT Bookmark2, 
  1149.                         [out, retval] CompareEnum* pCompare);
  1150.         [id(0x0000040a)]
  1151.         HRESULT _stdcall Clone(
  1152.                         [in, defaultvalue(adLockUnspecified)] LockTypeEnum LockType, 
  1153.                         [out, retval] _Recordset** ppvObject);
  1154.         [id(0x00000400)]
  1155.         HRESULT _stdcall Resync(
  1156.                         [in, defaultvalue(adAffectAll)] AffectEnum AffectRecords, 
  1157.                         [in, defaultvalue(adResyncAllValues)] ResyncEnum ResyncValues);
  1158.     };
  1159. [
  1160.   odl,
  1161.   uuid(00000555-0000-0010-8000-00AA006D2EA4),
  1162.   dual,
  1163.   nonextensible,
  1164.   oleautomation
  1165. ]
  1166. interface Recordset21 : Recordset20 {
  1167. [id(0x0000042a), helpcontext(0x001356db)]
  1168. HRESULT _stdcall Seek(
  1169. [in] VARIANT KeyValues, 
  1170. [in, defaultvalue(adSeekFirstEQ)] SeekEnum SeekOption);
  1171. [id(0x0000042b), propput, helpcontext(0x001356da)]
  1172. HRESULT _stdcall Index([in] BSTR pbstrIndex);
  1173. [id(0x0000042b), propget, helpcontext(0x001356da)]
  1174. HRESULT _stdcall Index([out, retval] BSTR* pbstrIndex);
  1175. };
  1176. [
  1177. odl,
  1178. uuid(00000556-0000-0010-8000-00AA006D2EA4),
  1179. dual,
  1180. nonextensible,
  1181. oleautomation
  1182. ]
  1183. interface _Recordset : Recordset21
  1184. {
  1185. [
  1186. id(0x00000421),
  1187. helpcontext(0x0012C8DF)
  1188. ]
  1189. HRESULT Save(
  1190. [in, optional] VARIANT Destination,
  1191. [in, defaultvalue(adPersistADTG)] PersistFormatEnum PersistFormat
  1192. );
  1193. }
  1194.     [
  1195.       odl,
  1196.       uuid(00000506-0000-0010-8000-00AA006D2EA4),
  1197.       dual,
  1198.       nonextensible,
  1199.       oleautomation
  1200.     ]
  1201.     interface Fields15 : _Collection {
  1202.         [id(00000000), propget]
  1203.         HRESULT _stdcall Item(
  1204.                         [in] VARIANT Index, 
  1205.                         [out, retval] Field** ppvObject);
  1206.     };
  1207.     [
  1208.       odl,
  1209.       uuid(0000054D-0000-0010-8000-00AA006D2EA4),
  1210.       dual,
  1211.       nonextensible,
  1212.       oleautomation
  1213.     ]
  1214.     interface Fields20 : Fields15 {
  1215.         [id(0x60030001)]
  1216.         HRESULT _stdcall _Append(
  1217.                         [in] BSTR Name, 
  1218.                         [in] DataTypeEnum Type, 
  1219.                         [in, defaultvalue(0)] ADO_LONGPTR DefinedSize, 
  1220.                         [in, defaultvalue(adFldUnspecified)] FieldAttributeEnum Attrib);
  1221.         [id(0x60030002)]
  1222.         HRESULT _stdcall Delete([in] VARIANT Index);
  1223.     };
  1224. [
  1225.       odl,
  1226.       uuid(00000564-0000-0010-8000-00AA006D2EA4),
  1227.       dual,
  1228.       nonextensible,
  1229.       oleautomation
  1230. ]
  1231. interface Fields : Fields20
  1232. {
  1233. [id(0x60040001)]
  1234. HRESULT _stdcall Append(
  1235. [in] BSTR Name,
  1236. [in] DataTypeEnum Type,
  1237. [in, defaultvalue(0)] ADO_LONGPTR DefinedSize,
  1238. [in, defaultvalue(adFldUnspecified)] FieldAttributeEnum Attrib,
  1239. [in, optional] VARIANT FieldValue);
  1240. [id(0x60040002)]
  1241. HRESULT _stdcall Update();
  1242. [id(0x60040003)]
  1243. HRESULT _stdcall Resync([in, defaultvalue(adResyncAllValues)] ResyncEnum ResyncValues);
  1244. [id(0x60040004)]
  1245. HRESULT _stdcall CancelUpdate();
  1246. };
  1247.     [
  1248.       odl,
  1249.       uuid(00000505-0000-0010-8000-00AA006D2EA4),
  1250.       dual,
  1251.       nonextensible,
  1252.       oleautomation
  1253.     ]
  1254.     interface Field15 : _ADO {
  1255.         [id(0x00000455), propget]
  1256.         HRESULT _stdcall ActualSize([out, retval] ADO_LONGPTR* pl);
  1257.         [id(0x0000040c), propget]
  1258.         HRESULT _stdcall Attributes([out, retval] long* pl);
  1259.         [id(0x0000044f), propget]
  1260.         HRESULT _stdcall DefinedSize([out, retval] ADO_LONGPTR* pl);
  1261.         [id(0x0000044c), propget]
  1262.         HRESULT _stdcall Name([out, retval] BSTR* pbstr);
  1263.         [id(0x0000044e), propget]
  1264.         HRESULT _stdcall Type([out, retval] DataTypeEnum* pDataType);
  1265.         [id(00000000), propget]
  1266.         HRESULT _stdcall Value([out, retval] VARIANT* pvar);
  1267.         [id(00000000), propput]
  1268.         HRESULT _stdcall Value([in] VARIANT pvar);
  1269.         [id(0x60030007), propget]
  1270.         HRESULT _stdcall Precision([out, retval] unsigned char* pbPrecision);
  1271.         [id(0x60030008), propget]
  1272.         HRESULT _stdcall NumericScale([out, retval] unsigned char* pbNumericScale);
  1273.         [id(0x00000453)]
  1274.         HRESULT _stdcall AppendChunk([in] VARIANT Data);
  1275.         [id(0x00000454)]
  1276.         HRESULT _stdcall GetChunk(
  1277.                         [in] long Length, 
  1278.                         [out, retval] VARIANT* pvar);
  1279.         [id(0x00000450), propget]
  1280.         HRESULT _stdcall OriginalValue([out, retval] VARIANT* pvar);
  1281.         [id(0x00000451), propget]
  1282.         HRESULT _stdcall UnderlyingValue([out, retval] VARIANT* pvar);
  1283.     };
  1284.     [
  1285.       odl,
  1286.       uuid(0000054C-0000-0010-8000-00AA006D2EA4),
  1287.       dual,
  1288.       nonextensible,
  1289.       oleautomation,
  1290.   hidden
  1291.     ]
  1292.     interface Field20 : _ADO {
  1293.         [id(0x00000455), propget]
  1294.         HRESULT _stdcall ActualSize([out, retval] ADO_LONGPTR* pl);
  1295.         [id(0x0000040c), propget]
  1296.         HRESULT _stdcall Attributes([out, retval] long* pl);
  1297.         [id(0x0000044f), propget]
  1298.         HRESULT _stdcall DefinedSize([out, retval] ADO_LONGPTR* pl);
  1299.         [id(0x0000044c), propget]
  1300.         HRESULT _stdcall Name([out, retval] BSTR* pbstr);
  1301.         [id(0x0000044e), propget]
  1302.         HRESULT _stdcall Type([out, retval] DataTypeEnum* pDataType);
  1303.         [id(00000000), propget]
  1304.         HRESULT _stdcall Value([out, retval] VARIANT* pvar);
  1305.         [id(00000000), propput]
  1306.         HRESULT _stdcall Value([in] VARIANT pvar);
  1307.         [id(0x60030007), propget]
  1308.         HRESULT _stdcall Precision([out, retval] unsigned char* pbPrecision);
  1309.         [id(0x60030008), propget]
  1310.         HRESULT _stdcall NumericScale([out, retval] unsigned char* pbNumericScale);
  1311.         [id(0x00000453)]
  1312.         HRESULT _stdcall AppendChunk([in] VARIANT Data);
  1313.         [id(0x00000454)]
  1314.         HRESULT _stdcall GetChunk(
  1315.                         [in] long Length, 
  1316.                         [out, retval] VARIANT* pvar);
  1317.         [id(0x00000450), propget]
  1318.         HRESULT _stdcall OriginalValue([out, retval] VARIANT* pvar);
  1319.         [id(0x00000451), propget]
  1320.         HRESULT _stdcall UnderlyingValue([out, retval] VARIANT* pvar);
  1321.         [id(0x6003000d), propget]
  1322.         HRESULT _stdcall DataFormat([out, retval] IUnknown** ppiDF);
  1323.         [id(0x6003000d), propputref]
  1324.         HRESULT _stdcall DataFormat([in] IUnknown* ppiDF);
  1325.         [id(0x60030007), propput]
  1326.         HRESULT _stdcall Precision([in] unsigned char pbPrecision);
  1327.         [id(0x60030008), propput]
  1328.         HRESULT _stdcall NumericScale([in] unsigned char pbNumericScale);
  1329.         [id(0x0000044e), propput]
  1330.         HRESULT _stdcall Type([in] DataTypeEnum pDataType);
  1331.         [id(0x0000044f), propput]
  1332.         HRESULT _stdcall DefinedSize([in] ADO_LONGPTR pl);
  1333.         [id(0x0000040c), propput]
  1334.         HRESULT _stdcall Attributes([in] long pl);
  1335.     };
  1336. [
  1337.       odl,
  1338.       uuid(00000569-0000-0010-8000-00AA006D2EA4),
  1339.       dual,
  1340.       nonextensible,
  1341.       oleautomation
  1342.     ]
  1343.     interface Field : Field20
  1344. {
  1345.         [ id(0x0000045c),propget]
  1346. HRESULT _stdcall Status( [out, retval] long *pFStatus);
  1347.     };
  1348.     [
  1349.       odl,
  1350.       uuid(0000050C-0000-0010-8000-00AA006D2EA4),
  1351.       dual,
  1352.       nonextensible,
  1353.       oleautomation
  1354.     ]
  1355.     interface _Parameter : _ADO {
  1356.         [id(0x60030000), propget]
  1357.         HRESULT _stdcall Name([out, retval] BSTR* pbstr);
  1358.         [id(0x60030000), propput]
  1359.         HRESULT _stdcall Name([in] BSTR pbstr);
  1360.         [id(00000000), propget]
  1361.         HRESULT _stdcall Value([out, retval] VARIANT* pvar);
  1362.         [id(00000000), propput]
  1363.         HRESULT _stdcall Value([in] VARIANT pvar);
  1364.         [id(0x60030004), propget]
  1365.         HRESULT _stdcall Type([out, retval] DataTypeEnum* psDataType);
  1366.         [id(0x60030004), propput]
  1367.         HRESULT _stdcall Type([in] DataTypeEnum psDataType);
  1368.         [id(0x60030006), propput]
  1369.         HRESULT _stdcall Direction([in] ParameterDirectionEnum plParmDirection);
  1370.         [id(0x60030006), propget]
  1371.         HRESULT _stdcall Direction([out, retval] ParameterDirectionEnum* plParmDirection);
  1372.         [id(0x60030008), propput]
  1373.         HRESULT _stdcall Precision([in] unsigned char pbPrecision);
  1374.         [id(0x60030008), propget]
  1375.         HRESULT _stdcall Precision([out, retval] unsigned char* pbPrecision);
  1376.         [id(0x6003000a), propput]
  1377.         HRESULT _stdcall NumericScale([in] unsigned char pbScale);
  1378.         [id(0x6003000a), propget]
  1379.         HRESULT _stdcall NumericScale([out, retval] unsigned char* pbScale);
  1380.         [id(0x6003000c), propput]
  1381.         HRESULT _stdcall Size([in] ADO_LONGPTR pl);
  1382.         [id(0x6003000c), propget]
  1383.         HRESULT _stdcall Size([out, retval] ADO_LONGPTR* pl);
  1384.         [id(0x6003000e)]
  1385.         HRESULT _stdcall AppendChunk([in] VARIANT Val);
  1386.         [id(0x6003000f), propget]
  1387.         HRESULT _stdcall Attributes([out, retval] long* plParmAttribs);
  1388.         [id(0x6003000f), propput]
  1389.         HRESULT _stdcall Attributes([in] long plParmAttribs);
  1390.     };
  1391.     [
  1392.       odl,
  1393.       uuid(0000050D-0000-0010-8000-00AA006D2EA4),
  1394.       dual,
  1395.       nonextensible,
  1396.       oleautomation
  1397.     ]
  1398.     interface Parameters : _DynaCollection {
  1399.         [id(00000000), propget]
  1400.         HRESULT _stdcall Item(
  1401.                         [in] VARIANT Index, 
  1402.                         [out, retval] _Parameter** ppvObject);
  1403.     };
  1404. [
  1405.       odl,
  1406.       uuid(00000562-0000-0010-8000-00AA006D2EA4),
  1407.       dual,
  1408.       nonextensible,
  1409.       oleautomation
  1410. ]
  1411. interface _Record : _ADO
  1412. {
  1413. [id(1), propget]
  1414. HRESULT _stdcall ActiveConnection(
  1415. [out, retval] VARIANT *pvar);
  1416. [id(1), propput]
  1417. HRESULT _stdcall ActiveConnection(
  1418. [in] BSTR bstrConn);
  1419. [id(1), propputref]
  1420. HRESULT ActiveConnection(
  1421. [in] _Connection *Con);
  1422. [id(2), propget]
  1423. HRESULT _stdcall State(
  1424. [out, retval] ObjectStateEnum *pState);
  1425. [id(3), propget]
  1426. HRESULT _stdcall Source(
  1427. [out, retval] VARIANT *pvar);
  1428. [id(3), propput]
  1429. HRESULT _stdcall Source(
  1430. [in] BSTR Source);
  1431. [id(3), propputref]
  1432. HRESULT _stdcall Source(
  1433. [in] IDispatch *Source);
  1434. [id(4), propget]
  1435. HRESULT _stdcall Mode(
  1436. [out, retval] ConnectModeEnum *pMode);
  1437. [id(4), propput]
  1438. HRESULT _stdcall Mode(
  1439. [in] ConnectModeEnum Mode);
  1440. [id(5), propget]
  1441. HRESULT _stdcall ParentURL(
  1442. [out, retval] BSTR *pbstrParentURL);
  1443. [id(6)]
  1444. HRESULT _stdcall MoveRecord(
  1445. [in, defaultvalue("")] BSTR Source,
  1446. [in, defaultvalue("")] BSTR Destination,
  1447. [in, optional] BSTR UserName,
  1448. [in, optional] BSTR Password,
  1449. [in, defaultvalue(adMoveUnspecified)] MoveRecordOptionsEnum Options,
  1450. [in, optional] VARIANT_BOOL Async,
  1451. [out, retval] BSTR *pbstrNewURL);
  1452. [id(7)]
  1453. HRESULT _stdcall CopyRecord(
  1454. [in, defaultvalue("")] BSTR Source,
  1455. [in, defaultvalue("")] BSTR Destination,
  1456. [in, optional] BSTR UserName,
  1457. [in, optional] BSTR Password,
  1458. [in, defaultvalue(adCopyUnspecified)] CopyRecordOptionsEnum Options,
  1459. [in, optional] VARIANT_BOOL Async,
  1460. [out, retval] BSTR *pbstrNewURL);
  1461. [id(8)]
  1462. HRESULT _stdcall DeleteRecord(
  1463. [in] BSTR Source,
  1464. [in, optional] VARIANT_BOOL Async);
  1465. [id(9)]
  1466. HRESULT _stdcall Open(
  1467. [in, optional] VARIANT Source,
  1468. [in, optional] VARIANT ActiveConnection,
  1469. [in, optional] ConnectModeEnum Mode,
  1470. [in, defaultvalue(adFailIfNotExists)] RecordCreateOptionsEnum CreateOptions,
  1471. [in, defaultvalue(adOpenRecordUnspecified)] RecordOpenOptionsEnum Options,
  1472. [in, optional] BSTR UserName,
  1473. [in, optional] BSTR Password);
  1474. [id(10)]
  1475. HRESULT _stdcall Close();
  1476. [id(0), propget]
  1477. HRESULT _stdcall Fields(
  1478. [out, retval] Fields **ppFlds);
  1479. [id(11), propget]
  1480. HRESULT _stdcall RecordType(
  1481. [out, retval] RecordTypeEnum *pType);
  1482. [id(12)]
  1483. HRESULT _stdcall GetChildren(
  1484. [out, retval] _Recordset **ppRSet);
  1485. [id(13)]
  1486. HRESULT _stdcall Cancel();
  1487. };
  1488. [
  1489.       odl,
  1490.       uuid(00000565-0000-0010-8000-00AA006D2EA4),
  1491.       dual,
  1492.       nonextensible,
  1493.       oleautomation
  1494. ]
  1495. interface _Stream : IDispatch
  1496. {
  1497. [id(1), propget]
  1498. HRESULT _stdcall Size(
  1499. [out, retval] ADO_LONGPTR *pSize );
  1500. [id(2), propget]
  1501. HRESULT _stdcall EOS(
  1502. [out, retval] VARIANT_BOOL *pEOS );
  1503. [id(3), propget]
  1504. HRESULT _stdcall Position(
  1505. [out, retval] ADO_LONGPTR *pPos );
  1506. [id(3), propput]
  1507. HRESULT _stdcall Position(
  1508. [in] ADO_LONGPTR Position );
  1509. [id(4), propget]
  1510. HRESULT _stdcall Type(
  1511. [out, retval] StreamTypeEnum *pType );
  1512. [id(4), propput]
  1513. HRESULT _stdcall Type(
  1514. [in] StreamTypeEnum Type );
  1515. [id(5), propget]
  1516. HRESULT _stdcall LineSeparator(
  1517. [out, retval] LineSeparatorEnum *pLS );
  1518. [id(5), propput]
  1519. HRESULT _stdcall LineSeparator(
  1520. [in] LineSeparatorEnum LineSeparator );
  1521. [id(6), propget]
  1522. HRESULT _stdcall State(
  1523. [out, retval] ObjectStateEnum *pState );
  1524. [id(7), propget]
  1525. HRESULT _stdcall Mode(
  1526. [out, retval] ConnectModeEnum *pMode );
  1527. [id(7), propput]
  1528. HRESULT _stdcall Mode(
  1529. [in] ConnectModeEnum Mode );
  1530. [id(8), propget]
  1531. HRESULT Charset(
  1532. [out, retval] BSTR *pbstrCharset );
  1533. [id(8), propput]
  1534. HRESULT Charset(
  1535. [in] BSTR Charset );
  1536. [id(9)] 
  1537. HRESULT _stdcall Read(
  1538. [in, defaultvalue(adReadAll)]long NumBytes,
  1539. [out, retval]VARIANT *pVal);
  1540. [id(10)]
  1541. HRESULT _stdcall Open(
  1542. [in, optional] VARIANT Source,
  1543. [in, defaultvalue(adModeUnknown)] ConnectModeEnum Mode,
  1544. [in, defaultvalue(adOpenStreamUnspecified)] StreamOpenOptionsEnum Options,
  1545. [in, optional] BSTR UserName,
  1546. [in, optional] BSTR Password);
  1547. [id(11)]
  1548. HRESULT _stdcall Close(void);
  1549. [id(12)] 
  1550. HRESULT _stdcall SkipLine(void);
  1551. [id(13)] 
  1552. HRESULT _stdcall Write(
  1553. [in]VARIANT Buffer);
  1554. [id(14)] 
  1555. HRESULT _stdcall SetEOS(void);
  1556. [id(15)] 
  1557. HRESULT _stdcall CopyTo(
  1558. [in]_Stream *DestStream, 
  1559. [in, defaultvalue(-1)]ADO_LONGPTR CharNumber);
  1560. [id(16)]
  1561. HRESULT _stdcall Flush(void);
  1562. [id(17)]
  1563. HRESULT _stdcall SaveToFile(
  1564. [in] BSTR FileName,
  1565. [in, defaultvalue(adSaveCreateNotExist)] SaveOptionsEnum Options);
  1566. [id(18)]
  1567. HRESULT _stdcall LoadFromFile(
  1568. [in] BSTR FileName);
  1569. [id(19)]
  1570. HRESULT _stdcall ReadText(
  1571. [in, defaultvalue(adReadAll)] long NumChars,
  1572. [out, retval] BSTR *pbstr);
  1573. [id(20)]
  1574. HRESULT _stdcall WriteText(
  1575. [in] BSTR Data,
  1576. [in, defaultvalue(adWriteChar)] StreamWriteEnum Options);
  1577. [id(21)]
  1578. HRESULT _stdcall Cancel(void);
  1579. };
  1580.     [
  1581.       odl,
  1582.       uuid(00000538-0000-0010-8000-00AA006D2EA4),
  1583.       hidden
  1584.     ]
  1585.     interface ADODebugging : IUnknown {
  1586.         HRESULT _stdcall IsGlobalDebugMode(VARIANT_BOOL* pfDebuggingOn);
  1587.         HRESULT _stdcall SetGlobalDebugMode(
  1588.                         IUnknown* pDebugger, 
  1589.                         VARIANT_BOOL fDebuggingOn);
  1590.     };
  1591.     [
  1592.       odl,
  1593.       uuid(00000402-0000-0010-8000-00AA006D2EA4),
  1594.       hidden
  1595.     ]
  1596.     interface ConnectionEventsVt : IUnknown {
  1597.         HRESULT _stdcall InfoMessage(
  1598.                         [in] Error* pError, 
  1599.                         [in, out] EventStatusEnum* adStatus, 
  1600.                         [in] _Connection* pConnection);
  1601.         HRESULT _stdcall BeginTransComplete(
  1602.                         [in] long TransactionLevel, 
  1603.                         [in] Error* pError, 
  1604.                         [in, out] EventStatusEnum* adStatus, 
  1605.                         [in] _Connection* pConnection);
  1606.         HRESULT _stdcall CommitTransComplete(
  1607.                         [in] Error* pError, 
  1608.                         [in, out] EventStatusEnum* adStatus, 
  1609.                         [in] _Connection* pConnection);
  1610.         HRESULT _stdcall RollbackTransComplete(
  1611.                         [in] Error* pError, 
  1612.                         [in, out] EventStatusEnum* adStatus, 
  1613.                         [in] _Connection* pConnection);
  1614.         HRESULT _stdcall WillExecute(
  1615.                         [in, out] BSTR* Source, 
  1616.                         [in, out] CursorTypeEnum* CursorType, 
  1617.                         [in, out] LockTypeEnum* LockType, 
  1618.                         [in, out] long* Options, 
  1619.                         [in, out] EventStatusEnum* adStatus, 
  1620.                         [in] _Command* pCommand, 
  1621.                         [in] _Recordset* pRecordset, 
  1622.                         [in] _Connection* pConnection);
  1623.         HRESULT _stdcall ExecuteComplete(
  1624.                         [in] long RecordsAffected, 
  1625.                         [in] Error* pError, 
  1626.                         [in, out] EventStatusEnum* adStatus, 
  1627.                         [in] _Command* pCommand, 
  1628.                         [in] _Recordset* pRecordset, 
  1629.                         [in] _Connection* pConnection);
  1630.         HRESULT _stdcall WillConnect(
  1631.                         [in, out] BSTR* ConnectionString, 
  1632.                         [in, out] BSTR* UserID, 
  1633.                         [in, out] BSTR* Password, 
  1634.                         [in, out] long* Options, 
  1635.                         [in, out] EventStatusEnum* adStatus, 
  1636.                         [in] _Connection* pConnection);
  1637.         HRESULT _stdcall ConnectComplete(
  1638.                         [in] Error* pError, 
  1639.                         [in, out] EventStatusEnum* adStatus, 
  1640.                         [in] _Connection* pConnection);
  1641.         HRESULT _stdcall Disconnect(
  1642.                         [in, out] EventStatusEnum* adStatus, 
  1643.                         [in] _Connection* pConnection);
  1644.     };
  1645.     [
  1646.       odl,
  1647.       uuid(00000403-0000-0010-8000-00AA006D2EA4),
  1648.       hidden
  1649.     ]
  1650.     interface RecordsetEventsVt : IUnknown {
  1651.         HRESULT _stdcall WillChangeField(
  1652.                         [in] long cFields, 
  1653.                         [in] VARIANT Fields, 
  1654.                         [in, out] EventStatusEnum* adStatus, 
  1655.                         [in] _Recordset* pRecordset);
  1656.         HRESULT _stdcall FieldChangeComplete(
  1657.                         [in] long cFields, 
  1658.                         [in] VARIANT Fields, 
  1659.                         [in] Error* pError, 
  1660.                         [in, out] EventStatusEnum* adStatus, 
  1661.                         [in] _Recordset* pRecordset);
  1662.         HRESULT _stdcall WillChangeRecord(
  1663.                         [in] EventReasonEnum adReason, 
  1664.                         [in] long cRecords, 
  1665.                         [in, out] EventStatusEnum* adStatus, 
  1666.                         [in] _Recordset* pRecordset);
  1667.         HRESULT _stdcall RecordChangeComplete(
  1668.                         [in] EventReasonEnum adReason, 
  1669.                         [in] long cRecords, 
  1670.                         [in] Error* pError, 
  1671.                         [in, out] EventStatusEnum* adStatus, 
  1672.                         [in] _Recordset* pRecordset);
  1673.         HRESULT _stdcall WillChangeRecordset(
  1674.                         [in] EventReasonEnum adReason, 
  1675.                         [in, out] EventStatusEnum* adStatus, 
  1676.                         [in] _Recordset* pRecordset);
  1677.         HRESULT _stdcall RecordsetChangeComplete(
  1678.                         [in] EventReasonEnum adReason, 
  1679.                         [in] Error* pError, 
  1680.                         [in, out] EventStatusEnum* adStatus, 
  1681.                         [in] _Recordset* pRecordset);
  1682.         HRESULT _stdcall WillMove(
  1683.                         [in] EventReasonEnum adReason, 
  1684.                         [in, out] EventStatusEnum* adStatus, 
  1685.                         [in] _Recordset* pRecordset);
  1686.         HRESULT _stdcall MoveComplete(
  1687.                         [in] EventReasonEnum adReason, 
  1688.                         [in] Error* pError, 
  1689.                         [in, out] EventStatusEnum* adStatus, 
  1690.                         [in] _Recordset* pRecordset);
  1691.         HRESULT _stdcall EndOfRecordset(
  1692.                         [in, out] VARIANT_BOOL* fMoreData, 
  1693.                         [in, out] EventStatusEnum* adStatus, 
  1694.                         [in] _Recordset* pRecordset);
  1695.         HRESULT _stdcall FetchProgress(
  1696.                         [in] long Progress, 
  1697.                         [in] long MaxProgress, 
  1698.                         [in, out] EventStatusEnum* adStatus, 
  1699.                         [in] _Recordset* pRecordset);
  1700.         HRESULT _stdcall FetchComplete(
  1701.                         [in] Error* pError, 
  1702.                         [in, out] EventStatusEnum* adStatus, 
  1703.                         [in] _Recordset* pRecordset);
  1704.     };
  1705.     [
  1706.       uuid(00000400-0000-0010-8000-00AA006D2EA4)
  1707.     ]
  1708.     dispinterface ConnectionEvents {
  1709.         properties:
  1710.         methods:
  1711.             [id(00000000)]
  1712.             HRESULT InfoMessage(
  1713.                             [in] Error* pError, 
  1714.                             [in, out] EventStatusEnum* adStatus, 
  1715.                             [in] _Connection* pConnection);
  1716.             [id(0x00000001)]
  1717.             HRESULT BeginTransComplete(
  1718.                             [in] long TransactionLevel, 
  1719.                             [in] Error* pError, 
  1720.                             [in, out] EventStatusEnum* adStatus, 
  1721.                             [in] _Connection* pConnection);
  1722.             [id(0x00000003)]
  1723.             HRESULT CommitTransComplete(
  1724.                             [in] Error* pError, 
  1725.                             [in, out] EventStatusEnum* adStatus, 
  1726.                             [in] _Connection* pConnection);
  1727.             [id(0x00000002)]
  1728.             HRESULT RollbackTransComplete(
  1729.                             [in] Error* pError, 
  1730.                             [in, out] EventStatusEnum* adStatus, 
  1731.                             [in] _Connection* pConnection);
  1732.             [id(0x00000004)]
  1733.             HRESULT WillExecute(
  1734.                             [in, out] BSTR* Source, 
  1735.                             [in, out] CursorTypeEnum* CursorType, 
  1736.                             [in, out] LockTypeEnum* LockType, 
  1737.                             [in, out] long* Options, 
  1738.                             [in, out] EventStatusEnum* adStatus, 
  1739.                             [in] _Command* pCommand, 
  1740.                             [in] _Recordset* pRecordset, 
  1741.                             [in] _Connection* pConnection);
  1742.             [id(0x00000005)]
  1743.             HRESULT ExecuteComplete(
  1744.                             [in] long RecordsAffected, 
  1745.                             [in] Error* pError, 
  1746.                             [in, out] EventStatusEnum* adStatus, 
  1747.                             [in] _Command* pCommand, 
  1748.                             [in] _Recordset* pRecordset, 
  1749.                             [in] _Connection* pConnection);
  1750.             [id(0x00000006)]
  1751.             HRESULT WillConnect(
  1752.                             [in, out] BSTR* ConnectionString, 
  1753.                             [in, out] BSTR* UserID, 
  1754.                             [in, out] BSTR* Password, 
  1755.                             [in, out] long* Options, 
  1756.                             [in, out] EventStatusEnum* adStatus, 
  1757.                             [in] _Connection* pConnection);
  1758.             [id(0x00000007)]
  1759.             HRESULT ConnectComplete(
  1760.                             [in] Error* pError, 
  1761.                             [in, out] EventStatusEnum* adStatus, 
  1762.                             [in] _Connection* pConnection);
  1763.             [id(0x00000008)]
  1764.             HRESULT Disconnect(
  1765.                             [in, out] EventStatusEnum* adStatus, 
  1766.                             [in] _Connection* pConnection);
  1767.     };
  1768.     [
  1769.       uuid(00000266-0000-0010-8000-00AA006D2EA4)
  1770.     ]
  1771.     dispinterface RecordsetEvents {
  1772.         properties:
  1773.         methods:
  1774.             [id(0x00000009)]
  1775.             HRESULT WillChangeField(
  1776.                             [in] long cFields, 
  1777.                             [in] VARIANT Fields, 
  1778.                             [in, out] EventStatusEnum* adStatus, 
  1779.                             [in] _Recordset* pRecordset);
  1780.             [id(0x0000000a)]
  1781.             HRESULT FieldChangeComplete(
  1782.                             [in] long cFields, 
  1783.                             [in] VARIANT Fields, 
  1784.                             [in] Error* pError, 
  1785.                             [in, out] EventStatusEnum* adStatus, 
  1786.                             [in] _Recordset* pRecordset);
  1787.             [id(0x0000000b)]
  1788.             HRESULT WillChangeRecord(
  1789.                             [in] EventReasonEnum adReason, 
  1790.                             [in] long cRecords, 
  1791.                             [in, out] EventStatusEnum* adStatus, 
  1792.                             [in] _Recordset* pRecordset);
  1793.             [id(0x0000000c)]
  1794.             HRESULT RecordChangeComplete(
  1795.                             [in] EventReasonEnum adReason, 
  1796.                             [in] long cRecords, 
  1797.                             [in] Error* pError, 
  1798.                             [in, out] EventStatusEnum* adStatus, 
  1799.                             [in] _Recordset* pRecordset);
  1800.             [id(0x0000000d)]
  1801.             HRESULT WillChangeRecordset(
  1802.                             [in] EventReasonEnum adReason, 
  1803.                             [in, out] EventStatusEnum* adStatus, 
  1804.                             [in] _Recordset* pRecordset);
  1805.             [id(0x0000000e)]
  1806.             HRESULT RecordsetChangeComplete(
  1807.                             [in] EventReasonEnum adReason, 
  1808.                             [in] Error* pError, 
  1809.                             [in, out] EventStatusEnum* adStatus, 
  1810.                             [in] _Recordset* pRecordset);
  1811.             [id(0x0000000f)]
  1812.             HRESULT WillMove(
  1813.                             [in] EventReasonEnum adReason, 
  1814.                             [in, out] EventStatusEnum* adStatus, 
  1815.                             [in] _Recordset* pRecordset);
  1816.             [id(0x00000010)]
  1817.             HRESULT MoveComplete(
  1818.                             [in] EventReasonEnum adReason, 
  1819.                             [in] Error* pError, 
  1820.                             [in, out] EventStatusEnum* adStatus, 
  1821.                             [in] _Recordset* pRecordset);
  1822.             [id(0x00000011)]
  1823.             HRESULT EndOfRecordset(
  1824.                             [in, out] VARIANT_BOOL* fMoreData, 
  1825.                             [in, out] EventStatusEnum* adStatus, 
  1826.                             [in] _Recordset* pRecordset);
  1827.             [id(0x00000012)]
  1828.             HRESULT FetchProgress(
  1829.                             [in] long Progress, 
  1830.                             [in] long MaxProgress, 
  1831.                             [in, out] EventStatusEnum* adStatus, 
  1832.                             [in] _Recordset* pRecordset);
  1833.             [id(0x00000013)]
  1834.             HRESULT FetchComplete(
  1835.                             [in] Error* pError, 
  1836.                             [in, out] EventStatusEnum* adStatus, 
  1837.                             [in] _Recordset* pRecordset);
  1838.     };
  1839.     [
  1840.       odl,
  1841.       uuid(00000516-0000-0010-8000-00AA006D2EA4),
  1842.       restricted
  1843.     ]
  1844.     interface ADOConnectionConstruction15 : IUnknown {
  1845.         [propget]
  1846.         HRESULT _stdcall DSO([out, retval] IUnknown** ppDSO);
  1847.         [propget]
  1848.         HRESULT _stdcall Session([out, retval] IUnknown** ppSession);
  1849.         HRESULT _stdcall WrapDSOandSession(
  1850.                         [in] IUnknown* pDSO, 
  1851.                         [in] IUnknown* pSession);
  1852.     };
  1853.     [
  1854.       odl,
  1855.       uuid(00000551-0000-0010-8000-00AA006D2EA4),
  1856.       restricted
  1857.     ]
  1858.     interface ADOConnectionConstruction : ADOConnectionConstruction15 {
  1859.     };
  1860.     [
  1861.       odl,
  1862.       uuid(00000283-0000-0010-8000-00AA006D2EA4),
  1863.       restricted
  1864.     ]
  1865.     interface ADORecordsetConstruction : IDispatch {
  1866.         [propget]
  1867.         HRESULT _stdcall Rowset([out, retval] IUnknown** ppRowset);
  1868.         [propput]
  1869.         HRESULT _stdcall Rowset([in] IUnknown* ppRowset);
  1870.         [propget]
  1871.         HRESULT _stdcall Chapter([out, retval] ADO_LONGPTR* plChapter);
  1872.         [propput]
  1873.         HRESULT _stdcall Chapter([in] ADO_LONGPTR plChapter);
  1874.         [propget]
  1875.         HRESULT _stdcall RowPosition([out, retval] IUnknown** ppRowPos);
  1876.         [propput]
  1877.         HRESULT _stdcall RowPosition([in] IUnknown* ppRowPos);
  1878.     };
  1879.     [
  1880.       odl,
  1881.       uuid(00000517-0000-0010-8000-00AA006D2EA4),
  1882.       restricted
  1883.     ]
  1884.     interface ADOCommandConstruction : IUnknown {
  1885.         [propget]
  1886.         HRESULT _stdcall OLEDBCommand([out, retval] IUnknown** ppOLEDBCommand);
  1887.         [propput]
  1888.         HRESULT _stdcall OLEDBCommand([in] IUnknown* ppOLEDBCommand);
  1889.     };
  1890. [
  1891.   odl,
  1892.       uuid(00000567-0000-0010-8000-00AA006D2EA4),
  1893.   restricted
  1894. ]
  1895. interface ADORecordConstruction : IDispatch {
  1896. [propget]
  1897. HRESULT _stdcall Row([out, retval] IUnknown **ppRow);
  1898. [propput]
  1899. HRESULT _stdcall Row([in] IUnknown *pRow);
  1900. [propput]
  1901. HRESULT _stdcall ParentRow([in] IUnknown *pRow);
  1902. };
  1903. [
  1904.   odl,
  1905.       uuid(00000568-0000-0010-8000-00AA006D2EA4),
  1906.   restricted
  1907. ]
  1908. interface ADOStreamConstruction : IDispatch
  1909. {
  1910. [propget]
  1911. HRESULT _stdcall Stream([out, retval] IUnknown **ppStm);
  1912. [propput]
  1913. HRESULT _stdcall Stream([in] IUnknown *pStm);
  1914. };
  1915. [
  1916.   uuid(EF53050B-882E-4776-B643-EDA472E8E3F2),
  1917.   version(2.7),
  1918.   helpstring("Microsoft ActiveX Data Objects 2.7 Library")
  1919. ]
  1920. library ADODB
  1921. {
  1922.     // TLib : OLE Automation : {00020430-0000-0000-C000-000000000046}
  1923.     importlib("stdole2.tlb");
  1924.     [
  1925.       uuid(00000514-0000-0010-8000-00AA006D2EA4),
  1926.       licensed
  1927.     ]
  1928.     coclass Connection {
  1929.         [default] interface _Connection;
  1930.         [default, source] dispinterface ConnectionEvents;
  1931.     };
  1932.     [
  1933.       uuid(00000507-0000-0010-8000-00AA006D2EA4),
  1934.       licensed
  1935.     ]
  1936.     coclass Command {
  1937.         [default] interface _Command;
  1938.     };
  1939.     [
  1940.       uuid(00000535-0000-0010-8000-00AA006D2EA4),
  1941.       licensed
  1942.     ]
  1943.     coclass Recordset {
  1944.         [default] interface _Recordset;
  1945.         [default, source] dispinterface RecordsetEvents;
  1946.     };
  1947.     [
  1948.       uuid(0000050B-0000-0010-8000-00AA006D2EA4),
  1949.       licensed
  1950.     ]
  1951.     coclass Parameter {
  1952.         [default] interface _Parameter;
  1953.     };
  1954. [
  1955.       uuid(00000560-0000-0010-8000-00AA006D2EA4),
  1956. licensed
  1957. ]
  1958. coclass Record {
  1959. [default] interface       _Record;
  1960. };
  1961. [
  1962.       uuid(00000566-0000-0010-8000-00AA006D2EA4),
  1963. licensed
  1964. ]
  1965. coclass Stream {
  1966. [default] interface       _Stream;
  1967. };
  1968. };