LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_COMMAND: tray_callback(LOWORD(wParam)); break; case WM_DESTROY: exit_loop(); break; case WM_MYMESSAGE: switch(lParam) { case WM_RBUTTONUP: ShowMenu(hWnd); break; case WM_LBUTTONUP: tray_callback(-1); break; default: return DefWindowProc(hWnd, message, wParam, lParam); }; break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; }
// internal wrapper for go callback void _tray_callback(GtkMenuItem *item, gpointer user_data) { tray_callback(GPOINTER_TO_INT(user_data)); }