msi: Don't crash if record has no fields.
[wine] / dlls / odbc32 / proxyodbc.h
1 /*
2  * Copyright 1999 Xiang Li, Corel Corporation
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18
19 #ifndef _PROXYMANAGER_H
20 #define _PROXYMANAGER_H
21
22 #define NUM_SQLFUNC 78
23 #define ERROR_FREE 0
24 #define ERROR_SQLERROR  1
25 #define ERROR_LIBRARY_NOT_FOUND 2
26 #define ERROR_FUNCTIONS_NOT_LOADED  3
27
28 #define ODBCVER 0x0351
29
30 typedef struct dm_func                          /* driver manager functions */
31 {
32     int            ordinal;
33     const char     *name;
34     void           *d_func;
35     SQLRETURN      (*func)();
36     SQLRETURN      (*funcW)();
37 } DM_FUNC;
38
39 typedef struct proxyhandle
40 {
41         void *dmHandle;                         /* driver manager handle */
42         BOOL isWindowsDriver;       /* is driver a Windows version*/
43         BOOL bCallbackReady;        /* procs taken from Windows driver placed in driver manager as callbacks */
44         BOOL bFunctionReady;
45         int  nErrorType;
46         DM_FUNC functions[NUM_SQLFUNC];                 /* entry point for driver manager functions */
47         char driverLibName[200];        /* ODBC driver SO name */
48         char dmLibName[200];            /* driver manager library name */
49         char ServerName[200];       /* keep server name */
50         char UserName[50];          /* keep username */
51 } PROXYHANDLE;
52
53 #define    /* 00 */ SQLAPI_INDEX_SQLALLOCCONNECT       0
54 #define    /* 01 */ SQLAPI_INDEX_SQLALLOCENV           1
55 #define    /* 02 */ SQLAPI_INDEX_SQLALLOCHANDLE        2
56 #define    /* 03 */ SQLAPI_INDEX_SQLALLOCSTMT          3
57 #define    /* 04 */ SQLAPI_INDEX_SQLALLOCHANDLESTD     4
58 #define    /* 05 */ SQLAPI_INDEX_SQLBINDCOL            5
59 #define    /* 06 */ SQLAPI_INDEX_SQLBINDPARAM          6
60 #define    /* 07 */ SQLAPI_INDEX_SQLBINDPARAMETER      7
61 #define    /* 08 */ SQLAPI_INDEX_SQLBROWSECONNECT      8
62 #define    /* 09 */ SQLAPI_INDEX_SQLBULKOPERATIONS     9
63 #define    /* 10 */ SQLAPI_INDEX_SQLCANCEL            10
64 #define    /* 11 */ SQLAPI_INDEX_SQLCLOSECURSOR       11
65 #define    /* 12 */ SQLAPI_INDEX_SQLCOLATTRIBUTE      12
66 #define    /* 13 */ SQLAPI_INDEX_SQLCOLATTRIBUTES     13
67 #define    /* 14 */ SQLAPI_INDEX_SQLCOLUMNPRIVILEGES  14
68 #define    /* 15 */ SQLAPI_INDEX_SQLCOLUMNS           15
69 #define    /* 16 */ SQLAPI_INDEX_SQLCONNECT           16
70 #define    /* 17 */ SQLAPI_INDEX_SQLCOPYDESC          17
71 #define    /* 18 */ SQLAPI_INDEX_SQLDATASOURCES       18
72 #define    /* 19 */ SQLAPI_INDEX_SQLDESCRIBECOL       19
73 #define    /* 20 */ SQLAPI_INDEX_SQLDESCRIBEPARAM     20
74 #define    /* 21 */ SQLAPI_INDEX_SQLDISCONNECT        21
75 #define    /* 22 */ SQLAPI_INDEX_SQLDRIVERCONNECT     22
76 #define    /* 23 */ SQLAPI_INDEX_SQLDRIVERS           23
77 #define    /* 24 */ SQLAPI_INDEX_SQLENDTRAN           24
78 #define    /* 25 */ SQLAPI_INDEX_SQLERROR             25
79 #define    /* 26 */ SQLAPI_INDEX_SQLEXECDIRECT        26
80 #define    /* 27 */ SQLAPI_INDEX_SQLEXECUTE           27
81 #define    /* 28 */ SQLAPI_INDEX_SQLEXTENDEDFETCH     28
82 #define    /* 29 */ SQLAPI_INDEX_SQLFETCH             29
83 #define    /* 30 */ SQLAPI_INDEX_SQLFETCHSCROLL       30
84 #define    /* 31 */ SQLAPI_INDEX_SQLFOREIGNKEYS       31
85 #define    /* 32 */ SQLAPI_INDEX_SQLFREEENV           32
86 #define    /* 33 */ SQLAPI_INDEX_SQLFREEHANDLE        33
87 #define    /* 34 */ SQLAPI_INDEX_SQLFREESTMT          34
88 #define    /* 35 */ SQLAPI_INDEX_SQLFREECONNECT       35
89 #define    /* 36 */ SQLAPI_INDEX_SQLGETCONNECTATTR    36
90 #define    /* 37 */ SQLAPI_INDEX_SQLGETCONNECTOPTION  37
91 #define    /* 38 */ SQLAPI_INDEX_SQLGETCURSORNAME     38
92 #define    /* 39 */ SQLAPI_INDEX_SQLGETDATA           39
93 #define    /* 40 */ SQLAPI_INDEX_SQLGETDESCFIELD      40
94 #define    /* 41 */ SQLAPI_INDEX_SQLGETDESCREC        41
95 #define    /* 42 */ SQLAPI_INDEX_SQLGETDIAGFIELD      42
96 #define    /* 43 */ SQLAPI_INDEX_SQLGETENVATTR        43
97 #define    /* 44 */ SQLAPI_INDEX_SQLGETFUNCTIONS      44
98 #define    /* 45 */ SQLAPI_INDEX_SQLGETINFO           45
99 #define    /* 46 */ SQLAPI_INDEX_SQLGETSTMTATTR       46
100 #define    /* 47 */ SQLAPI_INDEX_SQLGETSTMTOPTION     47
101 #define    /* 48 */ SQLAPI_INDEX_SQLGETTYPEINFO       48
102 #define    /* 49 */ SQLAPI_INDEX_SQLMORERESULTS       49
103 #define    /* 50 */ SQLAPI_INDEX_SQLNATIVESQL         50
104 #define    /* 51 */ SQLAPI_INDEX_SQLNUMPARAMS         51
105 #define    /* 52 */ SQLAPI_INDEX_SQLNUMRESULTCOLS     52
106 #define    /* 53 */ SQLAPI_INDEX_SQLPARAMDATA         53
107 #define    /* 54 */ SQLAPI_INDEX_SQLPARAMOPTIONS      54
108 #define    /* 55 */ SQLAPI_INDEX_SQLPREPARE           55
109 #define    /* 56 */ SQLAPI_INDEX_SQLPRIMARYKEYS       56
110 #define    /* 57 */ SQLAPI_INDEX_SQLPROCEDURECOLUMNS  57
111 #define    /* 58 */ SQLAPI_INDEX_SQLPROCEDURES        58
112 #define    /* 59 */ SQLAPI_INDEX_SQLPUTDATA           59
113 #define    /* 60 */ SQLAPI_INDEX_SQLROWCOUNT          60
114 #define    /* 61 */ SQLAPI_INDEX_SQLSETCONNECTATTR    61
115 #define    /* 62 */ SQLAPI_INDEX_SQLSETCONNECTOPTION  62
116 #define    /* 63 */ SQLAPI_INDEX_SQLSETCURSORNAME     63
117 #define    /* 64 */ SQLAPI_INDEX_SQLSETDESCFIELD      64
118 #define    /* 65 */ SQLAPI_INDEX_SQLSETDESCREC        65
119 #define    /* 66 */ SQLAPI_INDEX_SQLSETENVATTR        66
120 #define    /* 67 */ SQLAPI_INDEX_SQLSETPARAM          67
121 #define    /* 68 */ SQLAPI_INDEX_SQLSETPOS            68
122 #define    /* 69 */ SQLAPI_INDEX_SQLSETSCROLLOPTIONS  69
123 #define    /* 70 */ SQLAPI_INDEX_SQLSETSTMTATTR       70
124 #define    /* 71 */ SQLAPI_INDEX_SQLSETSTMTOPTION     71
125 #define    /* 72 */ SQLAPI_INDEX_SQLSPECIALCOLUMNS    72
126 #define    /* 73 */ SQLAPI_INDEX_SQLSTATISTICS        73
127 #define    /* 74 */ SQLAPI_INDEX_SQLTABLEPRIVILEGES   74
128 #define    /* 75 */ SQLAPI_INDEX_SQLTABLES            75
129 #define    /* 76 */ SQLAPI_INDEX_SQLTRANSACT          76
130 #define    /* 77 */ SQLAPI_INDEX_SQLGETDIAGREC        77
131
132 #endif