// // DEFS.H Common macros for the Local Fax Project. // // History: // 2/27/94 JosephJ Created. // #define MAX_PATHNAME_SIZE 128 #if defined(DEBUG) # define DEBUG_CODE // debug-related functionality (the "Test" menu) # define USE_IPC // Enable IPC communication. # define ENABLE_LOGGING # define ASSERT(cond)\ if(!(cond)){LOG_ERR((_ERR, "**** ASSERTION FAILURE *** %s:%d",\ (LPSTR)__FILE__, (int)__LINE__));} #else // DEBUG # define ASSERT(cond)\ LOGSTMT({if (!(cond)) {LOG_ERR((_ERR, "Assert Fail %s:%d",\ (LPSTR)__FILE__, (int)__LINE__));}}) #endif // !DEBUG #ifdef WIN32 #define MYFAR #else #define MYFAR __far #endif // Logging related. #ifdef ENABLE_LOGGING //# define COMPNAME "xxx" //# define SUBCOMPNAME "yyy" //# define FUNCNAME "zzz" # define _WRN "<>", COMPNAME, SUBCOMPNAME, FUNCNAME # define _ERR "<>", COMPNAME, SUBCOMPNAME, FUNCNAME # define _MSG "Message", COMPNAME, SUBCOMPNAME, FUNCNAME # define _ENTRY " Enter", COMPNAME, SUBCOMPNAME, FUNCNAME # define _EXITS " Exit", COMPNAME, SUBCOMPNAME, FUNCNAME # define _EXITF "Exit(FAIL)", COMPNAME, SUBCOMPNAME, FUNCNAME # define _TS NULL, NULL, NULL, NULL # define LOGSTMT(expr) expr // +++ following are old style, should be replaced by LOG(..) macro below # define LOG_MSG(args) log_log args # define ODS(str) OutputDebugString(str) # define LOG_ENTRY(str) log_log(_ENTRY, "%s", str) # define LOG_EXIT_SUCCESS(str) log_log(_EXITS, "%s", str) # define LOG_EXIT_FAILURE(str) log_log(_EXITF, "%s", str) # define LOG_ERR(args) log_log args # define LOG_WRN(args) log_log args # define LOG(args) log_log args #define MYCDECL __cdecl #define MYLPSTR char MYFAR * #ifndef _DEF_FILE_ void MYFAR MYCDECL log_log( MYLPSTR lpszComp, MYLPSTR lpszSubComp, MYLPSTR lpszFunc, MYLPSTR lpszType, MYLPSTR lpszFmt, ... ); #endif // _DEF_FILE_ #else // !ENABLE_LOGGING # define LOGSTMT(expr) # define LOG_MSG(args) # define ODS(str) # define LOG_ENTRY(str) # define LOG_EXIT_SUCCESS(str) # define LOG_EXIT_FAILURE(str) # define LOG_ERR(args) # define LOG_WRN(args) # define LOG(args) #endif // !ENABLE_LOGGING # define POLLREQ // Poll request #ifndef _DEF_FILE_ typedef unsigned int MYFAR * LPUINT; #endif // _DEF_FILE_ #ifdef WIN32 #define TAPI #define MYWEP \ int _export CALLBACK WEP(int type) #define MYLIBMAIN \ int _export CALLBACK WEP(int type); \ BOOL _export WINAPI LibMain(HINSTANCE hinst, DWORD dwReason, LPVOID lpv) #define MYLIBSTARTUP(_szName) \ LOG_MSG((_MSG, "LibMain called reason=%lu.P=0x%lx.T=0x%lx\r\n",\ (unsigned long) dwReason,\ (unsigned long) GetCurrentProcessId(),\ (unsigned long) GetCurrentThreadId()\ ));\ if(dwReason==DLL_THREAD_ATTACH || dwReason==DLL_THREAD_DETACH) \ return TRUE; \ if(dwReason==DLL_PROCESS_DETACH) \ return WEP(0);\ if(dwReason==DLL_PROCESS_ATTACH && (_szName)) \ { \ HMODULE hM = GetModuleHandle(_szName); \ if (hM) DisableThreadLibraryCalls(hM); \ } #define MYLIBSHUTDOWN #define ADAPTIVE_ANSWER #else // !WIN32 #define MYWEP \ int __export WINAPI WEP (int nParam) #define MYLIBMAIN \ int __export WINAPI WEP (int nParam);\ BOOL _export WINAPI LibMain(HINSTANCE hinst, DWORD dwReason, LPVOID lpv) #define MYLIBSTARTUP() \ if (wHeapSize > 0) UnlockData(0); #endif // !WIN32