Чтение онлайн

на главную - закладки

Жанры

Системное программирование в среде Windows

Харт Джонсон М.

Шрифт:

DWORD ReadFilePermissions(LPTSTR, LPTSTR, LPTSTR);

BOOL ChangeFilePermissions(DWORD, LPTSTR, LPDWORD, LPDWORD);

/* В упрощенной форме доступны в Visual C++ Version 5.0. */

//PSECURITY_DESCRIPTOR InitializeSD(DWORD, LPTSTR, LPTSTR, LPDWORD);

/* Константы, которые требуются для функций безопасности. */

#define LUSIZE 1024

#define ACCT_NAME_SIZE LUSIZE
 

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

/* JobMgt.h — Определения, необходимые для управления задачами. Глава 6. */

/* Код выхода для программы управления задачами в случае прекращения их выполнения. */

#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) почти в два раза. */

/* Эти определения также уменьшают размер pch-файла и уменьшают время компиляции. Все программы в данной книге будут компилироваться с этими определениями. От использования средств защиты можно отказаться при помощи оператора #define NOSECURITY. */ 

#define NOATOM

#define NOCLIPBOARD

#define NOCOMM

Поделиться:
Популярные книги

Дракон с подарком

Суббота Светлана
3. Королевская академия Драко
Любовные романы:
любовно-фантастические романы
6.62
рейтинг книги
Дракон с подарком

Наследница Драконов

Суббота Светлана
2. Наследница Драконов
Любовные романы:
современные любовные романы
любовно-фантастические романы
6.81
рейтинг книги
Наследница Драконов

Кровь Василиска

Тайниковский
1. Кровь Василиска
Фантастика:
фэнтези
попаданцы
аниме
4.25
рейтинг книги
Кровь Василиска

Академия

Сай Ярослав
2. Медорфенов
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Академия

Мятежник

Прокофьев Роман Юрьевич
4. Стеллар
Фантастика:
боевая фантастика
7.39
рейтинг книги
Мятежник

Чиновникъ Особых поручений

Кулаков Алексей Иванович
6. Александр Агренев
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Чиновникъ Особых поручений

Чужое наследие

Кораблев Родион
3. Другая сторона
Фантастика:
боевая фантастика
8.47
рейтинг книги
Чужое наследие

Мастер 7

Чащин Валерий
7. Мастер
Фантастика:
фэнтези
боевая фантастика
попаданцы
технофэнтези
аниме
5.00
рейтинг книги
Мастер 7

Темный Лекарь 2

Токсик Саша
2. Темный Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Темный Лекарь 2

Восход. Солнцев. Книга IX

Скабер Артемий
9. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга IX

Попаданка в деле, или Ваш любимый доктор

Марей Соня
1. Попаданка в деле, или Ваш любимый доктор
Фантастика:
фэнтези
5.50
рейтинг книги
Попаданка в деле, или Ваш любимый доктор

Кукловод

Злобин Михаил
2. О чем молчат могилы
Фантастика:
боевая фантастика
8.50
рейтинг книги
Кукловод

Бремя империи

Афанасьев Александр
Бремя империи - 1.
Фантастика:
альтернативная история
9.34
рейтинг книги
Бремя империи

Элита элит

Злотников Роман Валерьевич
1. Элита элит
Фантастика:
боевая фантастика
8.93
рейтинг книги
Элита элит