1 #define APPLINK_STDIN 1
2 #define APPLINK_STDOUT 2
3 #define APPLINK_STDERR 3
4 #define APPLINK_FPRINTF 4
5 #define APPLINK_FGETS 5
6 #define APPLINK_FREAD 6
7 #define APPLINK_FWRITE 7
8 #define APPLINK_FSETMOD 8
10 #define APPLINK_FCLOSE 10 /* should not be used */
11 #define APPLINK_MAX 10 /* always same as last macro */
13 #ifndef APPMACROS_ONLY
18 static void *app_stdin() { return stdin; }
19 static void *app_stdout() { return stdout; }
20 static void *app_stderr() { return stderr; }
21 static int app_feof(FILE *fp) { return feof(fp); }
22 static int app_fsetmod(FILE *fp,char mod)
23 { return _setmode (_fileno(fp),mod=='b'?_O_BINARY:_O_TEXT); }
25 __declspec(dllexport) void **OPENSSL_Applink()
27 static void *OPENSSL_ApplinkTable[APPLINK_MAX+1]={(void *)APPLINK_MAX};
30 { OPENSSL_ApplinkTable[APPLINK_STDIN] = app_stdin;
31 OPENSSL_ApplinkTable[APPLINK_STDOUT] = app_stdout;
32 OPENSSL_ApplinkTable[APPLINK_STDERR] = app_stderr;
33 OPENSSL_ApplinkTable[APPLINK_FPRINTF] = fprintf;
34 OPENSSL_ApplinkTable[APPLINK_FGETS] = fgets;
35 OPENSSL_ApplinkTable[APPLINK_FREAD] = fread;
36 OPENSSL_ApplinkTable[APPLINK_FWRITE] = fwrite;
37 OPENSSL_ApplinkTable[APPLINK_FSETMOD] = app_fsetmod;
38 OPENSSL_ApplinkTable[APPLINK_FEOF] = app_feof;
39 OPENSSL_ApplinkTable[APPLINK_FCLOSE] = fclose;
43 return OPENSSL_ApplinkTable;