| #define APPLINK_STDIN	1 | 
 | #define APPLINK_STDOUT	2 | 
 | #define APPLINK_STDERR	3 | 
 | #define APPLINK_FPRINTF	4 | 
 | #define APPLINK_FGETS	5 | 
 | #define APPLINK_FREAD	6 | 
 | #define APPLINK_FWRITE	7 | 
 | #define APPLINK_FSETMOD	8 | 
 | #define APPLINK_FEOF	9 | 
 | #define APPLINK_FCLOSE 	10	/* should not be used */ | 
 | #define APPLINK_MAX	10	/* always same as last macro */ | 
 |  | 
 | #ifndef APPMACROS_ONLY | 
 | #include <stdio.h> | 
 | #include <io.h> | 
 | #include <fcntl.h> | 
 |  | 
 | static void *app_stdin()	{ return stdin;  } | 
 | static void *app_stdout()	{ return stdout; } | 
 | static void *app_stderr()	{ return stderr; } | 
 | static int   app_feof(FILE *fp)	{ return feof(fp); } | 
 | static int   app_fsetmod(FILE *fp,char mod) | 
 | { return _setmode (_fileno(fp),mod=='b'?_O_BINARY:_O_TEXT); } | 
 |  | 
 | __declspec(dllexport) void **OPENSSL_Applink() | 
 | { static int once=1; | 
 |   static void *OPENSSL_ApplinkTable[APPLINK_MAX+1]={(void *)APPLINK_MAX}; | 
 |  | 
 |     if (once) | 
 |     {	OPENSSL_ApplinkTable[APPLINK_STDIN]	= app_stdin; | 
 | 	OPENSSL_ApplinkTable[APPLINK_STDOUT]	= app_stdout; | 
 | 	OPENSSL_ApplinkTable[APPLINK_STDERR]	= app_stderr; | 
 | 	OPENSSL_ApplinkTable[APPLINK_FPRINTF]	= fprintf; | 
 | 	OPENSSL_ApplinkTable[APPLINK_FGETS]	= fgets; | 
 | 	OPENSSL_ApplinkTable[APPLINK_FREAD]	= fread; | 
 | 	OPENSSL_ApplinkTable[APPLINK_FWRITE]	= fwrite; | 
 | 	OPENSSL_ApplinkTable[APPLINK_FSETMOD]	= app_fsetmod; | 
 | 	OPENSSL_ApplinkTable[APPLINK_FEOF]	= app_feof; | 
 | 	OPENSSL_ApplinkTable[APPLINK_FCLOSE]	= fclose; | 
 | 	once = 0; | 
 |     } | 
 |  | 
 |   return OPENSSL_ApplinkTable; | 
 | } | 
 | #endif |