From: <ir0...@us...> - 2008-06-25 17:15:12
|
Revision: 1831 http://emerge.svn.sourceforge.net/emerge/?rev=1831&view=rev Author: ir0nh34d Date: 2008-06-25 10:15:03 -0700 (Wed, 25 Jun 2008) Log Message: ----------- Don't display an error message if there is no wallpaper to load Modified Paths: -------------- trunk/Source/emergeCore/Desktop.cpp Modified: trunk/Source/emergeCore/Desktop.cpp =================================================================== --- trunk/Source/emergeCore/Desktop.cpp 2008-06-22 02:50:07 UTC (rev 1830) +++ trunk/Source/emergeCore/Desktop.cpp 2008-06-25 17:15:03 UTC (rev 1831) @@ -27,76 +27,76 @@ Desktop::Desktop(HINSTANCE hInstance) { - mainInst = hInstance; + mainInst = hInstance; } bool Desktop::Initialize() { - registered = false; - WNDCLASSEX wincl; - ZeroMemory(&wincl, sizeof(WNDCLASSEX)); + registered = false; + WNDCLASSEX wincl; + ZeroMemory(&wincl, sizeof(WNDCLASSEX)); - // Register the window class - wincl.hInstance = mainInst; - wincl.lpszClassName = desktopClass; - wincl.lpfnWndProc = DesktopProcedure; - wincl.cbSize = sizeof (WNDCLASSEX); - wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION); - wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION); - wincl.hCursor = LoadCursor (NULL, IDC_ARROW); + // Register the window class + wincl.hInstance = mainInst; + wincl.lpszClassName = desktopClass; + wincl.lpfnWndProc = DesktopProcedure; + wincl.cbSize = sizeof (WNDCLASSEX); + wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION); + wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION); + wincl.hCursor = LoadCursor (NULL, IDC_ARROW); - // Register the window class, and if it fails quit the program - if (!RegisterClassEx (&wincl)) - return false; + // Register the window class, and if it fails quit the program + if (!RegisterClassEx (&wincl)) + return false; - // The class is registered, let's create the window - mainWnd = CreateWindowEx(WS_EX_TOOLWINDOW, desktopClass, NULL, WS_POPUP, - 0, 0, 0, 0, NULL, NULL, mainInst, NULL); + // The class is registered, let's create the window + mainWnd = CreateWindowEx(WS_EX_TOOLWINDOW, desktopClass, NULL, WS_POPUP, + 0, 0, 0, 0, NULL, NULL, mainInst, NULL); - // If the window failed to get created, unregister the class and quit the program - if (!mainWnd) + // If the window failed to get created, unregister the class and quit the program + if (!mainWnd) { - MessageBox(GetDesktopWindow(), - TEXT("Failed to create desktop window"), - TEXT("emergeDesktop"), - MB_OK | MB_TOPMOST | MB_ICONERROR); - return false; + MessageBox(GetDesktopWindow(), + TEXT("Failed to create desktop window"), + TEXT("emergeDesktop"), + MB_OK | MB_TOPMOST | MB_ICONERROR); + return false; } - SetWindowPos(mainWnd, HWND_BOTTOM, GetSystemMetrics(SM_XVIRTUALSCREEN), GetSystemMetrics(SM_YVIRTUALSCREEN), - GetSystemMetrics(SM_CXVIRTUALSCREEN), GetSystemMetrics(SM_CYVIRTUALSCREEN), - SWP_NOACTIVATE|SWP_NOSENDCHANGING|SWP_SHOWWINDOW); + SetWindowPos(mainWnd, HWND_BOTTOM, GetSystemMetrics(SM_XVIRTUALSCREEN), GetSystemMetrics(SM_YVIRTUALSCREEN), + GetSystemMetrics(SM_CXVIRTUALSCREEN), GetSystemMetrics(SM_CYVIRTUALSCREEN), + SWP_NOACTIVATE|SWP_NOSENDCHANGING|SWP_SHOWWINDOW); - SetBackgroundImage(); + SetBackgroundImage(); - if (ELRegisterShellHook(mainWnd, RSH_TASKMGR)) - ShellMessage = RegisterWindowMessage(TEXT("SHELLHOOK")); + if (ELRegisterShellHook(mainWnd, RSH_TASKMGR)) + ShellMessage = RegisterWindowMessage(TEXT("SHELLHOOK")); - SetTimer(mainWnd, DESKTOP_TIMER, DESKTOP_POLL_INTERVAL, DesktopTimerProc); + SetTimer(mainWnd, DESKTOP_TIMER, DESKTOP_POLL_INTERVAL, DesktopTimerProc); - return true; + return true; } Desktop::~Desktop() { - if (registered) + if (registered) { - KillTimer(mainWnd, DESKTOP_TIMER); + KillTimer(mainWnd, DESKTOP_TIMER); - // Unregister the window class - UnregisterClass(desktopClass, mainInst); + // Unregister the window class + UnregisterClass(desktopClass, mainInst); } } VOID CALLBACK Desktop::DesktopTimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime) { - UNREFERENCED_PARAMETER(uMsg); - UNREFERENCED_PARAMETER(idEvent); - UNREFERENCED_PARAMETER(dwTime); + UNREFERENCED_PARAMETER(uMsg); + UNREFERENCED_PARAMETER(idEvent); + UNREFERENCED_PARAMETER(dwTime); - HWND bottomWnd = GetWindow(hwnd, GW_HWNDLAST); - if (IsWindowVisible(bottomWnd) && (bottomWnd != hwnd)) - SetWindowPos(hwnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE|SWP_NOSENDCHANGING|SWP_NOACTIVATE); + HWND bottomWnd = GetWindow(hwnd, GW_HWNDLAST); + if (IsWindowVisible(bottomWnd) && (bottomWnd != hwnd)) + SetWindowPos(hwnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE|SWP_NOSENDCHANGING|SWP_NOACTIVATE); } //----- @@ -110,106 +110,99 @@ //----- LRESULT CALLBACK Desktop::DesktopProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { - switch (message) + switch (message) { - case WM_SYSCOMMAND: - break; + case WM_SYSCOMMAND: + break; - case WM_PAINT: - { - PAINTSTRUCT ps; - HDC hdc = BeginPaint(hwnd, &ps); - PaintDesktop(hdc); - EndPaint(hwnd, &ps); - } - break; + case WM_PAINT: + { + PAINTSTRUCT ps; + HDC hdc = BeginPaint(hwnd, &ps); + PaintDesktop(hdc); + EndPaint(hwnd, &ps); + } + break; - case WM_RBUTTONDOWN: - pMessageControl->DispatchMessage(EMERGE_CORE, CORE_RIGHTMENU); - break; + case WM_RBUTTONDOWN: + pMessageControl->DispatchMessage(EMERGE_CORE, CORE_RIGHTMENU); + break; - case WM_MBUTTONDOWN: - pMessageControl->DispatchMessage(EMERGE_CORE, CORE_MIDMENU); - break; + case WM_MBUTTONDOWN: + pMessageControl->DispatchMessage(EMERGE_CORE, CORE_MIDMENU); + break; - case WM_DISPLAYCHANGE: - { - SetWindowPos(hwnd, HWND_BOTTOM, - GetSystemMetrics(SM_XVIRTUALSCREEN), GetSystemMetrics(SM_YVIRTUALSCREEN), - GetSystemMetrics(SM_CXVIRTUALSCREEN), GetSystemMetrics(SM_CYVIRTUALSCREEN), - SWP_NOACTIVATE|SWP_NOSENDCHANGING); - } - break; + case WM_DISPLAYCHANGE: + { + SetWindowPos(hwnd, HWND_BOTTOM, + GetSystemMetrics(SM_XVIRTUALSCREEN), GetSystemMetrics(SM_YVIRTUALSCREEN), + GetSystemMetrics(SM_CXVIRTUALSCREEN), GetSystemMetrics(SM_CYVIRTUALSCREEN), + SWP_NOACTIVATE|SWP_NOSENDCHANGING); + } + break; - case WM_DESTROY: - case WM_NCDESTROY: - PostQuitMessage(0); - break; + case WM_DESTROY: + case WM_NCDESTROY: + PostQuitMessage(0); + break; - case WM_WINDOWPOSCHANGING: - ((WINDOWPOS*)lParam)->flags |= SWP_NOZORDER|SWP_NOACTIVATE; - break; + case WM_WINDOWPOSCHANGING: + ((WINDOWPOS*)lParam)->flags |= SWP_NOZORDER|SWP_NOACTIVATE; + break; - // If not handled just forward the message on - default: - if (!pDesktop->DoDefault(message, (UINT)wParam, (HWND)lParam)) - return DefWindowProc(hwnd, message, wParam, lParam); + // If not handled just forward the message on + default: + if (!pDesktop->DoDefault(message, (UINT)wParam, (HWND)lParam)) + return DefWindowProc(hwnd, message, wParam, lParam); } - return 0; + return 0; } LRESULT Desktop::DoDefault(UINT message, UINT shellMessage, HWND task) { - WCHAR taskClass[MAX_LINE_LENGTH]; - WINDOWINFO wndInfo; - wndInfo.cbSize = sizeof(WINDOWINFO); + WCHAR taskClass[MAX_LINE_LENGTH]; + WINDOWINFO wndInfo; + wndInfo.cbSize = sizeof(WINDOWINFO); - if (message == ShellMessage) + if (message == ShellMessage) { - switch (shellMessage) + switch (shellMessage) { - //A new "task" was created - case HSHELL_WINDOWCREATED: - RealGetWindowClass(task, taskClass, MAX_LINE_LENGTH); - if (_wcsicmp(taskClass, TEXT("$$$Secure UAP Dummy Window Class For Interim Dialog")) == 0) - ELSwitchToThisWindow(task); - return 1; + //A new "task" was created + case HSHELL_WINDOWCREATED: + RealGetWindowClass(task, taskClass, MAX_LINE_LENGTH); + if (_wcsicmp(taskClass, TEXT("$$$Secure UAP Dummy Window Class For Interim Dialog")) == 0) + ELSwitchToThisWindow(task); + return 1; } } - return 0; + return 0; } bool Desktop::SetBackgroundImage() { - HKEY key; - WCHAR bgImage[MAX_PATH]; - DWORD type, bgImageSize = MAX_PATH; + HKEY key; + WCHAR bgImage[MAX_PATH]; + DWORD type, bgImageSize = MAX_PATH; + bool ret = false; - if (RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Control Panel\\Desktop\\"), 0, KEY_ALL_ACCESS, - &key) != ERROR_SUCCESS) + if (RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Control Panel\\Desktop\\"), 0, KEY_ALL_ACCESS, + &key) == ERROR_SUCCESS) { - MessageBox(GetDesktopWindow(), TEXT("Could not open wallpaper registry key."), - TEXT("emergeDesktop"), MB_OK | MB_ICONERROR | MB_TOPMOST); - return false; - } + if (RegQueryValueEx(key, TEXT("Wallpaper"), NULL, &type, (BYTE*)bgImage, &bgImageSize) == + ERROR_SUCCESS) + { + SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, (void*)bgImage, + SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE); + ret = true; + } - if (RegQueryValueEx(key, TEXT("Wallpaper"), NULL, &type, (BYTE*)bgImage, &bgImageSize) != - ERROR_SUCCESS) - { - MessageBox(GetDesktopWindow(), TEXT("Could not determine wallpaper filename."), - TEXT("emergeDesktop"), MB_OK | MB_ICONERROR | MB_TOPMOST); - RegCloseKey(key); - return false; + RegCloseKey(key); } - SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, (void*)bgImage, - SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE); - - RegCloseKey(key); - - return true; + return ret; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |