Commit d3f8fbdd60d55423cc5513fe5d480482a98a688f
1 parent
071bacad
Exists in
master
and in
5 other branches
Ajustando biblioteca para compilar na versão 5
Showing
2 changed files
with
754 additions
and
0 deletions
Show diff stats
| ... | ... | @@ -0,0 +1,543 @@ |
| 1 | +/* | |
| 2 | + * "Software G3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | |
| 3 | + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | |
| 4 | + * aplicativos mainframe. Registro no INPI sob o nome G3270. | |
| 5 | + * | |
| 6 | + * Copyright (C) <2008> <Banco do Brasil S.A.> | |
| 7 | + * | |
| 8 | + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | |
| 9 | + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | |
| 10 | + * Free Software Foundation. | |
| 11 | + * | |
| 12 | + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | |
| 13 | + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | |
| 14 | + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | |
| 15 | + * obter mais detalhes. | |
| 16 | + * | |
| 17 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | |
| 18 | + * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple | |
| 19 | + * Place, Suite 330, Boston, MA, 02111-1307, USA | |
| 20 | + * | |
| 21 | + * Este programa está nomeado como lib3270.h e possui 38 linhas de código. | |
| 22 | + * | |
| 23 | + * Contatos: | |
| 24 | + * | |
| 25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | |
| 26 | + * erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça) | |
| 27 | + * licinio@bb.com.br (Licínio Luis Branco) | |
| 28 | + * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | |
| 29 | + * macmiranda@bb.com.br (Marco Aurélio Caldas Miranda) | |
| 30 | + * | |
| 31 | + */ | |
| 32 | + | |
| 33 | +#ifndef LIB3270_H_INCLUDED | |
| 34 | + | |
| 35 | + #define LIB3270_H_INCLUDED 1 | |
| 36 | + | |
| 37 | + /** | |
| 38 | + * Character attributes | |
| 39 | + */ | |
| 40 | + typedef enum _lib3270_attr | |
| 41 | + { | |
| 42 | + LIB3270_ATTR_COLOR_BACKGROUND = 0x0000, | |
| 43 | + | |
| 44 | + LIB3270_ATTR_COLOR_BLUE = 0x0001, | |
| 45 | + LIB3270_ATTR_COLOR_RED = 0x0002, | |
| 46 | + LIB3270_ATTR_COLOR_PINK = 0x0003, | |
| 47 | + LIB3270_ATTR_COLOR_GREEN = 0x0004, | |
| 48 | + LIB3270_ATTR_COLOR_TURQUOISE = 0x0005, | |
| 49 | + LIB3270_ATTR_COLOR_YELLOW = 0x0006, | |
| 50 | + LIB3270_ATTR_COLOR_WHITE = 0x0007, | |
| 51 | + LIB3270_ATTR_COLOR_BLACK = 0x0008, | |
| 52 | + LIB3270_ATTR_COLOR_DARK_BLUE = 0x0009, | |
| 53 | + LIB3270_ATTR_COLOR_ORANGE = 0x000A, | |
| 54 | + LIB3270_ATTR_COLOR_PURPLE = 0x000B, | |
| 55 | + LIB3270_ATTR_COLOR_DARK_GREEN = 0x000C, | |
| 56 | + LIB3270_ATTR_COLOR_DARK_TURQUOISE = 0x000D, | |
| 57 | + LIB3270_ATTR_COLOR_MUSTARD = 0x000E, | |
| 58 | + LIB3270_ATTR_COLOR_GRAY = 0x000F, | |
| 59 | + | |
| 60 | + LIB3270_ATTR_COLOR = 0x00FF, | |
| 61 | + | |
| 62 | + LIB3270_ATTR_FIELD = 0x0100, | |
| 63 | + LIB3270_ATTR_BLINK = 0x0200, | |
| 64 | + LIB3270_ATTR_UNDERLINE = 0x0400, | |
| 65 | + LIB3270_ATTR_INTENSIFY = 0x0800, | |
| 66 | + | |
| 67 | + LIB3270_ATTR_CG = 0x1000, | |
| 68 | + LIB3270_ATTR_MARKER = 0x2000, | |
| 69 | + LIB3270_ATTR_BACKGROUND_INTENSITY = 0x4000, | |
| 70 | + | |
| 71 | + } LIB3270_ATTR; | |
| 72 | + | |
| 73 | + typedef enum _lib3270_toggle | |
| 74 | + { | |
| 75 | + LIB3270_TOGGLE_MONOCASE, | |
| 76 | + LIB3270_TOGGLE_ALT_CURSOR, | |
| 77 | + LIB3270_TOGGLE_CURSOR_BLINK, | |
| 78 | + LIB3270_TOGGLE_SHOW_TIMING, | |
| 79 | + LIB3270_TOGGLE_CURSOR_POS, | |
| 80 | + LIB3270_TOGGLE_DS_TRACE, | |
| 81 | + LIB3270_TOGGLE_SCROLL_BAR, | |
| 82 | + LIB3270_TOGGLE_LINE_WRAP, | |
| 83 | + LIB3270_TOGGLE_BLANK_FILL, | |
| 84 | + LIB3270_TOGGLE_SCREEN_TRACE, | |
| 85 | + LIB3270_TOGGLE_EVENT_TRACE, | |
| 86 | + LIB3270_TOGGLE_MARGINED_PASTE, | |
| 87 | + LIB3270_TOGGLE_RECTANGLE_SELECT, | |
| 88 | + LIB3270_TOGGLE_CROSSHAIR, | |
| 89 | + LIB3270_TOGGLE_VISIBLE_CONTROL, | |
| 90 | + LIB3270_TOGGLE_AID_WAIT, | |
| 91 | + LIB3270_TOGGLE_FULL_SCREEN, | |
| 92 | + LIB3270_TOGGLE_RECONNECT, | |
| 93 | + LIB3270_TOGGLE_INSERT, | |
| 94 | + LIB3270_TOGGLE_KEYPAD, | |
| 95 | + LIB3270_TOGGLE_SMART_PASTE, | |
| 96 | + | |
| 97 | + LIB3270_TOGGLE_COUNT | |
| 98 | + | |
| 99 | + } LIB3270_TOGGLE; | |
| 100 | + | |
| 101 | + | |
| 102 | + /** | |
| 103 | + * Toggle types. | |
| 104 | + * | |
| 105 | + */ | |
| 106 | + typedef enum _LIB3270_TOGGLE_TYPE | |
| 107 | + { | |
| 108 | + LIB3270_TOGGLE_TYPE_INITIAL, | |
| 109 | + LIB3270_TOGGLE_TYPE_INTERACTIVE, | |
| 110 | + LIB3270_TOGGLE_TYPE_ACTION, | |
| 111 | + LIB3270_TOGGLE_TYPE_FINAL, | |
| 112 | + LIB3270_TOGGLE_TYPE_UPDATE, | |
| 113 | + | |
| 114 | + LIB3270_TOGGLE_TYPE_USER | |
| 115 | + | |
| 116 | + } LIB3270_TOGGLE_TYPE; | |
| 117 | + | |
| 118 | + | |
| 119 | + /** | |
| 120 | + * OIA Status indicators. | |
| 121 | + * | |
| 122 | + */ | |
| 123 | + typedef enum _lib3270_flag | |
| 124 | + { | |
| 125 | + LIB3270_FLAG_BOXSOLID, /**< System available */ | |
| 126 | + LIB3270_FLAG_UNDERA, /**< Control Unit STATUS */ | |
| 127 | + LIB3270_FLAG_SECURE, /**< Security status */ | |
| 128 | + LIB3270_FLAG_TYPEAHEAD, | |
| 129 | + LIB3270_FLAG_PRINTER, | |
| 130 | + LIB3270_FLAG_REVERSE, | |
| 131 | + LIB3270_FLAG_SCRIPT, | |
| 132 | + | |
| 133 | + LIB3270_FLAG_COUNT | |
| 134 | + | |
| 135 | + } LIB3270_FLAG; | |
| 136 | + | |
| 137 | + | |
| 138 | + /** | |
| 139 | + * 3270 program messages. | |
| 140 | + * | |
| 141 | + */ | |
| 142 | + typedef enum _LIB3270_MESSAGE | |
| 143 | + { | |
| 144 | + LIB3270_MESSAGE_NONE, /**< No message */ | |
| 145 | + LIB3270_MESSAGE_SYSWAIT, | |
| 146 | + LIB3270_MESSAGE_TWAIT, | |
| 147 | + LIB3270_MESSAGE_CONNECTED, | |
| 148 | + LIB3270_MESSAGE_DISCONNECTED, /**< Disconnected from host */ | |
| 149 | + LIB3270_MESSAGE_AWAITING_FIRST, | |
| 150 | + LIB3270_MESSAGE_MINUS, | |
| 151 | + LIB3270_MESSAGE_PROTECTED, | |
| 152 | + LIB3270_MESSAGE_NUMERIC, | |
| 153 | + LIB3270_MESSAGE_OVERFLOW, | |
| 154 | + LIB3270_MESSAGE_INHIBIT, | |
| 155 | + LIB3270_MESSAGE_KYBDLOCK, | |
| 156 | + | |
| 157 | + LIB3270_MESSAGE_X, | |
| 158 | + LIB3270_MESSAGE_RESOLVING, /**< Resolving hostname (running DNS query) */ | |
| 159 | + LIB3270_MESSAGE_CONNECTING, /**< Connecting to host */ | |
| 160 | + | |
| 161 | + LIB3270_MESSAGE_USER | |
| 162 | + | |
| 163 | + } LIB3270_MESSAGE; | |
| 164 | + | |
| 165 | + | |
| 166 | + /** | |
| 167 | + * Cursor modes. | |
| 168 | + * | |
| 169 | + * Cursor modes set by library; an application can us it | |
| 170 | + * as a hint to change the mouse cursor based on connection status. | |
| 171 | + * | |
| 172 | + */ | |
| 173 | + typedef enum _LIB3270_CURSOR | |
| 174 | + { | |
| 175 | + LIB3270_CURSOR_NORMAL, /**< Ready for user actions */ | |
| 176 | + LIB3270_CURSOR_WAITING, /**< Waiting for host */ | |
| 177 | + LIB3270_CURSOR_LOCKED, /**< Locked, can't receive user actions */ | |
| 178 | + | |
| 179 | + LIB3270_CURSOR_USER | |
| 180 | + } LIB3270_CURSOR; | |
| 181 | + | |
| 182 | + | |
| 183 | + /** | |
| 184 | + * connection state | |
| 185 | + */ | |
| 186 | + typedef enum lib3270_cstate | |
| 187 | + { | |
| 188 | + LIB3270_NOT_CONNECTED, /**< no socket, disconnected */ | |
| 189 | + LIB3270_RESOLVING, /**< resolving hostname */ | |
| 190 | + LIB3270_PENDING, /**< connection pending */ | |
| 191 | + LIB3270_CONNECTED_INITIAL, /**< connected, no mode yet */ | |
| 192 | + LIB3270_CONNECTED_ANSI, /**< connected in NVT ANSI mode */ | |
| 193 | + LIB3270_CONNECTED_3270, /**< connected in old-style 3270 mode */ | |
| 194 | + LIB3270_CONNECTED_INITIAL_E, /**< connected in TN3270E mode, unnegotiated */ | |
| 195 | + LIB3270_CONNECTED_NVT, /**< connected in TN3270E mode, NVT mode */ | |
| 196 | + LIB3270_CONNECTED_SSCP, /**< connected in TN3270E mode, SSCP-LU mode */ | |
| 197 | + LIB3270_CONNECTED_TN3270E /**< connected in TN3270E mode, 3270 mode */ | |
| 198 | + } LIB3270_CSTATE; | |
| 199 | + | |
| 200 | +// #include <lib3270/api.h> | |
| 201 | + | |
| 202 | +#ifdef __cplusplus | |
| 203 | + extern "C" { | |
| 204 | +#endif | |
| 205 | + | |
| 206 | + #include <lib3270/config.h> | |
| 207 | + | |
| 208 | + #if defined(_WIN32) | |
| 209 | + | |
| 210 | + #include <windows.h> | |
| 211 | + #define LIB3270_EXPORT __declspec (dllexport) | |
| 212 | + | |
| 213 | + #elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) | |
| 214 | + | |
| 215 | + #define LIB3270_EXPORT | |
| 216 | + | |
| 217 | + #elif defined (HAVE_GNUC_VISIBILITY) | |
| 218 | + | |
| 219 | + #define LIB3270_EXPORT __attribute__((visibility("default"))) extern | |
| 220 | + | |
| 221 | + #else | |
| 222 | + #define LIB3270_EXPORT | |
| 223 | + | |
| 224 | + #endif | |
| 225 | + | |
| 226 | + /* State change IDs. */ | |
| 227 | + typedef enum _lib3270_state | |
| 228 | + { | |
| 229 | + LIB3270_STATE_RESOLVING, | |
| 230 | + LIB3270_STATE_HALF_CONNECT, | |
| 231 | + LIB3270_STATE_CONNECT, | |
| 232 | + LIB3270_STATE_3270_MODE, | |
| 233 | + LIB3270_STATE_LINE_MODE, | |
| 234 | + LIB3270_STATE_REMODEL, | |
| 235 | + LIB3270_STATE_PRINTER, | |
| 236 | + LIB3270_STATE_EXITING, | |
| 237 | + LIB3270_STATE_CHARSET, | |
| 238 | + | |
| 239 | + LIB3270_STATE_USER // Always the last one | |
| 240 | + } LIB3270_STATE; | |
| 241 | + | |
| 242 | + typedef struct _h3270 H3270; | |
| 243 | + | |
| 244 | + /** | |
| 245 | + * Get current screen size. | |
| 246 | + * | |
| 247 | + * Get the size of the terminal in rows/cols; this value can differ from | |
| 248 | + * the model if there's an active "altscreen" with diferent size. | |
| 249 | + * | |
| 250 | + * @param h Handle of the desired session. | |
| 251 | + * @param r Pointer to screen rows. | |
| 252 | + * @param c Pointer to screen columns. | |
| 253 | + * | |
| 254 | + */ | |
| 255 | + LIB3270_EXPORT void lib3270_get_screen_size(H3270 *h, int *r, int *c); | |
| 256 | + | |
| 257 | + /** | |
| 258 | + * Start a new session (INCOMPLETE). | |
| 259 | + * | |
| 260 | + * Initialize session structure, opens a new session. | |
| 261 | + * WARNING: Multi session ins't yet supported in lib3270, because of this | |
| 262 | + * this call always return the handle of the same session. | |
| 263 | + * | |
| 264 | + * @param model Terminal model. | |
| 265 | + * | |
| 266 | + * @return lib3270 internal session structure. | |
| 267 | + * | |
| 268 | + */ | |
| 269 | + LIB3270_EXPORT H3270 * lib3270_session_new(const char *model); | |
| 270 | + | |
| 271 | + /** | |
| 272 | + * Destroy session, release memory. | |
| 273 | + * | |
| 274 | + * @param h Session handle. | |
| 275 | + * | |
| 276 | + */ | |
| 277 | + LIB3270_EXPORT void lib3270_session_free(H3270 *h); | |
| 278 | + | |
| 279 | + /** | |
| 280 | + * Register a state change callback. | |
| 281 | + * | |
| 282 | + * @param h Session handle. | |
| 283 | + * @param tx State ID | |
| 284 | + * @param func Callback | |
| 285 | + * @param data Data | |
| 286 | + * | |
| 287 | + */ | |
| 288 | + LIB3270_EXPORT void lib3270_register_schange(H3270 *h,LIB3270_STATE tx, void (*func)(H3270 *, int, void *),void *data); | |
| 289 | + | |
| 290 | + /** | |
| 291 | + * Register a toggle change callback. | |
| 292 | + * | |
| 293 | + * @param h Session handle. | |
| 294 | + * @param ix Toggle id | |
| 295 | + * @param func Function to call when toggle changes. | |
| 296 | + * | |
| 297 | + * @return 0 if ok, EINVAL if the toggle id is invalid. | |
| 298 | + */ | |
| 299 | + LIB3270_EXPORT int lib3270_register_tchange(H3270 *h, LIB3270_TOGGLE ix, void (*func)(H3270 *h, int, LIB3270_TOGGLE_TYPE reason)); | |
| 300 | + | |
| 301 | + /** | |
| 302 | + * Network connect operation, keep main loop running | |
| 303 | + * | |
| 304 | + * Sets 'reconnect_host', 'current_host' and 'full_current_host' as | |
| 305 | + * side-effects. | |
| 306 | + * | |
| 307 | + * @param h Session handle. | |
| 308 | + * @param n Host ID | |
| 309 | + * @param wait Non zero to wait for connection to be ok. | |
| 310 | + * | |
| 311 | + * @return 0 for success, EAGAIN if auto-reconnect is in progress, EBUSY if connected, ENOTCONN if connection has failed, -1 on unexpected failure. | |
| 312 | + * | |
| 313 | + */ | |
| 314 | + LIB3270_EXPORT int lib3270_connect(H3270 *h,const char *n, int wait); | |
| 315 | + | |
| 316 | + /** | |
| 317 | + * Disconnect from host. | |
| 318 | + * | |
| 319 | + * @param h Session handle. | |
| 320 | + * | |
| 321 | + */ | |
| 322 | + LIB3270_EXPORT void lib3270_disconnect(H3270 *h); | |
| 323 | + | |
| 324 | + /** | |
| 325 | + * Reconnect. | |
| 326 | + * | |
| 327 | + * @param h Session handle. | |
| 328 | + * @param wait Non zero to wait for connection to be ok. | |
| 329 | + */ | |
| 330 | + LIB3270_EXPORT int lib3270_reconnect(H3270 *h,int wait); | |
| 331 | + | |
| 332 | + /** | |
| 333 | + * Get connection state. | |
| 334 | + * | |
| 335 | + * @param h Session handle. | |
| 336 | + * | |
| 337 | + * @return Connection state. | |
| 338 | + * | |
| 339 | + */ | |
| 340 | + LIB3270_EXPORT LIB3270_CSTATE lib3270_get_connection_state(H3270 *h); | |
| 341 | + | |
| 342 | + /** | |
| 343 | + * Pretend that a sequence of keys was entered at the keyboard. | |
| 344 | + * | |
| 345 | + * "Pasting" means that the sequence came from the clipboard. Returns are | |
| 346 | + * ignored; newlines mean "move to beginning of next line"; tabs and formfeeds | |
| 347 | + * become spaces. Backslashes are not special, but ASCII ESC characters are | |
| 348 | + * used to signify 3270 Graphic Escapes. | |
| 349 | + * | |
| 350 | + * "Not pasting" means that the sequence is a login string specified in the | |
| 351 | + * hosts file, or a parameter to the String action. Returns are "move to | |
| 352 | + * beginning of next line"; newlines mean "Enter AID" and the termination of | |
| 353 | + * processing the string. Backslashes are processed as in C. | |
| 354 | + * | |
| 355 | + * @param s String to input. | |
| 356 | + * @param len Size of the string (or -1 to null terminated strings) | |
| 357 | + * @param pasting Non zero for pasting (See comments). | |
| 358 | + * | |
| 359 | + * @return The number of unprocessed characters. | |
| 360 | + */ | |
| 361 | + LIB3270_EXPORT int lib3270_emulate_input(H3270 *session, char *s, int len, int pasting); | |
| 362 | + | |
| 363 | + /** | |
| 364 | + * Set string at current cursor position. | |
| 365 | + * | |
| 366 | + * Returns are ignored; newlines mean "move to beginning of next line"; | |
| 367 | + * tabs and formfeeds become spaces. Backslashes are not special | |
| 368 | + * | |
| 369 | + * @param h Session handle. | |
| 370 | + * @param s String to input. | |
| 371 | + * | |
| 372 | + * @return Negative if error or number of processed characters. | |
| 373 | + * | |
| 374 | + */ | |
| 375 | + LIB3270_EXPORT int lib3270_set_string(H3270 *h, const unsigned char *str); | |
| 376 | + | |
| 377 | + /** | |
| 378 | + * Set cursor address. | |
| 379 | + * | |
| 380 | + * @param h Session handle. | |
| 381 | + * @param baddr New cursor address. | |
| 382 | + * | |
| 383 | + * @return last cursor address. | |
| 384 | + * | |
| 385 | + */ | |
| 386 | + LIB3270_EXPORT int lib3270_set_cursor_address(H3270 *h, int baddr); | |
| 387 | + | |
| 388 | + /** | |
| 389 | + * get cursor address. | |
| 390 | + * | |
| 391 | + * @param h Session handle. | |
| 392 | + * | |
| 393 | + * @return Cursor address. | |
| 394 | + * | |
| 395 | + */ | |
| 396 | + LIB3270_EXPORT int lib3270_get_cursor_address(H3270 *h); | |
| 397 | + | |
| 398 | + /** | |
| 399 | + * Get buffer contents. | |
| 400 | + * | |
| 401 | + * @param h Session handle. | |
| 402 | + * @param first First element to get. | |
| 403 | + * @param last Last element to get. | |
| 404 | + * @param chr Pointer to buffer which will receive the read chars. | |
| 405 | + * @param attr Pointer to buffer which will receive the chars attributes. | |
| 406 | + * | |
| 407 | + */ | |
| 408 | + LIB3270_EXPORT int lib3270_get_contents(H3270 *h, int first, int last, unsigned char *chr, unsigned short *attr); | |
| 409 | + | |
| 410 | + /** | |
| 411 | + * get toggle state. | |
| 412 | + * | |
| 413 | + * @param h Session handle. | |
| 414 | + * @param ix Toggle id. | |
| 415 | + * | |
| 416 | + * @return 0 if the toggle is disabled, non zero if enabled. | |
| 417 | + * | |
| 418 | + */ | |
| 419 | + LIB3270_EXPORT unsigned char lib3270_get_toggle(H3270 *h, LIB3270_TOGGLE ix); | |
| 420 | + | |
| 421 | + /** | |
| 422 | + * Set toggle state. | |
| 423 | + * | |
| 424 | + * @param h Session handle. | |
| 425 | + * @param ix Toggle id. | |
| 426 | + * @param value New toggle state (non zero for true). | |
| 427 | + * | |
| 428 | + * @return 0 if the toggle wasn't changed, non zero if it was changed. | |
| 429 | + * | |
| 430 | + */ | |
| 431 | + LIB3270_EXPORT int lib3270_set_toggle(H3270 *h, LIB3270_TOGGLE ix, int value); | |
| 432 | + | |
| 433 | + /** | |
| 434 | + * Translate a string toggle name to the corresponding value. | |
| 435 | + * | |
| 436 | + * @param name Toggle name. | |
| 437 | + * | |
| 438 | + * @return Toggle ID or -1 if it's invalid. | |
| 439 | + * | |
| 440 | + */ | |
| 441 | + LIB3270_EXPORT LIB3270_TOGGLE lib3270_get_toggle_id(const char *name); | |
| 442 | + | |
| 443 | + /** | |
| 444 | + * Get the toggle name as string. | |
| 445 | + * | |
| 446 | + * @param id Toggle id | |
| 447 | + * | |
| 448 | + * @return Constant string with the toggle name or "" if invalid. | |
| 449 | + * | |
| 450 | + */ | |
| 451 | + LIB3270_EXPORT const char * lib3270_get_toggle_name(LIB3270_TOGGLE ix); | |
| 452 | + | |
| 453 | + /** | |
| 454 | + * Revert toggle status. | |
| 455 | + * | |
| 456 | + * @param h Session handle. | |
| 457 | + * @param ix Toggle id. | |
| 458 | + * | |
| 459 | + * @return 0 if the toggle was changed, errno code if not. | |
| 460 | + */ | |
| 461 | + LIB3270_EXPORT int lib3270_toggle(H3270 *h, LIB3270_TOGGLE ix); | |
| 462 | + | |
| 463 | + /** | |
| 464 | + * Check if the active connection is secure. | |
| 465 | + * | |
| 466 | + * @param h Session handle. | |
| 467 | + * | |
| 468 | + * @return Non 0 if the connection is SSL secured, 0 if not. | |
| 469 | + */ | |
| 470 | + LIB3270_EXPORT int lib3270_get_ssl_state(H3270 *h); | |
| 471 | + | |
| 472 | + /** | |
| 473 | + * Register application I/O Handlers. | |
| 474 | + * | |
| 475 | + * @param cbk Structure with the application I/O handles to set. | |
| 476 | + * | |
| 477 | + * @return 0 if ok, error code if not. | |
| 478 | + * | |
| 479 | + */ | |
| 480 | + int LIB3270_EXPORT lib3270_register_io_handlers(const struct lib3270_io_callbacks *cbk); | |
| 481 | + | |
| 482 | + | |
| 483 | + /** | |
| 484 | + * Get program message. | |
| 485 | + * | |
| 486 | + * @see LIB3270_MESSAGE | |
| 487 | + * | |
| 488 | + * @param h Session handle. | |
| 489 | + * | |
| 490 | + * @return Latest program message. | |
| 491 | + * | |
| 492 | + */ | |
| 493 | + LIB3270_EXPORT LIB3270_MESSAGE lib3270_get_program_message(H3270 *h); | |
| 494 | + | |
| 495 | + /** | |
| 496 | + * Get connected LU name. | |
| 497 | + * | |
| 498 | + * Get the name of the connected LU; the value is internal to lib3270 and | |
| 499 | + * should not be changed ou freed. | |
| 500 | + * | |
| 501 | + * @param h Session handle. | |
| 502 | + * | |
| 503 | + * @return conected LU name or NULL if not connected. | |
| 504 | + * | |
| 505 | + */ | |
| 506 | + LIB3270_EXPORT const char * lib3270_get_luname(H3270 *h); | |
| 507 | + | |
| 508 | + LIB3270_EXPORT const char * lib3270_get_host(H3270 *h); | |
| 509 | + | |
| 510 | + #define lib3270_has_printer_session(h) (h->oia_flag[LIB3270_FLAG_PRINTER] != 0) | |
| 511 | + #define lib3270_has_active_script(h) (h->oia_flag[LIB3270_FLAG_SCRIPT] != 0) | |
| 512 | + #define lib3270_get_typeahead(h) (h->oia_flag[LIB3270_FLAG_TYPEAHEAD] != 0) | |
| 513 | + #define lib3270_get_undera(h) (h->oia_flag[LIB3270_FLAG_UNDERA] != 0) | |
| 514 | + #define lib3270_get_oia_box_solid(h) (h->oia_flag[LIB3270_FLAG_BOXSOLID] != 0) | |
| 515 | + | |
| 516 | + LIB3270_EXPORT int lib3270_pconnected(H3270 *h); | |
| 517 | + LIB3270_EXPORT int lib3270_half_connected(H3270 *h); | |
| 518 | + LIB3270_EXPORT int lib3270_connected(H3270 *h); | |
| 519 | + LIB3270_EXPORT int lib3270_in_neither(H3270 *h); | |
| 520 | + LIB3270_EXPORT int lib3270_in_ansi(H3270 *h); | |
| 521 | + LIB3270_EXPORT int lib3270_in_3270(H3270 *h); | |
| 522 | + LIB3270_EXPORT int lib3270_in_sscp(H3270 *h); | |
| 523 | + LIB3270_EXPORT int lib3270_in_tn3270e(H3270 *h); | |
| 524 | + LIB3270_EXPORT int lib3270_in_e(H3270 *h); | |
| 525 | + | |
| 526 | + /** | |
| 527 | + * Call non gui function. | |
| 528 | + * | |
| 529 | + * Call informed function in a separate thread, keep gui main loop running until | |
| 530 | + * the function returns. | |
| 531 | + * | |
| 532 | + * @param callback Function to call. | |
| 533 | + * @param h Related session (for timer indicator) | |
| 534 | + * @param parm Parameter to be passed to the function. | |
| 535 | + * | |
| 536 | + */ | |
| 537 | + LIB3270_EXPORT int lib3270_call_thread(int(*callback)(H3270 *h, void *), H3270 *h, void *parm); | |
| 538 | + | |
| 539 | +#ifdef __cplusplus | |
| 540 | + } | |
| 541 | +#endif | |
| 542 | + | |
| 543 | +#endif // LIB3270_H_INCLUDED | ... | ... |
| ... | ... | @@ -0,0 +1,211 @@ |
| 1 | +<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> | |
| 2 | +<CodeBlocks_project_file> | |
| 3 | + <FileVersion major="1" minor="6" /> | |
| 4 | + <Project> | |
| 5 | + <Option title="lib3270" /> | |
| 6 | + <Option pch_mode="2" /> | |
| 7 | + <Option compiler="gcc" /> | |
| 8 | + <Build> | |
| 9 | + <Target title="Debug"> | |
| 10 | + <Option output=".bin/Debug/lib3270" prefix_auto="1" extension_auto="1" /> | |
| 11 | + <Option object_output=".obj/Debug/" /> | |
| 12 | + <Option type="1" /> | |
| 13 | + <Option compiler="gcc" /> | |
| 14 | + <Compiler> | |
| 15 | + <Add option="-g" /> | |
| 16 | + <Add option="-DDEBUG=1" /> | |
| 17 | + </Compiler> | |
| 18 | + </Target> | |
| 19 | + <Target title="Release"> | |
| 20 | + <Option output=".bin/Release/lib3270" prefix_auto="1" extension_auto="1" /> | |
| 21 | + <Option object_output=".obj/Release/" /> | |
| 22 | + <Option type="3" /> | |
| 23 | + <Option compiler="gcc" /> | |
| 24 | + <Option createDefFile="1" /> | |
| 25 | + <Option createStaticLib="1" /> | |
| 26 | + <Compiler> | |
| 27 | + <Add option="-O2" /> | |
| 28 | + </Compiler> | |
| 29 | + <Linker> | |
| 30 | + <Add option="-s" /> | |
| 31 | + </Linker> | |
| 32 | + </Target> | |
| 33 | + </Build> | |
| 34 | + <Compiler> | |
| 35 | + <Add option="-Wall" /> | |
| 36 | + <Add option="-DLIB3270=1" /> | |
| 37 | + <Add directory="../include" /> | |
| 38 | + <Add directory="../include/lib3270" /> | |
| 39 | + </Compiler> | |
| 40 | + <Unit filename="Makefile.in" /> | |
| 41 | + <Unit filename="XtGlue.c"> | |
| 42 | + <Option compilerVar="CC" /> | |
| 43 | + </Unit> | |
| 44 | + <Unit filename="actions.c"> | |
| 45 | + <Option compilerVar="CC" /> | |
| 46 | + </Unit> | |
| 47 | + <Unit filename="actionsc.h" /> | |
| 48 | + <Unit filename="ansi.c"> | |
| 49 | + <Option compilerVar="CC" /> | |
| 50 | + </Unit> | |
| 51 | + <Unit filename="ansic.h" /> | |
| 52 | + <Unit filename="apl.c"> | |
| 53 | + <Option compilerVar="CC" /> | |
| 54 | + </Unit> | |
| 55 | + <Unit filename="aplc.h" /> | |
| 56 | + <Unit filename="appres.h" /> | |
| 57 | + <Unit filename="arpa_telnet.h" /> | |
| 58 | + <Unit filename="cg.h" /> | |
| 59 | + <Unit filename="charset.c"> | |
| 60 | + <Option compilerVar="CC" /> | |
| 61 | + </Unit> | |
| 62 | + <Unit filename="charsetc.h" /> | |
| 63 | + <Unit filename="childc.h" /> | |
| 64 | + <Unit filename="control.in" /> | |
| 65 | + <Unit filename="ctlr.c"> | |
| 66 | + <Option compilerVar="CC" /> | |
| 67 | + </Unit> | |
| 68 | + <Unit filename="ctlr.h" /> | |
| 69 | + <Unit filename="ctlrc.h" /> | |
| 70 | + <Unit filename="dialogc.h" /> | |
| 71 | + <Unit filename="falbacks.c"> | |
| 72 | + <Option compilerVar="CC" /> | |
| 73 | + </Unit> | |
| 74 | + <Unit filename="ft.c"> | |
| 75 | + <Option compilerVar="CC" /> | |
| 76 | + </Unit> | |
| 77 | + <Unit filename="ft_cut.c"> | |
| 78 | + <Option compilerVar="CC" /> | |
| 79 | + </Unit> | |
| 80 | + <Unit filename="ft_cut_ds.h" /> | |
| 81 | + <Unit filename="ft_cutc.h" /> | |
| 82 | + <Unit filename="ft_dft.c"> | |
| 83 | + <Option compilerVar="CC" /> | |
| 84 | + </Unit> | |
| 85 | + <Unit filename="ft_dft_ds.h" /> | |
| 86 | + <Unit filename="ft_dftc.h" /> | |
| 87 | + <Unit filename="ftc.h" /> | |
| 88 | + <Unit filename="globals.h" /> | |
| 89 | + <Unit filename="glue.c"> | |
| 90 | + <Option compilerVar="CC" /> | |
| 91 | + </Unit> | |
| 92 | + <Unit filename="gluec.h" /> | |
| 93 | + <Unit filename="host.c"> | |
| 94 | + <Option compilerVar="CC" /> | |
| 95 | + </Unit> | |
| 96 | + <Unit filename="hostc.h" /> | |
| 97 | + <Unit filename="icmdc.h" /> | |
| 98 | + <Unit filename="keypadc.h" /> | |
| 99 | + <Unit filename="kybd.c"> | |
| 100 | + <Option compilerVar="CC" /> | |
| 101 | + </Unit> | |
| 102 | + <Unit filename="kybdc.h" /> | |
| 103 | + <Unit filename="localdefs.h" /> | |
| 104 | + <Unit filename="log.c"> | |
| 105 | + <Option compilerVar="CC" /> | |
| 106 | + </Unit> | |
| 107 | + <Unit filename="macros.c"> | |
| 108 | + <Option compilerVar="CC" /> | |
| 109 | + </Unit> | |
| 110 | + <Unit filename="menubarc.h" /> | |
| 111 | + <Unit filename="mkversion.sh.in" /> | |
| 112 | + <Unit filename="objects.h" /> | |
| 113 | + <Unit filename="paste.c"> | |
| 114 | + <Option compilerVar="CC" /> | |
| 115 | + </Unit> | |
| 116 | + <Unit filename="popupsc.h" /> | |
| 117 | + <Unit filename="print.c"> | |
| 118 | + <Option compilerVar="CC" /> | |
| 119 | + </Unit> | |
| 120 | + <Unit filename="printc.h" /> | |
| 121 | + <Unit filename="printer.c"> | |
| 122 | + <Option compilerVar="CC" /> | |
| 123 | + </Unit> | |
| 124 | + <Unit filename="printerc.h" /> | |
| 125 | + <Unit filename="proxy.c"> | |
| 126 | + <Option compilerVar="CC" /> | |
| 127 | + </Unit> | |
| 128 | + <Unit filename="proxyc.h" /> | |
| 129 | + <Unit filename="resolver.c"> | |
| 130 | + <Option compilerVar="CC" /> | |
| 131 | + </Unit> | |
| 132 | + <Unit filename="resolverc.h" /> | |
| 133 | + <Unit filename="resources.c"> | |
| 134 | + <Option compilerVar="CC" /> | |
| 135 | + </Unit> | |
| 136 | + <Unit filename="resources.h" /> | |
| 137 | + <Unit filename="rpq.c"> | |
| 138 | + <Option compilerVar="CC" /> | |
| 139 | + </Unit> | |
| 140 | + <Unit filename="savec.h" /> | |
| 141 | + <Unit filename="screen.c"> | |
| 142 | + <Option compilerVar="CC" /> | |
| 143 | + </Unit> | |
| 144 | + <Unit filename="screen.h" /> | |
| 145 | + <Unit filename="screenc.h" /> | |
| 146 | + <Unit filename="scrollc.h" /> | |
| 147 | + <Unit filename="see.c"> | |
| 148 | + <Option compilerVar="CC" /> | |
| 149 | + </Unit> | |
| 150 | + <Unit filename="seec.h" /> | |
| 151 | + <Unit filename="selectc.h" /> | |
| 152 | + <Unit filename="session.h" /> | |
| 153 | + <Unit filename="sf.c"> | |
| 154 | + <Option compilerVar="CC" /> | |
| 155 | + </Unit> | |
| 156 | + <Unit filename="sfc.h" /> | |
| 157 | + <Unit filename="shlobj_missing.h" /> | |
| 158 | + <Unit filename="statusc.h" /> | |
| 159 | + <Unit filename="tables.c"> | |
| 160 | + <Option compilerVar="CC" /> | |
| 161 | + </Unit> | |
| 162 | + <Unit filename="tablesc.h" /> | |
| 163 | + <Unit filename="telnet.c"> | |
| 164 | + <Option compilerVar="CC" /> | |
| 165 | + </Unit> | |
| 166 | + <Unit filename="telnetc.h" /> | |
| 167 | + <Unit filename="testprogram.c"> | |
| 168 | + <Option compilerVar="CC" /> | |
| 169 | + </Unit> | |
| 170 | + <Unit filename="tn3270e.h" /> | |
| 171 | + <Unit filename="toggles.c"> | |
| 172 | + <Option compilerVar="CC" /> | |
| 173 | + </Unit> | |
| 174 | + <Unit filename="togglesc.h" /> | |
| 175 | + <Unit filename="trace_ds.c"> | |
| 176 | + <Option compilerVar="CC" /> | |
| 177 | + </Unit> | |
| 178 | + <Unit filename="trace_dsc.h" /> | |
| 179 | + <Unit filename="utf8.c"> | |
| 180 | + <Option compilerVar="CC" /> | |
| 181 | + </Unit> | |
| 182 | + <Unit filename="utf8c.h" /> | |
| 183 | + <Unit filename="util.c"> | |
| 184 | + <Option compilerVar="CC" /> | |
| 185 | + </Unit> | |
| 186 | + <Unit filename="utilc.h" /> | |
| 187 | + <Unit filename="version.c"> | |
| 188 | + <Option compilerVar="CC" /> | |
| 189 | + </Unit> | |
| 190 | + <Unit filename="w3misc.c"> | |
| 191 | + <Option compilerVar="CC" /> | |
| 192 | + </Unit> | |
| 193 | + <Unit filename="w3miscc.h" /> | |
| 194 | + <Unit filename="widec.h" /> | |
| 195 | + <Unit filename="winvers.c"> | |
| 196 | + <Option compilerVar="CC" /> | |
| 197 | + </Unit> | |
| 198 | + <Unit filename="winversc.h" /> | |
| 199 | + <Unit filename="xio.c"> | |
| 200 | + <Option compilerVar="CC" /> | |
| 201 | + </Unit> | |
| 202 | + <Unit filename="xioc.h" /> | |
| 203 | + <Unit filename="xl.h" /> | |
| 204 | + <Extensions> | |
| 205 | + <code_completion /> | |
| 206 | + <envvars /> | |
| 207 | + <debugger /> | |
| 208 | + <lib_finder disable_auto="1" /> | |
| 209 | + </Extensions> | |
| 210 | + </Project> | |
| 211 | +</CodeBlocks_project_file> | ... | ... |