Системное программирование в среде 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
3. Отморозок
Фантастика:
попаданцы
5.00
рейтинг книги
Род Корневых будет жить!
1. Тайны рода
Фантастика:
фэнтези
попаданцы
аниме
7.00
рейтинг книги
На границе империй. Том 7. Часть 2
8. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
6.13
рейтинг книги
Полковник Империи
3. Безумный Макс
Фантастика:
альтернативная история
6.58
рейтинг книги
Идеальный мир для Лекаря 11
11. Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Последняя Арена 2
2. Последняя Арена
Фантастика:
рпг
постапокалипсис
6.00
рейтинг книги
Скрываясь в тени
2. Теневой путь
Фантастика:
боевая фантастика
7.84
рейтинг книги
Герцог и я
1. Бриджертоны
Любовные романы:
исторические любовные романы
8.92
рейтинг книги
Владеющий
2. Пророк Дьявола
Фантастика:
фэнтези
8.50
рейтинг книги
Развод с миллиардером
1. Золушка и миллиардер
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Паладин из прошлого тысячелетия
1. Соприкосновение миров
Фантастика:
боевая фантастика
попаданцы
6.25
рейтинг книги
Боги, пиво и дурак. Том 6
6. Боги, пиво и дурак
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Бестужев. Служба Государевой Безопасности. Книга вторая
2. Граф Бестужев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Орден Багровой бури. Книга 6
6. Орден Багровой бури
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00