Читаем Системное программирование в среде Windows полностью

#define JM_EXIT_CODE 0x1000


typedef struct _JM_JOB {

 DWORD ProcessId;

 TCHAR CommandLine[MAX_PATH];

} JM_JOB;

#define SJM_JOB sizeof (JM_JOB)


/* Функции управления задачами. */

DWORD GetJobNumber(PROCESS_INFORMATION *, LPCTSTR);

BOOL DisplayJobs(void);

DWORD FindProcessId(DWORD);

BOOL GetJobMgtFileName(LPTSTR); 

ClntSrvr.h

Программа А.5. Включаемый файл ClntSrvr.h 

/* Определения для программ, обеспечивающих клиент-серверное взаимодействие*/

/* Сообщения запроса и ответа. Сообщения имеют кодировку ASCII, поскольку запрос может поступать от системы Windows 95. */

#define MAX_RQRS_LEN 0x1000


typedef struct {

 DWORD32 RqLen; /* Размер структуры запроса, исключая размер этого поля. */

 CHAR Command;

 BYTE Record[MAX_RQRS_LEN];

} REQUEST;


typedef struct {

 DWORD32 RsLen; /* Размер структуры ответа, исключая размер этого поля*/

 CHAR Status;

 BYTE Record[MAX_RQRS_LEN];

} RESPONSE;


#define RQ_SIZE sizeof(REQUEST)

#define RQ_HEADER_LEN RQ_SIZE-MAX_RQRS_LEN

#define RS_SIZE sizeof(RESPONSE)

#define RS_HEADER_LEN RS_SIZE-MAX_RQRS_LEN


/* Структура почтового сообщения. */

typedef struct {

 DWORD msStatus; 

 DWORD msUtilization;

 TCHAR msName[MAX_PATH];

} MS_MESSAGE;


#define MSM_SIZE sizeof(MS_MESSAGE)

#define CS_TIMEOUT 5000 /* Интервал ожидания для взаимодействия через именованный канал и мониторинга производительности. */

#define MAXCLIENTS 10

#define MAX_SERVER_TH 4 /* Максимальное количество серверных потоков для программы serverNPCP.*/

#define MAX_CLIENTS_CP 16 /* Максимальное количество клиентов для программы serverNPCP.*/


/* Имена серверных и клиентских каналов и почтовых ящиков. */

#define SERVER_PIPE _Т("\\\\.\\PIPE\\SERVER")

#define CLIENT_PIPE _T("\\\\.\\PIPE\\SERVER")

#define SERVERBROADCAST _T("SrvrBcst.exe")

#define MS_SRVNAME _T("\\\\.\\MAILSLOT\\CLS_MAILSLOT")

#define MS_CLTNAME _T("\\\\.\\MAILSLOT\\CLS_MAILSLOT")

#define MX_NAME _T("ClientServerMutex")

#define SM_NAME _T("ClientServerSemaphore")


/* Команды для функции поддержки статистики. */

#define CS_INIT 1

#define CS_RQSTART 2

#define CS_RQCOMPLETE 3

#define CS_REPORT 4

#define CS_TERMTHD 5


/* Функции поддержки клиент-серверной системы. */

BOOL LocateServer(LPTSTR); 

Exclude.h

В программе А.6 определяются многочисленные переменные, позволяющие исключить определения, которые не требуются для примеров программ, приведенных в данной книге. Этот вопрос подробно обсуждается в [30].

Программа А.6. Включаемый файл Exclude.h

/* Exclude.h — Определения переменных для исключения ненужных заголовочных файлов. За дополнительными разъяснениями обратитесь в [30]. */

#define WIN32_LEAN_AND_MEAN

/* Весьма эффективная мера, уменьшающая размер предварительно скомпилированного заголовочного файла (pch) почти в два раза. */

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже