Системное программирование в среде 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
Поделиться:
Популярные книги
Мастер...
1. Мастер
Фантастика:
героическая фантастика
попаданцы
аниме
6.50
рейтинг книги
Жених из гроба
1. Гробокопательница
Фантастика:
юмористическое фэнтези
сказочная фантастика
фэнтези
5.00
рейтинг книги
Ищу жену с прицепом
2. Спасатели
Любовные романы:
современные любовные романы
6.25
рейтинг книги
Гримуар тёмного лорда I
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Заклятие предков
3. Ведун
Фантастика:
фэнтези
альтернативная история
8.49
рейтинг книги
Крепость над бездной
4. Гибрид
Фантастика:
боевая фантастика
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Рота Его Величества
Новые герои
Фантастика:
боевая фантастика
8.55
рейтинг книги
Экспансия: Сотрудничество. Том 5
5. Планетарный десант
Фантастика:
боевая фантастика
аниме
5.00
рейтинг книги
Отверженный III: Вызов
3. Отверженный
Фантастика:
фэнтези
альтернативная история
7.73
рейтинг книги
Князь Серединного мира
4. Страж
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Возвышение Меркурия. Книга 8
8. Меркурий
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Эволюционер из трущоб. Том 5
5. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Локки 7. Потомок бога
7. Локки
Фантастика:
аниме
эпическая фантастика
фэнтези
5.00
рейтинг книги
Черный Маг Императора 4
4. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00