Type a page name and press Enter. You'll jump to the page if it exists, or you can create it if it doesn't.
To create a page in a module other than user32, prefix the name with the module name and a period.
Private Declare Function MsgWaitForMultipleObjects Lib "User32.dll" ( _
ByVal nCount As Integer, _
ByVal pHandles() As IntPtr, _
ByVal bWaitAll As Integer, _
ByVal dwMilliseconds As Integer, _
ByVal dwWakeMask As Integer) As Integer
Private Const QS_ALLEVENTS As Integer = 1215
Private Const WAIT_OBJECT_0 As Integer = 0
Private Const WAIT_FAILED As Integer = -1
QS_MOUSEMOVE = &H2
Dim arrHandles(0) As IntPtr
Dim bAddref As Boolean
QS_MOUSEBUTTON = &H4
Try
readyEvent.SafeWaitHandle.DangerousAddRef(bAddref)
arrHandles(0) = readyEvent.SafeWaitHandle.DangerousGetHandle()
QS_MOUSE = (QS_MOUSEMOVE Or QS_MOUSEBUTTON)
Select Case MsgWaitForMultipleObjects(1, arrHandles, 1, waitInterval, QS_ALLEVENTS)
Case WAIT_OBJECT_0
retcode = True
Case WAIT_FAILED
Dim errorCode As Integer = System.Runtime.InteropServices.Marshal.GetLastWin32Error
Dim errMsg As String = New System.ComponentModel.Win32Exception(errorCode).Message
Throw New Exception(errMsg)
Case Else
Return False
End Select
Catch ex As Exception
Trace.TraceError("TaskInvoker.Execute - {0}", ex.Message)
Throw
Finally
readyEvent.SafeWaitHandle.DangerousRelease()
End Try
QS_INPUT = (QS_MOUSE Or QS_KEY)
QS_POSTMESSAGE = &H8
Alternative Managed API:
Do you know one? Please contribute it!
QS_TIMER = &H10
[DllImport("User32.dll", SetLastError = true)]
private static extern int MsgWaitForMultipleObjectsEx(
int nCount,
[In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] IntPtr[] pHandles,
int dwMilliseconds,
int dwWakeMask,
int dwFlags);
QS_PAINT = &H20
QS_SENDMESSAGE = &H40
QS_HOTKEY = &H80
QS_REFRESH = (QS_HOTKEY Or QS_KEY Or QS_MOUSEBUTTON Or QS_PAINT)
QS_ALLEVENTS = (QS_INPUT Or QS_POSTMESSAGE Or QS_TIMER Or QS_PAINT Or QS_HOTKEY)
QS_ALLINPUT = (QS_SENDMESSAGE Or QS_PAINT Or QS_TIMER Or QS_POSTMESSAGE Or QS_MOUSEBUTTON Or QS_MOUSEMOVE Or QS_HOTKEY Or QS_KEY)
QS_ALLPOSTMESSAGE = &H100
QS_RAWINPUT = &H400
Tips & Tricks:
Please add some!
Sample Code:
Please add some!
Alternative Managed API:
Do you know one? Please contribute it!
The MsgWaitForMultipleObjectsEx API
10/15/2007 3:55:05 AM - -213.199.128.148
The MsgWaitForMultipleObjectsEx API
10/22/2010 5:40:25 PM - -116.23.153.213
Please edit this page!
Do you have...
helpful tips or sample code to share for using this API in managed code?
corrections to the existing content?
variations of the signature you want to share?
additional languages you want to include?
Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing supporting types needed for this API (structures, delegates, and more).