msado15.tlh
上传用户:haiweijt
上传日期:2018-02-23
资源大小:8195k
文件大小:98k
源码类别:

Telnet服务器

开发平台:

Visual C++

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