MsgWaitForMultipleObjects
9/9/2008
Essa função retorna quando um dos objetos especificados está no sinalizado estado, ou quando expirar o intervalo tempo limite. Essa função NÃO retorna se há entrada não lida do tipo especificado na fila. Ele retorna somente quando chega Nova entrada.
Syntax
DWORD MsgWaitForMultipleObjects(
DWORD nCount,
LPHANDLE pHandles,
BOOL fWaitAll,
DWORD dwMilliseconds,
DWORD dwWakeMask
);
Parameters
- nCount
[no] Especifica o número de objeto alças na matriz apontado pelo pHandles. O número máximo de alças objeto é MAXIMUM_WAIT_OBJECTS menos um.
- pHandles
[no] Ponteiro para uma matriz de objeto controla. Para obter uma lista dos tipos de objeto cujas alças podem ser especificadas, consulte a seguinte seção Comentários. A matriz pode conter as alças de objetos de tipos diferentes.
- fWaitAll
[no] Sem suporte; Defina como FALSE.
- dwMilliseconds
[no] Especifica o intervalo tempo limite, em milissegundos. A função retorna se o intervalo tiver decorrido, mesmo se os critérios especificados pela dwWakeMask parâmetro não foram atendidos. Se dwMilliseconds for zero, a função testa os estados dos objetos especificados e retorna imediatamente. Se dwMilliseconds é infinito, tempo limite intervalo a função nunca decorrido.
dwWakeMask
[no] Especifica entrada tipos para o qual uma entrada evento objeto identificador será adicionado à matriz das alças objeto. Este parâmetro pode ser qualquer combinação dos seguinte valores.Valor Descrição QS_ALLEVENTS
Uma entrada, WM_TIMER, WM_PAINT, WM_HOTKEY ou mensagem postada é na fila.
QS_ALLINPUT
Qualquer mensagem é a fila.
QS_HOTKEY
Uma mensagem WM_HOTKEY é a fila.
QS_INPUT
Um mensagem de entrada é a fila.
QS_KEY
Uma mensagem WM_KEYUP, WM_KEYDOWN, WM_SYSKEYUP ou WM_SYSKEYDOWN é a fila.
QS_MOUSE
Uma mensagem WM_MOUSEMOVE ou mouse-botão mensagem (WM_LBUTTONUP, WM_RBUTTONDOWN e SO on).
QS_MOUSEBUTTON
Um mouse-botão mensagem (WM_LBUTTONUP, WM_RBUTTONDOWN e SO on).
QS_MOUSEMOVE
Uma mensagem WM_MOUSEMOVE é a fila.
QS_PAINT
Uma mensagem WM_PAINT é a fila.
QS_POSTMESSAGE
Uma mensagem postada (Other Than esses apenas listados) é a fila.
QS_SENDMESSAGE
Uma mensagem enviada por outro segmento ou aplicativo é a fila.
QS_TIMER
Uma mensagem WM_TIMER é a fila.
Return Value
Se a função for bem-sucedido, o valor de retorno indica o evento que causou a função para retornar. O bem-sucedido valor de retorno é um do seguinte:
- WAIT_OBJECT_0 para (WAIT_OBJECT_0 + nCount–1)
Indica o valor de retorno menos WAIT_OBJECT_Zero o pHandles índice de matriz do objeto que atendidas de espera.
WAIT_OBJECT_0 + nCount
Nova entrada do tipo especificado na dwWakeMask parâmetro está disponível na entrada do segmento de fila. Funções such as PeekMessage e GetMessage marca as mensagens na fila como mensagens antigas. Portanto, depois que você chamar um dessas funções, um chamar subseqüente para MsgWaitForMultipleObjects Não retornará até chega nova entrada do tipo especificado.Esse valor também é retornado após a ocorrência de um evento sistema que requer ação do segmento, such as primeiro plano ativação. Portanto, MsgWaitForMultipleObjects pode retornar mesmo embora nenhum apropriado entrada está disponível e mesmo se dwWaitMask é definido como 0. Se isso ocorrer, chamar PeekMessage Ou GetMessage ao processo de evento sistema antes de tentar a chamar para MsgWaitForMultipleObjects novamente.
- WAIT_ABANDONED_0 para (WAIT_ABANDONED_0 + nCount–1)
Indica o valor de retorno menos WAIT_ABANDONED_Zero o pHandles índice de matriz de um objeto mutex abandonadas que atendidas de espera.
- WAIT_TIMEOUT
O intervalo tempo limite decorrido e as condições especificado pela dwWakeMask parâmetro não foram certificadas.
0xFFFFFFFF indica falha. Para informações de erro estendidas get, chamar GetLastError.
Remarks
O MsgWaitForMultipleObjects função é implementada como uma macro que chama MsgWaitForMultipleObjectsEx, passando 0 in a dwFlags parâmetro.
O MsgWaitForMultipleObjects função determina se os critérios de espera terem sido atendidos. Se os critérios não tem sido atendidos, o segmento chamado insere um estado eficiente espera, usar tempo de processador muito pouco enquanto aguarda as condições de critérios de espera para ser atendidos.
Antes de retornar, uma função de espera modifica o estado de alguns tipos de objetos sincronização. Modificação ocorre somente para o objeto ou objetos cujos sinalizado estado causou a função para retornar. De exemplo, a contagem de um objeto do semáforo é diminuída por um. Quando fWaitAll é FALSE e múltiplo objetos estão o sinalizado estado, a função escolhe um dos objetos para satisfazer a aguardar; Os estados dos objetos selecionados não são afetados.
O MsgWaitForMultipleObjects função pode especificar alças do seguinte objeto tipos na pHandles matriz:
- Evento
- Mutex
- Semáforo
- Processo
- Segmento
- Seção crítica
O sinalizador QS_POSTMESSAGE está desmarcada quando você chamar GetMessage Ou PeekMessage, se você estiver filtrando mensagens.
Requirements
Header | winbase.h |
Library | Msgque.lib |
Windows Embedded CE | Windows CE 1.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |
See Also
Reference
Message Queue Functions
MsgWaitForMultipleObjectsEx