From 61b3e1487cc8abafbcf218ee649ade2b97fb367a Mon Sep 17 00:00:00 2001 From: wj32 Date: Wed, 21 Sep 2011 04:26:33 +0000 Subject: [PATCH] * bump to 2.23 * delay load Users menu git-svn-id: svn://svn.code.sf.net/p/processhacker/code@4707 21ef857c-d57f-4fe0-8362-d861dc6d29cd --- 2.x/trunk/ProcessHacker/include/mainwndp.h | 6 +++++ 2.x/trunk/ProcessHacker/include/phappres.h | 4 +-- 2.x/trunk/ProcessHacker/mainwnd.c | 31 ++++++++++++++++++---- 3 files changed, 34 insertions(+), 7 deletions(-) diff --git a/2.x/trunk/ProcessHacker/include/mainwndp.h b/2.x/trunk/ProcessHacker/include/mainwndp.h index 68eb51d4b..b702fc05f 100644 --- a/2.x/trunk/ProcessHacker/include/mainwndp.h +++ b/2.x/trunk/ProcessHacker/include/mainwndp.h @@ -60,6 +60,12 @@ VOID PhMwpOnMenuCommand( __in HMENU Menu ); +VOID PhMwpOnInitMenuPopup( + __in HMENU Menu, + __in ULONG Index, + __in BOOLEAN IsWindowMenu + ); + VOID PhMwpOnSize( VOID ); diff --git a/2.x/trunk/ProcessHacker/include/phappres.h b/2.x/trunk/ProcessHacker/include/phappres.h index c65582a61..d1c75d3ef 100644 --- a/2.x/trunk/ProcessHacker/include/phappres.h +++ b/2.x/trunk/ProcessHacker/include/phappres.h @@ -1,4 +1,4 @@ #define PHAPP_VERSION_MAJOR 2 -#define PHAPP_VERSION_MINOR 22 +#define PHAPP_VERSION_MINOR 23 #define PHAPP_VERSION_REVISION 0 -#define PHAPP_VERSION_STRING "2.22" +#define PHAPP_VERSION_STRING "2.23" diff --git a/2.x/trunk/ProcessHacker/mainwnd.c b/2.x/trunk/ProcessHacker/mainwnd.c index a0d5f750b..e98ab3de5 100644 --- a/2.x/trunk/ProcessHacker/mainwnd.c +++ b/2.x/trunk/ProcessHacker/mainwnd.c @@ -71,6 +71,8 @@ static HFONT CurrentCustomFont; static BOOLEAN NetworkFirstTime = TRUE; static BOOLEAN ServiceTreeListLoaded = FALSE; static BOOLEAN NetworkTreeListLoaded = FALSE; +static HMENU UsersMenuHandle; +static BOOLEAN UsersMenuInitialized = FALSE; static BOOLEAN UpdateAutomatically = TRUE; static PH_CALLBACK_REGISTRATION SymInitRegistration; @@ -168,6 +170,7 @@ BOOLEAN PhMainWndInitialization( return FALSE; PhMwpInitializeMainMenu(PhMainWndMenuHandle); + UsersMenuHandle = GetSubMenu(PhMainWndMenuHandle, 3); // Choose a more appropriate rectangle for the window. PhAdjustRectangleToWorkingArea( @@ -276,10 +279,6 @@ BOOLEAN PhMainWndInitialization( if (ShowCommand != SW_HIDE) ShowWindow(PhMainWndHandle, ShowCommand); - // TS notification registration is done in the delayed load function. It's therefore - // possible that we miss a notification, but it's a trade-off. - PhMwpUpdateUsersMenu(); - return TRUE; } @@ -328,6 +327,11 @@ LRESULT CALLBACK PhMwpWndProc( PhMwpOnMenuCommand((ULONG)wParam, (HMENU)lParam); } break; + case WM_INITMENUPOPUP: + { + PhMwpOnInitMenuPopup((HMENU)wParam, LOWORD(lParam), !!HIWORD(lParam)); + } + break; case WM_SIZE: { PhMwpOnSize(); @@ -1799,6 +1803,22 @@ VOID PhMwpOnMenuCommand( } } +VOID PhMwpOnInitMenuPopup( + __in HMENU Menu, + __in ULONG Index, + __in BOOLEAN IsWindowMenu + ) +{ + if (Menu == UsersMenuHandle) + { + if (!UsersMenuInitialized) + { + PhMwpUpdateUsersMenu(); + UsersMenuInitialized = TRUE; + } + } +} + VOID PhMwpOnSize( VOID ) @@ -1922,6 +1942,7 @@ VOID PhMwpOnWtsSessionChange( if (Reason == WTS_SESSION_LOGON || Reason == WTS_SESSION_LOGOFF) { PhMwpUpdateUsersMenu(); + UsersMenuInitialized = TRUE; } } @@ -4581,7 +4602,7 @@ VOID PhMwpUpdateUsersMenu( ULONG j; MENUITEMINFO menuItemInfo = { sizeof(MENUITEMINFO) }; - menu = GetSubMenu(PhMainWndMenuHandle, 3); + menu = UsersMenuHandle; // Delete all items in the Users menu. while (DeleteMenu(menu, 0, MF_BYPOSITION)) ;