OleDb.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:551k
源码类别:

模拟服务器

开发平台:

C/C++

  1. #pragma warning( disable: 4049 )  /* more than 64k source lines */
  2. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  3.  /* File created by MIDL compiler version 6.00.0347 */
  4. /* Compiler settings for oledb.idl:
  5.     Oicf, W1, ..., env=Win32 (32b run)
  6.     protocol : dce , ms_ext, c_ext
  7.     error checks: allocation ref bounds_check enum stub_data 
  8.     VC __declspec() decoration level: 
  9.          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  10.          DECLSPEC_UUID(), MIDL_INTERFACE()
  11. */
  12. //@@MIDL_FILE_HEADING(  )
  13. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  14. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  15. #define __REQUIRED_RPCNDR_H_VERSION__ 440
  16. #endif
  17. #include "rpc.h"
  18. #include "rpcndr.h"
  19. #ifndef __RPCNDR_H_VERSION__
  20. #error this stub requires an updated version of <rpcndr.h>
  21. #endif // __RPCNDR_H_VERSION__
  22. #ifndef COM_NO_WINDOWS_H
  23. #include "windows.h"
  24. #include "ole2.h"
  25. #endif /*COM_NO_WINDOWS_H*/
  26. #ifndef __oledb_h__
  27. #define __oledb_h__
  28. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  29. #pragma once
  30. #endif
  31. /* Forward Declarations */ 
  32. #ifndef __IAccessor_FWD_DEFINED__
  33. #define __IAccessor_FWD_DEFINED__
  34. typedef interface IAccessor IAccessor;
  35. #endif  /* __IAccessor_FWD_DEFINED__ */
  36. #ifndef __IRowset_FWD_DEFINED__
  37. #define __IRowset_FWD_DEFINED__
  38. typedef interface IRowset IRowset;
  39. #endif  /* __IRowset_FWD_DEFINED__ */
  40. #ifndef __IRowsetInfo_FWD_DEFINED__
  41. #define __IRowsetInfo_FWD_DEFINED__
  42. typedef interface IRowsetInfo IRowsetInfo;
  43. #endif  /* __IRowsetInfo_FWD_DEFINED__ */
  44. #ifndef __IRowsetLocate_FWD_DEFINED__
  45. #define __IRowsetLocate_FWD_DEFINED__
  46. typedef interface IRowsetLocate IRowsetLocate;
  47. #endif  /* __IRowsetLocate_FWD_DEFINED__ */
  48. #ifndef __IRowsetResynch_FWD_DEFINED__
  49. #define __IRowsetResynch_FWD_DEFINED__
  50. typedef interface IRowsetResynch IRowsetResynch;
  51. #endif  /* __IRowsetResynch_FWD_DEFINED__ */
  52. #ifndef __IRowsetScroll_FWD_DEFINED__
  53. #define __IRowsetScroll_FWD_DEFINED__
  54. typedef interface IRowsetScroll IRowsetScroll;
  55. #endif  /* __IRowsetScroll_FWD_DEFINED__ */
  56. #ifndef __IChapteredRowset_FWD_DEFINED__
  57. #define __IChapteredRowset_FWD_DEFINED__
  58. typedef interface IChapteredRowset IChapteredRowset;
  59. #endif  /* __IChapteredRowset_FWD_DEFINED__ */
  60. #ifndef __IRowsetFind_FWD_DEFINED__
  61. #define __IRowsetFind_FWD_DEFINED__
  62. typedef interface IRowsetFind IRowsetFind;
  63. #endif  /* __IRowsetFind_FWD_DEFINED__ */
  64. #ifndef __IRowPosition_FWD_DEFINED__
  65. #define __IRowPosition_FWD_DEFINED__
  66. typedef interface IRowPosition IRowPosition;
  67. #endif  /* __IRowPosition_FWD_DEFINED__ */
  68. #ifndef __IRowPositionChange_FWD_DEFINED__
  69. #define __IRowPositionChange_FWD_DEFINED__
  70. typedef interface IRowPositionChange IRowPositionChange;
  71. #endif  /* __IRowPositionChange_FWD_DEFINED__ */
  72. #ifndef __IViewRowset_FWD_DEFINED__
  73. #define __IViewRowset_FWD_DEFINED__
  74. typedef interface IViewRowset IViewRowset;
  75. #endif  /* __IViewRowset_FWD_DEFINED__ */
  76. #ifndef __IViewChapter_FWD_DEFINED__
  77. #define __IViewChapter_FWD_DEFINED__
  78. typedef interface IViewChapter IViewChapter;
  79. #endif  /* __IViewChapter_FWD_DEFINED__ */
  80. #ifndef __IViewSort_FWD_DEFINED__
  81. #define __IViewSort_FWD_DEFINED__
  82. typedef interface IViewSort IViewSort;
  83. #endif  /* __IViewSort_FWD_DEFINED__ */
  84. #ifndef __IViewFilter_FWD_DEFINED__
  85. #define __IViewFilter_FWD_DEFINED__
  86. typedef interface IViewFilter IViewFilter;
  87. #endif  /* __IViewFilter_FWD_DEFINED__ */
  88. #ifndef __IRowsetView_FWD_DEFINED__
  89. #define __IRowsetView_FWD_DEFINED__
  90. typedef interface IRowsetView IRowsetView;
  91. #endif  /* __IRowsetView_FWD_DEFINED__ */
  92. #ifndef __IRowsetExactScroll_FWD_DEFINED__
  93. #define __IRowsetExactScroll_FWD_DEFINED__
  94. typedef interface IRowsetExactScroll IRowsetExactScroll;
  95. #endif  /* __IRowsetExactScroll_FWD_DEFINED__ */
  96. #ifndef __IRowsetChange_FWD_DEFINED__
  97. #define __IRowsetChange_FWD_DEFINED__
  98. typedef interface IRowsetChange IRowsetChange;
  99. #endif  /* __IRowsetChange_FWD_DEFINED__ */
  100. #ifndef __IRowsetUpdate_FWD_DEFINED__
  101. #define __IRowsetUpdate_FWD_DEFINED__
  102. typedef interface IRowsetUpdate IRowsetUpdate;
  103. #endif  /* __IRowsetUpdate_FWD_DEFINED__ */
  104. #ifndef __IRowsetIdentity_FWD_DEFINED__
  105. #define __IRowsetIdentity_FWD_DEFINED__
  106. typedef interface IRowsetIdentity IRowsetIdentity;
  107. #endif  /* __IRowsetIdentity_FWD_DEFINED__ */
  108. #ifndef __IRowsetNotify_FWD_DEFINED__
  109. #define __IRowsetNotify_FWD_DEFINED__
  110. typedef interface IRowsetNotify IRowsetNotify;
  111. #endif  /* __IRowsetNotify_FWD_DEFINED__ */
  112. #ifndef __IRowsetIndex_FWD_DEFINED__
  113. #define __IRowsetIndex_FWD_DEFINED__
  114. typedef interface IRowsetIndex IRowsetIndex;
  115. #endif  /* __IRowsetIndex_FWD_DEFINED__ */
  116. #ifndef __ICommand_FWD_DEFINED__
  117. #define __ICommand_FWD_DEFINED__
  118. typedef interface ICommand ICommand;
  119. #endif  /* __ICommand_FWD_DEFINED__ */
  120. #ifndef __IMultipleResults_FWD_DEFINED__
  121. #define __IMultipleResults_FWD_DEFINED__
  122. typedef interface IMultipleResults IMultipleResults;
  123. #endif  /* __IMultipleResults_FWD_DEFINED__ */
  124. #ifndef __IConvertType_FWD_DEFINED__
  125. #define __IConvertType_FWD_DEFINED__
  126. typedef interface IConvertType IConvertType;
  127. #endif  /* __IConvertType_FWD_DEFINED__ */
  128. #ifndef __ICommandPrepare_FWD_DEFINED__
  129. #define __ICommandPrepare_FWD_DEFINED__
  130. typedef interface ICommandPrepare ICommandPrepare;
  131. #endif  /* __ICommandPrepare_FWD_DEFINED__ */
  132. #ifndef __ICommandProperties_FWD_DEFINED__
  133. #define __ICommandProperties_FWD_DEFINED__
  134. typedef interface ICommandProperties ICommandProperties;
  135. #endif  /* __ICommandProperties_FWD_DEFINED__ */
  136. #ifndef __ICommandText_FWD_DEFINED__
  137. #define __ICommandText_FWD_DEFINED__
  138. typedef interface ICommandText ICommandText;
  139. #endif  /* __ICommandText_FWD_DEFINED__ */
  140. #ifndef __ICommandWithParameters_FWD_DEFINED__
  141. #define __ICommandWithParameters_FWD_DEFINED__
  142. typedef interface ICommandWithParameters ICommandWithParameters;
  143. #endif  /* __ICommandWithParameters_FWD_DEFINED__ */
  144. #ifndef __IColumnsRowset_FWD_DEFINED__
  145. #define __IColumnsRowset_FWD_DEFINED__
  146. typedef interface IColumnsRowset IColumnsRowset;
  147. #endif  /* __IColumnsRowset_FWD_DEFINED__ */
  148. #ifndef __IColumnsInfo_FWD_DEFINED__
  149. #define __IColumnsInfo_FWD_DEFINED__
  150. typedef interface IColumnsInfo IColumnsInfo;
  151. #endif  /* __IColumnsInfo_FWD_DEFINED__ */
  152. #ifndef __IDBCreateCommand_FWD_DEFINED__
  153. #define __IDBCreateCommand_FWD_DEFINED__
  154. typedef interface IDBCreateCommand IDBCreateCommand;
  155. #endif  /* __IDBCreateCommand_FWD_DEFINED__ */
  156. #ifndef __IDBCreateSession_FWD_DEFINED__
  157. #define __IDBCreateSession_FWD_DEFINED__
  158. typedef interface IDBCreateSession IDBCreateSession;
  159. #endif  /* __IDBCreateSession_FWD_DEFINED__ */
  160. #ifndef __ISourcesRowset_FWD_DEFINED__
  161. #define __ISourcesRowset_FWD_DEFINED__
  162. typedef interface ISourcesRowset ISourcesRowset;
  163. #endif  /* __ISourcesRowset_FWD_DEFINED__ */
  164. #ifndef __IDBProperties_FWD_DEFINED__
  165. #define __IDBProperties_FWD_DEFINED__
  166. typedef interface IDBProperties IDBProperties;
  167. #endif  /* __IDBProperties_FWD_DEFINED__ */
  168. #ifndef __IDBInitialize_FWD_DEFINED__
  169. #define __IDBInitialize_FWD_DEFINED__
  170. typedef interface IDBInitialize IDBInitialize;
  171. #endif  /* __IDBInitialize_FWD_DEFINED__ */
  172. #ifndef __IDBInfo_FWD_DEFINED__
  173. #define __IDBInfo_FWD_DEFINED__
  174. typedef interface IDBInfo IDBInfo;
  175. #endif  /* __IDBInfo_FWD_DEFINED__ */
  176. #ifndef __IDBDataSourceAdmin_FWD_DEFINED__
  177. #define __IDBDataSourceAdmin_FWD_DEFINED__
  178. typedef interface IDBDataSourceAdmin IDBDataSourceAdmin;
  179. #endif  /* __IDBDataSourceAdmin_FWD_DEFINED__ */
  180. #ifndef __IDBAsynchNotify_FWD_DEFINED__
  181. #define __IDBAsynchNotify_FWD_DEFINED__
  182. typedef interface IDBAsynchNotify IDBAsynchNotify;
  183. #endif  /* __IDBAsynchNotify_FWD_DEFINED__ */
  184. #ifndef __IDBAsynchStatus_FWD_DEFINED__
  185. #define __IDBAsynchStatus_FWD_DEFINED__
  186. typedef interface IDBAsynchStatus IDBAsynchStatus;
  187. #endif  /* __IDBAsynchStatus_FWD_DEFINED__ */
  188. #ifndef __ISessionProperties_FWD_DEFINED__
  189. #define __ISessionProperties_FWD_DEFINED__
  190. typedef interface ISessionProperties ISessionProperties;
  191. #endif  /* __ISessionProperties_FWD_DEFINED__ */
  192. #ifndef __IIndexDefinition_FWD_DEFINED__
  193. #define __IIndexDefinition_FWD_DEFINED__
  194. typedef interface IIndexDefinition IIndexDefinition;
  195. #endif  /* __IIndexDefinition_FWD_DEFINED__ */
  196. #ifndef __ITableDefinition_FWD_DEFINED__
  197. #define __ITableDefinition_FWD_DEFINED__
  198. typedef interface ITableDefinition ITableDefinition;
  199. #endif  /* __ITableDefinition_FWD_DEFINED__ */
  200. #ifndef __IOpenRowset_FWD_DEFINED__
  201. #define __IOpenRowset_FWD_DEFINED__
  202. typedef interface IOpenRowset IOpenRowset;
  203. #endif  /* __IOpenRowset_FWD_DEFINED__ */
  204. #ifndef __IDBSchemaRowset_FWD_DEFINED__
  205. #define __IDBSchemaRowset_FWD_DEFINED__
  206. typedef interface IDBSchemaRowset IDBSchemaRowset;
  207. #endif  /* __IDBSchemaRowset_FWD_DEFINED__ */
  208. #ifndef __IMDDataset_FWD_DEFINED__
  209. #define __IMDDataset_FWD_DEFINED__
  210. typedef interface IMDDataset IMDDataset;
  211. #endif  /* __IMDDataset_FWD_DEFINED__ */
  212. #ifndef __IMDFind_FWD_DEFINED__
  213. #define __IMDFind_FWD_DEFINED__
  214. typedef interface IMDFind IMDFind;
  215. #endif  /* __IMDFind_FWD_DEFINED__ */
  216. #ifndef __IMDRangeRowset_FWD_DEFINED__
  217. #define __IMDRangeRowset_FWD_DEFINED__
  218. typedef interface IMDRangeRowset IMDRangeRowset;
  219. #endif  /* __IMDRangeRowset_FWD_DEFINED__ */
  220. #ifndef __IAlterTable_FWD_DEFINED__
  221. #define __IAlterTable_FWD_DEFINED__
  222. typedef interface IAlterTable IAlterTable;
  223. #endif  /* __IAlterTable_FWD_DEFINED__ */
  224. #ifndef __IAlterIndex_FWD_DEFINED__
  225. #define __IAlterIndex_FWD_DEFINED__
  226. typedef interface IAlterIndex IAlterIndex;
  227. #endif  /* __IAlterIndex_FWD_DEFINED__ */
  228. #ifndef __IRowsetChapterMember_FWD_DEFINED__
  229. #define __IRowsetChapterMember_FWD_DEFINED__
  230. typedef interface IRowsetChapterMember IRowsetChapterMember;
  231. #endif  /* __IRowsetChapterMember_FWD_DEFINED__ */
  232. #ifndef __ICommandPersist_FWD_DEFINED__
  233. #define __ICommandPersist_FWD_DEFINED__
  234. typedef interface ICommandPersist ICommandPersist;
  235. #endif  /* __ICommandPersist_FWD_DEFINED__ */
  236. #ifndef __IRowsetRefresh_FWD_DEFINED__
  237. #define __IRowsetRefresh_FWD_DEFINED__
  238. typedef interface IRowsetRefresh IRowsetRefresh;
  239. #endif  /* __IRowsetRefresh_FWD_DEFINED__ */
  240. #ifndef __IParentRowset_FWD_DEFINED__
  241. #define __IParentRowset_FWD_DEFINED__
  242. typedef interface IParentRowset IParentRowset;
  243. #endif  /* __IParentRowset_FWD_DEFINED__ */
  244. #ifndef __IErrorRecords_FWD_DEFINED__
  245. #define __IErrorRecords_FWD_DEFINED__
  246. typedef interface IErrorRecords IErrorRecords;
  247. #endif  /* __IErrorRecords_FWD_DEFINED__ */
  248. #ifndef __IErrorLookup_FWD_DEFINED__
  249. #define __IErrorLookup_FWD_DEFINED__
  250. typedef interface IErrorLookup IErrorLookup;
  251. #endif  /* __IErrorLookup_FWD_DEFINED__ */
  252. #ifndef __ISQLErrorInfo_FWD_DEFINED__
  253. #define __ISQLErrorInfo_FWD_DEFINED__
  254. typedef interface ISQLErrorInfo ISQLErrorInfo;
  255. #endif  /* __ISQLErrorInfo_FWD_DEFINED__ */
  256. #ifndef __IGetDataSource_FWD_DEFINED__
  257. #define __IGetDataSource_FWD_DEFINED__
  258. typedef interface IGetDataSource IGetDataSource;
  259. #endif  /* __IGetDataSource_FWD_DEFINED__ */
  260. #ifndef __ITransactionLocal_FWD_DEFINED__
  261. #define __ITransactionLocal_FWD_DEFINED__
  262. typedef interface ITransactionLocal ITransactionLocal;
  263. #endif  /* __ITransactionLocal_FWD_DEFINED__ */
  264. #ifndef __ITransactionJoin_FWD_DEFINED__
  265. #define __ITransactionJoin_FWD_DEFINED__
  266. typedef interface ITransactionJoin ITransactionJoin;
  267. #endif  /* __ITransactionJoin_FWD_DEFINED__ */
  268. #ifndef __ITransactionObject_FWD_DEFINED__
  269. #define __ITransactionObject_FWD_DEFINED__
  270. typedef interface ITransactionObject ITransactionObject;
  271. #endif  /* __ITransactionObject_FWD_DEFINED__ */
  272. #ifndef __ITrusteeAdmin_FWD_DEFINED__
  273. #define __ITrusteeAdmin_FWD_DEFINED__
  274. typedef interface ITrusteeAdmin ITrusteeAdmin;
  275. #endif  /* __ITrusteeAdmin_FWD_DEFINED__ */
  276. #ifndef __ITrusteeGroupAdmin_FWD_DEFINED__
  277. #define __ITrusteeGroupAdmin_FWD_DEFINED__
  278. typedef interface ITrusteeGroupAdmin ITrusteeGroupAdmin;
  279. #endif  /* __ITrusteeGroupAdmin_FWD_DEFINED__ */
  280. #ifndef __IObjectAccessControl_FWD_DEFINED__
  281. #define __IObjectAccessControl_FWD_DEFINED__
  282. typedef interface IObjectAccessControl IObjectAccessControl;
  283. #endif  /* __IObjectAccessControl_FWD_DEFINED__ */
  284. #ifndef __ISecurityInfo_FWD_DEFINED__
  285. #define __ISecurityInfo_FWD_DEFINED__
  286. typedef interface ISecurityInfo ISecurityInfo;
  287. #endif  /* __ISecurityInfo_FWD_DEFINED__ */
  288. #ifndef __ITableCreation_FWD_DEFINED__
  289. #define __ITableCreation_FWD_DEFINED__
  290. typedef interface ITableCreation ITableCreation;
  291. #endif  /* __ITableCreation_FWD_DEFINED__ */
  292. #ifndef __ITableDefinitionWithConstraints_FWD_DEFINED__
  293. #define __ITableDefinitionWithConstraints_FWD_DEFINED__
  294. typedef interface ITableDefinitionWithConstraints ITableDefinitionWithConstraints;
  295. #endif  /* __ITableDefinitionWithConstraints_FWD_DEFINED__ */
  296. #ifndef __IRow_FWD_DEFINED__
  297. #define __IRow_FWD_DEFINED__
  298. typedef interface IRow IRow;
  299. #endif  /* __IRow_FWD_DEFINED__ */
  300. #ifndef __IRowChange_FWD_DEFINED__
  301. #define __IRowChange_FWD_DEFINED__
  302. typedef interface IRowChange IRowChange;
  303. #endif  /* __IRowChange_FWD_DEFINED__ */
  304. #ifndef __IRowSchemaChange_FWD_DEFINED__
  305. #define __IRowSchemaChange_FWD_DEFINED__
  306. typedef interface IRowSchemaChange IRowSchemaChange;
  307. #endif  /* __IRowSchemaChange_FWD_DEFINED__ */
  308. #ifndef __IGetRow_FWD_DEFINED__
  309. #define __IGetRow_FWD_DEFINED__
  310. typedef interface IGetRow IGetRow;
  311. #endif  /* __IGetRow_FWD_DEFINED__ */
  312. #ifndef __IBindResource_FWD_DEFINED__
  313. #define __IBindResource_FWD_DEFINED__
  314. typedef interface IBindResource IBindResource;
  315. #endif  /* __IBindResource_FWD_DEFINED__ */
  316. #ifndef __IScopedOperations_FWD_DEFINED__
  317. #define __IScopedOperations_FWD_DEFINED__
  318. typedef interface IScopedOperations IScopedOperations;
  319. #endif  /* __IScopedOperations_FWD_DEFINED__ */
  320. #ifndef __ICreateRow_FWD_DEFINED__
  321. #define __ICreateRow_FWD_DEFINED__
  322. typedef interface ICreateRow ICreateRow;
  323. #endif  /* __ICreateRow_FWD_DEFINED__ */
  324. #ifndef __IDBBinderProperties_FWD_DEFINED__
  325. #define __IDBBinderProperties_FWD_DEFINED__
  326. typedef interface IDBBinderProperties IDBBinderProperties;
  327. #endif  /* __IDBBinderProperties_FWD_DEFINED__ */
  328. #ifndef __IColumnsInfo2_FWD_DEFINED__
  329. #define __IColumnsInfo2_FWD_DEFINED__
  330. typedef interface IColumnsInfo2 IColumnsInfo2;
  331. #endif  /* __IColumnsInfo2_FWD_DEFINED__ */
  332. #ifndef __IRegisterProvider_FWD_DEFINED__
  333. #define __IRegisterProvider_FWD_DEFINED__
  334. typedef interface IRegisterProvider IRegisterProvider;
  335. #endif  /* __IRegisterProvider_FWD_DEFINED__ */
  336. #ifndef __IGetSession_FWD_DEFINED__
  337. #define __IGetSession_FWD_DEFINED__
  338. typedef interface IGetSession IGetSession;
  339. #endif  /* __IGetSession_FWD_DEFINED__ */
  340. #ifndef __IGetSourceRow_FWD_DEFINED__
  341. #define __IGetSourceRow_FWD_DEFINED__
  342. typedef interface IGetSourceRow IGetSourceRow;
  343. #endif  /* __IGetSourceRow_FWD_DEFINED__ */
  344. #ifndef __IRowsetCurrentIndex_FWD_DEFINED__
  345. #define __IRowsetCurrentIndex_FWD_DEFINED__
  346. typedef interface IRowsetCurrentIndex IRowsetCurrentIndex;
  347. #endif  /* __IRowsetCurrentIndex_FWD_DEFINED__ */
  348. #ifndef __ICommandStream_FWD_DEFINED__
  349. #define __ICommandStream_FWD_DEFINED__
  350. typedef interface ICommandStream ICommandStream;
  351. #endif  /* __ICommandStream_FWD_DEFINED__ */
  352. #ifndef __IRowsetBookmark_FWD_DEFINED__
  353. #define __IRowsetBookmark_FWD_DEFINED__
  354. typedef interface IRowsetBookmark IRowsetBookmark;
  355. #endif  /* __IRowsetBookmark_FWD_DEFINED__ */
  356. /* header files for imported files */
  357. #include "wtypes.h"
  358. #include "oaidl.h"
  359. #include "ocidl.h"
  360. #include "propidl.h"
  361. #include "transact.h"
  362. #ifdef __cplusplus
  363. extern "C"{
  364. #endif 
  365. void * __RPC_USER MIDL_user_allocate(size_t);
  366. void __RPC_USER MIDL_user_free( void * ); 
  367. /* interface __MIDL_itf_oledb_0000 */
  368. /* [local] */ 
  369. //+---------------------------------------------------------------------------
  370. //
  371. //  Microsoft OLE DB
  372. //  Copyright (C) Microsoft Corporation, 1994 - 1999.
  373. //
  374. //----------------------------------------------------------------------------
  375. #ifdef _WIN64
  376. #include <pshpack8.h> // 8-byte structure packing
  377. #else
  378. #include <pshpack2.h> // 2-byte structure packing
  379. #endif
  380. //
  381. // OLEDBVER
  382. // OLE DB version number is 2.7 (0x0270); to force a particular version,
  383. // #define OLEDBVER as required before including this file.
  384. //
  385. // If OLEDBVER is not defined, assume version 2.7
  386. #ifndef OLEDBVER
  387. #define OLEDBVER 0x0270
  388. #endif
  389. #ifdef _WIN64
  390. // Length of a non-character object, size
  391. typedef ULONGLONG DBLENGTH;
  392. // Offset within a rowset
  393. typedef LONGLONG DBROWOFFSET;
  394. // Number of rows
  395. typedef LONGLONG DBROWCOUNT;
  396. typedef ULONGLONG DBCOUNTITEM;
  397. // Ordinal (column number, etc.)
  398. typedef ULONGLONG DBORDINAL;
  399. typedef LONGLONG DB_LORDINAL;
  400. // Bookmarks
  401. typedef ULONGLONG DBBKMARK;
  402. // Offset in the buffer
  403. typedef ULONGLONG DBBYTEOFFSET;
  404. // Reference count of each row/accessor  handle
  405. typedef ULONG DBREFCOUNT;
  406. // Parameters
  407. typedef ULONGLONG DB_UPARAMS;
  408. typedef LONGLONG DB_LPARAMS;
  409. // hash values corresponding to the elements (bookmarks)
  410. typedef DWORDLONG DBHASHVALUE;
  411. // For reserve
  412. typedef DWORDLONG DB_DWRESERVE;
  413. typedef LONGLONG DB_LRESERVE;
  414. typedef ULONGLONG DB_URESERVE;
  415. #else //_WIN64
  416. // Length of a non-character object, size
  417. typedef ULONG DBLENGTH;
  418. // Offset within a rowset
  419. typedef LONG DBROWOFFSET;
  420. // Number of rows
  421. typedef LONG DBROWCOUNT;
  422. typedef ULONG DBCOUNTITEM;
  423. // Ordinal (column number, etc.)
  424. typedef ULONG DBORDINAL;
  425. typedef LONG DB_LORDINAL;
  426. // Bookmarks
  427. typedef ULONG DBBKMARK;
  428. // Offset in the buffer
  429. typedef ULONG DBBYTEOFFSET;
  430. // Reference count of each row handle
  431. typedef ULONG DBREFCOUNT;
  432. // Parameters
  433. typedef ULONG DB_UPARAMS;
  434. typedef LONG DB_LPARAMS;
  435. // hash values corresponding to the elements (bookmarks)
  436. typedef DWORD DBHASHVALUE;
  437. // For reserve
  438. typedef DWORD DB_DWRESERVE;
  439. typedef LONG DB_LRESERVE;
  440. typedef ULONG DB_URESERVE;
  441. #endif // _WIN64
  442. extern RPC_IF_HANDLE __MIDL_itf_oledb_0000_v0_0_c_ifspec;
  443. extern RPC_IF_HANDLE __MIDL_itf_oledb_0000_v0_0_s_ifspec;
  444. #ifndef __DBStructureDefinitions_INTERFACE_DEFINED__
  445. #define __DBStructureDefinitions_INTERFACE_DEFINED__
  446. /* interface DBStructureDefinitions */
  447. /* [auto_handle][unique][uuid] */ 
  448. #ifndef UNALIGNED
  449. #if defined(_MIPS_) || defined(_ALPHA_) || defined(_PPC_)
  450. #define UNALIGNED __unaligned
  451. #else
  452. #define UNALIGNED
  453. #endif
  454. #endif //UNALIGNED
  455. #undef OLEDBDECLSPEC
  456. #if _MSC_VER >= 1100 && (!defined(SHx) || (defined(SHx) && _MSC_VER >= 1200))
  457. #define OLEDBDECLSPEC __declspec(selectany)
  458. #else
  459. #define OLEDBDECLSPEC 
  460. #endif //_MSC_VER
  461. typedef DWORD DBKIND;
  462. enum DBKINDENUM
  463.     { DBKIND_GUID_NAME = 0,
  464. DBKIND_GUID_PROPID = DBKIND_GUID_NAME + 1,
  465. DBKIND_NAME = DBKIND_GUID_PROPID + 1,
  466. DBKIND_PGUID_NAME = DBKIND_NAME + 1,
  467. DBKIND_PGUID_PROPID = DBKIND_PGUID_NAME + 1,
  468. DBKIND_PROPID = DBKIND_PGUID_PROPID + 1,
  469. DBKIND_GUID = DBKIND_PROPID + 1
  470.     } ;
  471. typedef struct tagDBID
  472.     {
  473.     /* [switch_is][switch_type] */ union 
  474.         {
  475.         /* [case()] */ GUID guid;
  476.         /* [case()] */ GUID *pguid;
  477.         /* [default] */  /* Empty union arm */ 
  478.         }  uGuid;
  479.     DBKIND eKind;
  480.     /* [switch_is][switch_type] */ union 
  481.         {
  482.         /* [case()] */ LPOLESTR pwszName;
  483.         /* [case()] */ ULONG ulPropid;
  484.         /* [default] */  /* Empty union arm */ 
  485.         }  uName;
  486.     }  DBID;
  487. typedef struct tagDB_NUMERIC
  488.     {
  489.     BYTE precision;
  490.     BYTE scale;
  491.     BYTE sign;
  492.     BYTE val[ 16 ];
  493.     }  DB_NUMERIC;
  494. #ifndef _ULONGLONG_
  495. typedef hyper LONGLONG;
  496. typedef MIDL_uhyper ULONGLONG;
  497. typedef LONGLONG __RPC_FAR *PLONGLONG;
  498. typedef ULONGLONG __RPC_FAR *PULONGLONG;
  499. #endif // _ULONGLONG_
  500. #ifndef DECIMAL_NEG
  501. #ifndef DECIMAL_SETZERO
  502. typedef struct tagDEC {
  503.     USHORT wReserved;
  504.     union {
  505.         struct {
  506.             BYTE scale;
  507.             BYTE sign;
  508.         };
  509.         USHORT signscale;
  510.     };
  511.     ULONG Hi32;
  512.     union {
  513.         struct {
  514. #ifdef _MAC
  515.             ULONG Mid32;
  516.             ULONG Lo32;
  517. #else
  518.             ULONG Lo32;
  519.             ULONG Mid32;
  520. #endif
  521.         };
  522.         ULONGLONG Lo64;
  523.     };
  524. } DECIMAL;
  525. #define DECIMAL_NEG ((BYTE)0x80)
  526. #define DECIMAL_SETZERO(dec) {(dec).Lo64 = 0; (dec).Hi32 = 0; (dec).signscale = 0;}
  527. #endif // DECIMAL_SETZERO
  528. #endif // DECIMAL_NEG
  529. typedef struct tagDBVECTOR
  530.     {
  531.     DBLENGTH size;
  532.     /* [size_is] */ void *ptr;
  533.     }  DBVECTOR;
  534. typedef struct tagDBDATE
  535.     {
  536.     SHORT year;
  537.     USHORT month;
  538.     USHORT day;
  539.     }  DBDATE;
  540. typedef struct tagDBTIME
  541.     {
  542.     USHORT hour;
  543.     USHORT minute;
  544.     USHORT second;
  545.     }  DBTIME;
  546. typedef struct tagDBTIMESTAMP
  547.     {
  548.     SHORT year;
  549.     USHORT month;
  550.     USHORT day;
  551.     USHORT hour;
  552.     USHORT minute;
  553.     USHORT second;
  554.     ULONG fraction;
  555.     }  DBTIMESTAMP;
  556. //@@@+ V2.0
  557. #if( OLEDBVER >= 0x0200 )
  558. #if !defined(_WINBASE_) && !defined(_FILETIME_)
  559. #define _FILETIME_
  560. typedef struct _FILETIME {
  561. DWORD dwLowDateTime;
  562. DWORD dwHighDateTime;
  563.      } FILETIME;
  564. #endif // !_FILETIME
  565. typedef signed char SBYTE;
  566. typedef struct tagDB_VARNUMERIC
  567.     {
  568.     BYTE precision;
  569.     SBYTE scale;
  570.     BYTE sign;
  571.     BYTE val[ 1 ];
  572.     }  DB_VARNUMERIC;
  573. #endif // OLEDBVER >= 0x0200
  574. //@@@- V2.0
  575. //@@@+ V2.1
  576. #if( OLEDBVER >= 0x0210 )
  577. typedef struct _SEC_OBJECT_ELEMENT
  578.     {
  579.     GUID guidObjectType;
  580.     DBID ObjectID;
  581.     }  SEC_OBJECT_ELEMENT;
  582. typedef struct _SEC_OBJECT
  583.     {
  584.     DWORD cObjects;
  585.     /* [size_is] */ SEC_OBJECT_ELEMENT *prgObjects;
  586.     }  SEC_OBJECT;
  587. typedef struct tagDBIMPLICITSESSION
  588.     {
  589.     IUnknown *pUnkOuter;
  590.     IID *piid;
  591.     IUnknown *pSession;
  592.     }  DBIMPLICITSESSION;
  593. #endif // OLEDBVER >= 0x0210
  594. //@@@- V2.1
  595. typedef WORD DBTYPE;
  596. enum DBTYPEENUM
  597.     { DBTYPE_EMPTY = 0,
  598. DBTYPE_NULL = 1,
  599. DBTYPE_I2 = 2,
  600. DBTYPE_I4 = 3,
  601. DBTYPE_R4 = 4,
  602. DBTYPE_R8 = 5,
  603. DBTYPE_CY = 6,
  604. DBTYPE_DATE = 7,
  605. DBTYPE_BSTR = 8,
  606. DBTYPE_IDISPATCH = 9,
  607. DBTYPE_ERROR = 10,
  608. DBTYPE_BOOL = 11,
  609. DBTYPE_VARIANT = 12,
  610. DBTYPE_IUNKNOWN = 13,
  611. DBTYPE_DECIMAL = 14,
  612. DBTYPE_UI1 = 17,
  613. DBTYPE_ARRAY = 0x2000,
  614. DBTYPE_BYREF = 0x4000,
  615. DBTYPE_I1 = 16,
  616. DBTYPE_UI2 = 18,
  617. DBTYPE_UI4 = 19,
  618. DBTYPE_I8 = 20,
  619. DBTYPE_UI8 = 21,
  620. DBTYPE_GUID = 72,
  621. DBTYPE_VECTOR = 0x1000,
  622. DBTYPE_RESERVED = 0x8000,
  623. DBTYPE_BYTES = 128,
  624. DBTYPE_STR = 129,
  625. DBTYPE_WSTR = 130,
  626. DBTYPE_NUMERIC = 131,
  627. DBTYPE_UDT = 132,
  628. DBTYPE_DBDATE = 133,
  629. DBTYPE_DBTIME = 134,
  630. DBTYPE_DBTIMESTAMP = 135
  631.     } ;
  632. // Introduce some new DBTYPTE value to support 64bits ColumnsRowset
  633. #ifdef _WIN64
  634. #define DBTYPEFOR_DBLENGTH DBTYPE_UI8
  635. #define DBTYPEFOR_DBROWCOUNT DBTYPE_I8
  636. #define DBTYPEFOR_DBORDINAL DBTYPE_UI8
  637. #else
  638. #define DBTYPEFOR_DBLENGTH DBTYPE_UI4
  639. #define DBTYPEFOR_DBROWCOUNT DBTYPE_I4
  640. #define DBTYPEFOR_DBORDINAL DBTYPE_UI4
  641. #endif
  642. //@@@+ V1.5
  643. #if( OLEDBVER >= 0x0150 )
  644. enum DBTYPEENUM15
  645.     { DBTYPE_HCHAPTER = 136
  646.     } ;
  647. #endif // OLEDBVER >= 0x0150
  648. //@@@- V1.5
  649. //@@@+ V2.0
  650. #if( OLEDBVER >= 0x0200 )
  651. enum DBTYPEENUM20
  652.     { DBTYPE_FILETIME = 64,
  653. DBTYPE_PROPVARIANT = 138,
  654. DBTYPE_VARNUMERIC = 139
  655.     } ;
  656. #endif // OLEDBVER >= 0x0200
  657. //@@@- V2.0
  658. typedef DWORD DBPART;
  659. enum DBPARTENUM
  660.     { DBPART_INVALID = 0,
  661. DBPART_VALUE = 0x1,
  662. DBPART_LENGTH = 0x2,
  663. DBPART_STATUS = 0x4
  664.     } ;
  665. typedef DWORD DBPARAMIO;
  666. enum DBPARAMIOENUM
  667.     { DBPARAMIO_NOTPARAM = 0,
  668. DBPARAMIO_INPUT = 0x1,
  669. DBPARAMIO_OUTPUT = 0x2
  670.     } ;
  671. //@@@+ V1.5
  672. #if( OLEDBVER >= 0x0150 )
  673. typedef DWORD DBBINDFLAG;
  674. enum DBBINDFLAGENUM
  675.     { DBBINDFLAG_HTML = 0x1
  676.     } ;
  677. #endif // OLEDBVER >= 0x0150
  678. //@@@- V1.5
  679. typedef DWORD DBMEMOWNER;
  680. enum DBMEMOWNERENUM
  681.     { DBMEMOWNER_CLIENTOWNED = 0,
  682. DBMEMOWNER_PROVIDEROWNED = 0x1
  683.     } ;
  684. typedef struct tagDBOBJECT
  685.     {
  686.     DWORD dwFlags;
  687.     IID iid;
  688.     }  DBOBJECT;
  689. typedef DWORD DBSTATUS;
  690. enum DBSTATUSENUM
  691.     { DBSTATUS_S_OK = 0,
  692. DBSTATUS_E_BADACCESSOR = 1,
  693. DBSTATUS_E_CANTCONVERTVALUE = 2,
  694. DBSTATUS_S_ISNULL = 3,
  695. DBSTATUS_S_TRUNCATED = 4,
  696. DBSTATUS_E_SIGNMISMATCH = 5,
  697. DBSTATUS_E_DATAOVERFLOW = 6,
  698. DBSTATUS_E_CANTCREATE = 7,
  699. DBSTATUS_E_UNAVAILABLE = 8,
  700. DBSTATUS_E_PERMISSIONDENIED = 9,
  701. DBSTATUS_E_INTEGRITYVIOLATION = 10,
  702. DBSTATUS_E_SCHEMAVIOLATION = 11,
  703. DBSTATUS_E_BADSTATUS = 12,
  704. DBSTATUS_S_DEFAULT = 13
  705.     } ;
  706. //@@@+ V2.0
  707. #if( OLEDBVER >= 0x0200 )
  708. enum DBSTATUSENUM20
  709.     { MDSTATUS_S_CELLEMPTY = 14,
  710. DBSTATUS_S_IGNORE = 15
  711.     } ;
  712. #endif // OLEDBVER >= 0x0200
  713. //@@@- V2.0
  714. //@@@+ V2.1
  715. #if( OLEDBVER >= 0x0210 )
  716. enum DBSTATUSENUM21
  717.     { DBSTATUS_E_DOESNOTEXIST = 16,
  718. DBSTATUS_E_INVALIDURL = 17,
  719. DBSTATUS_E_RESOURCELOCKED = 18,
  720. DBSTATUS_E_RESOURCEEXISTS = 19,
  721. DBSTATUS_E_CANNOTCOMPLETE = 20,
  722. DBSTATUS_E_VOLUMENOTFOUND = 21,
  723. DBSTATUS_E_OUTOFSPACE = 22,
  724. DBSTATUS_S_CANNOTDELETESOURCE = 23,
  725. DBSTATUS_E_READONLY = 24,
  726. DBSTATUS_E_RESOURCEOUTOFSCOPE = 25,
  727. DBSTATUS_S_ALREADYEXISTS = 26
  728.     } ;
  729. typedef DWORD DBBINDURLFLAG;
  730. enum DBBINDURLFLAGENUM
  731.     { DBBINDURLFLAG_READ = 0x1L,
  732. DBBINDURLFLAG_WRITE = 0x2L,
  733. DBBINDURLFLAG_READWRITE = 0x3L,
  734. DBBINDURLFLAG_SHARE_DENY_READ = 0x4L,
  735. DBBINDURLFLAG_SHARE_DENY_WRITE = 0x8L,
  736. DBBINDURLFLAG_SHARE_EXCLUSIVE = 0xcL,
  737. DBBINDURLFLAG_SHARE_DENY_NONE = 0x10L,
  738. DBBINDURLFLAG_ASYNCHRONOUS = 0x1000L,
  739. DBBINDURLFLAG_COLLECTION = 0x2000L,
  740. DBBINDURLFLAG_DELAYFETCHSTREAM = 0x4000L,
  741. DBBINDURLFLAG_DELAYFETCHCOLUMNS = 0x8000L,
  742. DBBINDURLFLAG_RECURSIVE = 0x400000L,
  743. DBBINDURLFLAG_OUTPUT = 0x800000L,
  744. DBBINDURLFLAG_WAITFORINIT = 0x1000000L,
  745. DBBINDURLFLAG_OPENIFEXISTS = 0x2000000L,
  746. DBBINDURLFLAG_OVERWRITE = 0x4000000L,
  747. DBBINDURLFLAG_ISSTRUCTUREDDOCUMENT = 0x8000000L
  748.     } ;
  749. typedef DWORD DBBINDURLSTATUS;
  750. enum DBBINDURLSTATUSENUM
  751.     { DBBINDURLSTATUS_S_OK = 0L,
  752. DBBINDURLSTATUS_S_DENYNOTSUPPORTED = 0x1L,
  753. DBBINDURLSTATUS_S_DENYTYPENOTSUPPORTED = 0x4L,
  754. DBBINDURLSTATUS_S_REDIRECTED = 0x8L
  755.     } ;
  756. #endif // OLEDBVER >= 0x0210
  757. //@@@- V2.1
  758. //@@@+ V2.5
  759. #if( OLEDBVER >= 0x0250 )
  760. enum DBSTATUSENUM25
  761.     { DBSTATUS_E_CANCELED = 27,
  762. DBSTATUS_E_NOTCOLLECTION = 28
  763.     } ;
  764. #endif // OLEDBVER >= 0x0250
  765. //@@@- V2.5
  766. typedef struct tagDBBINDEXT
  767.     {
  768.     /* [size_is] */ BYTE *pExtension;
  769.     DBCOUNTITEM ulExtension;
  770.     }  DBBINDEXT;
  771. typedef struct tagDBBINDING
  772.     {
  773.     DBORDINAL iOrdinal;
  774.     DBBYTEOFFSET obValue;
  775.     DBBYTEOFFSET obLength;
  776.     DBBYTEOFFSET obStatus;
  777.     ITypeInfo *pTypeInfo;
  778.     DBOBJECT *pObject;
  779.     DBBINDEXT *pBindExt;
  780.     DBPART dwPart;
  781.     DBMEMOWNER dwMemOwner;
  782.     DBPARAMIO eParamIO;
  783.     DBLENGTH cbMaxLen;
  784.     DWORD dwFlags;
  785.     DBTYPE wType;
  786.     BYTE bPrecision;
  787.     BYTE bScale;
  788.     }  DBBINDING;
  789. typedef DWORD DBROWSTATUS;
  790. enum DBROWSTATUSENUM
  791.     { DBROWSTATUS_S_OK = 0,
  792. DBROWSTATUS_S_MULTIPLECHANGES = 2,
  793. DBROWSTATUS_S_PENDINGCHANGES = 3,
  794. DBROWSTATUS_E_CANCELED = 4,
  795. DBROWSTATUS_E_CANTRELEASE = 6,
  796. DBROWSTATUS_E_CONCURRENCYVIOLATION = 7,
  797. DBROWSTATUS_E_DELETED = 8,
  798. DBROWSTATUS_E_PENDINGINSERT = 9,
  799. DBROWSTATUS_E_NEWLYINSERTED = 10,
  800. DBROWSTATUS_E_INTEGRITYVIOLATION = 11,
  801. DBROWSTATUS_E_INVALID = 12,
  802. DBROWSTATUS_E_MAXPENDCHANGESEXCEEDED = 13,
  803. DBROWSTATUS_E_OBJECTOPEN = 14,
  804. DBROWSTATUS_E_OUTOFMEMORY = 15,
  805. DBROWSTATUS_E_PERMISSIONDENIED = 16,
  806. DBROWSTATUS_E_LIMITREACHED = 17,
  807. DBROWSTATUS_E_SCHEMAVIOLATION = 18,
  808. DBROWSTATUS_E_FAIL = 19
  809.     } ;
  810. //@@@+ V2.0
  811. #if( OLEDBVER >= 0x0200 )
  812. enum DBROWSTATUSENUM20
  813.     { DBROWSTATUS_S_NOCHANGE = 20
  814.     } ;
  815. #endif // OLEDBVER >= 0x0200
  816. //@@@- V2.0
  817. //@@@+ V2.6
  818. #if( OLEDBVER >= 0x0260 )
  819. enum DBSTATUSENUM26
  820.     { DBSTATUS_S_ROWSETCOLUMN = 29
  821.     } ;
  822. #endif // OLEDBVER >= 0x0260
  823. //@@@- V2.6
  824. typedef ULONG_PTR HACCESSOR;
  825. #define DB_NULL_HACCESSOR 0x00 // deprecated; use DB_INVALID_HACCESSOR instead
  826. #define DB_INVALID_HACCESSOR 0x00
  827. typedef ULONG_PTR HROW;
  828. #define DB_NULL_HROW 0x00
  829. typedef ULONG_PTR HWATCHREGION;
  830. #define DBWATCHREGION_NULL NULL
  831. typedef ULONG_PTR HCHAPTER;
  832. #define DB_NULL_HCHAPTER 0x00
  833. #define DB_INVALID_HCHAPTER 0x00 // deprecated; use DB_NULL_HCHAPTER instead
  834. typedef struct tagDBFAILUREINFO
  835.     {
  836.     HROW hRow;
  837.     DBORDINAL iColumn;
  838.     HRESULT failure;
  839.     }  DBFAILUREINFO;
  840. typedef DWORD DBCOLUMNFLAGS;
  841. enum DBCOLUMNFLAGSENUM
  842.     { DBCOLUMNFLAGS_ISBOOKMARK = 0x1,
  843. DBCOLUMNFLAGS_MAYDEFER = 0x2,
  844. DBCOLUMNFLAGS_WRITE = 0x4,
  845. DBCOLUMNFLAGS_WRITEUNKNOWN = 0x8,
  846. DBCOLUMNFLAGS_ISFIXEDLENGTH = 0x10,
  847. DBCOLUMNFLAGS_ISNULLABLE = 0x20,
  848. DBCOLUMNFLAGS_MAYBENULL = 0x40,
  849. DBCOLUMNFLAGS_ISLONG = 0x80,
  850. DBCOLUMNFLAGS_ISROWID = 0x100,
  851. DBCOLUMNFLAGS_ISROWVER = 0x200,
  852. DBCOLUMNFLAGS_CACHEDEFERRED = 0x1000
  853.     } ;
  854. //@@@+ V2.0
  855. #if( OLEDBVER >= 0x0200 )
  856. enum DBCOLUMNFLAGSENUM20
  857.     { DBCOLUMNFLAGS_SCALEISNEGATIVE = 0x4000,
  858. DBCOLUMNFLAGS_RESERVED = 0x8000
  859.     } ;
  860. #endif // OLEDBVER >= 0x0200
  861. //@@@- V2.0
  862. //@@@+ deprecated
  863. #ifdef deprecated
  864. //@@@+ V2.0
  865. #if( OLEDBVER >= 0x0200 )
  866. enum DBCOLUMNFLAGSDEPRECATED
  867.     { DBCOLUMNFLAGS_KEYCOLUMN = 0x8000
  868.     } ;
  869. #endif // OLEDBVER >= 0x0200
  870. //@@@- V2.0
  871. #endif // deprecated
  872. //@@@- deprecated
  873. //@@@+ V1.5
  874. #if( OLEDBVER >= 0x0150 )
  875. enum DBCOLUMNFLAGS15ENUM
  876.     { DBCOLUMNFLAGS_ISCHAPTER = 0x2000
  877.     } ;
  878. #endif // OLEDBVER >= 0x0150
  879. //@@@- V1.5
  880. //@@@+ V2.1
  881. #if( OLEDBVER >= 0x0210 )
  882. enum DBCOLUMNFLAGSENUM21
  883.     { DBCOLUMNFLAGS_ISROWURL = 0x10000,
  884. DBCOLUMNFLAGS_ISDEFAULTSTREAM = 0x20000,
  885. DBCOLUMNFLAGS_ISCOLLECTION = 0x40000
  886.     } ;
  887. #endif // OLEDBVER >= 0x0210
  888. //@@@- V2.1
  889. //@@@+ V2.6
  890. #if( OLEDBVER >= 0x0260 )
  891. enum DBCOLUMNFLAGSENUM26
  892.     { DBCOLUMNFLAGS_ISSTREAM = 0x80000,
  893. DBCOLUMNFLAGS_ISROWSET = 0x100000,
  894. DBCOLUMNFLAGS_ISROW = 0x200000,
  895. DBCOLUMNFLAGS_ROWSPECIFICCOLUMN = 0x400000
  896.     } ;
  897. enum DBTABLESTATISTICSTYPE26
  898.     { DBSTAT_HISTOGRAM = 0x1,
  899. DBSTAT_COLUMN_CARDINALITY = 0x2,
  900. DBSTAT_TUPLE_CARDINALITY = 0x4
  901.     } ;
  902. #endif // OLEDBVER >= 0x0260
  903. //@@@- V2.6
  904. typedef struct tagDBCOLUMNINFO
  905.     {
  906.     LPOLESTR pwszName;
  907.     ITypeInfo *pTypeInfo;
  908.     DBORDINAL iOrdinal;
  909.     DBCOLUMNFLAGS dwFlags;
  910.     DBLENGTH ulColumnSize;
  911.     DBTYPE wType;
  912.     BYTE bPrecision;
  913.     BYTE bScale;
  914.     DBID columnid;
  915.     }  DBCOLUMNINFO;
  916. typedef 
  917. enum tagDBBOOKMARK
  918.     { DBBMK_INVALID = 0,
  919. DBBMK_FIRST = DBBMK_INVALID + 1,
  920. DBBMK_LAST = DBBMK_FIRST + 1
  921.     }  DBBOOKMARK;
  922. #define STD_BOOKMARKLENGTH 1
  923. #ifdef __cplusplus
  924. inline BOOL IsEqualGUIDBase(const GUID &rguid1, const GUID &rguid2)
  925. { return !memcmp(&(rguid1.Data2), &(rguid2.Data2), sizeof(GUID) - sizeof(rguid1.Data1)); }
  926. #else // !__cplusplus
  927. #define IsEqualGuidBase(rguid1, rguid2) (!memcmp(&((rguid1).Data2), &((rguid2).Data2), sizeof(GUID) - sizeof((rguid1).Data1)))
  928. #endif // __cplusplus
  929. #ifdef _WIN64
  930. #define DB_INVALIDCOLUMN _UI64_MAX
  931. #else
  932. #define DB_INVALIDCOLUMN ULONG_MAX
  933. #endif // _WIN64
  934. #define DBCIDGUID   {0x0C733A81L,0x2A1C,0x11CE,{0xAD,0xE5,0x00,0xAA,0x00,0x44,0x77,0x3D}}
  935. #define DB_NULLGUID {0x00000000L,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}
  936. #ifdef DBINITCONSTANTS
  937. extern const OLEDBDECLSPEC DBID DB_NULLID                      = {DB_NULLGUID, 0, (LPOLESTR)0};
  938. extern const OLEDBDECLSPEC DBID DBCOLUMN_IDNAME                = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)2};
  939. extern const OLEDBDECLSPEC DBID DBCOLUMN_NAME                  = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)3};
  940. extern const OLEDBDECLSPEC DBID DBCOLUMN_NUMBER                = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)4};
  941. extern const OLEDBDECLSPEC DBID DBCOLUMN_TYPE                  = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)5};
  942. extern const OLEDBDECLSPEC DBID DBCOLUMN_PRECISION             = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)7};
  943. extern const OLEDBDECLSPEC DBID DBCOLUMN_SCALE                 = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)8};
  944. extern const OLEDBDECLSPEC DBID DBCOLUMN_FLAGS                 = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)9};
  945. extern const OLEDBDECLSPEC DBID DBCOLUMN_BASECOLUMNNAME        = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)10};
  946. extern const OLEDBDECLSPEC DBID DBCOLUMN_BASETABLENAME         = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)11};
  947. extern const OLEDBDECLSPEC DBID DBCOLUMN_COLLATINGSEQUENCE     = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)12};
  948. extern const OLEDBDECLSPEC DBID DBCOLUMN_COMPUTEMODE           = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)13};
  949. extern const OLEDBDECLSPEC DBID DBCOLUMN_DEFAULTVALUE          = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)14};
  950. extern const OLEDBDECLSPEC DBID DBCOLUMN_DOMAINNAME            = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)15};
  951. extern const OLEDBDECLSPEC DBID DBCOLUMN_HASDEFAULT            = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)16};
  952. extern const OLEDBDECLSPEC DBID DBCOLUMN_ISAUTOINCREMENT       = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)17};
  953. extern const OLEDBDECLSPEC DBID DBCOLUMN_ISCASESENSITIVE       = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)18};
  954. extern const OLEDBDECLSPEC DBID DBCOLUMN_ISSEARCHABLE          = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)20};
  955. extern const OLEDBDECLSPEC DBID DBCOLUMN_ISUNIQUE              = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)21};
  956. extern const OLEDBDECLSPEC DBID DBCOLUMN_BASECATALOGNAME       = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)23};
  957. extern const OLEDBDECLSPEC DBID DBCOLUMN_BASESCHEMANAME        = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)24};
  958. extern const OLEDBDECLSPEC DBID DBCOLUMN_GUID                  = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)29};
  959. extern const OLEDBDECLSPEC DBID DBCOLUMN_PROPID                = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)30};
  960. extern const OLEDBDECLSPEC DBID DBCOLUMN_TYPEINFO              = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)31};
  961. extern const OLEDBDECLSPEC DBID DBCOLUMN_DOMAINCATALOG         = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)32};
  962. extern const OLEDBDECLSPEC DBID DBCOLUMN_DOMAINSCHEMA          = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)33};
  963. extern const OLEDBDECLSPEC DBID DBCOLUMN_DATETIMEPRECISION     = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)34};
  964. extern const OLEDBDECLSPEC DBID DBCOLUMN_NUMERICPRECISIONRADIX = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)35};
  965. extern const OLEDBDECLSPEC DBID DBCOLUMN_OCTETLENGTH           = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)36};
  966. extern const OLEDBDECLSPEC DBID DBCOLUMN_COLUMNSIZE            = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)37};
  967. extern const OLEDBDECLSPEC DBID DBCOLUMN_CLSID                 = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)38};
  968. //@@@+ V1.5
  969. #if( OLEDBVER >= 0x0150 )
  970. extern const OLEDBDECLSPEC DBID DBCOLUMN_MAYSORT               = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)39};
  971. #endif // OLEDBVER >= 0x0150
  972. //@@@- V1.5
  973. #else // !DBINITCONSTANTS
  974. extern const DBID DB_NULLID;
  975. extern const DBID DBCOLUMN_IDNAME;
  976. extern const DBID DBCOLUMN_NAME;
  977. extern const DBID DBCOLUMN_NUMBER;
  978. extern const DBID DBCOLUMN_TYPE;
  979. extern const DBID DBCOLUMN_PRECISION;
  980. extern const DBID DBCOLUMN_SCALE;
  981. extern const DBID DBCOLUMN_FLAGS;
  982. extern const DBID DBCOLUMN_BASECOLUMNNAME;
  983. extern const DBID DBCOLUMN_BASETABLENAME;
  984. extern const DBID DBCOLUMN_COLLATINGSEQUENCE;
  985. extern const DBID DBCOLUMN_COMPUTEMODE;
  986. extern const DBID DBCOLUMN_DEFAULTVALUE;
  987. extern const DBID DBCOLUMN_DOMAINNAME;
  988. extern const DBID DBCOLUMN_HASDEFAULT;
  989. extern const DBID DBCOLUMN_ISAUTOINCREMENT;
  990. extern const DBID DBCOLUMN_ISCASESENSITIVE;
  991. extern const DBID DBCOLUMN_ISSEARCHABLE;
  992. extern const DBID DBCOLUMN_ISUNIQUE;
  993. extern const DBID DBCOLUMN_BASECATALOGNAME;
  994. extern const DBID DBCOLUMN_BASESCHEMANAME;
  995. extern const DBID DBCOLUMN_GUID;
  996. extern const DBID DBCOLUMN_PROPID;
  997. extern const DBID DBCOLUMN_TYPEINFO;
  998. extern const DBID DBCOLUMN_DOMAINCATALOG;
  999. extern const DBID DBCOLUMN_DOMAINSCHEMA;
  1000. extern const DBID DBCOLUMN_DATETIMEPRECISION;
  1001. extern const DBID DBCOLUMN_NUMERICPRECISIONRADIX;
  1002. extern const DBID DBCOLUMN_OCTETLENGTH;
  1003. extern const DBID DBCOLUMN_COLUMNSIZE;
  1004. extern const DBID DBCOLUMN_CLSID;
  1005. //@@@+ V1.5
  1006. #if( OLEDBVER >= 0x0150 )
  1007. extern const DBID DBCOLUMN_MAYSORT;
  1008. #endif // OLEDBVER >= 0x0150
  1009. //@@@- V1.5
  1010. #endif // DBINITCONSTANTS
  1011. #ifdef DBINITCONSTANTS
  1012. //@@@+ V2.6
  1013. #if( OLEDBVER >= 0x0260 )
  1014. extern const OLEDBDECLSPEC GUID MDSCHEMA_FUNCTIONS                    = {0xa07ccd07,0x8148,0x11d0,{0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42}};
  1015. extern const OLEDBDECLSPEC GUID MDSCHEMA_ACTIONS                      = {0xa07ccd08,0x8148,0x11d0,{0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42}};
  1016. extern const OLEDBDECLSPEC GUID MDSCHEMA_COMMANDS                     = {0xa07ccd09,0x8148,0x11d0,{0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42}};
  1017. extern const OLEDBDECLSPEC GUID MDSCHEMA_SETS  = {0xa07ccd0b,0x8148,0x11d0,{0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42}};
  1018. #endif // OLEDBVER >= 0x0260
  1019. //@@@- V2.6
  1020. //@@@+ V2.0
  1021. #if( OLEDBVER >= 0x0200 )
  1022. extern const OLEDBDECLSPEC GUID DBSCHEMA_TABLES_INFO                   = {0xc8b522e0,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1023. extern const OLEDBDECLSPEC GUID MDGUID_MDX                             = {0xa07cccd0,0x8148,0x11d0,{0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42}};
  1024. extern const OLEDBDECLSPEC GUID DBGUID_MDX                             = {0xa07cccd0,0x8148,0x11d0,{0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42}};
  1025. extern const OLEDBDECLSPEC GUID MDSCHEMA_CUBES                         = {0xc8b522d8,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1026. extern const OLEDBDECLSPEC GUID MDSCHEMA_DIMENSIONS                    = {0xc8b522d9,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1027. extern const OLEDBDECLSPEC GUID MDSCHEMA_HIERARCHIES                   = {0xc8b522da,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1028. extern const OLEDBDECLSPEC GUID MDSCHEMA_LEVELS                        = {0xc8b522db,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1029. extern const OLEDBDECLSPEC GUID MDSCHEMA_MEASURES                      = {0xc8b522dc,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1030. extern const OLEDBDECLSPEC GUID MDSCHEMA_PROPERTIES                    = {0xc8b522dd,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1031. extern const OLEDBDECLSPEC GUID MDSCHEMA_MEMBERS                       = {0xc8b522de,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1032. extern const OLEDBDECLSPEC DBID DBCOLUMN_BASETABLEVERSION = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)40};
  1033. extern const OLEDBDECLSPEC DBID DBCOLUMN_KEYCOLUMN = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)41};
  1034. #endif // OLEDBVER >= 0x0200
  1035. //@@@- V2.0
  1036. //@@@+ V2.1
  1037. #if( OLEDBVER >= 0x0210 )
  1038. #define DBGUID_ROWURL   {0x0C733AB6L,0x2A1C,0x11CE,{0xAD,0xE5,0x00,0xAA,0x00,0x44,0x77,0x3D}}
  1039. #define DBGUID_ROWDEFAULTSTREAM   {0x0C733AB7L,0x2A1C,0x11CE,{0xAD,0xE5,0x00,0xAA,0x00,0x44,0x77,0x3D}}
  1040. extern const OLEDBDECLSPEC GUID DBPROPSET_TRUSTEE = {0xc8b522e1,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1041. extern const OLEDBDECLSPEC GUID DBOBJECT_TABLE  = {0xc8b522e2,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1042. extern const OLEDBDECLSPEC GUID DBOBJECT_COLUMN  = {0xc8b522e4,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1043. extern const OLEDBDECLSPEC GUID DBOBJECT_DATABASE = {0xc8b522e5,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1044. extern const OLEDBDECLSPEC GUID DBOBJECT_PROCEDURE  = {0xc8b522e6,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1045. extern const OLEDBDECLSPEC GUID DBOBJECT_VIEW   = {0xc8b522e7,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1046. extern const OLEDBDECLSPEC GUID DBOBJECT_SCHEMA = {0xc8b522e8,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1047. extern const OLEDBDECLSPEC GUID DBOBJECT_DOMAIN   = {0xc8b522e9,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1048. extern const OLEDBDECLSPEC GUID DBOBJECT_COLLATION  = {0xc8b522ea,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1049. extern const OLEDBDECLSPEC GUID DBOBJECT_TRUSTEE   = {0xc8b522eb,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1050. extern const OLEDBDECLSPEC GUID DBOBJECT_SCHEMAROWSET = {0xc8b522ec,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1051. extern const OLEDBDECLSPEC GUID DBOBJECT_CHARACTERSET   = {0xc8b522ed,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1052. extern const OLEDBDECLSPEC GUID DBOBJECT_TRANSLATION  = {0xc8b522ee,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1053. extern const OLEDBDECLSPEC GUID DBSCHEMA_TRUSTEE  = {0xc8b522ef,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1054. extern const OLEDBDECLSPEC GUID DBPROPSET_COLUMNALL  = {0xc8b522f0,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1055. extern const OLEDBDECLSPEC GUID DBPROPSET_INDEXALL  = {0xc8b522f1,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1056. extern const OLEDBDECLSPEC GUID DBPROPSET_TABLEALL  = {0xc8b522f2,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1057. extern const OLEDBDECLSPEC GUID DBPROPSET_TRUSTEEALL = {0xc8b522f3,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1058. extern const OLEDBDECLSPEC GUID DBPROPSET_CONSTRAINTALL = {0xc8b522fa,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1059. extern const OLEDBDECLSPEC GUID DBGUID_DSO = {0xc8b522f4,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1060. extern const OLEDBDECLSPEC GUID DBGUID_SESSION = {0xc8b522f5,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1061. extern const OLEDBDECLSPEC GUID DBGUID_ROWSET = {0xc8b522f6,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1062. extern const OLEDBDECLSPEC GUID DBGUID_ROW = {0xc8b522f7,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1063. extern const OLEDBDECLSPEC GUID DBGUID_COMMAND = {0xc8b522f8,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1064. extern const OLEDBDECLSPEC GUID DBGUID_STREAM = {0xc8b522f9,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1065. extern const OLEDBDECLSPEC DBID DBROWCOL_ROWURL          = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (LPOLESTR)0};
  1066. extern const OLEDBDECLSPEC DBID DBROWCOL_PARSENAME            = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (LPOLESTR)2};
  1067. extern const OLEDBDECLSPEC DBID DBROWCOL_PARENTNAME           = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (LPOLESTR)3};
  1068. extern const OLEDBDECLSPEC DBID DBROWCOL_ABSOLUTEPARSENAME    = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (LPOLESTR)4};
  1069. extern const OLEDBDECLSPEC DBID DBROWCOL_ISHIDDEN             = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (LPOLESTR)5};
  1070. extern const OLEDBDECLSPEC DBID DBROWCOL_ISREADONLY           = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (LPOLESTR)6};
  1071. extern const OLEDBDECLSPEC DBID DBROWCOL_CONTENTTYPE          = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (LPOLESTR)7};
  1072. extern const OLEDBDECLSPEC DBID DBROWCOL_CONTENTCLASS         = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (LPOLESTR)8};
  1073. extern const OLEDBDECLSPEC DBID DBROWCOL_CONTENTLANGUAGE      = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (LPOLESTR)9};
  1074. extern const OLEDBDECLSPEC DBID DBROWCOL_CREATIONTIME         = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (LPOLESTR)10};
  1075. extern const OLEDBDECLSPEC DBID DBROWCOL_LASTACCESSTIME       = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (LPOLESTR)11};
  1076. extern const OLEDBDECLSPEC DBID DBROWCOL_LASTWRITETIME        = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (LPOLESTR)12};
  1077. extern const OLEDBDECLSPEC DBID DBROWCOL_STREAMSIZE           = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (LPOLESTR)13};
  1078. extern const OLEDBDECLSPEC DBID DBROWCOL_ISCOLLECTION         = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (LPOLESTR)14};
  1079. extern const OLEDBDECLSPEC DBID DBROWCOL_ISSTRUCTUREDDOCUMENT = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (LPOLESTR)15};
  1080. extern const OLEDBDECLSPEC DBID DBROWCOL_DEFAULTDOCUMENT      = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (LPOLESTR)16};
  1081. extern const OLEDBDECLSPEC DBID DBROWCOL_DISPLAYNAME          = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (LPOLESTR)17};
  1082. extern const OLEDBDECLSPEC DBID DBROWCOL_ISROOT               = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (LPOLESTR)18};
  1083. extern const OLEDBDECLSPEC DBID DBROWCOL_DEFAULTSTREAM        = {DBGUID_ROWDEFAULTSTREAM, DBKIND_GUID_PROPID, (LPOLESTR)0};
  1084. extern const OLEDBDECLSPEC GUID DBGUID_CONTAINEROBJECT        = {0xc8b522fb,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1085. #endif // OLEDBVER >= 0x0210
  1086. //@@@- V2.1
  1087. extern const OLEDBDECLSPEC GUID DBSCHEMA_ASSERTIONS                    = {0xc8b52210,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1088. extern const OLEDBDECLSPEC GUID DBSCHEMA_CATALOGS                      = {0xc8b52211,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1089. extern const OLEDBDECLSPEC GUID DBSCHEMA_CHARACTER_SETS                = {0xc8b52212,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1090. extern const OLEDBDECLSPEC GUID DBSCHEMA_COLLATIONS                    = {0xc8b52213,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1091. extern const OLEDBDECLSPEC GUID DBSCHEMA_COLUMNS                       = {0xc8b52214,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1092. extern const OLEDBDECLSPEC GUID DBSCHEMA_CHECK_CONSTRAINTS             = {0xc8b52215,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1093. extern const OLEDBDECLSPEC GUID DBSCHEMA_CONSTRAINT_COLUMN_USAGE       = {0xc8b52216,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1094. extern const OLEDBDECLSPEC GUID DBSCHEMA_CONSTRAINT_TABLE_USAGE        = {0xc8b52217,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1095. extern const OLEDBDECLSPEC GUID DBSCHEMA_KEY_COLUMN_USAGE              = {0xc8b52218,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1096. extern const OLEDBDECLSPEC GUID DBSCHEMA_REFERENTIAL_CONSTRAINTS       = {0xc8b52219,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1097. extern const OLEDBDECLSPEC GUID DBSCHEMA_TABLE_CONSTRAINTS             = {0xc8b5221a,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1098. extern const OLEDBDECLSPEC GUID DBSCHEMA_COLUMN_DOMAIN_USAGE           = {0xc8b5221b,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1099. extern const OLEDBDECLSPEC GUID DBSCHEMA_INDEXES                       = {0xc8b5221e,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1100. extern const OLEDBDECLSPEC GUID DBSCHEMA_COLUMN_PRIVILEGES             = {0xc8b52221,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1101. extern const OLEDBDECLSPEC GUID DBSCHEMA_TABLE_PRIVILEGES              = {0xc8b52222,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1102. extern const OLEDBDECLSPEC GUID DBSCHEMA_USAGE_PRIVILEGES              = {0xc8b52223,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1103. extern const OLEDBDECLSPEC GUID DBSCHEMA_PROCEDURES                    = {0xc8b52224,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1104. extern const OLEDBDECLSPEC GUID DBSCHEMA_SCHEMATA                      = {0xc8b52225,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1105. extern const OLEDBDECLSPEC GUID DBSCHEMA_SQL_LANGUAGES                 = {0xc8b52226,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1106. extern const OLEDBDECLSPEC GUID DBSCHEMA_STATISTICS                    = {0xc8b52227,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1107. extern const OLEDBDECLSPEC GUID DBSCHEMA_TABLES                        = {0xc8b52229,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1108. extern const OLEDBDECLSPEC GUID DBSCHEMA_TRANSLATIONS                  = {0xc8b5222a,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1109. extern const OLEDBDECLSPEC GUID DBSCHEMA_PROVIDER_TYPES                = {0xc8b5222c,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1110. extern const OLEDBDECLSPEC GUID DBSCHEMA_VIEWS                         = {0xc8b5222d,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1111. extern const OLEDBDECLSPEC GUID DBSCHEMA_VIEW_COLUMN_USAGE             = {0xc8b5222e,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1112. extern const OLEDBDECLSPEC GUID DBSCHEMA_VIEW_TABLE_USAGE              = {0xc8b5222f,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1113. extern const OLEDBDECLSPEC GUID DBSCHEMA_PROCEDURE_PARAMETERS          = {0xc8b522b8,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1114. extern const OLEDBDECLSPEC GUID DBSCHEMA_FOREIGN_KEYS                  = {0xc8b522c4,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1115. extern const OLEDBDECLSPEC GUID DBSCHEMA_PRIMARY_KEYS                  = {0xc8b522c5,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1116. extern const OLEDBDECLSPEC GUID DBSCHEMA_PROCEDURE_COLUMNS             = {0xc8b522c9,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1117. extern const OLEDBDECLSPEC GUID DBCOL_SELFCOLUMNS                      = {0xc8b52231,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1118. extern const OLEDBDECLSPEC GUID DBCOL_SPECIALCOL                       = {0xc8b52232,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1119. extern const OLEDBDECLSPEC GUID PSGUID_QUERY                           = {0x49691c90,0x7e17,0x101a,{0xa9,0x1c,0x08,0x00,0x2b,0x2e,0xcd,0xa9}};
  1120. extern const OLEDBDECLSPEC GUID DBPROPSET_COLUMN                       = {0xc8b522b9,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1121. extern const OLEDBDECLSPEC GUID DBPROPSET_DATASOURCE                   = {0xc8b522ba,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1122. extern const OLEDBDECLSPEC GUID DBPROPSET_DATASOURCEINFO               = {0xc8b522bb,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1123. extern const OLEDBDECLSPEC GUID DBPROPSET_DBINIT                       = {0xc8b522bc,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1124. extern const OLEDBDECLSPEC GUID DBPROPSET_INDEX                        = {0xc8b522bd,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1125. extern const OLEDBDECLSPEC GUID DBPROPSET_ROWSET                       = {0xc8b522be,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1126. extern const OLEDBDECLSPEC GUID DBPROPSET_TABLE                        = {0xc8b522bf,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1127. extern const OLEDBDECLSPEC GUID DBPROPSET_DATASOURCEALL                = {0xc8b522c0,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1128. extern const OLEDBDECLSPEC GUID DBPROPSET_DATASOURCEINFOALL            = {0xc8b522c1,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1129. extern const OLEDBDECLSPEC GUID DBPROPSET_ROWSETALL                    = {0xc8b522c2,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1130. extern const OLEDBDECLSPEC GUID DBPROPSET_SESSION                      = {0xc8b522c6,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1131. extern const OLEDBDECLSPEC GUID DBPROPSET_SESSIONALL                   = {0xc8b522c7,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1132. extern const OLEDBDECLSPEC GUID DBPROPSET_DBINITALL                    = {0xc8b522ca,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1133. extern const OLEDBDECLSPEC GUID DBPROPSET_PROPERTIESINERROR            = {0xc8b522d4,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1134. //@@@+ V1.5
  1135. #if( OLEDBVER >= 0x0150 )
  1136. extern const OLEDBDECLSPEC GUID DBPROPSET_VIEW                         = {0xc8b522df,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1137. #endif // OLEDBVER >= 0x0150
  1138. //@@@- V1.5
  1139. //@@@+ V2.5
  1140. #if( OLEDBVER >= 0x0250 )
  1141. extern const OLEDBDECLSPEC GUID DBPROPSET_VIEWALL                      = {0xc8b522fc,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1142. #endif // OLEDBVER >= 0x0250
  1143. //@@@- V2.5
  1144. //@@@+ V2.6
  1145. #if( OLEDBVER >= 0x0260 )
  1146. extern const OLEDBDECLSPEC GUID DBPROPSET_STREAM                       = {0xc8b522fd,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1147. extern const OLEDBDECLSPEC GUID DBPROPSET_STREAMALL                    = {0xc8b522fe,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1148. extern const OLEDBDECLSPEC GUID DBSCHEMA_TABLE_STATISTICS    = {0xc8b522ff,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1149. extern const OLEDBDECLSPEC GUID DBSCHEMA_CHECK_CONSTRAINTS_BY_TABLE    = {0xc8b52301,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1150. extern const OLEDBDECLSPEC GUID DBGUID_HISTOGRAM_ROWSET   = {0xc8b52300,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1151. extern const OLEDBDECLSPEC DBID DBCOLUMN_DERIVEDCOLUMNNAME             = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)43};
  1152. #endif // OLEDBVER >= 0x0260
  1153. //@@@- V2.6
  1154. // DBGUID_DBSQL is deprecated; use DBGUID_DEFAULT instead
  1155. extern const OLEDBDECLSPEC GUID DBGUID_DBSQL                           = {0xc8b521fb,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1156. extern const OLEDBDECLSPEC GUID DBGUID_DEFAULT                         = {0xc8b521fb,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1157. extern const OLEDBDECLSPEC GUID DBGUID_SQL                             = {0xc8b522d7,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  1158. #else // !DBINITCONSTANTS
  1159. //@@@+ V2.0
  1160. #if( OLEDBVER >= 0x0200 )
  1161. extern const GUID DBSCHEMA_TABLES_INFO;
  1162. extern const GUID MDGUID_MDX;
  1163. extern const GUID DBGUID_MDX;
  1164. extern const GUID MDSCHEMA_CUBES;
  1165. extern const GUID MDSCHEMA_DIMENSIONS;
  1166. extern const GUID MDSCHEMA_HIERARCHIES;
  1167. extern const GUID MDSCHEMA_LEVELS;
  1168. extern const GUID MDSCHEMA_MEASURES;
  1169. extern const GUID MDSCHEMA_PROPERTIES;
  1170. extern const GUID MDSCHEMA_MEMBERS;
  1171. extern const DBID DBCOLUMN_BASETABLEVERSION;
  1172. extern const DBID DBCOLUMN_KEYCOLUMN;
  1173. #endif // OLEDBVER >= 0x0200
  1174. //@@@- V2.0
  1175. //@@@+ V2.1
  1176. #if( OLEDBVER >= 0x0210 )
  1177. extern const GUID DBPROPSET_TRUSTEE;
  1178. extern const GUID DBOBJECT_TABLE;
  1179. extern const GUID DBOBJECT_COLUMN;
  1180. extern const GUID DBOBJECT_DATABASE;
  1181. extern const GUID DBOBJECT_PROCEDURE;
  1182. extern const GUID DBOBJECT_VIEW;
  1183. extern const GUID DBOBJECT_SCHEMA;
  1184. extern const GUID DBOBJECT_DOMAIN;
  1185. extern const GUID DBOBJECT_COLLATION;
  1186. extern const GUID DBOBJECT_TRUSTEE;
  1187. extern const GUID DBOBJECT_SCHEMAROWSET;
  1188. extern const GUID DBOBJECT_CHARACTERSET;
  1189. extern const GUID DBOBJECT_TRANSLATION;
  1190. extern const GUID DBSCHEMA_TRUSTEE;
  1191. extern const GUID DBPROPSET_COLUMNALL;
  1192. extern const GUID DBPROPSET_INDEXALL;
  1193. extern const GUID DBPROPSET_TABLEALL;
  1194. extern const GUID DBPROPSET_TRUSTEEALL;
  1195. extern const GUID DBPROPSET_CONSTRAINTALL;
  1196. extern const GUID DBGUID_DSO;    
  1197. extern const GUID DBGUID_SESSION;
  1198. extern const GUID DBGUID_ROWSET; 
  1199. extern const GUID DBGUID_ROW;    
  1200. extern const GUID DBGUID_COMMAND;
  1201. extern const GUID DBGUID_STREAM; 
  1202. extern const DBID DBROWCOL_ROWURL;         
  1203. extern const DBID DBROWCOL_PARSENAME;            
  1204. extern const DBID DBROWCOL_PARENTNAME;           
  1205. extern const DBID DBROWCOL_ABSOLUTEPARSENAME;    
  1206. extern const DBID DBROWCOL_ISHIDDEN;             
  1207. extern const DBID DBROWCOL_ISREADONLY;           
  1208. extern const DBID DBROWCOL_CONTENTTYPE;          
  1209. extern const DBID DBROWCOL_CONTENTCLASS;         
  1210. extern const DBID DBROWCOL_CONTENTLANGUAGE;      
  1211. extern const DBID DBROWCOL_CREATIONTIME;         
  1212. extern const DBID DBROWCOL_LASTACCESSTIME;       
  1213. extern const DBID DBROWCOL_LASTWRITETIME;        
  1214. extern const DBID DBROWCOL_STREAMSIZE;           
  1215. extern const DBID DBROWCOL_ISCOLLECTION;         
  1216. extern const DBID DBROWCOL_ISSTRUCTUREDDOCUMENT; 
  1217. extern const DBID DBROWCOL_DEFAULTDOCUMENT;      
  1218. extern const DBID DBROWCOL_DISPLAYNAME;          
  1219. extern const DBID DBROWCOL_ISROOT;               
  1220. extern const DBID DBROWCOL_DEFAULTSTREAM;        
  1221. extern const GUID DBGUID_CONTAINEROBJECT;
  1222. #endif // OLEDBVER >= 0x0210
  1223. //@@@- V2.1
  1224. extern const GUID DBSCHEMA_ASSERTIONS;
  1225. extern const GUID DBSCHEMA_CATALOGS;
  1226. extern const GUID DBSCHEMA_CHARACTER_SETS;
  1227. extern const GUID DBSCHEMA_COLLATIONS;
  1228. extern const GUID DBSCHEMA_COLUMNS;
  1229. extern const GUID DBSCHEMA_CHECK_CONSTRAINTS;
  1230. extern const GUID DBSCHEMA_CONSTRAINT_COLUMN_USAGE;
  1231. extern const GUID DBSCHEMA_CONSTRAINT_TABLE_USAGE;
  1232. extern const GUID DBSCHEMA_KEY_COLUMN_USAGE;
  1233. extern const GUID DBSCHEMA_REFERENTIAL_CONSTRAINTS;
  1234. extern const GUID DBSCHEMA_TABLE_CONSTRAINTS;
  1235. extern const GUID DBSCHEMA_COLUMN_DOMAIN_USAGE;
  1236. extern const GUID DBSCHEMA_INDEXES;
  1237. extern const GUID DBSCHEMA_COLUMN_PRIVILEGES;
  1238. extern const GUID DBSCHEMA_TABLE_PRIVILEGES;
  1239. extern const GUID DBSCHEMA_USAGE_PRIVILEGES;
  1240. extern const GUID DBSCHEMA_PROCEDURES;
  1241. extern const GUID DBSCHEMA_SCHEMATA;
  1242. extern const GUID DBSCHEMA_SQL_LANGUAGES;
  1243. extern const GUID DBSCHEMA_STATISTICS;
  1244. extern const GUID DBSCHEMA_TABLES;
  1245. extern const GUID DBSCHEMA_TRANSLATIONS;
  1246. extern const GUID DBSCHEMA_PROVIDER_TYPES;
  1247. extern const GUID DBSCHEMA_VIEWS;
  1248. extern const GUID DBSCHEMA_VIEW_COLUMN_USAGE;
  1249. extern const GUID DBSCHEMA_VIEW_TABLE_USAGE;
  1250. extern const GUID DBSCHEMA_PROCEDURE_PARAMETERS;
  1251. extern const GUID DBSCHEMA_FOREIGN_KEYS;
  1252. extern const GUID DBSCHEMA_PRIMARY_KEYS;
  1253. extern const GUID DBSCHEMA_PROCEDURE_COLUMNS;
  1254. extern const GUID DBCOL_SELFCOLUMNS;
  1255. extern const GUID DBCOL_SPECIALCOL;
  1256. extern const GUID PSGUID_QUERY;
  1257. extern const GUID DBPROPSET_COLUMN;
  1258. extern const GUID DBPROPSET_DATASOURCE;
  1259. extern const GUID DBPROPSET_DATASOURCEINFO;
  1260. extern const GUID DBPROPSET_DBINIT;
  1261. extern const GUID DBPROPSET_INDEX;
  1262. extern const GUID DBPROPSET_ROWSET;
  1263. extern const GUID DBPROPSET_TABLE;
  1264. extern const GUID DBPROPSET_DATASOURCEALL;
  1265. extern const GUID DBPROPSET_DATASOURCEINFOALL;
  1266. extern const GUID DBPROPSET_ROWSETALL;
  1267. extern const GUID DBPROPSET_SESSION;
  1268. extern const GUID DBPROPSET_SESSIONALL;
  1269. extern const GUID DBPROPSET_DBINITALL;
  1270. extern const GUID DBPROPSET_PROPERTIESINERROR;
  1271. //@@@+ V1.5
  1272. #if( OLEDBVER >= 0x0150 )
  1273. extern const GUID DBPROPSET_VIEW;
  1274. #endif // OLEDBVER >= 0x0150
  1275. //@@@- V1.5
  1276. //@@@+ V2.5
  1277. #if( OLEDBVER >= 0x0250 )
  1278. extern const GUID DBPROPSET_VIEWALL;
  1279. #endif // OLEDBVER >= 0x0250
  1280. //@@@- V2.5
  1281. //@@@+ V2.6
  1282. #if( OLEDBVER >= 0x0260 )
  1283. extern const GUID DBPROPSET_STREAM;
  1284. extern const GUID DBPROPSET_STREAMALL;
  1285. extern const GUID DBSCHEMA_TABLE_STATISTICS;
  1286. extern const GUID DBSCHEMA_CHECK_CONSTRAINTS_BY_TABLE;
  1287. extern const GUID DBGUID_HISTOGRAM_ROWSET;
  1288. extern const DBID DBCOLUMN_DERIVEDCOLUMNNAME;
  1289. extern const GUID MDSCHEMA_FUNCTIONS;
  1290. extern const GUID MDSCHEMA_ACTIONS;
  1291. extern const GUID MDSCHEMA_COMMANDS;
  1292. extern const GUID MDSCHEMA_SETS;
  1293. #endif // OLEDBVER >= 0x0260
  1294. //@@@- V2.6
  1295. // DBGUID_DBSQL is deprecated; use DBGUID_DEFAULT instead
  1296. extern const GUID DBGUID_DBSQL;
  1297. extern const GUID DBGUID_DEFAULT;
  1298. extern const GUID DBGUID_SQL;
  1299. #endif // DBINITCONSTANTS
  1300. enum DBPROPENUM
  1301.     { DBPROP_ABORTPRESERVE = 0x2L,
  1302. DBPROP_ACTIVESESSIONS = 0x3L,
  1303. DBPROP_APPENDONLY = 0xbbL,
  1304. DBPROP_ASYNCTXNABORT = 0xa8L,
  1305. DBPROP_ASYNCTXNCOMMIT = 0x4L,
  1306. DBPROP_AUTH_CACHE_AUTHINFO = 0x5L,
  1307. DBPROP_AUTH_ENCRYPT_PASSWORD = 0x6L,
  1308. DBPROP_AUTH_INTEGRATED = 0x7L,
  1309. DBPROP_AUTH_MASK_PASSWORD = 0x8L,
  1310. DBPROP_AUTH_PASSWORD = 0x9L,
  1311. DBPROP_AUTH_PERSIST_ENCRYPTED = 0xaL,
  1312. DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO = 0xbL,
  1313. DBPROP_AUTH_USERID = 0xcL,
  1314. DBPROP_BLOCKINGSTORAGEOBJECTS = 0xdL,
  1315. DBPROP_BOOKMARKS = 0xeL,
  1316. DBPROP_BOOKMARKSKIPPED = 0xfL,
  1317. DBPROP_BOOKMARKTYPE = 0x10L,
  1318. DBPROP_BYREFACCESSORS = 0x78L,
  1319. DBPROP_CACHEDEFERRED = 0x11L,
  1320. DBPROP_CANFETCHBACKWARDS = 0x12L,
  1321. DBPROP_CANHOLDROWS = 0x13L,
  1322. DBPROP_CANSCROLLBACKWARDS = 0x15L,
  1323. DBPROP_CATALOGLOCATION = 0x16L,
  1324. DBPROP_CATALOGTERM = 0x17L,
  1325. DBPROP_CATALOGUSAGE = 0x18L,
  1326. DBPROP_CHANGEINSERTEDROWS = 0xbcL,
  1327. DBPROP_COL_AUTOINCREMENT = 0x1aL,
  1328. DBPROP_COL_DEFAULT = 0x1bL,
  1329. DBPROP_COL_DESCRIPTION = 0x1cL,
  1330. DBPROP_COL_FIXEDLENGTH = 0xa7L,
  1331. DBPROP_COL_NULLABLE = 0x1dL,
  1332. DBPROP_COL_PRIMARYKEY = 0x1eL,
  1333. DBPROP_COL_UNIQUE = 0x1fL,
  1334. DBPROP_COLUMNDEFINITION = 0x20L,
  1335. DBPROP_COLUMNRESTRICT = 0x21L,
  1336. DBPROP_COMMANDTIMEOUT = 0x22L,
  1337. DBPROP_COMMITPRESERVE = 0x23L,
  1338. DBPROP_CONCATNULLBEHAVIOR = 0x24L,
  1339. DBPROP_CURRENTCATALOG = 0x25L,
  1340. DBPROP_DATASOURCENAME = 0x26L,
  1341. DBPROP_DATASOURCEREADONLY = 0x27L,
  1342. DBPROP_DBMSNAME = 0x28L,
  1343. DBPROP_DBMSVER = 0x29L,
  1344. DBPROP_DEFERRED = 0x2aL,
  1345. DBPROP_DELAYSTORAGEOBJECTS = 0x2bL,
  1346. DBPROP_DSOTHREADMODEL = 0xa9L,
  1347. DBPROP_GROUPBY = 0x2cL,
  1348. DBPROP_HETEROGENEOUSTABLES = 0x2dL,
  1349. DBPROP_IAccessor = 0x79L,
  1350. DBPROP_IColumnsInfo = 0x7aL,
  1351. DBPROP_IColumnsRowset = 0x7bL,
  1352. DBPROP_IConnectionPointContainer = 0x7cL,
  1353. DBPROP_IConvertType = 0xc2L,
  1354. DBPROP_IRowset = 0x7eL,
  1355. DBPROP_IRowsetChange = 0x7fL,
  1356. DBPROP_IRowsetIdentity = 0x80L,
  1357. DBPROP_IRowsetIndex = 0x9fL,
  1358. DBPROP_IRowsetInfo = 0x81L,
  1359. DBPROP_IRowsetLocate = 0x82L,
  1360. DBPROP_IRowsetResynch = 0x84L,
  1361. DBPROP_IRowsetScroll = 0x85L,
  1362. DBPROP_IRowsetUpdate = 0x86L,
  1363. DBPROP_ISupportErrorInfo = 0x87L,
  1364. DBPROP_ILockBytes = 0x88L,
  1365. DBPROP_ISequentialStream = 0x89L,
  1366. DBPROP_IStorage = 0x8aL,
  1367. DBPROP_IStream = 0x8bL,
  1368. DBPROP_IDENTIFIERCASE = 0x2eL,
  1369. DBPROP_IMMOBILEROWS = 0x2fL,
  1370. DBPROP_INDEX_AUTOUPDATE = 0x30L,
  1371. DBPROP_INDEX_CLUSTERED = 0x31L,
  1372. DBPROP_INDEX_FILLFACTOR = 0x32L,
  1373. DBPROP_INDEX_INITIALSIZE = 0x33L,
  1374. DBPROP_INDEX_NULLCOLLATION = 0x34L,
  1375. DBPROP_INDEX_NULLS = 0x35L,
  1376. DBPROP_INDEX_PRIMARYKEY = 0x36L,
  1377. DBPROP_INDEX_SORTBOOKMARKS = 0x37L,
  1378. DBPROP_INDEX_TEMPINDEX = 0xa3L,
  1379. DBPROP_INDEX_TYPE = 0x38L,
  1380. DBPROP_INDEX_UNIQUE = 0x39L,
  1381. DBPROP_INIT_DATASOURCE = 0x3bL,
  1382. DBPROP_INIT_HWND = 0x3cL,
  1383. DBPROP_INIT_IMPERSONATION_LEVEL = 0x3dL,
  1384. DBPROP_INIT_LCID = 0xbaL,
  1385. DBPROP_INIT_LOCATION = 0x3eL,
  1386. DBPROP_INIT_MODE = 0x3fL,
  1387. DBPROP_INIT_PROMPT = 0x40L,
  1388. DBPROP_INIT_PROTECTION_LEVEL = 0x41L,
  1389. DBPROP_INIT_PROVIDERSTRING = 0xa0L,
  1390. DBPROP_INIT_TIMEOUT = 0x42L,
  1391. DBPROP_LITERALBOOKMARKS = 0x43L,
  1392. DBPROP_LITERALIDENTITY = 0x44L,
  1393. DBPROP_MAXINDEXSIZE = 0x46L,
  1394. DBPROP_MAXOPENROWS = 0x47L,
  1395. DBPROP_MAXPENDINGROWS = 0x48L,
  1396. DBPROP_MAXROWS = 0x49L,
  1397. DBPROP_MAXROWSIZE = 0x4aL,
  1398. DBPROP_MAXROWSIZEINCLUDESBLOB = 0x4bL,
  1399. DBPROP_MAXTABLESINSELECT = 0x4cL,
  1400. DBPROP_MAYWRITECOLUMN = 0x4dL,
  1401. DBPROP_MEMORYUSAGE = 0x4eL,
  1402. DBPROP_MULTIPLEPARAMSETS = 0xbfL,
  1403. DBPROP_MULTIPLERESULTS = 0xc4L,
  1404. DBPROP_MULTIPLESTORAGEOBJECTS = 0x50L,
  1405. DBPROP_MULTITABLEUPDATE = 0x51L,
  1406. DBPROP_NOTIFICATIONGRANULARITY = 0xc6L,
  1407. DBPROP_NOTIFICATIONPHASES = 0x52L,
  1408. DBPROP_NOTIFYCOLUMNSET = 0xabL,
  1409. DBPROP_NOTIFYROWDELETE = 0xadL,
  1410. DBPROP_NOTIFYROWFIRSTCHANGE = 0xaeL,
  1411. DBPROP_NOTIFYROWINSERT = 0xafL,
  1412. DBPROP_NOTIFYROWRESYNCH = 0xb1L,
  1413. DBPROP_NOTIFYROWSETCHANGED = 0xd3L,
  1414. DBPROP_NOTIFYROWSETRELEASE = 0xb2L,
  1415. DBPROP_NOTIFYROWSETFETCHPOSITIONCHANGE = 0xb3L,
  1416. DBPROP_NOTIFYROWUNDOCHANGE = 0xb4L,
  1417. DBPROP_NOTIFYROWUNDODELETE = 0xb5L,
  1418. DBPROP_NOTIFYROWUNDOINSERT = 0xb6L,
  1419. DBPROP_NOTIFYROWUPDATE = 0xb7L,
  1420. DBPROP_NULLCOLLATION = 0x53L,
  1421. DBPROP_OLEOBJECTS = 0x54L,
  1422. DBPROP_ORDERBYCOLUMNSINSELECT = 0x55L,
  1423. DBPROP_ORDEREDBOOKMARKS = 0x56L,
  1424. DBPROP_OTHERINSERT = 0x57L,
  1425. DBPROP_OTHERUPDATEDELETE = 0x58L,
  1426. DBPROP_OUTPUTPARAMETERAVAILABILITY = 0xb8L,
  1427. DBPROP_OWNINSERT = 0x59L,
  1428. DBPROP_OWNUPDATEDELETE = 0x5aL,
  1429. DBPROP_PERSISTENTIDTYPE = 0xb9L,
  1430. DBPROP_PREPAREABORTBEHAVIOR = 0x5bL,
  1431. DBPROP_PREPARECOMMITBEHAVIOR = 0x5cL,
  1432. DBPROP_PROCEDURETERM = 0x5dL,
  1433. DBPROP_PROVIDERNAME = 0x60L,
  1434. DBPROP_PROVIDEROLEDBVER = 0x61L,
  1435. DBPROP_PROVIDERVER = 0x62L,
  1436. DBPROP_QUICKRESTART = 0x63L,
  1437. DBPROP_QUOTEDIDENTIFIERCASE = 0x64L,
  1438. DBPROP_REENTRANTEVENTS = 0x65L,
  1439. DBPROP_REMOVEDELETED = 0x66L,
  1440. DBPROP_REPORTMULTIPLECHANGES = 0x67L,
  1441. DBPROP_RETURNPENDINGINSERTS = 0xbdL,
  1442. DBPROP_ROWRESTRICT = 0x68L,
  1443. DBPROP_ROWSETCONVERSIONSONCOMMAND = 0xc0L,
  1444. DBPROP_ROWTHREADMODEL = 0x69L,
  1445. DBPROP_SCHEMATERM = 0x6aL,
  1446. DBPROP_SCHEMAUSAGE = 0x6bL,
  1447. DBPROP_SERVERCURSOR = 0x6cL,
  1448. DBPROP_SESS_AUTOCOMMITISOLEVELS = 0xbeL,
  1449. DBPROP_SQLSUPPORT = 0x6dL,
  1450. DBPROP_STRONGIDENTITY = 0x77L,
  1451. DBPROP_STRUCTUREDSTORAGE = 0x6fL,
  1452. DBPROP_SUBQUERIES = 0x70L,
  1453. DBPROP_SUPPORTEDTXNDDL = 0xa1L,
  1454. DBPROP_SUPPORTEDTXNISOLEVELS = 0x71L,
  1455. DBPROP_SUPPORTEDTXNISORETAIN = 0x72L,
  1456. DBPROP_TABLETERM = 0x73L,
  1457. DBPROP_TBL_TEMPTABLE = 0x8cL,
  1458. DBPROP_TRANSACTEDOBJECT = 0x74L,
  1459. DBPROP_UPDATABILITY = 0x75L,
  1460. DBPROP_USERNAME = 0x76L
  1461.     } ;
  1462. //@@@+ V1.5
  1463. #if( OLEDBVER >= 0x0150 )
  1464. enum DBPROPENUM15
  1465.     { DBPROP_FILTERCOMPAREOPS = 0xd1L,
  1466. DBPROP_FINDCOMPAREOPS = 0xd2L,
  1467. DBPROP_IChapteredRowset = 0xcaL,
  1468. DBPROP_IDBAsynchStatus = 0xcbL,
  1469. DBPROP_IRowsetFind = 0xccL,
  1470. DBPROP_IRowsetView = 0xd4L,
  1471. DBPROP_IViewChapter = 0xd5L,
  1472. DBPROP_IViewFilter = 0xd6L,
  1473. DBPROP_IViewRowset = 0xd7L,
  1474. DBPROP_IViewSort = 0xd8L,
  1475. DBPROP_INIT_ASYNCH = 0xc8L,
  1476. DBPROP_MAXOPENCHAPTERS = 0xc7L,
  1477. DBPROP_MAXORSINFILTER = 0xcdL,
  1478. DBPROP_MAXSORTCOLUMNS = 0xceL,
  1479. DBPROP_ROWSET_ASYNCH = 0xc9L,
  1480. DBPROP_SORTONINDEX = 0xcfL
  1481.     } ;
  1482. #endif // OLEDBVER >= 0x0150
  1483. //@@@- V1.5
  1484. //@@@+ V2.0
  1485. #if( OLEDBVER >= 0x0200 )
  1486. #define DBPROP_PROVIDERFILENAME DBPROP_PROVIDERNAME
  1487. #define DBPROP_SERVER_NAME DBPROP_SERVERNAME
  1488. enum DBPROPENUM20
  1489.     { DBPROP_IMultipleResults = 0xd9L,
  1490. DBPROP_DATASOURCE_TYPE = 0xfbL,
  1491. MDPROP_AXES = 0xfcL,
  1492. MDPROP_FLATTENING_SUPPORT = 0xfdL,
  1493. MDPROP_MDX_JOINCUBES = 0xfeL,
  1494. MDPROP_NAMED_LEVELS = 0xffL,
  1495. MDPROP_RANGEROWSET = 0x100L,
  1496. MDPROP_MDX_SLICER = 0xdaL,
  1497. MDPROP_MDX_CUBEQUALIFICATION = 0xdbL,
  1498. MDPROP_MDX_OUTERREFERENCE = 0xdcL,
  1499. MDPROP_MDX_QUERYBYPROPERTY = 0xddL,
  1500. MDPROP_MDX_CASESUPPORT = 0xdeL,
  1501. MDPROP_MDX_STRING_COMPOP = 0xe0L,
  1502. MDPROP_MDX_DESCFLAGS = 0xe1L,
  1503. MDPROP_MDX_SET_FUNCTIONS = 0xe2L,
  1504. MDPROP_MDX_MEMBER_FUNCTIONS = 0xe3L,
  1505. MDPROP_MDX_NUMERIC_FUNCTIONS = 0xe4L,
  1506. MDPROP_MDX_FORMULAS = 0xe5L,
  1507. MDPROP_AGGREGATECELL_UPDATE = 0xe6L,
  1508. MDPROP_MDX_AGGREGATECELL_UPDATE = MDPROP_AGGREGATECELL_UPDATE,
  1509. MDPROP_MDX_OBJQUALIFICATION = 0x105L,
  1510. MDPROP_MDX_NONMEASURE_EXPRESSIONS = 0x106L,
  1511. DBPROP_ACCESSORDER = 0xe7L,
  1512. DBPROP_BOOKMARKINFO = 0xe8L,
  1513. DBPROP_INIT_CATALOG = 0xe9L,
  1514. DBPROP_ROW_BULKOPS = 0xeaL,
  1515. DBPROP_PROVIDERFRIENDLYNAME = 0xebL,
  1516. DBPROP_LOCKMODE = 0xecL,
  1517. DBPROP_MULTIPLECONNECTIONS = 0xedL,
  1518. DBPROP_UNIQUEROWS = 0xeeL,
  1519. DBPROP_SERVERDATAONINSERT = 0xefL,
  1520. DBPROP_STORAGEFLAGS = 0xf0L,
  1521. DBPROP_CONNECTIONSTATUS = 0xf4L,
  1522. DBPROP_ALTERCOLUMN = 0xf5L,
  1523. DBPROP_COLUMNLCID = 0xf6L,
  1524. DBPROP_RESETDATASOURCE = 0xf7L,
  1525. DBPROP_INIT_OLEDBSERVICES = 0xf8L,
  1526. DBPROP_IRowsetRefresh = 0xf9L,
  1527. DBPROP_SERVERNAME = 0xfaL,
  1528. DBPROP_IParentRowset = 0x101L,
  1529. DBPROP_HIDDENCOLUMNS = 0x102L,
  1530. DBPROP_PROVIDERMEMORY = 0x103L,
  1531. DBPROP_CLIENTCURSOR = 0x104L
  1532.     } ;
  1533. #endif // OLEDBVER >= 0x0200
  1534. //@@@- V2.0
  1535. //@@@+ V2.1
  1536. #if( OLEDBVER >= 0x0210 )
  1537. enum DBPROPENUM21
  1538.     { DBPROP_TRUSTEE_USERNAME = 0xf1L,
  1539. DBPROP_TRUSTEE_AUTHENTICATION = 0xf2L,
  1540. DBPROP_TRUSTEE_NEWAUTHENTICATION = 0xf3L,
  1541. DBPROP_IRow = 0x107L,
  1542. DBPROP_IRowChange = 0x108L,
  1543. DBPROP_IRowSchemaChange = 0x109L,
  1544. DBPROP_IGetRow = 0x10aL,
  1545. DBPROP_IScopedOperations = 0x10bL,
  1546. DBPROP_IBindResource = 0x10cL,
  1547. DBPROP_ICreateRow = 0x10dL,
  1548. DBPROP_INIT_BINDFLAGS = 0x10eL,
  1549. DBPROP_INIT_LOCKOWNER = 0x10fL,
  1550. DBPROP_GENERATEURL = 0x111L,
  1551. DBPROP_IDBBinderProperties = 0x112L,
  1552. DBPROP_IColumnsInfo2 = 0x113L,
  1553. DBPROP_IRegisterProvider = 0x114L,
  1554. DBPROP_IGetSession = 0x115L,
  1555. DBPROP_IGetSourceRow = 0x116L,
  1556. DBPROP_IRowsetCurrentIndex = 0x117L,
  1557. DBPROP_OPENROWSETSUPPORT = 0x118L,
  1558. DBPROP_COL_ISLONG = 0x119L
  1559.     } ;
  1560. #endif // OLEDBVER >= 0x0210
  1561. //@@@- V2.1
  1562. //@@@+ V2.5
  1563. #if( OLEDBVER >= 0x0250 )
  1564. enum DBPROPENUM25
  1565.     { DBPROP_COL_SEED = 0x11aL,
  1566. DBPROP_COL_INCREMENT = 0x11bL,
  1567. DBPROP_INIT_GENERALTIMEOUT = 0x11cL,
  1568. DBPROP_COMSERVICES = 0x11dL
  1569.     } ;
  1570. #endif // OLEDBVER >= 0x0250
  1571. //@@@- V2.5
  1572. //@@@+ V2.6
  1573. #if( OLEDBVER >= 0x0260 )
  1574. enum DBPROPENUM26
  1575.     { DBPROP_OUTPUTSTREAM = 0x11eL,
  1576. DBPROP_OUTPUTENCODING = 0x11fL,
  1577. DBPROP_TABLESTATISTICS = 0x120L,
  1578. DBPROP_SKIPROWCOUNTRESULTS = 0x123L,
  1579. DBPROP_IRowsetBookmark = 0x124L,
  1580. MDPROP_VISUALMODE = 0x125L
  1581.     } ;
  1582. #endif // OLEDBVER >= 0x0260
  1583. //@@@- V2.6
  1584. //@@@+ deprecated
  1585. #ifdef deprecated
  1586. enum DBPROPENUMDEPRECATED
  1587.     { DBPROP_IRowsetExactScroll = 0x9aL,
  1588. DBPROP_MARSHALLABLE = 0xc5L,
  1589. DBPROP_FILTEROPS = 0xd0L
  1590.     } ;
  1591. #endif // deprecated
  1592. //@@@- deprecated
  1593. #define DBPROPVAL_BMK_NUMERIC  0x00000001L
  1594. #define DBPROPVAL_BMK_KEY  0x00000002L
  1595. #define DBPROPVAL_CL_START                                0x00000001L
  1596. #define DBPROPVAL_CL_END                                  0x00000002L
  1597. #define DBPROPVAL_CU_DML_STATEMENTS  0x00000001L
  1598. #define DBPROPVAL_CU_TABLE_DEFINITION  0x00000002L
  1599. #define DBPROPVAL_CU_INDEX_DEFINITION  0x00000004L
  1600. #define DBPROPVAL_CU_PRIVILEGE_DEFINITION  0x00000008L
  1601. #define DBPROPVAL_CD_NOTNULL  0x00000001L
  1602. #define DBPROPVAL_CB_NULL  0x00000001L
  1603. #define DBPROPVAL_CB_NON_NULL  0x00000002L
  1604. #define DBPROPVAL_FU_NOT_SUPPORTED  0x00000001L
  1605. #define DBPROPVAL_FU_COLUMN  0x00000002L
  1606. #define DBPROPVAL_FU_TABLE  0x00000004L
  1607. #define DBPROPVAL_FU_CATALOG  0x00000008L
  1608. #define DBPROPVAL_GB_NOT_SUPPORTED  0x00000001L
  1609. #define DBPROPVAL_GB_EQUALS_SELECT  0x00000002L
  1610. #define DBPROPVAL_GB_CONTAINS_SELECT  0x00000004L
  1611. #define DBPROPVAL_GB_NO_RELATION  0x00000008L
  1612. #define DBPROPVAL_HT_DIFFERENT_CATALOGS  0x00000001L
  1613. #define DBPROPVAL_HT_DIFFERENT_PROVIDERS  0x00000002L
  1614. #define DBPROPVAL_IC_UPPER  0x00000001L
  1615. #define DBPROPVAL_IC_LOWER  0x00000002L
  1616. #define DBPROPVAL_IC_SENSITIVE  0x00000004L
  1617. #define DBPROPVAL_IC_MIXED  0x00000008L
  1618. //@@@+ deprecated
  1619. #ifdef deprecated
  1620. #define DBPROPVAL_LM_NONE  0x00000001L
  1621. #define DBPROPVAL_LM_READ  0x00000002L
  1622. #define DBPROPVAL_LM_INTENT  0x00000004L
  1623. #define DBPROPVAL_LM_RITE  0x00000008L
  1624. #endif // deprecated
  1625. //@@@- deprecated
  1626. #define DBPROPVAL_NP_OKTODO  0x00000001L
  1627. #define DBPROPVAL_NP_ABOUTTODO  0x00000002L
  1628. #define DBPROPVAL_NP_SYNCHAFTER  0x00000004L
  1629. #define DBPROPVAL_NP_FAILEDTODO  0x00000008L
  1630. #define DBPROPVAL_NP_DIDEVENT  0x00000010L
  1631. #define DBPROPVAL_NC_END  0x00000001L
  1632. #define DBPROPVAL_NC_HIGH  0x00000002L
  1633. #define DBPROPVAL_NC_LOW  0x00000004L
  1634. #define DBPROPVAL_NC_START  0x00000008L
  1635. #define DBPROPVAL_OO_BLOB  0x00000001L
  1636. #define DBPROPVAL_OO_IPERSIST  0x00000002L
  1637. #define DBPROPVAL_CB_DELETE  0x00000001L
  1638. #define DBPROPVAL_CB_PRESERVE  0x00000002L
  1639. #define DBPROPVAL_SU_DML_STATEMENTS  0x00000001L
  1640. #define DBPROPVAL_SU_TABLE_DEFINITION  0x00000002L
  1641. #define DBPROPVAL_SU_INDEX_DEFINITION  0x00000004L
  1642. #define DBPROPVAL_SU_PRIVILEGE_DEFINITION  0x00000008L
  1643. #define DBPROPVAL_SQ_CORRELATEDSUBQUERIES  0x00000001L
  1644. #define DBPROPVAL_SQ_COMPARISON  0x00000002L
  1645. #define DBPROPVAL_SQ_EXISTS  0x00000004L
  1646. #define DBPROPVAL_SQ_IN  0x00000008L
  1647. #define DBPROPVAL_SQ_QUANTIFIED  0x00000010L
  1648. #define DBPROPVAL_SQ_TABLE  0x00000020L
  1649. #define DBPROPVAL_SS_ISEQUENTIALSTREAM  0x00000001L
  1650. #define DBPROPVAL_SS_ISTREAM  0x00000002L
  1651. #define DBPROPVAL_SS_ISTORAGE  0x00000004L
  1652. #define DBPROPVAL_SS_ILOCKBYTES  0x00000008L
  1653. #define DBPROPVAL_TI_CHAOS  0x00000010L
  1654. #define DBPROPVAL_TI_READUNCOMMITTED  0x00000100L
  1655. #define DBPROPVAL_TI_BROWSE  0x00000100L
  1656. #define DBPROPVAL_TI_CURSORSTABILITY  0x00001000L
  1657. #define DBPROPVAL_TI_READCOMMITTED  0x00001000L
  1658. #define DBPROPVAL_TI_REPEATABLEREAD  0x00010000L
  1659. #define DBPROPVAL_TI_SERIALIZABLE  0x00100000L
  1660. #define DBPROPVAL_TI_ISOLATED  0x00100000L
  1661. #define DBPROPVAL_TR_COMMIT_DC  0x00000001L
  1662. #define DBPROPVAL_TR_COMMIT  0x00000002L
  1663. #define DBPROPVAL_TR_COMMIT_NO  0x00000004L
  1664. #define DBPROPVAL_TR_ABORT_DC  0x00000008L
  1665. #define DBPROPVAL_TR_ABORT  0x00000010L
  1666. #define DBPROPVAL_TR_ABORT_NO  0x00000020L
  1667. #define DBPROPVAL_TR_DONTCARE  0x00000040L
  1668. #define DBPROPVAL_TR_BOTH  0x00000080L
  1669. #define DBPROPVAL_TR_NONE  0x00000100L
  1670. #define DBPROPVAL_TR_OPTIMISTIC  0x00000200L
  1671. #define DBPROPVAL_RT_FREETHREAD  0x00000001L
  1672. #define DBPROPVAL_RT_APTMTTHREAD  0x00000002L
  1673. #define DBPROPVAL_RT_SINGLETHREAD  0x00000004L
  1674. #define DBPROPVAL_UP_CHANGE  0x00000001L
  1675. #define DBPROPVAL_UP_DELETE  0x00000002L
  1676. #define DBPROPVAL_UP_INSERT  0x00000004L
  1677. #define DBPROPVAL_SQL_NONE  0x00000000L
  1678. #define DBPROPVAL_SQL_ODBC_MINIMUM  0x00000001L
  1679. #define DBPROPVAL_SQL_ODBC_CORE  0x00000002L
  1680. #define DBPROPVAL_SQL_ODBC_EXTENDED  0x00000004L
  1681. #define DBPROPVAL_SQL_ANSI89_IEF  0x00000008L
  1682. #define DBPROPVAL_SQL_ANSI92_ENTRY  0x00000010L
  1683. #define DBPROPVAL_SQL_FIPS_TRANSITIONAL  0x00000020L
  1684. #define DBPROPVAL_SQL_ANSI92_INTERMEDIATE  0x00000040L
  1685. #define DBPROPVAL_SQL_ANSI92_FULL  0x00000080L
  1686. #define DBPROPVAL_SQL_ESCAPECLAUSES  0x00000100L
  1687. #define DBPROPVAL_IT_BTREE                                0x00000001L
  1688. #define DBPROPVAL_IT_HASH                                 0x00000002L
  1689. #define DBPROPVAL_IT_CONTENT                              0x00000003L
  1690. #define DBPROPVAL_IT_OTHER                                0x00000004L
  1691. #define DBPROPVAL_IN_DISALLOWNULL                         0x00000001L
  1692. #define DBPROPVAL_IN_IGNORENULL                           0x00000002L
  1693. #define DBPROPVAL_IN_IGNOREANYNULL                        0x00000004L
  1694. #define DBPROPVAL_TC_NONE                                 0x00000000L
  1695. #define DBPROPVAL_TC_DML                                  0x00000001L
  1696. #define DBPROPVAL_TC_DDL_COMMIT                           0x00000002L
  1697. #define DBPROPVAL_TC_DDL_IGNORE                           0x00000004L
  1698. #define DBPROPVAL_TC_ALL                                  0x00000008L
  1699. #define DBPROPVAL_NP_OKTODO                               0x00000001L
  1700. #define DBPROPVAL_NP_ABOUTTODO                            0x00000002L
  1701. #define DBPROPVAL_NP_SYNCHAFTER                           0x00000004L
  1702. #define DBPROPVAL_OA_NOTSUPPORTED                         0x00000001L
  1703. #define DBPROPVAL_OA_ATEXECUTE                            0x00000002L
  1704. #define DBPROPVAL_OA_ATROWRELEASE                         0x00000004L
  1705. #define DBPROPVAL_MR_NOTSUPPORTED                         0x00000000L
  1706. #define DBPROPVAL_MR_SUPPORTED                            0x00000001L
  1707. #define DBPROPVAL_MR_CONCURRENT                           0x00000002L
  1708. #define DBPROPVAL_PT_GUID_NAME                            0x00000001L
  1709. #define DBPROPVAL_PT_GUID_PROPID                          0x00000002L
  1710. #define DBPROPVAL_PT_NAME                                 0x00000004L
  1711. #define DBPROPVAL_PT_GUID                                 0x00000008L
  1712. #define DBPROPVAL_PT_PROPID  0x00000010L
  1713. #define DBPROPVAL_PT_PGUID_NAME                           0x00000020L
  1714. #define DBPROPVAL_PT_PGUID_PROPID  0x00000040L
  1715. #define DBPROPVAL_NT_SINGLEROW                            0x00000001L
  1716. #define DBPROPVAL_NT_MULTIPLEROWS                         0x00000002L
  1717. //@@@+ V1.5
  1718. #if( OLEDBVER >= 0x0150 )
  1719. #define DBPROPVAL_ASYNCH_INITIALIZE                       0x00000001L
  1720. #define DBPROPVAL_ASYNCH_SEQUENTIALPOPULATION             0x00000002L
  1721. #define DBPROPVAL_ASYNCH_RANDOMPOPULATION                 0x00000004L
  1722. #define DBPROPVAL_OP_EQUAL                                0x00000001L
  1723. #define DBPROPVAL_OP_RELATIVE                             0x00000002L
  1724. #define DBPROPVAL_OP_STRING                               0x00000004L
  1725. #define DBPROPVAL_CO_EQUALITY                             0x00000001L
  1726. #define DBPROPVAL_CO_STRING                               0x00000002L
  1727. #define DBPROPVAL_CO_CASESENSITIVE                        0x00000004L
  1728. #define DBPROPVAL_CO_CASEINSENSITIVE                      0x00000008L
  1729. #endif // OLEDBVER >= 0x0150
  1730. //@@@- V1.5
  1731. //@@@+ V2.0
  1732. #if( OLEDBVER >= 0x0200 )
  1733. #define DBPROPVAL_CO_CONTAINS                      0x00000010L
  1734. #define DBPROPVAL_CO_BEGINSWITH                      0x00000020L
  1735. #define DBPROPVAL_ASYNCH_BACKGROUNDPOPULATION 0x00000008L
  1736. #define DBPROPVAL_ASYNCH_PREPOPULATE 0x00000010L
  1737. #define DBPROPVAL_ASYNCH_POPULATEONDEMAND 0x00000020L
  1738. #define DBPROPVAL_LM_NONE  0x00000001L
  1739. #define DBPROPVAL_LM_SINGLEROW  0x00000002L
  1740. #define DBPROPVAL_SQL_SUBMINIMUM   0x00000200L
  1741. #define DBPROPVAL_DST_TDP                                 0x00000001L
  1742. #define DBPROPVAL_DST_MDP                                 0x00000002L
  1743. #define DBPROPVAL_DST_TDPANDMDP                           0x00000003L
  1744. #define MDPROPVAL_AU_UNSUPPORTED                          0x00000000L
  1745. #define MDPROPVAL_AU_UNCHANGED                            0x00000001L
  1746. #define MDPROPVAL_AU_UNKNOWN                              0x00000002L
  1747. #define MDPROPVAL_MF_WITH_CALCMEMBERS                     0x00000001L
  1748. #define MDPROPVAL_MF_WITH_NAMEDSETS                       0x00000002L
  1749. #define MDPROPVAL_MF_CREATE_CALCMEMBERS                   0x00000004L
  1750. #define MDPROPVAL_MF_CREATE_NAMEDSETS                     0x00000008L
  1751. #define MDPROPVAL_MF_SCOPE_SESSION  0x00000010L
  1752. #define MDPROPVAL_MF_SCOPE_GLOBAL                         0x00000020L
  1753. #define MDPROPVAL_MMF_COUSIN                              0x00000001L
  1754. #define MDPROPVAL_MMF_PARALLELPERIOD                      0x00000002L
  1755. #define MDPROPVAL_MMF_OPENINGPERIOD                       0x00000004L
  1756. #define MDPROPVAL_MMF_CLOSINGPERIOD                       0x00000008L
  1757. #define MDPROPVAL_MNF_MEDIAN 0x00000001L
  1758. #define MDPROPVAL_MNF_VAR 0x00000002L
  1759. #define MDPROPVAL_MNF_STDDEV 0x00000004L
  1760. #define MDPROPVAL_MNF_RANK 0x00000008L
  1761. #define MDPROPVAL_MNF_AGGREGATE 0x00000010L
  1762. #define MDPROPVAL_MNF_COVARIANCE 0x00000020L
  1763. #define MDPROPVAL_MNF_CORRELATION 0x00000040L
  1764. #define MDPROPVAL_MNF_LINREGSLOPE 0x00000080L
  1765. #define MDPROPVAL_MNF_LINREGVARIANCE 0x00000100L
  1766. #define MDPROPVAL_MNF_LINREG2 0x00000200L
  1767. #define MDPROPVAL_MNF_LINREGPOINT 0x00000400L
  1768. #define MDPROPVAL_MNF_DRILLDOWNLEVEL 0x00000800L
  1769. #define MDPROPVAL_MNF_DRILLDOWNMEMBERTOP 0x00001000L
  1770. #define MDPROPVAL_MNF_DRILLDOWNMEMBERBOTTOM 0x00002000L
  1771. #define MDPROPVAL_MNF_DRILLDOWNLEVELTOP 0x00004000L
  1772. #define MDPROPVAL_MNF_DRILLDOWNLEVELBOTTOM 0x00008000L
  1773. #define MDPROPVAL_MNF_DRILLUPMEMBER 0x00010000L
  1774. #define MDPROPVAL_MNF_DRILLUPLEVEL 0x00020000L
  1775. #define MDPROPVAL_MMF_COUSIN 0x00000001L
  1776. #define MDPROPVAL_MMF_PARALLELPERIOD 0x00000002L
  1777. #define MDPROPVAL_MMF_OPENINGPERIOD 0x00000004L
  1778. #define MDPROPVAL_MMF_CLOSINGPERIOD 0x00000008L
  1779. #define MDPROPVAL_MSF_TOPPERCENT 0x00000001L
  1780. #define MDPROPVAL_MSF_BOTTOMPERCENT 0x00000002L
  1781. #define MDPROPVAL_MSF_TOPSUM 0x00000004L
  1782. #define MDPROPVAL_MSF_BOTTOMSUM 0x00000008L
  1783. #define MDPROPVAL_MSF_PERIODSTODATE 0x00000010L
  1784. #define MDPROPVAL_MSF_LASTPERIODS 0x00000020L
  1785. #define MDPROPVAL_MSF_YTD 0x00000040L
  1786. #define MDPROPVAL_MSF_QTD 0x00000080L
  1787. #define MDPROPVAL_MSF_MTD 0x00000100L
  1788. #define MDPROPVAL_MSF_WTD 0x00000200L
  1789. #define MDPROPVAL_MSF_DRILLDOWNMEMBBER 0x00000400L
  1790. #define MDPROPVAL_MSF_DRILLDOWNLEVEL 0x00000800L
  1791. #define MDPROPVAL_MSF_DRILLDOWNMEMBERTOP 0x00001000L
  1792. #define MDPROPVAL_MSF_DRILLDOWNMEMBERBOTTOM 0x00002000L
  1793. #define MDPROPVAL_MSF_DRILLDOWNLEVELTOP 0x00004000L
  1794. #define MDPROPVAL_MSF_DRILLDOWNLEVELBOTTOM 0x00008000L
  1795. #define MDPROPVAL_MSF_DRILLUPMEMBER 0x00010000L
  1796. #define MDPROPVAL_MSF_DRILLUPLEVEL 0x00020000L
  1797. #define MDPROPVAL_MSF_TOGGLEDRILLSTATE 0x00040000L
  1798. // values for MDPROP_MDX_DESCFLAGS
  1799. #define MDPROPVAL_MD_SELF 0x00000001L
  1800. #define MDPROPVAL_MD_BEFORE 0x00000002L
  1801. #define MDPROPVAL_MD_AFTER 0x00000004L
  1802. // values for MDPROP_MDX_STRING_COMPOP
  1803. #define MDPROPVAL_MSC_LESSTHAN 0x00000001L
  1804. #define MDPROPVAL_MSC_GREATERTHAN 0x00000002L
  1805. #define MDPROPVAL_MSC_LESSTHANEQUAL 0x00000004L
  1806. #define MDPROPVAL_MSC_GREATERTHANEQUAL 0x00000008L
  1807. #define MDPROPVAL_MC_SINGLECASE 0x00000001L
  1808. #define MDPROPVAL_MC_SEARCHEDCASE 0x00000002L
  1809. #define MDPROPVAL_MOQ_OUTERREFERENCE 0x00000001L
  1810. #define MDPROPVAL_MOQ_DATASOURCE_CUBE 0x00000001L
  1811. #define MDPROPVAL_MOQ_CATALOG_CUBE 0x00000002L
  1812. #define MDPROPVAL_MOQ_SCHEMA_CUBE 0x00000004L
  1813. #define MDPROPVAL_MOQ_CUBE_DIM 0x00000008L
  1814. #define MDPROPVAL_MOQ_DIM_HIER 0x00000010L
  1815. #define MDPROPVAL_MOQ_DIMHIER_LEVEL 0x00000020L
  1816. #define MDPROPVAL_MOQ_LEVEL_MEMBER 0x00000040L
  1817. #define MDPROPVAL_MOQ_MEMBER_MEMBER 0x00000080L
  1818. #define MDPROPVAL_MOQ_DIMHIER_MEMBER 0x00000100L
  1819. #define MDPROPVAL_FS_FULL_SUPPORT 0x00000001L
  1820. #define MDPROPVAL_FS_GENERATED_COLUMN 0x00000002L
  1821. #define MDPROPVAL_FS_GENERATED_DIMENSION 0x00000003L
  1822. #define MDPROPVAL_FS_NO_SUPPORT 0x00000004L
  1823. #define MDPROPVAL_NL_NAMEDLEVELS 0x00000001L
  1824. #define MDPROPVAL_NL_NUMBEREDLEVELS 0x00000002L
  1825. #define MDPROPVAL_MJC_SINGLECUBE 0x00000001L
  1826. #define MDPROPVAL_MJC_MULTICUBES 0x00000002L
  1827. #define MDPROPVAL_MJC_IMPLICITCUBE 0x00000004L
  1828. #define MDPROPVAL_RR_NORANGEROWSET 0x00000001L
  1829. #define MDPROPVAL_RR_READONLY 0x00000002L
  1830. #define MDPROPVAL_RR_UPDATE 0x00000004L
  1831. #define MDPROPVAL_MS_MULTIPLETUPLES 0x00000001L
  1832. #define MDPROPVAL_MS_SINGLETUPLE 0x00000002L
  1833. #define MDPROPVAL_NME_ALLDIMENSIONS 0x00000000L
  1834. #define MDPROPVAL_NME_MEASURESONLY 0x00000001L
  1835. #define DBPROPVAL_AO_SEQUENTIAL 0x00000000L
  1836. #define DBPROPVAL_AO_SEQUENTIALSTORAGEOBJECTS 0x00000001L
  1837. #define DBPROPVAL_AO_RANDOM 0x00000002L
  1838. #define DBPROPVAL_BD_ROWSET 0x00000000L
  1839. #define DBPROPVAL_BD_INTRANSACTION 0x00000001L
  1840. #define DBPROPVAL_BD_XTRANSACTION 0x00000002L
  1841. #define DBPROPVAL_BD_REORGANIZATION 0x00000003L
  1842. #define BMK_DURABILITY_ROWSET DBPROPVAL_BD_ROWSET
  1843. #define BMK_DURABILITY_INTRANSACTION DBPROPVAL_BD_INTRANSACTION
  1844. #define BMK_DURABILITY_XTRANSACTION DBPROPVAL_BD_XTRANSACTION
  1845. #define BMK_DURABILITY_REORGANIZATION DBPROPVAL_BD_REORGANIZATION
  1846. #define DBPROPVAL_BO_NOLOG 0x00000000L
  1847. #define DBPROPVAL_BO_NOINDEXUPDATE 0x00000001L
  1848. #define DBPROPVAL_BO_REFINTEGRITY 0x00000002L
  1849. #if !defined(_WINBASE_)
  1850. #define OF_READ             0x00000000
  1851. #define OF_WRITE            0x00000001
  1852. #define OF_READWRITE        0x00000002
  1853. #define OF_SHARE_COMPAT     0x00000000
  1854. #define OF_SHARE_EXCLUSIVE  0x00000010
  1855. #define OF_SHARE_DENY_WRITE 0x00000020
  1856. #define OF_SHARE_DENY_READ  0x00000030
  1857. #define OF_SHARE_DENY_NONE  0x00000040
  1858. #define OF_PARSE            0x00000100
  1859. #define OF_DELETE           0x00000200
  1860. #define OF_VERIFY           0x00000400
  1861. #define OF_CANCEL           0x00000800
  1862. #define OF_CREATE           0x00001000
  1863. #define OF_PROMPT           0x00002000
  1864. #define OF_EXIST            0x00004000
  1865. #define OF_REOPEN           0x00008000
  1866. #endif // !_WINBASE_
  1867. #define DBPROPVAL_STGM_READ OF_READ
  1868. #define DBPROPVAL_STGM_WRITE OF_WRITE
  1869. #define DBPROPVAL_STGM_READWRITE OF_READWRITE
  1870. #define DBPROPVAL_STGM_SHARE_DENY_NONE OF_SHARE_DENY_NONE
  1871. #define DBPROPVAL_STGM_SHARE_DENY_READ OF_SHARE_DENY_READ
  1872. #define DBPROPVAL_STGM_SHARE_DENY_WRITE OF_SHARE_DENY_WRITE
  1873. #define DBPROPVAL_STGM_SHARE_EXCLUSIVE OF_SHARE_EXCLUSIVE
  1874. #define DBPROPVAL_STGM_DIRECT 0x00010000
  1875. #define DBPROPVAL_STGM_TRANSACTED 0x00020000
  1876. #define DBPROPVAL_STGM_CREATE OF_CREATE
  1877. #define DBPROPVAL_STGM_CONVERT 0x00040000
  1878. #define DBPROPVAL_STGM_FAILIFTHERE 0x00080000
  1879. #define DBPROPVAL_STGM_PRIORITY 0x00100000
  1880. #define DBPROPVAL_STGM_DELETEONRELEASE 0x00200000
  1881. #define DBPROPVAL_GB_COLLATE  0x00000010L
  1882. #define DBPROPVAL_CS_UNINITIALIZED 0x00000000L
  1883. #define DBPROPVAL_CS_INITIALIZED 0x00000001L
  1884. #define DBPROPVAL_CS_COMMUNICATIONFAILURE 0x00000002L
  1885. #define DBPROPVAL_RD_RESETALL 0xffffffffL
  1886. #define DBPROPVAL_OS_RESOURCEPOOLING 0x00000001L
  1887. #define DBPROPVAL_OS_TXNENLISTMENT 0x00000002L
  1888. #define DBPROPVAL_OS_CLIENTCURSOR    0x00000004L
  1889. #define DBPROPVAL_OS_ENABLEALL 0xffffffffL
  1890. #define DBPROPVAL_BI_CROSSROWSET 0x00000001L
  1891. #endif // OLEDBVER >= 0x0200
  1892. //@@@- V2.0
  1893. //@@@+ V2.1
  1894. #if( OLEDBVER >= 0x0210 )
  1895. #define MDPROPVAL_NL_SCHEMAONLY                          0x00000004L
  1896. #define DBPROPVAL_OS_DISABLEALL 0x00000000L
  1897. #define DBPROPVAL_OO_ROWOBJECT 0x00000004L
  1898. #define DBPROPVAL_OO_SCOPED 0x00000008L
  1899. #define DBPROPVAL_OO_DIRECTBIND 0x00000010L
  1900. #define DBPROPVAL_DST_DOCSOURCE                          0x00000004L
  1901. #define DBPROPVAL_GU_NOTSUPPORTED                         0x00000001L
  1902. #define DBPROPVAL_GU_SUFFIX                          0x00000002L
  1903. #define DB_BINDFLAGS_DELAYFETCHCOLUMNS                    0x00000001L
  1904. #define DB_BINDFLAGS_DELAYFETCHSTREAM                     0x00000002L
  1905. #define DB_BINDFLAGS_RECURSIVE                      0x00000004L
  1906. #define DB_BINDFLAGS_OUTPUT  0x00000008L
  1907. #define DB_BINDFLAGS_COLLECTION  0x00000010L
  1908. #define DB_BINDFLAGS_OPENIFEXISTS  0x00000020L
  1909. #define DB_BINDFLAGS_OVERWRITE  0x00000040L
  1910. #define DB_BINDFLAGS_ISSTRUCTUREDDOCUMENT  0x00000080L
  1911. #define DBPROPVAL_ORS_TABLE  0x00000000L
  1912. #define DBPROPVAL_ORS_INDEX                               0x00000001L
  1913. #define DBPROPVAL_ORS_INTEGRATEDINDEX              0x00000002L
  1914. #define DBPROPVAL_TC_DDL_LOCK  0x00000010L
  1915. #define DBPROPVAL_ORS_STOREDPROC  0x00000004L
  1916. #define DBPROPVAL_IN_ALLOWNULL                          0x00000000L
  1917. #endif // OLEDBVER >= 0x0210
  1918. //@@@- V2.1
  1919. //@@@+ V2.5
  1920. #if( OLEDBVER >= 0x0250 )
  1921. #define DBPROPVAL_OO_SINGLETON 0x00000020L
  1922. #define DBPROPVAL_OS_AGR_AFTERSESSION 0x00000008L
  1923. #define DBPROPVAL_CM_TRANSACTIONS 0x00000001L
  1924. #endif // OLEDBVER >= 0x0250
  1925. //@@@- V2.5
  1926. //@@@+ V2.6
  1927. #if( OLEDBVER >= 0x0260 )
  1928. #define DBPROPVAL_TS_CARDINALITY 0x00000001L
  1929. #define DBPROPVAL_TS_HISTOGRAM 0x00000002L
  1930. #define DBPROPVAL_ORS_HISTOGRAM 0x00000008L
  1931. #define MDPROPVAL_VISUAL_MODE_DEFAULT 0x00000000L
  1932. #define MDPROPVAL_VISUAL_MODE_VISUAL 0x00000001L
  1933. #define MDPROPVAL_VISUAL_MODE_VISUAL_OFF 0x00000002L
  1934. #endif // OLEDBVER >= 0x0260
  1935. //@@@- V2.6
  1936. #define DB_IMP_LEVEL_ANONYMOUS       0x00
  1937. #define DB_IMP_LEVEL_IDENTIFY        0x01
  1938. #define DB_IMP_LEVEL_IMPERSONATE     0x02
  1939. #define DB_IMP_LEVEL_DELEGATE        0x03
  1940. #define DBPROMPT_PROMPT              0x01
  1941. #define DBPROMPT_COMPLETE            0x02
  1942. #define DBPROMPT_COMPLETEREQUIRED    0x03
  1943. #define DBPROMPT_NOPROMPT            0x04
  1944. #define DB_PROT_LEVEL_NONE           0x00
  1945. #define DB_PROT_LEVEL_CONNECT        0x01
  1946. #define DB_PROT_LEVEL_CALL           0x02
  1947. #define DB_PROT_LEVEL_PKT            0x03
  1948. #define DB_PROT_LEVEL_PKT_INTEGRITY  0x04
  1949. #define DB_PROT_LEVEL_PKT_PRIVACY    0x05
  1950. #define DB_MODE_READ                 0x01
  1951. #define DB_MODE_WRITE                0x02
  1952. #define DB_MODE_READWRITE            0x03
  1953. #define DB_MODE_SHARE_DENY_READ      0x04
  1954. #define DB_MODE_SHARE_DENY_WRITE     0x08
  1955. #define DB_MODE_SHARE_EXCLUSIVE 0x0c
  1956. #define DB_MODE_SHARE_DENY_NONE 0x10
  1957. #define DBCOMPUTEMODE_COMPUTED       0x01
  1958. #define DBCOMPUTEMODE_DYNAMIC        0x02
  1959. #define DBCOMPUTEMODE_NOTCOMPUTED    0x03
  1960. #define DBPROPVAL_DF_INITIALLY_DEFERRED      0x01
  1961. #define DBPROPVAL_DF_INITIALLY_IMMEDIATE     0x02
  1962. #define DBPROPVAL_DF_NOT_DEFERRABLE     0x03
  1963. typedef struct tagDBPARAMS
  1964.     {
  1965.     void *pData;
  1966.     DB_UPARAMS cParamSets;
  1967.     HACCESSOR hAccessor;
  1968.     }  DBPARAMS;
  1969. typedef DWORD DBPARAMFLAGS;
  1970. enum DBPARAMFLAGSENUM
  1971.     { DBPARAMFLAGS_ISINPUT = 0x1,
  1972. DBPARAMFLAGS_ISOUTPUT = 0x2,
  1973. DBPARAMFLAGS_ISSIGNED = 0x10,
  1974. DBPARAMFLAGS_ISNULLABLE = 0x40,
  1975. DBPARAMFLAGS_ISLONG = 0x80
  1976.     } ;
  1977. //@@@+ V2.0
  1978. #if( OLEDBVER >= 0x0200 )
  1979. enum DBPARAMFLAGSENUM20
  1980.     { DBPARAMFLAGS_SCALEISNEGATIVE = 0x100
  1981.     } ;
  1982. #endif // OLEDBVER >= 0x0200
  1983. //@@@- V2.0
  1984. typedef struct tagDBPARAMINFO
  1985.     {
  1986.     DBPARAMFLAGS dwFlags;
  1987.     DBORDINAL iOrdinal;
  1988.     LPOLESTR pwszName;
  1989.     ITypeInfo *pTypeInfo;
  1990.     DBLENGTH ulParamSize;
  1991.     DBTYPE wType;
  1992.     BYTE bPrecision;
  1993.     BYTE bScale;
  1994.     }  DBPARAMINFO;
  1995. typedef DWORD DBPROPID;
  1996. typedef struct tagDBPROPIDSET
  1997.     {
  1998.     /* [size_is] */ DBPROPID *rgPropertyIDs;
  1999.     ULONG cPropertyIDs;
  2000.     GUID guidPropertySet;
  2001.     }  DBPROPIDSET;
  2002. typedef DWORD DBPROPFLAGS;
  2003. enum DBPROPFLAGSENUM
  2004.     { DBPROPFLAGS_NOTSUPPORTED = 0,
  2005. DBPROPFLAGS_COLUMN = 0x1,
  2006. DBPROPFLAGS_DATASOURCE = 0x2,
  2007. DBPROPFLAGS_DATASOURCECREATE = 0x4,
  2008. DBPROPFLAGS_DATASOURCEINFO = 0x8,
  2009. DBPROPFLAGS_DBINIT = 0x10,
  2010. DBPROPFLAGS_INDEX = 0x20,
  2011. DBPROPFLAGS_ROWSET = 0x40,
  2012. DBPROPFLAGS_TABLE = 0x80,
  2013. DBPROPFLAGS_COLUMNOK = 0x100,
  2014. DBPROPFLAGS_READ = 0x200,
  2015. DBPROPFLAGS_WRITE = 0x400,
  2016. DBPROPFLAGS_REQUIRED = 0x800,
  2017. DBPROPFLAGS_SESSION = 0x1000
  2018.     } ;
  2019. //@@@+ V2.1
  2020. #if( OLEDBVER >= 0x0210 )
  2021. enum DBPROPFLAGSENUM21
  2022.     { DBPROPFLAGS_TRUSTEE = 0x2000
  2023.     } ;
  2024. #endif // OLEDBVER >= 0x0210
  2025. //@@@- V2.1
  2026. //@@@+ V2.5
  2027. #if( OLEDBVER >= 0x0250 )
  2028. enum DBPROPFLAGSENUM25
  2029.     { DBPROPFLAGS_VIEW = 0x4000
  2030.     } ;
  2031. #endif // OLEDBVER >= 0x0250
  2032. //@@@- V2.5
  2033. //@@@+ V2.6
  2034. #if( OLEDBVER >= 0x0260 )
  2035. enum DBPROPFLAGSENUM26
  2036.     { DBPROPFLAGS_STREAM = 0x8000
  2037.     } ;
  2038. #endif // OLEDBVER >= 0x0260
  2039. //@@@- V2.6
  2040. typedef struct tagDBPROPINFO
  2041.     {
  2042.     LPOLESTR pwszDescription;
  2043.     DBPROPID dwPropertyID;
  2044.     DBPROPFLAGS dwFlags;
  2045.     VARTYPE vtType;
  2046.     VARIANT vValues;
  2047.     }  DBPROPINFO;
  2048. typedef DBPROPINFO *PDBPROPINFO;
  2049. typedef struct tagDBPROPINFOSET
  2050.     {
  2051.     /* [size_is] */ PDBPROPINFO rgPropertyInfos;
  2052.     ULONG cPropertyInfos;
  2053.     GUID guidPropertySet;
  2054.     }  DBPROPINFOSET;
  2055. typedef DWORD DBPROPOPTIONS;
  2056. // DBPROPOPTIONS_SETIFCHEAP is deprecated; use DBPROPOPTIONS_OPTIONAL instead.
  2057. enum DBPROPOPTIONSENUM
  2058.     { DBPROPOPTIONS_REQUIRED = 0,
  2059. DBPROPOPTIONS_SETIFCHEAP = 0x1,
  2060. DBPROPOPTIONS_OPTIONAL = 0x1
  2061.     } ;
  2062. typedef DWORD DBPROPSTATUS;
  2063. enum DBPROPSTATUSENUM
  2064.     { DBPROPSTATUS_OK = 0,
  2065. DBPROPSTATUS_NOTSUPPORTED = 1,
  2066. DBPROPSTATUS_BADVALUE = 2,
  2067. DBPROPSTATUS_BADOPTION = 3,
  2068. DBPROPSTATUS_BADCOLUMN = 4,
  2069. DBPROPSTATUS_NOTALLSETTABLE = 5,
  2070. DBPROPSTATUS_NOTSETTABLE = 6,
  2071. DBPROPSTATUS_NOTSET = 7,
  2072. DBPROPSTATUS_CONFLICTING = 8
  2073.     } ;
  2074. //@@@+ V2.1
  2075. #if( OLEDBVER >= 0x0210 )
  2076. enum DBPROPSTATUSENUM21
  2077.     { DBPROPSTATUS_NOTAVAILABLE = 9
  2078.     } ;
  2079. #endif // OLEDBVER >= 0x0210
  2080. //@@@- V2.1
  2081. typedef struct tagDBPROP
  2082.     {
  2083.     DBPROPID dwPropertyID;
  2084.     DBPROPOPTIONS dwOptions;
  2085.     DBPROPSTATUS dwStatus;
  2086.     DBID colid;
  2087.     VARIANT vValue;
  2088.     }  DBPROP;
  2089. typedef struct tagDBPROPSET
  2090.     {
  2091.     /* [size_is] */ DBPROP *rgProperties;
  2092.     ULONG cProperties;
  2093.     GUID guidPropertySet;
  2094.     }  DBPROPSET;
  2095. #define DBPARAMTYPE_INPUT 0x01
  2096. #define DBPARAMTYPE_INPUTOUTPUT 0x02
  2097. #define DBPARAMTYPE_OUTPUT 0x03
  2098. #define DBPARAMTYPE_RETURNVALUE 0x04
  2099. #define DB_PT_UNKNOWN 0x01
  2100. #define DB_PT_PROCEDURE 0x02
  2101. #define DB_PT_FUNCTION 0x03
  2102. #define DB_REMOTE 0x01
  2103. #define DB_LOCAL_SHARED 0x02
  2104. #define DB_LOCAL_EXCLUSIVE 0x03
  2105. #define DB_COLLATION_ASC 0x01
  2106. #define DB_COLLATION_DESC 0x02
  2107. #define DB_UNSEARCHABLE 0x01
  2108. #define DB_LIKE_ONLY 0x02
  2109. #define DB_ALL_EXCEPT_LIKE 0x03
  2110. #define DB_SEARCHABLE 0x04
  2111. //@@@+ V2.0
  2112. #if( OLEDBVER >= 0x0200 )
  2113. #define MDTREEOP_CHILDREN            0x01
  2114. #define MDTREEOP_SIBLINGS            0x02
  2115. #define MDTREEOP_PARENT              0x04
  2116. #define MDTREEOP_SELF                0x08
  2117. #define MDTREEOP_DESCENDANTS         0x10
  2118. #define MDTREEOP_ANCESTORS 0x20
  2119. #define MD_DIMTYPE_UNKNOWN           0x00
  2120. #define MD_DIMTYPE_TIME              0x01
  2121. #define MD_DIMTYPE_MEASURE           0x02
  2122. #define MD_DIMTYPE_OTHER             0x03
  2123. #define MDLEVEL_TYPE_UNKNOWN         0x0000
  2124. #define MDLEVEL_TYPE_REGULAR         0x0000
  2125. #define MDLEVEL_TYPE_ALL             0x0001
  2126. #define MDLEVEL_TYPE_CALCULATED      0x0002
  2127. #define MDLEVEL_TYPE_TIME            0x0004
  2128. #define MDLEVEL_TYPE_RESERVED1       0x0008
  2129. #define MDLEVEL_TYPE_TIME_YEARS      0x0014
  2130. #define MDLEVEL_TYPE_TIME_HALF_YEAR  0x0024
  2131. #define MDLEVEL_TYPE_TIME_QUARTERS   0x0044
  2132. #define MDLEVEL_TYPE_TIME_MONTHS     0x0084
  2133. #define MDLEVEL_TYPE_TIME_WEEKS      0x0104
  2134. #define MDLEVEL_TYPE_TIME_DAYS       0x0204
  2135. #define MDLEVEL_TYPE_TIME_HOURS      0x0304
  2136. #define MDLEVEL_TYPE_TIME_MINUTES    0x0404
  2137. #define MDLEVEL_TYPE_TIME_SECONDS    0x0804
  2138. #define MDLEVEL_TYPE_TIME_UNDEFINED  0x1004
  2139. #define MDMEASURE_AGGR_UNKNOWN       0x00
  2140. #define MDMEASURE_AGGR_SUM           0x01
  2141. #define MDMEASURE_AGGR_COUNT         0x02
  2142. #define MDMEASURE_AGGR_MIN           0x03
  2143. #define MDMEASURE_AGGR_MAX           0x04
  2144. #define MDMEASURE_AGGR_AVG           0x05
  2145. #define MDMEASURE_AGGR_VAR           0x06
  2146. #define MDMEASURE_AGGR_STD           0x07
  2147. #define MDMEASURE_AGGR_CALCULATED    0x7f
  2148. #define MDPROP_MEMBER                0x01
  2149. #define MDPROP_CELL                  0x02
  2150. #define MDMEMBER_TYPE_UNKNOWN        0x00
  2151. #define MDMEMBER_TYPE_REGULAR        0x01
  2152. #define MDMEMBER_TYPE_ALL            0x02
  2153. #define MDMEMBER_TYPE_MEASURE        0x03
  2154. #define MDMEMBER_TYPE_FORMULA        0x04
  2155. #define MDMEMBER_TYPE_RESERVE1       0x05
  2156. #define MDMEMBER_TYPE_RESERVE2       0x06
  2157. #define MDMEMBER_TYPE_RESERVE3       0x07
  2158. #define MDMEMBER_TYPE_RESERVE4       0x08
  2159. #define MDDISPINFO_DRILLED_DOWN 0x00010000
  2160. #define MDDISPINFO_PARENT_SAME_AS_PREV 0x00020000
  2161. #endif // OLEDBVER >= 0x0200
  2162. //@@@- V2.0
  2163. typedef DWORD DBINDEX_COL_ORDER;
  2164. enum DBINDEX_COL_ORDERENUM
  2165.     { DBINDEX_COL_ORDER_ASC = 0,
  2166. DBINDEX_COL_ORDER_DESC = DBINDEX_COL_ORDER_ASC + 1
  2167.     } ;
  2168. typedef struct tagDBINDEXCOLUMNDESC
  2169.     {
  2170.     DBID *pColumnID;
  2171.     DBINDEX_COL_ORDER eIndexColOrder;
  2172.     }  DBINDEXCOLUMNDESC;
  2173. typedef struct tagDBCOLUMNDESC
  2174.     {
  2175.     LPOLESTR pwszTypeName;
  2176.     ITypeInfo *pTypeInfo;
  2177.     /* [size_is] */ DBPROPSET *rgPropertySets;
  2178.     CLSID *pclsid;
  2179.     ULONG cPropertySets;
  2180.     DBLENGTH ulColumnSize;
  2181.     DBID dbcid;
  2182.     DBTYPE wType;
  2183.     BYTE bPrecision;
  2184.     BYTE bScale;
  2185.     }  DBCOLUMNDESC;
  2186. //@@@+ V2.1
  2187. #if( OLEDBVER >= 0x0210 )
  2188. typedef struct tagDBCOLUMNACCESS
  2189.     {
  2190.     void *pData;
  2191.     DBID columnid;
  2192.     DBLENGTH cbDataLen;
  2193.     DBSTATUS dwStatus;
  2194.     DBLENGTH cbMaxLen;
  2195.     DB_DWRESERVE dwReserved;
  2196.     DBTYPE wType;
  2197.     BYTE bPrecision;
  2198.     BYTE bScale;
  2199.     }  DBCOLUMNACCESS;
  2200. #endif // OLEDBVER >= 0x0210
  2201. //@@@- V2.1
  2202. //@@@+ V2.0
  2203. #if( OLEDBVER >= 0x0200 )
  2204. typedef DWORD DBCOLUMNDESCFLAGS;
  2205. enum DBCOLUMNDESCFLAGSENUM
  2206.     { DBCOLUMNDESCFLAGS_TYPENAME = 0x1,
  2207. DBCOLUMNDESCFLAGS_ITYPEINFO = 0x2,
  2208. DBCOLUMNDESCFLAGS_PROPERTIES = 0x4,
  2209. DBCOLUMNDESCFLAGS_CLSID = 0x8,
  2210. DBCOLUMNDESCFLAGS_COLSIZE = 0x10,
  2211. DBCOLUMNDESCFLAGS_DBCID = 0x20,
  2212. DBCOLUMNDESCFLAGS_WTYPE = 0x40,
  2213. DBCOLUMNDESCFLAGS_PRECISION = 0x80,
  2214. DBCOLUMNDESCFLAGS_SCALE = 0x100
  2215.     } ;
  2216. #endif // OLEDBVER >= 0x0200
  2217. //@@@- V2.0
  2218. typedef DWORD DBEVENTPHASE;
  2219. enum DBEVENTPHASEENUM
  2220.     { DBEVENTPHASE_OKTODO = 0,
  2221. DBEVENTPHASE_ABOUTTODO = DBEVENTPHASE_OKTODO + 1,
  2222. DBEVENTPHASE_SYNCHAFTER = DBEVENTPHASE_ABOUTTODO + 1,
  2223. DBEVENTPHASE_FAILEDTODO = DBEVENTPHASE_SYNCHAFTER + 1,
  2224. DBEVENTPHASE_DIDEVENT = DBEVENTPHASE_FAILEDTODO + 1
  2225.     } ;
  2226. typedef DWORD DBREASON;
  2227. enum DBREASONENUM
  2228.     { DBREASON_ROWSET_FETCHPOSITIONCHANGE = 0,
  2229. DBREASON_ROWSET_RELEASE = DBREASON_ROWSET_FETCHPOSITIONCHANGE + 1,
  2230. DBREASON_COLUMN_SET = DBREASON_ROWSET_RELEASE + 1,
  2231. DBREASON_COLUMN_RECALCULATED = DBREASON_COLUMN_SET + 1,
  2232. DBREASON_ROW_ACTIVATE = DBREASON_COLUMN_RECALCULATED + 1,
  2233. DBREASON_ROW_RELEASE = DBREASON_ROW_ACTIVATE + 1,
  2234. DBREASON_ROW_DELETE = DBREASON_ROW_RELEASE + 1,
  2235. DBREASON_ROW_FIRSTCHANGE = DBREASON_ROW_DELETE + 1,
  2236. DBREASON_ROW_INSERT = DBREASON_ROW_FIRSTCHANGE + 1,
  2237. DBREASON_ROW_RESYNCH = DBREASON_ROW_INSERT + 1,
  2238. DBREASON_ROW_UNDOCHANGE = DBREASON_ROW_RESYNCH + 1,
  2239. DBREASON_ROW_UNDOINSERT = DBREASON_ROW_UNDOCHANGE + 1,
  2240. DBREASON_ROW_UNDODELETE = DBREASON_ROW_UNDOINSERT + 1,
  2241. DBREASON_ROW_UPDATE = DBREASON_ROW_UNDODELETE + 1,
  2242. DBREASON_ROWSET_CHANGED = DBREASON_ROW_UPDATE + 1
  2243.     } ;
  2244. //@@@+ V1.5
  2245. #if( OLEDBVER >= 0x0150 )
  2246. enum DBREASONENUM15
  2247.     { DBREASON_ROWPOSITION_CHANGED = DBREASON_ROWSET_CHANGED + 1,
  2248. DBREASON_ROWPOSITION_CHAPTERCHANGED = DBREASON_ROWPOSITION_CHANGED + 1,
  2249. DBREASON_ROWPOSITION_CLEARED = DBREASON_ROWPOSITION_CHAPTERCHANGED + 1,
  2250. DBREASON_ROW_ASYNCHINSERT = DBREASON_ROWPOSITION_CLEARED + 1
  2251.     } ;
  2252. #endif // OLEDBVER >= 0x0150
  2253. //@@@- V1.5
  2254. //@@@+ V1.5
  2255. #if( OLEDBVER >= 0x0150 )
  2256. typedef DWORD DBCOMPAREOP;
  2257. enum DBCOMPAREOPSENUM
  2258.     { DBCOMPAREOPS_LT = 0,
  2259. DBCOMPAREOPS_LE = 1,
  2260. DBCOMPAREOPS_EQ = 2,
  2261. DBCOMPAREOPS_GE = 3,
  2262. DBCOMPAREOPS_GT = 4,
  2263. DBCOMPAREOPS_BEGINSWITH = 5,
  2264. DBCOMPAREOPS_CONTAINS = 6,
  2265. DBCOMPAREOPS_NE = 7,
  2266. DBCOMPAREOPS_IGNORE = 8,
  2267. DBCOMPAREOPS_CASESENSITIVE = 0x1000,
  2268. DBCOMPAREOPS_CASEINSENSITIVE = 0x2000
  2269.     } ;
  2270. //@@@+ V2.0
  2271. #if( OLEDBVER >= 0x0200 )
  2272. enum DBCOMPAREOPSENUM20
  2273.     { DBCOMPAREOPS_NOTBEGINSWITH = 9,
  2274. DBCOMPAREOPS_NOTCONTAINS = 10
  2275.     } ;
  2276. #endif // OLEDBVER >= 0x0200
  2277. //@@@- V2.0
  2278. typedef DWORD DBASYNCHOP;
  2279. enum DBASYNCHOPENUM
  2280.     { DBASYNCHOP_OPEN = 0
  2281.     } ;
  2282. typedef DWORD DBASYNCHPHASE;
  2283. enum DBASYNCHPHASEENUM
  2284.     { DBASYNCHPHASE_INITIALIZATION = 0,
  2285. DBASYNCHPHASE_POPULATION = DBASYNCHPHASE_INITIALIZATION + 1,
  2286. DBASYNCHPHASE_COMPLETE = DBASYNCHPHASE_POPULATION + 1,
  2287. DBASYNCHPHASE_CANCELED = DBASYNCHPHASE_COMPLETE + 1
  2288.     } ;
  2289. #define DB_COUNTUNAVAILABLE -1
  2290. #endif // OLEDBVER >= 0x0150
  2291. //@@@- V1.5
  2292. typedef DWORD DBSORT;
  2293. enum DBSORTENUM
  2294.     { DBSORT_ASCENDING = 0,
  2295. DBSORT_DESCENDING = DBSORT_ASCENDING + 1
  2296.     } ;
  2297. #if( OLEDBVER >= 0x0200 )
  2298. typedef DWORD DBCOMMANDPERSISTFLAG;
  2299. enum DBCOMMANDPERSISTFLAGENUM
  2300.     { DBCOMMANDPERSISTFLAG_NOSAVE = 0x1
  2301.     } ;
  2302. #endif // OLEDBVER >= 0x0200
  2303. //@@@- V2.0
  2304. #if( OLEDBVER >= 0x0210 )
  2305. enum DBCOMMANDPERSISTFLAGENUM21
  2306.     { DBCOMMANDPERSISTFLAG_DEFAULT = 0,
  2307. DBCOMMANDPERSISTFLAG_PERSISTVIEW = 0x2,
  2308. DBCOMMANDPERSISTFLAG_PERSISTPROCEDURE = 0x4
  2309.     } ;
  2310. typedef DWORD DBCONSTRAINTTYPE;
  2311. enum DBCONSTRAINTTYPEENUM
  2312.     { DBCONSTRAINTTYPE_UNIQUE = 0,
  2313. DBCONSTRAINTTYPE_FOREIGNKEY = 0x1,
  2314. DBCONSTRAINTTYPE_PRIMARYKEY = 0x2,
  2315. DBCONSTRAINTTYPE_CHECK = 0x3
  2316.     } ;
  2317. typedef DWORD DBUPDELRULE;
  2318. enum DBUPDELRULEENUM
  2319.     { DBUPDELRULE_NOACTION = 0,
  2320. DBUPDELRULE_CASCADE = 0x1,
  2321. DBUPDELRULE_SETNULL = 0x2,
  2322. DBUPDELRULE_SETDEFAULT = 0x3
  2323.     } ;
  2324. typedef DWORD DBMATCHTYPE;
  2325. enum DBMATCHTYPEENUM
  2326.     { DBMATCHTYPE_FULL = 0,
  2327. DBMATCHTYPE_NONE = 0x1,
  2328. DBMATCHTYPE_PARTIAL = 0x2
  2329.     } ;
  2330. typedef DWORD DBDEFERRABILITY;
  2331. enum DBDEFERRABILITYENUM
  2332.     { DBDEFERRABILITY_DEFERRED = 0x1,
  2333. DBDEFERRABILITY_DEFERRABLE = 0x2
  2334.     } ;
  2335. typedef struct tagDBCONSTRAINTDESC
  2336.     {
  2337.     DBID *pConstraintID;
  2338.     DBCONSTRAINTTYPE ConstraintType;
  2339.     DBORDINAL cColumns;
  2340.     /* [size_is] */ DBID *rgColumnList;
  2341.     DBID *pReferencedTableID;
  2342.     DBORDINAL cForeignKeyColumns;
  2343.     /* [size_is] */ DBID *rgForeignKeyColumnList;
  2344.     OLECHAR *pwszConstraintText;
  2345.     DBUPDELRULE UpdateRule;
  2346.     DBUPDELRULE DeleteRule;
  2347.     DBMATCHTYPE MatchType;
  2348.     DBDEFERRABILITY Deferrability;
  2349.     DB_URESERVE cReserved;
  2350.     /* [size_is] */ DBPROPSET *rgReserved;
  2351.     }  DBCONSTRAINTDESC;
  2352. #endif // OLEDBVER >= 0x0210
  2353. //@@@- V2.1
  2354. //@@@+ V2.0
  2355. #if( OLEDBVER >= 0x0200 )
  2356. #define MDFF_BOLD                    0x01
  2357. #define MDFF_ITALIC                  0x02
  2358. #define MDFF_UNDERLINE               0x04
  2359. #define MDFF_STRIKEOUT               0x08
  2360. typedef struct tagMDAXISINFO
  2361.     {
  2362.     DBLENGTH cbSize;
  2363.     DBCOUNTITEM iAxis;
  2364.     DBCOUNTITEM cDimensions;
  2365.     DBCOUNTITEM cCoordinates;
  2366.     DBORDINAL *rgcColumns;
  2367.     LPOLESTR *rgpwszDimensionNames;
  2368.     }  MDAXISINFO;
  2369. #define PMDAXISINFO_GETAT(rgAxisInfo, iAxis) ((MDAXISINFO *)(((BYTE *)(rgAxisInfo)) +((iAxis) * (rgAxisInfo)[0].cbSize)))
  2370. #define MDAXISINFO_GETAT(rgAxisInfo, iAxis) (*PMDAXISINFO_GETAT((rgAxisInfo), (iAxis)))
  2371. #define MDAXIS_COLUMNS               0x00000000
  2372. #define MDAXIS_ROWS                  0x00000001
  2373. #define MDAXIS_PAGES                 0x00000002
  2374. #define MDAXIS_SECTIONS              0x00000003
  2375. #define MDAXIS_CHAPTERS              0x00000004
  2376. #define MDAXIS_SLICERS               0xffffffff
  2377. #endif // OLEDBVER >= 0x0200
  2378. //@@@- V2.0
  2379. typedef struct tagRMTPACK
  2380.     {
  2381.     ISequentialStream *pISeqStream;
  2382.     ULONG cbData;
  2383.     ULONG cBSTR;
  2384.     /* [size_is] */ BSTR *rgBSTR;
  2385.     ULONG cVARIANT;
  2386.     /* [size_is] */ VARIANT *rgVARIANT;
  2387.     ULONG cIDISPATCH;
  2388.     /* [size_is] */ IDispatch **rgIDISPATCH;
  2389.     ULONG cIUNKNOWN;
  2390.     /* [size_is] */ IUnknown **rgIUNKNOWN;
  2391.     ULONG cPROPVARIANT;
  2392.     /* [size_is] */ PROPVARIANT *rgPROPVARIANT;
  2393.     ULONG cArray;
  2394.     /* [size_is] */ VARIANT *rgArray;
  2395.     }  RMTPACK;
  2396. extern RPC_IF_HANDLE DBStructureDefinitions_v0_0_c_ifspec;
  2397. extern RPC_IF_HANDLE DBStructureDefinitions_v0_0_s_ifspec;
  2398. #endif /* __DBStructureDefinitions_INTERFACE_DEFINED__ */
  2399. #ifndef __IAccessor_INTERFACE_DEFINED__
  2400. #define __IAccessor_INTERFACE_DEFINED__
  2401. /* interface IAccessor */
  2402. /* [unique][uuid][object] */ 
  2403. typedef DWORD DBACCESSORFLAGS;
  2404. enum DBACCESSORFLAGSENUM
  2405.     { DBACCESSOR_INVALID = 0,
  2406. DBACCESSOR_PASSBYREF = 0x1,
  2407. DBACCESSOR_ROWDATA = 0x2,
  2408. DBACCESSOR_PARAMETERDATA = 0x4,
  2409. DBACCESSOR_OPTIMIZED = 0x8,
  2410. DBACCESSOR_INHERITED = 0x10
  2411.     } ;
  2412. typedef DWORD DBBINDSTATUS;
  2413. enum DBBINDSTATUSENUM
  2414.     { DBBINDSTATUS_OK = 0,
  2415. DBBINDSTATUS_BADORDINAL = 1,
  2416. DBBINDSTATUS_UNSUPPORTEDCONVERSION = 2,
  2417. DBBINDSTATUS_BADBINDINFO = 3,
  2418. DBBINDSTATUS_BADSTORAGEFLAGS = 4,
  2419. DBBINDSTATUS_NOINTERFACE = 5,
  2420. DBBINDSTATUS_MULTIPLESTORAGE = 6
  2421.     } ;
  2422. EXTERN_C const IID IID_IAccessor;
  2423. #if defined(__cplusplus) && !defined(CINTERFACE)
  2424.     
  2425.     MIDL_INTERFACE("0c733a8c-2a1c-11ce-ade5-00aa0044773d")
  2426.     IAccessor : public IUnknown
  2427.     {
  2428.     public:
  2429.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE AddRefAccessor( 
  2430.             /* [in] */ HACCESSOR hAccessor,
  2431.             /* [unique][out][in] */ DBREFCOUNT *pcRefCount) = 0;
  2432.         
  2433.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE CreateAccessor( 
  2434.             /* [in] */ DBACCESSORFLAGS dwAccessorFlags,
  2435.             /* [in] */ DBCOUNTITEM cBindings,
  2436.             /* [size_is][in] */ const DBBINDING rgBindings[  ],
  2437.             /* [in] */ DBLENGTH cbRowSize,
  2438.             /* [out] */ HACCESSOR *phAccessor,
  2439.             /* [size_is][out] */ DBBINDSTATUS rgStatus[  ]) = 0;
  2440.         
  2441.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetBindings( 
  2442.             /* [in] */ HACCESSOR hAccessor,
  2443.             /* [out] */ DBACCESSORFLAGS *pdwAccessorFlags,
  2444.             /* [out][in] */ DBCOUNTITEM *pcBindings,
  2445.             /* [size_is][size_is][out] */ DBBINDING **prgBindings) = 0;
  2446.         
  2447.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE ReleaseAccessor( 
  2448.             /* [in] */ HACCESSOR hAccessor,
  2449.             /* [unique][out][in] */ DBREFCOUNT *pcRefCount) = 0;
  2450.         
  2451.     };
  2452.     
  2453. #else  /* C style interface */
  2454.     typedef struct IAccessorVtbl
  2455.     {
  2456.         BEGIN_INTERFACE
  2457.         
  2458.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2459.             IAccessor * This,
  2460.             /* [in] */ REFIID riid,
  2461.             /* [iid_is][out] */ void **ppvObject);
  2462.         
  2463.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2464.             IAccessor * This);
  2465.         
  2466.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2467.             IAccessor * This);
  2468.         
  2469.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *AddRefAccessor )( 
  2470.             IAccessor * This,
  2471.             /* [in] */ HACCESSOR hAccessor,
  2472.             /* [unique][out][in] */ DBREFCOUNT *pcRefCount);
  2473.         
  2474.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *CreateAccessor )( 
  2475.             IAccessor * This,
  2476.             /* [in] */ DBACCESSORFLAGS dwAccessorFlags,
  2477.             /* [in] */ DBCOUNTITEM cBindings,
  2478.             /* [size_is][in] */ const DBBINDING rgBindings[  ],
  2479.             /* [in] */ DBLENGTH cbRowSize,
  2480.             /* [out] */ HACCESSOR *phAccessor,
  2481.             /* [size_is][out] */ DBBINDSTATUS rgStatus[  ]);
  2482.         
  2483.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetBindings )( 
  2484.             IAccessor * This,
  2485.             /* [in] */ HACCESSOR hAccessor,
  2486.             /* [out] */ DBACCESSORFLAGS *pdwAccessorFlags,
  2487.             /* [out][in] */ DBCOUNTITEM *pcBindings,
  2488.             /* [size_is][size_is][out] */ DBBINDING **prgBindings);
  2489.         
  2490.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *ReleaseAccessor )( 
  2491.             IAccessor * This,
  2492.             /* [in] */ HACCESSOR hAccessor,
  2493.             /* [unique][out][in] */ DBREFCOUNT *pcRefCount);
  2494.         
  2495.         END_INTERFACE
  2496.     } IAccessorVtbl;
  2497.     interface IAccessor
  2498.     {
  2499.         CONST_VTBL struct IAccessorVtbl *lpVtbl;
  2500.     };
  2501.     
  2502. #ifdef COBJMACROS
  2503. #define IAccessor_QueryInterface(This,riid,ppvObject)
  2504.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2505. #define IAccessor_AddRef(This)
  2506.     (This)->lpVtbl -> AddRef(This)
  2507. #define IAccessor_Release(This)
  2508.     (This)->lpVtbl -> Release(This)
  2509. #define IAccessor_AddRefAccessor(This,hAccessor,pcRefCount)
  2510.     (This)->lpVtbl -> AddRefAccessor(This,hAccessor,pcRefCount)
  2511. #define IAccessor_CreateAccessor(This,dwAccessorFlags,cBindings,rgBindings,cbRowSize,phAccessor,rgStatus)
  2512.     (This)->lpVtbl -> CreateAccessor(This,dwAccessorFlags,cBindings,rgBindings,cbRowSize,phAccessor,rgStatus)
  2513. #define IAccessor_GetBindings(This,hAccessor,pdwAccessorFlags,pcBindings,prgBindings)
  2514.     (This)->lpVtbl -> GetBindings(This,hAccessor,pdwAccessorFlags,pcBindings,prgBindings)
  2515. #define IAccessor_ReleaseAccessor(This,hAccessor,pcRefCount)
  2516.     (This)->lpVtbl -> ReleaseAccessor(This,hAccessor,pcRefCount)
  2517. #endif /* COBJMACROS */
  2518. #endif  /* C style interface */
  2519. /* [call_as] */ HRESULT STDMETHODCALLTYPE IAccessor_RemoteAddRefAccessor_Proxy( 
  2520.     IAccessor * This,
  2521.     /* [in] */ HACCESSOR hAccessor,
  2522.     /* [unique][out][in] */ DBREFCOUNT *pcRefCount,
  2523.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  2524. void __RPC_STUB IAccessor_RemoteAddRefAccessor_Stub(
  2525.     IRpcStubBuffer *This,
  2526.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2527.     PRPC_MESSAGE _pRpcMessage,
  2528.     DWORD *_pdwStubPhase);
  2529. /* [call_as] */ HRESULT STDMETHODCALLTYPE IAccessor_RemoteCreateAccessor_Proxy( 
  2530.     IAccessor * This,
  2531.     /* [in] */ DBACCESSORFLAGS dwAccessorFlags,
  2532.     /* [in] */ DBCOUNTITEM cBindings,
  2533.     /* [size_is][unique][in] */ DBBINDING *rgBindings,
  2534.     /* [in] */ DBLENGTH cbRowSize,
  2535.     /* [out] */ HACCESSOR *phAccessor,
  2536.     /* [size_is][unique][out][in] */ DBBINDSTATUS *rgStatus,
  2537.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  2538. void __RPC_STUB IAccessor_RemoteCreateAccessor_Stub(
  2539.     IRpcStubBuffer *This,
  2540.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2541.     PRPC_MESSAGE _pRpcMessage,
  2542.     DWORD *_pdwStubPhase);
  2543. /* [call_as] */ HRESULT STDMETHODCALLTYPE IAccessor_RemoteGetBindings_Proxy( 
  2544.     IAccessor * This,
  2545.     /* [in] */ HACCESSOR hAccessor,
  2546.     /* [out] */ DBACCESSORFLAGS *pdwAccessorFlags,
  2547.     /* [out][in] */ DBCOUNTITEM *pcBindings,
  2548.     /* [size_is][size_is][out] */ DBBINDING **prgBindings,
  2549.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  2550. void __RPC_STUB IAccessor_RemoteGetBindings_Stub(
  2551.     IRpcStubBuffer *This,
  2552.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2553.     PRPC_MESSAGE _pRpcMessage,
  2554.     DWORD *_pdwStubPhase);
  2555. /* [call_as] */ HRESULT STDMETHODCALLTYPE IAccessor_RemoteReleaseAccessor_Proxy( 
  2556.     IAccessor * This,
  2557.     /* [in] */ HACCESSOR hAccessor,
  2558.     /* [unique][out][in] */ DBREFCOUNT *pcRefCount,
  2559.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  2560. void __RPC_STUB IAccessor_RemoteReleaseAccessor_Stub(
  2561.     IRpcStubBuffer *This,
  2562.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2563.     PRPC_MESSAGE _pRpcMessage,
  2564.     DWORD *_pdwStubPhase);
  2565. #endif  /* __IAccessor_INTERFACE_DEFINED__ */
  2566. #ifndef __IRowset_INTERFACE_DEFINED__
  2567. #define __IRowset_INTERFACE_DEFINED__
  2568. /* interface IRowset */
  2569. /* [unique][uuid][object][local] */ 
  2570. typedef DWORD DBROWOPTIONS;
  2571. EXTERN_C const IID IID_IRowset;
  2572. #if defined(__cplusplus) && !defined(CINTERFACE)
  2573.     
  2574.     MIDL_INTERFACE("0c733a7c-2a1c-11ce-ade5-00aa0044773d")
  2575.     IRowset : public IUnknown
  2576.     {
  2577.     public:
  2578.         virtual HRESULT STDMETHODCALLTYPE AddRefRows( 
  2579.             /* [in] */ DBCOUNTITEM cRows,
  2580.             /* [size_is][in] */ const HROW rghRows[  ],
  2581.             /* [size_is][out] */ DBREFCOUNT rgRefCounts[  ],
  2582.             /* [size_is][out] */ DBROWSTATUS rgRowStatus[  ]) = 0;
  2583.         
  2584.         virtual HRESULT STDMETHODCALLTYPE GetData( 
  2585.             /* [in] */ HROW hRow,
  2586.             /* [in] */ HACCESSOR hAccessor,
  2587.             /* [out] */ void *pData) = 0;
  2588.         
  2589.         virtual HRESULT STDMETHODCALLTYPE GetNextRows( 
  2590.             /* [in] */ HCHAPTER hReserved,
  2591.             /* [in] */ DBROWOFFSET lRowsOffset,
  2592.             /* [in] */ DBROWCOUNT cRows,
  2593.             /* [out] */ DBCOUNTITEM *pcRowsObtained,
  2594.             /* [size_is][size_is][out] */ HROW **prghRows) = 0;
  2595.         
  2596.         virtual HRESULT STDMETHODCALLTYPE ReleaseRows( 
  2597.             /* [in] */ DBCOUNTITEM cRows,
  2598.             /* [size_is][in] */ const HROW rghRows[  ],
  2599.             /* [size_is][in] */ DBROWOPTIONS rgRowOptions[  ],
  2600.             /* [size_is][out] */ DBREFCOUNT rgRefCounts[  ],
  2601.             /* [size_is][out] */ DBROWSTATUS rgRowStatus[  ]) = 0;
  2602.         
  2603.         virtual HRESULT STDMETHODCALLTYPE RestartPosition( 
  2604.             /* [in] */ HCHAPTER hReserved) = 0;
  2605.         
  2606.     };
  2607.     
  2608. #else  /* C style interface */
  2609.     typedef struct IRowsetVtbl
  2610.     {
  2611.         BEGIN_INTERFACE
  2612.         
  2613.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2614.             IRowset * This,
  2615.             /* [in] */ REFIID riid,
  2616.             /* [iid_is][out] */ void **ppvObject);
  2617.         
  2618.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2619.             IRowset * This);
  2620.         
  2621.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2622.             IRowset * This);
  2623.         
  2624.         HRESULT ( STDMETHODCALLTYPE *AddRefRows )( 
  2625.             IRowset * This,
  2626.             /* [in] */ DBCOUNTITEM cRows,
  2627.             /* [size_is][in] */ const HROW rghRows[  ],
  2628.             /* [size_is][out] */ DBREFCOUNT rgRefCounts[  ],
  2629.             /* [size_is][out] */ DBROWSTATUS rgRowStatus[  ]);
  2630.         
  2631.         HRESULT ( STDMETHODCALLTYPE *GetData )( 
  2632.             IRowset * This,
  2633.             /* [in] */ HROW hRow,
  2634.             /* [in] */ HACCESSOR hAccessor,
  2635.             /* [out] */ void *pData);
  2636.         
  2637.         HRESULT ( STDMETHODCALLTYPE *GetNextRows )( 
  2638.             IRowset * This,
  2639.             /* [in] */ HCHAPTER hReserved,
  2640.             /* [in] */ DBROWOFFSET lRowsOffset,
  2641.             /* [in] */ DBROWCOUNT cRows,
  2642.             /* [out] */ DBCOUNTITEM *pcRowsObtained,
  2643.             /* [size_is][size_is][out] */ HROW **prghRows);
  2644.         
  2645.         HRESULT ( STDMETHODCALLTYPE *ReleaseRows )( 
  2646.             IRowset * This,
  2647.             /* [in] */ DBCOUNTITEM cRows,
  2648.             /* [size_is][in] */ const HROW rghRows[  ],
  2649.             /* [size_is][in] */ DBROWOPTIONS rgRowOptions[  ],
  2650.             /* [size_is][out] */ DBREFCOUNT rgRefCounts[  ],
  2651.             /* [size_is][out] */ DBROWSTATUS rgRowStatus[  ]);
  2652.         
  2653.         HRESULT ( STDMETHODCALLTYPE *RestartPosition )( 
  2654.             IRowset * This,
  2655.             /* [in] */ HCHAPTER hReserved);
  2656.         
  2657.         END_INTERFACE
  2658.     } IRowsetVtbl;
  2659.     interface IRowset
  2660.     {
  2661.         CONST_VTBL struct IRowsetVtbl *lpVtbl;
  2662.     };
  2663.     
  2664. #ifdef COBJMACROS
  2665. #define IRowset_QueryInterface(This,riid,ppvObject)
  2666.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2667. #define IRowset_AddRef(This)
  2668.     (This)->lpVtbl -> AddRef(This)
  2669. #define IRowset_Release(This)
  2670.     (This)->lpVtbl -> Release(This)
  2671. #define IRowset_AddRefRows(This,cRows,rghRows,rgRefCounts,rgRowStatus)
  2672.     (This)->lpVtbl -> AddRefRows(This,cRows,rghRows,rgRefCounts,rgRowStatus)
  2673. #define IRowset_GetData(This,hRow,hAccessor,pData)
  2674.     (This)->lpVtbl -> GetData(This,hRow,hAccessor,pData)
  2675. #define IRowset_GetNextRows(This,hReserved,lRowsOffset,cRows,pcRowsObtained,prghRows)
  2676.     (This)->lpVtbl -> GetNextRows(This,hReserved,lRowsOffset,cRows,pcRowsObtained,prghRows)
  2677. #define IRowset_ReleaseRows(This,cRows,rghRows,rgRowOptions,rgRefCounts,rgRowStatus)
  2678.     (This)->lpVtbl -> ReleaseRows(This,cRows,rghRows,rgRowOptions,rgRefCounts,rgRowStatus)
  2679. #define IRowset_RestartPosition(This,hReserved)
  2680.     (This)->lpVtbl -> RestartPosition(This,hReserved)
  2681. #endif /* COBJMACROS */
  2682. #endif  /* C style interface */
  2683. HRESULT STDMETHODCALLTYPE IRowset_AddRefRows_Proxy( 
  2684.     IRowset * This,
  2685.     /* [in] */ DBCOUNTITEM cRows,
  2686.     /* [size_is][in] */ const HROW rghRows[  ],
  2687.     /* [size_is][out] */ DBREFCOUNT rgRefCounts[  ],
  2688.     /* [size_is][out] */ DBROWSTATUS rgRowStatus[  ]);
  2689. void __RPC_STUB IRowset_AddRefRows_Stub(
  2690.     IRpcStubBuffer *This,
  2691.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2692.     PRPC_MESSAGE _pRpcMessage,
  2693.     DWORD *_pdwStubPhase);
  2694. HRESULT STDMETHODCALLTYPE IRowset_GetData_Proxy( 
  2695.     IRowset * This,
  2696.     /* [in] */ HROW hRow,
  2697.     /* [in] */ HACCESSOR hAccessor,
  2698.     /* [out] */ void *pData);
  2699. void __RPC_STUB IRowset_GetData_Stub(
  2700.     IRpcStubBuffer *This,
  2701.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2702.     PRPC_MESSAGE _pRpcMessage,
  2703.     DWORD *_pdwStubPhase);
  2704. HRESULT STDMETHODCALLTYPE IRowset_GetNextRows_Proxy( 
  2705.     IRowset * This,
  2706.     /* [in] */ HCHAPTER hReserved,
  2707.     /* [in] */ DBROWOFFSET lRowsOffset,
  2708.     /* [in] */ DBROWCOUNT cRows,
  2709.     /* [out] */ DBCOUNTITEM *pcRowsObtained,
  2710.     /* [size_is][size_is][out] */ HROW **prghRows);
  2711. void __RPC_STUB IRowset_GetNextRows_Stub(
  2712.     IRpcStubBuffer *This,
  2713.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2714.     PRPC_MESSAGE _pRpcMessage,
  2715.     DWORD *_pdwStubPhase);
  2716. HRESULT STDMETHODCALLTYPE IRowset_ReleaseRows_Proxy( 
  2717.     IRowset * This,
  2718.     /* [in] */ DBCOUNTITEM cRows,
  2719.     /* [size_is][in] */ const HROW rghRows[  ],
  2720.     /* [size_is][in] */ DBROWOPTIONS rgRowOptions[  ],
  2721.     /* [size_is][out] */ DBREFCOUNT rgRefCounts[  ],
  2722.     /* [size_is][out] */ DBROWSTATUS rgRowStatus[  ]);
  2723. void __RPC_STUB IRowset_ReleaseRows_Stub(
  2724.     IRpcStubBuffer *This,
  2725.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2726.     PRPC_MESSAGE _pRpcMessage,
  2727.     DWORD *_pdwStubPhase);
  2728. HRESULT STDMETHODCALLTYPE IRowset_RestartPosition_Proxy( 
  2729.     IRowset * This,
  2730.     /* [in] */ HCHAPTER hReserved);
  2731. void __RPC_STUB IRowset_RestartPosition_Stub(
  2732.     IRpcStubBuffer *This,
  2733.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2734.     PRPC_MESSAGE _pRpcMessage,
  2735.     DWORD *_pdwStubPhase);
  2736. #endif  /* __IRowset_INTERFACE_DEFINED__ */
  2737. #ifndef __IRowsetInfo_INTERFACE_DEFINED__
  2738. #define __IRowsetInfo_INTERFACE_DEFINED__
  2739. /* interface IRowsetInfo */
  2740. /* [unique][uuid][object] */ 
  2741. EXTERN_C const IID IID_IRowsetInfo;
  2742. #if defined(__cplusplus) && !defined(CINTERFACE)
  2743.     
  2744.     MIDL_INTERFACE("0c733a55-2a1c-11ce-ade5-00aa0044773d")
  2745.     IRowsetInfo : public IUnknown
  2746.     {
  2747.     public:
  2748.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetProperties( 
  2749.             /* [in] */ const ULONG cPropertyIDSets,
  2750.             /* [size_is][in] */ const DBPROPIDSET rgPropertyIDSets[  ],
  2751.             /* [out][in] */ ULONG *pcPropertySets,
  2752.             /* [size_is][size_is][out] */ DBPROPSET **prgPropertySets) = 0;
  2753.         
  2754.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetReferencedRowset( 
  2755.             /* [in] */ DBORDINAL iOrdinal,
  2756.             /* [in] */ REFIID riid,
  2757.             /* [iid_is][out] */ IUnknown **ppReferencedRowset) = 0;
  2758.         
  2759.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetSpecification( 
  2760.             /* [in] */ REFIID riid,
  2761.             /* [iid_is][out] */ IUnknown **ppSpecification) = 0;
  2762.         
  2763.     };
  2764.     
  2765. #else  /* C style interface */
  2766.     typedef struct IRowsetInfoVtbl
  2767.     {
  2768.         BEGIN_INTERFACE
  2769.         
  2770.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2771.             IRowsetInfo * This,
  2772.             /* [in] */ REFIID riid,
  2773.             /* [iid_is][out] */ void **ppvObject);
  2774.         
  2775.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2776.             IRowsetInfo * This);
  2777.         
  2778.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2779.             IRowsetInfo * This);
  2780.         
  2781.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetProperties )( 
  2782.             IRowsetInfo * This,
  2783.             /* [in] */ const ULONG cPropertyIDSets,
  2784.             /* [size_is][in] */ const DBPROPIDSET rgPropertyIDSets[  ],
  2785.             /* [out][in] */ ULONG *pcPropertySets,
  2786.             /* [size_is][size_is][out] */ DBPROPSET **prgPropertySets);
  2787.         
  2788.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetReferencedRowset )( 
  2789.             IRowsetInfo * This,
  2790.             /* [in] */ DBORDINAL iOrdinal,
  2791.             /* [in] */ REFIID riid,
  2792.             /* [iid_is][out] */ IUnknown **ppReferencedRowset);
  2793.         
  2794.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetSpecification )( 
  2795.             IRowsetInfo * This,
  2796.             /* [in] */ REFIID riid,
  2797.             /* [iid_is][out] */ IUnknown **ppSpecification);
  2798.         
  2799.         END_INTERFACE
  2800.     } IRowsetInfoVtbl;
  2801.     interface IRowsetInfo
  2802.     {
  2803.         CONST_VTBL struct IRowsetInfoVtbl *lpVtbl;
  2804.     };
  2805.     
  2806. #ifdef COBJMACROS
  2807. #define IRowsetInfo_QueryInterface(This,riid,ppvObject)
  2808.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2809. #define IRowsetInfo_AddRef(This)
  2810.     (This)->lpVtbl -> AddRef(This)
  2811. #define IRowsetInfo_Release(This)
  2812.     (This)->lpVtbl -> Release(This)
  2813. #define IRowsetInfo_GetProperties(This,cPropertyIDSets,rgPropertyIDSets,pcPropertySets,prgPropertySets)
  2814.     (This)->lpVtbl -> GetProperties(This,cPropertyIDSets,rgPropertyIDSets,pcPropertySets,prgPropertySets)
  2815. #define IRowsetInfo_GetReferencedRowset(This,iOrdinal,riid,ppReferencedRowset)
  2816.     (This)->lpVtbl -> GetReferencedRowset(This,iOrdinal,riid,ppReferencedRowset)
  2817. #define IRowsetInfo_GetSpecification(This,riid,ppSpecification)
  2818.     (This)->lpVtbl -> GetSpecification(This,riid,ppSpecification)
  2819. #endif /* COBJMACROS */
  2820. #endif  /* C style interface */
  2821. /* [call_as] */ HRESULT STDMETHODCALLTYPE IRowsetInfo_RemoteGetProperties_Proxy( 
  2822.     IRowsetInfo * This,
  2823.     /* [in] */ ULONG cPropertyIDSets,
  2824.     /* [size_is][unique][in] */ const DBPROPIDSET *rgPropertyIDSets,
  2825.     /* [out][in] */ ULONG *pcPropertySets,
  2826.     /* [size_is][size_is][out] */ DBPROPSET **prgPropertySets,
  2827.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  2828. void __RPC_STUB IRowsetInfo_RemoteGetProperties_Stub(
  2829.     IRpcStubBuffer *This,
  2830.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2831.     PRPC_MESSAGE _pRpcMessage,
  2832.     DWORD *_pdwStubPhase);
  2833. /* [call_as] */ HRESULT STDMETHODCALLTYPE IRowsetInfo_RemoteGetReferencedRowset_Proxy( 
  2834.     IRowsetInfo * This,
  2835.     /* [in] */ DBORDINAL iOrdinal,
  2836.     /* [in] */ REFIID riid,
  2837.     /* [iid_is][out] */ IUnknown **ppReferencedRowset,
  2838.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  2839. void __RPC_STUB IRowsetInfo_RemoteGetReferencedRowset_Stub(
  2840.     IRpcStubBuffer *This,
  2841.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2842.     PRPC_MESSAGE _pRpcMessage,
  2843.     DWORD *_pdwStubPhase);
  2844. /* [call_as] */ HRESULT STDMETHODCALLTYPE IRowsetInfo_RemoteGetSpecification_Proxy( 
  2845.     IRowsetInfo * This,
  2846.     /* [in] */ REFIID riid,
  2847.     /* [iid_is][out] */ IUnknown **ppSpecification,
  2848.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  2849. void __RPC_STUB IRowsetInfo_RemoteGetSpecification_Stub(
  2850.     IRpcStubBuffer *This,
  2851.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2852.     PRPC_MESSAGE _pRpcMessage,
  2853.     DWORD *_pdwStubPhase);
  2854. #endif  /* __IRowsetInfo_INTERFACE_DEFINED__ */
  2855. #ifndef __IRowsetLocate_INTERFACE_DEFINED__
  2856. #define __IRowsetLocate_INTERFACE_DEFINED__
  2857. /* interface IRowsetLocate */
  2858. /* [unique][uuid][object][local] */ 
  2859. typedef DWORD DBCOMPARE;
  2860. enum DBCOMPAREENUM
  2861.     { DBCOMPARE_LT = 0,
  2862. DBCOMPARE_EQ = DBCOMPARE_LT + 1,
  2863. DBCOMPARE_GT = DBCOMPARE_EQ + 1,
  2864. DBCOMPARE_NE = DBCOMPARE_GT + 1,
  2865. DBCOMPARE_NOTCOMPARABLE = DBCOMPARE_NE + 1
  2866.     } ;
  2867. EXTERN_C const IID IID_IRowsetLocate;
  2868. #if defined(__cplusplus) && !defined(CINTERFACE)
  2869.     
  2870.     MIDL_INTERFACE("0c733a7d-2a1c-11ce-ade5-00aa0044773d")
  2871.     IRowsetLocate : public IRowset
  2872.     {
  2873.     public:
  2874.         virtual HRESULT STDMETHODCALLTYPE Compare( 
  2875.             /* [in] */ HCHAPTER hReserved,
  2876.             /* [in] */ DBBKMARK cbBookmark1,
  2877.             /* [size_is][in] */ const BYTE *pBookmark1,
  2878.             /* [in] */ DBBKMARK cbBookmark2,
  2879.             /* [size_is][in] */ const BYTE *pBookmark2,
  2880.             /* [out] */ DBCOMPARE *pComparison) = 0;
  2881.         
  2882.         virtual HRESULT STDMETHODCALLTYPE GetRowsAt( 
  2883.             /* [in] */ HWATCHREGION hReserved1,
  2884.             /* [in] */ HCHAPTER hReserved2,
  2885.             /* [in] */ DBBKMARK cbBookmark,
  2886.             /* [size_is][in] */ const BYTE *pBookmark,
  2887.             /* [in] */ DBROWOFFSET lRowsOffset,
  2888.             /* [in] */ DBROWCOUNT cRows,
  2889.             /* [out] */ DBCOUNTITEM *pcRowsObtained,
  2890.             /* [size_is][size_is][out] */ HROW **prghRows) = 0;
  2891.         
  2892.         virtual HRESULT STDMETHODCALLTYPE GetRowsByBookmark( 
  2893.             /* [in] */ HCHAPTER hReserved,
  2894.             /* [in] */ DBCOUNTITEM cRows,
  2895.             /* [size_is][in] */ const DBBKMARK rgcbBookmarks[  ],
  2896.             /* [size_is][in] */ const BYTE *rgpBookmarks[  ],
  2897.             /* [size_is][out] */ HROW rghRows[  ],
  2898.             /* [size_is][out] */ DBROWSTATUS rgRowStatus[  ]) = 0;
  2899.         
  2900.         virtual HRESULT STDMETHODCALLTYPE Hash( 
  2901.             /* [in] */ HCHAPTER hReserved,
  2902.             /* [in] */ DBBKMARK cBookmarks,
  2903.             /* [size_is][in] */ const DBBKMARK rgcbBookmarks[  ],
  2904.             /* [size_is][in] */ const BYTE *rgpBookmarks[  ],
  2905.             /* [size_is][out] */ DBHASHVALUE rgHashedValues[  ],
  2906.             /* [size_is][out] */ DBROWSTATUS rgBookmarkStatus[  ]) = 0;
  2907.         
  2908.     };
  2909.     
  2910. #else  /* C style interface */
  2911.     typedef struct IRowsetLocateVtbl
  2912.     {
  2913.         BEGIN_INTERFACE