msado15.tlh
上传用户:xiaoke98
上传日期:2014-06-29
资源大小:5718k
文件大小:94k
源码类别:

家庭/个人应用

开发平台:

Visual C++

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