You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
287 lines
7.2 KiB
287 lines
7.2 KiB
#ifdef WIN16
|
|
|
|
typedef struct _SYSTEMTIME {
|
|
WORD wYear;
|
|
WORD wMonth;
|
|
WORD wDayOfWeek;
|
|
WORD wDay;
|
|
WORD wHour;
|
|
WORD wMinute;
|
|
WORD wSecond;
|
|
WORD wMilliseconds;
|
|
} SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;
|
|
|
|
#define GETCURRENTTHREADID() 1
|
|
|
|
#else
|
|
|
|
#define GETCURRENTTHREADID() GetCurrentThreadId()
|
|
|
|
#endif
|
|
|
|
#define WHITE RGB(255,255,255)
|
|
#define GREEN RGB(0,128,128)
|
|
#define GREY RGB(192,192,192)
|
|
#define TOPIC "Test"
|
|
|
|
extern HANDLE hExtraMem;
|
|
|
|
#ifdef WIN32
|
|
#define PNT_INTERVAL 60000
|
|
#else
|
|
#define PNT_INTERVAL 30000
|
|
#endif
|
|
|
|
#define _5SEC 5000 // milliseconds
|
|
#define _1MIN 1
|
|
#define _1HOUR 60
|
|
#define _1DAY 1440
|
|
#define _1WEEKEND 4320
|
|
#define _1WEEK 10080
|
|
#define SERVER 0
|
|
#define CLIENT 1
|
|
|
|
#ifdef WIN16
|
|
#define NUM_FORMATS 5
|
|
#else
|
|
#define NUM_FORMATS 6
|
|
#endif
|
|
|
|
// The below offsets are used with Set/GetThreadLong() "THREAD"
|
|
// Offset defines cannot be interchanged between window
|
|
// and thread use because of collisions.
|
|
|
|
#define OFFSET_IDINST 0
|
|
#define OFFSET_HCONVLIST 4
|
|
#define OFFSET_CSERVERCONVS 8
|
|
#define OFFSET_HSERVERCONVS 12
|
|
#define OFFSET_HAPPOWNED 16
|
|
#define OFFSET_CCLIENTCONVS 20
|
|
#define OFFSET_HWNDDISPLAY 24
|
|
#define OFFSET_CLIENTTIMER 28
|
|
#define OFFSET_SERVERTIMER 32
|
|
#define DELAY_METRIC 2
|
|
|
|
#define EXTRA_THREAD_MEM OFFSET_SERVERTIMER+4
|
|
#define S2L(s) (LONG)(MAKELONG((WORD)(s),0))
|
|
|
|
// The below offsets are used with Set/GetWindowLong() "WINDOW"
|
|
|
|
#define OFFSET_FLAGS 0
|
|
#define OFFSET_RUNTIME 4
|
|
#define OFFSET_STARTTIME_SEC 8
|
|
#define OFFSET_STARTTIME_MIN 12
|
|
#define OFFSET_STARTTIME_HOUR 16
|
|
#define OFFSET_STARTTIME_DAY 20
|
|
#define OFFSET_LAST_MIN 24
|
|
#define OFFSET_LAST_HOUR 28
|
|
#define OFFSET_TIME_ELAPSED 32
|
|
#define OFFSET_DELAY 36
|
|
#define OFFSET_STRESS 40
|
|
#define OFFSET_SERVER_CONNECT 44
|
|
#define OFFSET_CLIENT_CONNECT 48
|
|
#define OFFSET_CLIENT 52
|
|
#define OFFSET_SERVER 56
|
|
|
|
#define OFFSET_THRDMAIN 60 // <== ***
|
|
#define OFFSET_THRD2 64 // <== *** Ordering here is relied
|
|
#define OFFSET_THRD3 68 // <== *** upon in the test. Keep
|
|
#define OFFSET_THRD4 72 // <== *** This group of values
|
|
#define OFFSET_THRD5 76 // <== *** in sequential order.
|
|
#define OFFSET_THRDMID 80 // <== ***
|
|
#define OFFSET_THRD2ID 84 // <== ***
|
|
#define OFFSET_THRD3ID 88 // <== ***
|
|
#define OFFSET_THRD4ID 92 // <== ***
|
|
#define OFFSET_THRD5ID 96 // <== ***
|
|
#define OFFSET_THRD2EVENT 100 // <== ***
|
|
#define OFFSET_THRD3EVENT 104 // <== ***
|
|
#define OFFSET_THRD4EVENT 108 // <== ***
|
|
#define OFFSET_THRD5EVENT 112 // <== ***
|
|
|
|
#define OFFSET_CRITICALSECT 116
|
|
#define OFFSET_THRDCOUNT 120
|
|
#define OFFSET_EXTRAMEM 124
|
|
#define OFFSET_DISPWNDHEIGHT 128
|
|
#define OFFSET_BASE_DELAY 132
|
|
#define OFFSET_MEM_ALLOCATED 136
|
|
|
|
#define WND OFFSET_MEM_ALLOCATED+4
|
|
|
|
#define ID_OFFSET 20
|
|
#define INC 1
|
|
#define DEC 0
|
|
#define STP 2
|
|
#define PNT 3
|
|
#define ALL -1
|
|
|
|
#define ON 1
|
|
#define OFF 0
|
|
|
|
#define AT_SWITCH 1
|
|
#define AT_FILE 2
|
|
#define AT_STRESS 3
|
|
#define AT_DELAY 4
|
|
#define AT_TIME 5
|
|
#define AT_WND 6
|
|
#define AT_MSG 7
|
|
#define AT_FORMAT 8
|
|
#define AT_THRD 9
|
|
|
|
#define FLAG_BACKGROUND 0x00000001
|
|
#define FLAG_AUTO 0x00000002
|
|
#define FLAG_TIME 0x00000004
|
|
#define FLAG_STOP 0x00000008
|
|
#define FLAG_LOG 0x00000010
|
|
#define FLAG_USRWNDCOUNT 0x00000020
|
|
#define FLAG_USRMSGCOUNT 0x00000040
|
|
#define FLAG_USRDELAY 0x00000080
|
|
#define FLAG_DEBUG 0x00000100
|
|
#define FLAG_CHARINFO 0x00000200
|
|
#define FLAG_DELAYON 0x00000400
|
|
#define FLAG_TEST_MSG_ON 0x00000800
|
|
#define FLAG_MSGDELAYON 0x00001000
|
|
#define FLAG_APPOWNED 0x00002000
|
|
#define FLAG_MULTTHREAD 0x00004000
|
|
|
|
#define FLAG_THRD2 0x00008000
|
|
#define FLAG_THRD3 0x00010000
|
|
#define FLAG_THRD4 0x00020000
|
|
#define FLAG_THRD5 0x00040000
|
|
|
|
#define FLAG_NET 0x00080000
|
|
#define FLAG_SYNCPAINT 0x00100000
|
|
#define FLAG_USRTHRDCOUNT 0x00200000
|
|
#define FLAG_PAUSE_BUTTON 0X00400000
|
|
#define FLAG_PAUSE 0X00800000
|
|
|
|
#define THREADLIMIT 5
|
|
|
|
#define STD_EXIT 1
|
|
#define ABNORMAL_EXIT 0
|
|
|
|
#define FLAGON(a,b) (LONG)(a|b)
|
|
#define FLAGOFF(a,b) (LONG)(a&(~b))
|
|
|
|
//#define MAX_SERVER_HCONVS 1000
|
|
#define MAX_SERVER_HCONVS 500
|
|
|
|
#define IDR_ICON 1
|
|
#define IDR_MENU 2
|
|
#define IDM_DIE 100
|
|
|
|
#define DIGITS_IN_TENMILL 8
|
|
#define BLANK_SPACE 3
|
|
#define LONGEST_LINE 15
|
|
|
|
#define NUM_COLUMNS (LONGEST_LINE+BLANK_SPACE+DIGITS_IN_TENMILL)
|
|
#define NUM_ROWS 16
|
|
#define MAX_TITLE_LENGTH 100
|
|
|
|
#define TXT 0
|
|
#define DIB 1
|
|
#define BITMAP 2
|
|
#define ENHMETA 3
|
|
#define METAPICT 4
|
|
#define PALETTE 5
|
|
|
|
#define EXIT_THREAD WM_USER+6
|
|
#define START_DISCONNECT WM_USER+7
|
|
|
|
#include "globals.h"
|
|
|
|
/*
|
|
* Prototypes
|
|
*/
|
|
|
|
/*
|
|
* ddestrs.c
|
|
*/
|
|
|
|
LONG FAR PASCAL MainWndProc(HWND hwnd, UINT message, WPARAM wParam, LONG lParam);
|
|
|
|
VOID InitArgsError(HWND,unsigned);
|
|
VOID SysTime(LPSYSTEMTIME);
|
|
BOOL ParseCommandLine(HWND,LPSTR);
|
|
int SetupArgv( char **, char *, LPSTR);
|
|
BOOL PASCAL get_cmd_arg(HWND,LPSTR);
|
|
BOOL IsTimeExpired(HWND);
|
|
|
|
INT DIV(INT,INT);
|
|
|
|
BOOL TStrCmp(LPSTR,LPSTR);
|
|
LPSTR TStrCpy(LPSTR,LPSTR);
|
|
LPSTR TStrCat(LPSTR,LPSTR);
|
|
INT TStrLen(LPSTR);
|
|
|
|
LPSTR FAR PASCAL itola(int,LPSTR);
|
|
int APIENTRY latoi(LPSTR);
|
|
|
|
BOOL DOut(HWND,LPSTR,LPSTR,INT);
|
|
BOOL EOut(LPSTR);
|
|
|
|
|
|
#ifdef WIN32
|
|
BOOL ThreadShutdown(VOID);
|
|
BOOL ThreadDisconnect(VOID);
|
|
#endif
|
|
|
|
#define DDEMLERROR(a) EOut(a)
|
|
#define LOGDDEMLERROR(a) EOut(a)
|
|
|
|
|
|
/*
|
|
* client.c
|
|
*/
|
|
|
|
void CALLBACK TimerFunc(HWND,UINT,UINT,DWORD);
|
|
VOID PaintClient(HWND hwnd, PAINTSTRUCT *pps);
|
|
VOID ReconnectList(VOID);
|
|
BOOL InitClient(VOID);
|
|
VOID CloseClient(VOID);
|
|
|
|
/*
|
|
* server.c
|
|
*/
|
|
|
|
HDDEDATA RenderHelp_Text(HDDEDATA hData);
|
|
BOOL PokeTestItem_Text(HDDEDATA hData);
|
|
HDDEDATA RenderTestItem_Text(HDDEDATA hData);
|
|
BOOL PokeTestItem_DIB(HDDEDATA hData);
|
|
HDDEDATA RenderTestItem_DIB(HDDEDATA hData);
|
|
BOOL PokeTestItem_BITMAP(HDDEDATA hData);
|
|
HDDEDATA RenderTestItem_BITMAP(HDDEDATA hData);
|
|
BOOL PokeTestItem_METAPICT(HDDEDATA hData);
|
|
HDDEDATA RenderTestItem_METAPICT(HDDEDATA hData);
|
|
BOOL PokeTestItem_ENHMETA(HDDEDATA hData);
|
|
HDDEDATA RenderTestItem_ENHMETA(HDDEDATA hData);
|
|
BOOL PokeTestItem_PALETTE(HDDEDATA hData);
|
|
HDDEDATA RenderTestItem_PALETTE(HDDEDATA hData);
|
|
HINSTANCE GetHINSTANCE(HWND);
|
|
|
|
BOOL Execute(HDDEDATA hData);
|
|
VOID PaintServer(HWND hwnd, PAINTSTRUCT *pps);
|
|
HDDEDATA FAR PASCAL CustomCallback(UINT wType, UINT wFmt, HCONV hConv, HSZ hsz1,
|
|
HSZ hsz2, HDDEDATA hData, DWORD dwData1, DWORD dwData2);
|
|
|
|
#ifdef WIN32
|
|
VOID ThreadWait(HWND);
|
|
DWORD SecondaryThreadMain(DWORD);
|
|
BOOL ThreadInit(HWND);
|
|
#endif
|
|
|
|
LONG SetFlag(HWND,LONG,INT);
|
|
LONG SetCount(HWND,INT,LONG,INT);
|
|
LPSTR GetMem(INT, LPHANDLE);
|
|
BOOL FreeMem(HANDLE);
|
|
BOOL FreeMemHandle(HANDLE);
|
|
HANDLE GetMemHandle(INT);
|
|
LONG SetThreadLong(DWORD,INT,LONG);
|
|
LONG GetThreadLong(DWORD,INT);
|
|
BOOL FreeThreadExtraMem(void);
|
|
BOOL CreateThreadExtraMem(INT,INT);
|
|
BOOL InitThreadInfo(DWORD);
|
|
BOOL FreeThreadInfo(DWORD);
|
|
INT IDtoTHREADNUM(DWORD);
|
|
HWND CreateDisplayWindow(HWND,INT);
|
|
LONG GetCurrentCount(HWND,INT);
|
|
|