msado15.tlh
上传用户:biney012
上传日期:2022-05-09
资源大小:4592k
文件大小:88k
源码类别:

数据库系统

开发平台:

Visual C++

  1. // Created by Microsoft (R) C/C++ Compiler Version 12.00.8168.0 (2764df43).
  2. //
  3. // msado15.tlh
  4. //
  5. // C++ source equivalent of Win32 type library c:Program FilesCommon FilesSystemadomsado15.dll
  6. // compiler-generated file created 04/10/04 at 19:49:31 - 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("00000556-0000-0010-8000-00aa006d2ea4"))
  35. /* dual interface */ _Recordset;
  36. struct __declspec(uuid("00000555-0000-0010-8000-00aa006d2ea4"))
  37. /* dual interface */ Recordset21;
  38. struct __declspec(uuid("0000054f-0000-0010-8000-00aa006d2ea4"))
  39. /* dual interface */ Recordset20;
  40. struct __declspec(uuid("0000050e-0000-0010-8000-00aa006d2ea4"))
  41. /* dual interface */ Recordset15;
  42. struct __declspec(uuid("00000564-0000-0010-8000-00aa006d2ea4"))
  43. /* dual interface */ Fields;
  44. struct __declspec(uuid("0000054d-0000-0010-8000-00aa006d2ea4"))
  45. /* dual interface */ Fields20;
  46. struct __declspec(uuid("00000506-0000-0010-8000-00aa006d2ea4"))
  47. /* dual interface */ Fields15;
  48. struct __declspec(uuid("00000569-0000-0010-8000-00aa006d2ea4"))
  49. /* dual interface */ Field;
  50. struct __declspec(uuid("0000054c-0000-0010-8000-00aa006d2ea4"))
  51. /* dual interface */ Field20;
  52. struct __declspec(uuid("0000050c-0000-0010-8000-00aa006d2ea4"))
  53. /* dual interface */ _Parameter;
  54. struct __declspec(uuid("0000050d-0000-0010-8000-00aa006d2ea4"))
  55. /* dual interface */ Parameters;
  56. struct __declspec(uuid("0000054e-0000-0010-8000-00aa006d2ea4"))
  57. /* dual interface */ Command25;
  58. struct __declspec(uuid("b08400bd-f9d1-4d02-b856-71d5dba123e9"))
  59. /* dual interface */ _Command;
  60. struct __declspec(uuid("00000402-0000-0010-8000-00aa006d2ea4"))
  61. /* interface */ ConnectionEventsVt;
  62. struct __declspec(uuid("00000403-0000-0010-8000-00aa006d2ea4"))
  63. /* interface */ RecordsetEventsVt;
  64. struct __declspec(uuid("00000400-0000-0010-8000-00aa006d2ea4"))
  65. /* dispinterface */ ConnectionEvents;
  66. struct __declspec(uuid("00000266-0000-0010-8000-00aa006d2ea4"))
  67. /* dispinterface */ RecordsetEvents;
  68. struct __declspec(uuid("00000516-0000-0010-8000-00aa006d2ea4"))
  69. /* interface */ ADOConnectionConstruction15;
  70. struct __declspec(uuid("00000551-0000-0010-8000-00aa006d2ea4"))
  71. /* interface */ ADOConnectionConstruction;
  72. struct /* coclass */ Connection;
  73. struct __declspec(uuid("00000562-0000-0010-8000-00aa006d2ea4"))
  74. /* dual interface */ _Record;
  75. struct /* coclass */ Record;
  76. struct __declspec(uuid("00000565-0000-0010-8000-00aa006d2ea4"))
  77. /* dual interface */ _Stream;
  78. struct /* coclass */ Stream;
  79. struct __declspec(uuid("00000567-0000-0010-8000-00aa006d2ea4"))
  80. /* interface */ ADORecordConstruction;
  81. struct __declspec(uuid("00000568-0000-0010-8000-00aa006d2ea4"))
  82. /* interface */ ADOStreamConstruction;
  83. struct __declspec(uuid("00000517-0000-0010-8000-00aa006d2ea4"))
  84. /* interface */ ADOCommandConstruction;
  85. struct /* coclass */ Command;
  86. struct /* coclass */ Recordset;
  87. struct __declspec(uuid("00000283-0000-0010-8000-00aa006d2ea4"))
  88. /* interface */ ADORecordsetConstruction;
  89. struct __declspec(uuid("00000505-0000-0010-8000-00aa006d2ea4"))
  90. /* dual interface */ Field15;
  91. struct /* coclass */ Parameter;
  92. //
  93. // Smart pointer typedef declarations
  94. //
  95. _COM_SMARTPTR_TYPEDEF(_Collection, __uuidof(_Collection));
  96. _COM_SMARTPTR_TYPEDEF(_DynaCollection, __uuidof(_DynaCollection));
  97. _COM_SMARTPTR_TYPEDEF(_ADO, __uuidof(_ADO));
  98. _COM_SMARTPTR_TYPEDEF(Properties, __uuidof(Properties));
  99. _COM_SMARTPTR_TYPEDEF(Property, __uuidof(Property));
  100. _COM_SMARTPTR_TYPEDEF(Error, __uuidof(Error));
  101. _COM_SMARTPTR_TYPEDEF(Errors, __uuidof(Errors));
  102. _COM_SMARTPTR_TYPEDEF(Command15, __uuidof(Command15));
  103. _COM_SMARTPTR_TYPEDEF(Connection15, __uuidof(Connection15));
  104. _COM_SMARTPTR_TYPEDEF(_Connection, __uuidof(_Connection));
  105. _COM_SMARTPTR_TYPEDEF(Recordset15, __uuidof(Recordset15));
  106. _COM_SMARTPTR_TYPEDEF(Recordset20, __uuidof(Recordset20));
  107. _COM_SMARTPTR_TYPEDEF(Recordset21, __uuidof(Recordset21));
  108. _COM_SMARTPTR_TYPEDEF(_Recordset, __uuidof(_Recordset));
  109. _COM_SMARTPTR_TYPEDEF(Fields15, __uuidof(Fields15));
  110. _COM_SMARTPTR_TYPEDEF(Fields20, __uuidof(Fields20));
  111. _COM_SMARTPTR_TYPEDEF(Fields, __uuidof(Fields));
  112. _COM_SMARTPTR_TYPEDEF(Field20, __uuidof(Field20));
  113. _COM_SMARTPTR_TYPEDEF(Field, __uuidof(Field));
  114. _COM_SMARTPTR_TYPEDEF(_Parameter, __uuidof(_Parameter));
  115. _COM_SMARTPTR_TYPEDEF(Parameters, __uuidof(Parameters));
  116. _COM_SMARTPTR_TYPEDEF(Command25, __uuidof(Command25));
  117. _COM_SMARTPTR_TYPEDEF(_Command, __uuidof(_Command));
  118. _COM_SMARTPTR_TYPEDEF(ConnectionEventsVt, __uuidof(ConnectionEventsVt));
  119. _COM_SMARTPTR_TYPEDEF(RecordsetEventsVt, __uuidof(RecordsetEventsVt));
  120. _COM_SMARTPTR_TYPEDEF(ConnectionEvents, __uuidof(IDispatch));
  121. _COM_SMARTPTR_TYPEDEF(RecordsetEvents, __uuidof(IDispatch));
  122. _COM_SMARTPTR_TYPEDEF(ADOConnectionConstruction15, __uuidof(ADOConnectionConstruction15));
  123. _COM_SMARTPTR_TYPEDEF(ADOConnectionConstruction, __uuidof(ADOConnectionConstruction));
  124. _COM_SMARTPTR_TYPEDEF(_Record, __uuidof(_Record));
  125. _COM_SMARTPTR_TYPEDEF(_Stream, __uuidof(_Stream));
  126. _COM_SMARTPTR_TYPEDEF(ADORecordConstruction, __uuidof(ADORecordConstruction));
  127. _COM_SMARTPTR_TYPEDEF(ADOStreamConstruction, __uuidof(ADOStreamConstruction));
  128. _COM_SMARTPTR_TYPEDEF(ADOCommandConstruction, __uuidof(ADOCommandConstruction));
  129. _COM_SMARTPTR_TYPEDEF(ADORecordsetConstruction, __uuidof(ADORecordsetConstruction));
  130. _COM_SMARTPTR_TYPEDEF(Field15, __uuidof(Field15));
  131. //
  132. // Type library items
  133. //
  134. enum CursorTypeEnum
  135. {
  136.     adOpenUnspecified = -1,
  137.     adOpenForwardOnly = 0,
  138.     adOpenKeyset = 1,
  139.     adOpenDynamic = 2,
  140.     adOpenStatic = 3
  141. };
  142. enum CursorOptionEnum
  143. {
  144.     adHoldRecords = 256,
  145.     adMovePrevious = 512,
  146.     adAddNew = 16778240,
  147.     adDelete = 16779264,
  148.     adUpdate = 16809984,
  149.     adBookmark = 8192,
  150.     adApproxPosition = 16384,
  151.     adUpdateBatch = 65536,
  152.     adResync = 131072,
  153.     adNotify = 262144,
  154.     adFind = 524288,
  155.     adSeek = 4194304,
  156.     adIndex = 8388608
  157. };
  158. enum LockTypeEnum
  159. {
  160.     adLockUnspecified = -1,
  161.     adLockReadOnly = 1,
  162.     adLockPessimistic = 2,
  163.     adLockOptimistic = 3,
  164.     adLockBatchOptimistic = 4
  165. };
  166. enum ExecuteOptionEnum
  167. {
  168.     adOptionUnspecified = -1,
  169.     adAsyncExecute = 16,
  170.     adAsyncFetch = 32,
  171.     adAsyncFetchNonBlocking = 64,
  172.     adExecuteNoRecords = 128,
  173.     adExecuteStream = 1024,
  174.     adExecuteRecord = 2048
  175. };
  176. enum ConnectOptionEnum
  177. {
  178.     adConnectUnspecified = -1,
  179.     adAsyncConnect = 16
  180. };
  181. enum ObjectStateEnum
  182. {
  183.     adStateClosed = 0,
  184.     adStateOpen = 1,
  185.     adStateConnecting = 2,
  186.     adStateExecuting = 4,
  187.     adStateFetching = 8
  188. };
  189. enum CursorLocationEnum
  190. {
  191.     adUseNone = 1,
  192.     adUseServer = 2,
  193.     adUseClient = 3,
  194.     adUseClientBatch = 3
  195. };
  196. enum DataTypeEnum
  197. {
  198.     adEmpty = 0,
  199.     adTinyInt = 16,
  200.     adSmallInt = 2,
  201.     adInteger = 3,
  202.     adBigInt = 20,
  203.     adUnsignedTinyInt = 17,
  204.     adUnsignedSmallInt = 18,
  205.     adUnsignedInt = 19,
  206.     adUnsignedBigInt = 21,
  207.     adSingle = 4,
  208.     adDouble = 5,
  209.     adCurrency = 6,
  210.     adDecimal = 14,
  211.     adNumeric = 131,
  212.     adBoolean = 11,
  213.     adError = 10,
  214.     adUserDefined = 132,
  215.     adVariant = 12,
  216.     adIDispatch = 9,
  217.     adIUnknown = 13,
  218.     adGUID = 72,
  219.     adDate = 7,
  220.     adDBDate = 133,
  221.     adDBTime = 134,
  222.     adDBTimeStamp = 135,
  223.     adBSTR = 8,
  224.     adChar = 129,
  225.     adVarChar = 200,
  226.     adLongVarChar = 201,
  227.     adWChar = 130,
  228.     adVarWChar = 202,
  229.     adLongVarWChar = 203,
  230.     adBinary = 128,
  231.     adVarBinary = 204,
  232.     adLongVarBinary = 205,
  233.     adChapter = 136,
  234.     adFileTime = 64,
  235.     adPropVariant = 138,
  236.     adVarNumeric = 139,
  237.     adArray = 8192
  238. };
  239. enum FieldAttributeEnum
  240. {
  241.     adFldUnspecified = -1,
  242.     adFldMayDefer = 2,
  243.     adFldUpdatable = 4,
  244.     adFldUnknownUpdatable = 8,
  245.     adFldFixed = 16,
  246.     adFldIsNullable = 32,
  247.     adFldMayBeNull = 64,
  248.     adFldLong = 128,
  249.     adFldRowID = 256,
  250.     adFldRowVersion = 512,
  251.     adFldCacheDeferred = 4096,
  252.     adFldIsChapter = 8192,
  253.     adFldNegativeScale = 16384,
  254.     adFldKeyColumn = 32768,
  255.     adFldIsRowURL = 65536,
  256.     adFldIsDefaultStream = 131072,
  257.     adFldIsCollection = 262144
  258. };
  259. enum EditModeEnum
  260. {
  261.     adEditNone = 0,
  262.     adEditInProgress = 1,
  263.     adEditAdd = 2,
  264.     adEditDelete = 4
  265. };
  266. enum RecordStatusEnum
  267. {
  268.     adRecOK = 0,
  269.     adRecNew = 1,
  270.     adRecModified = 2,
  271.     adRecDeleted = 4,
  272.     adRecUnmodified = 8,
  273.     adRecInvalid = 16,
  274.     adRecMultipleChanges = 64,
  275.     adRecPendingChanges = 128,
  276.     adRecCanceled = 256,
  277.     adRecCantRelease = 1024,
  278.     adRecConcurrencyViolation = 2048,
  279.     adRecIntegrityViolation = 4096,
  280.     adRecMaxChangesExceeded = 8192,
  281.     adRecObjectOpen = 16384,
  282.     adRecOutOfMemory = 32768,
  283.     adRecPermissionDenied = 65536,
  284.     adRecSchemaViolation = 131072,
  285.     adRecDBDeleted = 262144
  286. };
  287. enum GetRowsOptionEnum
  288. {
  289.     adGetRowsRest = -1
  290. };
  291. enum PositionEnum
  292. {
  293.     adPosUnknown = -1,
  294.     adPosBOF = -2,
  295.     adPosEOF = -3
  296. };
  297. enum BookmarkEnum
  298. {
  299.     adBookmarkCurrent = 0,
  300.     adBookmarkFirst = 1,
  301.     adBookmarkLast = 2
  302. };
  303. enum MarshalOptionsEnum
  304. {
  305.     adMarshalAll = 0,
  306.     adMarshalModifiedOnly = 1
  307. };
  308. enum AffectEnum
  309. {
  310.     adAffectCurrent = 1,
  311.     adAffectGroup = 2,
  312.     adAffectAll = 3,
  313.     adAffectAllChapters = 4
  314. };
  315. enum ResyncEnum
  316. {
  317.     adResyncUnderlyingValues = 1,
  318.     adResyncAllValues = 2
  319. };
  320. enum CompareEnum
  321. {
  322.     adCompareLessThan = 0,
  323.     adCompareEqual = 1,
  324.     adCompareGreaterThan = 2,
  325.     adCompareNotEqual = 3,
  326.     adCompareNotComparable = 4
  327. };
  328. enum FilterGroupEnum
  329. {
  330.     adFilterNone = 0,
  331.     adFilterPendingRecords = 1,
  332.     adFilterAffectedRecords = 2,
  333.     adFilterFetchedRecords = 3,
  334.     adFilterPredicate = 4,
  335.     adFilterConflictingRecords = 5
  336. };
  337. enum SearchDirectionEnum
  338. {
  339.     adSearchForward = 1,
  340.     adSearchBackward = -1
  341. };
  342. enum PersistFormatEnum
  343. {
  344.     adPersistADTG = 0,
  345.     adPersistXML = 1
  346. };
  347. enum StringFormatEnum
  348. {
  349.     adClipString = 2
  350. };
  351. enum ConnectPromptEnum
  352. {
  353.     adPromptAlways = 1,
  354.     adPromptComplete = 2,
  355.     adPromptCompleteRequired = 3,
  356.     adPromptNever = 4
  357. };
  358. enum ConnectModeEnum
  359. {
  360.     adModeUnknown = 0,
  361.     adModeRead = 1,
  362.     adModeWrite = 2,
  363.     adModeReadWrite = 3,
  364.     adModeShareDenyRead = 4,
  365.     adModeShareDenyWrite = 8,
  366.     adModeShareExclusive = 12,
  367.     adModeShareDenyNone = 16,
  368.     adModeRecursive = 4194304
  369. };
  370. enum RecordCreateOptionsEnum
  371. {
  372.     adCreateCollection = 8192,
  373.     adCreateStructDoc = -2147483648,
  374.     adCreateNonCollection = 0,
  375.     adOpenIfExists = 33554432,
  376.     adCreateOverwrite = 67108864,
  377.     adFailIfNotExists = -1
  378. };
  379. enum RecordOpenOptionsEnum
  380. {
  381.     adOpenRecordUnspecified = -1,
  382.     adOpenSource = 8388608,
  383.     adOpenOutput = 8388608,
  384.     adOpenAsync = 4096,
  385.     adDelayFetchStream = 16384,
  386.     adDelayFetchFields = 32768,
  387.     adOpenExecuteCommand = 65536
  388. };
  389. enum IsolationLevelEnum
  390. {
  391.     adXactUnspecified = -1,
  392.     adXactChaos = 16,
  393.     adXactReadUncommitted = 256,
  394.     adXactBrowse = 256,
  395.     adXactCursorStability = 4096,
  396.     adXactReadCommitted = 4096,
  397.     adXactRepeatableRead = 65536,
  398.     adXactSerializable = 1048576,
  399.     adXactIsolated = 1048576
  400. };
  401. enum XactAttributeEnum
  402. {
  403.     adXactCommitRetaining = 131072,
  404.     adXactAbortRetaining = 262144,
  405.     adXactAsyncPhaseOne = 524288,
  406.     adXactSyncPhaseOne = 1048576
  407. };
  408. enum PropertyAttributesEnum
  409. {
  410.     adPropNotSupported = 0,
  411.     adPropRequired = 1,
  412.     adPropOptional = 2,
  413.     adPropRead = 512,
  414.     adPropWrite = 1024
  415. };
  416. enum ErrorValueEnum
  417. {
  418.     adErrProviderFailed = 3000,
  419.     adErrInvalidArgument = 3001,
  420.     adErrOpeningFile = 3002,
  421.     adErrReadFile = 3003,
  422.     adErrWriteFile = 3004,
  423.     adErrNoCurrentRecord = 3021,
  424.     adErrIllegalOperation = 3219,
  425.     adErrCantChangeProvider = 3220,
  426.     adErrInTransaction = 3246,
  427.     adErrFeatureNotAvailable = 3251,
  428.     adErrItemNotFound = 3265,
  429.     adErrObjectInCollection = 3367,
  430.     adErrObjectNotSet = 3420,
  431.     adErrDataConversion = 3421,
  432.     adErrObjectClosed = 3704,
  433.     adErrObjectOpen = 3705,
  434.     adErrProviderNotFound = 3706,
  435.     adErrBoundToCommand = 3707,
  436.     adErrInvalidParamInfo = 3708,
  437.     adErrInvalidConnection = 3709,
  438.     adErrNotReentrant = 3710,
  439.     adErrStillExecuting = 3711,
  440.     adErrOperationCancelled = 3712,
  441.     adErrStillConnecting = 3713,
  442.     adErrInvalidTransaction = 3714,
  443.     adErrNotExecuting = 3715,
  444.     adErrUnsafeOperation = 3716,
  445.     adwrnSecurityDialog = 3717,
  446.     adwrnSecurityDialogHeader = 3718,
  447.     adErrIntegrityViolation = 3719,
  448.     adErrPermissionDenied = 3720,
  449.     adErrDataOverflow = 3721,
  450.     adErrSchemaViolation = 3722,
  451.     adErrSignMismatch = 3723,
  452.     adErrCantConvertvalue = 3724,
  453.     adErrCantCreate = 3725,
  454.     adErrColumnNotOnThisRow = 3726,
  455.     adErrURLDoesNotExist = 3727,
  456.     adErrTreePermissionDenied = 3728,
  457.     adErrInvalidURL = 3729,
  458.     adErrResourceLocked = 3730,
  459.     adErrResourceExists = 3731,
  460.     adErrCannotComplete = 3732,
  461.     adErrVolumeNotFound = 3733,
  462.     adErrOutOfSpace = 3734,
  463.     adErrResourceOutOfScope = 3735,
  464.     adErrUnavailable = 3736,
  465.     adErrURLNamedRowDoesNotExist = 3737,
  466.     adErrDelResOutOfScope = 3738,
  467.     adErrPropInvalidColumn = 3739,
  468.     adErrPropInvalidOption = 3740,
  469.     adErrPropInvalidValue = 3741,
  470.     adErrPropConflicting = 3742,
  471.     adErrPropNotAllSettable = 3743,
  472.     adErrPropNotSet = 3744,
  473.     adErrPropNotSettable = 3745,
  474.     adErrPropNotSupported = 3746,
  475.     adErrCatalogNotSet = 3747,
  476.     adErrCantChangeConnection = 3748,
  477.     adErrFieldsUpdateFailed = 3749,
  478.     adErrDenyNotSupported = 3750,
  479.     adErrDenyTypeNotSupported = 3751
  480. };
  481. enum ParameterAttributesEnum
  482. {
  483.     adParamSigned = 16,
  484.     adParamNullable = 64,
  485.     adParamLong = 128
  486. };
  487. enum ParameterDirectionEnum
  488. {
  489.     adParamUnknown = 0,
  490.     adParamInput = 1,
  491.     adParamOutput = 2,
  492.     adParamInputOutput = 3,
  493.     adParamReturnValue = 4
  494. };
  495. enum CommandTypeEnum
  496. {
  497.     adCmdUnspecified = -1,
  498.     adCmdUnknown = 8,
  499.     adCmdText = 1,
  500.     adCmdTable = 2,
  501.     adCmdStoredProc = 4,
  502.     adCmdFile = 256,
  503.     adCmdTableDirect = 512
  504. };
  505. enum EventStatusEnum
  506. {
  507.     adStatusOK = 1,
  508.     adStatusErrorsOccurred = 2,
  509.     adStatusCantDeny = 3,
  510.     adStatusCancel = 4,
  511.     adStatusUnwantedEvent = 5
  512. };
  513. enum EventReasonEnum
  514. {
  515.     adRsnAddNew = 1,
  516.     adRsnDelete = 2,
  517.     adRsnUpdate = 3,
  518.     adRsnUndoUpdate = 4,
  519.     adRsnUndoAddNew = 5,
  520.     adRsnUndoDelete = 6,
  521.     adRsnRequery = 7,
  522.     adRsnResynch = 8,
  523.     adRsnClose = 9,
  524.     adRsnMove = 10,
  525.     adRsnFirstChange = 11,
  526.     adRsnMoveFirst = 12,
  527.     adRsnMoveNext = 13,
  528.     adRsnMovePrevious = 14,
  529.     adRsnMoveLast = 15
  530. };
  531. enum SchemaEnum
  532. {
  533.     adSchemaProviderSpecific = -1,
  534.     adSchemaAsserts = 0,
  535.     adSchemaCatalogs = 1,
  536.     adSchemaCharacterSets = 2,
  537.     adSchemaCollations = 3,
  538.     adSchemaColumns = 4,
  539.     adSchemaCheckConstraints = 5,
  540.     adSchemaConstraintColumnUsage = 6,
  541.     adSchemaConstraintTableUsage = 7,
  542.     adSchemaKeyColumnUsage = 8,
  543.     adSchemaReferentialContraints = 9,
  544.     adSchemaReferentialConstraints = 9,
  545.     adSchemaTableConstraints = 10,
  546.     adSchemaColumnsDomainUsage = 11,
  547.     adSchemaIndexes = 12,
  548.     adSchemaColumnPrivileges = 13,
  549.     adSchemaTablePrivileges = 14,
  550.     adSchemaUsagePrivileges = 15,
  551.     adSchemaProcedures = 16,
  552.     adSchemaSchemata = 17,
  553.     adSchemaSQLLanguages = 18,
  554.     adSchemaStatistics = 19,
  555.     adSchemaTables = 20,
  556.     adSchemaTranslations = 21,
  557.     adSchemaProviderTypes = 22,
  558.     adSchemaViews = 23,
  559.     adSchemaViewColumnUsage = 24,
  560.     adSchemaViewTableUsage = 25,
  561.     adSchemaProcedureParameters = 26,
  562.     adSchemaForeignKeys = 27,
  563.     adSchemaPrimaryKeys = 28,
  564.     adSchemaProcedureColumns = 29,
  565.     adSchemaDBInfoKeywords = 30,
  566.     adSchemaDBInfoLiterals = 31,
  567.     adSchemaCubes = 32,
  568.     adSchemaDimensions = 33,
  569.     adSchemaHierarchies = 34,
  570.     adSchemaLevels = 35,
  571.     adSchemaMeasures = 36,
  572.     adSchemaProperties = 37,
  573.     adSchemaMembers = 38,
  574.     adSchemaTrustees = 39,
  575.     adSchemaFunctions = 40,
  576.     adSchemaActions = 41,
  577.     adSchemaCommands = 42,
  578.     adSchemaSets = 43
  579. };
  580. enum FieldStatusEnum
  581. {
  582.     adFieldOK = 0,
  583.     adFieldCantConvertValue = 2,
  584.     adFieldIsNull = 3,
  585.     adFieldTruncated = 4,
  586.     adFieldSignMismatch = 5,
  587.     adFieldDataOverflow = 6,
  588.     adFieldCantCreate = 7,
  589.     adFieldUnavailable = 8,
  590.     adFieldPermissionDenied = 9,
  591.     adFieldIntegrityViolation = 10,
  592.     adFieldSchemaViolation = 11,
  593.     adFieldBadStatus = 12,
  594.     adFieldDefault = 13,
  595.     adFieldIgnore = 15,
  596.     adFieldDoesNotExist = 16,
  597.     adFieldInvalidURL = 17,
  598.     adFieldResourceLocked = 18,
  599.     adFieldResourceExists = 19,
  600.     adFieldCannotComplete = 20,
  601.     adFieldVolumeNotFound = 21,
  602.     adFieldOutOfSpace = 22,
  603.     adFieldCannotDeleteSource = 23,
  604.     adFieldReadOnly = 24,
  605.     adFieldResourceOutOfScope = 25,
  606.     adFieldAlreadyExists = 26,
  607.     adFieldPendingInsert = 65536,
  608.     adFieldPendingDelete = 131072,
  609.     adFieldPendingChange = 262144,
  610.     adFieldPendingUnknown = 524288,
  611.     adFieldPendingUnknownDelete = 1048576
  612. };
  613. enum SeekEnum
  614. {
  615.     adSeekFirstEQ = 1,
  616.     adSeekLastEQ = 2,
  617.     adSeekAfterEQ = 4,
  618.     adSeekAfter = 8,
  619.     adSeekBeforeEQ = 16,
  620.     adSeekBefore = 32
  621. };
  622. enum ADCPROP_UPDATECRITERIA_ENUM
  623. {
  624.     adCriteriaKey = 0,
  625.     adCriteriaAllCols = 1,
  626.     adCriteriaUpdCols = 2,
  627.     adCriteriaTimeStamp = 3
  628. };
  629. enum ADCPROP_ASYNCTHREADPRIORITY_ENUM
  630. {
  631.     adPriorityLowest = 1,
  632.     adPriorityBelowNormal = 2,
  633.     adPriorityNormal = 3,
  634.     adPriorityAboveNormal = 4,
  635.     adPriorityHighest = 5
  636. };
  637. enum ADCPROP_AUTORECALC_ENUM
  638. {
  639.     adRecalcUpFront = 0,
  640.     adRecalcAlways = 1
  641. };
  642. enum ADCPROP_UPDATERESYNC_ENUM
  643. {
  644.     adResyncNone = 0,
  645.     adResyncAutoIncrement = 1,
  646.     adResyncConflicts = 2,
  647.     adResyncUpdates = 4,
  648.     adResyncInserts = 8,
  649.     adResyncAll = 15
  650. };
  651. enum MoveRecordOptionsEnum
  652. {
  653.     adMoveUnspecified = -1,
  654.     adMoveOverWrite = 1,
  655.     adMoveDontUpdateLinks = 2,
  656.     adMoveAllowEmulation = 4
  657. };
  658. enum CopyRecordOptionsEnum
  659. {
  660.     adCopyUnspecified = -1,
  661.     adCopyOverWrite = 1,
  662.     adCopyAllowEmulation = 4,
  663.     adCopyNonRecursive = 2
  664. };
  665. enum StreamTypeEnum
  666. {
  667.     adTypeBinary = 1,
  668.     adTypeText = 2
  669. };
  670. enum LineSeparatorEnum
  671. {
  672.     adLF = 10,
  673.     adCR = 13,
  674.     adCRLF = -1
  675. };
  676. enum StreamOpenOptionsEnum
  677. {
  678.     adOpenStreamUnspecified = -1,
  679.     adOpenStreamAsync = 1,
  680.     adOpenStreamFromRecord = 4
  681. };
  682. enum StreamWriteEnum
  683. {
  684.     adWriteChar = 0,
  685.     adWriteLine = 1,
  686.     stWriteChar = 0,
  687.     stWriteLine = 1
  688. };
  689. enum SaveOptionsEnum
  690. {
  691.     adSaveCreateNotExist = 1,
  692.     adSaveCreateOverWrite = 2
  693. };
  694. enum FieldEnum
  695. {
  696.     adDefaultStream = -1,
  697.     adRecordURL = -2
  698. };
  699. enum StreamReadEnum
  700. {
  701.     adReadAll = -1,
  702.     adReadLine = -2
  703. };
  704. enum RecordTypeEnum
  705. {
  706.     adSimpleRecord = 0,
  707.     adCollectionRecord = 1,
  708.     adStructDoc = 2
  709. };
  710. struct __declspec(uuid("00000512-0000-0010-8000-00aa006d2ea4"))
  711. _Collection : IDispatch
  712. {
  713.     //
  714.     // Property data
  715.     //
  716.     __declspec(property(get=GetCount))
  717.     long Count;
  718.     //
  719.     // Wrapper methods for error-handling
  720.     //
  721.     long GetCount ( );
  722.     IUnknownPtr _NewEnum ( );
  723.     HRESULT Refresh ( );
  724.     //
  725.     // Raw methods provided by interface
  726.     //
  727.     virtual HRESULT __stdcall get_Count (
  728.         long * c ) = 0;
  729.     virtual HRESULT __stdcall raw__NewEnum (
  730.         IUnknown * * ppvObject ) = 0;
  731.     virtual HRESULT __stdcall raw_Refresh ( ) = 0;
  732. };
  733. struct __declspec(uuid("00000513-0000-0010-8000-00aa006d2ea4"))
  734. _DynaCollection : _Collection
  735. {
  736.     //
  737.     // Wrapper methods for error-handling
  738.     //
  739.     HRESULT Append (
  740.         IDispatch * Object );
  741.     HRESULT Delete (
  742.         const _variant_t & Index );
  743.     //
  744.     // Raw methods provided by interface
  745.     //
  746.     virtual HRESULT __stdcall raw_Append (
  747.         IDispatch * Object ) = 0;
  748.     virtual HRESULT __stdcall raw_Delete (
  749.         VARIANT Index ) = 0;
  750. };
  751. struct __declspec(uuid("00000534-0000-0010-8000-00aa006d2ea4"))
  752. _ADO : IDispatch
  753. {
  754.     //
  755.     // Property data
  756.     //
  757.     __declspec(property(get=GetProperties))
  758.     PropertiesPtr Properties;
  759.     //
  760.     // Wrapper methods for error-handling
  761.     //
  762.     PropertiesPtr GetProperties ( );
  763.     //
  764.     // Raw methods provided by interface
  765.     //
  766.     virtual HRESULT __stdcall get_Properties (
  767.         struct Properties * * ppvObject ) = 0;
  768. };
  769. struct __declspec(uuid("00000504-0000-0010-8000-00aa006d2ea4"))
  770. Properties : _Collection
  771. {
  772.     //
  773.     // Property data
  774.     //
  775.     __declspec(property(get=GetItem))
  776.     PropertyPtr Item[];
  777.     //
  778.     // Wrapper methods for error-handling
  779.     //
  780.     PropertyPtr GetItem (
  781.         const _variant_t & Index );
  782.     //
  783.     // Raw methods provided by interface
  784.     //
  785.     virtual HRESULT __stdcall get_Item (
  786.         VARIANT Index,
  787.         struct Property * * ppvObject ) = 0;
  788. };
  789. struct __declspec(uuid("00000503-0000-0010-8000-00aa006d2ea4"))
  790. Property : IDispatch
  791. {
  792.     //
  793.     // Property data
  794.     //
  795.     __declspec(property(get=GetValue,put=PutValue))
  796.     _variant_t Value;
  797.     __declspec(property(get=GetName))
  798.     _bstr_t Name;
  799.     __declspec(property(get=GetType))
  800.     enum DataTypeEnum Type;
  801.     __declspec(property(get=GetAttributes,put=PutAttributes))
  802.     long Attributes;
  803.     //
  804.     // Wrapper methods for error-handling
  805.     //
  806.     _variant_t GetValue ( );
  807.     void PutValue (
  808.         const _variant_t & pval );
  809.     _bstr_t GetName ( );
  810.     enum DataTypeEnum GetType ( );
  811.     long GetAttributes ( );
  812.     void PutAttributes (
  813.         long plAttributes );
  814.     //
  815.     // Raw methods provided by interface
  816.     //
  817.     virtual HRESULT __stdcall get_Value (
  818.         VARIANT * pval ) = 0;
  819.     virtual HRESULT __stdcall put_Value (
  820.         VARIANT pval ) = 0;
  821.     virtual HRESULT __stdcall get_Name (
  822.         BSTR * pbstr ) = 0;
  823.     virtual HRESULT __stdcall get_Type (
  824.         enum DataTypeEnum * ptype ) = 0;
  825.     virtual HRESULT __stdcall get_Attributes (
  826.         long * plAttributes ) = 0;
  827.     virtual HRESULT __stdcall put_Attributes (
  828.         long plAttributes ) = 0;
  829. };
  830. struct __declspec(uuid("00000500-0000-0010-8000-00aa006d2ea4"))
  831. Error : IDispatch
  832. {
  833.     //
  834.     // Property data
  835.     //
  836.     __declspec(property(get=GetDescription))
  837.     _bstr_t Description;
  838.     __declspec(property(get=GetNumber))
  839.     long Number;
  840.     __declspec(property(get=GetSource))
  841.     _bstr_t Source;
  842.     __declspec(property(get=GetHelpFile))
  843.     _bstr_t HelpFile;
  844.     __declspec(property(get=GetHelpContext))
  845.     long HelpContext;
  846.     __declspec(property(get=GetSQLState))
  847.     _bstr_t SQLState;
  848.     __declspec(property(get=GetNativeError))
  849.     long NativeError;
  850.     //
  851.     // Wrapper methods for error-handling
  852.     //
  853.     long GetNumber ( );
  854.     _bstr_t GetSource ( );
  855.     _bstr_t GetDescription ( );
  856.     _bstr_t GetHelpFile ( );
  857.     long GetHelpContext ( );
  858.     _bstr_t GetSQLState ( );
  859.     long GetNativeError ( );
  860.     //
  861.     // Raw methods provided by interface
  862.     //
  863.     virtual HRESULT __stdcall get_Number (
  864.         long * pl ) = 0;
  865.     virtual HRESULT __stdcall get_Source (
  866.         BSTR * pbstr ) = 0;
  867.     virtual HRESULT __stdcall get_Description (
  868.         BSTR * pbstr ) = 0;
  869.     virtual HRESULT __stdcall get_HelpFile (
  870.         BSTR * pbstr ) = 0;
  871.     virtual HRESULT __stdcall get_HelpContext (
  872.         long * pl ) = 0;
  873.     virtual HRESULT __stdcall get_SQLState (
  874.         BSTR * pbstr ) = 0;
  875.     virtual HRESULT __stdcall get_NativeError (
  876.         long * pl ) = 0;
  877. };
  878. struct __declspec(uuid("00000501-0000-0010-8000-00aa006d2ea4"))
  879. Errors : _Collection
  880. {
  881.     //
  882.     // Property data
  883.     //
  884.     __declspec(property(get=GetItem))
  885.     ErrorPtr Item[];
  886.     //
  887.     // Wrapper methods for error-handling
  888.     //
  889.     ErrorPtr GetItem (
  890.         const _variant_t & Index );
  891.     HRESULT Clear ( );
  892.     //
  893.     // Raw methods provided by interface
  894.     //
  895.     virtual HRESULT __stdcall get_Item (
  896.         VARIANT Index,
  897.         struct Error * * ppvObject ) = 0;
  898.     virtual HRESULT __stdcall raw_Clear ( ) = 0;
  899. };
  900. struct __declspec(uuid("00000508-0000-0010-8000-00aa006d2ea4"))
  901. Command15 : _ADO
  902. {
  903.     //
  904.     // Property data
  905.     //
  906.     __declspec(property(get=GetParameters))
  907.     ParametersPtr Parameters;
  908.     __declspec(property(get=GetActiveConnection,put=PutRefActiveConnection))
  909.     _ConnectionPtr ActiveConnection;
  910.     __declspec(property(get=GetCommandText,put=PutCommandText))
  911.     _bstr_t CommandText;
  912.     __declspec(property(get=GetCommandTimeout,put=PutCommandTimeout))
  913.     long CommandTimeout;
  914.     __declspec(property(get=GetPrepared,put=PutPrepared))
  915.     VARIANT_BOOL Prepared;
  916.     __declspec(property(get=GetCommandType,put=PutCommandType))
  917.     enum CommandTypeEnum CommandType;
  918.     __declspec(property(get=GetName,put=PutName))
  919.     _bstr_t Name;
  920.     //
  921.     // Wrapper methods for error-handling
  922.     //
  923.     _ConnectionPtr GetActiveConnection ( );
  924.     void PutRefActiveConnection (
  925.         struct _Connection * ppvObject );
  926.     void PutActiveConnection (
  927.         const _variant_t & ppvObject );
  928.     _bstr_t GetCommandText ( );
  929.     void PutCommandText (
  930.         _bstr_t pbstr );
  931.     long GetCommandTimeout ( );
  932.     void PutCommandTimeout (
  933.         long pl );
  934.     VARIANT_BOOL GetPrepared ( );
  935.     void PutPrepared (
  936.         VARIANT_BOOL pfPrepared );
  937.     _RecordsetPtr Execute (
  938.         VARIANT * RecordsAffected,
  939.         VARIANT * Parameters,
  940.         long Options );
  941.     _ParameterPtr CreateParameter (
  942.         _bstr_t Name,
  943.         enum DataTypeEnum Type,
  944.         enum ParameterDirectionEnum Direction,
  945.         long Size,
  946.         const _variant_t & Value = vtMissing );
  947.     ParametersPtr GetParameters ( );
  948.     void PutCommandType (
  949.         enum CommandTypeEnum plCmdType );
  950.     enum CommandTypeEnum GetCommandType ( );
  951.     _bstr_t GetName ( );
  952.     void PutName (
  953.         _bstr_t pbstrName );
  954.     //
  955.     // Raw methods provided by interface
  956.     //
  957.     virtual HRESULT __stdcall get_ActiveConnection (
  958.         struct _Connection * * ppvObject ) = 0;
  959.     virtual HRESULT __stdcall putref_ActiveConnection (
  960.         struct _Connection * ppvObject ) = 0;
  961.     virtual HRESULT __stdcall put_ActiveConnection (
  962.         VARIANT ppvObject ) = 0;
  963.     virtual HRESULT __stdcall get_CommandText (
  964.         BSTR * pbstr ) = 0;
  965.     virtual HRESULT __stdcall put_CommandText (
  966.         BSTR pbstr ) = 0;
  967.     virtual HRESULT __stdcall get_CommandTimeout (
  968.         long * pl ) = 0;
  969.     virtual HRESULT __stdcall put_CommandTimeout (
  970.         long pl ) = 0;
  971.     virtual HRESULT __stdcall get_Prepared (
  972.         VARIANT_BOOL * pfPrepared ) = 0;
  973.     virtual HRESULT __stdcall put_Prepared (
  974.         VARIANT_BOOL pfPrepared ) = 0;
  975.     virtual HRESULT __stdcall raw_Execute (
  976.         VARIANT * RecordsAffected,
  977.         VARIANT * Parameters,
  978.         long Options,
  979.         struct _Recordset * * ppiRs ) = 0;
  980.     virtual HRESULT __stdcall raw_CreateParameter (
  981.         BSTR Name,
  982.         enum DataTypeEnum Type,
  983.         enum ParameterDirectionEnum Direction,
  984.         long Size,
  985.         VARIANT Value,
  986.         struct _Parameter * * ppiprm ) = 0;
  987.     virtual HRESULT __stdcall get_Parameters (
  988.         struct Parameters * * ppvObject ) = 0;
  989.     virtual HRESULT __stdcall put_CommandType (
  990.         enum CommandTypeEnum plCmdType ) = 0;
  991.     virtual HRESULT __stdcall get_CommandType (
  992.         enum CommandTypeEnum * plCmdType ) = 0;
  993.     virtual HRESULT __stdcall get_Name (
  994.         BSTR * pbstrName ) = 0;
  995.     virtual HRESULT __stdcall put_Name (
  996.         BSTR pbstrName ) = 0;
  997. };
  998. struct __declspec(uuid("00000515-0000-0010-8000-00aa006d2ea4"))
  999. Connection15 : _ADO
  1000. {
  1001.     //
  1002.     // Property data
  1003.     //
  1004.     __declspec(property(get=GetConnectionString,put=PutConnectionString))
  1005.     _bstr_t ConnectionString;
  1006.     __declspec(property(get=GetCommandTimeout,put=PutCommandTimeout))
  1007.     long CommandTimeout;
  1008.     __declspec(property(get=GetConnectionTimeout,put=PutConnectionTimeout))
  1009.     long ConnectionTimeout;
  1010.     __declspec(property(get=GetVersion))
  1011.     _bstr_t Version;
  1012.     __declspec(property(get=GetErrors))
  1013.     ErrorsPtr Errors;
  1014.     __declspec(property(get=GetDefaultDatabase,put=PutDefaultDatabase))
  1015.     _bstr_t DefaultDatabase;
  1016.     __declspec(property(get=GetIsolationLevel,put=PutIsolationLevel))
  1017.     enum IsolationLevelEnum IsolationLevel;
  1018.     __declspec(property(get=GetAttributes,put=PutAttributes))
  1019.     long Attributes;
  1020.     __declspec(property(get=GetCursorLocation,put=PutCursorLocation))
  1021.     enum CursorLocationEnum CursorLocation;
  1022.     __declspec(property(get=GetMode,put=PutMode))
  1023.     enum ConnectModeEnum Mode;
  1024.     __declspec(property(get=GetProvider,put=PutProvider))
  1025.     _bstr_t Provider;
  1026.     __declspec(property(get=GetState))
  1027.     long State;
  1028.     //
  1029.     // Wrapper methods for error-handling
  1030.     //
  1031.     _bstr_t GetConnectionString ( );
  1032.     void PutConnectionString (
  1033.         _bstr_t pbstr );
  1034.     long GetCommandTimeout ( );
  1035.     void PutCommandTimeout (
  1036.         long plTimeout );
  1037.     long GetConnectionTimeout ( );
  1038.     void PutConnectionTimeout (
  1039.         long plTimeout );
  1040.     _bstr_t GetVersion ( );
  1041.     HRESULT Close ( );
  1042.     _RecordsetPtr Execute (
  1043.         _bstr_t CommandText,
  1044.         VARIANT * RecordsAffected,
  1045.         long Options );
  1046.     long BeginTrans ( );
  1047.     HRESULT CommitTrans ( );
  1048.     HRESULT RollbackTrans ( );
  1049.     HRESULT Open (
  1050.         _bstr_t ConnectionString,
  1051.         _bstr_t UserID,
  1052.         _bstr_t Password,
  1053.         long Options );
  1054.     ErrorsPtr GetErrors ( );
  1055.     _bstr_t GetDefaultDatabase ( );
  1056.     void PutDefaultDatabase (
  1057.         _bstr_t pbstr );
  1058.     enum IsolationLevelEnum GetIsolationLevel ( );
  1059.     void PutIsolationLevel (
  1060.         enum IsolationLevelEnum Level );
  1061.     long GetAttributes ( );
  1062.     void PutAttributes (
  1063.         long plAttr );
  1064.     enum CursorLocationEnum GetCursorLocation ( );
  1065.     void PutCursorLocation (
  1066.         enum CursorLocationEnum plCursorLoc );
  1067.     enum ConnectModeEnum GetMode ( );
  1068.     void PutMode (
  1069.         enum ConnectModeEnum plMode );
  1070.     _bstr_t GetProvider ( );
  1071.     void PutProvider (
  1072.         _bstr_t pbstr );
  1073.     long GetState ( );
  1074.     _RecordsetPtr OpenSchema (
  1075.         enum SchemaEnum Schema,
  1076.         const _variant_t & Restrictions = vtMissing,
  1077.         const _variant_t & SchemaID = vtMissing );
  1078.     //
  1079.     // Raw methods provided by interface
  1080.     //
  1081.     virtual HRESULT __stdcall get_ConnectionString (
  1082.         BSTR * pbstr ) = 0;
  1083.     virtual HRESULT __stdcall put_ConnectionString (
  1084.         BSTR pbstr ) = 0;
  1085.     virtual HRESULT __stdcall get_CommandTimeout (
  1086.         long * plTimeout ) = 0;
  1087.     virtual HRESULT __stdcall put_CommandTimeout (
  1088.         long plTimeout ) = 0;
  1089.     virtual HRESULT __stdcall get_ConnectionTimeout (
  1090.         long * plTimeout ) = 0;
  1091.     virtual HRESULT __stdcall put_ConnectionTimeout (
  1092.         long plTimeout ) = 0;
  1093.     virtual HRESULT __stdcall get_Version (
  1094.         BSTR * pbstr ) = 0;
  1095.     virtual HRESULT __stdcall raw_Close ( ) = 0;
  1096.     virtual HRESULT __stdcall raw_Execute (
  1097.         BSTR CommandText,
  1098.         VARIANT * RecordsAffected,
  1099.         long Options,
  1100.         struct _Recordset * * ppiRset ) = 0;
  1101.     virtual HRESULT __stdcall raw_BeginTrans (
  1102.         long * TransactionLevel ) = 0;
  1103.     virtual HRESULT __stdcall raw_CommitTrans ( ) = 0;
  1104.     virtual HRESULT __stdcall raw_RollbackTrans ( ) = 0;
  1105.     virtual HRESULT __stdcall raw_Open (
  1106.         BSTR ConnectionString,
  1107.         BSTR UserID,
  1108.         BSTR Password,
  1109.         long Options ) = 0;
  1110.     virtual HRESULT __stdcall get_Errors (
  1111.         struct Errors * * ppvObject ) = 0;
  1112.     virtual HRESULT __stdcall get_DefaultDatabase (
  1113.         BSTR * pbstr ) = 0;
  1114.     virtual HRESULT __stdcall put_DefaultDatabase (
  1115.         BSTR pbstr ) = 0;
  1116.     virtual HRESULT __stdcall get_IsolationLevel (
  1117.         enum IsolationLevelEnum * Level ) = 0;
  1118.     virtual HRESULT __stdcall put_IsolationLevel (
  1119.         enum IsolationLevelEnum Level ) = 0;
  1120.     virtual HRESULT __stdcall get_Attributes (
  1121.         long * plAttr ) = 0;
  1122.     virtual HRESULT __stdcall put_Attributes (
  1123.         long plAttr ) = 0;
  1124.     virtual HRESULT __stdcall get_CursorLocation (
  1125.         enum CursorLocationEnum * plCursorLoc ) = 0;
  1126.     virtual HRESULT __stdcall put_CursorLocation (
  1127.         enum CursorLocationEnum plCursorLoc ) = 0;
  1128.     virtual HRESULT __stdcall get_Mode (
  1129.         enum ConnectModeEnum * plMode ) = 0;
  1130.     virtual HRESULT __stdcall put_Mode (
  1131.         enum ConnectModeEnum plMode ) = 0;
  1132.     virtual HRESULT __stdcall get_Provider (
  1133.         BSTR * pbstr ) = 0;
  1134.     virtual HRESULT __stdcall put_Provider (
  1135.         BSTR pbstr ) = 0;
  1136.     virtual HRESULT __stdcall get_State (
  1137.         long * plObjState ) = 0;
  1138.     virtual HRESULT __stdcall raw_OpenSchema (
  1139.         enum SchemaEnum Schema,
  1140.         VARIANT Restrictions,
  1141.         VARIANT SchemaID,
  1142.         struct _Recordset * * pprset ) = 0;
  1143. };
  1144. struct __declspec(uuid("00000550-0000-0010-8000-00aa006d2ea4"))
  1145. _Connection : Connection15
  1146. {
  1147.     //
  1148.     // Wrapper methods for error-handling
  1149.     //
  1150.     HRESULT Cancel ( );
  1151.     //
  1152.     // Raw methods provided by interface
  1153.     //
  1154.     virtual HRESULT __stdcall raw_Cancel ( ) = 0;
  1155. };
  1156. struct __declspec(uuid("0000050e-0000-0010-8000-00aa006d2ea4"))
  1157. Recordset15 : _ADO
  1158. {
  1159.     //
  1160.     // Property data
  1161.     //
  1162.     __declspec(property(get=GetFields))
  1163.     FieldsPtr Fields;
  1164.     __declspec(property(get=GetPageSize,put=PutPageSize))
  1165.     long PageSize;
  1166.     __declspec(property(get=GetPageCount))
  1167.     long PageCount;
  1168.     __declspec(property(get=GetCursorLocation,put=PutCursorLocation))
  1169.     enum CursorLocationEnum CursorLocation;
  1170.     __declspec(property(get=GetState))
  1171.     long State;
  1172.     __declspec(property(get=GetMarshalOptions,put=PutMarshalOptions))
  1173.     enum MarshalOptionsEnum MarshalOptions;
  1174.     __declspec(property(get=GetCollect,put=PutCollect))
  1175.     _variant_t Collect[];
  1176.     __declspec(property(get=GetEditMode))
  1177.     enum EditModeEnum EditMode;
  1178.     __declspec(property(get=GetStatus))
  1179.     long Status;
  1180.     __declspec(property(get=GetFilter,put=PutFilter))
  1181.     _variant_t Filter;
  1182.     __declspec(property(get=GetSort,put=PutSort))
  1183.     _bstr_t Sort;
  1184.     __declspec(property(get=GetAbsolutePosition,put=PutAbsolutePosition))
  1185.     enum PositionEnum AbsolutePosition;
  1186.     __declspec(property(get=GetadoBOF))
  1187.     VARIANT_BOOL adoBOF;
  1188.     __declspec(property(get=GetBookmark,put=PutBookmark))
  1189.     _variant_t Bookmark;
  1190.     __declspec(property(get=GetCacheSize,put=PutCacheSize))
  1191.     long CacheSize;
  1192.     __declspec(property(get=GetCursorType,put=PutCursorType))
  1193.     enum CursorTypeEnum CursorType;
  1194.     __declspec(property(get=GetadoEOF))
  1195.     VARIANT_BOOL adoEOF;
  1196.     __declspec(property(get=GetAbsolutePage,put=PutAbsolutePage))
  1197.     enum PositionEnum AbsolutePage;
  1198.     __declspec(property(get=GetLockType,put=PutLockType))
  1199.     enum LockTypeEnum LockType;
  1200.     __declspec(property(get=GetMaxRecords,put=PutMaxRecords))
  1201.     long MaxRecords;
  1202.     __declspec(property(get=GetRecordCount))
  1203.     long RecordCount;
  1204.     //
  1205.     // Wrapper methods for error-handling
  1206.     //
  1207.     enum PositionEnum GetAbsolutePosition ( );
  1208.     void PutAbsolutePosition (
  1209.         enum PositionEnum pl );
  1210.     void PutRefActiveConnection (
  1211.         IDispatch * pvar );
  1212.     void PutActiveConnection (
  1213.         const _variant_t & pvar );
  1214.     _variant_t GetActiveConnection ( );
  1215.     VARIANT_BOOL GetadoBOF ( );
  1216.     _variant_t GetBookmark ( );
  1217.     void PutBookmark (
  1218.         const _variant_t & pvBookmark );
  1219.     long GetCacheSize ( );
  1220.     void PutCacheSize (
  1221.         long pl );
  1222.     enum CursorTypeEnum GetCursorType ( );
  1223.     void PutCursorType (
  1224.         enum CursorTypeEnum plCursorType );
  1225.     VARIANT_BOOL GetadoEOF ( );
  1226.     FieldsPtr GetFields ( );
  1227.     enum LockTypeEnum GetLockType ( );
  1228.     void PutLockType (
  1229.         enum LockTypeEnum plLockType );
  1230.     long GetMaxRecords ( );
  1231.     void PutMaxRecords (
  1232.         long plMaxRecords );
  1233.     long GetRecordCount ( );
  1234.     void PutRefSource (
  1235.         IDispatch * pvSource );
  1236.     void PutSource (
  1237.         _bstr_t pvSource );
  1238.     _variant_t GetSource ( );
  1239.     HRESULT AddNew (
  1240.         const _variant_t & FieldList = vtMissing,
  1241.         const _variant_t & Values = vtMissing );
  1242.     HRESULT CancelUpdate ( );
  1243.     HRESULT Close ( );
  1244.     HRESULT Delete (
  1245.         enum AffectEnum AffectRecords );
  1246.     _variant_t GetRows (
  1247.         long Rows,
  1248.         const _variant_t & Start = vtMissing,
  1249.         const _variant_t & Fields = vtMissing );
  1250.     HRESULT Move (
  1251.         long NumRecords,
  1252.         const _variant_t & Start = vtMissing );
  1253.     HRESULT MoveNext ( );
  1254.     HRESULT MovePrevious ( );
  1255.     HRESULT MoveFirst ( );
  1256.     HRESULT MoveLast ( );
  1257.     HRESULT Open (
  1258.         const _variant_t & Source,
  1259.         const _variant_t & ActiveConnection,
  1260.         enum CursorTypeEnum CursorType,
  1261.         enum LockTypeEnum LockType,
  1262.         long Options );
  1263.     HRESULT Requery (
  1264.         long Options );
  1265.     HRESULT _xResync (
  1266.         enum AffectEnum AffectRecords );
  1267.     HRESULT Update (
  1268.         const _variant_t & Fields = vtMissing,
  1269.         const _variant_t & Values = vtMissing );
  1270.     enum PositionEnum GetAbsolutePage ( );
  1271.     void PutAbsolutePage (
  1272.         enum PositionEnum pl );
  1273.     enum EditModeEnum GetEditMode ( );
  1274.     _variant_t GetFilter ( );
  1275.     void PutFilter (
  1276.         const _variant_t & Criteria );
  1277.     long GetPageCount ( );
  1278.     long GetPageSize ( );
  1279.     void PutPageSize (
  1280.         long pl );
  1281.     _bstr_t GetSort ( );
  1282.     void PutSort (
  1283.         _bstr_t Criteria );
  1284.     long GetStatus ( );
  1285.     long GetState ( );
  1286.     _RecordsetPtr _xClone ( );
  1287.     HRESULT UpdateBatch (
  1288.         enum AffectEnum AffectRecords );
  1289.     HRESULT CancelBatch (
  1290.         enum AffectEnum AffectRecords );
  1291.     enum CursorLocationEnum GetCursorLocation ( );
  1292.     void PutCursorLocation (
  1293.         enum CursorLocationEnum plCursorLoc );
  1294.     _RecordsetPtr NextRecordset (
  1295.         VARIANT * RecordsAffected );
  1296.     VARIANT_BOOL Supports (
  1297.         enum CursorOptionEnum CursorOptions );
  1298.     _variant_t GetCollect (
  1299.         const _variant_t & Index );
  1300.     void PutCollect (
  1301.         const _variant_t & Index,
  1302.         const _variant_t & pvar );
  1303.     enum MarshalOptionsEnum GetMarshalOptions ( );
  1304.     void PutMarshalOptions (
  1305.         enum MarshalOptionsEnum peMarshal );
  1306.     HRESULT Find (
  1307.         _bstr_t Criteria,
  1308.         long SkipRecords,
  1309.         enum SearchDirectionEnum SearchDirection,
  1310.         const _variant_t & Start = vtMissing );
  1311.     //
  1312.     // Raw methods provided by interface
  1313.     //
  1314.     virtual HRESULT __stdcall get_AbsolutePosition (
  1315.         enum PositionEnum * pl ) = 0;
  1316.     virtual HRESULT __stdcall put_AbsolutePosition (
  1317.         enum PositionEnum pl ) = 0;
  1318.     virtual HRESULT __stdcall putref_ActiveConnection (
  1319.         IDispatch * pvar ) = 0;
  1320.     virtual HRESULT __stdcall put_ActiveConnection (
  1321.         VARIANT pvar ) = 0;
  1322.     virtual HRESULT __stdcall get_ActiveConnection (
  1323.         VARIANT * pvar ) = 0;
  1324.     virtual HRESULT __stdcall get_adoBOF (
  1325.         VARIANT_BOOL * pb ) = 0;
  1326.     virtual HRESULT __stdcall get_Bookmark (
  1327.         VARIANT * pvBookmark ) = 0;
  1328.     virtual HRESULT __stdcall put_Bookmark (
  1329.         VARIANT pvBookmark ) = 0;
  1330.     virtual HRESULT __stdcall get_CacheSize (
  1331.         long * pl ) = 0;
  1332.     virtual HRESULT __stdcall put_CacheSize (
  1333.         long pl ) = 0;
  1334.     virtual HRESULT __stdcall get_CursorType (
  1335.         enum CursorTypeEnum * plCursorType ) = 0;
  1336.     virtual HRESULT __stdcall put_CursorType (
  1337.         enum CursorTypeEnum plCursorType ) = 0;
  1338.     virtual HRESULT __stdcall get_adoEOF (
  1339.         VARIANT_BOOL * pb ) = 0;
  1340.     virtual HRESULT __stdcall get_Fields (
  1341.         struct Fields * * ppvObject ) = 0;
  1342.     virtual HRESULT __stdcall get_LockType (
  1343.         enum LockTypeEnum * plLockType ) = 0;
  1344.     virtual HRESULT __stdcall put_LockType (
  1345.         enum LockTypeEnum plLockType ) = 0;
  1346.     virtual HRESULT __stdcall get_MaxRecords (
  1347.         long * plMaxRecords ) = 0;
  1348.     virtual HRESULT __stdcall put_MaxRecords (
  1349.         long plMaxRecords ) = 0;
  1350.     virtual HRESULT __stdcall get_RecordCount (
  1351.         long * pl ) = 0;
  1352.     virtual HRESULT __stdcall putref_Source (
  1353.         IDispatch * pvSource ) = 0;
  1354.     virtual HRESULT __stdcall put_Source (
  1355.         BSTR pvSource ) = 0;
  1356.     virtual HRESULT __stdcall get_Source (
  1357.         VARIANT * pvSource ) = 0;
  1358.     virtual HRESULT __stdcall raw_AddNew (
  1359.         VARIANT FieldList = vtMissing,
  1360.         VARIANT Values = vtMissing ) = 0;
  1361.     virtual HRESULT __stdcall raw_CancelUpdate ( ) = 0;
  1362.     virtual HRESULT __stdcall raw_Close ( ) = 0;
  1363.     virtual HRESULT __stdcall raw_Delete (
  1364.         enum AffectEnum AffectRecords ) = 0;
  1365.     virtual HRESULT __stdcall raw_GetRows (
  1366.         long Rows,
  1367.         VARIANT Start,
  1368.         VARIANT Fields,
  1369.         VARIANT * pvar ) = 0;
  1370.     virtual HRESULT __stdcall raw_Move (
  1371.         long NumRecords,
  1372.         VARIANT Start = vtMissing ) = 0;
  1373.     virtual HRESULT __stdcall raw_MoveNext ( ) = 0;
  1374.     virtual HRESULT __stdcall raw_MovePrevious ( ) = 0;
  1375.     virtual HRESULT __stdcall raw_MoveFirst ( ) = 0;
  1376.     virtual HRESULT __stdcall raw_MoveLast ( ) = 0;
  1377.     virtual HRESULT __stdcall raw_Open (
  1378.         VARIANT Source,
  1379.         VARIANT ActiveConnection,
  1380.         enum CursorTypeEnum CursorType,
  1381.         enum LockTypeEnum LockType,
  1382.         long Options ) = 0;
  1383.     virtual HRESULT __stdcall raw_Requery (
  1384.         long Options ) = 0;
  1385.     virtual HRESULT __stdcall raw__xResync (
  1386.         enum AffectEnum AffectRecords ) = 0;
  1387.     virtual HRESULT __stdcall raw_Update (
  1388.         VARIANT Fields = vtMissing,
  1389.         VARIANT Values = vtMissing ) = 0;
  1390.     virtual HRESULT __stdcall get_AbsolutePage (
  1391.         enum PositionEnum * pl ) = 0;
  1392.     virtual HRESULT __stdcall put_AbsolutePage (
  1393.         enum PositionEnum pl ) = 0;
  1394.     virtual HRESULT __stdcall get_EditMode (
  1395.         enum EditModeEnum * pl ) = 0;
  1396.     virtual HRESULT __stdcall get_Filter (
  1397.         VARIANT * Criteria ) = 0;
  1398.     virtual HRESULT __stdcall put_Filter (
  1399.         VARIANT Criteria ) = 0;
  1400.     virtual HRESULT __stdcall get_PageCount (
  1401.         long * pl ) = 0;
  1402.     virtual HRESULT __stdcall get_PageSize (
  1403.         long * pl ) = 0;
  1404.     virtual HRESULT __stdcall put_PageSize (
  1405.         long pl ) = 0;
  1406.     virtual HRESULT __stdcall get_Sort (
  1407.         BSTR * Criteria ) = 0;
  1408.     virtual HRESULT __stdcall put_Sort (
  1409.         BSTR Criteria ) = 0;
  1410.     virtual HRESULT __stdcall get_Status (
  1411.         long * pl ) = 0;
  1412.     virtual HRESULT __stdcall get_State (
  1413.         long * plObjState ) = 0;
  1414.     virtual HRESULT __stdcall raw__xClone (
  1415.         struct _Recordset * * ppvObject ) = 0;
  1416.     virtual HRESULT __stdcall raw_UpdateBatch (
  1417.         enum AffectEnum AffectRecords ) = 0;
  1418.     virtual HRESULT __stdcall raw_CancelBatch (
  1419.         enum AffectEnum AffectRecords ) = 0;
  1420.     virtual HRESULT __stdcall get_CursorLocation (
  1421.         enum CursorLocationEnum * plCursorLoc ) = 0;
  1422.     virtual HRESULT __stdcall put_CursorLocation (
  1423.         enum CursorLocationEnum plCursorLoc ) = 0;
  1424.     virtual HRESULT __stdcall raw_NextRecordset (
  1425.         VARIANT * RecordsAffected,
  1426.         struct _Recordset * * ppiRs ) = 0;
  1427.     virtual HRESULT __stdcall raw_Supports (
  1428.         enum CursorOptionEnum CursorOptions,
  1429.         VARIANT_BOOL * pb ) = 0;
  1430.     virtual HRESULT __stdcall get_Collect (
  1431.         VARIANT Index,
  1432.         VARIANT * pvar ) = 0;
  1433.     virtual HRESULT __stdcall put_Collect (
  1434.         VARIANT Index,
  1435.         VARIANT pvar ) = 0;
  1436.     virtual HRESULT __stdcall get_MarshalOptions (
  1437.         enum MarshalOptionsEnum * peMarshal ) = 0;
  1438.     virtual HRESULT __stdcall put_MarshalOptions (
  1439.         enum MarshalOptionsEnum peMarshal ) = 0;
  1440.     virtual HRESULT __stdcall raw_Find (
  1441.         BSTR Criteria,
  1442.         long SkipRecords,
  1443.         enum SearchDirectionEnum SearchDirection,
  1444.         VARIANT Start = vtMissing ) = 0;
  1445. };
  1446. struct __declspec(uuid("0000054f-0000-0010-8000-00aa006d2ea4"))
  1447. Recordset20 : Recordset15
  1448. {
  1449.     //
  1450.     // Property data
  1451.     //
  1452.     __declspec(property(get=GetDataSource,put=PutRefDataSource))
  1453.     IUnknownPtr DataSource;
  1454.     __declspec(property(get=GetActiveCommand))
  1455.     IDispatchPtr ActiveCommand;
  1456.     __declspec(property(get=GetStayInSync,put=PutStayInSync))
  1457.     VARIANT_BOOL StayInSync;
  1458.     __declspec(property(get=GetDataMember,put=PutDataMember))
  1459.     _bstr_t DataMember;
  1460.     //
  1461.     // Wrapper methods for error-handling
  1462.     //
  1463.     HRESULT Cancel ( );
  1464.     IUnknownPtr GetDataSource ( );
  1465.     void PutRefDataSource (
  1466.         IUnknown * ppunkDataSource );
  1467.     HRESULT _xSave (
  1468.         _bstr_t FileName,
  1469.         enum PersistFormatEnum PersistFormat );
  1470.     IDispatchPtr GetActiveCommand ( );
  1471.     void PutStayInSync (
  1472.         VARIANT_BOOL pbStayInSync );
  1473.     VARIANT_BOOL GetStayInSync ( );
  1474.     _bstr_t GetString (
  1475.         enum StringFormatEnum StringFormat,
  1476.         long NumRows,
  1477.         _bstr_t ColumnDelimeter,
  1478.         _bstr_t RowDelimeter,
  1479.         _bstr_t NullExpr );
  1480.     _bstr_t GetDataMember ( );
  1481.     void PutDataMember (
  1482.         _bstr_t pbstrDataMember );
  1483.     enum CompareEnum CompareBookmarks (
  1484.         const _variant_t & Bookmark1,
  1485.         const _variant_t & Bookmark2 );
  1486.     _RecordsetPtr Clone (
  1487.         enum LockTypeEnum LockType );
  1488.     HRESULT Resync (
  1489.         enum AffectEnum AffectRecords,
  1490.         enum ResyncEnum ResyncValues );
  1491.     //
  1492.     // Raw methods provided by interface
  1493.     //
  1494.     virtual HRESULT __stdcall raw_Cancel ( ) = 0;
  1495.     virtual HRESULT __stdcall get_DataSource (
  1496.         IUnknown * * ppunkDataSource ) = 0;
  1497.     virtual HRESULT __stdcall putref_DataSource (
  1498.         IUnknown * ppunkDataSource ) = 0;
  1499.     virtual HRESULT __stdcall raw__xSave (
  1500.         BSTR FileName,
  1501.         enum PersistFormatEnum PersistFormat ) = 0;
  1502.     virtual HRESULT __stdcall get_ActiveCommand (
  1503.         IDispatch * * ppCmd ) = 0;
  1504.     virtual HRESULT __stdcall put_StayInSync (
  1505.         VARIANT_BOOL pbStayInSync ) = 0;
  1506.     virtual HRESULT __stdcall get_StayInSync (
  1507.         VARIANT_BOOL * pbStayInSync ) = 0;
  1508.     virtual HRESULT __stdcall raw_GetString (
  1509.         enum StringFormatEnum StringFormat,
  1510.         long NumRows,
  1511.         BSTR ColumnDelimeter,
  1512.         BSTR RowDelimeter,
  1513.         BSTR NullExpr,
  1514.         BSTR * pRetString ) = 0;
  1515.     virtual HRESULT __stdcall get_DataMember (
  1516.         BSTR * pbstrDataMember ) = 0;
  1517.     virtual HRESULT __stdcall put_DataMember (
  1518.         BSTR pbstrDataMember ) = 0;
  1519.     virtual HRESULT __stdcall raw_CompareBookmarks (
  1520.         VARIANT Bookmark1,
  1521.         VARIANT Bookmark2,
  1522.         enum CompareEnum * pCompare ) = 0;
  1523.     virtual HRESULT __stdcall raw_Clone (
  1524.         enum LockTypeEnum LockType,
  1525.         struct _Recordset * * ppvObject ) = 0;
  1526.     virtual HRESULT __stdcall raw_Resync (
  1527.         enum AffectEnum AffectRecords,
  1528.         enum ResyncEnum ResyncValues ) = 0;
  1529. };
  1530. struct __declspec(uuid("00000555-0000-0010-8000-00aa006d2ea4"))
  1531. Recordset21 : Recordset20
  1532. {
  1533.     //
  1534.     // Property data
  1535.     //
  1536.     __declspec(property(get=GetIndex,put=PutIndex))
  1537.     _bstr_t Index;
  1538.     //
  1539.     // Wrapper methods for error-handling
  1540.     //
  1541.     HRESULT Seek (
  1542.         const _variant_t & KeyValues,
  1543.         enum SeekEnum SeekOption );
  1544.     void PutIndex (
  1545.         _bstr_t pbstrIndex );
  1546.     _bstr_t GetIndex ( );
  1547.     //
  1548.     // Raw methods provided by interface
  1549.     //
  1550.     virtual HRESULT __stdcall raw_Seek (
  1551.         VARIANT KeyValues,
  1552.         enum SeekEnum SeekOption ) = 0;
  1553.     virtual HRESULT __stdcall put_Index (
  1554.         BSTR pbstrIndex ) = 0;
  1555.     virtual HRESULT __stdcall get_Index (
  1556.         BSTR * pbstrIndex ) = 0;
  1557. };
  1558. struct __declspec(uuid("00000556-0000-0010-8000-00aa006d2ea4"))
  1559. _Recordset : Recordset21
  1560. {
  1561.     //
  1562.     // Wrapper methods for error-handling
  1563.     //
  1564.     HRESULT Save (
  1565.         const _variant_t & Destination,
  1566.         enum PersistFormatEnum PersistFormat );
  1567.     //
  1568.     // Raw methods provided by interface
  1569.     //
  1570.     virtual HRESULT __stdcall raw_Save (
  1571.         VARIANT Destination,
  1572.         enum PersistFormatEnum PersistFormat ) = 0;
  1573. };
  1574. struct __declspec(uuid("00000506-0000-0010-8000-00aa006d2ea4"))
  1575. Fields15 : _Collection
  1576. {
  1577.     //
  1578.     // Property data
  1579.     //
  1580.     __declspec(property(get=GetItem))
  1581.     FieldPtr Item[];
  1582.     //
  1583.     // Wrapper methods for error-handling
  1584.     //
  1585.     FieldPtr GetItem (
  1586.         const _variant_t & Index );
  1587.     //
  1588.     // Raw methods provided by interface
  1589.     //
  1590.     virtual HRESULT __stdcall get_Item (
  1591.         VARIANT Index,
  1592.         struct Field * * ppvObject ) = 0;
  1593. };
  1594. struct __declspec(uuid("0000054d-0000-0010-8000-00aa006d2ea4"))
  1595. Fields20 : Fields15
  1596. {
  1597.     //
  1598.     // Wrapper methods for error-handling
  1599.     //
  1600.     HRESULT _Append (
  1601.         _bstr_t Name,
  1602.         enum DataTypeEnum Type,
  1603.         long DefinedSize,
  1604.         enum FieldAttributeEnum Attrib );
  1605.     HRESULT Delete (
  1606.         const _variant_t & Index );
  1607.     //
  1608.     // Raw methods provided by interface
  1609.     //
  1610.     virtual HRESULT __stdcall raw__Append (
  1611.         BSTR Name,
  1612.         enum DataTypeEnum Type,
  1613.         long DefinedSize,
  1614.         enum FieldAttributeEnum Attrib ) = 0;
  1615.     virtual HRESULT __stdcall raw_Delete (
  1616.         VARIANT Index ) = 0;
  1617. };
  1618. struct __declspec(uuid("00000564-0000-0010-8000-00aa006d2ea4"))
  1619. Fields : Fields20
  1620. {
  1621.     //
  1622.     // Wrapper methods for error-handling
  1623.     //
  1624.     HRESULT Append (
  1625.         _bstr_t Name,
  1626.         enum DataTypeEnum Type,
  1627.         long DefinedSize,
  1628.         enum FieldAttributeEnum Attrib,
  1629.         const _variant_t & FieldValue = vtMissing );
  1630.     HRESULT Update ( );
  1631.     HRESULT Resync (
  1632.         enum ResyncEnum ResyncValues );
  1633.     HRESULT CancelUpdate ( );
  1634.     //
  1635.     // Raw methods provided by interface
  1636.     //
  1637.     virtual HRESULT __stdcall raw_Append (
  1638.         BSTR Name,
  1639.         enum DataTypeEnum Type,
  1640.         long DefinedSize,
  1641.         enum FieldAttributeEnum Attrib,
  1642.         VARIANT FieldValue = vtMissing ) = 0;
  1643.     virtual HRESULT __stdcall raw_Update ( ) = 0;
  1644.     virtual HRESULT __stdcall raw_Resync (
  1645.         enum ResyncEnum ResyncValues ) = 0;
  1646.     virtual HRESULT __stdcall raw_CancelUpdate ( ) = 0;
  1647. };
  1648. struct __declspec(uuid("0000054c-0000-0010-8000-00aa006d2ea4"))
  1649. Field20 : _ADO
  1650. {
  1651.     //
  1652.     // Property data
  1653.     //
  1654.     __declspec(property(get=GetValue,put=PutValue))
  1655.     _variant_t Value;
  1656.     __declspec(property(get=GetName))
  1657.     _bstr_t Name;
  1658.     __declspec(property(get=GetType,put=PutType))
  1659.     enum DataTypeEnum Type;
  1660.     __declspec(property(get=GetDefinedSize,put=PutDefinedSize))
  1661.     long DefinedSize;
  1662.     __declspec(property(get=GetOriginalValue))
  1663.     _variant_t OriginalValue;
  1664.     __declspec(property(get=GetUnderlyingValue))
  1665.     _variant_t UnderlyingValue;
  1666.     __declspec(property(get=GetActualSize))
  1667.     long ActualSize;
  1668.     __declspec(property(get=GetPrecision,put=PutPrecision))
  1669.     unsigned char Precision;
  1670.     __declspec(property(get=GetNumericScale,put=PutNumericScale))
  1671.     unsigned char NumericScale;
  1672.     __declspec(property(get=GetAttributes,put=PutAttributes))
  1673.     long Attributes;
  1674.     __declspec(property(get=GetDataFormat,put=PutRefDataFormat))
  1675.     IUnknownPtr DataFormat;
  1676.     //
  1677.     // Wrapper methods for error-handling
  1678.     //
  1679.     long GetActualSize ( );
  1680.     long GetAttributes ( );
  1681.     long GetDefinedSize ( );
  1682.     _bstr_t GetName ( );
  1683.     enum DataTypeEnum GetType ( );
  1684.     _variant_t GetValue ( );
  1685.     void PutValue (
  1686.         const _variant_t & pvar );
  1687.     unsigned char GetPrecision ( );
  1688.     unsigned char GetNumericScale ( );
  1689.     HRESULT AppendChunk (
  1690.         const _variant_t & Data );
  1691.     _variant_t GetChunk (
  1692.         long Length );
  1693.     _variant_t GetOriginalValue ( );
  1694.     _variant_t GetUnderlyingValue ( );
  1695.     IUnknownPtr GetDataFormat ( );
  1696.     void PutRefDataFormat (
  1697.         IUnknown * ppiDF );
  1698.     void PutPrecision (
  1699.         unsigned char pbPrecision );
  1700.     void PutNumericScale (
  1701.         unsigned char pbNumericScale );
  1702.     void PutType (
  1703.         enum DataTypeEnum pDataType );
  1704.     void PutDefinedSize (
  1705.         long pl );
  1706.     void PutAttributes (
  1707.         long pl );
  1708.     //
  1709.     // Raw methods provided by interface
  1710.     //
  1711.     virtual HRESULT __stdcall get_ActualSize (
  1712.         long * pl ) = 0;
  1713.     virtual HRESULT __stdcall get_Attributes (
  1714.         long * pl ) = 0;
  1715.     virtual HRESULT __stdcall get_DefinedSize (
  1716.         long * pl ) = 0;
  1717.     virtual HRESULT __stdcall get_Name (
  1718.         BSTR * pbstr ) = 0;
  1719.     virtual HRESULT __stdcall get_Type (
  1720.         enum DataTypeEnum * pDataType ) = 0;
  1721.     virtual HRESULT __stdcall get_Value (
  1722.         VARIANT * pvar ) = 0;
  1723.     virtual HRESULT __stdcall put_Value (
  1724.         VARIANT pvar ) = 0;
  1725.     virtual HRESULT __stdcall get_Precision (
  1726.         unsigned char * pbPrecision ) = 0;
  1727.     virtual HRESULT __stdcall get_NumericScale (
  1728.         unsigned char * pbNumericScale ) = 0;
  1729.     virtual HRESULT __stdcall raw_AppendChunk (
  1730.         VARIANT Data ) = 0;
  1731.     virtual HRESULT __stdcall raw_GetChunk (
  1732.         long Length,
  1733.         VARIANT * pvar ) = 0;
  1734.     virtual HRESULT __stdcall get_OriginalValue (
  1735.         VARIANT * pvar ) = 0;
  1736.     virtual HRESULT __stdcall get_UnderlyingValue (
  1737.         VARIANT * pvar ) = 0;
  1738.     virtual HRESULT __stdcall get_DataFormat (
  1739.         IUnknown * * ppiDF ) = 0;
  1740.     virtual HRESULT __stdcall putref_DataFormat (
  1741.         IUnknown * ppiDF ) = 0;
  1742.     virtual HRESULT __stdcall put_Precision (
  1743.         unsigned char pbPrecision ) = 0;
  1744.     virtual HRESULT __stdcall put_NumericScale (
  1745.         unsigned char pbNumericScale ) = 0;
  1746.     virtual HRESULT __stdcall put_Type (
  1747.         enum DataTypeEnum pDataType ) = 0;
  1748.     virtual HRESULT __stdcall put_DefinedSize (
  1749.         long pl ) = 0;
  1750.     virtual HRESULT __stdcall put_Attributes (
  1751.         long pl ) = 0;
  1752. };
  1753. struct __declspec(uuid("00000569-0000-0010-8000-00aa006d2ea4"))
  1754. Field : Field20
  1755. {
  1756.     //
  1757.     // Property data
  1758.     //
  1759.     __declspec(property(get=GetStatus))
  1760.     long Status;
  1761.     //
  1762.     // Wrapper methods for error-handling
  1763.     //
  1764.     long GetStatus ( );
  1765.     //
  1766.     // Raw methods provided by interface
  1767.     //
  1768.     virtual HRESULT __stdcall get_Status (
  1769.         long * pFStatus ) = 0;
  1770. };
  1771. struct __declspec(uuid("0000050c-0000-0010-8000-00aa006d2ea4"))
  1772. _Parameter : _ADO
  1773. {
  1774.     //
  1775.     // Property data
  1776.     //
  1777.     __declspec(property(get=GetValue,put=PutValue))
  1778.     _variant_t Value;
  1779.     __declspec(property(get=GetName,put=PutName))
  1780.     _bstr_t Name;
  1781.     __declspec(property(get=GetType,put=PutType))
  1782.     enum DataTypeEnum Type;
  1783.     __declspec(property(get=GetDirection,put=PutDirection))
  1784.     enum ParameterDirectionEnum Direction;
  1785.     __declspec(property(get=GetPrecision,put=PutPrecision))
  1786.     unsigned char Precision;
  1787.     __declspec(property(get=GetNumericScale,put=PutNumericScale))
  1788.     unsigned char NumericScale;
  1789.     __declspec(property(get=GetSize,put=PutSize))
  1790.     long Size;
  1791.     __declspec(property(get=GetAttributes,put=PutAttributes))
  1792.     long Attributes;
  1793.     //
  1794.     // Wrapper methods for error-handling
  1795.     //
  1796.     _bstr_t GetName ( );
  1797.     void PutName (
  1798.         _bstr_t pbstr );
  1799.     _variant_t GetValue ( );
  1800.     void PutValue (
  1801.         const _variant_t & pvar );
  1802.     enum DataTypeEnum GetType ( );
  1803.     void PutType (
  1804.         enum DataTypeEnum psDataType );
  1805.     void PutDirection (
  1806.         enum ParameterDirectionEnum plParmDirection );
  1807.     enum ParameterDirectionEnum GetDirection ( );
  1808.     void PutPrecision (
  1809.         unsigned char pbPrecision );
  1810.     unsigned char GetPrecision ( );
  1811.     void PutNumericScale (
  1812.         unsigned char pbScale );
  1813.     unsigned char GetNumericScale ( );
  1814.     void PutSize (
  1815.         long pl );
  1816.     long GetSize ( );
  1817.     HRESULT AppendChunk (
  1818.         const _variant_t & Val );
  1819.     long GetAttributes ( );
  1820.     void PutAttributes (
  1821.         long plParmAttribs );
  1822.     //
  1823.     // Raw methods provided by interface
  1824.     //
  1825.     virtual HRESULT __stdcall get_Name (
  1826.         BSTR * pbstr ) = 0;
  1827.     virtual HRESULT __stdcall put_Name (
  1828.         BSTR pbstr ) = 0;
  1829.     virtual HRESULT __stdcall get_Value (
  1830.         VARIANT * pvar ) = 0;
  1831.     virtual HRESULT __stdcall put_Value (
  1832.         VARIANT pvar ) = 0;
  1833.     virtual HRESULT __stdcall get_Type (
  1834.         enum DataTypeEnum * psDataType ) = 0;
  1835.     virtual HRESULT __stdcall put_Type (
  1836.         enum DataTypeEnum psDataType ) = 0;
  1837.     virtual HRESULT __stdcall put_Direction (
  1838.         enum ParameterDirectionEnum plParmDirection ) = 0;
  1839.     virtual HRESULT __stdcall get_Direction (
  1840.         enum ParameterDirectionEnum * plParmDirection ) = 0;
  1841.     virtual HRESULT __stdcall put_Precision (
  1842.         unsigned char pbPrecision ) = 0;
  1843.     virtual HRESULT __stdcall get_Precision (
  1844.         unsigned char * pbPrecision ) = 0;
  1845.     virtual HRESULT __stdcall put_NumericScale (
  1846.         unsigned char pbScale ) = 0;
  1847.     virtual HRESULT __stdcall get_NumericScale (
  1848.         unsigned char * pbScale ) = 0;
  1849.     virtual HRESULT __stdcall put_Size (
  1850.         long pl ) = 0;
  1851.     virtual HRESULT __stdcall get_Size (
  1852.         long * pl ) = 0;
  1853.     virtual HRESULT __stdcall raw_AppendChunk (
  1854.         VARIANT Val ) = 0;
  1855.     virtual HRESULT __stdcall get_Attributes (
  1856.         long * plParmAttribs ) = 0;
  1857.     virtual HRESULT __stdcall put_Attributes (
  1858.         long plParmAttribs ) = 0;
  1859. };
  1860. struct __declspec(uuid("0000050d-0000-0010-8000-00aa006d2ea4"))
  1861. Parameters : _DynaCollection
  1862. {
  1863.     //
  1864.     // Property data
  1865.     //
  1866.     __declspec(property(get=GetItem))
  1867.     _ParameterPtr Item[];
  1868.     //
  1869.     // Wrapper methods for error-handling
  1870.     //
  1871.     _ParameterPtr GetItem (
  1872.         const _variant_t & Index );
  1873.     //
  1874.     // Raw methods provided by interface
  1875.     //
  1876.     virtual HRESULT __stdcall get_Item (
  1877.         VARIANT Index,
  1878.         struct _Parameter * * ppvObject ) = 0;
  1879. };
  1880. struct __declspec(uuid("0000054e-0000-0010-8000-00aa006d2ea4"))
  1881. Command25 : Command15
  1882. {
  1883.     //
  1884.     // Property data
  1885.     //
  1886.     __declspec(property(get=GetState))
  1887.     long State;
  1888.     //
  1889.     // Wrapper methods for error-handling
  1890.     //
  1891.     long GetState ( );
  1892.     HRESULT Cancel ( );
  1893.     //
  1894.     // Raw methods provided by interface
  1895.     //
  1896.     virtual HRESULT __stdcall get_State (
  1897.         long * plObjState ) = 0;
  1898.     virtual HRESULT __stdcall raw_Cancel ( ) = 0;
  1899. };
  1900. struct __declspec(uuid("b08400bd-f9d1-4d02-b856-71d5dba123e9"))
  1901. _Command : Command25
  1902. {
  1903.     //
  1904.     // Property data
  1905.     //
  1906.     __declspec(property(get=GetDialect,put=PutDialect))
  1907.     _bstr_t Dialect;
  1908.     __declspec(property(get=GetNamedParameters,put=PutNamedParameters))
  1909.     VARIANT_BOOL NamedParameters;
  1910.     //
  1911.     // Wrapper methods for error-handling
  1912.     //
  1913.     void PutRefCommandStream (
  1914.         IUnknown * pvStream );
  1915.     _variant_t GetCommandStream ( );
  1916.     void PutDialect (
  1917.         _bstr_t pbstrDialect );
  1918.     _bstr_t GetDialect ( );
  1919.     void PutNamedParameters (
  1920.         VARIANT_BOOL pfNamedParameters );
  1921.     VARIANT_BOOL GetNamedParameters ( );
  1922.     //
  1923.     // Raw methods provided by interface
  1924.     //
  1925.     virtual HRESULT __stdcall putref_CommandStream (
  1926.         IUnknown * pvStream ) = 0;
  1927.     virtual HRESULT __stdcall get_CommandStream (
  1928.         VARIANT * pvStream ) = 0;
  1929.     virtual HRESULT __stdcall put_Dialect (
  1930.         BSTR pbstrDialect ) = 0;
  1931.     virtual HRESULT __stdcall get_Dialect (
  1932.         BSTR * pbstrDialect ) = 0;
  1933.     virtual HRESULT __stdcall put_NamedParameters (
  1934.         VARIANT_BOOL pfNamedParameters ) = 0;
  1935.     virtual HRESULT __stdcall get_NamedParameters (
  1936.         VARIANT_BOOL * pfNamedParameters ) = 0;
  1937. };
  1938. struct __declspec(uuid("00000402-0000-0010-8000-00aa006d2ea4"))
  1939. ConnectionEventsVt : IUnknown
  1940. {
  1941.     //
  1942.     // Wrapper methods for error-handling
  1943.     //
  1944.     HRESULT InfoMessage (
  1945.         struct Error * pError,
  1946.         enum EventStatusEnum * adStatus,
  1947.         struct _Connection * pConnection );
  1948.     HRESULT BeginTransComplete (
  1949.         long TransactionLevel,
  1950.         struct Error * pError,
  1951.         enum EventStatusEnum * adStatus,
  1952.         struct _Connection * pConnection );
  1953.     HRESULT CommitTransComplete (
  1954.         struct Error * pError,
  1955.         enum EventStatusEnum * adStatus,
  1956.         struct _Connection * pConnection );
  1957.     HRESULT RollbackTransComplete (
  1958.         struct Error * pError,
  1959.         enum EventStatusEnum * adStatus,
  1960.         struct _Connection * pConnection );
  1961.     HRESULT WillExecute (
  1962.         BSTR * Source,
  1963.         enum CursorTypeEnum * CursorType,
  1964.         enum LockTypeEnum * LockType,
  1965.         long * Options,
  1966.         enum EventStatusEnum * adStatus,
  1967.         struct _Command * pCommand,
  1968.         struct _Recordset * pRecordset,
  1969.         struct _Connection * pConnection );
  1970.     HRESULT ExecuteComplete (
  1971.         long RecordsAffected,
  1972.         struct Error * pError,
  1973.         enum EventStatusEnum * adStatus,
  1974.         struct _Command * pCommand,
  1975.         struct _Recordset * pRecordset,
  1976.         struct _Connection * pConnection );
  1977.     HRESULT WillConnect (
  1978.         BSTR * ConnectionString,
  1979.         BSTR * UserID,
  1980.         BSTR * Password,
  1981.         long * Options,
  1982.         enum EventStatusEnum * adStatus,
  1983.         struct _Connection * pConnection );
  1984.     HRESULT ConnectComplete (
  1985.         struct Error * pError,
  1986.         enum EventStatusEnum * adStatus,
  1987.         struct _Connection * pConnection );
  1988.     HRESULT Disconnect (
  1989.         enum EventStatusEnum * adStatus,
  1990.         struct _Connection * pConnection );
  1991.     //
  1992.     // Raw methods provided by interface
  1993.     //
  1994.     virtual HRESULT __stdcall raw_InfoMessage (
  1995.         struct Error * pError,
  1996.         enum EventStatusEnum * adStatus,
  1997.         struct _Connection * pConnection ) = 0;
  1998.     virtual HRESULT __stdcall raw_BeginTransComplete (
  1999.         long TransactionLevel,
  2000.         struct Error * pError,
  2001.         enum EventStatusEnum * adStatus,
  2002.         struct _Connection * pConnection ) = 0;
  2003.     virtual HRESULT __stdcall raw_CommitTransComplete (
  2004.         struct Error * pError,
  2005.         enum EventStatusEnum * adStatus,
  2006.         struct _Connection * pConnection ) = 0;
  2007.     virtual HRESULT __stdcall raw_RollbackTransComplete (
  2008.         struct Error * pError,
  2009.         enum EventStatusEnum * adStatus,
  2010.         struct _Connection * pConnection ) = 0;
  2011.     virtual HRESULT __stdcall raw_WillExecute (
  2012.         BSTR * Source,
  2013.         enum CursorTypeEnum * CursorType,
  2014.         enum LockTypeEnum * LockType,
  2015.         long * Options,
  2016.         enum EventStatusEnum * adStatus,
  2017.         struct _Command * pCommand,
  2018.         struct _Recordset * pRecordset,
  2019.         struct _Connection * pConnection ) = 0;
  2020.     virtual HRESULT __stdcall raw_ExecuteComplete (
  2021.         long RecordsAffected,
  2022.         struct Error * pError,
  2023.         enum EventStatusEnum * adStatus,
  2024.         struct _Command * pCommand,
  2025.         struct _Recordset * pRecordset,
  2026.         struct _Connection * pConnection ) = 0;
  2027.     virtual HRESULT __stdcall raw_WillConnect (
  2028.         BSTR * ConnectionString,
  2029.         BSTR * UserID,
  2030.         BSTR * Password,
  2031.         long * Options,
  2032.         enum EventStatusEnum * adStatus,
  2033.         struct _Connection * pConnection ) = 0;
  2034.     virtual HRESULT __stdcall raw_ConnectComplete (
  2035.         struct Error * pError,
  2036.         enum EventStatusEnum * adStatus,
  2037.         struct _Connection * pConnection ) = 0;
  2038.     virtual HRESULT __stdcall raw_Disconnect (
  2039.         enum EventStatusEnum * adStatus,
  2040.         struct _Connection * pConnection ) = 0;
  2041. };
  2042. struct __declspec(uuid("00000403-0000-0010-8000-00aa006d2ea4"))
  2043. RecordsetEventsVt : IUnknown
  2044. {
  2045.     //
  2046.     // Wrapper methods for error-handling
  2047.     //
  2048.     HRESULT WillChangeField (
  2049.         long cFields,
  2050.         const _variant_t & Fields,
  2051.         enum EventStatusEnum * adStatus,
  2052.         struct _Recordset * pRecordset );
  2053.     HRESULT FieldChangeComplete (
  2054.         long cFields,
  2055.         const _variant_t & Fields,
  2056.         struct Error * pError,
  2057.         enum EventStatusEnum * adStatus,
  2058.         struct _Recordset * pRecordset );
  2059.     HRESULT WillChangeRecord (
  2060.         enum EventReasonEnum adReason,
  2061.         long cRecords,
  2062.         enum EventStatusEnum * adStatus,
  2063.         struct _Recordset * pRecordset );
  2064.     HRESULT RecordChangeComplete (
  2065.         enum EventReasonEnum adReason,
  2066.         long cRecords,
  2067.         struct Error * pError,
  2068.         enum EventStatusEnum * adStatus,
  2069.         struct _Recordset * pRecordset );
  2070.     HRESULT WillChangeRecordset (
  2071.         enum EventReasonEnum adReason,
  2072.         enum EventStatusEnum * adStatus,
  2073.         struct _Recordset * pRecordset );
  2074.     HRESULT RecordsetChangeComplete (
  2075.         enum EventReasonEnum adReason,
  2076.         struct Error * pError,
  2077.         enum EventStatusEnum * adStatus,
  2078.         struct _Recordset * pRecordset );
  2079.     HRESULT WillMove (
  2080.         enum EventReasonEnum adReason,
  2081.         enum EventStatusEnum * adStatus,
  2082.         struct _Recordset * pRecordset );
  2083.     HRESULT MoveComplete (
  2084.         enum EventReasonEnum adReason,
  2085.         struct Error * pError,
  2086.         enum EventStatusEnum * adStatus,
  2087.         struct _Recordset * pRecordset );
  2088.     HRESULT EndOfRecordset (
  2089.         VARIANT_BOOL * fMoreData,
  2090.         enum EventStatusEnum * adStatus,
  2091.         struct _Recordset * pRecordset );
  2092.     HRESULT FetchProgress (
  2093.         long Progress,
  2094.         long MaxProgress,
  2095.         enum EventStatusEnum * adStatus,
  2096.         struct _Recordset * pRecordset );
  2097.     HRESULT FetchComplete (
  2098.         struct Error * pError,
  2099.         enum EventStatusEnum * adStatus,
  2100.         struct _Recordset * pRecordset );
  2101.     //
  2102.     // Raw methods provided by interface
  2103.     //
  2104.     virtual HRESULT __stdcall raw_WillChangeField (
  2105.         long cFields,
  2106.         VARIANT Fields,
  2107.         enum EventStatusEnum * adStatus,
  2108.         struct _Recordset * pRecordset ) = 0;
  2109.     virtual HRESULT __stdcall raw_FieldChangeComplete (
  2110.         long cFields,
  2111.         VARIANT Fields,
  2112.         struct Error * pError,
  2113.         enum EventStatusEnum * adStatus,
  2114.         struct _Recordset * pRecordset ) = 0;
  2115.     virtual HRESULT __stdcall raw_WillChangeRecord (
  2116.         enum EventReasonEnum adReason,
  2117.         long cRecords,
  2118.         enum EventStatusEnum * adStatus,
  2119.         struct _Recordset * pRecordset ) = 0;
  2120.     virtual HRESULT __stdcall raw_RecordChangeComplete (
  2121.         enum EventReasonEnum adReason,
  2122.         long cRecords,
  2123.         struct Error * pError,
  2124.         enum EventStatusEnum * adStatus,
  2125.         struct _Recordset * pRecordset ) = 0;
  2126.     virtual HRESULT __stdcall raw_WillChangeRecordset (
  2127.         enum EventReasonEnum adReason,
  2128.         enum EventStatusEnum * adStatus,
  2129.         struct _Recordset * pRecordset ) = 0;
  2130.     virtual HRESULT __stdcall raw_RecordsetChangeComplete (
  2131.         enum EventReasonEnum adReason,
  2132.         struct Error * pError,
  2133.         enum EventStatusEnum * adStatus,
  2134.         struct _Recordset * pRecordset ) = 0;
  2135.     virtual HRESULT __stdcall raw_WillMove (
  2136.         enum EventReasonEnum adReason,
  2137.         enum EventStatusEnum * adStatus,
  2138.         struct _Recordset * pRecordset ) = 0;
  2139.     virtual HRESULT __stdcall raw_MoveComplete (
  2140.         enum EventReasonEnum adReason,
  2141.         struct Error * pError,
  2142.         enum EventStatusEnum * adStatus,
  2143.         struct _Recordset * pRecordset ) = 0;
  2144.     virtual HRESULT __stdcall raw_EndOfRecordset (
  2145.         VARIANT_BOOL * fMoreData,
  2146.         enum EventStatusEnum * adStatus,
  2147.         struct _Recordset * pRecordset ) = 0;
  2148.     virtual HRESULT __stdcall raw_FetchProgress (
  2149.         long Progress,
  2150.         long MaxProgress,
  2151.         enum EventStatusEnum * adStatus,
  2152.         struct _Recordset * pRecordset ) = 0;
  2153.     virtual HRESULT __stdcall raw_FetchComplete (
  2154.         struct Error * pError,
  2155.         enum EventStatusEnum * adStatus,
  2156.         struct _Recordset * pRecordset ) = 0;
  2157. };
  2158. struct __declspec(uuid("00000400-0000-0010-8000-00aa006d2ea4"))
  2159. ConnectionEvents : IDispatch
  2160. {
  2161.     //
  2162.     // Wrapper methods for error-handling
  2163.     //
  2164.     // Methods:
  2165.     HRESULT InfoMessage (
  2166.         struct Error * pError,
  2167.         enum EventStatusEnum * adStatus,
  2168.         struct _Connection * pConnection );
  2169.     HRESULT BeginTransComplete (
  2170.         long TransactionLevel,
  2171.         struct Error * pError,
  2172.         enum EventStatusEnum * adStatus,
  2173.         struct _Connection * pConnection );
  2174.     HRESULT CommitTransComplete (
  2175.         struct Error * pError,
  2176.         enum EventStatusEnum * adStatus,
  2177.         struct _Connection * pConnection );
  2178.     HRESULT RollbackTransComplete (
  2179.         struct Error * pError,
  2180.         enum EventStatusEnum * adStatus,
  2181.         struct _Connection * pConnection );
  2182.     HRESULT WillExecute (
  2183.         BSTR * Source,
  2184.         enum CursorTypeEnum * CursorType,
  2185.         enum LockTypeEnum * LockType,
  2186.         long * Options,
  2187.         enum EventStatusEnum * adStatus,
  2188.         struct _Command * pCommand,
  2189.         struct _Recordset * pRecordset,
  2190.         struct _Connection * pConnection );
  2191.     HRESULT ExecuteComplete (
  2192.         long RecordsAffected,
  2193.         struct Error * pError,
  2194.         enum EventStatusEnum * adStatus,
  2195.         struct _Command * pCommand,
  2196.         struct _Recordset * pRecordset,
  2197.         struct _Connection * pConnection );
  2198.     HRESULT WillConnect (
  2199.         BSTR * ConnectionString,
  2200.         BSTR * UserID,
  2201.         BSTR * Password,
  2202.         long * Options,
  2203.         enum EventStatusEnum * adStatus,
  2204.         struct _Connection * pConnection );
  2205.     HRESULT ConnectComplete (
  2206.         struct Error * pError,
  2207.         enum EventStatusEnum * adStatus,
  2208.         struct _Connection * pConnection );
  2209.     HRESULT Disconnect (
  2210.         enum EventStatusEnum * adStatus,
  2211.         struct _Connection * pConnection );
  2212. };
  2213. struct __declspec(uuid("00000266-0000-0010-8000-00aa006d2ea4"))
  2214. RecordsetEvents : IDispatch
  2215. {
  2216.     //
  2217.     // Wrapper methods for error-handling
  2218.     //
  2219.     // Methods:
  2220.     HRESULT WillChangeField (
  2221.         long cFields,
  2222.         const _variant_t & Fields,
  2223.         enum EventStatusEnum * adStatus,
  2224.         struct _Recordset * pRecordset );
  2225.     HRESULT FieldChangeComplete (
  2226.         long cFields,
  2227.         const _variant_t & Fields,
  2228.         struct Error * pError,
  2229.         enum EventStatusEnum * adStatus,
  2230.         struct _Recordset * pRecordset );
  2231.     HRESULT WillChangeRecord (
  2232.         enum EventReasonEnum adReason,
  2233.         long cRecords,
  2234.         enum EventStatusEnum * adStatus,
  2235.         struct _Recordset * pRecordset );
  2236.     HRESULT RecordChangeComplete (
  2237.         enum EventReasonEnum adReason,
  2238.         long cRecords,
  2239.         struct Error * pError,
  2240.         enum EventStatusEnum * adStatus,
  2241.         struct _Recordset * pRecordset );
  2242.     HRESULT WillChangeRecordset (
  2243.         enum EventReasonEnum adReason,
  2244.         enum EventStatusEnum * adStatus,
  2245.         struct _Recordset * pRecordset );
  2246.     HRESULT RecordsetChangeComplete (
  2247.         enum EventReasonEnum adReason,
  2248.         struct Error * pError,
  2249.         enum EventStatusEnum * adStatus,
  2250.         struct _Recordset * pRecordset );
  2251.     HRESULT WillMove (
  2252.         enum EventReasonEnum adReason,
  2253.         enum EventStatusEnum * adStatus,
  2254.         struct _Recordset * pRecordset );
  2255.     HRESULT MoveComplete (
  2256.         enum EventReasonEnum adReason,
  2257.         struct Error * pError,
  2258.         enum EventStatusEnum * adStatus,
  2259.         struct _Recordset * pRecordset );
  2260.     HRESULT EndOfRecordset (
  2261.         VARIANT_BOOL * fMoreData,
  2262.         enum EventStatusEnum * adStatus,
  2263.         struct _Recordset * pRecordset );
  2264.     HRESULT FetchProgress (
  2265.         long Progress,
  2266.         long MaxProgress,
  2267.         enum EventStatusEnum * adStatus,
  2268.         struct _Recordset * pRecordset );
  2269.     HRESULT FetchComplete (
  2270.         struct Error * pError,
  2271.         enum EventStatusEnum * adStatus,
  2272.         struct _Recordset * pRecordset );
  2273. };
  2274. struct __declspec(uuid("00000516-0000-0010-8000-00aa006d2ea4"))
  2275. ADOConnectionConstruction15 : IUnknown
  2276. {
  2277.     //
  2278.     // Property data
  2279.     //
  2280.     __declspec(property(get=GetDSO))
  2281.     IUnknownPtr DSO;
  2282.     __declspec(property(get=GetSession))
  2283.     IUnknownPtr Session;
  2284.     //
  2285.     // Wrapper methods for error-handling
  2286.     //
  2287.     IUnknownPtr GetDSO ( );
  2288.     IUnknownPtr GetSession ( );
  2289.     HRESULT WrapDSOandSession (
  2290.         IUnknown * pDSO,
  2291.         IUnknown * pSession );
  2292.     //
  2293.     // Raw methods provided by interface
  2294.     //
  2295.     virtual HRESULT __stdcall get_DSO (
  2296.         IUnknown * * ppDSO ) = 0;
  2297.     virtual HRESULT __stdcall get_Session (
  2298.         IUnknown * * ppSession ) = 0;
  2299.     virtual HRESULT __stdcall raw_WrapDSOandSession (
  2300.         IUnknown * pDSO,
  2301.         IUnknown * pSession ) = 0;
  2302. };
  2303. struct __declspec(uuid("00000551-0000-0010-8000-00aa006d2ea4"))
  2304. ADOConnectionConstruction : ADOConnectionConstruction15
  2305. {};
  2306. struct __declspec(uuid("00000514-0000-0010-8000-00aa006d2ea4"))
  2307. Connection;
  2308.     // [ default ] interface _Connection
  2309.     // [ default, source ] dispinterface ConnectionEvents
  2310. struct __declspec(uuid("00000562-0000-0010-8000-00aa006d2ea4"))
  2311. _Record : _ADO
  2312. {
  2313.     //
  2314.     // Property data
  2315.     //
  2316.     __declspec(property(get=GetFields))
  2317.     FieldsPtr Fields;
  2318.     __declspec(property(get=GetState))
  2319.     enum ObjectStateEnum State;
  2320.     __declspec(property(get=GetMode,put=PutMode))
  2321.     enum ConnectModeEnum Mode;
  2322.     __declspec(property(get=GetParentURL))
  2323.     _bstr_t ParentURL;
  2324.     __declspec(property(get=GetRecordType))
  2325.     enum RecordTypeEnum RecordType;
  2326.     //
  2327.     // Wrapper methods for error-handling
  2328.     //
  2329.     _variant_t GetActiveConnection ( );
  2330.     void PutActiveConnection (
  2331.         _bstr_t pvar );
  2332.     void PutRefActiveConnection (
  2333.         struct _Connection * pvar );
  2334.     enum ObjectStateEnum GetState ( );
  2335.     _variant_t GetSource ( );
  2336.     void PutSource (
  2337.         _bstr_t pvar );
  2338.     void PutRefSource (
  2339.         IDispatch * pvar );
  2340.     enum ConnectModeEnum GetMode ( );
  2341.     void PutMode (
  2342.         enum ConnectModeEnum pMode );
  2343.     _bstr_t GetParentURL ( );
  2344.     _bstr_t MoveRecord (
  2345.         _bstr_t Source,
  2346.         _bstr_t Destination,
  2347.         _bstr_t UserName,
  2348.         _bstr_t Password,
  2349.         enum MoveRecordOptionsEnum Options,
  2350.         VARIANT_BOOL Async );
  2351.     _bstr_t CopyRecord (
  2352.         _bstr_t Source,
  2353.         _bstr_t Destination,
  2354.         _bstr_t UserName,
  2355.         _bstr_t Password,
  2356.         enum CopyRecordOptionsEnum Options,
  2357.         VARIANT_BOOL Async );
  2358.     HRESULT DeleteRecord (
  2359.         _bstr_t Source,
  2360.         VARIANT_BOOL Async );
  2361.     HRESULT Open (
  2362.         const _variant_t & Source,
  2363.         const _variant_t & ActiveConnection,
  2364.         enum ConnectModeEnum Mode,
  2365.         enum RecordCreateOptionsEnum CreateOptions,
  2366.         enum RecordOpenOptionsEnum Options,
  2367.         _bstr_t UserName,
  2368.         _bstr_t Password );
  2369.     HRESULT Close ( );
  2370.     FieldsPtr GetFields ( );
  2371.     enum RecordTypeEnum GetRecordType ( );
  2372.     _RecordsetPtr GetChildren ( );
  2373.     HRESULT Cancel ( );
  2374.     //
  2375.     // Raw methods provided by interface
  2376.     //
  2377.     virtual HRESULT __stdcall get_ActiveConnection (
  2378.         VARIANT * pvar ) = 0;
  2379.     virtual HRESULT __stdcall put_ActiveConnection (
  2380.         BSTR pvar ) = 0;
  2381.     virtual HRESULT __stdcall putref_ActiveConnection (
  2382.         struct _Connection * pvar ) = 0;
  2383.     virtual HRESULT __stdcall get_State (
  2384.         enum ObjectStateEnum * pState ) = 0;
  2385.     virtual HRESULT __stdcall get_Source (
  2386.         VARIANT * pvar ) = 0;
  2387.     virtual HRESULT __stdcall put_Source (
  2388.         BSTR pvar ) = 0;
  2389.     virtual HRESULT __stdcall putref_Source (
  2390.         IDispatch * pvar ) = 0;
  2391.     virtual HRESULT __stdcall get_Mode (
  2392.         enum ConnectModeEnum * pMode ) = 0;
  2393.     virtual HRESULT __stdcall put_Mode (
  2394.         enum ConnectModeEnum pMode ) = 0;
  2395.     virtual HRESULT __stdcall get_ParentURL (
  2396.         BSTR * pbstrParentURL ) = 0;
  2397.     virtual HRESULT __stdcall raw_MoveRecord (
  2398.         BSTR Source,
  2399.         BSTR Destination,
  2400.         BSTR UserName,
  2401.         BSTR Password,
  2402.         enum MoveRecordOptionsEnum Options,
  2403.         VARIANT_BOOL Async,
  2404.         BSTR * pbstrNewURL ) = 0;
  2405.     virtual HRESULT __stdcall raw_CopyRecord (
  2406.         BSTR Source,
  2407.         BSTR Destination,
  2408.         BSTR UserName,
  2409.         BSTR Password,
  2410.         enum CopyRecordOptionsEnum Options,
  2411.         VARIANT_BOOL Async,
  2412.         BSTR * pbstrNewURL ) = 0;
  2413.     virtual HRESULT __stdcall raw_DeleteRecord (
  2414.         BSTR Source,
  2415.         VARIANT_BOOL Async ) = 0;
  2416.     virtual HRESULT __stdcall raw_Open (
  2417.         VARIANT Source,
  2418.         VARIANT ActiveConnection,
  2419.         enum ConnectModeEnum Mode,
  2420.         enum RecordCreateOptionsEnum CreateOptions,
  2421.         enum RecordOpenOptionsEnum Options,
  2422.         BSTR UserName,
  2423.         BSTR Password ) = 0;
  2424.     virtual HRESULT __stdcall raw_Close ( ) = 0;
  2425.     virtual HRESULT __stdcall get_Fields (
  2426.         struct Fields * * ppFlds ) = 0;
  2427.     virtual HRESULT __stdcall get_RecordType (
  2428.         enum RecordTypeEnum * ptype ) = 0;
  2429.     virtual HRESULT __stdcall raw_GetChildren (
  2430.         struct _Recordset * * pprset ) = 0;
  2431.     virtual HRESULT __stdcall raw_Cancel ( ) = 0;
  2432. };
  2433. struct __declspec(uuid("00000560-0000-0010-8000-00aa006d2ea4"))
  2434. Record;
  2435.     // [ default ] interface _Record
  2436. struct __declspec(uuid("00000565-0000-0010-8000-00aa006d2ea4"))
  2437. _Stream : IDispatch
  2438. {
  2439.     //
  2440.     // Property data
  2441.     //
  2442.     __declspec(property(get=GetSize))
  2443.     long Size;
  2444.     __declspec(property(get=GetEOS))
  2445.     VARIANT_BOOL EOS;
  2446.     __declspec(property(get=GetPosition,put=PutPosition))
  2447.     long Position;
  2448.     __declspec(property(get=GetType,put=PutType))
  2449.     enum StreamTypeEnum Type;
  2450.     __declspec(property(get=GetLineSeparator,put=PutLineSeparator))
  2451.     enum LineSeparatorEnum LineSeparator;
  2452.     __declspec(property(get=GetState))
  2453.     enum ObjectStateEnum State;
  2454.     __declspec(property(get=GetMode,put=PutMode))
  2455.     enum ConnectModeEnum Mode;
  2456.     __declspec(property(get=GetCharset,put=PutCharset))
  2457.     _bstr_t Charset;
  2458.     //
  2459.     // Wrapper methods for error-handling
  2460.     //
  2461.     long GetSize ( );
  2462.     VARIANT_BOOL GetEOS ( );
  2463.     long GetPosition ( );
  2464.     void PutPosition (
  2465.         long pPos );
  2466.     enum StreamTypeEnum GetType ( );
  2467.     void PutType (
  2468.         enum StreamTypeEnum ptype );
  2469.     enum LineSeparatorEnum GetLineSeparator ( );
  2470.     void PutLineSeparator (
  2471.         enum LineSeparatorEnum pLS );
  2472.     enum ObjectStateEnum GetState ( );
  2473.     enum ConnectModeEnum GetMode ( );
  2474.     void PutMode (
  2475.         enum ConnectModeEnum pMode );
  2476.     _bstr_t GetCharset ( );
  2477.     void PutCharset (
  2478.         _bstr_t pbstrCharset );
  2479.     _variant_t Read (
  2480.         long NumBytes );
  2481.     HRESULT Open (
  2482.         const _variant_t & Source,
  2483.         enum ConnectModeEnum Mode,
  2484.         enum StreamOpenOptionsEnum Options,
  2485.         _bstr_t UserName,
  2486.         _bstr_t Password );
  2487.     HRESULT Close ( );
  2488.     HRESULT SkipLine ( );
  2489.     HRESULT Write (
  2490.         const _variant_t & Buffer );
  2491.     HRESULT SetEOS ( );
  2492.     HRESULT CopyTo (
  2493.         struct _Stream * DestStream,
  2494.         long CharNumber );
  2495.     HRESULT Flush ( );
  2496.     HRESULT SaveToFile (
  2497.         _bstr_t FileName,
  2498.         enum SaveOptionsEnum Options );
  2499.     HRESULT LoadFromFile (
  2500.         _bstr_t FileName );
  2501.     _bstr_t ReadText (
  2502.         long NumChars );
  2503.     HRESULT WriteText (
  2504.         _bstr_t Data,
  2505.         enum StreamWriteEnum Options );
  2506.     HRESULT Cancel ( );
  2507.     //
  2508.     // Raw methods provided by interface
  2509.     //
  2510.     virtual HRESULT __stdcall get_Size (
  2511.         long * pSize ) = 0;
  2512.     virtual HRESULT __stdcall get_EOS (
  2513.         VARIANT_BOOL * pEOS ) = 0;
  2514.     virtual HRESULT __stdcall get_Position (
  2515.         long * pPos ) = 0;
  2516.     virtual HRESULT __stdcall put_Position (
  2517.         long pPos ) = 0;
  2518.     virtual HRESULT __stdcall get_Type (
  2519.         enum StreamTypeEnum * ptype ) = 0;
  2520.     virtual HRESULT __stdcall put_Type (
  2521.         enum StreamTypeEnum ptype ) = 0;
  2522.     virtual HRESULT __stdcall get_LineSeparator (
  2523.         enum LineSeparatorEnum * pLS ) = 0;
  2524.     virtual HRESULT __stdcall put_LineSeparator (
  2525.         enum LineSeparatorEnum pLS ) = 0;
  2526.     virtual HRESULT __stdcall get_State (
  2527.         enum ObjectStateEnum * pState ) = 0;
  2528.     virtual HRESULT __stdcall get_Mode (
  2529.         enum ConnectModeEnum * pMode ) = 0;
  2530.     virtual HRESULT __stdcall put_Mode (
  2531.         enum ConnectModeEnum pMode ) = 0;
  2532.     virtual HRESULT __stdcall get_Charset (
  2533.         BSTR * pbstrCharset ) = 0;
  2534.     virtual HRESULT __stdcall put_Charset (
  2535.         BSTR pbstrCharset ) = 0;
  2536.     virtual HRESULT __stdcall raw_Read (
  2537.         long NumBytes,
  2538.         VARIANT * pval ) = 0;
  2539.     virtual HRESULT __stdcall raw_Open (
  2540.         VARIANT Source,
  2541.         enum ConnectModeEnum Mode,
  2542.         enum StreamOpenOptionsEnum Options,
  2543.         BSTR UserName,
  2544.         BSTR Password ) = 0;
  2545.     virtual HRESULT __stdcall raw_Close ( ) = 0;
  2546.     virtual HRESULT __stdcall raw_SkipLine ( ) = 0;
  2547.     virtual HRESULT __stdcall raw_Write (
  2548.         VARIANT Buffer ) = 0;
  2549.     virtual HRESULT __stdcall raw_SetEOS ( ) = 0;
  2550.     virtual HRESULT __stdcall raw_CopyTo (
  2551.         struct _Stream * DestStream,
  2552.         long CharNumber ) = 0;
  2553.     virtual HRESULT __stdcall raw_Flush ( ) = 0;
  2554.     virtual HRESULT __stdcall raw_SaveToFile (
  2555.         BSTR FileName,
  2556.         enum SaveOptionsEnum Options ) = 0;
  2557.     virtual HRESULT __stdcall raw_LoadFromFile (
  2558.         BSTR FileName ) = 0;
  2559.     virtual HRESULT __stdcall raw_ReadText (
  2560.         long NumChars,
  2561.         BSTR * pbstr ) = 0;
  2562.     virtual HRESULT __stdcall raw_WriteText (
  2563.         BSTR Data,
  2564.         enum StreamWriteEnum Options ) = 0;
  2565.     virtual HRESULT __stdcall raw_Cancel ( ) = 0;
  2566. };
  2567. struct __declspec(uuid("00000566-0000-0010-8000-00aa006d2ea4"))
  2568. Stream;
  2569.     // [ default ] interface _Stream
  2570. struct __declspec(uuid("00000567-0000-0010-8000-00aa006d2ea4"))
  2571. ADORecordConstruction : IDispatch
  2572. {
  2573.     //
  2574.     // Property data
  2575.     //
  2576.     __declspec(property(get=GetRow,put=PutRow))
  2577.     IUnknownPtr Row;
  2578.     __declspec(property(put=PutParentRow))
  2579.     IUnknownPtr ParentRow;
  2580.     //
  2581.     // Wrapper methods for error-handling
  2582.     //
  2583.     IUnknownPtr GetRow ( );
  2584.     void PutRow (
  2585.         IUnknown * ppRow );
  2586.     void PutParentRow (
  2587.         IUnknown * _arg1 );
  2588.     //
  2589.     // Raw methods provided by interface
  2590.     //
  2591.     virtual HRESULT __stdcall get_Row (
  2592.         IUnknown * * ppRow ) = 0;
  2593.     virtual HRESULT __stdcall put_Row (
  2594.         IUnknown * ppRow ) = 0;
  2595.     virtual HRESULT __stdcall put_ParentRow (
  2596.         IUnknown * _arg1 ) = 0;
  2597. };
  2598. struct __declspec(uuid("00000568-0000-0010-8000-00aa006d2ea4"))
  2599. ADOStreamConstruction : IDispatch
  2600. {
  2601.     //
  2602.     // Property data
  2603.     //
  2604.     __declspec(property(get=GetStream,put=PutStream))
  2605.     IUnknownPtr Stream;
  2606.     //
  2607.     // Wrapper methods for error-handling
  2608.     //
  2609.     IUnknownPtr GetStream ( );
  2610.     void PutStream (
  2611.         IUnknown * ppStm );
  2612.     //
  2613.     // Raw methods provided by interface
  2614.     //
  2615.     virtual HRESULT __stdcall get_Stream (
  2616.         IUnknown * * ppStm ) = 0;
  2617.     virtual HRESULT __stdcall put_Stream (
  2618.         IUnknown * ppStm ) = 0;
  2619. };
  2620. struct __declspec(uuid("00000517-0000-0010-8000-00aa006d2ea4"))
  2621. ADOCommandConstruction : IUnknown
  2622. {
  2623.     //
  2624.     // Property data
  2625.     //
  2626.     __declspec(property(get=GetOLEDBCommand,put=PutOLEDBCommand))
  2627.     IUnknownPtr OLEDBCommand;
  2628.     //
  2629.     // Wrapper methods for error-handling
  2630.     //
  2631.     IUnknownPtr GetOLEDBCommand ( );
  2632.     void PutOLEDBCommand (
  2633.         IUnknown * ppOLEDBCommand );
  2634.     //
  2635.     // Raw methods provided by interface
  2636.     //
  2637.     virtual HRESULT __stdcall get_OLEDBCommand (
  2638.         IUnknown * * ppOLEDBCommand ) = 0;
  2639.     virtual HRESULT __stdcall put_OLEDBCommand (
  2640.         IUnknown * ppOLEDBCommand ) = 0;
  2641. };
  2642. struct __declspec(uuid("00000507-0000-0010-8000-00aa006d2ea4"))
  2643. Command;
  2644.     // [ default ] interface _Command
  2645. struct __declspec(uuid("00000535-0000-0010-8000-00aa006d2ea4"))
  2646. Recordset;
  2647.     // [ default ] interface _Recordset
  2648.     // [ default, source ] dispinterface RecordsetEvents
  2649. struct __declspec(uuid("00000283-0000-0010-8000-00aa006d2ea4"))
  2650. ADORecordsetConstruction : IDispatch
  2651. {
  2652.     //
  2653.     // Property data
  2654.     //
  2655.     __declspec(property(get=GetRowset,put=PutRowset))
  2656.     IUnknownPtr Rowset;
  2657.     __declspec(property(get=GetChapter,put=PutChapter))
  2658.     long Chapter;
  2659.     __declspec(property(get=GetRowPosition,put=PutRowPosition))
  2660.     IUnknownPtr RowPosition;
  2661.     //
  2662.     // Wrapper methods for error-handling
  2663.     //
  2664.     IUnknownPtr GetRowset ( );
  2665.     void PutRowset (
  2666.         IUnknown * ppRowset );
  2667.     long GetChapter ( );
  2668.     void PutChapter (
  2669.         long plChapter );
  2670.     IUnknownPtr GetRowPosition ( );
  2671.     void PutRowPosition (
  2672.         IUnknown * ppRowPos );
  2673.     //
  2674.     // Raw methods provided by interface
  2675.     //
  2676.     virtual HRESULT __stdcall get_Rowset (
  2677.         IUnknown * * ppRowset ) = 0;
  2678.     virtual HRESULT __stdcall put_Rowset (
  2679.         IUnknown * ppRowset ) = 0;
  2680.     virtual HRESULT __stdcall get_Chapter (
  2681.         long * plChapter ) = 0;
  2682.     virtual HRESULT __stdcall put_Chapter (
  2683.         long plChapter ) = 0;
  2684.     virtual HRESULT __stdcall get_RowPosition (
  2685.         IUnknown * * ppRowPos ) = 0;
  2686.     virtual HRESULT __stdcall put_RowPosition (
  2687.         IUnknown * ppRowPos ) = 0;
  2688. };
  2689. struct __declspec(uuid("00000505-0000-0010-8000-00aa006d2ea4"))
  2690. Field15 : _ADO
  2691. {
  2692.     //
  2693.     // Property data
  2694.     //
  2695.     __declspec(property(get=GetValue,put=PutValue))
  2696.     _variant_t Value;
  2697.     __declspec(property(get=GetName))
  2698.     _bstr_t Name;
  2699.     __declspec(property(get=GetType))
  2700.     enum DataTypeEnum Type;
  2701.     __declspec(property(get=GetDefinedSize))
  2702.     long DefinedSize;
  2703.     __declspec(property(get=GetOriginalValue))
  2704.     _variant_t OriginalValue;
  2705.     __declspec(property(get=GetUnderlyingValue))
  2706.     _variant_t UnderlyingValue;
  2707.     __declspec(property(get=GetActualSize))
  2708.     long ActualSize;
  2709.     __declspec(property(get=GetPrecision))
  2710.     unsigned char Precision;
  2711.     __declspec(property(get=GetNumericScale))
  2712.     unsigned char NumericScale;
  2713.     __declspec(property(get=GetAttributes))
  2714.     long Attributes;
  2715.     //
  2716.     // Wrapper methods for error-handling
  2717.     //
  2718.     long GetActualSize ( );
  2719.     long GetAttributes ( );
  2720.     long GetDefinedSize ( );
  2721.     _bstr_t GetName ( );
  2722.     enum DataTypeEnum GetType ( );
  2723.     _variant_t GetValue ( );
  2724.     void PutValue (
  2725.         const _variant_t & pvar );
  2726.     unsigned char GetPrecision ( );
  2727.     unsigned char GetNumericScale ( );
  2728.     HRESULT AppendChunk (
  2729.         const _variant_t & Data );
  2730.     _variant_t GetChunk (
  2731.         long Length );
  2732.     _variant_t GetOriginalValue ( );
  2733.     _variant_t GetUnderlyingValue ( );
  2734.     //
  2735.     // Raw methods provided by interface
  2736.     //
  2737.     virtual HRESULT __stdcall get_ActualSize (
  2738.         long * pl ) = 0;
  2739.     virtual HRESULT __stdcall get_Attributes (
  2740.         long * pl ) = 0;
  2741.     virtual HRESULT __stdcall get_DefinedSize (
  2742.         long * pl ) = 0;
  2743.     virtual HRESULT __stdcall get_Name (
  2744.         BSTR * pbstr ) = 0;
  2745.     virtual HRESULT __stdcall get_Type (
  2746.         enum DataTypeEnum * pDataType ) = 0;
  2747.     virtual HRESULT __stdcall get_Value (
  2748.         VARIANT * pvar ) = 0;
  2749.     virtual HRESULT __stdcall put_Value (
  2750.         VARIANT pvar ) = 0;
  2751.     virtual HRESULT __stdcall get_Precision (
  2752.         unsigned char * pbPrecision ) = 0;
  2753.     virtual HRESULT __stdcall get_NumericScale (
  2754.         unsigned char * pbNumericScale ) = 0;
  2755.     virtual HRESULT __stdcall raw_AppendChunk (
  2756.         VARIANT Data ) = 0;
  2757.     virtual HRESULT __stdcall raw_GetChunk (
  2758.         long Length,
  2759.         VARIANT * pvar ) = 0;
  2760.     virtual HRESULT __stdcall get_OriginalValue (
  2761.         VARIANT * pvar ) = 0;
  2762.     virtual HRESULT __stdcall get_UnderlyingValue (
  2763.         VARIANT * pvar ) = 0;
  2764. };
  2765. struct __declspec(uuid("0000050b-0000-0010-8000-00aa006d2ea4"))
  2766. Parameter;
  2767.     // [ default ] interface _Parameter
  2768. //
  2769. // Wrapper method implementations
  2770. //
  2771. #include "msado15.tli"
  2772. #pragma pack(pop)