msado15.tlh
上传用户:latoyin
上传日期:2017-10-19
资源大小:2882k
文件大小:88k
源码类别:

数据库系统

开发平台:

Visual C++

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