PageRenderTime 39ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/node_modules/sqlserver/src/sqlncli.h

https://gitlab.com/TomBruyneelTrisco/krumbappservice
C Header | 1669 lines | 1069 code | 497 blank | 103 comment | 16 complexity | f6aa5cebcf1d69c03f0d88c7e1602cb3 MD5 | raw file
  1. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  2. /* File created by MIDL compiler version 7.00.0555 */
  3. /* Compiler settings for sqlncli.idl:
  4. Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
  5. protocol : dce , ms_ext, c_ext, robust
  6. error checks: allocation ref bounds_check enum stub_data
  7. VC __declspec() decoration level:
  8. __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  9. DECLSPEC_UUID(), MIDL_INTERFACE()
  10. */
  11. /* @@MIDL_FILE_HEADING( ) */
  12. #pragma warning( disable: 4049 ) /* more than 64k source lines */
  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__ 475
  16. #endif
  17. /* verify that the <rpcsal.h> version is high enough to compile this file*/
  18. #ifndef __REQUIRED_RPCSAL_H_VERSION__
  19. #define __REQUIRED_RPCSAL_H_VERSION__ 100
  20. #endif
  21. #include "rpc.h"
  22. #include "rpcndr.h"
  23. #ifndef __RPCNDR_H_VERSION__
  24. #error this stub requires an updated version of <rpcndr.h>
  25. #endif // __RPCNDR_H_VERSION__
  26. #ifndef COM_NO_WINDOWS_H
  27. #include "windows.h"
  28. #include "ole2.h"
  29. #endif /*COM_NO_WINDOWS_H*/
  30. #ifndef __sqlncli_h__
  31. #define __sqlncli_h__
  32. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  33. #pragma once
  34. #endif
  35. /* Forward Declarations */
  36. #ifndef __ICommandWithParameters_FWD_DEFINED__
  37. #define __ICommandWithParameters_FWD_DEFINED__
  38. typedef interface ICommandWithParameters ICommandWithParameters;
  39. #endif /* __ICommandWithParameters_FWD_DEFINED__ */
  40. #ifndef __IUMSInitialize_FWD_DEFINED__
  41. #define __IUMSInitialize_FWD_DEFINED__
  42. typedef interface IUMSInitialize IUMSInitialize;
  43. #endif /* __IUMSInitialize_FWD_DEFINED__ */
  44. #ifndef __ISQLServerErrorInfo_FWD_DEFINED__
  45. #define __ISQLServerErrorInfo_FWD_DEFINED__
  46. typedef interface ISQLServerErrorInfo ISQLServerErrorInfo;
  47. #endif /* __ISQLServerErrorInfo_FWD_DEFINED__ */
  48. #ifndef __IRowsetFastLoad_FWD_DEFINED__
  49. #define __IRowsetFastLoad_FWD_DEFINED__
  50. typedef interface IRowsetFastLoad IRowsetFastLoad;
  51. #endif /* __IRowsetFastLoad_FWD_DEFINED__ */
  52. #ifndef __ISchemaLock_FWD_DEFINED__
  53. #define __ISchemaLock_FWD_DEFINED__
  54. typedef interface ISchemaLock ISchemaLock;
  55. #endif /* __ISchemaLock_FWD_DEFINED__ */
  56. #ifndef __IBCPSession_FWD_DEFINED__
  57. #define __IBCPSession_FWD_DEFINED__
  58. typedef interface IBCPSession IBCPSession;
  59. #endif /* __IBCPSession_FWD_DEFINED__ */
  60. #ifndef __IBCPSession2_FWD_DEFINED__
  61. #define __IBCPSession2_FWD_DEFINED__
  62. typedef interface IBCPSession2 IBCPSession2;
  63. #endif /* __IBCPSession2_FWD_DEFINED__ */
  64. #ifndef __ISSAbort_FWD_DEFINED__
  65. #define __ISSAbort_FWD_DEFINED__
  66. typedef interface ISSAbort ISSAbort;
  67. #endif /* __ISSAbort_FWD_DEFINED__ */
  68. #ifndef __ISSCommandWithParameters_FWD_DEFINED__
  69. #define __ISSCommandWithParameters_FWD_DEFINED__
  70. typedef interface ISSCommandWithParameters ISSCommandWithParameters;
  71. #endif /* __ISSCommandWithParameters_FWD_DEFINED__ */
  72. #ifndef __IDBAsynchStatus_FWD_DEFINED__
  73. #define __IDBAsynchStatus_FWD_DEFINED__
  74. typedef interface IDBAsynchStatus IDBAsynchStatus;
  75. #endif /* __IDBAsynchStatus_FWD_DEFINED__ */
  76. #ifndef __ISSAsynchStatus_FWD_DEFINED__
  77. #define __ISSAsynchStatus_FWD_DEFINED__
  78. typedef interface ISSAsynchStatus ISSAsynchStatus;
  79. #endif /* __ISSAsynchStatus_FWD_DEFINED__ */
  80. /* header files for imported files */
  81. #include "unknwn.h"
  82. #include "oaidl.h"
  83. #ifdef __cplusplus
  84. extern "C"{
  85. #endif
  86. /* interface __MIDL_itf_sqlncli_0000_0000 */
  87. /* [local] */
  88. //-----------------------------------------------------------------------------
  89. // File: sqlncli.h
  90. //
  91. // Copyright: Copyright (c) Microsoft Corporation
  92. //
  93. // Contents: SQL Server Native Client OLEDB provider and ODBC driver specific
  94. // definitions.
  95. //
  96. //-----------------------------------------------------------------------------
  97. #if !defined(SQLNCLI_VER)
  98. #define SQLNCLI_VER 1100
  99. #endif
  100. #if SQLNCLI_VER >= 1100
  101. #define SQLNCLI_PRODUCT_NAME_FULL_VER_ANSI "Microsoft SQL Server Native Client 11.0"
  102. #define SQLNCLI_PRODUCT_NAME_FULL_ANSI "Microsoft SQL Server Native Client"
  103. #define SQLNCLI_PRODUCT_NAME_SHORT_VER_ANSI "SQL Server Native Client 11.0"
  104. #define SQLNCLI_PRODUCT_NAME_SHORT_ANSI "SQL Server Native Client"
  105. #define SQLNCLI_FILE_NAME_ANSI "sqlncli"
  106. #define SQLNCLI_FILE_NAME_VER_ANSI "sqlncli11"
  107. #define SQLNCLI_FILE_NAME_FULL_ANSI "sqlncli11.dll"
  108. #define SQLNCLI_PRODUCT_NAME_FULL_VER_UNICODE L"Microsoft SQL Server Native Client 11.0"
  109. #define SQLNCLI_PRODUCT_NAME_FULL_UNICODE L"Microsoft SQL Server Native Client"
  110. #define SQLNCLI_PRODUCT_NAME_SHORT_VER_UNICODE L"SQL Server Native Client 11.0"
  111. #define SQLNCLI_PRODUCT_NAME_SHORT_UNICODE L"SQL Server Native Client"
  112. #define SQLNCLI_FILE_NAME_UNICODE L"sqlncli"
  113. #define SQLNCLI_FILE_NAME_VER_UNICODE L"sqlncli11"
  114. #define SQLNCLI_FILE_NAME_FULL_UNICODE L"sqlncli11.dll"
  115. #if defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
  116. #define SQLNCLI_VI_PROG_ID_ANSI "SQLNCLI11"
  117. #define SQLNCLI_VI_ERROR_LOOKUP_PROG_ID_ANSI "SQLNCLI11.ErrorLookup"
  118. #define SQLNCLI_VI_ENUMERATOR_PROG_ID_ANSI "SQLNCLI11.Enumerator"
  119. #define SQLNCLI_PROG_ID_ANSI "SQLNCLI11.1"
  120. #define SQLNCLI_ERROR_LOOKUP_PROG_ID_ANSI "SQLNCLI11.ErrorLookup.1"
  121. #define SQLNCLI_ENUMERATOR_PROG_ID_ANSI "SQLNCLI11.Enumerator.1"
  122. #define SQLNCLI_VI_PROG_ID_UNICODE L"SQLNCLI11"
  123. #define SQLNCLI_VI_ERROR_LOOKUP_PROG_ID_UNICODE L"SQLNCLI11.ErrorLookup"
  124. #define SQLNCLI_VI_ENUMERATOR_PROG_ID_UNICODE L"SQLNCLI11.Enumerator"
  125. #define SQLNCLI_PROG_ID_UNICODE L"SQLNCLI11.1"
  126. #define SQLNCLI_ERROR_LOOKUP_PROG_ID_UNICODE L"SQLNCLI11.ErrorLookup.1"
  127. #define SQLNCLI_ENUMERATOR_PROG_ID_UNICODE L"SQLNCLI11.Enumerator.1"
  128. #define SQLNCLI_CLSID CLSID_SQLNCLI11
  129. #define SQLNCLI_ERROR_CLSID CLSID_SQLNCLI11_ERROR
  130. #define SQLNCLI_ENUMERATOR_CLSID CLSID_SQLNCLI11_ENUMERATOR
  131. #endif // defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
  132. #elif SQLNCLI_VER >= 1000
  133. #define SQLNCLI_PRODUCT_NAME_FULL_VER_ANSI "Microsoft SQL Server Native Client 10.0"
  134. #define SQLNCLI_PRODUCT_NAME_FULL_ANSI "Microsoft SQL Server Native Client"
  135. #define SQLNCLI_PRODUCT_NAME_SHORT_VER_ANSI "SQL Server Native Client 10.0"
  136. #define SQLNCLI_PRODUCT_NAME_SHORT_ANSI "SQL Server Native Client"
  137. #define SQLNCLI_FILE_NAME_ANSI "sqlncli"
  138. #define SQLNCLI_FILE_NAME_VER_ANSI "sqlncli10"
  139. #define SQLNCLI_FILE_NAME_FULL_ANSI "sqlncli10.dll"
  140. #define SQLNCLI_PRODUCT_NAME_FULL_VER_UNICODE L"Microsoft SQL Server Native Client 10.0"
  141. #define SQLNCLI_PRODUCT_NAME_FULL_UNICODE L"Microsoft SQL Server Native Client"
  142. #define SQLNCLI_PRODUCT_NAME_SHORT_VER_UNICODE L"SQL Server Native Client 10.0"
  143. #define SQLNCLI_PRODUCT_NAME_SHORT_UNICODE L"SQL Server Native Client"
  144. #define SQLNCLI_FILE_NAME_UNICODE L"sqlncli"
  145. #define SQLNCLI_FILE_NAME_VER_UNICODE L"sqlncli10"
  146. #define SQLNCLI_FILE_NAME_FULL_UNICODE L"sqlncli10.dll"
  147. #if defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
  148. #define SQLNCLI_VI_PROG_ID_ANSI "SQLNCLI10"
  149. #define SQLNCLI_VI_ERROR_LOOKUP_PROG_ID_ANSI "SQLNCLI10 ErrorLookup"
  150. #define SQLNCLI_VI_ENUMERATOR_PROG_ID_ANSI "SQLNCLI10 Enumerator"
  151. #define SQLNCLI_PROG_ID_ANSI "SQLNCLI10.1"
  152. #define SQLNCLI_ERROR_LOOKUP_PROG_ID_ANSI "SQLNCLI10 ErrorLookup.1"
  153. #define SQLNCLI_ENUMERATOR_PROG_ID_ANSI "SQLNCLI10 Enumerator.1"
  154. #define SQLNCLI_VI_PROG_ID_UNICODE L"SQLNCLI10"
  155. #define SQLNCLI_VI_ERROR_LOOKUP_PROG_ID_UNICODE L"SQLNCLI10 ErrorLookup"
  156. #define SQLNCLI_VI_ENUMERATOR_PROG_ID_UNICODE L"SQLNCLI10 Enumerator"
  157. #define SQLNCLI_PROG_ID_UNICODE L"SQLNCLI10.1"
  158. #define SQLNCLI_ERROR_LOOKUP_PROG_ID_UNICODE L"SQLNCLI10 ErrorLookup.1"
  159. #define SQLNCLI_ENUMERATOR_PROG_ID_UNICODE L"SQLNCLI10 Enumerator.1"
  160. #define SQLNCLI_CLSID CLSID_SQLNCLI10
  161. #define SQLNCLI_ERROR_CLSID CLSID_SQLNCLI10_ERROR
  162. #define SQLNCLI_ENUMERATOR_CLSID CLSID_SQLNCLI10_ENUMERATOR
  163. #endif // defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
  164. #else
  165. #define SQLNCLI_PRODUCT_NAME_FULL_VER_ANSI "Microsoft SQL Server Native Client"
  166. #define SQLNCLI_PRODUCT_NAME_FULL_ANSI "Microsoft SQL Server Native Client"
  167. #define SQLNCLI_PRODUCT_NAME_SHORT_VER_ANSI "SQL Native Client"
  168. #define SQLNCLI_PRODUCT_NAME_SHORT_ANSI "SQL Native Client"
  169. #define SQLNCLI_FILE_NAME_ANSI "sqlncli"
  170. #define SQLNCLI_FILE_NAME_VER_ANSI "sqlncli"
  171. #define SQLNCLI_FILE_NAME_FULL_ANSI "sqlncli.dll"
  172. #define SQLNCLI_PRODUCT_NAME_FULL_VER_UNICODE L"Microsoft SQL Server Native Client"
  173. #define SQLNCLI_PRODUCT_NAME_FULL_UNICODE L"Microsoft SQL Server Native Client"
  174. #define SQLNCLI_PRODUCT_NAME_SHORT_VER_UNICODE L"SQL Native Client"
  175. #define SQLNCLI_PRODUCT_NAME_SHORT_UNICODE L"SQL Native Client"
  176. #define SQLNCLI_FILE_NAME_UNICODE L"sqlncli"
  177. #define SQLNCLI_FILE_NAME_VER_UNICODE L"sqlncli"
  178. #define SQLNCLI_FILE_NAME_FULL_UNICODE L"sqlncli.dll"
  179. #if defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
  180. #define SQLNCLI_VI_PROG_ID_ANSI "SQLNCLI"
  181. #define SQLNCLI_VI_ERROR_LOOKUP_PROG_ID_ANSI "SQLNCLI ErrorLookup"
  182. #define SQLNCLI_VI_ENUMERATOR_PROG_ID_ANSI "SQLNCLI Enumerator"
  183. #define SQLNCLI_PROG_ID_ANSI "SQLNCLI.1"
  184. #define SQLNCLI_ERROR_LOOKUP_PROG_ID_ANSI "SQLNCLI ErrorLookup.1"
  185. #define SQLNCLI_ENUMERATOR_PROG_ID_ANSI "SQLNCLI Enumerator.1"
  186. #define SQLNCLI_VI_PROG_ID_UNICODE L"SQLNCLI"
  187. #define SQLNCLI_VI_ERROR_LOOKUP_PROG_ID_UNICODE L"SQLNCLI ErrorLookup"
  188. #define SQLNCLI_VI_ENUMERATOR_PROG_ID_UNICODE L"SQLNCLI Enumerator"
  189. #define SQLNCLI_PROG_ID_UNICODE L"SQLNCLI.1"
  190. #define SQLNCLI_ERROR_LOOKUP_PROG_ID_UNICODE L"SQLNCLI ErrorLookup.1"
  191. #define SQLNCLI_ENUMERATOR_PROG_ID_UNICODE L"SQLNCLI Enumerator.1"
  192. #define SQLNCLI_CLSID CLSID_SQLNCLI
  193. #define SQLNCLI_ERROR_CLSID CLSID_SQLNCLI_ERROR
  194. #define SQLNCLI_ENUMERATOR_CLSID CLSID_SQLNCLI_ENUMERATOR
  195. #endif // defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
  196. #endif // SQLNCLI_VER >= 1100
  197. // define the character type agnostic constants
  198. #if defined(_UNICODE) || defined(UNICODE)
  199. #define SQLNCLI_PRODUCT_NAME_FULL_VER SQLNCLI_PRODUCT_NAME_FULL_VER_UNICODE
  200. #define SQLNCLI_PRODUCT_NAME_FULL SQLNCLI_PRODUCT_NAME_FULL_UNICODE
  201. #define SQLNCLI_PRODUCT_NAME_SHORT_VER SQLNCLI_PRODUCT_NAME_SHORT_VER_UNICODE
  202. #define SQLNCLI_PRODUCT_NAME_SHORT SQLNCLI_PRODUCT_NAME_SHORT_UNICODE
  203. #define SQLNCLI_FILE_NAME SQLNCLI_FILE_NAME_UNICODE
  204. #define SQLNCLI_FILE_NAME_VER SQLNCLI_FILE_NAME_VER_UNICODE
  205. #define SQLNCLI_FILE_NAME_FULL SQLNCLI_FILE_NAME_FULL_UNICODE
  206. #if defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
  207. #define SQLNCLI_VI_PROG_ID SQLNCLI_VI_PROG_ID_UNICODE
  208. #define SQLNCLI_VI_ERROR_LOOKUP_PROG_ID SQLNCLI_VI_ERROR_LOOKUP_PROG_ID_UNICODE
  209. #define SQLNCLI_VI_ENUMERATOR_PROG_ID SQLNCLI_VI_ENUMERATOR_PROG_ID_UNICODE
  210. #define SQLNCLI_PROG_ID SQLNCLI_PROG_ID_UNICODE
  211. #define SQLNCLI_ERROR_LOOKUP_PROG_ID SQLNCLI_ERROR_LOOKUP_PROG_ID_UNICODE
  212. #define SQLNCLI_ENUMERATOR_PROG_ID SQLNCLI_ENUMERATOR_PROG_ID_UNICODE
  213. #endif // defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
  214. #else // _UNICODE || UNICODE
  215. #define SQLNCLI_PRODUCT_NAME_FULL_VER SQLNCLI_PRODUCT_NAME_FULL_VER_ANSI
  216. #define SQLNCLI_PRODUCT_NAME_FULL SQLNCLI_PRODUCT_NAME_FULL_ANSI
  217. #define SQLNCLI_PRODUCT_NAME_SHORT_VER SQLNCLI_PRODUCT_NAME_SHORT_VER_ANSI
  218. #define SQLNCLI_PRODUCT_NAME_SHORT SQLNCLI_PRODUCT_NAME_SHORT_ANSI
  219. #define SQLNCLI_FILE_NAME SQLNCLI_FILE_NAME_ANSI
  220. #define SQLNCLI_FILE_NAME_VER SQLNCLI_FILE_NAME_VER_ANSI
  221. #define SQLNCLI_FILE_NAME_FULL SQLNCLI_FILE_NAME_FULL_ANSI
  222. #if defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
  223. #define SQLNCLI_VI_PROG_ID SQLNCLI_VI_PROG_ID_ANSI
  224. #define SQLNCLI_VI_ERROR_LOOKUP_PROG_ID SQLNCLI_VI_ERROR_LOOKUP_PROG_ID_ANSI
  225. #define SQLNCLI_VI_ENUMERATOR_PROG_ID SQLNCLI_VI_ENUMERATOR_PROG_ID_ANSI
  226. #define SQLNCLI_PROG_ID SQLNCLI_PROG_ID_ANSI
  227. #define SQLNCLI_ERROR_LOOKUP_PROG_ID SQLNCLI_ERROR_LOOKUP_PROG_ID_ANSI
  228. #define SQLNCLI_ENUMERATOR_PROG_ID SQLNCLI_ENUMERATOR_PROG_ID_ANSI
  229. #endif // defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
  230. #endif // _UNICODE || UNICODE
  231. #if defined(_SQLNCLI_ODBC_) || !defined(_SQLNCLI_OLEDB_)
  232. #define SQLNCLI_DRIVER_NAME SQLNCLI_PRODUCT_NAME_SHORT_VER
  233. #endif
  234. // OLEDB part of SQL Server Native Client header - begin here
  235. #if defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
  236. #ifndef __oledb_h__
  237. #include <oledb.h>
  238. #endif /*__oledb_h__*/
  239. #if 0 // This is already defined in oledb.h
  240. #ifdef _WIN64
  241. // Length of a non-character object, size
  242. typedef ULONGLONG DBLENGTH;
  243. // Offset within a rowset
  244. typedef LONGLONG DBROWOFFSET;
  245. // Number of rows
  246. typedef LONGLONG DBROWCOUNT;
  247. typedef ULONGLONG DBCOUNTITEM;
  248. // Ordinal (column number, etc.)
  249. typedef ULONGLONG DBORDINAL;
  250. typedef LONGLONG DB_LORDINAL;
  251. // Bookmarks
  252. typedef ULONGLONG DBBKMARK;
  253. // Offset in the buffer
  254. typedef ULONGLONG DBBYTEOFFSET;
  255. // Reference count of each row/accessor handle
  256. typedef ULONG DBREFCOUNT;
  257. // Parameters
  258. typedef ULONGLONG DB_UPARAMS;
  259. typedef LONGLONG DB_LPARAMS;
  260. // hash values corresponding to the elements (bookmarks)
  261. typedef DWORDLONG DBHASHVALUE;
  262. // For reserve
  263. typedef DWORDLONG DB_DWRESERVE;
  264. typedef LONGLONG DB_LRESERVE;
  265. typedef ULONGLONG DB_URESERVE;
  266. #else //_WIN64
  267. // Length of a non-character object, size
  268. typedef ULONG DBLENGTH;
  269. // Offset within a rowset
  270. typedef LONG DBROWOFFSET;
  271. // Number of rows
  272. typedef LONG DBROWCOUNT;
  273. typedef ULONG DBCOUNTITEM;
  274. // Ordinal (column number, etc.)
  275. typedef ULONG DBORDINAL;
  276. typedef LONG DB_LORDINAL;
  277. // Bookmarks
  278. typedef ULONG DBBKMARK;
  279. // Offset in the buffer
  280. typedef ULONG DBBYTEOFFSET;
  281. // Reference count of each row handle
  282. typedef ULONG DBREFCOUNT;
  283. // Parameters
  284. typedef ULONG DB_UPARAMS;
  285. typedef LONG DB_LPARAMS;
  286. // hash values corresponding to the elements (bookmarks)
  287. typedef DWORD DBHASHVALUE;
  288. // For reserve
  289. typedef DWORD DB_DWRESERVE;
  290. typedef LONG DB_LRESERVE;
  291. typedef ULONG DB_URESERVE;
  292. #endif // _WIN64
  293. typedef DWORD DBKIND;
  294. enum DBKINDENUM
  295. { DBKIND_GUID_NAME = 0,
  296. DBKIND_GUID_PROPID = ( DBKIND_GUID_NAME + 1 ) ,
  297. DBKIND_NAME = ( DBKIND_GUID_PROPID + 1 ) ,
  298. DBKIND_PGUID_NAME = ( DBKIND_NAME + 1 ) ,
  299. DBKIND_PGUID_PROPID = ( DBKIND_PGUID_NAME + 1 ) ,
  300. DBKIND_PROPID = ( DBKIND_PGUID_PROPID + 1 ) ,
  301. DBKIND_GUID = ( DBKIND_PROPID + 1 )
  302. } ;
  303. typedef struct tagDBID
  304. {
  305. union
  306. {
  307. GUID guid;
  308. GUID *pguid;
  309. /* Empty union arm */
  310. } uGuid;
  311. DBKIND eKind;
  312. union
  313. {
  314. LPOLESTR pwszName;
  315. ULONG ulPropid;
  316. /* Empty union arm */
  317. } uName;
  318. } DBID;
  319. typedef struct tagDB_NUMERIC
  320. {
  321. BYTE precision;
  322. BYTE scale;
  323. BYTE sign;
  324. BYTE val[ 16 ];
  325. } DB_NUMERIC;
  326. typedef struct tagDBDATE
  327. {
  328. SHORT year;
  329. USHORT month;
  330. USHORT day;
  331. } DBDATE;
  332. typedef struct tagDBTIME
  333. {
  334. USHORT hour;
  335. USHORT minute;
  336. USHORT second;
  337. } DBTIME;
  338. typedef struct tagDBTIMESTAMP
  339. {
  340. SHORT year;
  341. USHORT month;
  342. USHORT day;
  343. USHORT hour;
  344. USHORT minute;
  345. USHORT second;
  346. ULONG fraction;
  347. } DBTIMESTAMP;
  348. typedef struct tagDBOBJECT
  349. {
  350. DWORD dwFlags;
  351. IID iid;
  352. } DBOBJECT;
  353. typedef WORD DBTYPE;
  354. typedef ULONG_PTR HACCESSOR;
  355. typedef ULONG_PTR HCHAPTER;
  356. typedef DWORD DBPARAMFLAGS;
  357. typedef struct tagDBPARAMINFO
  358. {
  359. DBPARAMFLAGS dwFlags;
  360. DBORDINAL iOrdinal;
  361. LPOLESTR pwszName;
  362. ITypeInfo *pTypeInfo;
  363. DBLENGTH ulParamSize;
  364. DBTYPE wType;
  365. BYTE bPrecision;
  366. BYTE bScale;
  367. } DBPARAMINFO;
  368. typedef DWORD DBPROPID;
  369. typedef struct tagDBPROPIDSET
  370. {
  371. DBPROPID *rgPropertyIDs;
  372. ULONG cPropertyIDs;
  373. GUID guidPropertySet;
  374. } DBPROPIDSET;
  375. typedef DWORD DBPROPFLAGS;
  376. typedef DWORD DBPROPOPTIONS;
  377. typedef DWORD DBPROPSTATUS;
  378. typedef struct tagDBPROP
  379. {
  380. DBPROPID dwPropertyID;
  381. DBPROPOPTIONS dwOptions;
  382. DBPROPSTATUS dwStatus;
  383. DBID colid;
  384. VARIANT vValue;
  385. } DBPROP;
  386. typedef struct tagDBPROPSET
  387. {
  388. DBPROP *rgProperties;
  389. ULONG cProperties;
  390. GUID guidPropertySet;
  391. } DBPROPSET;
  392. extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0000_v0_0_c_ifspec;
  393. extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0000_v0_0_s_ifspec;
  394. #ifndef __ICommandWithParameters_INTERFACE_DEFINED__
  395. #define __ICommandWithParameters_INTERFACE_DEFINED__
  396. /* interface ICommandWithParameters */
  397. /* [unique][uuid][object][local] */
  398. typedef struct tagDBPARAMBINDINFO
  399. {
  400. LPOLESTR pwszDataSourceType;
  401. LPOLESTR pwszName;
  402. DBLENGTH ulParamSize;
  403. DBPARAMFLAGS dwFlags;
  404. BYTE bPrecision;
  405. BYTE bScale;
  406. } DBPARAMBINDINFO;
  407. EXTERN_C const IID IID_ICommandWithParameters;
  408. #if defined(__cplusplus) && !defined(CINTERFACE)
  409. MIDL_INTERFACE("0c733a64-2a1c-11ce-ade5-00aa0044773d")
  410. ICommandWithParameters : public IUnknown
  411. {
  412. public:
  413. virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetParameterInfo(
  414. /* [out][in] */ DB_UPARAMS *pcParams,
  415. /* [size_is][size_is][out] */ DBPARAMINFO **prgParamInfo,
  416. /* [out] */ OLECHAR **ppNamesBuffer) = 0;
  417. virtual /* [local] */ HRESULT STDMETHODCALLTYPE MapParameterNames(
  418. /* [in] */ DB_UPARAMS cParamNames,
  419. /* [size_is][in] */ const OLECHAR *rgParamNames[ ],
  420. /* [size_is][out] */ DB_LPARAMS rgParamOrdinals[ ]) = 0;
  421. virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetParameterInfo(
  422. /* [in] */ DB_UPARAMS cParams,
  423. /* [size_is][unique][in] */ const DB_UPARAMS rgParamOrdinals[ ],
  424. /* [size_is][unique][in] */ const DBPARAMBINDINFO rgParamBindInfo[ ]) = 0;
  425. };
  426. #else /* C style interface */
  427. typedef struct ICommandWithParametersVtbl
  428. {
  429. BEGIN_INTERFACE
  430. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  431. ICommandWithParameters * This,
  432. /* [in] */ REFIID riid,
  433. /* [annotation][iid_is][out] */
  434. __RPC__deref_out void **ppvObject);
  435. ULONG ( STDMETHODCALLTYPE *AddRef )(
  436. ICommandWithParameters * This);
  437. ULONG ( STDMETHODCALLTYPE *Release )(
  438. ICommandWithParameters * This);
  439. /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetParameterInfo )(
  440. ICommandWithParameters * This,
  441. /* [out][in] */ DB_UPARAMS *pcParams,
  442. /* [size_is][size_is][out] */ DBPARAMINFO **prgParamInfo,
  443. /* [out] */ OLECHAR **ppNamesBuffer);
  444. /* [local] */ HRESULT ( STDMETHODCALLTYPE *MapParameterNames )(
  445. ICommandWithParameters * This,
  446. /* [in] */ DB_UPARAMS cParamNames,
  447. /* [size_is][in] */ const OLECHAR *rgParamNames[ ],
  448. /* [size_is][out] */ DB_LPARAMS rgParamOrdinals[ ]);
  449. /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetParameterInfo )(
  450. ICommandWithParameters * This,
  451. /* [in] */ DB_UPARAMS cParams,
  452. /* [size_is][unique][in] */ const DB_UPARAMS rgParamOrdinals[ ],
  453. /* [size_is][unique][in] */ const DBPARAMBINDINFO rgParamBindInfo[ ]);
  454. END_INTERFACE
  455. } ICommandWithParametersVtbl;
  456. interface ICommandWithParameters
  457. {
  458. CONST_VTBL struct ICommandWithParametersVtbl *lpVtbl;
  459. };
  460. #ifdef COBJMACROS
  461. #define ICommandWithParameters_QueryInterface(This,riid,ppvObject) \
  462. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  463. #define ICommandWithParameters_AddRef(This) \
  464. ( (This)->lpVtbl -> AddRef(This) )
  465. #define ICommandWithParameters_Release(This) \
  466. ( (This)->lpVtbl -> Release(This) )
  467. #define ICommandWithParameters_GetParameterInfo(This,pcParams,prgParamInfo,ppNamesBuffer) \
  468. ( (This)->lpVtbl -> GetParameterInfo(This,pcParams,prgParamInfo,ppNamesBuffer) )
  469. #define ICommandWithParameters_MapParameterNames(This,cParamNames,rgParamNames,rgParamOrdinals) \
  470. ( (This)->lpVtbl -> MapParameterNames(This,cParamNames,rgParamNames,rgParamOrdinals) )
  471. #define ICommandWithParameters_SetParameterInfo(This,cParams,rgParamOrdinals,rgParamBindInfo) \
  472. ( (This)->lpVtbl -> SetParameterInfo(This,cParams,rgParamOrdinals,rgParamBindInfo) )
  473. #endif /* COBJMACROS */
  474. #endif /* C style interface */
  475. /* [call_as] */ HRESULT STDMETHODCALLTYPE ICommandWithParameters_RemoteGetParameterInfo_Proxy(
  476. ICommandWithParameters * This,
  477. /* [out][in] */ DB_UPARAMS *pcParams,
  478. /* [size_is][size_is][out] */ DBPARAMINFO **prgParamInfo,
  479. /* [size_is][size_is][out] */ DBBYTEOFFSET **prgNameOffsets,
  480. /* [out][in] */ DBLENGTH *pcbNamesBuffer,
  481. /* [size_is][size_is][unique][out][in] */ OLECHAR **ppNamesBuffer,
  482. /* [out] */ IErrorInfo **ppErrorInfoRem);
  483. void __RPC_STUB ICommandWithParameters_RemoteGetParameterInfo_Stub(
  484. IRpcStubBuffer *This,
  485. IRpcChannelBuffer *_pRpcChannelBuffer,
  486. PRPC_MESSAGE _pRpcMessage,
  487. DWORD *_pdwStubPhase);
  488. /* [call_as] */ HRESULT STDMETHODCALLTYPE ICommandWithParameters_RemoteMapParameterNames_Proxy(
  489. ICommandWithParameters * This,
  490. /* [in] */ DB_UPARAMS cParamNames,
  491. /* [size_is][in] */ LPCOLESTR *rgParamNames,
  492. /* [size_is][out] */ DB_LPARAMS *rgParamOrdinals,
  493. /* [out] */ IErrorInfo **ppErrorInfoRem);
  494. void __RPC_STUB ICommandWithParameters_RemoteMapParameterNames_Stub(
  495. IRpcStubBuffer *This,
  496. IRpcChannelBuffer *_pRpcChannelBuffer,
  497. PRPC_MESSAGE _pRpcMessage,
  498. DWORD *_pdwStubPhase);
  499. /* [call_as] */ HRESULT STDMETHODCALLTYPE ICommandWithParameters_RemoteSetParameterInfo_Proxy(
  500. ICommandWithParameters * This,
  501. /* [in] */ DB_UPARAMS cParams,
  502. /* [size_is][unique][in] */ const DB_UPARAMS *rgParamOrdinals,
  503. /* [size_is][unique][in] */ const DBPARAMBINDINFO *rgParamBindInfo,
  504. /* [out] */ IErrorInfo **ppErrorInfoRem);
  505. void __RPC_STUB ICommandWithParameters_RemoteSetParameterInfo_Stub(
  506. IRpcStubBuffer *This,
  507. IRpcChannelBuffer *_pRpcChannelBuffer,
  508. PRPC_MESSAGE _pRpcMessage,
  509. DWORD *_pdwStubPhase);
  510. #endif /* __ICommandWithParameters_INTERFACE_DEFINED__ */
  511. /* interface __MIDL_itf_sqlncli_0000_0001 */
  512. /* [local] */
  513. typedef DWORD DBASYNCHOP;
  514. typedef DWORD DBASYNCHPHASE;
  515. #endif // This is already defined in oledb.h
  516. //-------------------------------------------------------------------
  517. // Variant Access macros, similar to ole automation.
  518. //-------------------------------------------------------------------
  519. #define V_SS_VT(X) ((X)->vt)
  520. #define V_SS_UNION(X, Y) ((X)->Y)
  521. #define V_SS_UI1(X) V_SS_UNION(X, bTinyIntVal)
  522. #define V_SS_I2(X) V_SS_UNION(X, sShortIntVal)
  523. #define V_SS_I4(X) V_SS_UNION(X, lIntVal)
  524. #define V_SS_I8(X) V_SS_UNION(X, llBigIntVal)
  525. #define V_SS_R4(X) V_SS_UNION(X, fltRealVal)
  526. #define V_SS_R8(X) V_SS_UNION(X, dblFloatVal)
  527. #define V_SS_UI4(X) V_SS_UNION(X, ulVal)
  528. #define V_SS_MONEY(X) V_SS_UNION(X, cyMoneyVal)
  529. #define V_SS_SMALLMONEY(X) V_SS_UNION(X, cyMoneyVal)
  530. #define V_SS_WSTRING(X) V_SS_UNION(X, NCharVal)
  531. #define V_SS_WVARSTRING(X) V_SS_UNION(X, NCharVal)
  532. #define V_SS_STRING(X) V_SS_UNION(X, CharVal)
  533. #define V_SS_VARSTRING(X) V_SS_UNION(X, CharVal)
  534. #define V_SS_BIT(X) V_SS_UNION(X, fBitVal)
  535. #define V_SS_GUID(X) V_SS_UNION(X, rgbGuidVal)
  536. #define V_SS_NUMERIC(X) V_SS_UNION(X, numNumericVal)
  537. #define V_SS_DECIMAL(X) V_SS_UNION(X, numNumericVal)
  538. #define V_SS_BINARY(X) V_SS_UNION(X, BinaryVal)
  539. #define V_SS_VARBINARY(X) V_SS_UNION(X, BinaryVal)
  540. #define V_SS_DATETIME(X) V_SS_UNION(X, tsDateTimeVal)
  541. #define V_SS_SMALLDATETIME(X) V_SS_UNION(X, tsDateTimeVal)
  542. #define V_SS_UNKNOWN(X) V_SS_UNION(X, UnknownType)
  543. //Text and image types.
  544. #define V_SS_IMAGE(X) V_SS_UNION(X, ImageVal)
  545. #define V_SS_TEXT(X) V_SS_UNION(X, TextVal)
  546. #define V_SS_NTEXT(X) V_SS_UNION(X, NTextVal)
  547. //Microsoft SQL Server 2008 datetime.
  548. #define V_SS_DATE(X) V_SS_UNION(X, dDateVal)
  549. #define V_SS_TIME2(X) V_SS_UNION(X, Time2Val)
  550. #define V_SS_DATETIME2(X) V_SS_UNION(X, DateTimeVal)
  551. #define V_SS_DATETIMEOFFSET(X) V_SS_UNION(X, DateTimeOffsetVal)
  552. //-------------------------------------------------------------------
  553. // define SQL Server specific types.
  554. //-------------------------------------------------------------------
  555. typedef enum DBTYPEENUM EOledbTypes;
  556. #define DBTYPE_XML ((EOledbTypes) 141) // introduced in SQL 2005
  557. #define DBTYPE_TABLE ((EOledbTypes) 143) // introduced in SQL 2008
  558. #define DBTYPE_DBTIME2 ((EOledbTypes) 145) // introduced in SQL 2008
  559. #define DBTYPE_DBTIMESTAMPOFFSET ((EOledbTypes) 146) // introduced in SQL 2008
  560. #ifdef _SQLOLEDB_H_
  561. #undef DBTYPE_SQLVARIANT
  562. #endif //_SQLOLEDB_H_
  563. #define DBTYPE_SQLVARIANT ((EOledbTypes) 144) // introduced in MDAC 2.5
  564. #ifndef _SQLOLEDB_H_
  565. enum SQLVARENUM
  566. {
  567. VT_SS_EMPTY = DBTYPE_EMPTY,
  568. VT_SS_NULL = DBTYPE_NULL,
  569. VT_SS_UI1 = DBTYPE_UI1,
  570. VT_SS_I2 = DBTYPE_I2,
  571. VT_SS_I4 = DBTYPE_I4,
  572. VT_SS_I8 = DBTYPE_I8,
  573. //Floats
  574. VT_SS_R4 = DBTYPE_R4,
  575. VT_SS_R8 = DBTYPE_R8,
  576. //Money
  577. VT_SS_MONEY = DBTYPE_CY,
  578. VT_SS_SMALLMONEY = 200,
  579. //Strings
  580. VT_SS_WSTRING = 201,
  581. VT_SS_WVARSTRING = 202,
  582. VT_SS_STRING = 203,
  583. VT_SS_VARSTRING = 204,
  584. //Bit
  585. VT_SS_BIT = DBTYPE_BOOL,
  586. //Guid
  587. VT_SS_GUID = DBTYPE_GUID,
  588. //Exact precision
  589. VT_SS_NUMERIC = DBTYPE_NUMERIC,
  590. VT_SS_DECIMAL = 205,
  591. //Datetime
  592. VT_SS_DATETIME = DBTYPE_DBTIMESTAMP,
  593. VT_SS_SMALLDATETIME =206,
  594. //Binary
  595. VT_SS_BINARY =207,
  596. VT_SS_VARBINARY = 208,
  597. //Future
  598. VT_SS_UNKNOWN = 209,
  599. //Additional datetime
  600. VT_SS_DATE = DBTYPE_DBDATE,
  601. VT_SS_TIME2 = DBTYPE_DBTIME2,
  602. VT_SS_DATETIME2 = 212,
  603. VT_SS_DATETIMEOFFSET = DBTYPE_DBTIMESTAMPOFFSET,
  604. };
  605. typedef unsigned short SSVARTYPE;
  606. enum DBPARAMFLAGSENUM_SS_100
  607. { DBPARAMFLAGS_SS_ISVARIABLESCALE = 0x40000000
  608. } ;
  609. enum DBCOLUMNFLAGSENUM_SS_100
  610. { DBCOLUMNFLAGS_SS_ISVARIABLESCALE = 0x40000000,
  611. DBCOLUMNFLAGS_SS_ISCOLUMNSET = 0x80000000
  612. } ;
  613. //-------------------------------------------------------------------
  614. // Class Factory Interface used to initialize pointer to UMS.
  615. //-------------------------------------------------------------------
  616. extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0001_v0_0_c_ifspec;
  617. extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0001_v0_0_s_ifspec;
  618. #ifndef __IUMSInitialize_INTERFACE_DEFINED__
  619. #define __IUMSInitialize_INTERFACE_DEFINED__
  620. /* interface IUMSInitialize */
  621. /* [unique][uuid][object][local] */
  622. EXTERN_C const IID IID_IUMSInitialize;
  623. #if defined(__cplusplus) && !defined(CINTERFACE)
  624. MIDL_INTERFACE("5cf4ca14-ef21-11d0-97e7-00c04fc2ad98")
  625. IUMSInitialize : public IUnknown
  626. {
  627. public:
  628. virtual HRESULT STDMETHODCALLTYPE Initialize(
  629. /* [in] */ void *pUMS) = 0;
  630. };
  631. #else /* C style interface */
  632. typedef struct IUMSInitializeVtbl
  633. {
  634. BEGIN_INTERFACE
  635. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  636. IUMSInitialize * This,
  637. /* [in] */ REFIID riid,
  638. /* [annotation][iid_is][out] */
  639. __RPC__deref_out void **ppvObject);
  640. ULONG ( STDMETHODCALLTYPE *AddRef )(
  641. IUMSInitialize * This);
  642. ULONG ( STDMETHODCALLTYPE *Release )(
  643. IUMSInitialize * This);
  644. HRESULT ( STDMETHODCALLTYPE *Initialize )(
  645. IUMSInitialize * This,
  646. /* [in] */ void *pUMS);
  647. END_INTERFACE
  648. } IUMSInitializeVtbl;
  649. interface IUMSInitialize
  650. {
  651. CONST_VTBL struct IUMSInitializeVtbl *lpVtbl;
  652. };
  653. #ifdef COBJMACROS
  654. #define IUMSInitialize_QueryInterface(This,riid,ppvObject) \
  655. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  656. #define IUMSInitialize_AddRef(This) \
  657. ( (This)->lpVtbl -> AddRef(This) )
  658. #define IUMSInitialize_Release(This) \
  659. ( (This)->lpVtbl -> Release(This) )
  660. #define IUMSInitialize_Initialize(This,pUMS) \
  661. ( (This)->lpVtbl -> Initialize(This,pUMS) )
  662. #endif /* COBJMACROS */
  663. #endif /* C style interface */
  664. #endif /* __IUMSInitialize_INTERFACE_DEFINED__ */
  665. /* interface __MIDL_itf_sqlncli_0000_0002 */
  666. /* [local] */
  667. // the structure returned by ISQLServerErrorInfo::GetSQLServerInfo
  668. typedef struct tagSSErrorInfo
  669. {
  670. LPOLESTR pwszMessage;
  671. LPOLESTR pwszServer;
  672. LPOLESTR pwszProcedure;
  673. LONG lNative;
  674. BYTE bState;
  675. BYTE bClass;
  676. WORD wLineNumber;
  677. } SSERRORINFO;
  678. extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0002_v0_0_c_ifspec;
  679. extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0002_v0_0_s_ifspec;
  680. #ifndef __ISQLServerErrorInfo_INTERFACE_DEFINED__
  681. #define __ISQLServerErrorInfo_INTERFACE_DEFINED__
  682. /* interface ISQLServerErrorInfo */
  683. /* [unique][uuid][object][local] */
  684. EXTERN_C const IID IID_ISQLServerErrorInfo;
  685. #if defined(__cplusplus) && !defined(CINTERFACE)
  686. MIDL_INTERFACE("5CF4CA12-EF21-11d0-97E7-00C04FC2AD98")
  687. ISQLServerErrorInfo : public IUnknown
  688. {
  689. public:
  690. virtual HRESULT STDMETHODCALLTYPE GetErrorInfo(
  691. /* [out] */ SSERRORINFO **ppErrorInfo,
  692. /* [annotation][out] */
  693. __deref_out OLECHAR **ppStringsBuffer) = 0;
  694. };
  695. #else /* C style interface */
  696. typedef struct ISQLServerErrorInfoVtbl
  697. {
  698. BEGIN_INTERFACE
  699. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  700. ISQLServerErrorInfo * This,
  701. /* [in] */ REFIID riid,
  702. /* [annotation][iid_is][out] */
  703. __RPC__deref_out void **ppvObject);
  704. ULONG ( STDMETHODCALLTYPE *AddRef )(
  705. ISQLServerErrorInfo * This);
  706. ULONG ( STDMETHODCALLTYPE *Release )(
  707. ISQLServerErrorInfo * This);
  708. HRESULT ( STDMETHODCALLTYPE *GetErrorInfo )(
  709. ISQLServerErrorInfo * This,
  710. /* [out] */ SSERRORINFO **ppErrorInfo,
  711. /* [annotation][out] */
  712. __deref_out OLECHAR **ppStringsBuffer);
  713. END_INTERFACE
  714. } ISQLServerErrorInfoVtbl;
  715. interface ISQLServerErrorInfo
  716. {
  717. CONST_VTBL struct ISQLServerErrorInfoVtbl *lpVtbl;
  718. };
  719. #ifdef COBJMACROS
  720. #define ISQLServerErrorInfo_QueryInterface(This,riid,ppvObject) \
  721. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  722. #define ISQLServerErrorInfo_AddRef(This) \
  723. ( (This)->lpVtbl -> AddRef(This) )
  724. #define ISQLServerErrorInfo_Release(This) \
  725. ( (This)->lpVtbl -> Release(This) )
  726. #define ISQLServerErrorInfo_GetErrorInfo(This,ppErrorInfo,ppStringsBuffer) \
  727. ( (This)->lpVtbl -> GetErrorInfo(This,ppErrorInfo,ppStringsBuffer) )
  728. #endif /* COBJMACROS */
  729. #endif /* C style interface */
  730. #endif /* __ISQLServerErrorInfo_INTERFACE_DEFINED__ */
  731. #ifndef __IRowsetFastLoad_INTERFACE_DEFINED__
  732. #define __IRowsetFastLoad_INTERFACE_DEFINED__
  733. /* interface IRowsetFastLoad */
  734. /* [unique][uuid][object][local] */
  735. EXTERN_C const IID IID_IRowsetFastLoad;
  736. #if defined(__cplusplus) && !defined(CINTERFACE)
  737. MIDL_INTERFACE("5CF4CA13-EF21-11d0-97E7-00C04FC2AD98")
  738. IRowsetFastLoad : public IUnknown
  739. {
  740. public:
  741. virtual HRESULT STDMETHODCALLTYPE InsertRow(
  742. /* [in] */ HACCESSOR hAccessor,
  743. /* [in] */ void *pData) = 0;
  744. virtual HRESULT STDMETHODCALLTYPE Commit(
  745. /* [in] */ BOOL fDone) = 0;
  746. };
  747. #else /* C style interface */
  748. typedef struct IRowsetFastLoadVtbl
  749. {
  750. BEGIN_INTERFACE
  751. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  752. IRowsetFastLoad * This,
  753. /* [in] */ REFIID riid,
  754. /* [annotation][iid_is][out] */
  755. __RPC__deref_out void **ppvObject);
  756. ULONG ( STDMETHODCALLTYPE *AddRef )(
  757. IRowsetFastLoad * This);
  758. ULONG ( STDMETHODCALLTYPE *Release )(
  759. IRowsetFastLoad * This);
  760. HRESULT ( STDMETHODCALLTYPE *InsertRow )(
  761. IRowsetFastLoad * This,
  762. /* [in] */ HACCESSOR hAccessor,
  763. /* [in] */ void *pData);
  764. HRESULT ( STDMETHODCALLTYPE *Commit )(
  765. IRowsetFastLoad * This,
  766. /* [in] */ BOOL fDone);
  767. END_INTERFACE
  768. } IRowsetFastLoadVtbl;
  769. interface IRowsetFastLoad
  770. {
  771. CONST_VTBL struct IRowsetFastLoadVtbl *lpVtbl;
  772. };
  773. #ifdef COBJMACROS
  774. #define IRowsetFastLoad_QueryInterface(This,riid,ppvObject) \
  775. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  776. #define IRowsetFastLoad_AddRef(This) \
  777. ( (This)->lpVtbl -> AddRef(This) )
  778. #define IRowsetFastLoad_Release(This) \
  779. ( (This)->lpVtbl -> Release(This) )
  780. #define IRowsetFastLoad_InsertRow(This,hAccessor,pData) \
  781. ( (This)->lpVtbl -> InsertRow(This,hAccessor,pData) )
  782. #define IRowsetFastLoad_Commit(This,fDone) \
  783. ( (This)->lpVtbl -> Commit(This,fDone) )
  784. #endif /* COBJMACROS */
  785. #endif /* C style interface */
  786. #endif /* __IRowsetFastLoad_INTERFACE_DEFINED__ */
  787. /* interface __MIDL_itf_sqlncli_0000_0004 */
  788. /* [local] */
  789. #include <pshpack8.h> // 8-byte structure packing
  790. typedef struct tagDBTIME2
  791. {
  792. USHORT hour;
  793. USHORT minute;
  794. USHORT second;
  795. ULONG fraction;
  796. } DBTIME2;
  797. typedef struct tagDBTIMESTAMPOFFSET
  798. {
  799. SHORT year;
  800. USHORT month;
  801. USHORT day;
  802. USHORT hour;
  803. USHORT minute;
  804. USHORT second;
  805. ULONG fraction;
  806. SHORT timezone_hour;
  807. SHORT timezone_minute;
  808. } DBTIMESTAMPOFFSET;
  809. #include <poppack.h> // restore original structure packing
  810. struct SSVARIANT
  811. {
  812. SSVARTYPE vt;
  813. DWORD dwReserved1;
  814. DWORD dwReserved2;
  815. union
  816. {
  817. BYTE bTinyIntVal;
  818. SHORT sShortIntVal;
  819. LONG lIntVal;
  820. LONGLONG llBigIntVal;
  821. FLOAT fltRealVal;
  822. DOUBLE dblFloatVal;
  823. CY cyMoneyVal;
  824. VARIANT_BOOL fBitVal;
  825. BYTE rgbGuidVal[ 16 ];
  826. DB_NUMERIC numNumericVal;
  827. DBDATE dDateVal;
  828. DBTIMESTAMP tsDateTimeVal;
  829. struct _Time2Val
  830. {
  831. DBTIME2 tTime2Val;
  832. BYTE bScale;
  833. } Time2Val;
  834. struct _DateTimeVal
  835. {
  836. DBTIMESTAMP tsDateTimeVal;
  837. BYTE bScale;
  838. } DateTimeVal;
  839. struct _DateTimeOffsetVal
  840. {
  841. DBTIMESTAMPOFFSET tsoDateTimeOffsetVal;
  842. BYTE bScale;
  843. } DateTimeOffsetVal;
  844. struct _NCharVal
  845. {
  846. SHORT sActualLength;
  847. SHORT sMaxLength;
  848. WCHAR *pwchNCharVal;
  849. BYTE rgbReserved[ 5 ];
  850. DWORD dwReserved;
  851. WCHAR *pwchReserved;
  852. } NCharVal;
  853. struct _CharVal
  854. {
  855. SHORT sActualLength;
  856. SHORT sMaxLength;
  857. CHAR *pchCharVal;
  858. BYTE rgbReserved[ 5 ];
  859. DWORD dwReserved;
  860. WCHAR *pwchReserved;
  861. } CharVal;
  862. struct _BinaryVal
  863. {
  864. SHORT sActualLength;
  865. SHORT sMaxLength;
  866. BYTE *prgbBinaryVal;
  867. DWORD dwReserved;
  868. } BinaryVal;
  869. struct _UnknownType
  870. {
  871. DWORD dwActualLength;
  872. BYTE rgMetadata[ 16 ];
  873. BYTE *pUnknownData;
  874. } UnknownType;
  875. struct _BLOBType
  876. {
  877. DBOBJECT dbobj;
  878. IUnknown *pUnk;
  879. } BLOBType;
  880. } ;
  881. } ;
  882. typedef DWORD LOCKMODE;
  883. enum LOCKMODEENUM
  884. { LOCKMODE_INVALID = 0,
  885. LOCKMODE_EXCLUSIVE = ( LOCKMODE_INVALID + 1 ) ,
  886. LOCKMODE_SHARED = ( LOCKMODE_EXCLUSIVE + 1 )
  887. } ;
  888. extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0004_v0_0_c_ifspec;
  889. extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0004_v0_0_s_ifspec;
  890. #ifndef __ISchemaLock_INTERFACE_DEFINED__
  891. #define __ISchemaLock_INTERFACE_DEFINED__
  892. /* interface ISchemaLock */
  893. /* [unique][uuid][object][local] */
  894. EXTERN_C const IID IID_ISchemaLock;
  895. #if defined(__cplusplus) && !defined(CINTERFACE)
  896. MIDL_INTERFACE("4C2389FB-2511-11d4-B258-00C04F7971CE")
  897. ISchemaLock : public IUnknown
  898. {
  899. public:
  900. virtual HRESULT STDMETHODCALLTYPE GetSchemaLock(
  901. /* [in] */ DBID *pTableID,
  902. /* [in] */ LOCKMODE lmMode,
  903. /* [out] */ HANDLE *phLockHandle,
  904. /* [out] */ ULONGLONG *pTableVersion) = 0;
  905. virtual HRESULT STDMETHODCALLTYPE ReleaseSchemaLock(
  906. /* [in] */ HANDLE hLockHandle) = 0;
  907. };
  908. #else /* C style interface */
  909. typedef struct ISchemaLockVtbl
  910. {
  911. BEGIN_INTERFACE
  912. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  913. ISchemaLock * This,
  914. /* [in] */ REFIID riid,
  915. /* [annotation][iid_is][out] */
  916. __RPC__deref_out void **ppvObject);
  917. ULONG ( STDMETHODCALLTYPE *AddRef )(
  918. ISchemaLock * This);
  919. ULONG ( STDMETHODCALLTYPE *Release )(
  920. ISchemaLock * This);
  921. HRESULT ( STDMETHODCALLTYPE *GetSchemaLock )(
  922. ISchemaLock * This,
  923. /* [in] */ DBID *pTableID,
  924. /* [in] */ LOCKMODE lmMode,
  925. /* [out] */ HANDLE *phLockHandle,
  926. /* [out] */ ULONGLONG *pTableVersion);
  927. HRESULT ( STDMETHODCALLTYPE *ReleaseSchemaLock )(
  928. ISchemaLock * This,
  929. /* [in] */ HANDLE hLockHandle);
  930. END_INTERFACE
  931. } ISchemaLockVtbl;
  932. interface ISchemaLock
  933. {
  934. CONST_VTBL struct ISchemaLockVtbl *lpVtbl;
  935. };
  936. #ifdef COBJMACROS
  937. #define ISchemaLock_QueryInterface(This,riid,ppvObject) \
  938. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  939. #define ISchemaLock_AddRef(This) \
  940. ( (This)->lpVtbl -> AddRef(This) )
  941. #define ISchemaLock_Release(This) \
  942. ( (This)->lpVtbl -> Release(This) )
  943. #define ISchemaLock_GetSchemaLock(This,pTableID,lmMode,phLockHandle,pTableVersion) \
  944. ( (This)->lpVtbl -> GetSchemaLock(This,pTableID,lmMode,phLockHandle,pTableVersion) )
  945. #define ISchemaLock_ReleaseSchemaLock(This,hLockHandle) \
  946. ( (This)->lpVtbl -> ReleaseSchemaLock(This,hLockHandle) )
  947. #endif /* COBJMACROS */
  948. #endif /* C style interface */
  949. #endif /* __ISchemaLock_INTERFACE_DEFINED__ */
  950. #ifndef __IBCPSession_INTERFACE_DEFINED__
  951. #define __IBCPSession_INTERFACE_DEFINED__
  952. /* interface IBCPSession */
  953. /* [unique][uuid][object][local] */
  954. EXTERN_C const IID IID_IBCPSession;
  955. #if defined(__cplusplus) && !defined(CINTERFACE)
  956. MIDL_INTERFACE("88352D80-42D1-42f0-A170-AB0F8B45B939")
  957. IBCPSession : public IUnknown
  958. {
  959. public:
  960. virtual HRESULT STDMETHODCALLTYPE BCPColFmt(
  961. /* [in] */ DBORDINAL idxUserDataCol,
  962. /* [in] */ int eUserDataType,
  963. /* [in] */ int cbIndicator,
  964. /* [in] */ int cbUserData,
  965. /* [size_is][in] */ BYTE *pbUserDataTerm,
  966. /* [in] */ int cbUserDataTerm,
  967. /* [in] */ DBORDINAL idxServerCol) = 0;
  968. virtual HRESULT STDMETHODCALLTYPE BCPColumns(
  969. /* [in] */ DBCOUNTITEM nColumns) = 0;
  970. virtual HRESULT STDMETHODCALLTYPE BCPControl(
  971. /* [in] */ int eOption,
  972. /* [in] */ void *iValue) = 0;
  973. virtual HRESULT STDMETHODCALLTYPE BCPDone( void) = 0;
  974. virtual HRESULT STDMETHODCALLTYPE BCPExec(
  975. /* [out] */ DBROWCOUNT *pRowsCopied) = 0;
  976. virtual HRESULT STDMETHODCALLTYPE BCPInit(
  977. /* [string][in] */ const wchar_t *pwszTable,
  978. /* [string][in] */ const wchar_t *pwszDataFile,
  979. /* [string][in] */ const wchar_t *pwszErrorFile,
  980. /* [in] */ int eDirection) = 0;
  981. virtual HRESULT STDMETHODCALLTYPE BCPReadFmt(
  982. /* [string][in] */ const wchar_t *pwszFormatFile) = 0;
  983. virtual HRESULT STDMETHODCALLTYPE BCPWriteFmt(
  984. /* [string][in] */ const wchar_t *pwszFormatFile) = 0;
  985. };
  986. #else /* C style interface */
  987. typedef struct IBCPSessionVtbl
  988. {
  989. BEGIN_INTERFACE
  990. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  991. IBCPSession * This,
  992. /* [in] */ REFIID riid,
  993. /* [annotation][iid_is][out] */
  994. __RPC__deref_out void **ppvObject);
  995. ULONG ( STDMETHODCALLTYPE *AddRef )(
  996. IBCPSession * This);
  997. ULONG ( STDMETHODCALLTYPE *Release )(
  998. IBCPSession * This);
  999. HRESULT ( STDMETHODCALLTYPE *BCPColFmt )(
  1000. IBCPSession * This,
  1001. /* [in] */ DBORDINAL idxUserDataCol,
  1002. /* [in] */ int eUserDataType,
  1003. /* [in] */ int cbIndicator,
  1004. /* [in] */ int cbUserData,
  1005. /* [size_is][in] */ BYTE *pbUserDataTerm,
  1006. /* [in] */ int cbUserDataTerm,
  1007. /* [in] */ DBORDINAL idxServerCol);
  1008. HRESULT ( STDMETHODCALLTYPE *BCPColumns )(
  1009. IBCPSession * This,
  1010. /* [in] */ DBCOUNTITEM nColumns);
  1011. HRESULT ( STDMETHODCALLTYPE *BCPControl )(
  1012. IBCPSession * This,
  1013. /* [in] */ int eOption,
  1014. /* [in] */ void *iValue);
  1015. HRESULT ( STDMETHODCALLTYPE *BCPDone )(
  1016. IBCPSession * This);
  1017. HRESULT ( STDMETHODCALLTYPE *BCPExec )(
  1018. IBCPSession * This,
  1019. /* [out] */ DBROWCOUNT *pRowsCopied);
  1020. HRESULT ( STDMETHODCALLTYPE *BCPInit )(
  1021. IBCPSession * This,
  1022. /* [string][in] */ const wchar_t *pwszTable,
  1023. /* [string][in] */ const wchar_t *pwszDataFile,
  1024. /* [string][in] */ const wchar_t *pwszErrorFile,
  1025. /* [in] */ int eDirection);
  1026. HRESULT ( STDMETHODCALLTYPE *BCPReadFmt )(
  1027. IBCPSession * This,
  1028. /* [string][in] */ const wchar_t *pwszFormatFile);
  1029. HRESULT ( STDMETHODCALLTYPE *BCPWriteFmt )(
  1030. IBCPSession * This,
  1031. /* [string][in] */ const wchar_t *pwszFormatFile);
  1032. END_INTERFACE
  1033. } IBCPSessionVtbl;
  1034. interface IBCPSession
  1035. {
  1036. CONST_VTBL struct IBCPSessionVtbl *lpVtbl;
  1037. };
  1038. #ifdef COBJMACROS
  1039. #define IBCPSession_QueryInterface(This,riid,ppvObject) \
  1040. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  1041. #define IBCPSession_AddRef(This) \
  1042. ( (This)->lpVtbl -> AddRef(This) )
  1043. #define IBCPSession_Release(This) \
  1044. ( (This)->lpVtbl -> Release(This) )
  1045. #define IBCPSession_BCPColFmt(This,idxUserDataCol,eUserDataType,cbIndicator,cbUserData,pbUserDataTerm,cbUserDataTerm,idxServerCol) \
  1046. ( (This)->lpVtbl -> BCPColFmt(This,idxUserDataCol,eUserDataType,cbIndicator,cbUserData,pbUserDataTerm,cbUserDataTerm,idxServerCol) )
  1047. #define IBCPSession_BCPColumns(This,nColumns) \
  1048. ( (This)->lpVtbl -> BCPColumns(This,nColumns) )
  1049. #define IBCPSession_BCPControl(This,eOption,iValue) \
  1050. ( (This)->lpVtbl -> BCPControl(This,eOption,iValue) )
  1051. #define IBCPSession_BCPDone(This) \
  1052. ( (This)->lpVtbl -> BCPDone(This) )
  1053. #define IBCPSession_BCPExec(This,pRowsCopied) \
  1054. ( (This)->lpVtbl -> BCPExec(This,pRowsCopied) )
  1055. #define IBCPSession_BCPInit(This,pwszTable,pwszDataFile,pwszErrorFile,eDirection) \
  1056. ( (This)->lpVtbl -> BCPInit(This,pwszTable,pwszDataFile,pwszErrorFile,eDirection) )
  1057. #define IBCPSession_BCPReadFmt(This,pwszFormatFile) \
  1058. ( (This)->lpVtbl -> BCPReadFmt(This,pwszFormatFile) )
  1059. #define IBCPSession_BCPWriteFmt(This,pwszFormatFile) \
  1060. ( (This)->lpVtbl -> BCPWriteFmt(This,pwszFormatFile) )
  1061. #endif /* COBJMACROS */
  1062. #endif /* C style interface */
  1063. #endif /* __IBCPSession_INTERFACE_DEFINED__ */
  1064. #ifndef __IBCPSession2_INTERFACE_DEFINED__
  1065. #define __IBCPSession2_INTERFACE_DEFINED__
  1066. /* interface IBCPSession2 */
  1067. /* [unique][uuid][object][local] */
  1068. EXTERN_C const IID IID_IBCPSession2;
  1069. #if defined(__cplusplus) && !defined(CINTERFACE)
  1070. MIDL_INTERFACE("AD79D3B6-59DD-46a3-BFC6-E62A65FF3523")
  1071. IBCPSession2 : public IBCPSession
  1072. {
  1073. public:
  1074. virtual HRESULT STDMETHODCALLTYPE BCPSetBulkMode(
  1075. /* [in] */ int property,
  1076. /* [size_is][in] */ void *pField,
  1077. /* [in] */ int cbField,
  1078. /* [size_is][in] */ void *pRow,
  1079. /* [in] */ int cbRow) = 0;
  1080. };
  1081. #else /* C style interface */
  1082. typedef struct IBCPSession2Vtbl
  1083. {
  1084. BEGIN_INTERFACE
  1085. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1086. IBCPSession2 * This,
  1087. /* [in] */ REFIID riid,
  1088. /* [annotation][iid_is][out] */
  1089. __RPC__deref_out void **ppvObject);
  1090. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1091. IBCPSession2 * This);
  1092. ULONG ( STDMETHODCALLTYPE *Release )(
  1093. IBCPSession2 * This);
  1094. HRESULT ( STDMETHODCALLTYPE *BCPColFmt )(
  1095. IBCPSession2 * This,
  1096. /* [in] */ DBORDINAL idxUserDataCol,
  1097. /* [in] */ int eUserDataType,
  1098. /* [in] */ int cbIndicator,
  1099. /* [in] */ int cbUserData,
  1100. /* [size_is][in] */ BYTE *pbUserDataTerm,
  1101. /* [in] */ int cbUserDataTerm,
  1102. /* [in] */ DBORDINAL idxServerCol);
  1103. HRESULT ( STDMETHODCALLTYPE *BCPColumns )(
  1104. IBCPSession2 * This,
  1105. /* [in] */ DBCOUNTITEM nColumns);
  1106. HRESULT ( STDMETHODCALLTYPE *BCPControl )(
  1107. IBCPSession2 * This,
  1108. /* [in] */ int eOption,
  1109. /* [in] */ void *iValue);
  1110. HRESULT ( STDMETHODCALLTYPE *BCPDone )(
  1111. IBCPSession2 * This);
  1112. HRESULT ( STDMETHODCALLTYPE *BCPExec )(
  1113. IBCPSession2 * This,
  1114. /* [out] */ DBROWCOUNT *pRowsCopied);
  1115. HRESULT ( STDMETHODCALLTYPE *BCPInit )(
  1116. IBCPSession2 * This,
  1117. /* [string][in] */ const wchar_t *pwszTable,
  1118. /* [string][in] */ const wchar_t *pwszDataFile,
  1119. /* [string][in] */ const wchar_t *pwszErrorFile,
  1120. /* [in] */ int eDirection);
  1121. HRESULT ( STDMETHODCALLTYPE *BCPReadFmt )(
  1122. IBCPSession2 * This,
  1123. /* [string][in] */ const wchar_t *pwszFormatFile);
  1124. HRESULT ( STDMETHODCALLTYPE *BCPWriteFmt )(
  1125. IBCPSession2 * This,
  1126. /* [string][in] */ const wchar_t *pwszFormatFile);
  1127. HRESULT ( STDMETHODCALLTYPE *BCPSetBulkMode )(
  1128. IBCPSession2 * This,
  1129. /* [in] */ int property,
  1130. /* [size_is][in] */ void *pField,
  1131. /* [in] */ int cbField,
  1132. /* [size_is][in] */ void *pRow,
  1133. /* [in] */ int cbRow);
  1134. END_INTERFACE
  1135. } IBCPSession2Vtbl;
  1136. interface IBCPSession2
  1137. {
  1138. CONST_VTBL struct IBCPSession2Vtbl *lpVtbl;
  1139. };
  1140. #ifdef COBJMACROS
  1141. #define IBCPSession2_QueryInterface(This,riid,ppvObject) \
  1142. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  1143. #define IBCPSession2_AddRef(This) \
  1144. ( (This)->lpVtbl -> AddRef(This) )
  1145. #define IBCPSession2_Release(This) \
  1146. ( (This)->lpVtbl -> Release(This) )
  1147. #define IBCPSession2_BCPColFmt(This,idxUserDataCol,eUserDataType,cbIndicator,cbUserData,pbUserDataTerm,cbUserDataTerm,idxServerCol) \
  1148. ( (This)->lpVtbl -> BCPColFmt(This,idxUserDataCol,eUserDataType,cbIndicator,cbUserData,pbUserDataTerm,cbUserDataTerm,idxServerCol) )
  1149. #define IBCPSession2_BCPColumns(This,nColumns) \
  1150. ( (This)->lpVtbl -> BCPColumns(This,nColumns) )
  1151. #define IBCPSession2_BCPControl(This,eOption,iValue) \
  1152. ( (This)->lpVtbl -> BCPControl(This,eOption,iValue) )
  1153. #define IBCPSession2_BCPDone(This) \
  1154. ( (This)->lpVtbl -> BCPDone(This) )
  1155. #define IBCPSession2_BCPExec(This,pRowsCopied) \
  1156. ( (This)->lpVtbl -> BCPExec(This,pRowsCopied) )
  1157. #define IBCPSession2_BCPInit(This,pwszTable,pwszDataFile,pwszErrorFile,eDirection) \
  1158. ( (This)->lpVtbl -> BCPInit(This,pwszTable,pwszDataFile,pwszErrorFile,eDirection) )
  1159. #define IBCPSession2_BCPReadFmt(This,pwszFormatFile) \
  1160. ( (This)->lpVtbl -> BCPReadFmt(This,pwszFormatFile) )
  1161. #define IBCPSession2_BCPWriteFmt(This,pwszFormatFile) \
  1162. ( (This)->lpVtbl -> BCPWriteFmt(This,pwszFormatFile) )
  1163. #define IBCPSession2_BCPSetBulkMode(This,property,pField,cbField,pRow,cbRow) \
  1164. ( (This)->lpVtbl -> BCPSetBulkMode(This,property,pField,cbField,pRow,cbRow) )
  1165. #endif /* COBJMACROS */
  1166. #endif /* C style interface */
  1167. #endif /* __IBCPSession2_INTERFACE_DEFINED__ */
  1168. /* interface __MIDL_itf_sqlncli_0000_0007 */
  1169. /* [local] */
  1170. #endif //_SQLOLEDB_H_
  1171. #define ISOLATIONLEVEL_SNAPSHOT ((ISOLATIONLEVEL)(0x01000000)) // Changes made in other transactions can not be seen.
  1172. #define DBPROPVAL_TI_SNAPSHOT