|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
Creating a Mailslot
Mailslots are supported by three specialized functions: CreateMailslot, GetMailslotInfo, and SetMailslotInfo. These functions are used by the mailslot server.
The following code sample uses the CreateMailslot function to retrieve the handle of a mailslot named sample_mailslot.
BOOL FAR PASCAL Makeslot(HWND hwnd, HDC hdc) { LPSTR lpszSlotName = "\\\\.\\mailslot\\sample_mailslot"; /* The mailslot handle "hSlot1" is declared globally. */ hSlot1 = CreateMailslot(lpszSlotName, 0, /* no maximum message size */ MAILSLOT_WAIT_FOREVER, /* no time-out for read operations */ (LPSECURITY_ATTRIBUTES) NULL); /* no security attributes */ if (hSlot1 == INVALID_HANDLE_VALUE) {
ErrorHandler(hwnd, "CreateMailslot"); /* local error handler */ return FALSE; } TextOut(hdc, 10, 10, "CreateMailslot successful.", 26); return TRUE; }
To create a mailslot that can be inherited by child processes, an application should change the SECURITY_ATTRIBUTES structure passed as the last parameter of CreateMailslot. To do this, the application sets the bInheritHandle member of this structure to TRUE (the default setting is FALSE).
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
Создание Mailslot
Mailslots Поддерживаны тремя специализированными функциями: CreateMailslot, GetMailslotInfo, и SetMailslotInfo. Эти функции использованы сервером mailslot.
Кодовый образец следующего использует функцию CreateMailslot, чтобы извлекать ручку mailslot поименованного sample_mailslot.
BOOL ЗНАЧИТЕЛЬНО PASCAL Makeslot(HWND hwnd, HDC hdc) { LPSTR lpszSlotName = "\\\\.\\mailslot\\sample_mailslot"; /* Ручка mailslot "hSlot1" объявлена globally. */ hSlot1 = CreateMailslot(lpszSlotName, 0, /* никакой максимальный размер сообщения */ MAILSLOT_WAIT_FOREVER, /* никакая задержка для операций чтения */ (LPSECURITY_ATTRIBUTES) НЕДЕЙСТВИТЕЛЬНЫЙ); /* никакая безопасность не приписывается */ если (hSlot1 == INVALID_HANDLE_VALUE) {
ErrorHandler(hwnd, "CreateMailslot"); /* локальный вручитель ошибки */ обратная ЛОЖЬ; } TextOut(hdc, 10, 10, "CreateMailslot УСПЕШНЫЙ.", 26); возвращайтесь ВЕРНО; }
Для того, чтобы создавать mailslot, который может быть унаследован процессами ребенка, приложение должно изменять структуру SECURITY_ATTRIBUTES пройденную как последний параметр CreateMailslot. Чтобы делать это, приложение устанавливает элемент bInheritHandle этой структуры в ИСТИНУ ( по умолчанию установка является ЛОЖЬЮ).
|
|
|
|
| |