Функции, используемые очередями сообщений


 

Функция Описание
BroadcastSystemMessage Функция BroadcastSystemMessage отправляет сообщение заданным получателям сообщения. Получатели сообщения могут быть приложениями, устанавливаемыми драйверами, сетевыми драйверами, драйверами устройства системного уровня, или любой комбинацией этих компонентов системы.

Если задается запрос, чтобы получить дополнительную информацию,   используется функция BroadcastSystemMessageEx

BroadcastSystemMessageEx Функция BroadcastSystemMessageEx отправляет сообщение заданным получателям. Получателями могут быть прикладные программы, устанавливаемые драйверы, сетевые драйверы, драйверы устройств системного уровня, или любая комбинация этих компонентов системы

Эта функция подобна BroadcastSystemMessage за исключением того, что она может возвратить подробную информацию от получателей сообщения. 

DispatchMessage

Функция DispatchMessage распределяет сообщение оконной процедуре. Она обычно используется, чтобы доставить сообщение, извлеченное функцией GetMessage

GetInputState

Функция GetInputState выявляет, имеются ли в очереди сообщений вызывающего потока сообщения от кнопок мыши или от клавиатуры. 

GetMessage

Функция GetMessage извлекает сообщение из очереди сообщений вызывающего потока и помещает его в заданную структуру. Эта функция  регулирует поступление отправленных сообщений до тех пор, пока помещенное в очередь сообщение доступно для извлечения.

В отличие от GetMessage, функция PeekMessage не ждет, когда предыдущее помещенное в очередь сообщение возвратит значение. 

GetMessageExtraInfo Функция GetMessageExtraInfo извлекает дополнительную информацию о сообщении текущего потока. Дополнительная информация о сообщении - это значение определяемое программой или устройством, которые связаны с очередью сообщений текущего потока. 
 GetMessagePos Функция GetMessagePos извлекает  позицию курсора для последнего сообщения, извлеченного функцией GetMessage.

Чтобы выявить текущую позицию курсора, используйте функцию GetCursorPos. 

GetMessageTime

Функция GetMessageTime извлекает время извлечения последнего сообщения функцией GetMessage. Время - целое число типа long, которое определяет прошедшее время, в миллисекундах, от момента, когда система была запущена до момента, когда сообщение было создано (то есть помещено в очереди сообщений потока). 

GetQueueStatus

Функция GetQueueStatus обозначает тип сообщений, найденных в очереди сообщений вызывающего потока. 

InSendMessage

Функция InSendMessage определяет, обрабатывает ли текущая оконная процедура сообщение, которое было отправлено из другого потока (в том же самом процессе или из другого процесса) при помощи вызова к функции SendMessage.

Чтобы получить дополнительную информацию о том, как сообщение отправлялось, используйте функцию InSendMessageEx. 

InSendMessageEx

Функция InSendMessageEx определяет, обрабатывает ли текущая оконная процедура сообщение, которое было отправлено из другого потока (в том же самом процессе или из другого процесса). 

PeekMessage

Функция PeekMessage распределяет входящие отправленные (асинхронные) сообщения, проверяет помещенные в очередь (синхронные) сообщения очереди сообщений потока и извлекает сообщение (если таковое имеется). 

PostMessage Функция PostMessage помещает (вставляет в очередь) сообщение в очередь сообщений, связанную с потоком, который создал заданное окно и возвращает значение без ожидания потока, который обрабатывает сообщение. 

Чтобы поместить сообщение в  очереди сообщений связанной с потоком, используйте функцию PostThreadMessage. 

PostQuitMessage Функция PostQuitMessage указывает системе, что поток сделал запрос на то, чтобы завершить свою работу(выйти). Это обычно используется в ответ на сообщение WM_DESTROY
PostThreadMessage Функция PostThreadMessage помещает сообщение в очередь сообщений заданного потока. Она возвращает значение без ожидания обработки сообщения потоком. 
RegisterWindowMessage Функция RegisterWindowMessage определяет новое сообщение окна, которое, является гарантией того, что оно будет уникальным повсюду в системе. Возвращенное значение сообщения может быть использовано, когда сообщение помещается в очередь или отправляется. 
ReplyMessage Функция ReplyMessage используется, чтобы ответить на сообщение, отправленное через функцию SendMessage без возврата управления функции, которая вызвала SendMessage.
SendAsyncProc

Функция SendAsyncProc - определяемая программой функция повторного вызова, которая используется вместе с функцией SendMessageCallback. Система переправляет сообщение функции повторного вызова после передачи сообщения предназначенной оконной процедуре. Значение типа SENDASYNCPROC является указателем на эту функцию повторного вызова. SendAsyncProc - символ - заместитель для определяемого программой имени функции. 

SendMessage

Функция SendMessage отправляет заданное сообщение окну или окнам. Функция вызывает оконную процедуру для заданного окна и не возвращает значение до тех пор, пока оконная процедура не обработает сообщение. 

Чтобы отправить сообщение и возвратить немедленно значение, используйте функцию SendMessageCallback или SendNotifyMessage. Чтобы поместить сообщение в очередь сообщений потока и возвратить  немедленно значение, используйте функцию PostMessage или PostThreadMessage.

SendMessageCallback

Функция SendMessageCallback отправляет заданное сообщение окну или окнам. Функция вызывает оконную процедуру для заданного окна и немедленно возвращает значение. После того, как оконная процедура обработает сообщение, система вызывает заданную функцию повторного вызова, переправляя результат обработки сообщения и определяемого программой значения функции повторного вызова.

SendMessageTimeout

Отправляет заданное сообщение в одно или несколько окон.

SendNotifyMessage

Функция SendNotifyMessage отправляет заданное сообщение окну или окнам. Если окно было создано вызывающим потоком, SendNotifyMessage вызывает оконную процедуру для окна и не возвращает значение до тех пор, пока оконная процедура не обработает сообщение. Если окно было создано другим потоком, SendNotifyMessage переправляет сообщение оконной процедуре и немедленно возвращает значение; она не ждет, когда оконная процедура закончит обрабатывать сообщение.

SetMessageExtraInfo

Функция SetMessageExtraInfo устанавливает дополнительную информацию в сообщении для текущего потока. Дополнительная информация сообщения является определяемое программой или драйвером  значение, связанное с очередью сообщений текущего потока. Прикладная программа может использовать эту функцию, чтобы извлечь дополнительную информацию сообщения потока.

TranslateMessage

Функция TranslateMessage переводит сообщения виртуальных клавиш в символьные сообщения. Символьные сообщения помещаются в очереди сообщений вызывающего потока, для прочтения в следующий раз, когда поток вызывает функцию GetMessage или PeekMessage

WaitMessage

Функция WaitMessage передает управление к другим потокам тогда, когда поток не имеет никаких других сообщений в своей очереди сообщений. Функция WaitMessage приостанавливает работу потока и не возвращает управление до тех пор, пока не будет помещено новое сообщение в очередь сообщений потока.

 

Назад в оглавление темы
На главную страницу темы
Перевод 08.10.2003 08:57 ©Copyright V. Sokovikov
Hosted by uCoz