[ros-diffs] [ekohl] 24836: - Move global variables into a struct that is attached to the property sheet page dialog. - Remove trailing whitespace and tabs. - Clean up the source code.

ekohl at svn.reactos.org ekohl at svn.reactos.org
Sun Nov 26 13:47:58 CET 2006


Author: ekohl
Date: Sun Nov 26 15:47:56 2006
New Revision: 24836

URL: http://svn.reactos.org/svn/reactos?rev=24836&view=rev
Log:
- Move global variables into a struct that is attached to the property sheet page dialog.
- Remove trailing whitespace and tabs.
- Clean up the source code.

Modified:
    trunk/reactos/dll/cpl/desk/appearance.c
    trunk/reactos/dll/cpl/desk/background.c
    trunk/reactos/dll/cpl/desk/de.rc
    trunk/reactos/dll/cpl/desk/desk.c
    trunk/reactos/dll/cpl/desk/desk.h
    trunk/reactos/dll/cpl/desk/dibitmap.c
    trunk/reactos/dll/cpl/desk/screensaver.c

Modified: trunk/reactos/dll/cpl/desk/appearance.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/desk/appearance.c?rev=24836&r1=24835&r2=24836&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/desk/appearance.c (original)
+++ trunk/reactos/dll/cpl/desk/appearance.c Sun Nov 26 15:47:56 2006
@@ -10,26 +10,25 @@
 
 #include "desk.h"
 
-INT_PTR CALLBACK AppearancePageProc(HWND hwndDlg,
-                                    UINT uMsg,
-                                    WPARAM wParam,
-                                    LPARAM lParam)
+INT_PTR CALLBACK
+AppearancePageProc(HWND hwndDlg,
+                   UINT uMsg,
+                   WPARAM wParam,
+                   LPARAM lParam)
 {
     UNREFERENCED_PARAMETER(lParam);
     UNREFERENCED_PARAMETER(wParam);
     UNREFERENCED_PARAMETER(hwndDlg);
 
-    switch(uMsg)
+    switch (uMsg)
     {
         case WM_INITDIALOG:
-            {
-            } break;
-        
+            break;
+
         case WM_COMMAND:
-            {
-            } break;
+            break;
     }
-    
+
     return FALSE;
 }
 

Modified: trunk/reactos/dll/cpl/desk/background.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/desk/background.c?rev=24836&r1=24835&r2=24836&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/desk/background.c (original)
+++ trunk/reactos/dll/cpl/desk/background.c Sun Nov 26 15:47:56 2006
@@ -20,40 +20,36 @@
 typedef struct
 {
     BOOL bWallpaper; /* Is this background a wallpaper */
-    
+
     TCHAR szFilename[MAX_PATH];
     TCHAR szDisplayName[256];
-    
+
 } BackgroundItem;
 
-BackgroundItem g_backgroundItems[MAX_BACKGROUNDS];
-
-DIBitmap *g_pWallpaperBitmap    = NULL;
-
-int g_placementSelection        = 0;
-int g_backgroundSelection       = 0;
-
-/* this holds current selection of background color */
-COLORREF g_backgroundDesktopColor = 0;
-/* this holds selection of custom colors in dialog box */
-COLORREF custom_colors[16] = {0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0};
-
-int g_listViewItemCount         = 0;
-
-HWND g_hBackgroundPage          = NULL;
-HWND g_hBackgroundList          = NULL;
-HWND g_hBackgroundPreview       = NULL;
-
-HWND g_hPlacementCombo          = NULL;
-HWND g_hColorButton             = NULL;
-
-HIMAGELIST g_hShellImageList    = NULL;
-
-static HBITMAP hBitmap = NULL;
-static int cxSource, cySource;
+typedef struct _GLOBAL_DATA
+{
+    BackgroundItem backgroundItems[MAX_BACKGROUNDS];
+
+    PDIBITMAP pWallpaperBitmap;
+
+    int placementSelection;
+    int backgroundSelection;
+
+    COLORREF backgroundDesktopColor;
+    COLORREF custom_colors[16];
+
+    int listViewItemCount;
+
+    HBITMAP hBitmap;
+    int cxSource;
+    int cySource;
+} GLOBAL_DATA, *PGLOBAL_DATA;
+
+
 
 /* Add the images in the C:\ReactOS directory and the current wallpaper if any */
-void AddListViewItems()
+static VOID
+AddListViewItems(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
 {
     WIN32_FIND_DATA fd;
     HANDLE hFind;
@@ -73,42 +69,45 @@
     BackgroundItem *backgroundItem = NULL;
     TCHAR separators[] = TEXT(";");
     TCHAR *token;
-
-    GetClientRect(g_hBackgroundList, &clientRect);
-    
+    HWND hwndBackgroundList;
+
+    hwndBackgroundList = GetDlgItem(hwndDlg, IDC_BACKGROUND_LIST);
+
+    GetClientRect(hwndBackgroundList, &clientRect);
+
+    /* Add a new column to the list */
     ZeroMemory(&dummy, sizeof(LV_COLUMN));
     dummy.mask      = LVCF_SUBITEM | LVCF_WIDTH;
     dummy.iSubItem  = 0;
     dummy.cx        = (clientRect.right - clientRect.left) - GetSystemMetrics(SM_CXVSCROLL);
-    
-    (void)ListView_InsertColumn(g_hBackgroundList, 0, &dummy);
-    
+    ListView_InsertColumn(hwndBackgroundList, 0, &dummy);
+
     /* Add the "None" item */
-    backgroundItem = &g_backgroundItems[g_listViewItemCount];   
+    backgroundItem = &pGlobalData->backgroundItems[pGlobalData->listViewItemCount];
     backgroundItem->bWallpaper = FALSE;
     LoadString(hApplet,
                IDS_NONE,
                backgroundItem->szDisplayName,
                sizeof(backgroundItem->szDisplayName) / sizeof(TCHAR));
-    
+
     ZeroMemory(&listItem, sizeof(LV_ITEM));
     listItem.mask       = LVIF_TEXT | LVIF_PARAM | LVIF_STATE | LVIF_IMAGE;
     listItem.state      = LVIS_SELECTED;
     listItem.pszText    = backgroundItem->szDisplayName;
     listItem.iImage     = -1;
-    listItem.iItem      = g_listViewItemCount;
-    listItem.lParam     = g_listViewItemCount;
-    
-    (void)ListView_InsertItem(g_hBackgroundList, &listItem);
-    ListView_SetItemState(g_hBackgroundList, g_listViewItemCount, LVIS_SELECTED, LVIS_SELECTED);
-
-    g_listViewItemCount++;
+    listItem.iItem      = pGlobalData->listViewItemCount;
+    listItem.lParam     = pGlobalData->listViewItemCount;
+
+    ListView_InsertItem(hwndBackgroundList, &listItem);
+    ListView_SetItemState(hwndBackgroundList, pGlobalData->listViewItemCount, LVIS_SELECTED, LVIS_SELECTED);
+
+    pGlobalData->listViewItemCount++;
 
     /* Add current wallpaper if any */
     RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Control Panel\\Desktop"), 0, KEY_ALL_ACCESS, &regKey);
+
     result = RegQueryValueEx(regKey, TEXT("Wallpaper"), 0, &varType, (LPBYTE)wallpaperFilename, &bufferSize);
-    
-    if((result == ERROR_SUCCESS) && (_tcslen(wallpaperFilename) > 0))
+    if ((result == ERROR_SUCCESS) && (_tcslen(wallpaperFilename) > 0))
     {
         himl = (HIMAGELIST)SHGetFileInfo(wallpaperFilename,
                                          0,
@@ -117,16 +116,15 @@
                                          SHGFI_SYSICONINDEX | SHGFI_SMALLICON |
                                          SHGFI_DISPLAYNAME);
 
-        if(himl != NULL)
+        if (himl != NULL)
         {
-            if(i++ == 0)
+            if (i++ == 0)
             {
-                g_hShellImageList = himl;
-                (void)ListView_SetImageList(g_hBackgroundList, himl, LVSIL_SMALL);
+                ListView_SetImageList(hwndBackgroundList, himl, LVSIL_SMALL);
             }
 
-            backgroundItem = &g_backgroundItems[g_listViewItemCount];
-            
+            backgroundItem = &pGlobalData->backgroundItems[pGlobalData->listViewItemCount];
+
             backgroundItem->bWallpaper = TRUE;
 
             _tcscpy(backgroundItem->szDisplayName, sfi.szDisplayName);
@@ -137,43 +135,42 @@
             listItem.state      = LVIS_SELECTED;
             listItem.pszText    = backgroundItem->szDisplayName;
             listItem.iImage     = sfi.iIcon;
-            listItem.iItem      = g_listViewItemCount;
-            listItem.lParam     = g_listViewItemCount;
-
-            (void)ListView_InsertItem(g_hBackgroundList, &listItem);
-            ListView_SetItemState(g_hBackgroundList, g_listViewItemCount, LVIS_SELECTED, LVIS_SELECTED);
-
-            g_listViewItemCount++;
+            listItem.iItem      = pGlobalData->listViewItemCount;
+            listItem.lParam     = pGlobalData->listViewItemCount;
+
+            ListView_InsertItem(hwndBackgroundList, &listItem);
+            ListView_SetItemState(hwndBackgroundList, pGlobalData->listViewItemCount, LVIS_SELECTED, LVIS_SELECTED);
+
+            pGlobalData->listViewItemCount++;
         }
     }
-    
+
     RegCloseKey(regKey);
 
     /* Add all the images in the C:\ReactOS directory. */
 
     LoadString(hApplet, IDS_SUPPORTED_EXT, szFileTypes, sizeof(szFileTypes) / sizeof(TCHAR));
-	
-
-    token = _tcstok ( szFileTypes, separators );
-    while ( token != NULL )
+
+    token = _tcstok(szFileTypes, separators);
+    while (token != NULL)
     {
         GetWindowsDirectory(szSearchPath, MAX_PATH);
         _tcscat(szSearchPath, TEXT("\\"));
         _tcscat(szSearchPath, token);
-	    
+
         hFind = FindFirstFile(szSearchPath, &fd);
-        while(hFind != INVALID_HANDLE_VALUE)
+        while (hFind != INVALID_HANDLE_VALUE)
         {
             /* Don't add any hidden bitmaps */
-            if((fd.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) == 0)
+            if ((fd.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) == 0)
             {
                 TCHAR filename[MAX_PATH];
-	            
+
                 GetWindowsDirectory(filename, MAX_PATH);
 
                 _tcscat(filename, TEXT("\\"));
                 _tcscat(filename, fd.cFileName);
-	            
+
                 himl = (HIMAGELIST)SHGetFileInfo(filename,
                                                 0,
                                                 &sfi,
@@ -181,18 +178,18 @@
                                                 SHGFI_SYSICONINDEX | SHGFI_SMALLICON |
                                                 SHGFI_DISPLAYNAME);
 
-                if(himl == NULL) break;
-	            
-                if(i++ == 0)
+                if (himl == NULL)
+                    break;
+
+                if (i++ == 0)
                 {
-                    g_hShellImageList = himl;
-                    (void)ListView_SetImageList(g_hBackgroundList, himl, LVSIL_SMALL);
+                    ListView_SetImageList(hwndBackgroundList, himl, LVSIL_SMALL);
                 }
 
-                backgroundItem = &g_backgroundItems[g_listViewItemCount];
+                backgroundItem = &pGlobalData->backgroundItems[pGlobalData->listViewItemCount];
 
                 backgroundItem->bWallpaper = TRUE;
-	            
+
                 _tcscpy(backgroundItem->szDisplayName, sfi.szDisplayName);
                 _tcscpy(backgroundItem->szFilename, filename);
 
@@ -201,23 +198,25 @@
                 listItem.pszText    = backgroundItem->szDisplayName;
                 listItem.state      = 0;
                 listItem.iImage     = sfi.iIcon;
-                listItem.iItem      = g_listViewItemCount;
-                listItem.lParam     = g_listViewItemCount;
-	            
-                (void)ListView_InsertItem(g_hBackgroundList, &listItem);
-	            
-                g_listViewItemCount++;
+                listItem.iItem      = pGlobalData->listViewItemCount;
+                listItem.lParam     = pGlobalData->listViewItemCount;
+
+                ListView_InsertItem(hwndBackgroundList, &listItem);
+
+                pGlobalData->listViewItemCount++;
             }
-	        
+
             if(!FindNextFile(hFind, &fd))
                 hFind = INVALID_HANDLE_VALUE;
         }
 
-        token = _tcstok ( NULL, separators );
-    }
-}
-
-void InitBackgroundDialog()
+        token = _tcstok(NULL, separators);
+    }
+}
+
+
+static VOID
+InitBackgroundDialog(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
 {
     TCHAR szString[256];
     HKEY regKey;
@@ -226,27 +225,23 @@
     DWORD varType = REG_SZ;
     LONG result;
     BITMAP bitmap;
-    
-    g_backgroundDesktopColor = GetSysColor( COLOR_BACKGROUND );
-	g_hBackgroundList       = GetDlgItem(g_hBackgroundPage, IDC_BACKGROUND_LIST);
-    g_hBackgroundPreview    = GetDlgItem(g_hBackgroundPage, IDC_BACKGROUND_PREVIEW);
-    g_hPlacementCombo       = GetDlgItem(g_hBackgroundPage, IDC_PLACEMENT_COMBO);
-    g_hColorButton          = GetDlgItem(g_hBackgroundPage, IDC_COLOR_BUTTON);
-
-    AddListViewItems();
-    
+
+    pGlobalData->backgroundDesktopColor = GetSysColor(COLOR_BACKGROUND);
+
+    AddListViewItems(hwndDlg, pGlobalData);
+
     LoadString(hApplet, IDS_CENTER, szString, sizeof(szString) / sizeof(TCHAR));
-    SendMessage(g_hPlacementCombo, CB_INSERTSTRING, PLACEMENT_CENTER, (LPARAM)szString);
+    SendDlgItemMessage(hwndDlg, IDC_PLACEMENT_COMBO, CB_INSERTSTRING, PLACEMENT_CENTER, (LPARAM)szString);
 
     LoadString(hApplet, IDS_STRETCH, szString, sizeof(szString) / sizeof(TCHAR));
-    SendMessage(g_hPlacementCombo, CB_INSERTSTRING, PLACEMENT_STRETCH, (LPARAM)szString);
+    SendDlgItemMessage(hwndDlg, IDC_PLACEMENT_COMBO, CB_INSERTSTRING, PLACEMENT_STRETCH, (LPARAM)szString);
 
     LoadString(hApplet, IDS_TILE, szString, sizeof(szString) / sizeof(TCHAR));
-    SendMessage(g_hPlacementCombo, CB_INSERTSTRING, PLACEMENT_TILE, (LPARAM)szString);
+    SendDlgItemMessage(hwndDlg, IDC_PLACEMENT_COMBO, CB_INSERTSTRING, PLACEMENT_TILE, (LPARAM)szString);
 
     /* Load the default settings from the registry */
     result = RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Control Panel\\Desktop"), 0, KEY_ALL_ACCESS, &regKey);
-	if( result != ERROR_SUCCESS )
+    if (result != ERROR_SUCCESS)
     {
         /* reg key open failed; maybe it does not exist? create it! */
         DWORD dwDisposition = 0;
@@ -256,122 +251,136 @@
         /* On error result will not contain ERROR_SUCCESS. I don't know how to handle */
         /* this case :( */
     }
-    
+
     result = RegQueryValueEx(regKey, TEXT("WallpaperStyle"), 0, &varType, (LPBYTE)szBuffer, &bufferSize);
-
-    if(result == ERROR_SUCCESS)
-    {
-        if(_ttoi(szBuffer) == 0)
+    if (result == ERROR_SUCCESS)
+    {
+        if (_ttoi(szBuffer) == 0)
         {
-            SendMessage(g_hPlacementCombo, CB_SETCURSEL, PLACEMENT_CENTER, 0);
-            g_placementSelection = PLACEMENT_CENTER;
+            SendDlgItemMessage(hwndDlg, IDC_PLACEMENT_COMBO, CB_SETCURSEL, PLACEMENT_CENTER, 0);
+            pGlobalData->placementSelection = PLACEMENT_CENTER;
         }
         
-        if(_ttoi(szBuffer) == 2)
+        if (_ttoi(szBuffer) == 2)
         {
-            SendMessage(g_hPlacementCombo, CB_SETCURSEL, PLACEMENT_STRETCH, 0);
-            g_placementSelection = PLACEMENT_STRETCH;
+            SendDlgItemMessage(hwndDlg, IDC_PLACEMENT_COMBO, CB_SETCURSEL, PLACEMENT_STRETCH, 0);
+            pGlobalData->placementSelection = PLACEMENT_STRETCH;
         }
     }
     else
     {
-        SendMessage(g_hPlacementCombo, CB_SETCURSEL, PLACEMENT_CENTER, 0);
-        g_placementSelection = PLACEMENT_CENTER;
-    }
-    
+        SendDlgItemMessage(hwndDlg, IDC_PLACEMENT_COMBO, CB_SETCURSEL, PLACEMENT_CENTER, 0);
+        pGlobalData->placementSelection = PLACEMENT_CENTER;
+    }
+
     result = RegQueryValueEx(regKey, TEXT("TileWallpaper"), 0, &varType, (LPBYTE)szBuffer, &bufferSize);
-
-    if(result == ERROR_SUCCESS)
-    {
-        if(_ttoi(szBuffer) == 1)
+    if (result == ERROR_SUCCESS)
+    {
+        if (_ttoi(szBuffer) == 1)
         {
-            SendMessage(g_hPlacementCombo, CB_SETCURSEL, PLACEMENT_TILE, 0);
-            g_placementSelection = PLACEMENT_TILE;
+            SendDlgItemMessage(hwndDlg, IDC_PLACEMENT_COMBO, CB_SETCURSEL, PLACEMENT_TILE, 0);
+            pGlobalData->placementSelection = PLACEMENT_TILE;
         }
     }
 
     RegCloseKey(regKey);
 
-    hBitmap = LoadImage(hApplet, MAKEINTRESOURCE(IDC_MONITOR), IMAGE_BITMAP, 0, 0, LR_LOADTRANSPARENT);
-    if (hBitmap != NULL)
-    {
-        GetObject(hBitmap, sizeof(BITMAP), &bitmap);
-
-        cxSource = bitmap.bmWidth;
-        cySource = bitmap.bmHeight;
-    }
-}
-
-void OnColorButton()
+    pGlobalData->hBitmap = LoadImage(hApplet, MAKEINTRESOURCE(IDC_MONITOR), IMAGE_BITMAP, 0, 0, LR_LOADTRANSPARENT);
+    if (pGlobalData->hBitmap != NULL)
+    {
+        GetObject(pGlobalData->hBitmap, sizeof(BITMAP), &bitmap);
+
+        pGlobalData->cxSource = bitmap.bmWidth;
+        pGlobalData->cySource = bitmap.bmHeight;
+    }
+}
+
+
+static VOID
+OnColorButton(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
 {
     /* Load custom colors from Registry */
     HKEY hKey = NULL;
     LONG res = ERROR_SUCCESS;
     CHOOSECOLOR cc;
-    res = RegCreateKeyEx( HKEY_CURRENT_USER, TEXT("Control Panel\\Appearance"), 0, NULL, 0,
-        KEY_ALL_ACCESS, NULL, &hKey, NULL );
+
+    res = RegCreateKeyEx(HKEY_CURRENT_USER, TEXT("Control Panel\\Appearance"), 0, NULL, 0,
+        KEY_ALL_ACCESS, NULL, &hKey, NULL);
     /* Now the key is either created or opened existing, if res == ERROR_SUCCESS */
-    if( res == ERROR_SUCCESS )
+    if (res == ERROR_SUCCESS)
     {
         /* Key opened */
         DWORD dwType = REG_BINARY;
-        DWORD cbData = sizeof(custom_colors);
-        res = RegQueryValueEx( hKey, TEXT("CustomColors"), NULL, &dwType, 
-            (LPBYTE)custom_colors, &cbData );
-        RegCloseKey( hKey );
+        DWORD cbData = sizeof(pGlobalData->custom_colors);
+        res = RegQueryValueEx(hKey, TEXT("CustomColors"), NULL, &dwType,
+            (LPBYTE)pGlobalData->custom_colors, &cbData);
+        RegCloseKey(hKey);
         hKey = NULL;
     }
-	
+
     /* Launch ChooseColor() dialog */
 
     cc.lStructSize = sizeof(CHOOSECOLOR);
-    cc.hwndOwner = g_hBackgroundPage;
+    cc.hwndOwner = hwndDlg;
     cc.hInstance = NULL;
-    cc.rgbResult = g_backgroundDesktopColor;
-    cc.lpCustColors = custom_colors;
+    cc.rgbResult = pGlobalData->backgroundDesktopColor;
+    cc.lpCustColors = pGlobalData->custom_colors;
     cc.Flags = CC_ANYCOLOR | /* Causes the dialog box to display all available colors in the set of basic colors.  */
                CC_FULLOPEN | /* opens dialog in full size */
                CC_RGBINIT ;  /* init chosen color by rgbResult value */
     cc.lCustData = 0;
     cc.lpfnHook = NULL;
     cc.lpTemplateName = NULL;
-    if( ChooseColor( &cc ) )
+    if (ChooseColor(&cc))
     {
         /* Save selected color to var */
-        g_backgroundDesktopColor = cc.rgbResult;
+        pGlobalData->backgroundDesktopColor = cc.rgbResult;
+
         /* Allpy buuton will be activated */
-        PropSheet_Changed( GetParent( g_hBackgroundPage ), g_hBackgroundPage );
+        PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
+
         /* Window will be updated :) */
-        InvalidateRect(g_hBackgroundPreview, NULL, TRUE);
+        InvalidateRect(GetDlgItem(hwndDlg, IDC_BACKGROUND_PREVIEW), NULL, TRUE);
+
         /* Save custom colors to reg. To this moment key must be ceated already. See above */
-        res = RegOpenKeyEx( HKEY_CURRENT_USER, TEXT("Control Panel\\Appearance"), 0,
-            KEY_WRITE, &hKey );
-        if( res == ERROR_SUCCESS )
+        res = RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Control Panel\\Appearance"), 0,
+            KEY_WRITE, &hKey);
+        if (res == ERROR_SUCCESS)
         {
             /* Key opened */
-            RegSetValueEx( hKey, TEXT("CustomColors"), 0, REG_BINARY, 
-                (const BYTE *)custom_colors, sizeof(custom_colors) );
-            RegCloseKey( hKey );
+            RegSetValueEx(hKey, TEXT("CustomColors"), 0, REG_BINARY,
+                (const BYTE *)pGlobalData->custom_colors, sizeof(pGlobalData->custom_colors));
+            RegCloseKey(hKey);
             hKey = NULL;
         }
     }
 }
 
-BOOL CheckListViewFilenameExists(HWND hWndList, LPCTSTR tszFileName)
-{
-    /* ListView_FindItem() Macro: Searches for a list-view item with the specified   *
-     * characteristics. Returns the index of the item if successful, or -1 otherwise */
+
+/*
+ * ListView_FindItem() Macro: Searches for a list-view item with the specified
+ * characteristics. Returns the index of the item if successful, or -1 otherwise
+ */
+static BOOL
+CheckListViewFilenameExists(HWND hwndList, LPCTSTR tszFileName)
+{
     LVFINDINFO lvfi;
     int retVal;
+
     lvfi.flags = LVFI_STRING; /* search item by EXACT string */
     lvfi.psz   = tszFileName; /* string to search */
+
     /* other items of this structure are not valid, besacuse flags are not set. */
-    retVal = ListView_FindItem( hWndList, -1, &lvfi );
-    if( retVal != -1 ) return TRUE; /* item found! */
+    retVal = ListView_FindItem(hwndList, -1, &lvfi);
+    if (retVal != -1)
+        return TRUE; /* item found! */
+
     return FALSE; /* item not found. */
 }
 
-void OnBrowseButton()
+
+static VOID
+OnBrowseButton(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
 {
     OPENFILENAME ofn;
     TCHAR filename[MAX_PATH];
@@ -380,11 +389,14 @@
     BackgroundItem *backgroundItem = NULL;
     SHFILEINFO sfi;
     LV_ITEM listItem;
+    HWND hwndBackgroundList;
+
+    hwndBackgroundList = GetDlgItem(hwndDlg, IDC_BACKGROUND_LIST);
 
     ZeroMemory(&ofn, sizeof(OPENFILENAME));
 
     ofn.lStructSize = sizeof(OPENFILENAME);
-    ofn.hwndOwner = g_hBackgroundPage;
+    ofn.hwndOwner = hwndDlg;
     ofn.lpstrFile = filename;
 
     LoadString(hApplet, IDS_BACKGROUND_COMDLG_FILTER, filter, sizeof(filter) / sizeof(TCHAR));
@@ -400,74 +412,79 @@
     ofn.lpstrInitialDir = NULL;
     ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
 
-    if(GetOpenFileName(&ofn) == TRUE)
+    if (GetOpenFileName(&ofn) == TRUE)
     {
         /* Check if there is already a entry that holds this filename */
-        if(CheckListViewFilenameExists(g_hBackgroundList, ofn.lpstrFileTitle) == TRUE)
+        if (CheckListViewFilenameExists(hwndBackgroundList, ofn.lpstrFileTitle) == TRUE)
             return;
-        
-        if(g_listViewItemCount > (MAX_BACKGROUNDS - 1))
+
+        if (pGlobalData->listViewItemCount > (MAX_BACKGROUNDS - 1))
             return;
-        
+
         SHGetFileInfo(filename,
                       0,
                       &sfi,
                       sizeof(sfi),
                       SHGFI_SYSICONINDEX | SHGFI_SMALLICON | SHGFI_DISPLAYNAME);
-        
-        backgroundItem = &g_backgroundItems[g_listViewItemCount];
-        
+
+        backgroundItem = &pGlobalData->backgroundItems[pGlobalData->listViewItemCount];
+
         backgroundItem->bWallpaper = TRUE;
-        
+
         _tcscpy(backgroundItem->szDisplayName, sfi.szDisplayName);
         _tcscpy(backgroundItem->szFilename, filename);
-        
+
         ZeroMemory(&listItem, sizeof(LV_ITEM));
         listItem.mask       = LVIF_TEXT | LVIF_PARAM | LVIF_STATE | LVIF_IMAGE;
         listItem.state      = 0;
         listItem.pszText    = backgroundItem->szDisplayName;
         listItem.iImage     = sfi.iIcon;
-        listItem.iItem      = g_listViewItemCount;
-        listItem.lParam     = g_listViewItemCount;
-        
-        (void)ListView_InsertItem(g_hBackgroundList, &listItem);
-        
-        g_listViewItemCount++;
-    }
-}
-
-void ListViewItemChanged(int itemIndex)
+        listItem.iItem      = pGlobalData->listViewItemCount;
+        listItem.lParam     = pGlobalData->listViewItemCount;
+
+        ListView_InsertItem(hwndBackgroundList, &listItem);
+
+        pGlobalData->listViewItemCount++;
+    }
+}
+
+
+static VOID
+ListViewItemChanged(HWND hwndDlg, PGLOBAL_DATA pGlobalData, int itemIndex)
 {
     BackgroundItem *backgroundItem = NULL;
-    
-    g_backgroundSelection = itemIndex;
-    backgroundItem = &g_backgroundItems[g_backgroundSelection];
-    
-    if(g_pWallpaperBitmap != NULL)
-    {
-        DibFreeImage(g_pWallpaperBitmap);
-        g_pWallpaperBitmap = NULL;
-    }
-    
-    if(backgroundItem->bWallpaper == TRUE)
-    {   
-        g_pWallpaperBitmap = DibLoadImage(backgroundItem->szFilename);
-        
-        if(g_pWallpaperBitmap == NULL)
-        {
+
+    pGlobalData->backgroundSelection = itemIndex;
+    backgroundItem = &pGlobalData->backgroundItems[pGlobalData->backgroundSelection];
+
+    if (pGlobalData->pWallpaperBitmap != NULL)
+    {
+        DibFreeImage(pGlobalData->pWallpaperBitmap);
+        pGlobalData->pWallpaperBitmap = NULL;
+    }
+
+    if (backgroundItem->bWallpaper == TRUE)
+    {
+        pGlobalData->pWallpaperBitmap = DibLoadImage(backgroundItem->szFilename);
+
+        if (pGlobalData->pWallpaperBitmap == NULL)
             return;
-        }
-    }
-    
-    InvalidateRect(g_hBackgroundPreview, NULL, TRUE);
-    
-    EnableWindow(g_hColorButton,    (backgroundItem->bWallpaper == FALSE ? TRUE : FALSE));
-    EnableWindow(g_hPlacementCombo, backgroundItem->bWallpaper);
-    
-    PropSheet_Changed(GetParent(g_hBackgroundPage), g_hBackgroundPage);
-}
-
-void DrawBackgroundPreview(LPDRAWITEMSTRUCT draw)
+    }
+
+    InvalidateRect(GetDlgItem(hwndDlg, IDC_BACKGROUND_PREVIEW),
+                   NULL, TRUE);
+
+    EnableWindow(GetDlgItem(hwndDlg, IDC_COLOR_BUTTON),
+                 (backgroundItem->bWallpaper == FALSE ? TRUE : FALSE));
+    EnableWindow(GetDlgItem(hwndDlg, IDC_PLACEMENT_COMBO),
+                 backgroundItem->bWallpaper);
+
+    PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
+}
+
+
+static VOID
+DrawBackgroundPreview(LPDRAWITEMSTRUCT draw, PGLOBAL_DATA pGlobalData)
 {
     float scaleX;
     float scaleY;
@@ -475,143 +492,147 @@
     int scaledHeight;
     int posX;
     int posY;
-
-    if(g_backgroundItems[g_backgroundSelection].bWallpaper == FALSE)
+    HBRUSH hBrush;
+    int x;
+    int y;
+
+    if (pGlobalData->backgroundItems[pGlobalData->backgroundSelection].bWallpaper == FALSE)
     {
         /* update desktop background color image */
-    	HBRUSH hBrush = CreateSolidBrush( g_backgroundDesktopColor );
-        FillRect(draw->hDC, &draw->rcItem, hBrush );
-        DeleteObject( hBrush );
+        hBrush = CreateSolidBrush(pGlobalData->backgroundDesktopColor);
+        FillRect(draw->hDC, &draw->rcItem, hBrush);
+        DeleteObject(hBrush);
         return;
     }
-    
-    if(g_pWallpaperBitmap == NULL)
+
+    if (pGlobalData->pWallpaperBitmap == NULL)
         return;
 
     scaleX = ((float)GetSystemMetrics(SM_CXSCREEN) - 1) / (float)draw->rcItem.right;
     scaleY = ((float)GetSystemMetrics(SM_CYSCREEN) - 1) / (float)draw->rcItem.bottom;
 
-    scaledWidth = g_pWallpaperBitmap->width / scaleX;
-    scaledHeight = g_pWallpaperBitmap->height / scaleY;
-    
+    scaledWidth = pGlobalData->pWallpaperBitmap->width / scaleX;
+    scaledHeight = pGlobalData->pWallpaperBitmap->height / scaleY;
+
     posX = (draw->rcItem.right / 2) - (scaledWidth / 2);
     posY = (draw->rcItem.bottom / 2) - (scaledHeight / 2);
-    
+
     FillRect(draw->hDC, &draw->rcItem, GetSysColorBrush(COLOR_BACKGROUND));
-    
+
     SetStretchBltMode(draw->hDC, COLORONCOLOR);
-    
-    if(g_placementSelection == PLACEMENT_CENTER)
-    {
-        StretchDIBits(draw->hDC,
-                      posX,
-                      posY,
-                      scaledWidth,
-                      scaledHeight,
-                      0,
-                      0,
-                      g_pWallpaperBitmap->width,
-                      g_pWallpaperBitmap->height,
-                      g_pWallpaperBitmap->bits,
-                      g_pWallpaperBitmap->info,
-                      DIB_RGB_COLORS,
-                      SRCCOPY);
-    }
-    
-    if(g_placementSelection == PLACEMENT_STRETCH)
-    {
-        StretchDIBits(draw->hDC,
-                      0,
-                      0,
-                      draw->rcItem.right,
-                      draw->rcItem.bottom,
-                      0,
-                      0,
-                      g_pWallpaperBitmap->width,
-                      g_pWallpaperBitmap->height,
-                      g_pWallpaperBitmap->bits,
-                      g_pWallpaperBitmap->info,
-                      DIB_RGB_COLORS,
-                      SRCCOPY);
-    }
-
-    if(g_placementSelection == PLACEMENT_TILE)
-    {
-        int x;
-        int y;
-        
-        for(y = 0; y < draw->rcItem.bottom; y += scaledHeight)
-        {
-            for(x = 0; x < draw->rcItem.right; x += scaledWidth)
+
+    switch (pGlobalData->placementSelection)
+    {
+        case PLACEMENT_CENTER:
+            StretchDIBits(draw->hDC,
+                          posX,
+                          posY,
+                          scaledWidth,
+                          scaledHeight,
+                          0,
+                          0,
+                          pGlobalData->pWallpaperBitmap->width,
+                          pGlobalData->pWallpaperBitmap->height,
+                          pGlobalData->pWallpaperBitmap->bits,
+                          pGlobalData->pWallpaperBitmap->info,
+                          DIB_RGB_COLORS,
+                          SRCCOPY);
+            break;
+
+        case PLACEMENT_STRETCH:
+            StretchDIBits(draw->hDC,
+                          0,
+                          0,
+                          draw->rcItem.right,
+                          draw->rcItem.bottom,
+                          0,
+                          0,
+                          pGlobalData->pWallpaperBitmap->width,
+                          pGlobalData->pWallpaperBitmap->height,
+                          pGlobalData->pWallpaperBitmap->bits,
+                          pGlobalData->pWallpaperBitmap->info,
+                          DIB_RGB_COLORS,
+                          SRCCOPY);
+            break;
+
+        case PLACEMENT_TILE:
+            for (y = 0; y < draw->rcItem.bottom; y += scaledHeight)
             {
-                StretchDIBits(draw->hDC,
-                              x,
-                              y,
-                              scaledWidth,
-                              scaledHeight,
-                              0,
-                              0,
-                              g_pWallpaperBitmap->width,
-                              g_pWallpaperBitmap->height,
-                              g_pWallpaperBitmap->bits,
-                              g_pWallpaperBitmap->info,
-                              DIB_RGB_COLORS,
-                              SRCCOPY);
+                for (x = 0; x < draw->rcItem.right; x += scaledWidth)
+                {
+                    StretchDIBits(draw->hDC,
+                                  x,
+                                  y,
+                                  scaledWidth,
+                                  scaledHeight,
+                                  0,
+                                  0,
+                                  pGlobalData->pWallpaperBitmap->width,
+                                  pGlobalData->pWallpaperBitmap->height,
+                                  pGlobalData->pWallpaperBitmap->bits,
+                                  pGlobalData->pWallpaperBitmap->info,
+                                  DIB_RGB_COLORS,
+                                  SRCCOPY);
+                }
             }
-        }
-    }
-}
-
-void SetWallpaper()
+            break;
+    }
+}
+
+
+static VOID
+SetWallpaper(PGLOBAL_DATA pGlobalData)
 {
     HKEY regKey;
-    
+
     RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Control Panel\\Desktop"), 0, KEY_ALL_ACCESS, &regKey);
 
-    if(g_placementSelection == PLACEMENT_TILE)
+    if (pGlobalData->placementSelection == PLACEMENT_TILE)
     {
         RegSetValueEx(regKey, TEXT("TileWallpaper"), 0, REG_SZ, (BYTE *)TEXT("1"), sizeof(TCHAR) * 2);
         RegSetValueEx(regKey, TEXT("WallpaperStyle"), 0, REG_SZ, (BYTE *)TEXT("0"), sizeof(TCHAR) * 2);
     }
-    
-    if(g_placementSelection == PLACEMENT_CENTER)
+
+    if (pGlobalData->placementSelection == PLACEMENT_CENTER)
     {
         RegSetValueEx(regKey, TEXT("TileWallpaper"), 0, REG_SZ, (BYTE *)TEXT("0"), sizeof(TCHAR) * 2);
         RegSetValueEx(regKey, TEXT("WallpaperStyle"), 0, REG_SZ, (BYTE *)TEXT("0"), sizeof(TCHAR) * 2);
     }
 
-    if(g_placementSelection == PLACEMENT_STRETCH)
+    if (pGlobalData->placementSelection == PLACEMENT_STRETCH)
     {
         RegSetValueEx(regKey, TEXT("TileWallpaper"), 0, REG_SZ, (BYTE *)TEXT("0"), sizeof(TCHAR) * 2);
         RegSetValueEx(regKey, TEXT("WallpaperStyle"), 0, REG_SZ, (BYTE *)TEXT("2"), sizeof(TCHAR) * 2);
     }
-    
+
     RegCloseKey(regKey);
-    
-    if(g_backgroundItems[g_backgroundSelection].bWallpaper == TRUE)
+
+    if (pGlobalData->backgroundItems[pGlobalData->backgroundSelection].bWallpaper == TRUE)
     {
         SystemParametersInfo(SPI_SETDESKWALLPAPER,
                              0,
-                             g_backgroundItems[g_backgroundSelection].szFilename,
+                             pGlobalData->backgroundItems[pGlobalData->backgroundSelection].szFilename,
                              SPIF_UPDATEINIFILE);
     }
     else
-    {   
+    {
         SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, TEXT(""), SPIF_UPDATEINIFILE);
     }
 }
 
-void SetDesktopBackColor()
-{
-    /* Change system color */
+
+/* Change system color */
+static VOID
+SetDesktopBackColor(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
+{
     INT iElement = COLOR_BACKGROUND;
-	HKEY hKey;
-	LONG result;
+    HKEY hKey;
+    LONG result;
     TCHAR clText[16];
-	DWORD red, green, blue;
-
-    if( !SetSysColors( 1, &iElement, &g_backgroundDesktopColor ) )
-        MessageBox( g_hBackgroundPage, TEXT("SetSysColor() failed!"), /* these error texts can need internationalization? */
+    DWORD red, green, blue;
+
+    if( !SetSysColors( 1, &iElement, &pGlobalData->backgroundDesktopColor ) )
+        MessageBox(hwndDlg, TEXT("SetSysColor() failed!"), /* these error texts can need internationalization? */
             TEXT("Error!"), MB_ICONSTOP );
     /* Write color to registry key: HKEY_CURRENT_USER\Control Panel\Colors\Background */
     hKey = NULL;
@@ -626,61 +647,60 @@
         /* On error result will not contain ERROR_SUCCESS. I don't know how to handle */
         /* this case :( */
     }
-    red   = GetRValue( g_backgroundDesktopColor );
-    green = GetGValue( g_backgroundDesktopColor );
-    blue  = GetBValue( g_backgroundDesktopColor );
-    _stprintf( clText, TEXT("%d %d %d"), red, green, blue ); /* format string to be set to registry */
-    RegSetValueEx( hKey, TEXT("Background"), 0, REG_SZ, (BYTE *)clText, lstrlen( clText )*sizeof(TCHAR) + sizeof(TCHAR) );
-    RegCloseKey( hKey );
-}
-
-INT_PTR CALLBACK BackgroundPageProc(HWND hwndDlg,
-                                    UINT uMsg,
-                                    WPARAM wParam,
-                                    LPARAM lParam)
-{
-    g_hBackgroundPage = hwndDlg;
-
-    switch(uMsg)
+    red   = GetRValue(pGlobalData->backgroundDesktopColor);
+    green = GetGValue(pGlobalData->backgroundDesktopColor);
+    blue  = GetBValue(pGlobalData->backgroundDesktopColor);
+    _stprintf(clText, TEXT("%d %d %d"), red, green, blue ); /* format string to be set to registry */
+    RegSetValueEx(hKey, TEXT("Background"), 0, REG_SZ, (BYTE *)clText, lstrlen( clText )*sizeof(TCHAR) + sizeof(TCHAR) );
+    RegCloseKey(hKey);
+}
+
+
+INT_PTR CALLBACK
+BackgroundPageProc(HWND hwndDlg,
+                   UINT uMsg,
+                   WPARAM wParam,
+                   LPARAM lParam)
+{
+    PGLOBAL_DATA pGlobalData;
+
+    pGlobalData = (PGLOBAL_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
+
+    switch (uMsg)
     {
         case WM_INITDIALOG:
+            pGlobalData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(GLOBAL_DATA));
+            SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData);
+            InitBackgroundDialog(hwndDlg, pGlobalData);
+            break;
+
+        case WM_COMMAND:
             {
-                InitBackgroundDialog();
-            } break;
-        
-        case WM_COMMAND:
-            {              
                 DWORD controlId = LOWORD(wParam);
                 DWORD command   = HIWORD(wParam);
-                
-                switch(controlId)
+
+                switch (controlId)
                 {
                     case IDC_COLOR_BUTTON:
+                        if (command == BN_CLICKED)
+                            OnColorButton(hwndDlg, pGlobalData);
+                        break;
+
+                    case IDC_BROWSE_BUTTON:
+                        if (command == BN_CLICKED)
+                            OnBrowseButton(hwndDlg, pGlobalData);
+                        break;
+
+                    case IDC_PLACEMENT_COMBO:
+                        if (command == CBN_SELCHANGE)
                         {
-                            if(command == BN_CLICKED)
-                                OnColorButton();
-                            
-                        } break;
-                    
-                    case IDC_BROWSE_BUTTON:
-                        {
-                            if(command == BN_CLICKED)
-                                OnBrowseButton();
-                            
-                        } break;
-                    
-                    case IDC_PLACEMENT_COMBO:
-                        {
-                            if(command == CBN_SELCHANGE)
-                            {
-                                g_placementSelection = (int)SendMessage(g_hPlacementCombo, CB_GETCURSEL, 0, 0);
-                                
-                                InvalidateRect(g_hBackgroundPreview, NULL, TRUE);
-                                
-                                PropSheet_Changed(GetParent(g_hBackgroundPage), g_hBackgroundPage);
-                            }
-                            
-                        } break;
+                            pGlobalData->placementSelection = (int)SendDlgItemMessage(hwndDlg, IDC_PLACEMENT_COMBO, CB_GETCURSEL, 0, 0);
+
+                            InvalidateRect(GetDlgItem(hwndDlg, IDC_BACKGROUND_PREVIEW), NULL, TRUE);
+
+                            PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
+                        }
+                        break;
                 }
             } break;
 
@@ -688,71 +708,68 @@
             {
                 PAINTSTRUCT ps;
                 HDC hdc, hdcMem;
-       
+
                 hdc = BeginPaint(hwndDlg, &ps);
- 
+
                 hdcMem = CreateCompatibleDC(hdc);
-                SelectObject(hdcMem, hBitmap);
-
-                TransparentBlt(hdc, 98, 0, cxSource, cySource, hdcMem, 0, 0, cxSource, cySource, 0xFF80FF);
+                SelectObject(hdcMem, pGlobalData->hBitmap);
+
+                TransparentBlt(hdc, 98, 0,
+                               pGlobalData->cxSource, pGlobalData->cySource, hdcMem, 0, 0,
+                               pGlobalData->cxSource, pGlobalData->cySource, 0xFF80FF);
 
                 DeleteDC(hdcMem);
                 EndPaint(hwndDlg, &ps);
-
-            } break;
+            }
+            break;
 
         case WM_DRAWITEM:
             {
                 LPDRAWITEMSTRUCT drawItem;
                 drawItem = (LPDRAWITEMSTRUCT)lParam;
 
-                if(drawItem->CtlID == IDC_BACKGROUND_PREVIEW)
+                if (drawItem->CtlID == IDC_BACKGROUND_PREVIEW)
                 {
-                    DrawBackgroundPreview(drawItem);
+                    DrawBackgroundPreview(drawItem, pGlobalData);
                 }
 
-            } break;
-        
+            }
+            break;
+
         case WM_NOTIFY:
             {
                 LPNMHDR lpnm = (LPNMHDR)lParam;
-                
+
                 switch(lpnm->code)
-                {   
+                {
                     case PSN_APPLY:
-                        {
-                            SetWallpaper();
-                            SetDesktopBackColor();
-                            return TRUE;
-                        } break;
+                        SetWallpaper(pGlobalData);
+                        SetDesktopBackColor(hwndDlg, pGlobalData);
+                        return TRUE;
 
                     case LVN_ITEMCHANGED:
                         {
                             LPNMLISTVIEW nm = (LPNMLISTVIEW)lParam;
-                            
-                            if((nm->uNewState & LVIS_SELECTED) == 0)
+
+                            if ((nm->uNewState & LVIS_SELECTED) == 0)
                                 return FALSE;
-                            
-                            ListViewItemChanged(nm->iItem);
+
+                            ListViewItemChanged(hwndDlg, pGlobalData, nm->iItem);
 
                         } break;
-                    
-                    default:
-                        break;
                 }
-                
-            } break;
+            }
+            break;
 
         case WM_DESTROY:
-            {
-                if(g_pWallpaperBitmap != NULL)
-                    DibFreeImage(g_pWallpaperBitmap);
-
-                DeleteObject(hBitmap);
-
-            } break;
-    }
-    
+            if (pGlobalData->pWallpaperBitmap != NULL)
+                DibFreeImage(pGlobalData->pWallpaperBitmap);
+
+            DeleteObject(pGlobalData->hBitmap);
+            HeapFree(GetProcessHeap(), 0, pGlobalData);
+            break;
+    }
+
     return FALSE;
 }
 

Modified: trunk/reactos/dll/cpl/desk/de.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/desk/de.rc?rev=24836&r1=24835&r2=24836&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/desk/de.rc (original)
+++ trunk/reactos/dll/cpl/desk/de.rc Sun Nov 26 15:47:56 2006
@@ -2,7 +2,7 @@
 
 IDD_BACKGROUND DIALOGEX DISCARDABLE 0, 0, 246, 205
 STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
-CAPTION "Desktop"
+CAPTION "Hintergrund"
 FONT 8, "MS Shell Dlg"
 BEGIN
     CONTROL         "", IDC_BACKGROUND_PREVIEW, "Static", SS_OWNERDRAW, 80, 10, 83, 57, WS_EX_STATICEDGE

Modified: trunk/reactos/dll/cpl/desk/desk.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/desk/desk.c?rev=24836&r1=24835&r2=24836&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/desk/desk.c (original)
+++ trunk/reactos/dll/cpl/desk/desk.c Sun Nov 26 15:47:56 2006
@@ -32,7 +32,9 @@
     }
 };
 
-static VOID InitPropSheetPage(PROPSHEETPAGE *psp, WORD idDlg, DLGPROC DlgProc)
+
+static VOID
+InitPropSheetPage(PROPSHEETPAGE *psp, WORD idDlg, DLGPROC DlgProc)
 {
     ZeroMemory(psp, sizeof(PROPSHEETPAGE));
     psp->dwSize = sizeof(PROPSHEETPAGE);
@@ -42,20 +44,22 @@
     psp->pfnDlgProc = DlgProc;
 }
 
+
 /* Display Applet */
-LONG APIENTRY DisplayApplet(HWND hwnd, UINT uMsg, LONG wParam, LONG lParam)
+LONG APIENTRY
+DisplayApplet(HWND hwnd, UINT uMsg, LONG wParam, LONG lParam)
 {
     PROPSHEETPAGE psp[4];
     PROPSHEETHEADER psh;
     TCHAR Caption[1024];
-    
+
     UNREFERENCED_PARAMETER(lParam);
     UNREFERENCED_PARAMETER(wParam);
     UNREFERENCED_PARAMETER(uMsg);
     UNREFERENCED_PARAMETER(hwnd);
 
     LoadString(hApplet, IDS_CPLNAME, Caption, sizeof(Caption) / sizeof(TCHAR));
-    
+
     ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
     psh.dwSize = sizeof(PROPSHEETHEADER);
     psh.dwFlags =  PSH_PROPSHEETPAGE | PSH_USECALLBACK | PSH_PROPTITLE;
@@ -66,33 +70,30 @@
     psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE);
     psh.nStartPage = 0;
     psh.ppsp = psp;
-    
+
     InitPropSheetPage(&psp[0], IDD_BACKGROUND, (DLGPROC) BackgroundPageProc);
     InitPropSheetPage(&psp[1], IDD_SCREENSAVER, (DLGPROC) ScreenSaverPageProc);
     InitPropSheetPage(&psp[2], IDD_APPEARANCE, (DLGPROC) AppearancePageProc);
     InitPropSheetPage(&psp[3], IDD_SETTINGS, (DLGPROC) SettingsPageProc);
-    
+
     return (LONG)(PropertySheet(&psh) != -1);
 }
 
 
 /* Control Panel Callback */
-LONG CALLBACK CPlApplet(HWND hwndCPl, UINT uMsg, LPARAM lParam1, LPARAM lParam2)
+LONG CALLBACK
+CPlApplet(HWND hwndCPl, UINT uMsg, LPARAM lParam1, LPARAM lParam2)
 {
     int i = (int)lParam1;
-    
-    switch(uMsg)
+
+    switch (uMsg)
     {
         case CPL_INIT:
-            {
-                return TRUE;
-            }
-        
+            return TRUE;
+
         case CPL_GETCOUNT:
-            {
-                return NUM_APPLETS;
-            }
-        
+            return NUM_APPLETS;
+
         case CPL_INQUIRE:
             {
                 CPLINFO *CPlInfo = (CPLINFO*)lParam2;
@@ -100,30 +101,30 @@
                 CPlInfo->idIcon = Applets[i].idIcon;
                 CPlInfo->idName = Applets[i].idName;
                 CPlInfo->idInfo = Applets[i].idDescription;
-            } break;
-        
+            }
+            break;
+
         case CPL_DBLCLK:
-            {
-                Applets[i].AppletProc(hwndCPl, uMsg, lParam1, lParam2);
-            } break;
+            Applets[i].AppletProc(hwndCPl, uMsg, lParam1, lParam2);
+            break;
     }
-    
+
     return FALSE;
 }
 
 
-BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpvReserved)
+BOOL WINAPI
+DllMain(HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpvReserved)
 {
     UNREFERENCED_PARAMETER(lpvReserved);
-    switch(dwReason)
+
+    switch (dwReason)
     {
         case DLL_PROCESS_ATTACH:
         case DLL_THREAD_ATTACH:
-            {
-                hApplet = hinstDLL;
-            } break;
+            hApplet = hinstDLL;
+            break;
     }
-    
+
     return TRUE;
 }
-

Modified: trunk/reactos/dll/cpl/desk/desk.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/desk/desk.h?rev=24836&r1=24835&r2=24836&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/desk/desk.h (original)
+++ trunk/reactos/dll/cpl/desk/desk.h Sun Nov 26 15:47:56 2006
@@ -11,31 +11,27 @@
 
 #include "resource.h"
 
-typedef struct
+typedef struct _APPLET
 {
     int idIcon;
     int idName;
     int idDescription;
-    
     APPLET_PROC AppletProc;
-    
 } APPLET, *PAPPLET;
 
-extern HINSTANCE hApplet;
-
-typedef struct
+typedef struct _DIBITMAP
 {
     BITMAPFILEHEADER *header;
     BITMAPINFO       *info;
     BYTE             *bits;
-    
     int               width;
     int               height;
+} DIBITMAP, *PDIBITMAP;
 
-} DIBitmap;
+extern HINSTANCE hApplet;
 
-extern DIBitmap *DibLoadImage(TCHAR *filename);
-extern void DibFreeImage(DIBitmap *bitmap);
+PDIBITMAP DibLoadImage(LPTSTR lpFilename);
+VOID DibFreeImage(PDIBITMAP lpBitmap);
 
 DWORD DbgPrint(PCH Format,...);
 

Modified: trunk/reactos/dll/cpl/desk/dibitmap.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/desk/dibitmap.c?rev=24836&r1=24835&r2=24836&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/desk/dibitmap.c (original)
+++ trunk/reactos/dll/cpl/desk/dibitmap.c Sun Nov 26 15:47:56 2006
@@ -10,83 +10,85 @@
 
 #include "desk.h"
 
-DIBitmap *DibLoadImage(TCHAR *filename)
+PDIBITMAP
+DibLoadImage(LPTSTR lpFilename)
 {
-    BOOL               bSuccess;
-    DWORD              dwFileSize, dwHighSize, dwBytesRead;
-    HANDLE             hFile;
-    DIBitmap           *bitmap;
-    
-    hFile = CreateFile(filename,
+    BOOL     bSuccess;
+    DWORD    dwFileSize, dwHighSize, dwBytesRead;
+    HANDLE   hFile;
+    PDIBITMAP lpBitmap;
+
+    hFile = CreateFile(lpFilename,
                        GENERIC_READ,
                        FILE_SHARE_READ,
                        NULL,
                        OPEN_EXISTING,
                        FILE_FLAG_SEQUENTIAL_SCAN,
                        NULL);
-    
-    if(hFile == INVALID_HANDLE_VALUE)
+    if (hFile == INVALID_HANDLE_VALUE)
         return NULL;
-    
+
     dwFileSize = GetFileSize(hFile, &dwHighSize);
-    
-    if(dwHighSize)
+
+    if (dwHighSize)
     {
         CloseHandle(hFile);
         return NULL;
     }
 
-    bitmap = malloc(sizeof(DIBitmap));
-    if(!bitmap)
+    lpBitmap = HeapAlloc(GetProcessHeap(), 0, sizeof(DIBITMAP));
+    if (lpBitmap == NULL)
         return NULL;
-    
-    bitmap->header = malloc(dwFileSize);
-    if(!bitmap->header)
+
+    lpBitmap->header = HeapAlloc(GetProcessHeap(), 0, dwFileSize);
+    if (lpBitmap->header == NULL)
     {
         CloseHandle(hFile);
         return NULL;
     }
-    
-    bSuccess = ReadFile(hFile, bitmap->header, dwFileSize, &dwBytesRead, NULL);
+
+    bSuccess = ReadFile(hFile, lpBitmap->header, dwFileSize, &dwBytesRead, NULL);
     CloseHandle(hFile);
-    
-    if(!bSuccess || (dwBytesRead != dwFileSize)         
-                 || (bitmap->header->bfType != * (WORD *) "BM") 
-                 || (bitmap->header->bfSize != dwFileSize))
+
+    if (!bSuccess ||
+        (dwBytesRead != dwFileSize) ||
+        (lpBitmap->header->bfType != * (WORD *) "BM") ||
+        (lpBitmap->header->bfSize != dwFileSize))
     {
-        free(bitmap->header);
+        HeapFree(GetProcessHeap(), 0, lpBitmap->header);
         return NULL;
     }
-    
-    bitmap->info = (BITMAPINFO *)(bitmap->header + 1);
-    bitmap->bits = (BYTE *)bitmap->header + bitmap->header->bfOffBits;
-    
+
+    lpBitmap->info = (BITMAPINFO *)(lpBitmap->header + 1);
+    lpBitmap->bits = (BYTE *)lpBitmap->header + lpBitmap->header->bfOffBits;
+
     /* Get the DIB width and height */
-    if(bitmap->info->bmiHeader.biSize == sizeof(BITMAPCOREHEADER))
+    if (lpBitmap->info->bmiHeader.biSize == sizeof(BITMAPCOREHEADER))
     {
-        bitmap->width  = ((BITMAPCOREHEADER *)bitmap->info)->bcWidth;
-        bitmap->height = ((BITMAPCOREHEADER *)bitmap->info)->bcHeight;
+        lpBitmap->width  = ((BITMAPCOREHEADER *)lpBitmap->info)->bcWidth;
+        lpBitmap->height = ((BITMAPCOREHEADER *)lpBitmap->info)->bcHeight;
     }
     else
     {
-        bitmap->width   =     bitmap->info->bmiHeader.biWidth;
-        bitmap->height  = abs(bitmap->info->bmiHeader.biHeight);
+        lpBitmap->width   =     lpBitmap->info->bmiHeader.biWidth;
+        lpBitmap->height  = abs(lpBitmap->info->bmiHeader.biHeight);
     }
-    
-    return bitmap;
+
+    return lpBitmap;
 }
 
-void DibFreeImage(DIBitmap *bitmap)
+
+VOID
+DibFreeImage(PDIBITMAP lpBitmap)
 {
-    if(bitmap == NULL)
+    if (lpBitmap == NULL)
         return;
 
     /* Free the header */
-    if(bitmap->header != NULL)
-        free(bitmap->header);
+    if (lpBitmap->header != NULL)
+        HeapFree(GetProcessHeap(), 0, lpBitmap->header);
 
     /* Free the bitmap structure */
-    if(bitmap != NULL)
-        free(bitmap);
+    if (lpBitmap != NULL)
+        HeapFree(GetProcessHeap(), 0, lpBitmap);
 }
-

Modified: trunk/reactos/dll/cpl/desk/screensaver.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/desk/screensaver.c?rev=24836&r1=24835&r2=24836&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/desk/screensaver.c (original)
+++ trunk/reactos/dll/cpl/desk/screensaver.c Sun Nov 26 15:47:56 2006
@@ -13,10 +13,6 @@
 
 #define MAX_SCREENSAVERS 100
 
-static VOID SetScreenSaver(VOID);
-static VOID AddListViewItems(HWND);
-static VOID CheckRegScreenSaverIsSecure(HWND);
-
 typedef struct
 {
     BOOL  bIsScreenSaver; /* Is this background a wallpaper */
@@ -24,12 +20,18 @@
     TCHAR szDisplayName[256];
 } ScreenSaverItem;
 
-int ImageListSelection       = -1;
-ScreenSaverItem g_ScreenSaverItems[MAX_SCREENSAVERS];
-
-HMENU g_hPopupMenu = NULL;
-
-VOID ListViewItemAreChanged(HWND hwndDlg, int itemIndex)
+
+typedef struct _GLOBAL_DATA
+{
+    ScreenSaverItem g_ScreenSaverItems[MAX_SCREENSAVERS];
+    int ImageListSelection;
+    HMENU g_hPopupMenu;
+} GLOBAL_DATA, *PGLOBAL_DATA;
+
+
+
+static VOID
+ListViewItemAreChanged(HWND hwndDlg, PGLOBAL_DATA pGlobalData, int itemIndex)
 {
     BOOL bEnable;
     LV_ITEM lvItem;
@@ -41,7 +43,7 @@
     if (!ListView_GetItem(GetDlgItem(hwndDlg, IDC_SCREENS_CHOICES), &lvItem))
         return;
 
-    ImageListSelection = lvItem.lParam;
+    pGlobalData->ImageListSelection = lvItem.lParam;
 
     bEnable = (lvItem.lParam != 0);
 
@@ -52,8 +54,9 @@
     EnableWindow(GetDlgItem(hwndDlg, IDC_SCREENS_TIME), bEnable);
 }
 
-VOID
-ScreensaverConfig(HWND hwndDlg)
+
+static VOID
+ScreensaverConfig(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
 {
     /*
        /p:<hwnd>  Run in preview 
@@ -66,25 +69,26 @@
     STARTUPINFO si;
     PROCESS_INFORMATION pi;
 
-    if (ImageListSelection < 1)
+    if (pGlobalData->ImageListSelection < 1)
         return;
 
     swprintf(szCmdline, L"%s /c:%u",
-             g_ScreenSaverItems[ImageListSelection].szFilename,
+             pGlobalData->g_ScreenSaverItems[pGlobalData->ImageListSelection].szFilename,
              hwndDlg);
 
-    ZeroMemory( &si, sizeof(si) );
+    ZeroMemory(&si, sizeof(si));
     si.cb = sizeof(si);
-    ZeroMemory( &pi, sizeof(pi) );
-    if(CreateProcess( NULL,  szCmdline, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi ))
-    {
-        CloseHandle( pi.hProcess );
-        CloseHandle( pi.hThread );
-    }
-}
-
-VOID
-ScreensaverPreview(HWND hwndDlg)
+    ZeroMemory(&pi, sizeof(pi));
+    if(CreateProcess(NULL, szCmdline, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
+    {
+        CloseHandle(pi.hProcess);
+        CloseHandle(pi.hThread);
+    }
+}
+
+
+static VOID
+ScreensaverPreview(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
 {
     /*
        /p:<hwnd>  Run in preview
@@ -97,151 +101,42 @@
     STARTUPINFO si;
     PROCESS_INFORMATION pi;
 
-    if (ImageListSelection < 1)
+    if (pGlobalData->ImageListSelection < 1)
         return;
 
-    swprintf(szCmdline, L"%s /p", g_ScreenSaverItems[ImageListSelection].szFilename);
-
-    ZeroMemory( &si, sizeof(si) );
+    swprintf(szCmdline, L"%s /p",
+             pGlobalData->g_ScreenSaverItems[pGlobalData->ImageListSelection].szFilename);
+
+    ZeroMemory(&si, sizeof(si));
     si.cb = sizeof(si);
-    ZeroMemory( &pi, sizeof(pi) );
-    if(CreateProcess( NULL, szCmdline, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi ))
-    {
-        CloseHandle( pi.hProcess );
-        CloseHandle( pi.hThread );
-    }
-}
-
-VOID
-ScreensaverDelete(HWND hwndDlg)
+    ZeroMemory(&pi, sizeof(pi));
+    if(CreateProcess(NULL, szCmdline, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
+    {
+        CloseHandle(pi.hProcess);
+        CloseHandle(pi.hThread);
+    }
+}
+
+
+static VOID
+ScreensaverDelete(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
 {
     SHFILEOPSTRUCT fos;
 
-    if (ImageListSelection < 1) // Can NOT delete anything :-)
+    if (pGlobalData->ImageListSelection < 1) // Can NOT delete anything :-)
         return;
 
     fos.hwnd = hwndDlg;
     fos.wFunc = FO_DELETE;
     fos.fFlags = 0;
-    fos.pFrom = g_ScreenSaverItems[ImageListSelection].szFilename;
+    fos.pFrom = pGlobalData->g_ScreenSaverItems[pGlobalData->ImageListSelection].szFilename;
 
     SHFileOperationW(&fos);
 }
 
-INT_PTR
-CALLBACK
-ScreenSaverPageProc(HWND hwndDlg,
-                    UINT uMsg,
-                    WPARAM wParam,
-                    LPARAM lParam)
-{
-    switch (uMsg)
-    {
-        case WM_DESTROY:
-        {
-            DestroyMenu(g_hPopupMenu);
-            break;
-        }
-        case WM_INITDIALOG:
-        {
-            SendDlgItemMessage(hwndDlg, IDC_SCREENS_TIME, UDM_SETRANGE, 0, MAKELONG ((short) 240, (short) 0));
-            AddListViewItems(hwndDlg);
-
-            g_hPopupMenu = LoadMenu(hApplet, MAKEINTRESOURCE(IDR_POPUP_MENU));
-            g_hPopupMenu = GetSubMenu(g_hPopupMenu, 0);
-
-            CheckRegScreenSaverIsSecure(hwndDlg);
-        } break;
-
-        case WM_COMMAND:
-        {
-            DWORD controlId = LOWORD(wParam);
-            DWORD command   = HIWORD(wParam);
-
-            switch(controlId) {
-                case IDC_SCREENS_POWER_BUTTON: // Start Powercfg.Cpl
-                {
-                    if (command == BN_CLICKED)
-                        WinExec("rundll32 shell32.dll,Control_RunDLL powercfg.cpl,,",SW_SHOWNORMAL);
-                } break;
-                case IDC_SCREENS_TESTSC: // Screensaver Preview
-                {
-                    if(command == BN_CLICKED)
-                        ScreensaverPreview(hwndDlg);
-                    break;
-                } 
-                case ID_MENU_PREVIEW:
-                {
-                    ScreensaverPreview(hwndDlg);
-                    break;
-                }
-                case ID_MENU_CONFIG:
-                {
-                    ScreensaverConfig(hwndDlg);
-                    break;
-                }
-                case ID_MENU_DELETE: // Delete Screensaver
-                {
-                    if(command == BN_CLICKED) {
-                        ScreensaverDelete(hwndDlg);
-                    }
-                } break;
-                case IDC_SCREENS_SETTINGS: // Screensaver Settings
-                {
-                    if(command == BN_CLICKED)
-                        ScreensaverConfig(hwndDlg);
-                    break;
-                }
-                case IDC_SCREENS_USEPASSCHK: // Screensaver Is Secure
-                {
-                    if(command == BN_CLICKED)
-                        MessageBox(NULL, TEXT("That button doesn't do anything yet"), TEXT("Whoops"), MB_OK);
-                } break;
-                case IDC_SCREENS_TIME: // Delay before show screensaver
-                {
-                }
-                default:
-                    break;
-            } break;
-        }
-        case WM_NOTIFY:
-        {
-           LPNMHDR lpnm = (LPNMHDR)lParam;
-           LPNMITEMACTIVATE nmia = (LPNMITEMACTIVATE) lParam;
-           RECT rc;
-
-           switch(lpnm->code)
-           {
-             case PSN_APPLY:
-             {
-                SetScreenSaver();
-                return TRUE;
-             } break;
-             case NM_RCLICK:
-             {
-                GetWindowRect(GetDlgItem(hwndDlg, IDC_SCREENS_CHOICES), &rc);
-                TrackPopupMenuEx(g_hPopupMenu, TPM_RIGHTBUTTON,
-                                 rc.left + nmia->ptAction.x, rc.top + nmia->ptAction.y, hwndDlg, NULL);
-                break;
-             }
-             case LVN_ITEMCHANGED:
-             {
-                LPNMLISTVIEW nm = (LPNMLISTVIEW)lParam;
-                if ((nm->uNewState & LVIS_SELECTED) == 0)
-                  return FALSE;
-                ListViewItemAreChanged(hwndDlg, nm->iItem);
-                break;
-             }
-            default:
-                break;
-           }
-        } break;
-    }
-
-    return FALSE;
-}
-
-VOID CheckRegScreenSaverIsSecure(HWND hwndDlg)
+
+static VOID
+CheckRegScreenSaverIsSecure(HWND hwndDlg)
 {
     HKEY hKey;
     TCHAR szBuffer[2];
@@ -255,7 +150,7 @@
 
     if (result == ERROR_SUCCESS)
     {
-        if(_ttoi(szBuffer) == 1)
+        if (_ttoi(szBuffer) == 1)
         {
             SendDlgItemMessage(hwndDlg, IDC_SCREENS_USEPASSCHK, BM_SETCHECK, (WPARAM)BST_CHECKED, 0);
             return;
@@ -266,7 +161,8 @@
 }
 
 
-VOID AddListViewItems(HWND hwndDlg)
+static VOID
+AddListViewItems(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
 {
     HWND hwndScreenSaverList = GetDlgItem(hwndDlg, IDC_SCREENS_CHOICES);
     WIN32_FIND_DATA fd;
@@ -298,7 +194,7 @@
     (void)ListView_InsertColumn(hwndScreenSaverList, 0, &dummy);
 
     /* Add the "None" item */
-    ScreenSaverItem = &g_ScreenSaverItems[ScreenlistViewItemCount];
+    ScreenSaverItem = &pGlobalData->g_ScreenSaverItems[ScreenlistViewItemCount];
 
     ScreenSaverItem->bIsScreenSaver = FALSE;
 
@@ -326,7 +222,7 @@
 
     result = RegQueryValueEx(regKey, TEXT("SCRNSAVE.EXE"), 0, &varType, (LPBYTE)wallpaperFilename, &bufferSize);
 
-    if((result == ERROR_SUCCESS) && (_tcslen(wallpaperFilename) > 0))
+    if ((result == ERROR_SUCCESS) && (_tcslen(wallpaperFilename) > 0))
     {
         himl = (HIMAGELIST)SHGetFileInfo(wallpaperFilename,
                                          0,
@@ -335,9 +231,9 @@
                                          SHGFI_SYSICONINDEX | SHGFI_SMALLICON |
                                          SHGFI_DISPLAYNAME);
 
-        if(himl != NULL)
+        if (himl != NULL)
         {
-            if(i++ == 0)
+            if (i++ == 0)
             {
                 g_hScreenShellImageList = himl;
                 (void)ListView_SetImageList(g_hScreengroundList, himl, LVSIL_SMALL);
@@ -406,7 +302,7 @@
                 (VOID)ListView_SetImageList(hwndScreenSaverList, himl, LVSIL_SMALL);
             }
 
-            ScreenSaverItem = &g_ScreenSaverItems[ScreenlistViewItemCount];
+            ScreenSaverItem = &pGlobalData->g_ScreenSaverItems[ScreenlistViewItemCount];
 
             ScreenSaverItem->bIsScreenSaver = TRUE;
 
@@ -445,14 +341,16 @@
     }
 }
 
-VOID SetScreenSaver(VOID)
+
+static VOID
+SetScreenSaver(PGLOBAL_DATA pGlobalData)
 {
     HKEY regKey;
 
     RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Control Panel\\Desktop"), 0, KEY_ALL_ACCESS, &regKey);
-    RegSetValueEx(regKey, TEXT("SCRNSAVE.EXE"), 0, REG_SZ, (BYTE *)g_ScreenSaverItems[ImageListSelection].szFilename, _tcslen(g_ScreenSaverItems[ImageListSelection].szFilename)*sizeof(TCHAR));
-   // RegSetValueEx(regKey, TEXT("SCRNSAVE.EXE"), 0, REG_SZ, g_ScreenSaverItems[ImageListSelection].szFilename, sizeof(TCHAR) * 2);
-
+    RegSetValueEx(regKey, TEXT("SCRNSAVE.EXE"), 0, REG_SZ,
+                  (BYTE *)pGlobalData->g_ScreenSaverItems[pGlobalData->ImageListSelection].szFilename,
+                  _tcslen(pGlobalData->g_ScreenSaverItems[pGlobalData->ImageListSelection].szFilename) * sizeof(TCHAR));
 
     RegCloseKey(regKey);
 
@@ -468,3 +366,122 @@
     //    SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, TEXT(""), SPIF_UPDATEINIFILE);
     //}
 }
+
+
+INT_PTR CALLBACK
+ScreenSaverPageProc(HWND hwndDlg,
+                    UINT uMsg,
+                    WPARAM wParam,
+                    LPARAM lParam)
+{
+    PGLOBAL_DATA pGlobalData;
+
+    pGlobalData = (PGLOBAL_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
+
+    switch (uMsg)
+    {
+        case WM_INITDIALOG:
+            pGlobalData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(GLOBAL_DATA));
+            SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData);
+
+            pGlobalData->ImageListSelection = -1;
+
+            SendDlgItemMessage(hwndDlg, IDC_SCREENS_TIME, UDM_SETRANGE, 0, MAKELONG ((short) 240, (short) 0));
+            AddListViewItems(hwndDlg, pGlobalData);
+
+            pGlobalData->g_hPopupMenu = LoadMenu(hApplet, MAKEINTRESOURCE(IDR_POPUP_MENU));
+            pGlobalData->g_hPopupMenu = GetSubMenu(pGlobalData->g_hPopupMenu, 0);
+
+            CheckRegScreenSaverIsSecure(hwndDlg);
+            break;
+
+        case WM_DESTROY:
+            DestroyMenu(pGlobalData->g_hPopupMenu);
+            HeapFree(GetProcessHeap(), 0, pGlobalData);
+            break;
+
+        case WM_COMMAND:
+        {
+            DWORD controlId = LOWORD(wParam);
+            DWORD command   = HIWORD(wParam);
+
+            switch (controlId)
+            {
+                case IDC_SCREENS_POWER_BUTTON: // Start Powercfg.Cpl
+                    if (command == BN_CLICKED)
+                        WinExec("rundll32 shell32.dll,Control_RunDLL powercfg.cpl,,",SW_SHOWNORMAL);
+                    break;
+
+                case IDC_SCREENS_TESTSC: // Screensaver Preview
+                    if(command == BN_CLICKED)
+                        ScreensaverPreview(hwndDlg, pGlobalData);
+                    break;
+
+                case ID_MENU_PREVIEW:
+                    ScreensaverPreview(hwndDlg, pGlobalData);
+                    break;
+
+                case ID_MENU_CONFIG:
+                    ScreensaverConfig(hwndDlg, pGlobalData);
+                    break;
+
+                case ID_MENU_DELETE: // Delete Screensaver
+                    if (command == BN_CLICKED)
+                        ScreensaverDelete(hwndDlg, pGlobalData);
+                    break;
+
+                case IDC_SCREENS_SETTINGS: // Screensaver Settings
+                    if (command == BN_CLICKED)
+                        ScreensaverConfig(hwndDlg, pGlobalData);
+                    break;
+
+                case IDC_SCREENS_USEPASSCHK: // Screensaver Is Secure
+                    if (command == BN_CLICKED)
+                        MessageBox(NULL, TEXT("That button doesn't do anything yet"), TEXT("Whoops"), MB_OK);
+                    break;
+
+                case IDC_SCREENS_TIME: // Delay before show screensaver
+                    break;
+
+                default:
+                    break;
+            }
+            break;
+        }
+
+        case WM_NOTIFY:
+        {
+            LPNMHDR lpnm = (LPNMHDR)lParam;
+            LPNMITEMACTIVATE nmia = (LPNMITEMACTIVATE) lParam;
+            RECT rc;
+
+            switch(lpnm->code)
+            {
+                case PSN_APPLY:
+                    SetScreenSaver(pGlobalData);
+                    return TRUE;
+
+                case NM_RCLICK:
+                    GetWindowRect(GetDlgItem(hwndDlg, IDC_SCREENS_CHOICES), &rc);
+                    TrackPopupMenuEx(pGlobalData->g_hPopupMenu, TPM_RIGHTBUTTON,
+                                     rc.left + nmia->ptAction.x, rc.top + nmia->ptAction.y, hwndDlg, NULL);
+                    break;
+
+                case LVN_ITEMCHANGED:
+                {
+                    LPNMLISTVIEW nm = (LPNMLISTVIEW)lParam;
+                    if ((nm->uNewState & LVIS_SELECTED) == 0)
+                        return FALSE;
+                    ListViewItemAreChanged(hwndDlg, pGlobalData, nm->iItem);
+                    break;
+                }
+
+                default:
+                    break;
+            }
+        }
+        break;
+    }
+
+    return FALSE;
+}




More information about the Ros-diffs mailing list