public static void dispatchMessages() { // This bit never returns from GetMessage int result = -1; final MSG msg = new MSG(); while ( result != 0 ) { result = User32.INSTANCE.GetMessage( msg, null, 0, 0 ); if ( result == -1 ) { System.err.println( "error in get message" ); break; } else { User32.INSTANCE.TranslateMessage( msg ); try { User32.INSTANCE.DispatchMessage( msg ); } catch ( final Error e ) { e.printStackTrace(); } } } }
@Override public void run() { create(); synchronized (lock) { lock.notifyAll(); } MSG msg = new MSG(); while (User32.INSTANCE.GetMessage(msg, null, 0, 0) > 0) { User32.INSTANCE.DispatchMessage(msg); } destory(); }
public void startMainLoop() { mainLoopStarted = true; MSG msg = new MSG(); while (libU.GetMessage(msg, null, 0, 0) == 1) { libU.TranslateMessage(msg); libU.DispatchMessage(msg); } }
User32.INSTANCE.DispatchMessage(msg); } else {
lib.TranslateMessage(msg); lib.DispatchMessage(msg);
@Override public void run() { create(); synchronized (lock) { lock.notifyAll(); } MSG msg = new MSG(); while (User32.INSTANCE.GetMessage(msg, null, 0, 0) > 0) { User32.INSTANCE.TranslateMessage(msg); User32.INSTANCE.DispatchMessage(msg); } destory(); }
if ( hasMessage ) { CanonCamera.lib.TranslateMessage( msg ); CanonCamera.lib.DispatchMessage( msg );
} else { lib.TranslateMessage(msg); lib.DispatchMessage(msg);
public WinLockListener() { // define new window class final WString windowClass = new WString("MyWindowClass"); final WinDef.HMODULE hInst = Kernel32.INSTANCE.GetModuleHandle(""); WinUser.WNDCLASSEX wClass = new WinUser.WNDCLASSEX(); wClass.hInstance = hInst; wClass.lpfnWndProc = WinLockListener.this; wClass.lpszClassName = windowClass.toString(); // register window class User32.INSTANCE.RegisterClassEx(wClass); getLastError(); // create new window final WinDef.HWND hWnd = User32.INSTANCE.CreateWindowEx(User32.WS_EX_TOPMOST, windowClass.toString(), "'hidden helper window to catch Windows events", 0, 0, 0, 0, 0, null, // WM_DEVICECHANGE contradicts parent=WinUser.HWND_MESSAGE null, hInst, null); getLastError(); Log.debug("window sucessfully created! window hwnd: " + hWnd.getPointer().toString()); Wtsapi32.INSTANCE.WTSRegisterSessionNotification(hWnd, Wtsapi32.NOTIFY_FOR_THIS_SESSION); WinUser.MSG msg = new WinUser.MSG(); while (User32.INSTANCE.GetMessage(msg, hWnd, 0, 0) != 0) { User32.INSTANCE.TranslateMessage(msg); User32.INSTANCE.DispatchMessage(msg); } /// This code is to clean at the end. You can attach it to your custom application shutdown listener Wtsapi32.INSTANCE.WTSUnRegisterSessionNotification(hWnd); User32.INSTANCE.UnregisterClass(windowClass.toString(), hInst); User32.INSTANCE.DestroyWindow(hWnd); Log.debug("program exit!"); }