home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 2000 September / VPR0009A.BIN / VS60SP4JPN / support / msado15.idl < prev    next >
Text File  |  1999-01-29  |  51KB  |  1,553 lines

  1. //--------------------------------------------------------------------
  2. // Microsoft ADO
  3. //
  4. // (c) 1996-1998 Microsoft Corporation.  All Rights Reserved.
  5. //
  6. //
  7. //
  8. // ADO interface definitions for inclusion in .IDL files
  9. //
  10. //--------------------------------------------------------------------
  11.  
  12. #ifndef DO_NO_IMPORTS
  13. import "oaidl.idl";
  14. #endif
  15.  
  16.  
  17. interface _Collection;
  18. interface _DynaCollection;
  19. interface _ADO;
  20. interface Properties;
  21. interface Property;
  22. interface Error;
  23. interface Errors;
  24. interface _Command;
  25. interface Command15;
  26. interface _Connection;
  27. interface Connection15;
  28. interface _Recordset;
  29. interface Recordset20;
  30. interface Recordset15;
  31. interface Fields;
  32. interface Fields15;
  33. interface Field;
  34. interface Field15;
  35. interface _Parameter;
  36. interface Parameters;
  37. interface ADODebugging;
  38. interface ConnectionEventsVt;
  39. interface RecordsetEventsVt;
  40. dispinterface ConnectionEvents;
  41. dispinterface RecordsetEvents;
  42. interface ADOConnectionConstruction;
  43. interface ADOCommandConstruction;
  44. interface ADORecordsetConstruction;
  45.  
  46. typedef [uuid(0000051B-0000-0010-8000-00AA006D2EA4)]
  47. enum {
  48.     adOpenUnspecified = -1,
  49.     adOpenForwardOnly = 0,
  50.     adOpenKeyset = 1,
  51.     adOpenDynamic = 2,
  52.     adOpenStatic = 3
  53. } CursorTypeEnum;
  54.  
  55. typedef [uuid(0000051C-0000-0010-8000-00AA006D2EA4)]
  56. enum {
  57.     adHoldRecords = 256,
  58.     adMovePrevious = 512,
  59.     adAddNew = 16778240,
  60.     adDelete = 16779264,
  61.     adUpdate = 16809984,
  62.     adBookmark = 8192,
  63.     adApproxPosition = 16384,
  64.     adUpdateBatch = 65536,
  65.     adResync = 131072,
  66.     adNotify = 262144,
  67.     adFind = 524288,
  68.     adSeek = 4194304,
  69.     adIndex = 8388608
  70. } CursorOptionEnum;
  71.  
  72. typedef [uuid(0000051D-0000-0010-8000-00AA006D2EA4)]
  73. enum {
  74.     adLockUnspecified = -1,
  75.     adLockReadOnly = 1,
  76.     adLockPessimistic = 2,
  77.     adLockOptimistic = 3,
  78.     adLockBatchOptimistic = 4
  79. } LockTypeEnum;
  80.  
  81. typedef [uuid(0000051E-0000-0010-8000-00AA006D2EA4)]
  82. enum {
  83.     adOptionUnspecified = -1,
  84.     adAsyncExecute = 16,
  85.     adAsyncFetch = 32,
  86.     adAsyncFetchNonBlocking = 64,
  87.     adExecuteNoRecords = 128
  88. } ExecuteOptionEnum;
  89.  
  90. typedef [uuid(00000541-0000-0010-8000-00AA006D2EA4)]
  91. enum {
  92.     adConnectUnspecified = -1,
  93.     adAsyncConnect = 16
  94. } ConnectOptionEnum;
  95.  
  96. typedef [uuid(00000532-0000-0010-8000-00AA006D2EA4)]
  97. enum {
  98.     adStateClosed = 0,
  99.     adStateOpen = 1,
  100.     adStateConnecting = 2,
  101.     adStateExecuting = 4,
  102.     adStateFetching = 8
  103. } ObjectStateEnum;
  104.  
  105. typedef [uuid(0000052F-0000-0010-8000-00AA006D2EA4)]
  106. enum {
  107.     adUseNone = 1,
  108.     adUseServer = 2,
  109.     adUseClient = 3,
  110.     adUseClientBatch = 3
  111. } CursorLocationEnum;
  112.  
  113. typedef [uuid(0000051F-0000-0010-8000-00AA006D2EA4)]
  114. enum {
  115.     adEmpty = 0,
  116.     adTinyInt = 16,
  117.     adSmallInt = 2,
  118.     adInteger = 3,
  119.     adBigInt = 20,
  120.     adUnsignedTinyInt = 17,
  121.     adUnsignedSmallInt = 18,
  122.     adUnsignedInt = 19,
  123.     adUnsignedBigInt = 21,
  124.     adSingle = 4,
  125.     adDouble = 5,
  126.     adCurrency = 6,
  127.     adDecimal = 14,
  128.     adNumeric = 131,
  129.     adBoolean = 11,
  130.     adError = 10,
  131.     adUserDefined = 132,
  132.     adVariant = 12,
  133.     adIDispatch = 9,
  134.     adIUnknown = 13,
  135.     adGUID = 72,
  136.     adDate = 7,
  137.     adDBDate = 133,
  138.     adDBTime = 134,
  139.     adDBTimeStamp = 135,
  140.     adBSTR = 8,
  141.     adChar = 129,
  142.     adVarChar = 200,
  143.     adLongVarChar = 201,
  144.     adWChar = 130,
  145.     adVarWChar = 202,
  146.     adLongVarWChar = 203,
  147.     adBinary = 128,
  148.     adVarBinary = 204,
  149.     adLongVarBinary = 205,
  150.     adChapter = 136,
  151.     adFileTime = 64,
  152.     adDBFileTime = 137,
  153.     adPropVariant = 138,
  154.     adVarNumeric = 139
  155. } DataTypeEnum;
  156.  
  157. typedef [uuid(00000525-0000-0010-8000-00AA006D2EA4)]
  158. enum {
  159.     adFldUnspecified = -1,
  160.     adFldMayDefer = 2,
  161.     adFldUpdatable = 4,
  162.     adFldUnknownUpdatable = 8,
  163.     adFldFixed = 16,
  164.     adFldIsNullable = 32,
  165.     adFldMayBeNull = 64,
  166.     adFldLong = 128,
  167.     adFldRowID = 256,
  168.     adFldRowVersion = 512,
  169.     adFldCacheDeferred = 4096,
  170.     adFldNegativeScale = 16384,
  171.     adFldKeyColumn = 32768
  172. } FieldAttributeEnum;
  173.  
  174. typedef [uuid(00000526-0000-0010-8000-00AA006D2EA4)]
  175. enum {
  176.     adEditNone = 0,
  177.     adEditInProgress = 1,
  178.     adEditAdd = 2,
  179.     adEditDelete = 4
  180. } EditModeEnum;
  181.  
  182. typedef [uuid(00000527-0000-0010-8000-00AA006D2EA4)]
  183. enum {
  184.     adRecOK = 0,
  185.     adRecNew = 1,
  186.     adRecModified = 2,
  187.     adRecDeleted = 4,
  188.     adRecUnmodified = 8,
  189.     adRecInvalid = 16,
  190.     adRecMultipleChanges = 64,
  191.     adRecPendingChanges = 128,
  192.     adRecCanceled = 256,
  193.     adRecCantRelease = 1024,
  194.     adRecConcurrencyViolation = 2048,
  195.     adRecIntegrityViolation = 4096,
  196.     adRecMaxChangesExceeded = 8192,
  197.     adRecObjectOpen = 16384,
  198.     adRecOutOfMemory = 32768,
  199.     adRecPermissionDenied = 65536,
  200.     adRecSchemaViolation = 131072,
  201.     adRecDBDeleted = 262144
  202. } RecordStatusEnum;
  203.  
  204. typedef [uuid(00000542-0000-0010-8000-00AA006D2EA4)]
  205. enum {
  206.     adGetRowsRest = -1
  207. } GetRowsOptionEnum;
  208.  
  209. typedef [uuid(00000528-0000-0010-8000-00AA006D2EA4)]
  210. enum {
  211.     adPosUnknown = -1,
  212.     adPosBOF = -2,
  213.     adPosEOF = -3
  214. } PositionEnum;
  215.  
  216. typedef enum {
  217.     adBookmarkCurrent = 0,
  218.     adBookmarkFirst = 1,
  219.     adBookmarkLast = 2
  220. } BookmarkEnum;
  221.  
  222. typedef [uuid(00000540-0000-0010-8000-00AA006D2EA4)]
  223. enum {
  224.     adMarshalAll = 0,
  225.     adMarshalModifiedOnly = 1
  226. } MarshalOptionsEnum;
  227.  
  228. typedef [uuid(00000543-0000-0010-8000-00AA006D2EA4)]
  229. enum {
  230.     adAffectCurrent = 1,
  231.     adAffectGroup = 2,
  232.     adAffectAll = 3,
  233.     adAffectAllChapters = 4
  234. } AffectEnum;
  235.  
  236. typedef [uuid(00000544-0000-0010-8000-00AA006D2EA4)]
  237. enum {
  238.     adResyncUnderlyingValues = 1,
  239.     adResyncAllValues = 2
  240. } ResyncEnum;
  241.  
  242. typedef [uuid(00000545-0000-0010-8000-00AA006D2EA4)]
  243. enum {
  244.     adCompareLessThan = 0,
  245.     adCompareEqual = 1,
  246.     adCompareGreaterThan = 2,
  247.     adCompareNotEqual = 3,
  248.     adCompareNotComparable = 4
  249. } CompareEnum;
  250.  
  251. typedef [uuid(00000546-0000-0010-8000-00AA006D2EA4)]
  252. enum {
  253.     adFilterNone = 0,
  254.     adFilterPendingRecords = 1,
  255.     adFilterAffectedRecords = 2,
  256.     adFilterFetchedRecords = 3,
  257.     adFilterPredicate = 4,
  258.     adFilterConflictingRecords = 5
  259. } FilterGroupEnum;
  260.  
  261. typedef [uuid(00000547-0000-0010-8000-00AA006D2EA4)]
  262. enum {
  263.     adSearchForward = 1,
  264.     adSearchBackward = -1
  265. } SearchDirectionEnum;
  266.  
  267. typedef [public]
  268. SearchDirectionEnum SearchDirection;
  269.  
  270. typedef [uuid(00000548-0000-0010-8000-00AA006D2EA4)]
  271. enum {
  272.     adPersistADTG = 0,
  273.     adPersistXML = 1
  274. } PersistFormatEnum;
  275.  
  276. typedef [uuid(00000549-0000-0010-8000-00AA006D2EA4)]
  277. enum {
  278.     adClipString = 2
  279. } StringFormatEnum;
  280.  
  281. typedef [uuid(00000520-0000-0010-8000-00AA006D2EA4)]
  282. enum {
  283.     adPromptAlways = 1,
  284.     adPromptComplete = 2,
  285.     adPromptCompleteRequired = 3,
  286.     adPromptNever = 4
  287. } ConnectPromptEnum;
  288.  
  289. typedef [uuid(00000521-0000-0010-8000-00AA006D2EA4)]
  290. enum {
  291.     adModeUnknown = 0,
  292.     adModeRead = 1,
  293.     adModeWrite = 2,
  294.     adModeReadWrite = 3,
  295.     adModeShareDenyRead = 4,
  296.     adModeShareDenyWrite = 8,
  297.     adModeShareExclusive = 12,
  298.     adModeShareDenyNone = 16
  299. } ConnectModeEnum;
  300.  
  301. typedef [uuid(00000523-0000-0010-8000-00AA006D2EA4)]
  302. enum {
  303.     adXactUnspecified = -1,
  304.     adXactChaos = 16,
  305.     adXactReadUncommitted = 256,
  306.     adXactBrowse = 256,
  307.     adXactCursorStability = 4096,
  308.     adXactReadCommitted = 4096,
  309.     adXactRepeatableRead = 65536,
  310.     adXactSerializable = 1048576,
  311.     adXactIsolated = 1048576
  312. } IsolationLevelEnum;
  313.  
  314. typedef [uuid(00000524-0000-0010-8000-00AA006D2EA4)]
  315. enum {
  316.     adXactCommitRetaining = 131072,
  317.     adXactAbortRetaining = 262144,
  318.     adXactAsyncPhaseOne = 524288,
  319.     adXactSyncPhaseOne = 1048576
  320. } XactAttributeEnum;
  321.  
  322. typedef [uuid(00000529-0000-0010-8000-00AA006D2EA4)]
  323. enum {
  324.     adPropNotSupported = 0,
  325.     adPropRequired = 1,
  326.     adPropOptional = 2,
  327.     adPropRead = 512,
  328.     adPropWrite = 1024
  329. } PropertyAttributesEnum;
  330.  
  331. typedef [uuid(0000052A-0000-0010-8000-00AA006D2EA4)]
  332. enum {
  333.     adErrInvalidArgument = 3001,
  334.     adErrNoCurrentRecord = 3021,
  335.     adErrIllegalOperation = 3219,
  336.     adErrInTransaction = 3246,
  337.     adErrFeatureNotAvailable = 3251,
  338.     adErrItemNotFound = 3265,
  339.     adErrObjectInCollection = 3367,
  340.     adErrObjectNotSet = 3420,
  341.     adErrDataConversion = 3421,
  342.     adErrObjectClosed = 3704,
  343.     adErrObjectOpen = 3705,
  344.     adErrProviderNotFound = 3706,
  345.     adErrBoundToCommand = 3707,
  346.     adErrInvalidParamInfo = 3708,
  347.     adErrInvalidConnection = 3709,
  348.     adErrNotReentrant = 3710,
  349.     adErrStillExecuting = 3711,
  350.     adErrOperationCancelled = 3712,
  351.     adErrStillConnecting = 3713,
  352.     adErrNotExecuting = 3715,
  353.     adErrUnsafeOperation = 3716
  354. } ErrorValueEnum;
  355.  
  356. typedef [uuid(0000052B-0000-0010-8000-00AA006D2EA4)]
  357. enum {
  358.     adParamSigned = 16,
  359.     adParamNullable = 64,
  360.     adParamLong = 128
  361. } ParameterAttributesEnum;
  362.  
  363. typedef [uuid(0000052C-0000-0010-8000-00AA006D2EA4)]
  364. enum {
  365.     adParamUnknown = 0,
  366.     adParamInput = 1,
  367.     adParamOutput = 2,
  368.     adParamInputOutput = 3,
  369.     adParamReturnValue = 4
  370. } ParameterDirectionEnum;
  371.  
  372. typedef [uuid(0000052E-0000-0010-8000-00AA006D2EA4)]
  373. enum {
  374.     adCmdUnspecified = -1,
  375.     adCmdUnknown = 8,
  376.     adCmdText = 1,
  377.     adCmdTable = 2,
  378.     adCmdStoredProc = 4,
  379.     adCmdFile = 256,
  380.     adCmdTableDirect = 512
  381. } CommandTypeEnum;
  382.  
  383. typedef [uuid(00000530-0000-0010-8000-00AA006D2EA4)]
  384. enum {
  385.     adStatusOK = 1,
  386.     adStatusErrorsOccurred = 2,
  387.     adStatusCantDeny = 3,
  388.     adStatusCancel = 4,
  389.     adStatusUnwantedEvent = 5
  390. } EventStatusEnum;
  391.  
  392. typedef [uuid(00000531-0000-0010-8000-00AA006D2EA4)]
  393. enum {
  394.     adRsnAddNew = 1,
  395.     adRsnDelete = 2,
  396.     adRsnUpdate = 3,
  397.     adRsnUndoUpdate = 4,
  398.     adRsnUndoAddNew = 5,
  399.     adRsnUndoDelete = 6,
  400.     adRsnRequery = 7,
  401.     adRsnResynch = 8,
  402.     adRsnClose = 9,
  403.     adRsnMove = 10,
  404.     adRsnFirstChange = 11,
  405.     adRsnMoveFirst = 12,
  406.     adRsnMoveNext = 13,
  407.     adRsnMovePrevious = 14,
  408.     adRsnMoveLast = 15
  409. } EventReasonEnum;
  410.  
  411. typedef [uuid(00000533-0000-0010-8000-00AA006D2EA4)]
  412. enum {
  413.     adSchemaProviderSpecific = -1,
  414.     adSchemaAsserts = 0,
  415.     adSchemaCatalogs = 1,
  416.     adSchemaCharacterSets = 2,
  417.     adSchemaCollations = 3,
  418.     adSchemaColumns = 4,
  419.     adSchemaCheckConstraints = 5,
  420.     adSchemaConstraintColumnUsage = 6,
  421.     adSchemaConstraintTableUsage = 7,
  422.     adSchemaKeyColumnUsage = 8,
  423.     adSchemaReferentialContraints = 9,
  424.     adSchemaReferentialConstraints = 9,
  425.     adSchemaTableConstraints = 10,
  426.     adSchemaColumnsDomainUsage = 11,
  427.     adSchemaIndexes = 12,
  428.     adSchemaColumnPrivileges = 13,
  429.     adSchemaTablePrivileges = 14,
  430.     adSchemaUsagePrivileges = 15,
  431.     adSchemaProcedures = 16,
  432.     adSchemaSchemata = 17,
  433.     adSchemaSQLLanguages = 18,
  434.     adSchemaStatistics = 19,
  435.     adSchemaTables = 20,
  436.     adSchemaTranslations = 21,
  437.     adSchemaProviderTypes = 22,
  438.     adSchemaViews = 23,
  439.     adSchemaViewColumnUsage = 24,
  440.     adSchemaViewTableUsage = 25,
  441.     adSchemaProcedureParameters = 26,
  442.     adSchemaForeignKeys = 27,
  443.     adSchemaPrimaryKeys = 28,
  444.     adSchemaProcedureColumns = 29,
  445.     adSchemaDBInfoKeywords = 30,
  446.     adSchemaDBInfoLiterals = 31,
  447.     adSchemaCubes = 32,
  448.     adSchemaDimensions = 33,
  449.     adSchemaHierarchies = 34,
  450.     adSchemaLevels = 35,
  451.     adSchemaMeasures = 36,
  452.     adSchemaProperties = 37,
  453.     adSchemaMembers = 38,
  454.     adSchemaTrustees = 39
  455. } SchemaEnum;
  456.  
  457. typedef [uuid(00000552-0000-0010-8000-00AA006D2EA4)]
  458. enum {
  459.     adSeekFirstEQ = 1,
  460.     adSeekLastEQ = 2,
  461.     adSeekAfterEQ = 4,
  462.     adSeekAfter = 8,
  463.     adSeekBeforeEQ = 16,
  464.     adSeekBefore = 32
  465. } SeekEnum;
  466.  
  467. typedef [uuid(0000054A-0000-0010-8000-00AA006D2EA4)]
  468. enum {
  469.     adCriteriaKey = 0,
  470.     adCriteriaAllCols = 1,
  471.     adCriteriaUpdCols = 2,
  472.     adCriteriaTimeStamp = 3
  473. } ADCPROP_UPDATECRITERIA_ENUM;
  474.  
  475. typedef [uuid(0000054B-0000-0010-8000-00AA006D2EA4)]
  476. enum {
  477.     adPriorityLowest = 1,
  478.     adPriorityBelowNormal = 2,
  479.     adPriorityNormal = 3,
  480.     adPriorityAboveNormal = 4,
  481.     adPriorityHighest = 5
  482. } ADCPROP_ASYNCTHREADPRIORITY_ENUM;
  483.  
  484. typedef [uuid(00000553-0000-0010-8000-00AA006D2EA4)]
  485. enum {
  486.     adResyncNone = 0,
  487.     adResyncAutoIncrement = 1,
  488.     adResyncConflicts = 2,
  489.     adResyncUpdates = 4,
  490.     adResyncInserts = 8,
  491.     adResyncAll = 15
  492. } CEResyncEnum;
  493.  
  494. typedef [uuid(00000554-0000-0010-8000-00AA006D2EA4)]
  495. enum {
  496.     adRecalcUpFront = 0,
  497.     adRecalcAlways = 1
  498. } ADCPROP_AUTORECALC_ENUM;
  499.  
  500.  
  501.  
  502.  
  503. [
  504.   odl,
  505.   uuid(00000512-0000-0010-8000-00AA006D2EA4),
  506.   dual,
  507.   nonextensible,
  508.   oleautomation
  509. ]
  510. interface _Collection : IDispatch {
  511.     [id(0x60020000), propget]
  512.     HRESULT _stdcall Count([out, retval] long* c);
  513.     [id(0xfffffffc), restricted]
  514.     HRESULT _stdcall _NewEnum([out, retval] IUnknown** ppvObject);
  515.     [id(0x60020002)]
  516.     HRESULT _stdcall Refresh();
  517. };
  518.  
  519. [
  520.   odl,
  521.   uuid(00000513-0000-0010-8000-00AA006D2EA4),
  522.   dual,
  523.   nonextensible,
  524.   oleautomation
  525. ]
  526. interface _DynaCollection : _Collection {
  527.     [id(0x60030000)]
  528.     HRESULT _stdcall Append([in] IDispatch* Object);
  529.     [id(0x60030001)]
  530.     HRESULT _stdcall Delete([in] VARIANT Index);
  531. };
  532.  
  533. [
  534.   odl,
  535.   uuid(00000534-0000-0010-8000-00AA006D2EA4),
  536.   dual,
  537.   nonextensible,
  538.   oleautomation
  539. ]
  540. interface _ADO : IDispatch {
  541.     [id(0x000001f4), propget]
  542.     HRESULT _stdcall Properties([out, retval] Properties** ppvObject);
  543. };
  544.  
  545. [
  546.   odl,
  547.   uuid(00000504-0000-0010-8000-00AA006D2EA4),
  548.   dual,
  549.   nonextensible,
  550.   oleautomation
  551. ]
  552. interface Properties : _Collection {
  553.     [id(00000000), propget]
  554.     HRESULT _stdcall Item(
  555.                     [in] VARIANT Index, 
  556.                     [out, retval] Property** ppvObject);
  557. };
  558.  
  559. [
  560.   odl,
  561.   uuid(00000503-0000-0010-8000-00AA006D2EA4),
  562.   dual,
  563.   nonextensible,
  564.   oleautomation
  565. ]
  566. interface Property : IDispatch {
  567.     [id(00000000), propget]
  568.     HRESULT _stdcall Value([out, retval] VARIANT* pval);
  569.     [id(00000000), propput]
  570.     HRESULT _stdcall Value([in] VARIANT pval);
  571.     [id(0x60020002), propget]
  572.     HRESULT _stdcall Name([out, retval] BSTR* pbstr);
  573.     [id(0x60020003), propget]
  574.     HRESULT _stdcall Type([out, retval] DataTypeEnum* ptype);
  575.     [id(0x60020004), propget]
  576.     HRESULT _stdcall Attributes([out, retval] long* plAttributes);
  577.     [id(0x60020004), propput]
  578.     HRESULT _stdcall Attributes([in] long plAttributes);
  579. };
  580.  
  581. [
  582.   odl,
  583.   uuid(00000500-0000-0010-8000-00AA006D2EA4),
  584.   dual,
  585.   nonextensible,
  586.   oleautomation
  587. ]
  588. interface Error : IDispatch {
  589.     [id(0x60020000), propget]
  590.     HRESULT _stdcall Number([out, retval] long* pl);
  591.     [id(0x60020001), propget]
  592.     HRESULT _stdcall Source([out, retval] BSTR* pbstr);
  593.     [id(00000000), propget]
  594.     HRESULT _stdcall Description([out, retval] BSTR* pbstr);
  595.     [id(0x60020003), propget]
  596.     HRESULT _stdcall HelpFile([out, retval] BSTR* pbstr);
  597.     [id(0x60020004), propget]
  598.     HRESULT _stdcall HelpContext([out, retval] long* pl);
  599.     [id(0x60020005), propget]
  600.     HRESULT _stdcall SQLState([out, retval] BSTR* pbstr);
  601.     [id(0x60020006), propget]
  602.     HRESULT _stdcall NativeError([out, retval] long* pl);
  603. };
  604.  
  605. [
  606.   odl,
  607.   uuid(00000501-0000-0010-8000-00AA006D2EA4),
  608.   dual,
  609.   nonextensible,
  610.   oleautomation
  611. ]
  612. interface Errors : _Collection {
  613.     [id(00000000), propget]
  614.     HRESULT _stdcall Item(
  615.                     [in] VARIANT Index, 
  616.                     [out, retval] Error** ppvObject);
  617.     [id(0x60030001)]
  618.     HRESULT _stdcall Clear();
  619. };
  620.  
  621. [
  622.   odl,
  623.   uuid(00000508-0000-0010-8000-00AA006D2EA4),
  624.   dual,
  625.   nonextensible,
  626.   oleautomation
  627. ]
  628. interface Command15 : _ADO {
  629.     [id(0x60030000), propget]
  630.     HRESULT _stdcall ActiveConnection([out, retval] _Connection** ppvObject);
  631.     [id(0x60030000), propputref]
  632.     HRESULT _stdcall ActiveConnection([in] _Connection* ppvObject);
  633.     [id(0x60030000), propput]
  634.     HRESULT _stdcall ActiveConnection([in] VARIANT ppvObject);
  635.     [id(0x60030003), propget]
  636.     HRESULT _stdcall CommandText([out, retval] BSTR* pbstr);
  637.     [id(0x60030003), propput]
  638.     HRESULT _stdcall CommandText([in] BSTR pbstr);
  639.     [id(0x60030005), propget]
  640.     HRESULT _stdcall CommandTimeout([out, retval] long* pl);
  641.     [id(0x60030005), propput]
  642.     HRESULT _stdcall CommandTimeout([in] long pl);
  643.     [id(0x60030007), propget]
  644.     HRESULT _stdcall Prepared([out, retval] VARIANT_BOOL* pfPrepared);
  645.     [id(0x60030007), propput]
  646.     HRESULT _stdcall Prepared([in] VARIANT_BOOL pfPrepared);
  647.     [id(0x60030009)]
  648.     HRESULT _stdcall Execute(
  649.                     [out, optional] VARIANT* RecordsAffected, 
  650.                     [in, optional] VARIANT* Parameters, 
  651.                     [in, optional, defaultvalue(-1)] long Options, 
  652.                     [out, retval] _Recordset** ppiRs);
  653.     [id(0x6003000a)]
  654.     HRESULT _stdcall CreateParameter(
  655.                     [in, optional, defaultvalue("")] BSTR Name, 
  656.                     [in, optional, defaultvalue(0)] DataTypeEnum Type, 
  657.                     [in, optional, defaultvalue(1)] ParameterDirectionEnum Direction, 
  658.                     [in, optional, defaultvalue(0)] long Size, 
  659.                     [in, optional] VARIANT Value, 
  660.                     [out, retval] _Parameter** ppiprm);
  661.     [id(00000000), propget]
  662.     HRESULT _stdcall Parameters([out, retval] Parameters** ppvObject);
  663.     [id(0x6003000c), propput]
  664.     HRESULT _stdcall CommandType([in] CommandTypeEnum plCmdType);
  665.     [id(0x6003000c), propget]
  666.     HRESULT _stdcall CommandType([out, retval] CommandTypeEnum* plCmdType);
  667.     [id(0x6003000e), propget]
  668.     HRESULT _stdcall Name([out, retval] BSTR* pbstrName);
  669.     [id(0x6003000e), propput]
  670.     HRESULT _stdcall Name([in] BSTR pbstrName);
  671. };
  672.  
  673. [
  674.   odl,
  675.   uuid(0000054E-0000-0010-8000-00AA006D2EA4),
  676.   dual,
  677.   nonextensible,
  678.   oleautomation
  679. ]
  680. interface _Command : Command15 {
  681.     [id(0x60030010), propget]
  682.     HRESULT _stdcall State([out, retval] long* plObjState);
  683.     [id(0x60030011)]
  684.     HRESULT _stdcall Cancel();
  685. };
  686.  
  687.  
  688. [
  689.   odl,
  690.   uuid(00000515-0000-0010-8000-00AA006D2EA4),
  691.   dual,
  692.   oleautomation
  693. ]
  694. interface Connection15 : _ADO {
  695.     [id(00000000), propget]
  696.     HRESULT _stdcall ConnectionString([out, retval] BSTR* pbstr);
  697.     [id(00000000), propput]
  698.     HRESULT _stdcall ConnectionString([in] BSTR pbstr);
  699.     [id(0x00000002), propget]
  700.     HRESULT _stdcall CommandTimeout([out, retval] long* plTimeout);
  701.     [id(0x00000002), propput]
  702.     HRESULT _stdcall CommandTimeout([in] long plTimeout);
  703.     [id(0x00000003), propget]
  704.     HRESULT _stdcall ConnectionTimeout([out, retval] long* plTimeout);
  705.     [id(0x00000003), propput]
  706.     HRESULT _stdcall ConnectionTimeout([in] long plTimeout);
  707.     [id(0x00000004), propget]
  708.     HRESULT _stdcall Version([out, retval] BSTR* pbstr);
  709.     [id(0x00000005)]
  710.     HRESULT _stdcall Close();
  711.     [id(0x00000006)]
  712.     HRESULT _stdcall Execute(
  713.                     [in] BSTR CommandText, 
  714.                     [out, optional] VARIANT* RecordsAffected, 
  715.                     [in, optional, defaultvalue(-1)] long Options, 
  716.                     [out, retval] _Recordset** ppiRset);
  717.     [id(0x00000007)]
  718.     HRESULT _stdcall BeginTrans([out, retval] long* TransactionLevel);
  719.     [id(0x00000008)]
  720.     HRESULT _stdcall CommitTrans();
  721.     [id(0x00000009)]
  722.     HRESULT _stdcall RollbackTrans();
  723.     [id(0x0000000a)]
  724.     HRESULT _stdcall Open(
  725.                     [in, optional, defaultvalue("")] BSTR ConnectionString, 
  726.                     [in, optional, defaultvalue("")] BSTR UserID, 
  727.                     [in, optional, defaultvalue("")] BSTR Password, 
  728.                     [in, optional, defaultvalue(-1)] long Options);
  729.     [id(0x0000000b), propget]
  730.     HRESULT _stdcall Errors([out, retval] Errors** ppvObject);
  731.     [id(0x0000000c), propget]
  732.     HRESULT _stdcall DefaultDatabase([out, retval] BSTR* pbstr);
  733.     [id(0x0000000c), propput]
  734.     HRESULT _stdcall DefaultDatabase([in] BSTR pbstr);
  735.     [id(0x0000000d), propget]
  736.     HRESULT _stdcall IsolationLevel([out, retval] IsolationLevelEnum* Level);
  737.     [id(0x0000000d), propput]
  738.     HRESULT _stdcall IsolationLevel([in] IsolationLevelEnum Level);
  739.     [id(0x0000000e), propget]
  740.     HRESULT _stdcall Attributes([out, retval] long* plAttr);
  741.     [id(0x0000000e), propput]
  742.     HRESULT _stdcall Attributes([in] long plAttr);
  743.     [id(0x0000000f), propget]
  744.     HRESULT _stdcall CursorLocation([out, retval] CursorLocationEnum* plCursorLoc);
  745.     [id(0x0000000f), propput]
  746.     HRESULT _stdcall CursorLocation([in] CursorLocationEnum plCursorLoc);
  747.     [id(0x00000010), propget]
  748.     HRESULT _stdcall Mode([out, retval] ConnectModeEnum* plMode);
  749.     [id(0x00000010), propput]
  750.     HRESULT _stdcall Mode([in] ConnectModeEnum plMode);
  751.     [id(0x00000011), propget]
  752.     HRESULT _stdcall Provider([out, retval] BSTR* pbstr);
  753.     [id(0x00000011), propput]
  754.     HRESULT _stdcall Provider([in] BSTR pbstr);
  755.     [id(0x00000012), propget]
  756.     HRESULT _stdcall State([out, retval] long* plObjState);
  757.     [id(0x00000013)]
  758.     HRESULT _stdcall OpenSchema(
  759.                     [in] SchemaEnum Schema, 
  760.                     [in, optional] VARIANT Restrictions, 
  761.                     [in, optional] VARIANT SchemaID, 
  762.                     [out, retval] _Recordset** pprset);
  763. };
  764.  
  765. [
  766.   odl,
  767.   uuid(00000550-0000-0010-8000-00AA006D2EA4),
  768.   dual,
  769.   oleautomation
  770. ]
  771. interface _Connection : Connection15 {
  772.     [id(0x00000015)]
  773.     HRESULT _stdcall Cancel();
  774. };
  775.  
  776.  
  777. [
  778.   odl,
  779.   uuid(00000555-0000-0010-8000-00AA006D2EA4),
  780.   dual,
  781.   nonextensible,
  782.   oleautomation
  783. ]
  784. interface _Recordset : Recordset20 {
  785.     [id(0x0000042a), helpcontext(0x001356db)]
  786.     HRESULT _stdcall Seek(
  787.                     [in] VARIANT KeyValues, 
  788.                     [in, optional, defaultvalue(1)] SeekEnum SeekOption);
  789.     [id(0x0000042b), propput, helpcontext(0x001356da)]
  790.     HRESULT _stdcall Index([in] BSTR pbstrIndex);
  791.     [id(0x0000042b), propget, helpcontext(0x001356da)]
  792.     HRESULT _stdcall Index([out, retval] BSTR* pbstrIndex);
  793. };
  794.  
  795.  
  796. [
  797.   odl,
  798.   uuid(0000050E-0000-0010-8000-00AA006D2EA4),
  799.   dual,
  800.   nonextensible,
  801.   oleautomation
  802. ]
  803. interface Recordset15 : _ADO {
  804.     [id(0x000003e8), propget]
  805.     HRESULT _stdcall AbsolutePosition([out, retval] PositionEnum* pl);
  806.     [id(0x000003e8), propput]
  807.     HRESULT _stdcall AbsolutePosition([in] PositionEnum pl);
  808.     [id(0x000003e9), propputref]
  809.     HRESULT _stdcall ActiveConnection([in] IDispatch* pvar);
  810.     [id(0x000003e9), propput]
  811.     HRESULT _stdcall ActiveConnection([in] VARIANT pvar);
  812.     [id(0x000003e9), propget]
  813.     HRESULT _stdcall ActiveConnection([out, retval] VARIANT* pvar);
  814.     [id(0x000003ea), propget]
  815.     HRESULT _stdcall BOF([out, retval] VARIANT_BOOL* pb);
  816.     [id(0x000003eb), propget]
  817.     HRESULT _stdcall Bookmark([out, retval] VARIANT* pvBookmark);
  818.     [id(0x000003eb), propput]
  819.     HRESULT _stdcall Bookmark([in] VARIANT pvBookmark);
  820.     [id(0x000003ec), propget]
  821.     HRESULT _stdcall CacheSize([out, retval] long* pl);
  822.     [id(0x000003ec), propput]
  823.     HRESULT _stdcall CacheSize([in] long pl);
  824.     [id(0x000003ed), propget]
  825.     HRESULT _stdcall CursorType([out, retval] CursorTypeEnum* plCursorType);
  826.     [id(0x000003ed), propput]
  827.     HRESULT _stdcall CursorType([in] CursorTypeEnum plCursorType);
  828.     [id(0x000003ee), propget]
  829.     HRESULT _stdcall EOF([out, retval] VARIANT_BOOL* pb);
  830.     [id(00000000), propget]
  831.     HRESULT _stdcall Fields([out, retval] Fields** ppvObject);
  832.     [id(0x000003f0), propget]
  833.     HRESULT _stdcall LockType([out, retval] LockTypeEnum* plLockType);
  834.     [id(0x000003f0), propput]
  835.     HRESULT _stdcall LockType([in] LockTypeEnum plLockType);
  836.     [id(0x000003f1), propget]
  837.     HRESULT _stdcall MaxRecords([out, retval] long* plMaxRecords);
  838.     [id(0x000003f1), propput]
  839.     HRESULT _stdcall MaxRecords([in] long plMaxRecords);
  840.     [id(0x000003f2), propget]
  841.     HRESULT _stdcall RecordCount([out, retval] long* pl);
  842.     [id(0x000003f3), propputref]
  843.     HRESULT _stdcall Source([in] IDispatch* pvSource);
  844.     [id(0x000003f3), propput]
  845.     HRESULT _stdcall Source([in] BSTR pvSource);
  846.     [id(0x000003f3), propget]
  847.     HRESULT _stdcall Source([out, retval] VARIANT* pvSource);
  848.     [id(0x000003f4)]
  849.     HRESULT _stdcall AddNew(
  850.                     [in, optional] VARIANT FieldList, 
  851.                     [in, optional] VARIANT Values);
  852.     [id(0x000003f5)]
  853.     HRESULT _stdcall CancelUpdate();
  854.     [id(0x000003f6)]
  855.     HRESULT _stdcall Close();
  856.     [id(0x000003f7)]
  857.     HRESULT _stdcall Delete([in, optional, defaultvalue(1)] AffectEnum AffectRecords);
  858.     [id(0x000003f8)]
  859.     HRESULT _stdcall GetRows(
  860.                     [in, optional, defaultvalue(-1)] long Rows, 
  861.                     [in, optional] VARIANT Start, 
  862.                     [in, optional] VARIANT Fields, 
  863.                     [out, retval] VARIANT* pvar);
  864.     [id(0x000003f9)]
  865.     HRESULT _stdcall Move(
  866.                     [in] long NumRecords, 
  867.                     [in, optional] VARIANT Start);
  868.     [id(0x000003fa)]
  869.     HRESULT _stdcall MoveNext();
  870.     [id(0x000003fb)]
  871.     HRESULT _stdcall MovePrevious();
  872.     [id(0x000003fc)]
  873.     HRESULT _stdcall MoveFirst();
  874.     [id(0x000003fd)]
  875.     HRESULT _stdcall MoveLast();
  876.     [id(0x000003fe)]
  877.     HRESULT _stdcall Open(
  878.                     [in, optional] VARIANT Source, 
  879.                     [in, optional] VARIANT ActiveConnection, 
  880.                     [in, optional, defaultvalue(-1)] CursorTypeEnum CursorType, 
  881.                     [in, optional, defaultvalue(-1)] LockTypeEnum LockType, 
  882.                     [in, optional, defaultvalue(-1)] long Options);
  883.     [id(0x000003ff)]
  884.     HRESULT _stdcall Requery([in, optional, defaultvalue(-1)] long Options);
  885.     [id(0x60030022), hidden]
  886.     HRESULT _stdcall _xResync([in, optional, defaultvalue(3)] AffectEnum AffectRecords);
  887.     [id(0x00000401)]
  888.     HRESULT _stdcall Update(
  889.                     [in, optional] VARIANT Fields, 
  890.                     [in, optional] VARIANT Values);
  891.     [id(0x00000417), propget]
  892.     HRESULT _stdcall AbsolutePage([out, retval] PositionEnum* pl);
  893.     [id(0x00000417), propput]
  894.     HRESULT _stdcall AbsolutePage([in] PositionEnum pl);
  895.     [id(0x00000402), propget]
  896.     HRESULT _stdcall EditMode([out, retval] EditModeEnum* pl);
  897.     [id(0x00000406), propget]
  898.     HRESULT _stdcall Filter([out, retval] VARIANT* Criteria);
  899.     [id(0x00000406), propput]
  900.     HRESULT _stdcall Filter([in] VARIANT Criteria);
  901.     [id(0x0000041a), propget]
  902.     HRESULT _stdcall PageCount([out, retval] long* pl);
  903.     [id(0x00000418), propget]
  904.     HRESULT _stdcall PageSize([out, retval] long* pl);
  905.     [id(0x00000418), propput]
  906.     HRESULT _stdcall PageSize([in] long pl);
  907.     [id(0x00000407), propget]
  908.     HRESULT _stdcall Sort([out, retval] BSTR* Criteria);
  909.     [id(0x00000407), propput]
  910.     HRESULT _stdcall Sort([in] BSTR Criteria);
  911.     [id(0x00000405), propget]
  912.     HRESULT _stdcall Status([out, retval] long* pl);
  913.     [id(0x0000041e), propget]
  914.     HRESULT _stdcall State([out, retval] long* plObjState);
  915.     [id(0x60030030), hidden]
  916.     HRESULT _stdcall _xClone([out, retval] _Recordset** ppvObject);
  917.     [id(0x0000040b)]
  918.     HRESULT _stdcall UpdateBatch([in, optional, defaultvalue(3)] AffectEnum AffectRecords);
  919.     [id(0x00000419)]
  920.     HRESULT _stdcall CancelBatch([in, optional, defaultvalue(3)] AffectEnum AffectRecords);
  921.     [id(0x0000041b), propget]
  922.     HRESULT _stdcall CursorLocation([out, retval] CursorLocationEnum* plCursorLoc);
  923.     [id(0x0000041b), propput]
  924.     HRESULT _stdcall CursorLocation([in] CursorLocationEnum plCursorLoc);
  925.     [id(0x0000041c)]
  926.     HRESULT _stdcall NextRecordset(
  927.                     [out, optional] VARIANT* RecordsAffected, 
  928.                     [out, retval] _Recordset** ppiRs);
  929.     [id(0x0000040c)]
  930.     HRESULT _stdcall Supports(
  931.                     [in] CursorOptionEnum CursorOptions, 
  932.                     [out, retval] VARIANT_BOOL* pb);
  933.     [id(0xfffffff8), propget, hidden]
  934.     HRESULT _stdcall Collect(
  935.                     [in] VARIANT Index, 
  936.                     [out, retval] VARIANT* pvar);
  937.     [id(0xfffffff8), propput, hidden]
  938.     HRESULT _stdcall Collect(
  939.                     [in] VARIANT Index, 
  940.                     [in] VARIANT pvar);
  941.     [id(0x0000041d), propget]
  942.     HRESULT _stdcall MarshalOptions([out, retval] MarshalOptionsEnum* peMarshal);
  943.     [id(0x0000041d), propput]
  944.     HRESULT _stdcall MarshalOptions([in] MarshalOptionsEnum peMarshal);
  945.     [id(0x00000422)]
  946.     HRESULT _stdcall Find(
  947.                     [in] BSTR Criteria, 
  948.                     [in, optional, defaultvalue(0)] long SkipRecords, 
  949.                     [in, optional, defaultvalue(1)] SearchDirectionEnum SearchDirection, 
  950.                     [in, optional] VARIANT Start);
  951. };
  952.  
  953. [
  954.   odl,
  955.   uuid(0000054F-0000-0010-8000-00AA006D2EA4),
  956.   dual,
  957.   nonextensible,
  958.   oleautomation
  959. ]
  960. interface Recordset20 : Recordset15 {
  961.     [id(0x0000041f)]
  962.     HRESULT _stdcall Cancel();
  963.     [id(0x00000420), propget]
  964.     HRESULT _stdcall DataSource([out, retval] IUnknown** ppunkDataSource);
  965.     [id(0x00000420), propputref]
  966.     HRESULT _stdcall DataSource([in] IUnknown* ppunkDataSource);
  967.     [id(0x00000421)]
  968.     HRESULT _stdcall Save(
  969.                     [in, optional] BSTR FileName, 
  970.                     [in, optional, defaultvalue(0)] PersistFormatEnum PersistFormat);
  971.     [id(0x00000425), propget]
  972.     HRESULT _stdcall ActiveCommand([out, retval] IDispatch** ppCmd);
  973.     [id(0x00000427), propput]
  974.     HRESULT _stdcall StayInSync([in] VARIANT_BOOL pbStayInSync);
  975.     [id(0x00000427), propget]
  976.     HRESULT _stdcall StayInSync([out, retval] VARIANT_BOOL* pbStayInSync);
  977.     [id(0x00000426)]
  978.     HRESULT _stdcall GetString(
  979.                     [in, optional, defaultvalue(2)] StringFormatEnum StringFormat, 
  980.                     [in, optional, defaultvalue(-1)] long NumRows, 
  981.                     [in, optional] BSTR ColumnDelimeter, 
  982.                     [in, optional] BSTR RowDelimeter, 
  983.                     [in, optional] BSTR NullExpr, 
  984.                     [out, retval] BSTR* pRetString);
  985.     [id(0x00000428), propget]
  986.     HRESULT _stdcall DataMember([out, retval] BSTR* pbstrDataMember);
  987.     [id(0x00000428), propput]
  988.     HRESULT _stdcall DataMember([in] BSTR pbstrDataMember);
  989.     [id(0x00000429)]
  990.     HRESULT _stdcall CompareBookmarks(
  991.                     [in] VARIANT Bookmark1, 
  992.                     [in] VARIANT Bookmark2, 
  993.                     [out, retval] CompareEnum* pCompare);
  994.     [id(0x0000040a)]
  995.     HRESULT _stdcall Clone(
  996.                     [in, optional, defaultvalue(-1)] LockTypeEnum LockType, 
  997.                     [out, retval] _Recordset** ppvObject);
  998.     [id(0x00000400)]
  999.     HRESULT _stdcall Resync(
  1000.                     [in, optional, defaultvalue(3)] AffectEnum AffectRecords, 
  1001.                     [in, optional, defaultvalue(2)] ResyncEnum ResyncValues);
  1002. };
  1003.  
  1004.  
  1005.  
  1006.  
  1007. [
  1008.   odl,
  1009.   uuid(00000506-0000-0010-8000-00AA006D2EA4),
  1010.   dual,
  1011.   nonextensible,
  1012.   oleautomation
  1013. ]
  1014. interface Fields15 : _Collection {
  1015.     [id(00000000), propget]
  1016.     HRESULT _stdcall Item(
  1017.                     [in] VARIANT Index, 
  1018.                     [out, retval] Field** ppvObject);
  1019. };
  1020.  
  1021. [
  1022.   odl,
  1023.   uuid(0000054D-0000-0010-8000-00AA006D2EA4),
  1024.   dual,
  1025.   nonextensible,
  1026.   oleautomation
  1027. ]
  1028. interface Fields : Fields15 {
  1029.     [id(0x60030001)]
  1030.     HRESULT _stdcall Append(
  1031.                     [in] BSTR Name, 
  1032.                     [in] DataTypeEnum Type, 
  1033.                     [in, optional, defaultvalue(0)] long DefinedSize, 
  1034.                     [in, optional, defaultvalue(-1)] FieldAttributeEnum Attrib);
  1035.     [id(0x60030002)]
  1036.     HRESULT _stdcall Delete([in] VARIANT Index);
  1037. };
  1038.  
  1039. [
  1040.   odl,
  1041.   uuid(00000505-0000-0010-8000-00AA006D2EA4),
  1042.   dual,
  1043.   nonextensible,
  1044.   oleautomation
  1045. ]
  1046. interface Field15 : _ADO {
  1047.     [id(0x00000455), propget]
  1048.     HRESULT _stdcall ActualSize([out, retval] long* pl);
  1049.     [id(0x0000040c), propget]
  1050.     HRESULT _stdcall Attributes([out, retval] long* pl);
  1051.     [id(0x0000044f), propget]
  1052.     HRESULT _stdcall DefinedSize([out, retval] long* pl);
  1053.     [id(0x0000044c), propget]
  1054.     HRESULT _stdcall Name([out, retval] BSTR* pbstr);
  1055.     [id(0x0000044e), propget]
  1056.     HRESULT _stdcall Type([out, retval] DataTypeEnum* pDataType);
  1057.     [id(00000000), propget]
  1058.     HRESULT _stdcall Value([out, retval] VARIANT* pvar);
  1059.     [id(00000000), propput]
  1060.     HRESULT _stdcall Value([in] VARIANT pvar);
  1061.     [id(0x60030007), propget]
  1062.     HRESULT _stdcall Precision([out, retval] unsigned char* pbPrecision);
  1063.     [id(0x60030008), propget]
  1064.     HRESULT _stdcall NumericScale([out, retval] unsigned char* pbNumericScale);
  1065.     [id(0x00000453)]
  1066.     HRESULT _stdcall AppendChunk([in] VARIANT Data);
  1067.     [id(0x00000454)]
  1068.     HRESULT _stdcall GetChunk(
  1069.                     [in] long Length, 
  1070.                     [out, retval] VARIANT* pvar);
  1071.     [id(0x00000450), propget]
  1072.     HRESULT _stdcall OriginalValue([out, retval] VARIANT* pvar);
  1073.     [id(0x00000451), propget]
  1074.     HRESULT _stdcall UnderlyingValue([out, retval] VARIANT* pvar);
  1075. };
  1076.  
  1077. [
  1078.   odl,
  1079.   uuid(0000054C-0000-0010-8000-00AA006D2EA4),
  1080.   dual,
  1081.   nonextensible,
  1082.   oleautomation
  1083. ]
  1084. interface Field : _ADO {
  1085.     [id(0x00000455), propget]
  1086.     HRESULT _stdcall ActualSize([out, retval] long* pl);
  1087.     [id(0x0000040c), propget]
  1088.     HRESULT _stdcall Attributes([out, retval] long* pl);
  1089.     [id(0x0000044f), propget]
  1090.     HRESULT _stdcall DefinedSize([out, retval] long* pl);
  1091.     [id(0x0000044c), propget]
  1092.     HRESULT _stdcall Name([out, retval] BSTR* pbstr);
  1093.     [id(0x0000044e), propget]
  1094.     HRESULT _stdcall Type([out, retval] DataTypeEnum* pDataType);
  1095.     [id(00000000), propget]
  1096.     HRESULT _stdcall Value([out, retval] VARIANT* pvar);
  1097.     [id(00000000), propput]
  1098.     HRESULT _stdcall Value([in] VARIANT pvar);
  1099.     [id(0x60030007), propget]
  1100.     HRESULT _stdcall Precision([out, retval] unsigned char* pbPrecision);
  1101.     [id(0x60030008), propget]
  1102.     HRESULT _stdcall NumericScale([out, retval] unsigned char* pbNumericScale);
  1103.     [id(0x00000453)]
  1104.     HRESULT _stdcall AppendChunk([in] VARIANT Data);
  1105.     [id(0x00000454)]
  1106.     HRESULT _stdcall GetChunk(
  1107.                     [in] long Length, 
  1108.                     [out, retval] VARIANT* pvar);
  1109.     [id(0x00000450), propget]
  1110.     HRESULT _stdcall OriginalValue([out, retval] VARIANT* pvar);
  1111.     [id(0x00000451), propget]
  1112.     HRESULT _stdcall UnderlyingValue([out, retval] VARIANT* pvar);
  1113.     [id(0x6003000d), propget]
  1114.     HRESULT _stdcall DataFormat([out, retval] IUnknown** ppiDF);
  1115.     [id(0x6003000d), propputref]
  1116.     HRESULT _stdcall DataFormat([in] IUnknown* ppiDF);
  1117.     [id(0x60030007), propput]
  1118.     HRESULT _stdcall Precision([in] unsigned char pbPrecision);
  1119.     [id(0x60030008), propput]
  1120.     HRESULT _stdcall NumericScale([in] unsigned char pbNumericScale);
  1121.     [id(0x0000044e), propput]
  1122.     HRESULT _stdcall Type([in] DataTypeEnum pDataType);
  1123.     [id(0x0000044f), propput]
  1124.     HRESULT _stdcall DefinedSize([in] long pl);
  1125.     [id(0x0000040c), propput]
  1126.     HRESULT _stdcall Attributes([in] long pl);
  1127. };
  1128.  
  1129.  
  1130. [
  1131.   odl,
  1132.   uuid(0000050C-0000-0010-8000-00AA006D2EA4),
  1133.   dual,
  1134.   nonextensible,
  1135.   oleautomation
  1136. ]
  1137. interface _Parameter : _ADO {
  1138.     [id(0x60030000), propget]
  1139.     HRESULT _stdcall Name([out, retval] BSTR* pbstr);
  1140.     [id(0x60030000), propput]
  1141.     HRESULT _stdcall Name([in] BSTR pbstr);
  1142.     [id(00000000), propget]
  1143.     HRESULT _stdcall Value([out, retval] VARIANT* pvar);
  1144.     [id(00000000), propput]
  1145.     HRESULT _stdcall Value([in] VARIANT pvar);
  1146.     [id(0x60030004), propget]
  1147.     HRESULT _stdcall Type([out, retval] DataTypeEnum* psDataType);
  1148.     [id(0x60030004), propput]
  1149.     HRESULT _stdcall Type([in] DataTypeEnum psDataType);
  1150.     [id(0x60030006), propput]
  1151.     HRESULT _stdcall Direction([in] ParameterDirectionEnum plParmDirection);
  1152.     [id(0x60030006), propget]
  1153.     HRESULT _stdcall Direction([out, retval] ParameterDirectionEnum* plParmDirection);
  1154.     [id(0x60030008), propput]
  1155.     HRESULT _stdcall Precision([in] unsigned char pbPrecision);
  1156.     [id(0x60030008), propget]
  1157.     HRESULT _stdcall Precision([out, retval] unsigned char* pbPrecision);
  1158.     [id(0x6003000a), propput]
  1159.     HRESULT _stdcall NumericScale([in] unsigned char pbScale);
  1160.     [id(0x6003000a), propget]
  1161.     HRESULT _stdcall NumericScale([out, retval] unsigned char* pbScale);
  1162.     [id(0x6003000c), propput]
  1163.     HRESULT _stdcall Size([in] long pl);
  1164.     [id(0x6003000c), propget]
  1165.     HRESULT _stdcall Size([out, retval] long* pl);
  1166.     [id(0x6003000e)]
  1167.     HRESULT _stdcall AppendChunk([in] VARIANT Val);
  1168.     [id(0x6003000f), propget]
  1169.     HRESULT _stdcall Attributes([out, retval] long* plParmAttribs);
  1170.     [id(0x6003000f), propput]
  1171.     HRESULT _stdcall Attributes([in] long plParmAttribs);
  1172. };
  1173.  
  1174. [
  1175.   odl,
  1176.   uuid(0000050D-0000-0010-8000-00AA006D2EA4),
  1177.   dual,
  1178.   nonextensible,
  1179.   oleautomation
  1180. ]
  1181. interface Parameters : _DynaCollection {
  1182.     [id(00000000), propget]
  1183.     HRESULT _stdcall Item(
  1184.                     [in] VARIANT Index, 
  1185.                     [out, retval] _Parameter** ppvObject);
  1186. };
  1187.  
  1188. [
  1189.   odl,
  1190.   uuid(00000538-0000-0010-8000-00AA006D2EA4),
  1191.   hidden
  1192. ]
  1193. interface ADODebugging : IUnknown {
  1194.     HRESULT _stdcall IsGlobalDebugMode(VARIANT_BOOL* pfDebuggingOn);
  1195.     HRESULT _stdcall SetGlobalDebugMode(
  1196.                     IUnknown* pDebugger, 
  1197.                     VARIANT_BOOL fDebuggingOn);
  1198. };
  1199.  
  1200. [
  1201.   odl,
  1202.   uuid(00000402-0000-0010-8000-00AA006D2EA4),
  1203.   hidden
  1204. ]
  1205. interface ConnectionEventsVt : IUnknown {
  1206.     HRESULT _stdcall InfoMessage(
  1207.                     [in] Error* pError, 
  1208.                     [in, out] EventStatusEnum* adStatus, 
  1209.                     [in] _Connection* pConnection);
  1210.     HRESULT _stdcall BeginTransComplete(
  1211.                     [in] long TransactionLevel, 
  1212.                     [in] Error* pError, 
  1213.                     [in, out] EventStatusEnum* adStatus, 
  1214.                     [in] _Connection* pConnection);
  1215.     HRESULT _stdcall CommitTransComplete(
  1216.                     [in] Error* pError, 
  1217.                     [in, out] EventStatusEnum* adStatus, 
  1218.                     [in] _Connection* pConnection);
  1219.     HRESULT _stdcall RollbackTransComplete(
  1220.                     [in] Error* pError, 
  1221.                     [in, out] EventStatusEnum* adStatus, 
  1222.                     [in] _Connection* pConnection);
  1223.     HRESULT _stdcall WillExecute(
  1224.                     [in, out] BSTR* Source, 
  1225.                     [in, out] CursorTypeEnum* CursorType, 
  1226.                     [in, out] LockTypeEnum* LockType, 
  1227.                     [in, out] long* Options, 
  1228.                     [in, out] EventStatusEnum* adStatus, 
  1229.                     [in] _Command* pCommand, 
  1230.                     [in] _Recordset* pRecordset, 
  1231.                     [in] _Connection* pConnection);
  1232.     HRESULT _stdcall ExecuteComplete(
  1233.                     [in] long RecordsAffected, 
  1234.                     [in] Error* pError, 
  1235.                     [in, out] EventStatusEnum* adStatus, 
  1236.                     [in] _Command* pCommand, 
  1237.                     [in] _Recordset* pRecordset, 
  1238.                     [in] _Connection* pConnection);
  1239.     HRESULT _stdcall WillConnect(
  1240.                     [in, out] BSTR* ConnectionString, 
  1241.                     [in, out] BSTR* UserID, 
  1242.                     [in, out] BSTR* Password, 
  1243.                     [in, out] long* Options, 
  1244.                     [in, out] EventStatusEnum* adStatus, 
  1245.                     [in] _Connection* pConnection);
  1246.     HRESULT _stdcall ConnectComplete(
  1247.                     [in] Error* pError, 
  1248.                     [in, out] EventStatusEnum* adStatus, 
  1249.                     [in] _Connection* pConnection);
  1250.     HRESULT _stdcall Disconnect(
  1251.                     [in, out] EventStatusEnum* adStatus, 
  1252.                     [in] _Connection* pConnection);
  1253. };
  1254.  
  1255. [
  1256.   odl,
  1257.   uuid(00000403-0000-0010-8000-00AA006D2EA4),
  1258.   hidden
  1259. ]
  1260. interface RecordsetEventsVt : IUnknown {
  1261.     HRESULT _stdcall WillChangeField(
  1262.                     [in] long cFields, 
  1263.                     [in] VARIANT Fields, 
  1264.                     [in, out] EventStatusEnum* adStatus, 
  1265.                     [in] _Recordset* pRecordset);
  1266.     HRESULT _stdcall FieldChangeComplete(
  1267.                     [in] long cFields, 
  1268.                     [in] VARIANT Fields, 
  1269.                     [in] Error* pError, 
  1270.                     [in, out] EventStatusEnum* adStatus, 
  1271.                     [in] _Recordset* pRecordset);
  1272.     HRESULT _stdcall WillChangeRecord(
  1273.                     [in] EventReasonEnum adReason, 
  1274.                     [in] long cRecords, 
  1275.                     [in, out] EventStatusEnum* adStatus, 
  1276.                     [in] _Recordset* pRecordset);
  1277.     HRESULT _stdcall RecordChangeComplete(
  1278.                     [in] EventReasonEnum adReason, 
  1279.                     [in] long cRecords, 
  1280.                     [in] Error* pError, 
  1281.                     [in, out] EventStatusEnum* adStatus, 
  1282.                     [in] _Recordset* pRecordset);
  1283.     HRESULT _stdcall WillChangeRecordset(
  1284.                     [in] EventReasonEnum adReason, 
  1285.                     [in, out] EventStatusEnum* adStatus, 
  1286.                     [in] _Recordset* pRecordset);
  1287.     HRESULT _stdcall RecordsetChangeComplete(
  1288.                     [in] EventReasonEnum adReason, 
  1289.                     [in] Error* pError, 
  1290.                     [in, out] EventStatusEnum* adStatus, 
  1291.                     [in] _Recordset* pRecordset);
  1292.     HRESULT _stdcall WillMove(
  1293.                     [in] EventReasonEnum adReason, 
  1294.                     [in, out] EventStatusEnum* adStatus, 
  1295.                     [in] _Recordset* pRecordset);
  1296.     HRESULT _stdcall MoveComplete(
  1297.                     [in] EventReasonEnum adReason, 
  1298.                     [in] Error* pError, 
  1299.                     [in, out] EventStatusEnum* adStatus, 
  1300.                     [in] _Recordset* pRecordset);
  1301.     HRESULT _stdcall EndOfRecordset(
  1302.                     [in, out] VARIANT_BOOL* fMoreData, 
  1303.                     [in, out] EventStatusEnum* adStatus, 
  1304.                     [in] _Recordset* pRecordset);
  1305.     HRESULT _stdcall FetchProgress(
  1306.                     [in] long Progress, 
  1307.                     [in] long MaxProgress, 
  1308.                     [in, out] EventStatusEnum* adStatus, 
  1309.                     [in] _Recordset* pRecordset);
  1310.     HRESULT _stdcall FetchComplete(
  1311.                     [in] Error* pError, 
  1312.                     [in, out] EventStatusEnum* adStatus, 
  1313.                     [in] _Recordset* pRecordset);
  1314. };
  1315.  
  1316. [
  1317.   uuid(00000400-0000-0010-8000-00AA006D2EA4)
  1318. ]
  1319. dispinterface ConnectionEvents {
  1320.     properties:
  1321.     methods:
  1322.         [id(00000000)]
  1323.         HRESULT InfoMessage(
  1324.                         [in] Error* pError, 
  1325.                         [in, out] EventStatusEnum* adStatus, 
  1326.                         [in] _Connection* pConnection);
  1327.         [id(0x00000001)]
  1328.         HRESULT BeginTransComplete(
  1329.                         [in] long TransactionLevel, 
  1330.                         [in] Error* pError, 
  1331.                         [in, out] EventStatusEnum* adStatus, 
  1332.                         [in] _Connection* pConnection);
  1333.         [id(0x00000003)]
  1334.         HRESULT CommitTransComplete(
  1335.                         [in] Error* pError, 
  1336.                         [in, out] EventStatusEnum* adStatus, 
  1337.                         [in] _Connection* pConnection);
  1338.         [id(0x00000002)]
  1339.         HRESULT RollbackTransComplete(
  1340.                         [in] Error* pError, 
  1341.                         [in, out] EventStatusEnum* adStatus, 
  1342.                         [in] _Connection* pConnection);
  1343.         [id(0x00000004)]
  1344.         HRESULT WillExecute(
  1345.                         [in, out] BSTR* Source, 
  1346.                         [in, out] CursorTypeEnum* CursorType, 
  1347.                         [in, out] LockTypeEnum* LockType, 
  1348.                         [in, out] long* Options, 
  1349.                         [in, out] EventStatusEnum* adStatus, 
  1350.                         [in] _Command* pCommand, 
  1351.                         [in] _Recordset* pRecordset, 
  1352.                         [in] _Connection* pConnection);
  1353.         [id(0x00000005)]
  1354.         HRESULT ExecuteComplete(
  1355.                         [in] long RecordsAffected, 
  1356.                         [in] Error* pError, 
  1357.                         [in, out] EventStatusEnum* adStatus, 
  1358.                         [in] _Command* pCommand, 
  1359.                         [in] _Recordset* pRecordset, 
  1360.                         [in] _Connection* pConnection);
  1361.         [id(0x00000006)]
  1362.         HRESULT WillConnect(
  1363.                         [in, out] BSTR* ConnectionString, 
  1364.                         [in, out] BSTR* UserID, 
  1365.                         [in, out] BSTR* Password, 
  1366.                         [in, out] long* Options, 
  1367.                         [in, out] EventStatusEnum* adStatus, 
  1368.                         [in] _Connection* pConnection);
  1369.         [id(0x00000007)]
  1370.         HRESULT ConnectComplete(
  1371.                         [in] Error* pError, 
  1372.                         [in, out] EventStatusEnum* adStatus, 
  1373.                         [in] _Connection* pConnection);
  1374.         [id(0x00000008)]
  1375.         HRESULT Disconnect(
  1376.                         [in, out] EventStatusEnum* adStatus, 
  1377.                         [in] _Connection* pConnection);
  1378. };
  1379.  
  1380. [
  1381.   uuid(00000266-0000-0010-8000-00AA006D2EA4)
  1382. ]
  1383. dispinterface RecordsetEvents {
  1384.     properties:
  1385.     methods:
  1386.         [id(0x00000009)]
  1387.         HRESULT WillChangeField(
  1388.                         [in] long cFields, 
  1389.                         [in] VARIANT Fields, 
  1390.                         [in, out] EventStatusEnum* adStatus, 
  1391.                         [in] _Recordset* pRecordset);
  1392.         [id(0x0000000a)]
  1393.         HRESULT FieldChangeComplete(
  1394.                         [in] long cFields, 
  1395.                         [in] VARIANT Fields, 
  1396.                         [in] Error* pError, 
  1397.                         [in, out] EventStatusEnum* adStatus, 
  1398.                         [in] _Recordset* pRecordset);
  1399.         [id(0x0000000b)]
  1400.         HRESULT WillChangeRecord(
  1401.                         [in] EventReasonEnum adReason, 
  1402.                         [in] long cRecords, 
  1403.                         [in, out] EventStatusEnum* adStatus, 
  1404.                         [in] _Recordset* pRecordset);
  1405.         [id(0x0000000c)]
  1406.         HRESULT RecordChangeComplete(
  1407.                         [in] EventReasonEnum adReason, 
  1408.                         [in] long cRecords, 
  1409.                         [in] Error* pError, 
  1410.                         [in, out] EventStatusEnum* adStatus, 
  1411.                         [in] _Recordset* pRecordset);
  1412.         [id(0x0000000d)]
  1413.         HRESULT WillChangeRecordset(
  1414.                         [in] EventReasonEnum adReason, 
  1415.                         [in, out] EventStatusEnum* adStatus, 
  1416.                         [in] _Recordset* pRecordset);
  1417.         [id(0x0000000e)]
  1418.         HRESULT RecordsetChangeComplete(
  1419.                         [in] EventReasonEnum adReason, 
  1420.                         [in] Error* pError, 
  1421.                         [in, out] EventStatusEnum* adStatus, 
  1422.                         [in] _Recordset* pRecordset);
  1423.         [id(0x0000000f)]
  1424.         HRESULT WillMove(
  1425.                         [in] EventReasonEnum adReason, 
  1426.                         [in, out] EventStatusEnum* adStatus, 
  1427.                         [in] _Recordset* pRecordset);
  1428.         [id(0x00000010)]
  1429.         HRESULT MoveComplete(
  1430.                         [in] EventReasonEnum adReason, 
  1431.                         [in] Error* pError, 
  1432.                         [in, out] EventStatusEnum* adStatus, 
  1433.                         [in] _Recordset* pRecordset);
  1434.         [id(0x00000011)]
  1435.         HRESULT EndOfRecordset(
  1436.                         [in, out] VARIANT_BOOL* fMoreData, 
  1437.                         [in, out] EventStatusEnum* adStatus, 
  1438.                         [in] _Recordset* pRecordset);
  1439.         [id(0x00000012)]
  1440.         HRESULT FetchProgress(
  1441.                         [in] long Progress, 
  1442.                         [in] long MaxProgress, 
  1443.                         [in, out] EventStatusEnum* adStatus, 
  1444.                         [in] _Recordset* pRecordset);
  1445.         [id(0x00000013)]
  1446.         HRESULT FetchComplete(
  1447.                         [in] Error* pError, 
  1448.                         [in, out] EventStatusEnum* adStatus, 
  1449.                         [in] _Recordset* pRecordset);
  1450. };
  1451.  
  1452. [
  1453.   odl,
  1454.   uuid(00000516-0000-0010-8000-00AA006D2EA4),
  1455.   restricted
  1456. ]
  1457. interface ADOConnectionConstruction15 : IUnknown {
  1458.     [propget]
  1459.     HRESULT _stdcall DSO([out, retval] IUnknown** ppDSO);
  1460.     [propget]
  1461.     HRESULT _stdcall Session([out, retval] IUnknown** ppSession);
  1462.     HRESULT _stdcall WrapDSOandSession(
  1463.                     [in] IUnknown* pDSO, 
  1464.                     [in] IUnknown* pSession);
  1465. };
  1466.  
  1467. [
  1468.   odl,
  1469.   uuid(00000551-0000-0010-8000-00AA006D2EA4),
  1470.   restricted
  1471. ]
  1472. interface ADOConnectionConstruction : ADOConnectionConstruction15 {
  1473. };
  1474.  
  1475. [
  1476.   odl,
  1477.   uuid(00000283-0000-0010-8000-00AA006D2EA4),
  1478.   restricted
  1479. ]
  1480. interface ADORecordsetConstruction : IDispatch {
  1481.     [propget]
  1482.     HRESULT _stdcall Rowset([out, retval] IUnknown** ppRowset);
  1483.     [propput]
  1484.     HRESULT _stdcall Rowset([in] IUnknown* ppRowset);
  1485.     [propget]
  1486.     HRESULT _stdcall Chapter([out, retval] long* plChapter);
  1487.     [propput]
  1488.     HRESULT _stdcall Chapter([in] long plChapter);
  1489.     [propget]
  1490.     HRESULT _stdcall RowPosition([out, retval] IUnknown** ppRowPos);
  1491.     [propput]
  1492.     HRESULT _stdcall RowPosition([in] IUnknown* ppRowPos);
  1493. };
  1494.  
  1495. [
  1496.   odl,
  1497.   uuid(00000517-0000-0010-8000-00AA006D2EA4),
  1498.   restricted
  1499. ]
  1500. interface ADOCommandConstruction : IUnknown {
  1501.     [propget]
  1502.     HRESULT _stdcall OLEDBCommand([out, retval] IUnknown** ppOLEDBCommand);
  1503.     [propput]
  1504.     HRESULT _stdcall OLEDBCommand([in] IUnknown* ppOLEDBCommand);
  1505. };
  1506.  
  1507.  
  1508. #ifdef INCLUDE_ADODB_MODULE
  1509. [
  1510.   uuid(00000200-0000-0010-8000-00AA006D2EA4),
  1511.   version(2.0),  // this is typelib version, not product version
  1512.   helpstring("Microsoft ActiveX Data Objects 2.1 Library")
  1513. ]
  1514. library ADODB
  1515. {
  1516.     // TLib : OLE Automation : {00020430-0000-0000-C000-000000000046}
  1517.     importlib("stdole2.tlb");
  1518.  
  1519.     [
  1520.       uuid(00000514-0000-0010-8000-00AA006D2EA4),
  1521.       licensed
  1522.     ]
  1523.     coclass Connection {
  1524.         [default] interface _Connection;
  1525.         [default, source] dispinterface ConnectionEvents;
  1526.     };
  1527.  
  1528.     [
  1529.       uuid(00000507-0000-0010-8000-00AA006D2EA4),
  1530.       licensed
  1531.     ]
  1532.     coclass Command {
  1533.         [default] interface _Command;
  1534.     };
  1535.  
  1536.     [
  1537.       uuid(00000535-0000-0010-8000-00AA006D2EA4),
  1538.       licensed
  1539.     ]
  1540.     coclass Recordset {
  1541.         [default] interface _Recordset;
  1542.         [default, source] dispinterface RecordsetEvents;
  1543.     };
  1544.  
  1545.     [
  1546.       uuid(0000050B-0000-0010-8000-00AA006D2EA4),
  1547.       licensed
  1548.     ]
  1549.     coclass Parameter {
  1550.         [default] interface _Parameter;
  1551.     };
  1552. };
  1553. #endif