//--------------------------------------------------------------------------------------- LRESULT CALLBACK WndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam) { LRESULT lr = 0; switch (nMsg) { case WM_CREATE: lr = OnCreate(hWnd, wParam, lParam); break; case WM_TRAY: lr = OnTray(hWnd, wParam, lParam); break; case WM_CLOSE: lr = OnClose(hWnd, wParam, lParam); break; case WM_DESTROY: PostQuitMessage(0); break; default: lr = DefWindowProc(hWnd, nMsg, wParam, lParam); break; } return lr; }
LRESULT CALLBACK WindowProcedure (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { LPMINMAXINFO lpmmi; switch (message) /* handle the messages */ { case WM_WTSSESSION_CHANGE: switch ( wParam ) { case WTS_SESSION_LOCK: SaveEnergyShort(); break; case WTS_SESSION_UNLOCK: break; default: break; } break; case WM_CREATE: { LoadRegistrySettings(); TRAY_Init(hWnd,AUTO_START_FLAG); OnTray(wParam); } break; case WM_KEYDOWN : if (wParam == VK_ESCAPE) { ShowWindow(hWnd, SW_SHOWMINIMIZED); } break; case WM_SIZE: OnSizeTray(wParam); // Minimize/Restore to/from tray break; case WM_NOTIFYICONTRAY: OnNotifyTray(lParam); // Manages message from tray return TRUE; case WM_COMMAND: { if (OnCommandTrayMenu(wParam)) break; } break; case WM_RBUTTONDOWN: { TRAY_Menu_Show();//load POPUP menu in main window (why?) } break; case WM_CLOSE: ShowWindow(hWnd, SW_SHOWMINIMIZED); // Minimize/Restore to/from tray break; case WM_DESTROY: UnregisterSession(hWnd); OnDestroyTray(); PostQuitMessage (0); /* send a WM_QUIT to the message queue */ break; default: /* for messages that we don't deal with */ return DefWindowProc (hWnd, message, wParam, lParam); } return 0; }