msado15.tlh
上传用户:lqt88888
上传日期:2009-12-14
资源大小:905k
文件大小:69k
源码类别:

书籍源码

开发平台:

Visual C++

  1. // Created by Microsoft (R) C/C++ Compiler Version 12.00.8168.0 (f291607b).
  2. //
  3. // msado15.tlh
  4. //
  5. // C++ source equivalent of Win32 type library c:Program FilesCommon FilesSystemADOmsado15.dll
  6. // compiler-generated file created 06/08/02 at 11:47:36 - DO NOT EDIT!
  7. #pragma once
  8. #pragma pack(push, 8)
  9. #include <comdef.h>
  10. //
  11. // Forward references and typedefs
  12. //
  13. typedef enum SearchDirectionEnum SearchDirection;
  14. struct __declspec(uuid("00000512-0000-0010-8000-00aa006d2ea4"))
  15. /* dual interface */ _Collection;
  16. struct __declspec(uuid("00000513-0000-0010-8000-00aa006d2ea4"))
  17. /* dual interface */ _DynaCollection;
  18. struct __declspec(uuid("00000534-0000-0010-8000-00aa006d2ea4"))
  19. /* dual interface */ _ADO;
  20. struct __declspec(uuid("00000504-0000-0010-8000-00aa006d2ea4"))
  21. /* dual interface */ Properties;
  22. struct __declspec(uuid("00000503-0000-0010-8000-00aa006d2ea4"))
  23. /* dual interface */ Property;
  24. struct __declspec(uuid("00000500-0000-0010-8000-00aa006d2ea4"))
  25. /* dual interface */ Error;
  26. struct __declspec(uuid("00000501-0000-0010-8000-00aa006d2ea4"))
  27. /* dual interface */ Errors;
  28. struct __declspec(uuid("00000508-0000-0010-8000-00aa006d2ea4"))
  29. /* dual interface */ Command15;
  30. struct __declspec(uuid("00000550-0000-0010-8000-00aa006d2ea4"))
  31. /* dual interface */ _Connection;
  32. struct __declspec(uuid("00000515-0000-0010-8000-00aa006d2ea4"))
  33. /* dual interface */ Connection15;
  34. struct __declspec(uuid("00000555-0000-0010-8000-00aa006d2ea4"))
  35. /* dual interface */ _Recordset;
  36. struct __declspec(uuid("0000054f-0000-0010-8000-00aa006d2ea4"))
  37. /* dual interface */ Recordset20;
  38. struct __declspec(uuid("0000050e-0000-0010-8000-00aa006d2ea4"))
  39. /* dual interface */ Recordset15;
  40. struct __declspec(uuid("0000054d-0000-0010-8000-00aa006d2ea4"))
  41. /* dual interface */ Fields;
  42. struct __declspec(uuid("00000506-0000-0010-8000-00aa006d2ea4"))
  43. /* dual interface */ Fields15;
  44. struct __declspec(uuid("0000054c-0000-0010-8000-00aa006d2ea4"))
  45. /* dual interface */ Field;
  46. struct __declspec(uuid("0000050c-0000-0010-8000-00aa006d2ea4"))
  47. /* dual interface */ _Parameter;
  48. struct __declspec(uuid("0000050d-0000-0010-8000-00aa006d2ea4"))
  49. /* dual interface */ Parameters;
  50. struct __declspec(uuid("0000054e-0000-0010-8000-00aa006d2ea4"))
  51. /* dual interface */ _Command;
  52. struct __declspec(uuid("00000402-0000-0010-8000-00aa006d2ea4"))
  53. /* interface */ ConnectionEventsVt;
  54. struct __declspec(uuid("00000403-0000-0010-8000-00aa006d2ea4"))
  55. /* interface */ RecordsetEventsVt;
  56. struct __declspec(uuid("00000400-0000-0010-8000-00aa006d2ea4"))
  57. /* dispinterface */ ConnectionEvents;
  58. struct __declspec(uuid("00000266-0000-0010-8000-00aa006d2ea4"))
  59. /* dispinterface */ RecordsetEvents;
  60. struct __declspec(uuid("00000516-0000-0010-8000-00aa006d2ea4"))
  61. /* interface */ ADOConnectionConstruction15;
  62. struct __declspec(uuid("00000551-0000-0010-8000-00aa006d2ea4"))
  63. /* interface */ ADOConnectionConstruction;
  64. struct /* coclass */ Connection;
  65. struct __declspec(uuid("00000517-0000-0010-8000-00aa006d2ea4"))
  66. /* interface */ ADOCommandConstruction;
  67. struct /* coclass */ Command;
  68. struct /* coclass */ Recordset;
  69. struct __declspec(uuid("00000283-0000-0010-8000-00aa006d2ea4"))
  70. /* interface */ ADORecordsetConstruction;
  71. struct __declspec(uuid("00000505-0000-0010-8000-00aa006d2ea4"))
  72. /* dual interface */ Field15;
  73. struct /* coclass */ Parameter;
  74. //
  75. // Smart pointer typedef declarations
  76. //
  77. _COM_SMARTPTR_TYPEDEF(_Collection, __uuidof(_Collection));
  78. _COM_SMARTPTR_TYPEDEF(_DynaCollection, __uuidof(_DynaCollection));
  79. _COM_SMARTPTR_TYPEDEF(_ADO, __uuidof(_ADO));
  80. _COM_SMARTPTR_TYPEDEF(Properties, __uuidof(Properties));
  81. _COM_SMARTPTR_TYPEDEF(Property, __uuidof(Property));
  82. _COM_SMARTPTR_TYPEDEF(Error, __uuidof(Error));
  83. _COM_SMARTPTR_TYPEDEF(Errors, __uuidof(Errors));
  84. _COM_SMARTPTR_TYPEDEF(Command15, __uuidof(Command15));
  85. _COM_SMARTPTR_TYPEDEF(Connection15, __uuidof(Connection15));
  86. _COM_SMARTPTR_TYPEDEF(_Connection, __uuidof(_Connection));
  87. _COM_SMARTPTR_TYPEDEF(Recordset15, __uuidof(Recordset15));
  88. _COM_SMARTPTR_TYPEDEF(Recordset20, __uuidof(Recordset20));
  89. _COM_SMARTPTR_TYPEDEF(_Recordset, __uuidof(_Recordset));
  90. _COM_SMARTPTR_TYPEDEF(Fields15, __uuidof(Fields15));
  91. _COM_SMARTPTR_TYPEDEF(Fields, __uuidof(Fields));
  92. _COM_SMARTPTR_TYPEDEF(Field, __uuidof(Field));
  93. _COM_SMARTPTR_TYPEDEF(_Parameter, __uuidof(_Parameter));
  94. _COM_SMARTPTR_TYPEDEF(Parameters, __uuidof(Parameters));
  95. _COM_SMARTPTR_TYPEDEF(_Command, __uuidof(_Command));
  96. _COM_SMARTPTR_TYPEDEF(ConnectionEventsVt, __uuidof(ConnectionEventsVt));
  97. _COM_SMARTPTR_TYPEDEF(RecordsetEventsVt, __uuidof(RecordsetEventsVt));
  98. _COM_SMARTPTR_TYPEDEF(ConnectionEvents, __uuidof(IDispatch));
  99. _COM_SMARTPTR_TYPEDEF(RecordsetEvents, __uuidof(IDispatch));
  100. _COM_SMARTPTR_TYPEDEF(ADOConnectionConstruction15, __uuidof(ADOConnectionConstruction15));
  101. _COM_SMARTPTR_TYPEDEF(ADOConnectionConstruction, __uuidof(ADOConnectionConstruction));
  102. _COM_SMARTPTR_TYPEDEF(ADOCommandConstruction, __uuidof(ADOCommandConstruction));
  103. _COM_SMARTPTR_TYPEDEF(ADORecordsetConstruction, __uuidof(ADORecordsetConstruction));
  104. _COM_SMARTPTR_TYPEDEF(Field15, __uuidof(Field15));
  105. //
  106. // Type library items
  107. //
  108. enum CursorTypeEnum
  109. {
  110.     adOpenUnspecified = -1,
  111.     adOpenForwardOnly = 0,
  112.     adOpenKeyset = 1,
  113.     adOpenDynamic = 2,
  114.     adOpenStatic = 3
  115. };
  116. enum CursorOptionEnum
  117. {
  118.     adHoldRecords = 256,
  119.     adMovePrevious = 512,
  120.     adAddNew = 16778240,
  121.     adDelete = 16779264,
  122.     adUpdate = 16809984,
  123.     adBookmark = 8192,
  124.     adApproxPosition = 16384,
  125.     adUpdateBatch = 65536,
  126.     adResync = 131072,
  127.     adNotify = 262144,
  128.     adFind = 524288,
  129.     adSeek = 4194304,
  130.     adIndex = 8388608
  131. };
  132. enum LockTypeEnum
  133. {
  134.     adLockUnspecified = -1,
  135.     adLockReadOnly = 1,
  136.     adLockPessimistic = 2,
  137.     adLockOptimistic = 3,
  138.     adLockBatchOptimistic = 4
  139. };
  140. enum ExecuteOptionEnum
  141. {
  142.     adOptionUnspecified = -1,
  143.     adAsyncExecute = 16,
  144.     adAsyncFetch = 32,
  145.     adAsyncFetchNonBlocking = 64,
  146.     adExecuteNoRecords = 128
  147. };
  148. enum ConnectOptionEnum
  149. {
  150.     adConnectUnspecified = -1,
  151.     adAsyncConnect = 16
  152. };
  153. enum ObjectStateEnum
  154. {
  155.     adStateClosed = 0,
  156.     adStateOpen = 1,
  157.     adStateConnecting = 2,
  158.     adStateExecuting = 4,
  159.     adStateFetching = 8
  160. };
  161. enum CursorLocationEnum
  162. {
  163.     adUseNone = 1,
  164.     adUseServer = 2,
  165.     adUseClient = 3,
  166.     adUseClientBatch = 3
  167. };
  168. enum DataTypeEnum
  169. {
  170.     adEmpty = 0,
  171.     adTinyInt = 16,
  172.     adSmallInt = 2,
  173.     adInteger = 3,
  174.     adBigInt = 20,
  175.     adUnsignedTinyInt = 17,
  176.     adUnsignedSmallInt = 18,
  177.     adUnsignedInt = 19,
  178.     adUnsignedBigInt = 21,
  179.     adSingle = 4,
  180.     adDouble = 5,
  181.     adCurrency = 6,
  182.     adDecimal = 14,
  183.     adNumeric = 131,
  184.     adBoolean = 11,
  185.     adError = 10,
  186.     adUserDefined = 132,
  187.     adVariant = 12,
  188.     adIDispatch = 9,
  189.     adIUnknown = 13,
  190.     adGUID = 72,
  191.     adDate = 7,
  192.     adDBDate = 133,
  193.     adDBTime = 134,
  194.     adDBTimeStamp = 135,
  195.     adBSTR = 8,
  196.     adChar = 129,
  197.     adVarChar = 200,
  198.     adLongVarChar = 201,
  199.     adWChar = 130,
  200.     adVarWChar = 202,
  201.     adLongVarWChar = 203,
  202.     adBinary = 128,
  203.     adVarBinary = 204,
  204.     adLongVarBinary = 205,
  205.     adChapter = 136,
  206.     adFileTime = 64,
  207.     adDBFileTime = 137,
  208.     adPropVariant = 138,
  209.     adVarNumeric = 139
  210. };
  211. enum FieldAttributeEnum
  212. {
  213.     adFldUnspecified = -1,
  214.     adFldMayDefer = 2,
  215.     adFldUpdatable = 4,
  216.     adFldUnknownUpdatable = 8,
  217.     adFldFixed = 16,
  218.     adFldIsNullable = 32,
  219.     adFldMayBeNull = 64,
  220.     adFldLong = 128,
  221.     adFldRowID = 256,
  222.     adFldRowVersion = 512,
  223.     adFldCacheDeferred = 4096,
  224.     adFldNegativeScale = 16384,
  225.     adFldKeyColumn = 32768
  226. };
  227. enum EditModeEnum
  228. {
  229.     adEditNone = 0,
  230.     adEditInProgress = 1,
  231.     adEditAdd = 2,
  232.     adEditDelete = 4
  233. };
  234. enum RecordStatusEnum
  235. {
  236.     adRecOK = 0,
  237.     adRecNew = 1,
  238.     adRecModified = 2,
  239.     adRecDeleted = 4,
  240.     adRecUnmodified = 8,
  241.     adRecInvalid = 16,
  242.     adRecMultipleChanges = 64,
  243.     adRecPendingChanges = 128,
  244.     adRecCanceled = 256,
  245.     adRecCantRelease = 1024,
  246.     adRecConcurrencyViolation = 2048,
  247.     adRecIntegrityViolation = 4096,
  248.     adRecMaxChangesExceeded = 8192,
  249.     adRecObjectOpen = 16384,
  250.     adRecOutOfMemory = 32768,
  251.     adRecPermissionDenied = 65536,
  252.     adRecSchemaViolation = 131072,
  253.     adRecDBDeleted = 262144
  254. };
  255. enum GetRowsOptionEnum
  256. {
  257.     adGetRowsRest = -1
  258. };
  259. enum PositionEnum
  260. {
  261.     adPosUnknown = -1,
  262.     adPosBOF = -2,
  263.     adPosEOF = -3
  264. };
  265. enum BookmarkEnum
  266. {
  267.     adBookmarkCurrent = 0,
  268.     adBookmarkFirst = 1,
  269.     adBookmarkLast = 2
  270. };
  271. enum MarshalOptionsEnum
  272. {
  273.     adMarshalAll = 0,
  274.     adMarshalModifiedOnly = 1
  275. };
  276. enum AffectEnum
  277. {
  278.     adAffectCurrent = 1,
  279.     adAffectGroup = 2,
  280.     adAffectAll = 3,
  281.     adAffectAllChapters = 4
  282. };
  283. enum ResyncEnum
  284. {
  285.     adResyncUnderlyingValues = 1,
  286.     adResyncAllValues = 2
  287. };
  288. enum CompareEnum
  289. {
  290.     adCompareLessThan = 0,
  291.     adCompareEqual = 1,
  292.     adCompareGreaterThan = 2,
  293.     adCompareNotEqual = 3,
  294.     adCompareNotComparable = 4
  295. };
  296. enum FilterGroupEnum
  297. {
  298.     adFilterNone = 0,
  299.     adFilterPendingRecords = 1,
  300.     adFilterAffectedRecords = 2,
  301.     adFilterFetchedRecords = 3,
  302.     adFilterPredicate = 4,
  303.     adFilterConflictingRecords = 5
  304. };
  305. enum SearchDirectionEnum
  306. {
  307.     adSearchForward = 1,
  308.     adSearchBackward = -1
  309. };
  310. enum PersistFormatEnum
  311. {
  312.     adPersistADTG = 0,
  313.     adPersistXML = 1
  314. };
  315. enum StringFormatEnum
  316. {
  317.     adClipString = 2
  318. };
  319. enum ConnectPromptEnum
  320. {
  321.     adPromptAlways = 1,
  322.     adPromptComplete = 2,
  323.     adPromptCompleteRequired = 3,
  324.     adPromptNever = 4
  325. };
  326. enum ConnectModeEnum
  327. {
  328.     adModeUnknown = 0,
  329.     adModeRead = 1,
  330.     adModeWrite = 2,
  331.     adModeReadWrite = 3,
  332.     adModeShareDenyRead = 4,
  333.     adModeShareDenyWrite = 8,
  334.     adModeShareExclusive = 12,
  335.     adModeShareDenyNone = 16
  336. };
  337. enum IsolationLevelEnum
  338. {
  339.     adXactUnspecified = -1,
  340.     adXactChaos = 16,
  341.     adXactReadUncommitted = 256,
  342.     adXactBrowse = 256,
  343.     adXactCursorStability = 4096,
  344.     adXactReadCommitted = 4096,
  345.     adXactRepeatableRead = 65536,
  346.     adXactSerializable = 1048576,
  347.     adXactIsolated = 1048576
  348. };
  349. enum XactAttributeEnum
  350. {
  351.     adXactCommitRetaining = 131072,
  352.     adXactAbortRetaining = 262144,
  353.     adXactAsyncPhaseOne = 524288,
  354.     adXactSyncPhaseOne = 1048576
  355. };
  356. enum PropertyAttributesEnum
  357. {
  358.     adPropNotSupported = 0,
  359.     adPropRequired = 1,
  360.     adPropOptional = 2,
  361.     adPropRead = 512,
  362.     adPropWrite = 1024
  363. };
  364. enum ErrorValueEnum
  365. {
  366.     adErrInvalidArgument = 3001,
  367.     adErrNoCurrentRecord = 3021,
  368.     adErrIllegalOperation = 3219,
  369.     adErrInTransaction = 3246,
  370.     adErrFeatureNotAvailable = 3251,
  371.     adErrItemNotFound = 3265,
  372.     adErrObjectInCollection = 3367,
  373.     adErrObjectNotSet = 3420,
  374.     adErrDataConversion = 3421,
  375.     adErrObjectClosed = 3704,
  376.     adErrObjectOpen = 3705,
  377.     adErrProviderNotFound = 3706,
  378.     adErrBoundToCommand = 3707,
  379.     adErrInvalidParamInfo = 3708,
  380.     adErrInvalidConnection = 3709,
  381.     adErrNotReentrant = 3710,
  382.     adErrStillExecuting = 3711,
  383.     adErrOperationCancelled = 3712,
  384.     adErrStillConnecting = 3713,
  385.     adErrNotExecuting = 3715,
  386.     adErrUnsafeOperation = 3716
  387. };
  388. enum ParameterAttributesEnum
  389. {
  390.     adParamSigned = 16,
  391.     adParamNullable = 64,
  392.     adParamLong = 128
  393. };
  394. enum ParameterDirectionEnum
  395. {
  396.     adParamUnknown = 0,
  397.     adParamInput = 1,
  398.     adParamOutput = 2,
  399.     adParamInputOutput = 3,
  400.     adParamReturnValue = 4
  401. };
  402. enum CommandTypeEnum
  403. {
  404.     adCmdUnspecified = -1,
  405.     adCmdUnknown = 8,
  406.     adCmdText = 1,
  407.     adCmdTable = 2,
  408.     adCmdStoredProc = 4,
  409.     adCmdFile = 256,
  410.     adCmdTableDirect = 512
  411. };
  412. enum EventStatusEnum
  413. {
  414.     adStatusOK = 1,
  415.     adStatusErrorsOccurred = 2,
  416.     adStatusCantDeny = 3,
  417.     adStatusCancel = 4,
  418.     adStatusUnwantedEvent = 5
  419. };
  420. enum EventReasonEnum
  421. {
  422.     adRsnAddNew = 1,
  423.     adRsnDelete = 2,
  424.     adRsnUpdate = 3,
  425.     adRsnUndoUpdate = 4,
  426.     adRsnUndoAddNew = 5,
  427.     adRsnUndoDelete = 6,
  428.     adRsnRequery = 7,
  429.     adRsnResynch = 8,
  430.     adRsnClose = 9,
  431.     adRsnMove = 10,
  432.     adRsnFirstChange = 11,
  433.     adRsnMoveFirst = 12,
  434.     adRsnMoveNext = 13,
  435.     adRsnMovePrevious = 14,
  436.     adRsnMoveLast = 15
  437. };
  438. enum SchemaEnum
  439. {
  440.     adSchemaProviderSpecific = -1,
  441.     adSchemaAsserts = 0,
  442.     adSchemaCatalogs = 1,
  443.     adSchemaCharacterSets = 2,
  444.     adSchemaCollations = 3,
  445.     adSchemaColumns = 4,
  446.     adSchemaCheckConstraints = 5,
  447.     adSchemaConstraintColumnUsage = 6,
  448.     adSchemaConstraintTableUsage = 7,
  449.     adSchemaKeyColumnUsage = 8,
  450.     adSchemaReferentialContraints = 9,
  451.     adSchemaReferentialConstraints = 9,
  452.     adSchemaTableConstraints = 10,
  453.     adSchemaColumnsDomainUsage = 11,
  454.     adSchemaIndexes = 12,
  455.     adSchemaColumnPrivileges = 13,
  456.     adSchemaTablePrivileges = 14,
  457.     adSchemaUsagePrivileges = 15,
  458.     adSchemaProcedures = 16,
  459.     adSchemaSchemata = 17,
  460.     adSchemaSQLLanguages = 18,
  461.     adSchemaStatistics = 19,
  462.     adSchemaTables = 20,
  463.     adSchemaTranslations = 21,
  464.     adSchemaProviderTypes = 22,
  465.     adSchemaViews = 23,
  466.     adSchemaViewColumnUsage = 24,
  467.     adSchemaViewTableUsage = 25,
  468.     adSchemaProcedureParameters = 26,
  469.     adSchemaForeignKeys = 27,
  470.     adSchemaPrimaryKeys = 28,
  471.     adSchemaProcedureColumns = 29,
  472.     adSchemaDBInfoKeywords = 30,
  473.     adSchemaDBInfoLiterals = 31,
  474.     adSchemaCubes = 32,
  475.     adSchemaDimensions = 33,
  476.     adSchemaHierarchies = 34,
  477.     adSchemaLevels = 35,
  478.     adSchemaMeasures = 36,
  479.     adSchemaProperties = 37,
  480.     adSchemaMembers = 38,
  481.     adSchemaTrustees = 39
  482. };
  483. enum SeekEnum
  484. {
  485.     adSeekFirstEQ = 1,
  486.     adSeekLastEQ = 2,
  487.     adSeekAfterEQ = 4,
  488.     adSeekAfter = 8,
  489.     adSeekBeforeEQ = 16,
  490.     adSeekBefore = 32
  491. };
  492. enum ADCPROP_UPDATECRITERIA_ENUM
  493. {
  494.     adCriteriaKey = 0,
  495.     adCriteriaAllCols = 1,
  496.     adCriteriaUpdCols = 2,
  497.     adCriteriaTimeStamp = 3
  498. };
  499. enum ADCPROP_ASYNCTHREADPRIORITY_ENUM
  500. {
  501.     adPriorityLowest = 1,
  502.     adPriorityBelowNormal = 2,
  503.     adPriorityNormal = 3,
  504.     adPriorityAboveNormal = 4,
  505.     adPriorityHighest = 5
  506. };
  507. enum CEResyncEnum
  508. {
  509.     adResyncNone = 0,
  510.     adResyncAutoIncrement = 1,
  511.     adResyncConflicts = 2,
  512.     adResyncUpdates = 4,
  513.     adResyncInserts = 8,
  514.     adResyncAll = 15
  515. };
  516. enum ADCPROP_AUTORECALC_ENUM
  517. {
  518.     adRecalcUpFront = 0,
  519.     adRecalcAlways = 1
  520. };
  521. struct __declspec(uuid("00000512-0000-0010-8000-00aa006d2ea4"))
  522. _Collection : IDispatch
  523. {
  524.     //
  525.     // Property data
  526.     //
  527.     __declspec(property(get=GetCount))
  528.     long Count;
  529.     //
  530.     // Wrapper methods for error-handling
  531.     //
  532.     long GetCount ( );
  533.     IUnknownPtr _NewEnum ( );
  534.     HRESULT Refresh ( );
  535.     //
  536.     // Raw methods provided by interface
  537.     //
  538.     virtual HRESULT __stdcall get_Count (
  539.         long * c ) = 0;
  540.     virtual HRESULT __stdcall raw__NewEnum (
  541.         IUnknown * * ppvObject ) = 0;
  542.     virtual HRESULT __stdcall raw_Refresh ( ) = 0;
  543. };
  544. struct __declspec(uuid("00000513-0000-0010-8000-00aa006d2ea4"))
  545. _DynaCollection : _Collection
  546. {
  547.     //
  548.     // Wrapper methods for error-handling
  549.     //
  550.     HRESULT Append (
  551.         IDispatch * Object );
  552.     HRESULT Delete (
  553.         const _variant_t & Index );
  554.     //
  555.     // Raw methods provided by interface
  556.     //
  557.     virtual HRESULT __stdcall raw_Append (
  558.         IDispatch * Object ) = 0;
  559.     virtual HRESULT __stdcall raw_Delete (
  560.         VARIANT Index ) = 0;
  561. };
  562. struct __declspec(uuid("00000534-0000-0010-8000-00aa006d2ea4"))
  563. _ADO : IDispatch
  564. {
  565.     //
  566.     // Property data
  567.     //
  568.     __declspec(property(get=GetProperties))
  569.     PropertiesPtr Properties;
  570.     //
  571.     // Wrapper methods for error-handling
  572.     //
  573.     PropertiesPtr GetProperties ( );
  574.     //
  575.     // Raw methods provided by interface
  576.     //
  577.     virtual HRESULT __stdcall get_Properties (
  578.         struct Properties * * ppvObject ) = 0;
  579. };
  580. struct __declspec(uuid("00000504-0000-0010-8000-00aa006d2ea4"))
  581. Properties : _Collection
  582. {
  583.     //
  584.     // Property data
  585.     //
  586.     __declspec(property(get=GetItem))
  587.     PropertyPtr Item[];
  588.     //
  589.     // Wrapper methods for error-handling
  590.     //
  591.     PropertyPtr GetItem (
  592.         const _variant_t & Index );
  593.     //
  594.     // Raw methods provided by interface
  595.     //
  596.     virtual HRESULT __stdcall get_Item (
  597.         VARIANT Index,
  598.         struct Property * * ppvObject ) = 0;
  599. };
  600. struct __declspec(uuid("00000503-0000-0010-8000-00aa006d2ea4"))
  601. Property : IDispatch
  602. {
  603.     //
  604.     // Property data
  605.     //
  606.     __declspec(property(get=GetValue,put=PutValue))
  607.     _variant_t Value;
  608.     __declspec(property(get=GetName))
  609.     _bstr_t Name;
  610.     __declspec(property(get=GetType))
  611.     enum DataTypeEnum Type;
  612.     __declspec(property(get=GetAttributes,put=PutAttributes))
  613.     long Attributes;
  614.     //
  615.     // Wrapper methods for error-handling
  616.     //
  617.     _variant_t GetValue ( );
  618.     void PutValue (
  619.         const _variant_t & pval );
  620.     _bstr_t GetName ( );
  621.     enum DataTypeEnum GetType ( );
  622.     long GetAttributes ( );
  623.     void PutAttributes (
  624.         long plAttributes );
  625.     //
  626.     // Raw methods provided by interface
  627.     //
  628.     virtual HRESULT __stdcall get_Value (
  629.         VARIANT * pval ) = 0;
  630.     virtual HRESULT __stdcall put_Value (
  631.         VARIANT pval ) = 0;
  632.     virtual HRESULT __stdcall get_Name (
  633.         BSTR * pbstr ) = 0;
  634.     virtual HRESULT __stdcall get_Type (
  635.         enum DataTypeEnum * ptype ) = 0;
  636.     virtual HRESULT __stdcall get_Attributes (
  637.         long * plAttributes ) = 0;
  638.     virtual HRESULT __stdcall put_Attributes (
  639.         long plAttributes ) = 0;
  640. };
  641. struct __declspec(uuid("00000500-0000-0010-8000-00aa006d2ea4"))
  642. Error : IDispatch
  643. {
  644.     //
  645.     // Property data
  646.     //
  647.     __declspec(property(get=GetNumber))
  648.     long Number;
  649.     __declspec(property(get=GetSource))
  650.     _bstr_t Source;
  651.     __declspec(property(get=GetDescription))
  652.     _bstr_t Description;
  653.     __declspec(property(get=GetHelpFile))
  654.     _bstr_t HelpFile;
  655.     __declspec(property(get=GetHelpContext))
  656.     long HelpContext;
  657.     __declspec(property(get=GetSQLState))
  658.     _bstr_t SQLState;
  659.     __declspec(property(get=GetNativeError))
  660.     long NativeError;
  661.     //
  662.     // Wrapper methods for error-handling
  663.     //
  664.     long GetNumber ( );
  665.     _bstr_t GetSource ( );
  666.     _bstr_t GetDescription ( );
  667.     _bstr_t GetHelpFile ( );
  668.     long GetHelpContext ( );
  669.     _bstr_t GetSQLState ( );
  670.     long GetNativeError ( );
  671.     //
  672.     // Raw methods provided by interface
  673.     //
  674.     virtual HRESULT __stdcall get_Number (
  675.         long * pl ) = 0;
  676.     virtual HRESULT __stdcall get_Source (
  677.         BSTR * pbstr ) = 0;
  678.     virtual HRESULT __stdcall get_Description (
  679.         BSTR * pbstr ) = 0;
  680.     virtual HRESULT __stdcall get_HelpFile (
  681.         BSTR * pbstr ) = 0;
  682.     virtual HRESULT __stdcall get_HelpContext (
  683.         long * pl ) = 0;
  684.     virtual HRESULT __stdcall get_SQLState (
  685.         BSTR * pbstr ) = 0;
  686.     virtual HRESULT __stdcall get_NativeError (
  687.         long * pl ) = 0;
  688. };
  689. struct __declspec(uuid("00000501-0000-0010-8000-00aa006d2ea4"))
  690. Errors : _Collection
  691. {
  692.     //
  693.     // Property data
  694.     //
  695.     __declspec(property(get=GetItem))
  696.     ErrorPtr Item[];
  697.     //
  698.     // Wrapper methods for error-handling
  699.     //
  700.     ErrorPtr GetItem (
  701.         const _variant_t & Index );
  702.     HRESULT Clear ( );
  703.     //
  704.     // Raw methods provided by interface
  705.     //
  706.     virtual HRESULT __stdcall get_Item (
  707.         VARIANT Index,
  708.         struct Error * * ppvObject ) = 0;
  709.     virtual HRESULT __stdcall raw_Clear ( ) = 0;
  710. };
  711. struct __declspec(uuid("00000508-0000-0010-8000-00aa006d2ea4"))
  712. Command15 : _ADO
  713. {
  714.     //
  715.     // Property data
  716.     //
  717.     __declspec(property(get=GetActiveConnection,put=PutRefActiveConnection))
  718.     _ConnectionPtr ActiveConnection;
  719.     __declspec(property(get=GetParameters))
  720.     ParametersPtr Parameters;
  721.     __declspec(property(get=GetCommandText,put=PutCommandText))
  722.     _bstr_t CommandText;
  723.     __declspec(property(get=GetCommandTimeout,put=PutCommandTimeout))
  724.     long CommandTimeout;
  725.     __declspec(property(get=GetPrepared,put=PutPrepared))
  726.     VARIANT_BOOL Prepared;
  727.     __declspec(property(get=GetCommandType,put=PutCommandType))
  728.     enum CommandTypeEnum CommandType;
  729.     __declspec(property(get=GetName,put=PutName))
  730.     _bstr_t Name;
  731.     //
  732.     // Wrapper methods for error-handling
  733.     //
  734.     _ConnectionPtr GetActiveConnection ( );
  735.     void PutRefActiveConnection (
  736.         struct _Connection * ppvObject );
  737.     void PutActiveConnection (
  738.         const _variant_t & ppvObject );
  739.     _bstr_t GetCommandText ( );
  740.     void PutCommandText (
  741.         _bstr_t pbstr );
  742.     long GetCommandTimeout ( );
  743.     void PutCommandTimeout (
  744.         long pl );
  745.     VARIANT_BOOL GetPrepared ( );
  746.     void PutPrepared (
  747.         VARIANT_BOOL pfPrepared );
  748.     _RecordsetPtr Execute (
  749.         VARIANT * RecordsAffected,
  750.         VARIANT * Parameters,
  751.         long Options );
  752.     _ParameterPtr CreateParameter (
  753.         _bstr_t Name,
  754.         enum DataTypeEnum Type,
  755.         enum ParameterDirectionEnum Direction,
  756.         long Size,
  757.         const _variant_t & Value = vtMissing );
  758.     ParametersPtr GetParameters ( );
  759.     void PutCommandType (
  760.         enum CommandTypeEnum plCmdType );
  761.     enum CommandTypeEnum GetCommandType ( );
  762.     _bstr_t GetName ( );
  763.     void PutName (
  764.         _bstr_t pbstrName );
  765.     //
  766.     // Raw methods provided by interface
  767.     //
  768.     virtual HRESULT __stdcall get_ActiveConnection (
  769.         struct _Connection * * ppvObject ) = 0;
  770.     virtual HRESULT __stdcall putref_ActiveConnection (
  771.         struct _Connection * ppvObject ) = 0;
  772.     virtual HRESULT __stdcall put_ActiveConnection (
  773.         VARIANT ppvObject ) = 0;
  774.     virtual HRESULT __stdcall get_CommandText (
  775.         BSTR * pbstr ) = 0;
  776.     virtual HRESULT __stdcall put_CommandText (
  777.         BSTR pbstr ) = 0;
  778.     virtual HRESULT __stdcall get_CommandTimeout (
  779.         long * pl ) = 0;
  780.     virtual HRESULT __stdcall put_CommandTimeout (
  781.         long pl ) = 0;
  782.     virtual HRESULT __stdcall get_Prepared (
  783.         VARIANT_BOOL * pfPrepared ) = 0;
  784.     virtual HRESULT __stdcall put_Prepared (
  785.         VARIANT_BOOL pfPrepared ) = 0;
  786.     virtual HRESULT __stdcall raw_Execute (
  787.         VARIANT * RecordsAffected,
  788.         VARIANT * Parameters,
  789.         long Options,
  790.         struct _Recordset * * ppiRs ) = 0;
  791.     virtual HRESULT __stdcall raw_CreateParameter (
  792.         BSTR Name,
  793.         enum DataTypeEnum Type,
  794.         enum ParameterDirectionEnum Direction,
  795.         long Size,
  796.         VARIANT Value,
  797.         struct _Parameter * * ppiprm ) = 0;
  798.     virtual HRESULT __stdcall get_Parameters (
  799.         struct Parameters * * ppvObject ) = 0;
  800.     virtual HRESULT __stdcall put_CommandType (
  801.         enum CommandTypeEnum plCmdType ) = 0;
  802.     virtual HRESULT __stdcall get_CommandType (
  803.         enum CommandTypeEnum * plCmdType ) = 0;
  804.     virtual HRESULT __stdcall get_Name (
  805.         BSTR * pbstrName ) = 0;
  806.     virtual HRESULT __stdcall put_Name (
  807.         BSTR pbstrName ) = 0;
  808. };
  809. struct __declspec(uuid("00000515-0000-0010-8000-00aa006d2ea4"))
  810. Connection15 : _ADO
  811. {
  812.     //
  813.     // Property data
  814.     //
  815.     __declspec(property(get=GetConnectionString,put=PutConnectionString))
  816.     _bstr_t ConnectionString;
  817.     __declspec(property(get=GetCommandTimeout,put=PutCommandTimeout))
  818.     long CommandTimeout;
  819.     __declspec(property(get=GetConnectionTimeout,put=PutConnectionTimeout))
  820.     long ConnectionTimeout;
  821.     __declspec(property(get=GetVersion))
  822.     _bstr_t Version;
  823.     __declspec(property(get=GetErrors))
  824.     ErrorsPtr Errors;
  825.     __declspec(property(get=GetDefaultDatabase,put=PutDefaultDatabase))
  826.     _bstr_t DefaultDatabase;
  827.     __declspec(property(get=GetIsolationLevel,put=PutIsolationLevel))
  828.     enum IsolationLevelEnum IsolationLevel;
  829.     __declspec(property(get=GetAttributes,put=PutAttributes))
  830.     long Attributes;
  831.     __declspec(property(get=GetCursorLocation,put=PutCursorLocation))
  832.     enum CursorLocationEnum CursorLocation;
  833.     __declspec(property(get=GetMode,put=PutMode))
  834.     enum ConnectModeEnum Mode;
  835.     __declspec(property(get=GetProvider,put=PutProvider))
  836.     _bstr_t Provider;
  837.     __declspec(property(get=GetState))
  838.     long State;
  839.     //
  840.     // Wrapper methods for error-handling
  841.     //
  842.     _bstr_t GetConnectionString ( );
  843.     void PutConnectionString (
  844.         _bstr_t pbstr );
  845.     long GetCommandTimeout ( );
  846.     void PutCommandTimeout (
  847.         long plTimeout );
  848.     long GetConnectionTimeout ( );
  849.     void PutConnectionTimeout (
  850.         long plTimeout );
  851.     _bstr_t GetVersion ( );
  852.     HRESULT Close ( );
  853.     _RecordsetPtr Execute (
  854.         _bstr_t CommandText,
  855.         VARIANT * RecordsAffected,
  856.         long Options );
  857.     long BeginTrans ( );
  858.     HRESULT CommitTrans ( );
  859.     HRESULT RollbackTrans ( );
  860.     HRESULT Open (
  861.         _bstr_t ConnectionString,
  862.         _bstr_t UserID,
  863.         _bstr_t Password,
  864.         long Options );
  865.     ErrorsPtr GetErrors ( );
  866.     _bstr_t GetDefaultDatabase ( );
  867.     void PutDefaultDatabase (
  868.         _bstr_t pbstr );
  869.     enum IsolationLevelEnum GetIsolationLevel ( );
  870.     void PutIsolationLevel (
  871.         enum IsolationLevelEnum Level );
  872.     long GetAttributes ( );
  873.     void PutAttributes (
  874.         long plAttr );
  875.     enum CursorLocationEnum GetCursorLocation ( );
  876.     void PutCursorLocation (
  877.         enum CursorLocationEnum plCursorLoc );
  878.     enum ConnectModeEnum GetMode ( );
  879.     void PutMode (
  880.         enum ConnectModeEnum plMode );
  881.     _bstr_t GetProvider ( );
  882.     void PutProvider (
  883.         _bstr_t pbstr );
  884.     long GetState ( );
  885.     _RecordsetPtr OpenSchema (
  886.         enum SchemaEnum Schema,
  887.         const _variant_t & Restrictions = vtMissing,
  888.         const _variant_t & SchemaID = vtMissing );
  889.     //
  890.     // Raw methods provided by interface
  891.     //
  892.     virtual HRESULT __stdcall get_ConnectionString (
  893.         BSTR * pbstr ) = 0;
  894.     virtual HRESULT __stdcall put_ConnectionString (
  895.         BSTR pbstr ) = 0;
  896.     virtual HRESULT __stdcall get_CommandTimeout (
  897.         long * plTimeout ) = 0;
  898.     virtual HRESULT __stdcall put_CommandTimeout (
  899.         long plTimeout ) = 0;
  900.     virtual HRESULT __stdcall get_ConnectionTimeout (
  901.         long * plTimeout ) = 0;
  902.     virtual HRESULT __stdcall put_ConnectionTimeout (
  903.         long plTimeout ) = 0;
  904.     virtual HRESULT __stdcall get_Version (
  905.         BSTR * pbstr ) = 0;
  906.     virtual HRESULT __stdcall raw_Close ( ) = 0;
  907.     virtual HRESULT __stdcall raw_Execute (
  908.         BSTR CommandText,
  909.         VARIANT * RecordsAffected,
  910.         long Options,
  911.         struct _Recordset * * ppiRset ) = 0;
  912.     virtual HRESULT __stdcall raw_BeginTrans (
  913.         long * TransactionLevel ) = 0;
  914.     virtual HRESULT __stdcall raw_CommitTrans ( ) = 0;
  915.     virtual HRESULT __stdcall raw_RollbackTrans ( ) = 0;
  916.     virtual HRESULT __stdcall raw_Open (
  917.         BSTR ConnectionString,
  918.         BSTR UserID,
  919.         BSTR Password,
  920.         long Options ) = 0;
  921.     virtual HRESULT __stdcall get_Errors (
  922.         struct Errors * * ppvObject ) = 0;
  923.     virtual HRESULT __stdcall get_DefaultDatabase (
  924.         BSTR * pbstr ) = 0;
  925.     virtual HRESULT __stdcall put_DefaultDatabase (
  926.         BSTR pbstr ) = 0;
  927.     virtual HRESULT __stdcall get_IsolationLevel (
  928.         enum IsolationLevelEnum * Level ) = 0;
  929.     virtual HRESULT __stdcall put_IsolationLevel (
  930.         enum IsolationLevelEnum Level ) = 0;
  931.     virtual HRESULT __stdcall get_Attributes (
  932.         long * plAttr ) = 0;
  933.     virtual HRESULT __stdcall put_Attributes (
  934.         long plAttr ) = 0;
  935.     virtual HRESULT __stdcall get_CursorLocation (
  936.         enum CursorLocationEnum * plCursorLoc ) = 0;
  937.     virtual HRESULT __stdcall put_CursorLocation (
  938.         enum CursorLocationEnum plCursorLoc ) = 0;
  939.     virtual HRESULT __stdcall get_Mode (
  940.         enum ConnectModeEnum * plMode ) = 0;
  941.     virtual HRESULT __stdcall put_Mode (
  942.         enum ConnectModeEnum plMode ) = 0;
  943.     virtual HRESULT __stdcall get_Provider (
  944.         BSTR * pbstr ) = 0;
  945.     virtual HRESULT __stdcall put_Provider (
  946.         BSTR pbstr ) = 0;
  947.     virtual HRESULT __stdcall get_State (
  948.         long * plObjState ) = 0;
  949.     virtual HRESULT __stdcall raw_OpenSchema (
  950.         enum SchemaEnum Schema,
  951.         VARIANT Restrictions,
  952.         VARIANT SchemaID,
  953.         struct _Recordset * * pprset ) = 0;
  954. };
  955. struct __declspec(uuid("00000550-0000-0010-8000-00aa006d2ea4"))
  956. _Connection : Connection15
  957. {
  958.     //
  959.     // Wrapper methods for error-handling
  960.     //
  961.     HRESULT Cancel ( );
  962.     //
  963.     // Raw methods provided by interface
  964.     //
  965.     virtual HRESULT __stdcall raw_Cancel ( ) = 0;
  966. };
  967. struct __declspec(uuid("0000050e-0000-0010-8000-00aa006d2ea4"))
  968. Recordset15 : _ADO
  969. {
  970.     //
  971.     // Property data
  972.     //
  973.     __declspec(property(get=GetFields))
  974.     FieldsPtr Fields;
  975.     __declspec(property(get=GetPageSize,put=PutPageSize))
  976.     long PageSize;
  977.     __declspec(property(get=GetPageCount))
  978.     long PageCount;
  979.     __declspec(property(get=GetCursorLocation,put=PutCursorLocation))
  980.     enum CursorLocationEnum CursorLocation;
  981.     __declspec(property(get=GetState))
  982.     long State;
  983.     __declspec(property(get=GetMarshalOptions,put=PutMarshalOptions))
  984.     enum MarshalOptionsEnum MarshalOptions;
  985.     __declspec(property(get=GetCollect,put=PutCollect))
  986.     _variant_t Collect[];
  987.     __declspec(property(get=GetEditMode))
  988.     enum EditModeEnum EditMode;
  989.     __declspec(property(get=GetStatus))
  990.     long Status;
  991.     __declspec(property(get=GetFilter,put=PutFilter))
  992.     _variant_t Filter;
  993.     __declspec(property(get=GetSort,put=PutSort))
  994.     _bstr_t Sort;
  995.     __declspec(property(get=GetAbsolutePosition,put=PutAbsolutePosition))
  996.     enum PositionEnum AbsolutePosition;
  997.     __declspec(property(get=GetBOF))
  998.     VARIANT_BOOL BOF;
  999.     __declspec(property(get=GetBookmark,put=PutBookmark))
  1000.     _variant_t Bookmark;
  1001.     __declspec(property(get=GetCacheSize,put=PutCacheSize))
  1002.     long CacheSize;
  1003.     __declspec(property(get=GetCursorType,put=PutCursorType))
  1004.     enum CursorTypeEnum CursorType;
  1005.     __declspec(property(get=GetEndOfFile))
  1006.     VARIANT_BOOL EndOfFile;
  1007.     __declspec(property(get=GetAbsolutePage,put=PutAbsolutePage))
  1008.     enum PositionEnum AbsolutePage;
  1009.     __declspec(property(get=GetLockType,put=PutLockType))
  1010.     enum LockTypeEnum LockType;
  1011.     __declspec(property(get=GetMaxRecords,put=PutMaxRecords))
  1012.     long MaxRecords;
  1013.     __declspec(property(get=GetRecordCount))
  1014.     long RecordCount;
  1015.     //
  1016.     // Wrapper methods for error-handling
  1017.     //
  1018.     enum PositionEnum GetAbsolutePosition ( );
  1019.     void PutAbsolutePosition (
  1020.         enum PositionEnum pl );
  1021.     void PutRefActiveConnection (
  1022.         IDispatch * pvar );
  1023.     void PutActiveConnection (
  1024.         const _variant_t & pvar );
  1025.     _variant_t GetActiveConnection ( );
  1026.     VARIANT_BOOL GetBOF ( );
  1027.     _variant_t GetBookmark ( );
  1028.     void PutBookmark (
  1029.         const _variant_t & pvBookmark );
  1030.     long GetCacheSize ( );
  1031.     void PutCacheSize (
  1032.         long pl );
  1033.     enum CursorTypeEnum GetCursorType ( );
  1034.     void PutCursorType (
  1035.         enum CursorTypeEnum plCursorType );
  1036.     VARIANT_BOOL GetEndOfFile ( );
  1037.     FieldsPtr GetFields ( );
  1038.     enum LockTypeEnum GetLockType ( );
  1039.     void PutLockType (
  1040.         enum LockTypeEnum plLockType );
  1041.     long GetMaxRecords ( );
  1042.     void PutMaxRecords (
  1043.         long plMaxRecords );
  1044.     long GetRecordCount ( );
  1045.     void PutRefSource (
  1046.         IDispatch * pvSource );
  1047.     void PutSource (
  1048.         _bstr_t pvSource );
  1049.     _variant_t GetSource ( );
  1050.     HRESULT AddNew (
  1051.         const _variant_t & FieldList = vtMissing,
  1052.         const _variant_t & Values = vtMissing );
  1053.     HRESULT CancelUpdate ( );
  1054.     HRESULT Close ( );
  1055.     HRESULT Delete (
  1056.         enum AffectEnum AffectRecords );
  1057.     _variant_t GetRows (
  1058.         long Rows,
  1059.         const _variant_t & Start = vtMissing,
  1060.         const _variant_t & Fields = vtMissing );
  1061.     HRESULT Move (
  1062.         long NumRecords,
  1063.         const _variant_t & Start = vtMissing );
  1064.     HRESULT MoveNext ( );
  1065.     HRESULT MovePrevious ( );
  1066.     HRESULT MoveFirst ( );
  1067.     HRESULT MoveLast ( );
  1068.     HRESULT Open (
  1069.         const _variant_t & Source,
  1070.         const _variant_t & ActiveConnection,
  1071.         enum CursorTypeEnum CursorType,
  1072.         enum LockTypeEnum LockType,
  1073.         long Options );
  1074.     HRESULT Requery (
  1075.         long Options );
  1076.     HRESULT _xResync (
  1077.         enum AffectEnum AffectRecords );
  1078.     HRESULT Update (
  1079.         const _variant_t & Fields = vtMissing,
  1080.         const _variant_t & Values = vtMissing );
  1081.     enum PositionEnum GetAbsolutePage ( );
  1082.     void PutAbsolutePage (
  1083.         enum PositionEnum pl );
  1084.     enum EditModeEnum GetEditMode ( );
  1085.     _variant_t GetFilter ( );
  1086.     void PutFilter (
  1087.         const _variant_t & Criteria );
  1088.     long GetPageCount ( );
  1089.     long GetPageSize ( );
  1090.     void PutPageSize (
  1091.         long pl );
  1092.     _bstr_t GetSort ( );
  1093.     void PutSort (
  1094.         _bstr_t Criteria );
  1095.     long GetStatus ( );
  1096.     long GetState ( );
  1097.     _RecordsetPtr _xClone ( );
  1098.     HRESULT UpdateBatch (
  1099.         enum AffectEnum AffectRecords );
  1100.     HRESULT CancelBatch (
  1101.         enum AffectEnum AffectRecords );
  1102.     enum CursorLocationEnum GetCursorLocation ( );
  1103.     void PutCursorLocation (
  1104.         enum CursorLocationEnum plCursorLoc );
  1105.     _RecordsetPtr NextRecordset (
  1106.         VARIANT * RecordsAffected );
  1107.     VARIANT_BOOL Supports (
  1108.         enum CursorOptionEnum CursorOptions );
  1109.     _variant_t GetCollect (
  1110.         const _variant_t & Index );
  1111.     void PutCollect (
  1112.         const _variant_t & Index,
  1113.         const _variant_t & pvar );
  1114.     enum MarshalOptionsEnum GetMarshalOptions ( );
  1115.     void PutMarshalOptions (
  1116.         enum MarshalOptionsEnum peMarshal );
  1117.     HRESULT Find (
  1118.         _bstr_t Criteria,
  1119.         long SkipRecords,
  1120.         enum SearchDirectionEnum SearchDirection,
  1121.         const _variant_t & Start = vtMissing );
  1122.     //
  1123.     // Raw methods provided by interface
  1124.     //
  1125.     virtual HRESULT __stdcall get_AbsolutePosition (
  1126.         enum PositionEnum * pl ) = 0;
  1127.     virtual HRESULT __stdcall put_AbsolutePosition (
  1128.         enum PositionEnum pl ) = 0;
  1129.     virtual HRESULT __stdcall putref_ActiveConnection (
  1130.         IDispatch * pvar ) = 0;
  1131.     virtual HRESULT __stdcall put_ActiveConnection (
  1132.         VARIANT pvar ) = 0;
  1133.     virtual HRESULT __stdcall get_ActiveConnection (
  1134.         VARIANT * pvar ) = 0;
  1135.     virtual HRESULT __stdcall get_BOF (
  1136.         VARIANT_BOOL * pb ) = 0;
  1137.     virtual HRESULT __stdcall get_Bookmark (
  1138.         VARIANT * pvBookmark ) = 0;
  1139.     virtual HRESULT __stdcall put_Bookmark (
  1140.         VARIANT pvBookmark ) = 0;
  1141.     virtual HRESULT __stdcall get_CacheSize (
  1142.         long * pl ) = 0;
  1143.     virtual HRESULT __stdcall put_CacheSize (
  1144.         long pl ) = 0;
  1145.     virtual HRESULT __stdcall get_CursorType (
  1146.         enum CursorTypeEnum * plCursorType ) = 0;
  1147.     virtual HRESULT __stdcall put_CursorType (
  1148.         enum CursorTypeEnum plCursorType ) = 0;
  1149.     virtual HRESULT __stdcall get_EndOfFile (
  1150.         VARIANT_BOOL * pb ) = 0;
  1151.     virtual HRESULT __stdcall get_Fields (
  1152.         struct Fields * * ppvObject ) = 0;
  1153.     virtual HRESULT __stdcall get_LockType (
  1154.         enum LockTypeEnum * plLockType ) = 0;
  1155.     virtual HRESULT __stdcall put_LockType (
  1156.         enum LockTypeEnum plLockType ) = 0;
  1157.     virtual HRESULT __stdcall get_MaxRecords (
  1158.         long * plMaxRecords ) = 0;
  1159.     virtual HRESULT __stdcall put_MaxRecords (
  1160.         long plMaxRecords ) = 0;
  1161.     virtual HRESULT __stdcall get_RecordCount (
  1162.         long * pl ) = 0;
  1163.     virtual HRESULT __stdcall putref_Source (
  1164.         IDispatch * pvSource ) = 0;
  1165.     virtual HRESULT __stdcall put_Source (
  1166.         BSTR pvSource ) = 0;
  1167.     virtual HRESULT __stdcall get_Source (
  1168.         VARIANT * pvSource ) = 0;
  1169.     virtual HRESULT __stdcall raw_AddNew (
  1170.         VARIANT FieldList = vtMissing,
  1171.         VARIANT Values = vtMissing ) = 0;
  1172.     virtual HRESULT __stdcall raw_CancelUpdate ( ) = 0;
  1173.     virtual HRESULT __stdcall raw_Close ( ) = 0;
  1174.     virtual HRESULT __stdcall raw_Delete (
  1175.         enum AffectEnum AffectRecords ) = 0;
  1176.     virtual HRESULT __stdcall raw_GetRows (
  1177.         long Rows,
  1178.         VARIANT Start,
  1179.         VARIANT Fields,
  1180.         VARIANT * pvar ) = 0;
  1181.     virtual HRESULT __stdcall raw_Move (
  1182.         long NumRecords,
  1183.         VARIANT Start = vtMissing ) = 0;
  1184.     virtual HRESULT __stdcall raw_MoveNext ( ) = 0;
  1185.     virtual HRESULT __stdcall raw_MovePrevious ( ) = 0;
  1186.     virtual HRESULT __stdcall raw_MoveFirst ( ) = 0;
  1187.     virtual HRESULT __stdcall raw_MoveLast ( ) = 0;
  1188.     virtual HRESULT __stdcall raw_Open (
  1189.         VARIANT Source,
  1190.         VARIANT ActiveConnection,
  1191.         enum CursorTypeEnum CursorType,
  1192.         enum LockTypeEnum LockType,
  1193.         long Options ) = 0;
  1194.     virtual HRESULT __stdcall raw_Requery (
  1195.         long Options ) = 0;
  1196.     virtual HRESULT __stdcall raw__xResync (
  1197.         enum AffectEnum AffectRecords ) = 0;
  1198.     virtual HRESULT __stdcall raw_Update (
  1199.         VARIANT Fields = vtMissing,
  1200.         VARIANT Values = vtMissing ) = 0;
  1201.     virtual HRESULT __stdcall get_AbsolutePage (
  1202.         enum PositionEnum * pl ) = 0;
  1203.     virtual HRESULT __stdcall put_AbsolutePage (
  1204.         enum PositionEnum pl ) = 0;
  1205.     virtual HRESULT __stdcall get_EditMode (
  1206.         enum EditModeEnum * pl ) = 0;
  1207.     virtual HRESULT __stdcall get_Filter (
  1208.         VARIANT * Criteria ) = 0;
  1209.     virtual HRESULT __stdcall put_Filter (
  1210.         VARIANT Criteria ) = 0;
  1211.     virtual HRESULT __stdcall get_PageCount (
  1212.         long * pl ) = 0;
  1213.     virtual HRESULT __stdcall get_PageSize (
  1214.         long * pl ) = 0;
  1215.     virtual HRESULT __stdcall put_PageSize (
  1216.         long pl ) = 0;
  1217.     virtual HRESULT __stdcall get_Sort (
  1218.         BSTR * Criteria ) = 0;
  1219.     virtual HRESULT __stdcall put_Sort (
  1220.         BSTR Criteria ) = 0;
  1221.     virtual HRESULT __stdcall get_Status (
  1222.         long * pl ) = 0;
  1223.     virtual HRESULT __stdcall get_State (
  1224.         long * plObjState ) = 0;
  1225.     virtual HRESULT __stdcall raw__xClone (
  1226.         struct _Recordset * * ppvObject ) = 0;
  1227.     virtual HRESULT __stdcall raw_UpdateBatch (
  1228.         enum AffectEnum AffectRecords ) = 0;
  1229.     virtual HRESULT __stdcall raw_CancelBatch (
  1230.         enum AffectEnum AffectRecords ) = 0;
  1231.     virtual HRESULT __stdcall get_CursorLocation (
  1232.         enum CursorLocationEnum * plCursorLoc ) = 0;
  1233.     virtual HRESULT __stdcall put_CursorLocation (
  1234.         enum CursorLocationEnum plCursorLoc ) = 0;
  1235.     virtual HRESULT __stdcall raw_NextRecordset (
  1236.         VARIANT * RecordsAffected,
  1237.         struct _Recordset * * ppiRs ) = 0;
  1238.     virtual HRESULT __stdcall raw_Supports (
  1239.         enum CursorOptionEnum CursorOptions,
  1240.         VARIANT_BOOL * pb ) = 0;
  1241.     virtual HRESULT __stdcall get_Collect (
  1242.         VARIANT Index,
  1243.         VARIANT * pvar ) = 0;
  1244.     virtual HRESULT __stdcall put_Collect (
  1245.         VARIANT Index,
  1246.         VARIANT pvar ) = 0;
  1247.     virtual HRESULT __stdcall get_MarshalOptions (
  1248.         enum MarshalOptionsEnum * peMarshal ) = 0;
  1249.     virtual HRESULT __stdcall put_MarshalOptions (
  1250.         enum MarshalOptionsEnum peMarshal ) = 0;
  1251.     virtual HRESULT __stdcall raw_Find (
  1252.         BSTR Criteria,
  1253.         long SkipRecords,
  1254.         enum SearchDirectionEnum SearchDirection,
  1255.         VARIANT Start = vtMissing ) = 0;
  1256. };
  1257. struct __declspec(uuid("0000054f-0000-0010-8000-00aa006d2ea4"))
  1258. Recordset20 : Recordset15
  1259. {
  1260.     //
  1261.     // Property data
  1262.     //
  1263.     __declspec(property(get=GetDataSource,put=PutRefDataSource))
  1264.     IUnknownPtr DataSource;
  1265.     __declspec(property(get=GetActiveCommand))
  1266.     IDispatchPtr ActiveCommand;
  1267.     __declspec(property(get=GetStayInSync,put=PutStayInSync))
  1268.     VARIANT_BOOL StayInSync;
  1269.     __declspec(property(get=GetDataMember,put=PutDataMember))
  1270.     _bstr_t DataMember;
  1271.     //
  1272.     // Wrapper methods for error-handling
  1273.     //
  1274.     HRESULT Cancel ( );
  1275.     IUnknownPtr GetDataSource ( );
  1276.     void PutRefDataSource (
  1277.         IUnknown * ppunkDataSource );
  1278.     HRESULT Save (
  1279.         _bstr_t FileName,
  1280.         enum PersistFormatEnum PersistFormat );
  1281.     IDispatchPtr GetActiveCommand ( );
  1282.     void PutStayInSync (
  1283.         VARIANT_BOOL pbStayInSync );
  1284.     VARIANT_BOOL GetStayInSync ( );
  1285.     _bstr_t GetString (
  1286.         enum StringFormatEnum StringFormat,
  1287.         long NumRows,
  1288.         _bstr_t ColumnDelimeter,
  1289.         _bstr_t RowDelimeter,
  1290.         _bstr_t NullExpr );
  1291.     _bstr_t GetDataMember ( );
  1292.     void PutDataMember (
  1293.         _bstr_t pbstrDataMember );
  1294.     enum CompareEnum CompareBookmarks (
  1295.         const _variant_t & Bookmark1,
  1296.         const _variant_t & Bookmark2 );
  1297.     _RecordsetPtr Clone (
  1298.         enum LockTypeEnum LockType );
  1299.     HRESULT Resync (
  1300.         enum AffectEnum AffectRecords,
  1301.         enum ResyncEnum ResyncValues );
  1302.     //
  1303.     // Raw methods provided by interface
  1304.     //
  1305.     virtual HRESULT __stdcall raw_Cancel ( ) = 0;
  1306.     virtual HRESULT __stdcall get_DataSource (
  1307.         IUnknown * * ppunkDataSource ) = 0;
  1308.     virtual HRESULT __stdcall putref_DataSource (
  1309.         IUnknown * ppunkDataSource ) = 0;
  1310.     virtual HRESULT __stdcall raw_Save (
  1311.         BSTR FileName,
  1312.         enum PersistFormatEnum PersistFormat ) = 0;
  1313.     virtual HRESULT __stdcall get_ActiveCommand (
  1314.         IDispatch * * ppCmd ) = 0;
  1315.     virtual HRESULT __stdcall put_StayInSync (
  1316.         VARIANT_BOOL pbStayInSync ) = 0;
  1317.     virtual HRESULT __stdcall get_StayInSync (
  1318.         VARIANT_BOOL * pbStayInSync ) = 0;
  1319.     virtual HRESULT __stdcall raw_GetString (
  1320.         enum StringFormatEnum StringFormat,
  1321.         long NumRows,
  1322.         BSTR ColumnDelimeter,
  1323.         BSTR RowDelimeter,
  1324.         BSTR NullExpr,
  1325.         BSTR * pRetString ) = 0;
  1326.     virtual HRESULT __stdcall get_DataMember (
  1327.         BSTR * pbstrDataMember ) = 0;
  1328.     virtual HRESULT __stdcall put_DataMember (
  1329.         BSTR pbstrDataMember ) = 0;
  1330.     virtual HRESULT __stdcall raw_CompareBookmarks (
  1331.         VARIANT Bookmark1,
  1332.         VARIANT Bookmark2,
  1333.         enum CompareEnum * pCompare ) = 0;
  1334.     virtual HRESULT __stdcall raw_Clone (
  1335.         enum LockTypeEnum LockType,
  1336.         struct _Recordset * * ppvObject ) = 0;
  1337.     virtual HRESULT __stdcall raw_Resync (
  1338.         enum AffectEnum AffectRecords,
  1339.         enum ResyncEnum ResyncValues ) = 0;
  1340. };
  1341. struct __declspec(uuid("00000555-0000-0010-8000-00aa006d2ea4"))
  1342. _Recordset : Recordset20
  1343. {
  1344.     //
  1345.     // Property data
  1346.     //
  1347.     __declspec(property(get=GetIndex,put=PutIndex))
  1348.     _bstr_t Index;
  1349.     //
  1350.     // Wrapper methods for error-handling
  1351.     //
  1352.     HRESULT Seek (
  1353.         const _variant_t & KeyValues,
  1354.         enum SeekEnum SeekOption );
  1355.     void PutIndex (
  1356.         _bstr_t pbstrIndex );
  1357.     _bstr_t GetIndex ( );
  1358.     //
  1359.     // Raw methods provided by interface
  1360.     //
  1361.     virtual HRESULT __stdcall raw_Seek (
  1362.         VARIANT KeyValues,
  1363.         enum SeekEnum SeekOption ) = 0;
  1364.     virtual HRESULT __stdcall put_Index (
  1365.         BSTR pbstrIndex ) = 0;
  1366.     virtual HRESULT __stdcall get_Index (
  1367.         BSTR * pbstrIndex ) = 0;
  1368. };
  1369. struct __declspec(uuid("00000506-0000-0010-8000-00aa006d2ea4"))
  1370. Fields15 : _Collection
  1371. {
  1372.     //
  1373.     // Property data
  1374.     //
  1375.     __declspec(property(get=GetItem))
  1376.     FieldPtr Item[];
  1377.     //
  1378.     // Wrapper methods for error-handling
  1379.     //
  1380.     FieldPtr GetItem (
  1381.         const _variant_t & Index );
  1382.     //
  1383.     // Raw methods provided by interface
  1384.     //
  1385.     virtual HRESULT __stdcall get_Item (
  1386.         VARIANT Index,
  1387.         struct Field * * ppvObject ) = 0;
  1388. };
  1389. struct __declspec(uuid("0000054d-0000-0010-8000-00aa006d2ea4"))
  1390. Fields : Fields15
  1391. {
  1392.     //
  1393.     // Wrapper methods for error-handling
  1394.     //
  1395.     HRESULT Append (
  1396.         _bstr_t Name,
  1397.         enum DataTypeEnum Type,
  1398.         long DefinedSize,
  1399.         enum FieldAttributeEnum Attrib );
  1400.     HRESULT Delete (
  1401.         const _variant_t & Index );
  1402.     //
  1403.     // Raw methods provided by interface
  1404.     //
  1405.     virtual HRESULT __stdcall raw_Append (
  1406.         BSTR Name,
  1407.         enum DataTypeEnum Type,
  1408.         long DefinedSize,
  1409.         enum FieldAttributeEnum Attrib ) = 0;
  1410.     virtual HRESULT __stdcall raw_Delete (
  1411.         VARIANT Index ) = 0;
  1412. };
  1413. struct __declspec(uuid("0000054c-0000-0010-8000-00aa006d2ea4"))
  1414. Field : _ADO
  1415. {
  1416.     //
  1417.     // Property data
  1418.     //
  1419.     __declspec(property(get=GetValue,put=PutValue))
  1420.     _variant_t Value;
  1421.     __declspec(property(get=GetPrecision,put=PutPrecision))
  1422.     unsigned char Precision;
  1423.     __declspec(property(get=GetNumericScale,put=PutNumericScale))
  1424.     unsigned char NumericScale;
  1425.     __declspec(property(get=GetAttributes,put=PutAttributes))
  1426.     long Attributes;
  1427.     __declspec(property(get=GetName))
  1428.     _bstr_t Name;
  1429.     __declspec(property(get=GetType,put=PutType))
  1430.     enum DataTypeEnum Type;
  1431.     __declspec(property(get=GetDefinedSize,put=PutDefinedSize))
  1432.     long DefinedSize;
  1433.     __declspec(property(get=GetOriginalValue))
  1434.     _variant_t OriginalValue;
  1435.     __declspec(property(get=GetUnderlyingValue))
  1436.     _variant_t UnderlyingValue;
  1437.     __declspec(property(get=GetDataFormat,put=PutRefDataFormat))
  1438.     IUnknownPtr DataFormat;
  1439.     __declspec(property(get=GetActualSize))
  1440.     long ActualSize;
  1441.     //
  1442.     // Wrapper methods for error-handling
  1443.     //
  1444.     long GetActualSize ( );
  1445.     long GetAttributes ( );
  1446.     long GetDefinedSize ( );
  1447.     _bstr_t GetName ( );
  1448.     enum DataTypeEnum GetType ( );
  1449.     _variant_t GetValue ( );
  1450.     void PutValue (
  1451.         const _variant_t & pvar );
  1452.     unsigned char GetPrecision ( );
  1453.     unsigned char GetNumericScale ( );
  1454.     HRESULT AppendChunk (
  1455.         const _variant_t & Data );
  1456.     _variant_t GetChunk (
  1457.         long Length );
  1458.     _variant_t GetOriginalValue ( );
  1459.     _variant_t GetUnderlyingValue ( );
  1460.     IUnknownPtr GetDataFormat ( );
  1461.     void PutRefDataFormat (
  1462.         IUnknown * ppiDF );
  1463.     void PutPrecision (
  1464.         unsigned char pbPrecision );
  1465.     void PutNumericScale (
  1466.         unsigned char pbNumericScale );
  1467.     void PutType (
  1468.         enum DataTypeEnum pDataType );
  1469.     void PutDefinedSize (
  1470.         long pl );
  1471.     void PutAttributes (
  1472.         long pl );
  1473.     //
  1474.     // Raw methods provided by interface
  1475.     //
  1476.     virtual HRESULT __stdcall get_ActualSize (
  1477.         long * pl ) = 0;
  1478.     virtual HRESULT __stdcall get_Attributes (
  1479.         long * pl ) = 0;
  1480.     virtual HRESULT __stdcall get_DefinedSize (
  1481.         long * pl ) = 0;
  1482.     virtual HRESULT __stdcall get_Name (
  1483.         BSTR * pbstr ) = 0;
  1484.     virtual HRESULT __stdcall get_Type (
  1485.         enum DataTypeEnum * pDataType ) = 0;
  1486.     virtual HRESULT __stdcall get_Value (
  1487.         VARIANT * pvar ) = 0;
  1488.     virtual HRESULT __stdcall put_Value (
  1489.         VARIANT pvar ) = 0;
  1490.     virtual HRESULT __stdcall get_Precision (
  1491.         unsigned char * pbPrecision ) = 0;
  1492.     virtual HRESULT __stdcall get_NumericScale (
  1493.         unsigned char * pbNumericScale ) = 0;
  1494.     virtual HRESULT __stdcall raw_AppendChunk (
  1495.         VARIANT Data ) = 0;
  1496.     virtual HRESULT __stdcall raw_GetChunk (
  1497.         long Length,
  1498.         VARIANT * pvar ) = 0;
  1499.     virtual HRESULT __stdcall get_OriginalValue (
  1500.         VARIANT * pvar ) = 0;
  1501.     virtual HRESULT __stdcall get_UnderlyingValue (
  1502.         VARIANT * pvar ) = 0;
  1503.     virtual HRESULT __stdcall get_DataFormat (
  1504.         IUnknown * * ppiDF ) = 0;
  1505.     virtual HRESULT __stdcall putref_DataFormat (
  1506.         IUnknown * ppiDF ) = 0;
  1507.     virtual HRESULT __stdcall put_Precision (
  1508.         unsigned char pbPrecision ) = 0;
  1509.     virtual HRESULT __stdcall put_NumericScale (
  1510.         unsigned char pbNumericScale ) = 0;
  1511.     virtual HRESULT __stdcall put_Type (
  1512.         enum DataTypeEnum pDataType ) = 0;
  1513.     virtual HRESULT __stdcall put_DefinedSize (
  1514.         long pl ) = 0;
  1515.     virtual HRESULT __stdcall put_Attributes (
  1516.         long pl ) = 0;
  1517. };
  1518. struct __declspec(uuid("0000050c-0000-0010-8000-00aa006d2ea4"))
  1519. _Parameter : _ADO
  1520. {
  1521.     //
  1522.     // Property data
  1523.     //
  1524.     __declspec(property(get=GetName,put=PutName))
  1525.     _bstr_t Name;
  1526.     __declspec(property(get=GetValue,put=PutValue))
  1527.     _variant_t Value;
  1528.     __declspec(property(get=GetType,put=PutType))
  1529.     enum DataTypeEnum Type;
  1530.     __declspec(property(get=GetDirection,put=PutDirection))
  1531.     enum ParameterDirectionEnum Direction;
  1532.     __declspec(property(get=GetPrecision,put=PutPrecision))
  1533.     unsigned char Precision;
  1534.     __declspec(property(get=GetNumericScale,put=PutNumericScale))
  1535.     unsigned char NumericScale;
  1536.     __declspec(property(get=GetSize,put=PutSize))
  1537.     long Size;
  1538.     __declspec(property(get=GetAttributes,put=PutAttributes))
  1539.     long Attributes;
  1540.     //
  1541.     // Wrapper methods for error-handling
  1542.     //
  1543.     _bstr_t GetName ( );
  1544.     void PutName (
  1545.         _bstr_t pbstr );
  1546.     _variant_t GetValue ( );
  1547.     void PutValue (
  1548.         const _variant_t & pvar );
  1549.     enum DataTypeEnum GetType ( );
  1550.     void PutType (
  1551.         enum DataTypeEnum psDataType );
  1552.     void PutDirection (
  1553.         enum ParameterDirectionEnum plParmDirection );
  1554.     enum ParameterDirectionEnum GetDirection ( );
  1555.     void PutPrecision (
  1556.         unsigned char pbPrecision );
  1557.     unsigned char GetPrecision ( );
  1558.     void PutNumericScale (
  1559.         unsigned char pbScale );
  1560.     unsigned char GetNumericScale ( );
  1561.     void PutSize (
  1562.         long pl );
  1563.     long GetSize ( );
  1564.     HRESULT AppendChunk (
  1565.         const _variant_t & Val );
  1566.     long GetAttributes ( );
  1567.     void PutAttributes (
  1568.         long plParmAttribs );
  1569.     //
  1570.     // Raw methods provided by interface
  1571.     //
  1572.     virtual HRESULT __stdcall get_Name (
  1573.         BSTR * pbstr ) = 0;
  1574.     virtual HRESULT __stdcall put_Name (
  1575.         BSTR pbstr ) = 0;
  1576.     virtual HRESULT __stdcall get_Value (
  1577.         VARIANT * pvar ) = 0;
  1578.     virtual HRESULT __stdcall put_Value (
  1579.         VARIANT pvar ) = 0;
  1580.     virtual HRESULT __stdcall get_Type (
  1581.         enum DataTypeEnum * psDataType ) = 0;
  1582.     virtual HRESULT __stdcall put_Type (
  1583.         enum DataTypeEnum psDataType ) = 0;
  1584.     virtual HRESULT __stdcall put_Direction (
  1585.         enum ParameterDirectionEnum plParmDirection ) = 0;
  1586.     virtual HRESULT __stdcall get_Direction (
  1587.         enum ParameterDirectionEnum * plParmDirection ) = 0;
  1588.     virtual HRESULT __stdcall put_Precision (
  1589.         unsigned char pbPrecision ) = 0;
  1590.     virtual HRESULT __stdcall get_Precision (
  1591.         unsigned char * pbPrecision ) = 0;
  1592.     virtual HRESULT __stdcall put_NumericScale (
  1593.         unsigned char pbScale ) = 0;
  1594.     virtual HRESULT __stdcall get_NumericScale (
  1595.         unsigned char * pbScale ) = 0;
  1596.     virtual HRESULT __stdcall put_Size (
  1597.         long pl ) = 0;
  1598.     virtual HRESULT __stdcall get_Size (
  1599.         long * pl ) = 0;
  1600.     virtual HRESULT __stdcall raw_AppendChunk (
  1601.         VARIANT Val ) = 0;
  1602.     virtual HRESULT __stdcall get_Attributes (
  1603.         long * plParmAttribs ) = 0;
  1604.     virtual HRESULT __stdcall put_Attributes (
  1605.         long plParmAttribs ) = 0;
  1606. };
  1607. struct __declspec(uuid("0000050d-0000-0010-8000-00aa006d2ea4"))
  1608. Parameters : _DynaCollection
  1609. {
  1610.     //
  1611.     // Property data
  1612.     //
  1613.     __declspec(property(get=GetItem))
  1614.     _ParameterPtr Item[];
  1615.     //
  1616.     // Wrapper methods for error-handling
  1617.     //
  1618.     _ParameterPtr GetItem (
  1619.         const _variant_t & Index );
  1620.     //
  1621.     // Raw methods provided by interface
  1622.     //
  1623.     virtual HRESULT __stdcall get_Item (
  1624.         VARIANT Index,
  1625.         struct _Parameter * * ppvObject ) = 0;
  1626. };
  1627. struct __declspec(uuid("0000054e-0000-0010-8000-00aa006d2ea4"))
  1628. _Command : Command15
  1629. {
  1630.     //
  1631.     // Property data
  1632.     //
  1633.     __declspec(property(get=GetState))
  1634.     long State;
  1635.     //
  1636.     // Wrapper methods for error-handling
  1637.     //
  1638.     long GetState ( );
  1639.     HRESULT Cancel ( );
  1640.     //
  1641.     // Raw methods provided by interface
  1642.     //
  1643.     virtual HRESULT __stdcall get_State (
  1644.         long * plObjState ) = 0;
  1645.     virtual HRESULT __stdcall raw_Cancel ( ) = 0;
  1646. };
  1647. struct __declspec(uuid("00000402-0000-0010-8000-00aa006d2ea4"))
  1648. ConnectionEventsVt : IUnknown
  1649. {
  1650.     //
  1651.     // Wrapper methods for error-handling
  1652.     //
  1653.     HRESULT InfoMessage (
  1654.         struct Error * pError,
  1655.         enum EventStatusEnum * adStatus,
  1656.         struct _Connection * pConnection );
  1657.     HRESULT BeginTransComplete (
  1658.         long TransactionLevel,
  1659.         struct Error * pError,
  1660.         enum EventStatusEnum * adStatus,
  1661.         struct _Connection * pConnection );
  1662.     HRESULT CommitTransComplete (
  1663.         struct Error * pError,
  1664.         enum EventStatusEnum * adStatus,
  1665.         struct _Connection * pConnection );
  1666.     HRESULT RollbackTransComplete (
  1667.         struct Error * pError,
  1668.         enum EventStatusEnum * adStatus,
  1669.         struct _Connection * pConnection );
  1670.     HRESULT WillExecute (
  1671.         BSTR * Source,
  1672.         enum CursorTypeEnum * CursorType,
  1673.         enum LockTypeEnum * LockType,
  1674.         long * Options,
  1675.         enum EventStatusEnum * adStatus,
  1676.         struct _Command * pCommand,
  1677.         struct _Recordset * pRecordset,
  1678.         struct _Connection * pConnection );
  1679.     HRESULT ExecuteComplete (
  1680.         long RecordsAffected,
  1681.         struct Error * pError,
  1682.         enum EventStatusEnum * adStatus,
  1683.         struct _Command * pCommand,
  1684.         struct _Recordset * pRecordset,
  1685.         struct _Connection * pConnection );
  1686.     HRESULT WillConnect (
  1687.         BSTR * ConnectionString,
  1688.         BSTR * UserID,
  1689.         BSTR * Password,
  1690.         long * Options,
  1691.         enum EventStatusEnum * adStatus,
  1692.         struct _Connection * pConnection );
  1693.     HRESULT ConnectComplete (
  1694.         struct Error * pError,
  1695.         enum EventStatusEnum * adStatus,
  1696.         struct _Connection * pConnection );
  1697.     HRESULT Disconnect (
  1698.         enum EventStatusEnum * adStatus,
  1699.         struct _Connection * pConnection );
  1700.     //
  1701.     // Raw methods provided by interface
  1702.     //
  1703.     virtual HRESULT __stdcall raw_InfoMessage (
  1704.         struct Error * pError,
  1705.         enum EventStatusEnum * adStatus,
  1706.         struct _Connection * pConnection ) = 0;
  1707.     virtual HRESULT __stdcall raw_BeginTransComplete (
  1708.         long TransactionLevel,
  1709.         struct Error * pError,
  1710.         enum EventStatusEnum * adStatus,
  1711.         struct _Connection * pConnection ) = 0;
  1712.     virtual HRESULT __stdcall raw_CommitTransComplete (
  1713.         struct Error * pError,
  1714.         enum EventStatusEnum * adStatus,
  1715.         struct _Connection * pConnection ) = 0;
  1716.     virtual HRESULT __stdcall raw_RollbackTransComplete (
  1717.         struct Error * pError,
  1718.         enum EventStatusEnum * adStatus,
  1719.         struct _Connection * pConnection ) = 0;
  1720.     virtual HRESULT __stdcall raw_WillExecute (
  1721.         BSTR * Source,
  1722.         enum CursorTypeEnum * CursorType,
  1723.         enum LockTypeEnum * LockType,
  1724.         long * Options,
  1725.         enum EventStatusEnum * adStatus,
  1726.         struct _Command * pCommand,
  1727.         struct _Recordset * pRecordset,
  1728.         struct _Connection * pConnection ) = 0;
  1729.     virtual HRESULT __stdcall raw_ExecuteComplete (
  1730.         long RecordsAffected,
  1731.         struct Error * pError,
  1732.         enum EventStatusEnum * adStatus,
  1733.         struct _Command * pCommand,
  1734.         struct _Recordset * pRecordset,
  1735.         struct _Connection * pConnection ) = 0;
  1736.     virtual HRESULT __stdcall raw_WillConnect (
  1737.         BSTR * ConnectionString,
  1738.         BSTR * UserID,
  1739.         BSTR * Password,
  1740.         long * Options,
  1741.         enum EventStatusEnum * adStatus,
  1742.         struct _Connection * pConnection ) = 0;
  1743.     virtual HRESULT __stdcall raw_ConnectComplete (
  1744.         struct Error * pError,
  1745.         enum EventStatusEnum * adStatus,
  1746.         struct _Connection * pConnection ) = 0;
  1747.     virtual HRESULT __stdcall raw_Disconnect (
  1748.         enum EventStatusEnum * adStatus,
  1749.         struct _Connection * pConnection ) = 0;
  1750. };
  1751. struct __declspec(uuid("00000403-0000-0010-8000-00aa006d2ea4"))
  1752. RecordsetEventsVt : IUnknown
  1753. {
  1754.     //
  1755.     // Wrapper methods for error-handling
  1756.     //
  1757.     HRESULT WillChangeField (
  1758.         long cFields,
  1759.         const _variant_t & Fields,
  1760.         enum EventStatusEnum * adStatus,
  1761.         struct _Recordset * pRecordset );
  1762.     HRESULT FieldChangeComplete (
  1763.         long cFields,
  1764.         const _variant_t & Fields,
  1765.         struct Error * pError,
  1766.         enum EventStatusEnum * adStatus,
  1767.         struct _Recordset * pRecordset );
  1768.     HRESULT WillChangeRecord (
  1769.         enum EventReasonEnum adReason,
  1770.         long cRecords,
  1771.         enum EventStatusEnum * adStatus,
  1772.         struct _Recordset * pRecordset );
  1773.     HRESULT RecordChangeComplete (
  1774.         enum EventReasonEnum adReason,
  1775.         long cRecords,
  1776.         struct Error * pError,
  1777.         enum EventStatusEnum * adStatus,
  1778.         struct _Recordset * pRecordset );
  1779.     HRESULT WillChangeRecordset (
  1780.         enum EventReasonEnum adReason,
  1781.         enum EventStatusEnum * adStatus,
  1782.         struct _Recordset * pRecordset );
  1783.     HRESULT RecordsetChangeComplete (
  1784.         enum EventReasonEnum adReason,
  1785.         struct Error * pError,
  1786.         enum EventStatusEnum * adStatus,
  1787.         struct _Recordset * pRecordset );
  1788.     HRESULT WillMove (
  1789.         enum EventReasonEnum adReason,
  1790.         enum EventStatusEnum * adStatus,
  1791.         struct _Recordset * pRecordset );
  1792.     HRESULT MoveComplete (
  1793.         enum EventReasonEnum adReason,
  1794.         struct Error * pError,
  1795.         enum EventStatusEnum * adStatus,
  1796.         struct _Recordset * pRecordset );
  1797.     HRESULT EndOfRecordset (
  1798.         VARIANT_BOOL * fMoreData,
  1799.         enum EventStatusEnum * adStatus,
  1800.         struct _Recordset * pRecordset );
  1801.     HRESULT FetchProgress (
  1802.         long Progress,
  1803.         long MaxProgress,
  1804.         enum EventStatusEnum * adStatus,
  1805.         struct _Recordset * pRecordset );
  1806.     HRESULT FetchComplete (
  1807.         struct Error * pError,
  1808.         enum EventStatusEnum * adStatus,
  1809.         struct _Recordset * pRecordset );
  1810.     //
  1811.     // Raw methods provided by interface
  1812.     //
  1813.     virtual HRESULT __stdcall raw_WillChangeField (
  1814.         long cFields,
  1815.         VARIANT Fields,
  1816.         enum EventStatusEnum * adStatus,
  1817.         struct _Recordset * pRecordset ) = 0;
  1818.     virtual HRESULT __stdcall raw_FieldChangeComplete (
  1819.         long cFields,
  1820.         VARIANT Fields,
  1821.         struct Error * pError,
  1822.         enum EventStatusEnum * adStatus,
  1823.         struct _Recordset * pRecordset ) = 0;
  1824.     virtual HRESULT __stdcall raw_WillChangeRecord (
  1825.         enum EventReasonEnum adReason,
  1826.         long cRecords,
  1827.         enum EventStatusEnum * adStatus,
  1828.         struct _Recordset * pRecordset ) = 0;
  1829.     virtual HRESULT __stdcall raw_RecordChangeComplete (
  1830.         enum EventReasonEnum adReason,
  1831.         long cRecords,
  1832.         struct Error * pError,
  1833.         enum EventStatusEnum * adStatus,
  1834.         struct _Recordset * pRecordset ) = 0;
  1835.     virtual HRESULT __stdcall raw_WillChangeRecordset (
  1836.         enum EventReasonEnum adReason,
  1837.         enum EventStatusEnum * adStatus,
  1838.         struct _Recordset * pRecordset ) = 0;
  1839.     virtual HRESULT __stdcall raw_RecordsetChangeComplete (
  1840.         enum EventReasonEnum adReason,
  1841.         struct Error * pError,
  1842.         enum EventStatusEnum * adStatus,
  1843.         struct _Recordset * pRecordset ) = 0;
  1844.     virtual HRESULT __stdcall raw_WillMove (
  1845.         enum EventReasonEnum adReason,
  1846.         enum EventStatusEnum * adStatus,
  1847.         struct _Recordset * pRecordset ) = 0;
  1848.     virtual HRESULT __stdcall raw_MoveComplete (
  1849.         enum EventReasonEnum adReason,
  1850.         struct Error * pError,
  1851.         enum EventStatusEnum * adStatus,
  1852.         struct _Recordset * pRecordset ) = 0;
  1853.     virtual HRESULT __stdcall raw_EndOfRecordset (
  1854.         VARIANT_BOOL * fMoreData,
  1855.         enum EventStatusEnum * adStatus,
  1856.         struct _Recordset * pRecordset ) = 0;
  1857.     virtual HRESULT __stdcall raw_FetchProgress (
  1858.         long Progress,
  1859.         long MaxProgress,
  1860.         enum EventStatusEnum * adStatus,
  1861.         struct _Recordset * pRecordset ) = 0;
  1862.     virtual HRESULT __stdcall raw_FetchComplete (
  1863.         struct Error * pError,
  1864.         enum EventStatusEnum * adStatus,
  1865.         struct _Recordset * pRecordset ) = 0;
  1866. };
  1867. struct __declspec(uuid("00000400-0000-0010-8000-00aa006d2ea4"))
  1868. ConnectionEvents : IDispatch
  1869. {
  1870.     //
  1871.     // Wrapper methods for error-handling
  1872.     //
  1873.     // Methods:
  1874.     HRESULT InfoMessage (
  1875.         struct Error * pError,
  1876.         enum EventStatusEnum * adStatus,
  1877.         struct _Connection * pConnection );
  1878.     HRESULT BeginTransComplete (
  1879.         long TransactionLevel,
  1880.         struct Error * pError,
  1881.         enum EventStatusEnum * adStatus,
  1882.         struct _Connection * pConnection );
  1883.     HRESULT CommitTransComplete (
  1884.         struct Error * pError,
  1885.         enum EventStatusEnum * adStatus,
  1886.         struct _Connection * pConnection );
  1887.     HRESULT RollbackTransComplete (
  1888.         struct Error * pError,
  1889.         enum EventStatusEnum * adStatus,
  1890.         struct _Connection * pConnection );
  1891.     HRESULT WillExecute (
  1892.         BSTR * Source,
  1893.         enum CursorTypeEnum * CursorType,
  1894.         enum LockTypeEnum * LockType,
  1895.         long * Options,
  1896.         enum EventStatusEnum * adStatus,
  1897.         struct _Command * pCommand,
  1898.         struct _Recordset * pRecordset,
  1899.         struct _Connection * pConnection );
  1900.     HRESULT ExecuteComplete (
  1901.         long RecordsAffected,
  1902.         struct Error * pError,
  1903.         enum EventStatusEnum * adStatus,
  1904.         struct _Command * pCommand,
  1905.         struct _Recordset * pRecordset,
  1906.         struct _Connection * pConnection );
  1907.     HRESULT WillConnect (
  1908.         BSTR * ConnectionString,
  1909.         BSTR * UserID,
  1910.         BSTR * Password,
  1911.         long * Options,
  1912.         enum EventStatusEnum * adStatus,
  1913.         struct _Connection * pConnection );
  1914.     HRESULT ConnectComplete (
  1915.         struct Error * pError,
  1916.         enum EventStatusEnum * adStatus,
  1917.         struct _Connection * pConnection );
  1918.     HRESULT Disconnect (
  1919.         enum EventStatusEnum * adStatus,
  1920.         struct _Connection * pConnection );
  1921. };
  1922. struct __declspec(uuid("00000266-0000-0010-8000-00aa006d2ea4"))
  1923. RecordsetEvents : IDispatch
  1924. {
  1925.     //
  1926.     // Wrapper methods for error-handling
  1927.     //
  1928.     // Methods:
  1929.     HRESULT WillChangeField (
  1930.         long cFields,
  1931.         const _variant_t & Fields,
  1932.         enum EventStatusEnum * adStatus,
  1933.         struct _Recordset * pRecordset );
  1934.     HRESULT FieldChangeComplete (
  1935.         long cFields,
  1936.         const _variant_t & Fields,
  1937.         struct Error * pError,
  1938.         enum EventStatusEnum * adStatus,
  1939.         struct _Recordset * pRecordset );
  1940.     HRESULT WillChangeRecord (
  1941.         enum EventReasonEnum adReason,
  1942.         long cRecords,
  1943.         enum EventStatusEnum * adStatus,
  1944.         struct _Recordset * pRecordset );
  1945.     HRESULT RecordChangeComplete (
  1946.         enum EventReasonEnum adReason,
  1947.         long cRecords,
  1948.         struct Error * pError,
  1949.         enum EventStatusEnum * adStatus,
  1950.         struct _Recordset * pRecordset );
  1951.     HRESULT WillChangeRecordset (
  1952.         enum EventReasonEnum adReason,
  1953.         enum EventStatusEnum * adStatus,
  1954.         struct _Recordset * pRecordset );
  1955.     HRESULT RecordsetChangeComplete (
  1956.         enum EventReasonEnum adReason,
  1957.         struct Error * pError,
  1958.         enum EventStatusEnum * adStatus,
  1959.         struct _Recordset * pRecordset );
  1960.     HRESULT WillMove (
  1961.         enum EventReasonEnum adReason,
  1962.         enum EventStatusEnum * adStatus,
  1963.         struct _Recordset * pRecordset );
  1964.     HRESULT MoveComplete (
  1965.         enum EventReasonEnum adReason,
  1966.         struct Error * pError,
  1967.         enum EventStatusEnum * adStatus,
  1968.         struct _Recordset * pRecordset );
  1969.     HRESULT EndOfRecordset (
  1970.         VARIANT_BOOL * fMoreData,
  1971.         enum EventStatusEnum * adStatus,
  1972.         struct _Recordset * pRecordset );
  1973.     HRESULT FetchProgress (
  1974.         long Progress,
  1975.         long MaxProgress,
  1976.         enum EventStatusEnum * adStatus,
  1977.         struct _Recordset * pRecordset );
  1978.     HRESULT FetchComplete (
  1979.         struct Error * pError,
  1980.         enum EventStatusEnum * adStatus,
  1981.         struct _Recordset * pRecordset );
  1982. };
  1983. struct __declspec(uuid("00000516-0000-0010-8000-00aa006d2ea4"))
  1984. ADOConnectionConstruction15 : IUnknown
  1985. {
  1986.     //
  1987.     // Property data
  1988.     //
  1989.     __declspec(property(get=GetDSO))
  1990.     IUnknownPtr DSO;
  1991.     __declspec(property(get=GetSession))
  1992.     IUnknownPtr Session;
  1993.     //
  1994.     // Wrapper methods for error-handling
  1995.     //
  1996.     IUnknownPtr GetDSO ( );
  1997.     IUnknownPtr GetSession ( );
  1998.     HRESULT WrapDSOandSession (
  1999.         IUnknown * pDSO,
  2000.         IUnknown * pSession );
  2001.     //
  2002.     // Raw methods provided by interface
  2003.     //
  2004.     virtual HRESULT __stdcall get_DSO (
  2005.         IUnknown * * ppDSO ) = 0;
  2006.     virtual HRESULT __stdcall get_Session (
  2007.         IUnknown * * ppSession ) = 0;
  2008.     virtual HRESULT __stdcall raw_WrapDSOandSession (
  2009.         IUnknown * pDSO,
  2010.         IUnknown * pSession ) = 0;
  2011. };
  2012. struct __declspec(uuid("00000551-0000-0010-8000-00aa006d2ea4"))
  2013. ADOConnectionConstruction : ADOConnectionConstruction15
  2014. {};
  2015. struct __declspec(uuid("00000514-0000-0010-8000-00aa006d2ea4"))
  2016. Connection;
  2017.     // [ default ] interface _Connection
  2018.     // [ default, source ] dispinterface ConnectionEvents
  2019. struct __declspec(uuid("00000517-0000-0010-8000-00aa006d2ea4"))
  2020. ADOCommandConstruction : IUnknown
  2021. {
  2022.     //
  2023.     // Property data
  2024.     //
  2025.     __declspec(property(get=GetOLEDBCommand,put=PutOLEDBCommand))
  2026.     IUnknownPtr OLEDBCommand;
  2027.     //
  2028.     // Wrapper methods for error-handling
  2029.     //
  2030.     IUnknownPtr GetOLEDBCommand ( );
  2031.     void PutOLEDBCommand (
  2032.         IUnknown * ppOLEDBCommand );
  2033.     //
  2034.     // Raw methods provided by interface
  2035.     //
  2036.     virtual HRESULT __stdcall get_OLEDBCommand (
  2037.         IUnknown * * ppOLEDBCommand ) = 0;
  2038.     virtual HRESULT __stdcall put_OLEDBCommand (
  2039.         IUnknown * ppOLEDBCommand ) = 0;
  2040. };
  2041. struct __declspec(uuid("00000507-0000-0010-8000-00aa006d2ea4"))
  2042. Command;
  2043.     // [ default ] interface _Command
  2044. struct __declspec(uuid("00000535-0000-0010-8000-00aa006d2ea4"))
  2045. Recordset;
  2046.     // [ default ] interface _Recordset
  2047.     // [ default, source ] dispinterface RecordsetEvents
  2048. struct __declspec(uuid("00000283-0000-0010-8000-00aa006d2ea4"))
  2049. ADORecordsetConstruction : IDispatch
  2050. {
  2051.     //
  2052.     // Property data
  2053.     //
  2054.     __declspec(property(get=GetRowset,put=PutRowset))
  2055.     IUnknownPtr Rowset;
  2056.     __declspec(property(get=GetChapter,put=PutChapter))
  2057.     long Chapter;
  2058.     __declspec(property(get=GetRowPosition,put=PutRowPosition))
  2059.     IUnknownPtr RowPosition;
  2060.     //
  2061.     // Wrapper methods for error-handling
  2062.     //
  2063.     IUnknownPtr GetRowset ( );
  2064.     void PutRowset (
  2065.         IUnknown * ppRowset );
  2066.     long GetChapter ( );
  2067.     void PutChapter (
  2068.         long plChapter );
  2069.     IUnknownPtr GetRowPosition ( );
  2070.     void PutRowPosition (
  2071.         IUnknown * ppRowPos );
  2072.     //
  2073.     // Raw methods provided by interface
  2074.     //
  2075.     virtual HRESULT __stdcall get_Rowset (
  2076.         IUnknown * * ppRowset ) = 0;
  2077.     virtual HRESULT __stdcall put_Rowset (
  2078.         IUnknown * ppRowset ) = 0;
  2079.     virtual HRESULT __stdcall get_Chapter (
  2080.         long * plChapter ) = 0;
  2081.     virtual HRESULT __stdcall put_Chapter (
  2082.         long plChapter ) = 0;
  2083.     virtual HRESULT __stdcall get_RowPosition (
  2084.         IUnknown * * ppRowPos ) = 0;
  2085.     virtual HRESULT __stdcall put_RowPosition (
  2086.         IUnknown * ppRowPos ) = 0;
  2087. };
  2088. struct __declspec(uuid("00000505-0000-0010-8000-00aa006d2ea4"))
  2089. Field15 : _ADO
  2090. {
  2091.     //
  2092.     // Property data
  2093.     //
  2094.     __declspec(property(get=GetValue,put=PutValue))
  2095.     _variant_t Value;
  2096.     __declspec(property(get=GetPrecision))
  2097.     unsigned char Precision;
  2098.     __declspec(property(get=GetNumericScale))
  2099.     unsigned char NumericScale;
  2100.     __declspec(property(get=GetAttributes))
  2101.     long Attributes;
  2102.     __declspec(property(get=GetName))
  2103.     _bstr_t Name;
  2104.     __declspec(property(get=GetType))
  2105.     enum DataTypeEnum Type;
  2106.     __declspec(property(get=GetDefinedSize))
  2107.     long DefinedSize;
  2108.     __declspec(property(get=GetOriginalValue))
  2109.     _variant_t OriginalValue;
  2110.     __declspec(property(get=GetUnderlyingValue))
  2111.     _variant_t UnderlyingValue;
  2112.     __declspec(property(get=GetActualSize))
  2113.     long ActualSize;
  2114.     //
  2115.     // Wrapper methods for error-handling
  2116.     //
  2117.     long GetActualSize ( );
  2118.     long GetAttributes ( );
  2119.     long GetDefinedSize ( );
  2120.     _bstr_t GetName ( );
  2121.     enum DataTypeEnum GetType ( );
  2122.     _variant_t GetValue ( );
  2123.     void PutValue (
  2124.         const _variant_t & pvar );
  2125.     unsigned char GetPrecision ( );
  2126.     unsigned char GetNumericScale ( );
  2127.     HRESULT AppendChunk (
  2128.         const _variant_t & Data );
  2129.     _variant_t GetChunk (
  2130.         long Length );
  2131.     _variant_t GetOriginalValue ( );
  2132.     _variant_t GetUnderlyingValue ( );
  2133.     //
  2134.     // Raw methods provided by interface
  2135.     //
  2136.     virtual HRESULT __stdcall get_ActualSize (
  2137.         long * pl ) = 0;
  2138.     virtual HRESULT __stdcall get_Attributes (
  2139.         long * pl ) = 0;
  2140.     virtual HRESULT __stdcall get_DefinedSize (
  2141.         long * pl ) = 0;
  2142.     virtual HRESULT __stdcall get_Name (
  2143.         BSTR * pbstr ) = 0;
  2144.     virtual HRESULT __stdcall get_Type (
  2145.         enum DataTypeEnum * pDataType ) = 0;
  2146.     virtual HRESULT __stdcall get_Value (
  2147.         VARIANT * pvar ) = 0;
  2148.     virtual HRESULT __stdcall put_Value (
  2149.         VARIANT pvar ) = 0;
  2150.     virtual HRESULT __stdcall get_Precision (
  2151.         unsigned char * pbPrecision ) = 0;
  2152.     virtual HRESULT __stdcall get_NumericScale (
  2153.         unsigned char * pbNumericScale ) = 0;
  2154.     virtual HRESULT __stdcall raw_AppendChunk (
  2155.         VARIANT Data ) = 0;
  2156.     virtual HRESULT __stdcall raw_GetChunk (
  2157.         long Length,
  2158.         VARIANT * pvar ) = 0;
  2159.     virtual HRESULT __stdcall get_OriginalValue (
  2160.         VARIANT * pvar ) = 0;
  2161.     virtual HRESULT __stdcall get_UnderlyingValue (
  2162.         VARIANT * pvar ) = 0;
  2163. };
  2164. struct __declspec(uuid("0000050b-0000-0010-8000-00aa006d2ea4"))
  2165. Parameter;
  2166.     // [ default ] interface _Parameter
  2167. //
  2168. // Wrapper method implementations
  2169. //
  2170. #include "msado15.tli"
  2171. #pragma pack(pop)