- unregister task manager window at termination Modified: trunk/reactos/subsys/system/explorer/Makefile Modified: trunk/reactos/subsys/system/explorer/doc/TODO.txt Modified: trunk/reactos/subsys/system/explorer/explorer.cpp Modified: trunk/reactos/subsys/system/explorer/taskbar/taskbar.cpp _____
Modified: trunk/reactos/subsys/system/explorer/Makefile --- trunk/reactos/subsys/system/explorer/Makefile 2005-03-19 09:37:24 UTC (rev 14189) +++ trunk/reactos/subsys/system/explorer/Makefile 2005-03-19 09:37:46 UTC (rev 14190) @@ -25,8 +25,8 @@
TARGET_RCFLAGS := -D__USE_W32API -DWIN32 -D_ROS_ -D__WINDRES__
TARGET_SDKLIBS := \ - gdi32.a comctl32.a ole32.a oleaut32.a shell32.a expat.a \ - notifyhook.a ws2_32.a msimg32.a user32.a + gdi32.a user32.a comctl32.a ole32.a oleaut32.a shell32.a expat.a \ + notifyhook.a ws2_32.a msimg32.a
TARGET_GCCLIBS := stdc++ uuid
_____
Modified: trunk/reactos/subsys/system/explorer/doc/TODO.txt --- trunk/reactos/subsys/system/explorer/doc/TODO.txt 2005-03-19 09:37:24 UTC (rev 14189) +++ trunk/reactos/subsys/system/explorer/doc/TODO.txt 2005-03-19 09:37:46 UTC (rev 14190) @@ -28,3 +28,9 @@
- Search Programs -> performance monitor.msv -> Abort
+ +<Nonvo> Martin, I would have a whish concerning explorer: I often want to start a program and give it some parameters. So nice featue: "Start with param..." +<tinus_> Nonvo: shell extension +<m-fuchs> tinus: we should think about installing some default shell extensions +<tinus_> m-fuchs: perhaps, but it'd be nice if they actually were shell extensions + _____
Modified: trunk/reactos/subsys/system/explorer/explorer.cpp --- trunk/reactos/subsys/system/explorer/explorer.cpp 2005-03-19 09:37:24 UTC (rev 14189) +++ trunk/reactos/subsys/system/explorer/explorer.cpp 2005-03-19 09:37:46 UTC (rev 14190) @@ -729,6 +729,14 @@
RegSetValueEx(hkey, TEXT("Shell"), 0, REG_SZ, (LPBYTE)path, l*sizeof(TCHAR)); RegCloseKey(hkey); } + + if (!RegOpenKey(HKEY_CURRENT_USER, TEXT("SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"), &hkey)) { + + ///@todo save previous shell application in config file + + RegSetValueEx(hkey, TEXT("Shell"), 0, REG_SZ, (LPBYTE)TEXT(""), l*sizeof(TCHAR)); + RegCloseKey(hkey); + } }
HWND shellWindow = GetShellWindow(); _____
Modified: trunk/reactos/subsys/system/explorer/taskbar/taskbar.cpp --- trunk/reactos/subsys/system/explorer/taskbar/taskbar.cpp 2005-03-19 09:37:24 UTC (rev 14189) +++ trunk/reactos/subsys/system/explorer/taskbar/taskbar.cpp 2005-03-19 09:37:46 UTC (rev 14190) @@ -32,6 +32,11 @@
#include "traynotify.h" // for NOTIFYAREA_WIDTH_DEF
+DynamicFct<BOOL (WINAPI*)(HWND hwnd)> g_SetTaskmanWindow(TEXT("user32"), "SetTaskmanWindow"); +DynamicFct<BOOL (WINAPI*)(HWND hwnd)> g_RegisterShellHookWindow(TEXT("user32"), "RegisterShellHookWindow"); +DynamicFct<BOOL (WINAPI*)(HWND hwnd)> g_DeregisterShellHookWindow(TEXT("user32"), "DeregisterShellHookWindow"); + + TaskBarEntry::TaskBarEntry() { _id = 0; @@ -61,12 +66,13 @@
TaskBar::~TaskBar() { - DynamicFct<BOOL (WINAPI*)(HWND hwnd)> DeregisterShellHookWindow(TEXT("user32"), "DeregisterShellHookWindow"); - - if (DeregisterShellHookWindow) - (*DeregisterShellHookWindow)(_hwnd); + if (g_DeregisterShellHookWindow) + (*g_DeregisterShellHookWindow)(_hwnd); else KillTimer(_hwnd, 0); + + if (g_SetTaskmanWindow) + (*g_SetTaskmanWindow)(0); }
HWND TaskBar::Create(HWND hwndParent) @@ -100,15 +106,13 @@ _next_id = IDC_FIRST_APP;
// register ourselved as task manager window to make the following call to RegisterShellHookWindow working - DynamicFct<BOOL (WINAPI*)(HWND hwnd)> SetTaskmanWindow(TEXT("user32"), "SetTaskmanWindow"); - if (SetTaskmanWindow) - (*SetTaskmanWindow)(_hwnd); + if (g_SetTaskmanWindow) + (*g_SetTaskmanWindow)(_hwnd);
- DynamicFct<BOOL (WINAPI*)(HWND hwnd)> RegisterShellHookWindow(TEXT("user32"), "RegisterShellHookWindow"); - if (RegisterShellHookWindow) { + if (g_RegisterShellHookWindow) { LOG(TEXT("Using shell hooks for notification of shell events."));
- (*RegisterShellHookWindow)(_hwnd); + (*g_RegisterShellHookWindow)(_hwnd); } else { LOG(TEXT("Shell hooks not available.")); SetTimer(_hwnd, 0, 200, NULL); @@ -139,23 +143,7 @@ break; // avoid displaying context menu for application button _and_ desktop bar at the same time
goto def;} -/* -//#define PM_SHELLHOOK_NOTIFY (WM_APP+0x10)
- case PM_SHELLHOOK_NOTIFY: { - int code = lparam; - - switch(code) { - case HSHELL_WINDOWCREATED: - case HSHELL_WINDOWDESTROYED: - case HSHELL_WINDOWACTIVATED: - case HSHELL_WINDOWREPLACED: - Refresh(); - break; - } - Refresh(); - break;} -*/ case PM_GET_LAST_ACTIVE: return (LRESULT)(HWND)_last_foreground_wnd;