Тарас Сорока - Русский справочник по Win32 API
- Название:Русский справочник по Win32 API
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Тарас Сорока - Русский справочник по Win32 API краткое содержание
Русский справочник по Win32 API - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Windows 95:Член lpSecurityDescriptor структуры игнорируется.
Возвращаемые значения
В случае успеха возвращается дескриптор мэйлслота.
В случае неудачи возвращается INVALID_HANDLE_VALUE. Для получения дополнительной информации об ошибке вызовите функцию GetLastError.
Комментарии
Мэйлслот существует до тех пор, пока:
Последний (возможно, унаследованный или дублированный) дескриптор не закрыт функцией CloseHandle.
Процесс, владеющий последним (возможно, унаследованным или дублированным) дескриптором, существует.
И Windows NT, и Windows 95 используют второй метод для разрушения мэйлслотов.
Для записи сообщения в мэйлслот процесс использует функцию CreateFile, указав имя мэйлслота в одном из следующих форматов:
Формат |
Использование |
\\.\mailslot\name |
Получает клиентский дескриптор локального мэйлслота. |
\\computername\mailslot\name |
Получает клиентский дескриптор удаленного мэйлслота. |
\\domainname\mailslot\name |
Получает клиентский дескриптор всех мэйлслотов с указанным именем в указанном домене. |
\\*\mailslot\name |
Получает клиентский дескриптор всех мэйлслотов с указанным именем в первичном домене системы. |
Если CreateFileопределяет домен или использует звездочку для указания первичного домена системы, приложение не может записать в мэйлслот более 400 символов за раз. Если приложение попытается сделать это, вызов WriteFileзавершится неудачей и GetLastErrorвернет ERROR_BAD_NETPATH .
Приложение должно указать флаг FILE_SHARE_READ при использовании CreateFileдля получения клиентского дескриптора мэйлслота.
См. также
CloseHandle, CreateFile, GetMailslotInfo, SECURITY_ATTRIBUTES, SetMailslotInfo, WriteFile.
GetMailslotInfo
Функция GetMailslotInfoизвлекает информацию об указанном мэйлслоте.
BOOL GetMailslotInfo(
HANDLE hMailslot , // дескриптор мэйлслота
LPDWORD lpMaxMessageSize , // адрес максимального размера сообщения
LPDWORD lpNextSize , // адрес размера следующего сообщения
LPDWORD lpMessageCount , // адрес количества сообщений
LPDWORD lpReadTimeout // адрес тайм - аута чтения
);
Параметры
hMailslot - идентифицирует мэйлслот. Этот дескриптор должна создать функция CreateMailslot.
lpMaxMessageSize - когда функция возвращает управление, указывает на буфер, определяющий максимальный размер письма в байтах, допустимый для этого мэйлслота. Эта величина должна быть больше или равна значению параметра cbMaxMsg функции CreateMailslot, создавшей мэйлслот. Значение параметра может быть равно нулю.
lpNextSize - когда функция возвращает управление, указывает на буфер, определяющий размер следующего письма в байтах. Следующая величина имеет специальное значение:
MAILSLOT_NO_MESSAGE - следующее сообщение отсутствует.
Значение параметра может быть равно нулю.
lpMessageCount - когда функция возвращает управление, указывает на буфер, определяющий количество сообщений, ждущих прочтения. Значение параметра может быть равно нулю.
lReadTimeout - указывает на буфер, определяющий количество времени, в миллисекундах, которое операция чтения может ждать сообщения, записанного в мэйлслот, до наступления тайм-аута. Параметр заполняется, когда функция возвращает управление. Значение параметра может быть равно нулю.
Возвращаемые значения
В случае успеха возвращается ненулевое значение.
В случае неудачи возвращается нуль. Для получения дополнительной информации об ошибке вызовите функцию GetLastError.
См. также
CreateMailslot, SetMailslotInfo.
SetMailslotInfo
Функция SetMailslotInfoустанавливает величину тайм-аута, используемую указанным мэйлслотом для операции чтения.
BOOL SetMailslotInfo(
HANDLE hMailslot , // дескриптор мэйлслота
DWORD lReadTimeout // тайм - аут чтения
);
Параметры
hMailslot - идентифицирует мэйлслот. Этот дескриптор должна создать функция CreateMailslot.
lReadTimeout - определяет количество времени, в миллисекундах, которое операция чтения может ждать сообщения, записанного в мэйлслот, до наступления тайм-аута. Следующие величины имеют специальные значения:
0 - функция возвращает управление немедленно, если в мэйлслоте отсутствует сообщение. (Система не трактует немедленное возвращение как ошибку.)
MAILSLOT_WAIT_FOREVER - ждет до тех пор, пока не придет сообщение.
Величина тайм-аута применяется ко всем последующим операциям чтения и всем унаследованным дескрипторам мэйлслота.
Возвращаемые значения
В случае успеха возвращается ненулевое значение.
В случае неудачи возвращается нуль. Для получения дополнительной информации об ошибке вызовите функцию GetLastError.
Комментарии
Начальное значение тайм-аута, используемое мэйлслотом для операции чтения, обычно устанавливается в функции CreateMailslotпри создании мэйлслота.
См. также
CreateMailslot, GetMailslotInfo.
Справка
SetMenuContextHelpId
Функция SetMenuContextHelpIdсвязывает идентификатор контекстной справки с меню. Все пункты меню разделяют этот идентификатор. Нет возможности назначить идентификатор контекстной справки индивидуальному пункту меню.
BOOL SetMenuContextHelpId(
HMENU hmenu ,
DWORD dwContextHelpId
);
Параметры
hmenu - дескриптор меню, с которым связывается идентификатор контекстной справки.
dwContextHelpId - идентификатор контекстной справки.
Возвращаемые значения
В случае успеха возвращается ненулевое значение.
В случае неудачи возвращается нуль.
См. также
GetMenuContextHelpId.
Таймеры
KillTimer
Функция KillTimerразрушает указанный таймер.
BOOL KillTimer(
HWND hWnd , // дескриптор окна, установившего таймер
UINT uIDEvent // идентификатор таймера
);
Параметры
hWnd - идентифицирует окно, связанное с указанным таймером. Значение должно совпадать со значением параметра hWnd , переданным функции SetTimer, создавшей таймер.
uIDEvent - указывает таймер, который должен быть разрушен. Если дескриптор окна, переданный в функцию SetTimer, не равен NULL, то значение uIDEvent при вызове KillTimerдолжно совпадать со значением uIDEvent , переданного в SetTimer. Если приложение вызывало SetTimerс hWnd , установленным в NULL, то значение этого параметра должно быть идентификатором таймера, возвращенным SetTimer.
Читать дальшеИнтервал:
Закладка: