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