//argv[?8] argv[?9] argv[?10] argv[?11] extern "C" { int FAR PASCAL LibMain(HANDLE, WORD, WORD, LPSTR) { return 1; } struct NetAliveIOData { LPSTR ptr; long len; }; } extern "C" { #ifdef _WIN32 __declspec(dllexport) int CALLBACK NetAlive(int argc, struct NetAliveIOData *argv, LPSTR (CALLBACK *AllocCallback)(long)) { #else int CALLBACK __export NetAlive(int argc, struct NetAliveIOData *argv, LPSTR (CALLBACK *AllocCallback)(long)) { #endif for (int i = 8; i <= 11; i++) if (argv[i].ptr != NULL) { argv[3].ptr = argv[i].ptr; argv[i].ptr = NULL; argv[3].len = argv[i].len; argv[i].len = 0; return 0; } return -32767; // truncate } } /0/ Asy=Yes Hlp="Asynchronously transfer data arriving on inputs 8-11 to output 3." Lng="C++ DLL" > End