srv.h 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. #ifndef _ODS_SRV_H_
  7. #define _ODS_SRV_H_
  8. #ifndef COMPILE_FOR_CLR
  9. #include "windows.h"
  10. #endif
  11. #pragma pack(4)
  12. #ifdef __cplusplus
  13. extern "C" {
  14. #endif
  15. #ifndef FAR
  16. #define FAR
  17. #endif
  18. #ifndef DBTYPEDEFS
  19. #ifndef MAXNUMERICLEN
  20. #define DBTYPEDEFS
  21. typedef unsigned char DBBOOL;
  22. typedef unsigned char DBBYTE;
  23. typedef unsigned char DBTINYINT;
  24. typedef short DBSMALLINT;
  25. typedef unsigned short DBUSMALLINT;
  26. typedef __LONG32 DBINT;
  27. typedef char DBCHAR;
  28. typedef unsigned char DBBINARY;
  29. typedef unsigned char DBBIT;
  30. typedef double DBFLT8;
  31. typedef struct srv_datetime {
  32. __LONG32 dtdays;
  33. unsigned __LONG32 dttime;
  34. } DBDATETIME;
  35. typedef struct srv_money {
  36. __LONG32 mnyhigh;
  37. unsigned __LONG32 mnylow;
  38. } DBMONEY;
  39. typedef float DBFLT4;
  40. typedef __LONG32 DBMONEY4;
  41. typedef struct dbdatetime4 {
  42. unsigned short numdays;
  43. unsigned short nummins;
  44. } DBDATETIM4;
  45. #define MAXNUMERICLEN 16
  46. typedef struct dbnumeric {
  47. BYTE precision;
  48. BYTE scale;
  49. BYTE sign;
  50. BYTE val[MAXNUMERICLEN];
  51. } DBNUMERIC;
  52. typedef DBNUMERIC DBDECIMAL;
  53. #endif
  54. #endif
  55. #define SRV_TDS_NULL (BYTE) 0x1f
  56. #define SRV_TDS_TEXT (BYTE) 0x23
  57. #define SRV_TDS_GUID (BYTE) 0x24
  58. #define SRV_TDS_VARBINARY (BYTE) 0x25
  59. #define SRV_TDS_INTN (BYTE) 0x26
  60. #define SRV_TDS_VARCHAR (BYTE) 0x27
  61. #define SRV_TDS_BINARY (BYTE) 0x2d
  62. #define SRV_TDS_IMAGE (BYTE) 0x22
  63. #define SRV_TDS_CHAR (BYTE) 0x2f
  64. #define SRV_TDS_INT1 (BYTE) 0x30
  65. #define SRV_TDS_BIT (BYTE) 0x32
  66. #define SRV_TDS_INT2 (BYTE) 0x34
  67. #define SRV_TDS_DECIMAL (BYTE) 0x37
  68. #define SRV_TDS_INT4 (BYTE) 0x38
  69. #define SRV_TDS_DATETIM4 (BYTE) 0x3a
  70. #define SRV_TDS_FLT4 (BYTE) 0x3b
  71. #define SRV_TDS_MONEY (BYTE) 0x3c
  72. #define SRV_TDS_DATETIME (BYTE) 0x3d
  73. #define SRV_TDS_FLT8 (BYTE) 0x3e
  74. #define SRV_TDS_NUMERIC (BYTE) 0x3f
  75. #define SRV_TDS_SSVARIANT (BYTE) 0x62
  76. #define SRV_TDS_NTEXT (BYTE) 0x63
  77. #define SRV_TDS_BITN (BYTE) 0x68
  78. #define SRV_TDS_DECIMALN (BYTE) 0x6a
  79. #define SRV_TDS_NUMERICN (BYTE) 0x6c
  80. #define SRV_TDS_FLTN (BYTE) 0x6d
  81. #define SRV_TDS_MONEYN (BYTE) 0x6e
  82. #define SRV_TDS_DATETIMN (BYTE) 0x6f
  83. #define SRV_TDS_MONEY4 (BYTE) 0x7a
  84. #define SRV_TDS_INT8 (BYTE) 0x7f
  85. #define SRV_TDS_BIGVARBINARY (BYTE) 0xA5
  86. #define SRV_TDS_BIGVARCHAR (BYTE) 0xA7
  87. #define SRV_TDS_BIGBINARY (BYTE) 0xAD
  88. #define SRV_TDS_BIGCHAR (BYTE) 0xAF
  89. #define SRV_TDS_NVARCHAR (BYTE) 0xe7
  90. #define SRV_TDS_NCHAR (BYTE) 0xef
  91. #define SRVNULL SRV_TDS_NULL
  92. #define SRVTEXT SRV_TDS_TEXT
  93. #define SRVGUID SRV_TDS_GUID
  94. #define SRVVARBINARY SRV_TDS_VARBINARY
  95. #define SRVINTN SRV_TDS_INTN
  96. #define SRVVARCHAR SRV_TDS_VARCHAR
  97. #define SRVBINARY SRV_TDS_BINARY
  98. #define SRVIMAGE SRV_TDS_IMAGE
  99. #define SRVCHAR SRV_TDS_CHAR
  100. #define SRVINT1 SRV_TDS_INT1
  101. #define SRVBIT SRV_TDS_BIT
  102. #define SRVINT2 SRV_TDS_INT2
  103. #define SRVDECIMAL SRV_TDS_DECIMAL
  104. #define SRVINT4 SRV_TDS_INT4
  105. #define SRVDATETIM4 SRV_TDS_DATETIM4
  106. #define SRVFLT4 SRV_TDS_FLT4
  107. #define SRVMONEY SRV_TDS_MONEY
  108. #define SRVDATETIME SRV_TDS_DATETIME
  109. #define SRVFLT8 SRV_TDS_FLT8
  110. #define SRVNUMERIC SRV_TDS_NUMERIC
  111. #define SRVSSVARIANT SRV_TDS_SSVARIANT
  112. #define SRVNTEXT SRV_TDS_NTEXT
  113. #define SRVBITN SRV_TDS_BITN
  114. #define SRVDECIMALN SRV_TDS_DECIMALN
  115. #define SRVNUMERICN SRV_TDS_NUMERICN
  116. #define SRVFLTN SRV_TDS_FLTN
  117. #define SRVMONEYN SRV_TDS_MONEYN
  118. #define SRVDATETIMN SRV_TDS_DATETIMN
  119. #define SRVMONEY4 SRV_TDS_MONEY4
  120. #define SRVINT8 SRV_TDS_INT8
  121. #define SRVBIGVARBINARY SRV_TDS_BIGVARBINARY
  122. #define SRVBIGVARCHAR SRV_TDS_BIGVARCHAR
  123. #define SRVBIGBINARY SRV_TDS_BIGBINARY
  124. #define SRVBIGCHAR SRV_TDS_BIGCHAR
  125. #define SRVNVARCHAR SRV_TDS_NVARCHAR
  126. #define SRVNCHAR SRV_TDS_NCHAR
  127. #define SRV_ERROR 0
  128. #define SRV_DONE 1
  129. #define SRV_DATATYPE 2
  130. #define SRV_EVENT 4
  131. #define SRV_ENO_OS_ERR 0
  132. #define SRV_INFO 1
  133. #define SRV_FATAL_PROCESS 10
  134. #define SRV_FATAL_SERVER 19
  135. #define SRV_CONTINUE 0
  136. #define SRV_LANGUAGE 1
  137. #define SRV_CONNECT 2
  138. #define SRV_RPC 3
  139. #define SRV_RESTART 4
  140. #define SRV_DISCONNECT 5
  141. #define SRV_ATTENTION 6
  142. #define SRV_SLEEP 7
  143. #define SRV_START 8
  144. #define SRV_STOP 9
  145. #define SRV_EXIT 10
  146. #define SRV_CANCEL 11
  147. #define SRV_SETUP 12
  148. #define SRV_CLOSE 13
  149. #define SRV_PRACK 14
  150. #define SRV_PRERROR 15
  151. #define SRV_ATTENTION_ACK 16
  152. #define SRV_CONNECT_V7 16
  153. #define SRV_SKIP 17
  154. #define SRV_TRANSMGR 18
  155. #define SRV_PRELOGIN 19
  156. #define SRV_OLEDB 20
  157. #define SRV_INTERNAL_HANDLER 99
  158. #define SRV_PROGRAMMER_DEFINED 100
  159. #define SRV_SERVERNAME 0
  160. #define SRV_VERSION 6
  161. #define SRV_NULLTERM -1
  162. #define SRV_MSG_INFO 1
  163. #define SRV_MSG_ERROR 2
  164. #define SRV_DONE_FINAL (USHORT) 0x0000
  165. #define SRV_DONE_MORE (USHORT) 0x0001
  166. #define SRV_DONE_ERROR (USHORT) 0x0002
  167. #define SRV_DONE_COUNT (USHORT) 0x0010
  168. #define SRV_DONE_RPC_IN_BATCH (USHORT) 0x0080
  169. #define SRV_PARAMRETURN 0x0001
  170. #define SRV_PARAMDEFAULT 0x0002
  171. #define SRV_PARAMSORTORDER 0x0004
  172. #define SRV_RECOMPILE 0x0001
  173. #define SRV_NOMETADATA 0x0002
  174. #define SRV_SPID 10
  175. #define SRV_NETSPID 11
  176. #define SRV_TYPE 12
  177. #define SRV_STATUS 13
  178. #define SRV_RMTSERVER 14
  179. #define SRV_HOST 15
  180. #define SRV_USER 16
  181. #define SRV_PWD 17
  182. #define SRV_CPID 18
  183. #define SRV_APPLNAME 19
  184. #define SRV_TDS 20
  185. #define SRV_CLIB 21
  186. #define SRV_LIBVERS 22
  187. #define SRV_ROWSENT 23
  188. #define SRV_BCPFLAG 24
  189. #define SRV_NATLANG 25
  190. #define SRV_PIPEHANDLE 26
  191. #define SRV_NETWORK_MODULE 27
  192. #define SRV_NETWORK_VERSION 28
  193. #define SRV_NETWORK_CONNECTION 29
  194. #define SRV_LSECURE 30
  195. #define SRV_SAXP 31
  196. #define SRV_UNICODE_USER 33
  197. #define SRV_UNICODE_PWD 35
  198. #define SRV_SPROC_CODEPAGE 36
  199. #define SRV_MSGLCID 37
  200. #define SRV_INSTANCENAME 38
  201. #define SRV_HASHPWD 39
  202. #define SRV_UNICODE_CURRENTLOGIN 40
  203. #define SRV_TDS_NONE 0
  204. #define SRV_TDS_2_0 1
  205. #define SRV_TDS_3_4 2
  206. #define SRV_TDS_4_2 3
  207. #define SRV_TDS_6_0 4
  208. #define SRV_TDS_7_0 5
  209. typedef int SRVRETCODE;
  210. #ifndef ODBCVER
  211. typedef int RETCODE;
  212. #endif
  213. #ifndef SUCCEED
  214. #define SUCCEED 1
  215. #endif
  216. #ifndef FAIL
  217. #define FAIL 0
  218. #endif
  219. #define SRV_DUPLICATE_HANDLER 2
  220. #ifndef COMPILE_FOR_CLR
  221. struct srv_server;
  222. typedef struct srv_server SRV_SERVER;
  223. struct srv_config;
  224. typedef struct srv_config SRV_CONFIG;
  225. struct CXPData;
  226. typedef struct CXPData SRV_PROC;
  227. int __cdecl srv_describe(SRV_PROC *,int,char*,int,__LONG32,__LONG32,__LONG32,__LONG32,void *);
  228. int __cdecl srv_setutype(SRV_PROC *srvproc,int column,__LONG32 usertype);
  229. int __cdecl srv_setcoldata(SRV_PROC *srvproc,int column,void *data);
  230. int __cdecl srv_setcollen(SRV_PROC *srvproc,int column,int len);
  231. int __cdecl srv_sendrow(SRV_PROC *srvproc);
  232. int __cdecl srv_senddone(SRV_PROC *srvproc,USHORT status,USHORT curcmd,__LONG32 count);
  233. int __cdecl srv_rpcparams(SRV_PROC *);
  234. int __cdecl srv_paraminfo(SRV_PROC *,int,BYTE *,ULONG *,ULONG *,BYTE *,WINBOOL *);
  235. int __cdecl srv_paramsetoutput(SRV_PROC *,int,BYTE *,ULONG,WINBOOL);
  236. void *__cdecl srv_paramdata(SRV_PROC *,int);
  237. int __cdecl srv_paramlen(SRV_PROC *,int);
  238. int __cdecl srv_parammaxlen(SRV_PROC *,int);
  239. int __cdecl srv_paramtype(SRV_PROC *,int);
  240. int __cdecl srv_paramset(SRV_PROC *,int,void *,int);
  241. char *__cdecl srv_paramname(SRV_PROC *,int,int*);
  242. int __cdecl srv_paramnumber(SRV_PROC *,char*,int);
  243. #define SRV_GETSERVER(a) srv_getserver (a)
  244. #define SRV_GOT_ATTENTION(a) srv_got_attention (a)
  245. #define SRV_TDSVERSION(a) srv_tdsversion (a)
  246. SRV_SERVER *__cdecl srv_getserver(SRV_PROC *srvproc);
  247. WINBOOL __cdecl srv_got_attention(SRV_PROC *srvproc);
  248. void *__cdecl srv_alloc(__LONG32 ulSize);
  249. int __cdecl srv_bmove(void *from,void *to,__LONG32 count);
  250. int __cdecl srv_bzero(void *location,__LONG32 count);
  251. int __cdecl srv_free(void *ptr);
  252. int __cdecl srv_convert(SRV_PROC *,int,void *,__LONG32,int,void *,__LONG32);
  253. void *__cdecl srv_getuserdata(SRV_PROC *srvproc);
  254. int __cdecl srv_getbindtoken(SRV_PROC *srvproc,char *token_buf);
  255. int __cdecl srv_getdtcxact(SRV_PROC *srvproc,void **ppv);
  256. typedef int (*EventHandler)(void *);
  257. int __cdecl srv_impersonate_client(SRV_PROC *srvproc);
  258. __LONG32 __cdecl srv_langcpy(SRV_PROC *srvproc,__LONG32 start,__LONG32 nbytes,char *buffer);
  259. __LONG32 __cdecl srv_langlen(SRV_PROC *srvproc);
  260. void *__cdecl srv_langptr(SRV_PROC *srvproc);
  261. int __cdecl srv_log(SRV_SERVER *server,WINBOOL datestamp,char *msg,int msglen);
  262. int __cdecl srv_paramstatus(SRV_PROC *,int);
  263. void *__cdecl srv_pfieldex(SRV_PROC *srvproc,int field,int *len);
  264. char *__cdecl srv_pfield(SRV_PROC *srvproc,int field,int *len);
  265. int __cdecl srv_returnval(SRV_PROC *srvproc,char *valuename,int len,BYTE status,__LONG32 type,__LONG32 maxlen,__LONG32 datalen,void *value);
  266. int __cdecl srv_revert_to_self(SRV_PROC *srvproc);
  267. char *__cdecl srv_rpcdb(SRV_PROC *srvproc,int *len);
  268. char *__cdecl srv_rpcname(SRV_PROC *srvproc,int *len);
  269. int __cdecl srv_rpcnumber(SRV_PROC *srvproc);
  270. USHORT __cdecl srv_rpcoptions(SRV_PROC *srvproc);
  271. char *__cdecl srv_rpcowner(SRV_PROC *srvproc,int *len);
  272. int __cdecl srv_wsendmsg(SRV_PROC *srvproc,__LONG32 msgnum,BYTE msgclass,WCHAR *message,int msglen);
  273. int __cdecl srv_sendmsg(SRV_PROC *srvproc,int msgtype,__LONG32 msgnum,BYTE msgclass,BYTE state,char *rpcname,int rpcnamelen,USHORT linenum,char *message,int msglen);
  274. int __cdecl srv_sendstatus(SRV_PROC *srvproc,__LONG32 status);
  275. int __cdecl srv_setuserdata(SRV_PROC *srvproc,void *ptr);
  276. char *__cdecl srv_sfield(SRV_SERVER *server,int field,int *len);
  277. char *__cdecl srv_symbol(int type,int symbol,int *len);
  278. int __cdecl srv_tdsversion(SRV_PROC *srvproc);
  279. WINBOOL __cdecl srv_willconvert(int srctype,int desttype);
  280. int __cdecl srv_terminatethread(SRV_PROC *srvproc);
  281. int __cdecl srv_sendstatistics(SRV_PROC *srvproc);
  282. int __cdecl srv_clearstatistics(SRV_PROC *srvproc);
  283. int __cdecl srv_message_handler(SRV_PROC *srvproc,int errornum,BYTE severity,BYTE state,int oserrnum,char *errtext,int errtextlen,char *oserrtext,int oserrtextlen);
  284. int __cdecl srv_pre_handle(SRV_SERVER *server,SRV_PROC *srvproc,__LONG32 event,EventHandler handler,WINBOOL remove);
  285. int __cdecl srv_post_handle(SRV_SERVER *server,SRV_PROC *srvproc,__LONG32 event,EventHandler handler,WINBOOL remove);
  286. int __cdecl srv_IgnoreAnsiToOem(SRV_PROC *srvproc,WINBOOL bTF);
  287. #endif
  288. #ifdef __cplusplus
  289. }
  290. #endif
  291. #pragma pack()
  292. #define SS_MAJOR_VERSION 7
  293. #define SS_MINOR_VERSION 00
  294. #define SS_LEVEL_VERSION 0000
  295. #define SS_MINIMUM_VERSION "7.00.00.0000"
  296. #define ODS_VERSION ((SS_MAJOR_VERSION << 24) | (SS_MINOR_VERSION << 16))
  297. #endif