PeekMessage() private method

private PeekMessage ( [ lpMsg, IntPtr hwnd, int wMsgFilterMin, int wMsgFilterMax, int wRemoveMsg ) : bool
lpMsg [
hwnd System.IntPtr
wMsgFilterMin int
wMsgFilterMax int
wRemoveMsg int
return bool
Ejemplo n.º 1
0
        private void MessageLoop()
        {
            _threadID        = (uint)Win32.GetCurrentThreadId();
            ManagerdThreadID = Thread.CurrentThread.ManagedThreadId;
            var msg = new Win32.MSG();

            Win32.PeekMessage(ref msg, IntPtr.Zero, Win32.WM_USER, Win32.WM_USER, Win32.PM_NOREMOVE);
            IsMessageLoopBegin = true;
            while (Win32.GetMessage(ref msg, IntPtr.Zero, 0, 0))
            {
                if (msg.message == Win32.WM_QUIT)
                {
                    return;
                }
                if (ThreadMessageProc(ref msg))
                {
                    continue;
                }
                Win32.TranslateMessage(ref msg);

                foreach (var messageFilter in _messageFilters)
                {
                    messageFilter.PreFilterMessage(ref msg);
                }
                Win32.DispatchMessage(ref msg);
            }
        }