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

ActiveX/DCOM/ATL

开发平台:

Visual C++

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