Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

867 lines
26 KiB

  1. //--------------------------------------------------------------------
  2. // Microsoft OLE DB Provider for SQL Server
  3. // (C) Copyright 1997 By Microsoft Corporation.
  4. //
  5. // @doc
  6. //
  7. // @module SQLOLEDB.H | Provider Specific definitions
  8. //
  9. //--------------------------------------------------------------------
  10. #ifndef _SQLOLEDB_H_
  11. #define _SQLOLEDB_H_
  12. #ifndef __oledb_h__
  13. #include "oledb.h"
  14. #endif /* __oledb_h__ */
  15. //----------------------------------------------------------------------------
  16. // Provider-specific Class Ids
  17. #ifdef DBINITCONSTANTS
  18. // Provider CLSID {0C7FF16C-38E3-11d0-97AB-00C04FC2AD98}
  19. extern const GUID CLSID_SQLOLEDB = {0xc7ff16cL,0x38e3,0x11d0,{0x97,0xab,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
  20. // Error Lookup CLSID {C0932C62-38E5-11d0-97AB-00C04FC2AD98}
  21. extern const GUID CLSID_SQLOLEDB_ERROR = {0xc0932c62L,0x38e5,0x11d0,{0x97,0xab,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
  22. // Enumerator CLSID {DFA22B8E-E68D-11d0-97E4-00C04FC2AD98}
  23. extern const GUID CLSID_SQLOLEDB_ENUMERATOR = {0xdfa22b8eL,0xe68d,0x11d0,{0x97,0xe4,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
  24. #else // !DBINITCONSTANTS
  25. extern const GUID CLSID_SQLOLEDB;
  26. extern const GUID CLSID_SQLOLEDB_ERROR;
  27. extern const GUID CLSID_SQLOLEDB_ENUMERATOR;
  28. #endif // DBINITCONSTANTS
  29. //----------------------------------------------------------------------------
  30. // Provider-specific Interface Ids
  31. #ifdef DBINITCONSTANTS
  32. extern const GUID IID_ISQLServerErrorInfo = {0x5cf4ca12,0xef21,0x11d0,{0x97,0xe7,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
  33. extern const GUID IID_IRowsetFastLoad = {0x5cf4ca13,0xef21,0x11d0,{0x97,0xe7,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
  34. extern const GUID IID_IUMSInitialize = {0x5cf4ca14,0xef21,0x11d0,{0x97,0xe7,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
  35. // {4C2389FB-2511-11d4-B258-00C04F7971CE}
  36. extern const GUID IID_ISchemaLock = {0x4c2389fb,0x2511,0x11d4,{0xb2,0x58,0x0,0xc0,0x4f,0x79,0x71,0xce}};
  37. extern const GUID DBGUID_MSSQLXML = {0x5d531cb2L,0xe6ed,0x11d2,{0xb2,0x52,0x00,0xc0,0x4f,0x68,0x1b,0x71}};
  38. extern const GUID DBGUID_XPATH = {0xec2a4293L,0xe898,0x11d2,{0xb1,0xb7,0x00,0xc0,0x4f,0x68,0x0c,0x56}};
  39. // This IID_ICommandStream definition is available in later versions of
  40. // UUID.LIB. It is also already an extern defined in oledb.h.
  41. //
  42. #if _MSC_VER < 1300
  43. extern const IID IID_ICommandStream = {0x0c733abfL,0x2a1c,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  44. #endif // _MSC_VER
  45. extern const IID IID_ISQLXMLHelper = {0xd22a7678L,0xf860,0x40cd,{0xa5,0x67,0x15,0x63,0xde,0xb4,0x6d,0x49}};
  46. #else // !DBINITCONSTANTS
  47. extern const GUID IID_ISQLServerErrorInfo;
  48. extern const GUID IID_IRowsetFastLoad;
  49. extern const GUID IID_IUMSInitialize;
  50. extern const GUID IID_ISchemaLock;
  51. extern const GUID DBGUID_MSSQLXML;
  52. extern const GUID DBGUID_XPATH;
  53. extern const IID IID_ISQLXMLHelper;
  54. #endif // DBINITCONSTANTS
  55. //----------------------------------------------------------------------------
  56. // Provider-specific schema rowsets
  57. #ifdef DBINITCONSTANTS
  58. extern const GUID DBSCHEMA_LINKEDSERVERS = {0x9093caf4,0x2eac,0x11d1,{0x98,0x9,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
  59. #else // !DBINITCONSTANTS
  60. extern const GUID DBSCHEMA_LINKEDSERVERS;
  61. #endif // DBINITCONSTANTS
  62. #define CRESTRICTIONS_DBSCHEMA_LINKEDSERVERS 1
  63. //----------------------------------------------------------------------------
  64. // Provider-specific property sets
  65. #ifdef DBINITCONSTANTS
  66. extern const GUID DBPROPSET_SQLSERVERDATASOURCE = {0x28efaee4,0x2d2c,0x11d1,{0x98,0x7,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
  67. extern const GUID DBPROPSET_SQLSERVERDATASOURCEINFO = {0xdf10cb94,0x35f6,0x11d2,{0x9c,0x54,0x0,0xc0,0x4f,0x79,0x71,0xd3}};
  68. extern const GUID DBPROPSET_SQLSERVERDBINIT = {0x5cf4ca10,0xef21,0x11d0,{0x97,0xe7,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
  69. extern const GUID DBPROPSET_SQLSERVERROWSET = {0x5cf4ca11,0xef21,0x11d0,{0x97,0xe7,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
  70. extern const GUID DBPROPSET_SQLSERVERSESSION = {0x28efaee5,0x2d2c,0x11d1,{0x98,0x7,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
  71. extern const GUID DBPROPSET_SQLSERVERCOLUMN = {0x3b63fb5e,0x3fbb,0x11d3,{0x9f,0x29,0x0,0xc0,0x4f,0x8e,0xe9,0xdc}};
  72. extern const GUID DBPROPSET_SQLSERVERSTREAM = {0x9f79c073,0x8a6d,0x4bca,{0xa8,0xa8,0xc9,0xb7,0x9a,0x9b,0x96,0x2d}};
  73. #else // !DBINITCONSTANTS
  74. extern const GUID DBPROPSET_SQLSERVERDATASOURCE;
  75. extern const GUID DBPROPSET_SQLSERVERDATASOURCEINFO;
  76. extern const GUID DBPROPSET_SQLSERVERDBINIT;
  77. extern const GUID DBPROPSET_SQLSERVERROWSET;
  78. extern const GUID DBPROPSET_SQLSERVERSESSION;
  79. extern const GUID DBPROPSET_SQLSERVERCOLUMN;
  80. extern const GUID DBPROPSET_SQLSERVERSTREAM;
  81. #endif // DBINITCONSTANTS
  82. //This is a guid candidate : ;
  83. //----------------------------------------------------------------------------
  84. // Provider-specific columns for IColumnsRowset
  85. #ifdef DBINITCONSTANTS
  86. extern const DBID DBCOLUMN_SS_COMPFLAGS = {{0x627bd890,0xed54,0x11d2,{0xb9,0x94,0x0,0xc0,0x4f,0x8c,0xa8,0x2c}}, DBKIND_GUID_PROPID, (LPOLESTR)100};
  87. extern const DBID DBCOLUMN_SS_SORTID = {{0x627bd890,0xed54,0x11d2,{0xb9,0x94,0x0,0xc0,0x4f,0x8c,0xa8,0x2c}}, DBKIND_GUID_PROPID, (LPOLESTR)101};
  88. extern const DBID DBCOLUMN_BASETABLEINSTANCE = {{0x627bd890,0xed54,0x11d2,{0xb9,0x94,0x0,0xc0,0x4f,0x8c,0xa8,0x2c}}, DBKIND_GUID_PROPID, (LPOLESTR)102};
  89. extern const DBID DBCOLUMN_SS_TDSCOLLATION = {{0x627bd890,0xed54,0x11d2,{0xb9,0x94,0x0,0xc0,0x4f,0x8c,0xa8,0x2c}}, DBKIND_GUID_PROPID, (LPOLESTR)103};
  90. #else // !DBINITCONSTANTS
  91. extern const DBID DBCOLUMN_SS_COMPFLAGS;
  92. extern const DBID DBCOLUMN_SS_SORTID;
  93. extern const DBID DBCOLUMN_BASETABLEINSTANCE;
  94. extern const DBID DBCOLUMN_SS_TDSCOLLATION;
  95. #endif // DBINITCONSTANTS
  96. //----------------------------------------------------------------------------
  97. // PropIds for DBPROP_INIT_GENERALTIMEOUT
  98. #if ( OLEDBVER == 0x0210 )
  99. #define DBPROP_INIT_GENERALTIMEOUT 0x11cL
  100. #endif
  101. //----------------------------------------------------------------------------
  102. // PropIds for DBPROPSET_SQLSERVERDATASOURCE
  103. #define SSPROP_ENABLEFASTLOAD 2
  104. //----------------------------------------------------------------------------
  105. // PropIds for DBPROPSET_SQLSERVERDATASOURCEINFO
  106. #define SSPROP_UNICODELCID 2
  107. #define SSPROP_UNICODECOMPARISONSTYLE 3
  108. #define SSPROP_COLUMNLEVELCOLLATION 4
  109. #define SSPROP_CHARACTERSET 5
  110. #define SSPROP_SORTORDER 6
  111. #define SSPROP_CURRENTCOLLATION 7
  112. //----------------------------------------------------------------------------
  113. // PropIds for DBPROPSET_SQLSERVERDBINIT
  114. #define SSPROP_INIT_CURRENTLANGUAGE 4
  115. #define SSPROP_INIT_NETWORKADDRESS 5
  116. #define SSPROP_INIT_NETWORKLIBRARY 6
  117. #define SSPROP_INIT_USEPROCFORPREP 7
  118. #define SSPROP_INIT_AUTOTRANSLATE 8
  119. #define SSPROP_INIT_PACKETSIZE 9
  120. #define SSPROP_INIT_APPNAME 10
  121. #define SSPROP_INIT_WSID 11
  122. #define SSPROP_INIT_FILENAME 12
  123. #define SSPROP_INIT_ENCRYPT 13
  124. #define SSPROP_AUTH_REPL_SERVER_NAME 14
  125. #define SSPROP_INIT_TAGCOLUMNCOLLATION 15
  126. //-----------------------------------------------------------------------------
  127. // Values for SSPROP_USEPROCFORPREP
  128. #define SSPROPVAL_USEPROCFORPREP_OFF 0
  129. #define SSPROPVAL_USEPROCFORPREP_ON 1
  130. #define SSPROPVAL_USEPROCFORPREP_ON_DROP 2
  131. //----------------------------------------------------------------------------
  132. // PropIds for DBPROPSET_SQLSERVERSESSION
  133. #define SSPROP_QUOTEDCATALOGNAMES 2
  134. #define SSPROP_ALLOWNATIVEVARIANT 3
  135. #define SSPROP_SQLXMLXPROGID 4
  136. //----------------------------------------------------------------------------
  137. // PropIds for DBPROPSET_SQLSERVERROWSET
  138. #define SSPROP_MAXBLOBLENGTH 8
  139. #define SSPROP_FASTLOADOPTIONS 9
  140. #define SSPROP_FASTLOADKEEPNULLS 10
  141. #define SSPROP_FASTLOADKEEPIDENTITY 11
  142. #define SSPROP_CURSORAUTOFETCH 12
  143. #define SSPROP_DEFERPREPARE 13
  144. #define SSPROP_IRowsetFastLoad 14
  145. //----------------------------------------------------------------------------
  146. // PropIds for DBPROPSET_SQLSERVERCOLUMN
  147. #define SSPROP_COL_COLLATIONNAME 14
  148. //----------------------------------------------------------------------------
  149. // PropIds for DBPROPSET_SQLSERVERSTREAM
  150. #define SSPROP_STREAM_MAPPINGSCHEMA 15
  151. #define SSPROP_STREAM_XSL 16
  152. #define SSPROP_STREAM_BASEPATH 17
  153. #define SSPROP_STREAM_COMMANDTYPE 18
  154. #define SSPROP_STREAM_XMLROOT 19
  155. #define SSPROP_STREAM_FLAGS 20
  156. #define SSPROP_STREAM_CONTENTTYPE 23
  157. //----------------------------------------------------------------------------
  158. // Possible values for SSPROP_STREAM_FLAGS
  159. #define STREAM_FLAGS_DISALLOW_URL 0x00000001
  160. #define STREAM_FLAGS_DISALLOW_ABSOLUTE_PATH 0x00000002
  161. #define STREAM_FLAGS_DISALLOW_QUERY 0x00000004
  162. #define STREAM_FLAGS_DONTCACHEMAPPINGSCHEMA 0x00000008
  163. #define STREAM_FLAGS_DONTCACHETEMPLATE 0x00000010
  164. #define STREAM_FLAGS_DONTCACHEXSL 0x00000020
  165. #define STREAM_FLAGS_DISALLOW_UPDATEGRAMS 0x00000040
  166. #define STREAM_FLAGS_RESERVED 0xffff0000
  167. // Values for SSPROPVAL_COMMANDTYPE
  168. #define SSPROPVAL_COMMANDTYPE_REGULAR 21
  169. #define SSPROPVAL_COMMANDTYPE_BULKLOAD 22
  170. //-------------------------------------------------------------------
  171. // Variant Access macros, similar to ole automation.
  172. //-------------------------------------------------------------------
  173. #define V_SS_VT(X) ((X)->vt)
  174. #define V_SS_UNION(X, Y) ((X)->Y)
  175. #define V_SS_UI1(X) V_SS_UNION(X, bTinyIntVal)
  176. #define V_SS_I2(X) V_SS_UNION(X, sShortIntVal)
  177. #define V_SS_I4(X) V_SS_UNION(X, lIntVal)
  178. #define V_SS_I8(X) V_SS_UNION(X, llBigIntVal)
  179. #define V_SS_R4(X) V_SS_UNION(X, fltRealVal)
  180. #define V_SS_R8(X) V_SS_UNION(X, dblFloatVal)
  181. #define V_SS_UI4(X) V_SS_UNION(X, ulVal)
  182. #define V_SS_MONEY(X) V_SS_UNION(X, cyMoneyVal)
  183. #define V_SS_SMALLMONEY(X) V_SS_UNION(X, cyMoneyVal)
  184. #define V_SS_WSTRING(X) V_SS_UNION(X, NCharVal)
  185. #define V_SS_WVARSTRING(X) V_SS_UNION(X, NCharVal)
  186. #define V_SS_STRING(X) V_SS_UNION(X, CharVal)
  187. #define V_SS_VARSTRING(X) V_SS_UNION(X, CharVal)
  188. #define V_SS_BIT(X) V_SS_UNION(X, fBitVal)
  189. #define V_SS_GUID(X) V_SS_UNION(X, rgbGuidVal)
  190. #define V_SS_NUMERIC(X) V_SS_UNION(X, numNumericVal)
  191. #define V_SS_DECIMAL(X) V_SS_UNION(X, numNumericVal)
  192. #define V_SS_BINARY(X) V_SS_UNION(X, BinaryVal)
  193. #define V_SS_VARBINARY(X) V_SS_UNION(X, BinaryVal)
  194. #define V_SS_DATETIME(X) V_SS_UNION(X, tsDateTimeVal)
  195. #define V_SS_SMALLDATETIME(X) V_SS_UNION(X, tsDateTimeVal)
  196. #define V_SS_UNKNOWN(X) V_SS_UNION(X, UnknownType)
  197. //For next release.
  198. #define V_SS_IMAGE(X) V_SS_UNION(X, ImageVal)
  199. #define V_SS_TEXT(X) V_SS_UNION(X, TextVal)
  200. #define V_SS_NTEXT(X) V_SS_UNION(X, NTextVal)
  201. //-------------------------------------------------------------------
  202. // define SQL Server Spefific Variant Type
  203. //-------------------------------------------------------------------
  204. #define DBTYPE_SQLVARIANT 144
  205. enum SQLVARENUM
  206. {
  207. VT_SS_EMPTY = DBTYPE_EMPTY,
  208. VT_SS_NULL = DBTYPE_NULL,
  209. VT_SS_UI1 = DBTYPE_UI1,
  210. VT_SS_I2 = DBTYPE_I2,
  211. VT_SS_I4 = DBTYPE_I4,
  212. VT_SS_I8 = DBTYPE_I8,
  213. //Floats
  214. VT_SS_R4 = DBTYPE_R4,
  215. VT_SS_R8 = DBTYPE_R8,
  216. //Money
  217. VT_SS_MONEY = DBTYPE_CY,
  218. VT_SS_SMALLMONEY = 200,
  219. //Strings
  220. VT_SS_WSTRING = 201,
  221. VT_SS_WVARSTRING = 202,
  222. VT_SS_STRING =203,
  223. VT_SS_VARSTRING =204,
  224. //Bit
  225. VT_SS_BIT =DBTYPE_BOOL,
  226. //Guid
  227. VT_SS_GUID =DBTYPE_GUID,
  228. //Exact precision
  229. VT_SS_NUMERIC =DBTYPE_NUMERIC,
  230. VT_SS_DECIMAL =205,
  231. //Datetime
  232. VT_SS_DATETIME = DBTYPE_DBTIMESTAMP,
  233. VT_SS_SMALLDATETIME =206,
  234. //Binary
  235. VT_SS_BINARY =207,
  236. VT_SS_VARBINARY =208,
  237. //Future
  238. VT_SS_UNKNOWN = 209,
  239. };
  240. typedef unsigned short SSVARTYPE;
  241. //Hungarian : ssv (Sql Server Variant)
  242. struct SSVARIANT
  243. {
  244. SSVARTYPE vt;
  245. DWORD dwReserved1;
  246. DWORD dwReserved2;
  247. union
  248. {
  249. BYTE bTinyIntVal;
  250. SHORT sShortIntVal;
  251. LONG lIntVal;
  252. LONGLONG llBigIntVal;
  253. FLOAT fltRealVal;
  254. DOUBLE dblFloatVal;
  255. CY cyMoneyVal;
  256. struct _NCharVal
  257. {
  258. SHORT sActualLength;
  259. SHORT sMaxLength;
  260. WCHAR * pwchNCharVal;
  261. BYTE rgbReserved[5];
  262. DWORD dwReserved;
  263. WCHAR * pwchReserved;
  264. } NCharVal;
  265. struct _CharVal
  266. {
  267. SHORT sActualLength;
  268. SHORT sMaxLength;
  269. CHAR * pchCharVal;
  270. BYTE rgbReserved[5];
  271. DWORD dwReserved;
  272. WCHAR * pwchReserved;
  273. } CharVal;
  274. VARIANT_BOOL fBitVal;
  275. BYTE rgbGuidVal [16];
  276. DB_NUMERIC numNumericVal;
  277. struct _BinaryVal
  278. {
  279. SHORT sActualLength;
  280. SHORT sMaxLength;
  281. BYTE * prgbBinaryVal;
  282. DWORD dwReserved;
  283. } BinaryVal;
  284. DBTIMESTAMP tsDateTimeVal;
  285. struct _UnknownType
  286. {
  287. DWORD dwActualLength;
  288. BYTE rgMetadata [16];
  289. BYTE * pUnknownData;
  290. } UnknownType;
  291. struct _BLOBType
  292. {
  293. DBOBJECT dbobj;
  294. IUnknown * pUnk;
  295. } BLOBType;
  296. };
  297. };
  298. #if defined(__cplusplus) && !defined(CINTERFACE)
  299. //-----------------------------------------------------------------
  300. // Class Factory Interface used to initialize pointer to UMS.
  301. //
  302. interface IUMSInitialize : public IUnknown
  303. {
  304. public:
  305. virtual HRESULT STDMETHODCALLTYPE Initialize (VOID * pUMS) = 0;
  306. };
  307. //-----------------------------------------------------------------
  308. // Interface used to communicate with UMS.
  309. //
  310. interface IUMS
  311. {
  312. public:
  313. virtual VOID STDMETHODCALLTYPE SqlUmsSuspend (ULONG ticks) = 0;
  314. virtual VOID STDMETHODCALLTYPE SqlUmsYield (ULONG ticks) = 0;
  315. virtual VOID STDMETHODCALLTYPE SqlUmsSwitchPremptive () = 0;
  316. virtual VOID STDMETHODCALLTYPE SqlUmsSwitchNonPremptive() = 0;
  317. virtual BOOL STDMETHODCALLTYPE SqlUmsFIsPremptive() = 0;
  318. };
  319. #endif
  320. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  321. /* File created by MIDL compiler version 3.03.0110 */
  322. /* at Tue May 09 16:41:59 2000
  323. */
  324. /* Compiler settings for sqloledb.idl:
  325. Os (OptLev=s), W1, Zp8, env=Win32, ms_ext, c_ext
  326. error checks: none
  327. */
  328. //@@MIDL_FILE_HEADING( )
  329. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  330. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  331. #define __REQUIRED_RPCNDR_H_VERSION__ 440
  332. #endif
  333. #include "rpc.h"
  334. #include "rpcndr.h"
  335. #ifndef __RPCNDR_H_VERSION__
  336. #error this stub requires an updated version of <rpcndr.h>
  337. #endif // __RPCNDR_H_VERSION__
  338. #ifndef COM_NO_WINDOWS_H
  339. #include "windows.h"
  340. #include "ole2.h"
  341. #endif /*COM_NO_WINDOWS_H*/
  342. #ifndef __sqloledb_h__
  343. #define __sqloledb_h__
  344. #ifdef __cplusplus
  345. extern "C"{
  346. #endif
  347. /* Forward Declarations */
  348. #ifndef __ISQLServerErrorInfo_FWD_DEFINED__
  349. #define __ISQLServerErrorInfo_FWD_DEFINED__
  350. typedef interface ISQLServerErrorInfo ISQLServerErrorInfo;
  351. #endif /* __ISQLServerErrorInfo_FWD_DEFINED__ */
  352. #ifndef __IRowsetFastLoad_FWD_DEFINED__
  353. #define __IRowsetFastLoad_FWD_DEFINED__
  354. typedef interface IRowsetFastLoad IRowsetFastLoad;
  355. #endif /* __IRowsetFastLoad_FWD_DEFINED__ */
  356. #ifndef __ISchemaLock_FWD_DEFINED__
  357. #define __ISchemaLock_FWD_DEFINED__
  358. typedef interface ISchemaLock ISchemaLock;
  359. #endif /* __ISchemaLock_FWD_DEFINED__ */
  360. /* header files for imported files */
  361. #include "unknwn.h"
  362. void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
  363. void __RPC_USER MIDL_user_free( void __RPC_FAR * );
  364. /****************************************
  365. * Generated header for interface: __MIDL_itf_sqloledb_0000
  366. * at Tue May 09 16:41:59 2000
  367. * using MIDL 3.03.0110
  368. ****************************************/
  369. /* [local] */
  370. // the structure returned by ISQLServerErrorInfo::GetSQLServerInfo
  371. typedef struct tagSSErrorInfo
  372. {
  373. LPOLESTR pwszMessage;
  374. LPOLESTR pwszServer;
  375. LPOLESTR pwszProcedure;
  376. LONG lNative;
  377. BYTE bState;
  378. BYTE bClass;
  379. WORD wLineNumber;
  380. } SSERRORINFO;
  381. extern RPC_IF_HANDLE __MIDL_itf_sqloledb_0000_v0_0_c_ifspec;
  382. extern RPC_IF_HANDLE __MIDL_itf_sqloledb_0000_v0_0_s_ifspec;
  383. #ifndef __ISQLServerErrorInfo_INTERFACE_DEFINED__
  384. #define __ISQLServerErrorInfo_INTERFACE_DEFINED__
  385. /****************************************
  386. * Generated header for interface: ISQLServerErrorInfo
  387. * at Tue May 09 16:41:59 2000
  388. * using MIDL 3.03.0110
  389. ****************************************/
  390. /* [unique][object][local][uuid] */
  391. EXTERN_C const IID IID_ISQLServerErrorInfo;
  392. #if defined(__cplusplus) && !defined(CINTERFACE)
  393. MIDL_INTERFACE("5CF4CA12-EF21-11d0-97E7-00C04FC2AD98")
  394. ISQLServerErrorInfo : public IUnknown
  395. {
  396. public:
  397. virtual HRESULT STDMETHODCALLTYPE GetErrorInfo(
  398. /* [out] */ SSERRORINFO __RPC_FAR *__RPC_FAR *ppErrorInfo,
  399. /* [out] */ OLECHAR __RPC_FAR *__RPC_FAR *ppStringsBuffer) = 0;
  400. };
  401. #else /* C style interface */
  402. typedef struct ISQLServerErrorInfoVtbl
  403. {
  404. BEGIN_INTERFACE
  405. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
  406. ISQLServerErrorInfo __RPC_FAR * This,
  407. /* [in] */ REFIID riid,
  408. /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  409. ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
  410. ISQLServerErrorInfo __RPC_FAR * This);
  411. ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
  412. ISQLServerErrorInfo __RPC_FAR * This);
  413. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetErrorInfo )(
  414. ISQLServerErrorInfo __RPC_FAR * This,
  415. /* [out] */ SSERRORINFO __RPC_FAR *__RPC_FAR *ppErrorInfo,
  416. /* [out] */ OLECHAR __RPC_FAR *__RPC_FAR *ppStringsBuffer);
  417. END_INTERFACE
  418. } ISQLServerErrorInfoVtbl;
  419. interface ISQLServerErrorInfo
  420. {
  421. CONST_VTBL struct ISQLServerErrorInfoVtbl __RPC_FAR *lpVtbl;
  422. };
  423. #ifdef COBJMACROS
  424. #define ISQLServerErrorInfo_QueryInterface(This,riid,ppvObject) \
  425. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  426. #define ISQLServerErrorInfo_AddRef(This) \
  427. (This)->lpVtbl -> AddRef(This)
  428. #define ISQLServerErrorInfo_Release(This) \
  429. (This)->lpVtbl -> Release(This)
  430. #define ISQLServerErrorInfo_GetErrorInfo(This,ppErrorInfo,ppStringsBuffer) \
  431. (This)->lpVtbl -> GetErrorInfo(This,ppErrorInfo,ppStringsBuffer)
  432. #endif /* COBJMACROS */
  433. #endif /* C style interface */
  434. HRESULT STDMETHODCALLTYPE ISQLServerErrorInfo_GetErrorInfo_Proxy(
  435. ISQLServerErrorInfo __RPC_FAR * This,
  436. /* [out] */ SSERRORINFO __RPC_FAR *__RPC_FAR *ppErrorInfo,
  437. /* [out] */ OLECHAR __RPC_FAR *__RPC_FAR *ppStringsBuffer);
  438. void __RPC_STUB ISQLServerErrorInfo_GetErrorInfo_Stub(
  439. IRpcStubBuffer *This,
  440. IRpcChannelBuffer *_pRpcChannelBuffer,
  441. PRPC_MESSAGE _pRpcMessage,
  442. DWORD *_pdwStubPhase);
  443. #endif /* __ISQLServerErrorInfo_INTERFACE_DEFINED__ */
  444. /****************************************
  445. * Generated header for interface: __MIDL_itf_sqloledb_0006
  446. * at Tue May 09 16:41:59 2000
  447. * using MIDL 3.03.0110
  448. ****************************************/
  449. /* [local] */
  450. #ifdef _WIN64
  451. typedef ULONG_PTR HACCESSOR;
  452. #else
  453. typedef ULONG HACCESSOR;
  454. #endif
  455. extern RPC_IF_HANDLE __MIDL_itf_sqloledb_0006_v0_0_c_ifspec;
  456. extern RPC_IF_HANDLE __MIDL_itf_sqloledb_0006_v0_0_s_ifspec;
  457. #ifndef __IRowsetFastLoad_INTERFACE_DEFINED__
  458. #define __IRowsetFastLoad_INTERFACE_DEFINED__
  459. /****************************************
  460. * Generated header for interface: IRowsetFastLoad
  461. * at Tue May 09 16:41:59 2000
  462. * using MIDL 3.03.0110
  463. ****************************************/
  464. /* [unique][object][local][uuid] */
  465. EXTERN_C const IID IID_IRowsetFastLoad;
  466. #if defined(__cplusplus) && !defined(CINTERFACE)
  467. MIDL_INTERFACE("5CF4CA13-EF21-11d0-97E7-00C04FC2AD98")
  468. IRowsetFastLoad : public IUnknown
  469. {
  470. public:
  471. virtual HRESULT STDMETHODCALLTYPE InsertRow(
  472. /* [in] */ HACCESSOR hAccessor,
  473. /* [in] */ void __RPC_FAR *pData) = 0;
  474. virtual HRESULT STDMETHODCALLTYPE Commit(
  475. /* [in] */ BOOL fDone) = 0;
  476. };
  477. #else /* C style interface */
  478. typedef struct IRowsetFastLoadVtbl
  479. {
  480. BEGIN_INTERFACE
  481. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
  482. IRowsetFastLoad __RPC_FAR * This,
  483. /* [in] */ REFIID riid,
  484. /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  485. ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
  486. IRowsetFastLoad __RPC_FAR * This);
  487. ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
  488. IRowsetFastLoad __RPC_FAR * This);
  489. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *InsertRow )(
  490. IRowsetFastLoad __RPC_FAR * This,
  491. /* [in] */ HACCESSOR hAccessor,
  492. /* [in] */ void __RPC_FAR *pData);
  493. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Commit )(
  494. IRowsetFastLoad __RPC_FAR * This,
  495. /* [in] */ BOOL fDone);
  496. END_INTERFACE
  497. } IRowsetFastLoadVtbl;
  498. interface IRowsetFastLoad
  499. {
  500. CONST_VTBL struct IRowsetFastLoadVtbl __RPC_FAR *lpVtbl;
  501. };
  502. #ifdef COBJMACROS
  503. #define IRowsetFastLoad_QueryInterface(This,riid,ppvObject) \
  504. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  505. #define IRowsetFastLoad_AddRef(This) \
  506. (This)->lpVtbl -> AddRef(This)
  507. #define IRowsetFastLoad_Release(This) \
  508. (This)->lpVtbl -> Release(This)
  509. #define IRowsetFastLoad_InsertRow(This,hAccessor,pData) \
  510. (This)->lpVtbl -> InsertRow(This,hAccessor,pData)
  511. #define IRowsetFastLoad_Commit(This,fDone) \
  512. (This)->lpVtbl -> Commit(This,fDone)
  513. #endif /* COBJMACROS */
  514. #endif /* C style interface */
  515. HRESULT STDMETHODCALLTYPE IRowsetFastLoad_InsertRow_Proxy(
  516. IRowsetFastLoad __RPC_FAR * This,
  517. /* [in] */ HACCESSOR hAccessor,
  518. /* [in] */ void __RPC_FAR *pData);
  519. void __RPC_STUB IRowsetFastLoad_InsertRow_Stub(
  520. IRpcStubBuffer *This,
  521. IRpcChannelBuffer *_pRpcChannelBuffer,
  522. PRPC_MESSAGE _pRpcMessage,
  523. DWORD *_pdwStubPhase);
  524. HRESULT STDMETHODCALLTYPE IRowsetFastLoad_Commit_Proxy(
  525. IRowsetFastLoad __RPC_FAR * This,
  526. /* [in] */ BOOL fDone);
  527. void __RPC_STUB IRowsetFastLoad_Commit_Stub(
  528. IRpcStubBuffer *This,
  529. IRpcChannelBuffer *_pRpcChannelBuffer,
  530. PRPC_MESSAGE _pRpcMessage,
  531. DWORD *_pdwStubPhase);
  532. #endif /* __IRowsetFastLoad_INTERFACE_DEFINED__ */
  533. /****************************************
  534. * Generated header for interface: __MIDL_itf_sqloledb_0007
  535. * at Tue May 09 16:41:59 2000
  536. * using MIDL 3.03.0110
  537. ****************************************/
  538. /* [local] */
  539. typedef DWORD LOCKMODE;
  540. enum LOCKMODEENUM
  541. { LOCKMODE_INVALID = 0,
  542. LOCKMODE_EXCLUSIVE = LOCKMODE_INVALID + 1,
  543. LOCKMODE_SHARED = LOCKMODE_EXCLUSIVE + 1
  544. };
  545. extern RPC_IF_HANDLE __MIDL_itf_sqloledb_0007_v0_0_c_ifspec;
  546. extern RPC_IF_HANDLE __MIDL_itf_sqloledb_0007_v0_0_s_ifspec;
  547. #ifndef __ISchemaLock_INTERFACE_DEFINED__
  548. #define __ISchemaLock_INTERFACE_DEFINED__
  549. /****************************************
  550. * Generated header for interface: ISchemaLock
  551. * at Tue May 09 16:41:59 2000
  552. * using MIDL 3.03.0110
  553. ****************************************/
  554. /* [unique][object][local][uuid] */
  555. EXTERN_C const IID IID_ISchemaLock;
  556. #if defined(__cplusplus) && !defined(CINTERFACE)
  557. MIDL_INTERFACE("4C2389FB-2511-11d4-B258-00C04F7971CE")
  558. ISchemaLock : public IUnknown
  559. {
  560. public:
  561. virtual HRESULT STDMETHODCALLTYPE GetSchemaLock(
  562. /* [in] */ DBID __RPC_FAR *pTableID,
  563. /* [in] */ LOCKMODE lmMode,
  564. /* [out] */ HANDLE __RPC_FAR *phLockHandle,
  565. /* [out] */ ULONGLONG __RPC_FAR *pTableVersion) = 0;
  566. virtual HRESULT STDMETHODCALLTYPE ReleaseSchemaLock(
  567. /* [in] */ HANDLE hLockHandle) = 0;
  568. };
  569. #else /* C style interface */
  570. typedef struct ISchemaLockVtbl
  571. {
  572. BEGIN_INTERFACE
  573. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
  574. ISchemaLock __RPC_FAR * This,
  575. /* [in] */ REFIID riid,
  576. /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  577. ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
  578. ISchemaLock __RPC_FAR * This);
  579. ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
  580. ISchemaLock __RPC_FAR * This);
  581. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetSchemaLock )(
  582. ISchemaLock __RPC_FAR * This,
  583. /* [in] */ DBID __RPC_FAR *pTableID,
  584. /* [in] */ LOCKMODE lmMode,
  585. /* [out] */ HANDLE __RPC_FAR *phLockHandle,
  586. /* [out] */ ULONGLONG __RPC_FAR *pTableVersion);
  587. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ReleaseSchemaLock )(
  588. ISchemaLock __RPC_FAR * This,
  589. /* [in] */ HANDLE hLockHandle);
  590. END_INTERFACE
  591. } ISchemaLockVtbl;
  592. interface ISchemaLock
  593. {
  594. CONST_VTBL struct ISchemaLockVtbl __RPC_FAR *lpVtbl;
  595. };
  596. #ifdef COBJMACROS
  597. #define ISchemaLock_QueryInterface(This,riid,ppvObject) \
  598. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  599. #define ISchemaLock_AddRef(This) \
  600. (This)->lpVtbl -> AddRef(This)
  601. #define ISchemaLock_Release(This) \
  602. (This)->lpVtbl -> Release(This)
  603. #define ISchemaLock_GetSchemaLock(This,pTableID,lmMode,phLockHandle,pTableVersion) \
  604. (This)->lpVtbl -> GetSchemaLock(This,pTableID,lmMode,phLockHandle,pTableVersion)
  605. #define ISchemaLock_ReleaseSchemaLock(This,hLockHandle) \
  606. (This)->lpVtbl -> ReleaseSchemaLock(This,hLockHandle)
  607. #endif /* COBJMACROS */
  608. #endif /* C style interface */
  609. HRESULT STDMETHODCALLTYPE ISchemaLock_GetSchemaLock_Proxy(
  610. ISchemaLock __RPC_FAR * This,
  611. /* [in] */ DBID __RPC_FAR *pTableID,
  612. /* [in] */ LOCKMODE lmMode,
  613. /* [out] */ HANDLE __RPC_FAR *phLockHandle,
  614. /* [out] */ ULONGLONG __RPC_FAR *pTableVersion);
  615. void __RPC_STUB ISchemaLock_GetSchemaLock_Stub(
  616. IRpcStubBuffer *This,
  617. IRpcChannelBuffer *_pRpcChannelBuffer,
  618. PRPC_MESSAGE _pRpcMessage,
  619. DWORD *_pdwStubPhase);
  620. HRESULT STDMETHODCALLTYPE ISchemaLock_ReleaseSchemaLock_Proxy(
  621. ISchemaLock __RPC_FAR * This,
  622. /* [in] */ HANDLE hLockHandle);
  623. void __RPC_STUB ISchemaLock_ReleaseSchemaLock_Stub(
  624. IRpcStubBuffer *This,
  625. IRpcChannelBuffer *_pRpcChannelBuffer,
  626. PRPC_MESSAGE _pRpcMessage,
  627. DWORD *_pdwStubPhase);
  628. #endif /* __ISchemaLock_INTERFACE_DEFINED__ */
  629. /* Additional Prototypes for ALL interfaces */
  630. /* end of Additional Prototypes */
  631. #ifdef __cplusplus
  632. }
  633. #endif
  634. #endif
  635. #endif //_SQLOLEDB_H_