mirror of
https://github.com/reactos/reactos.git
synced 2025-06-04 17:00:31 +00:00
[DESK.CPL]
Katayama Hirofumi <katayama.hirofumi.mz@gmail.com> - Renamed GLOBAL_DATA structures to DATA. - Added real GLOBAL_DATA in background.c, that manages the background color. - Resolved conflict of background colors in background.c and appearance.c. - Fixed drawing the menu in draw.c. See issue #5620 for more details. svn path=/trunk/; revision=48812
This commit is contained in:
parent
3a615a70fb
commit
0dc63433f9
8 changed files with 304 additions and 294 deletions
|
@ -5,7 +5,7 @@
|
|||
* PURPOSE: Appearance property page
|
||||
*
|
||||
* PROGRAMMERS: Trevor McCort (lycan359@gmail.com)
|
||||
* Timo Kreuzer (timo[dot]kreuzer[at]web[dot]de
|
||||
* Timo Kreuzer (timo[dot]kreuzer[at]web[dot]de)
|
||||
*/
|
||||
|
||||
#include "desk.h"
|
||||
|
@ -115,6 +115,7 @@ AppearancePageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
{
|
||||
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
|
||||
g->Theme = g->ThemeAdv;
|
||||
g_GlobalData.desktop_color = g->Theme.crColor[COLOR_DESKTOP];
|
||||
g->bHasChanged = TRUE;
|
||||
g->ThemeId = -1; /* Customized */
|
||||
SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_COLORSCHEME, CB_SETCURSEL, (WPARAM)-1, 0);
|
||||
|
@ -160,6 +161,14 @@ AppearancePageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
case PSN_KILLACTIVE:
|
||||
SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, (LONG_PTR)FALSE);
|
||||
return TRUE;
|
||||
|
||||
case PSN_SETACTIVE:
|
||||
if (g->Theme.crColor[COLOR_DESKTOP] != g_GlobalData.desktop_color)
|
||||
{
|
||||
g->Theme.crColor[COLOR_DESKTOP] = g_GlobalData.desktop_color;
|
||||
SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_PREVIEW, PVM_UPDATETHEME, 0, (LPARAM)&g->Theme);
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@ typedef struct
|
|||
|
||||
} BackgroundItem;
|
||||
|
||||
typedef struct _GLOBAL_DATA
|
||||
typedef struct _DATA
|
||||
{
|
||||
BackgroundItem backgroundItems[MAX_BACKGROUNDS];
|
||||
|
||||
|
@ -35,7 +35,6 @@ typedef struct _GLOBAL_DATA
|
|||
int placementSelection;
|
||||
int backgroundSelection;
|
||||
|
||||
COLORREF backgroundDesktopColor;
|
||||
COLORREF custom_colors[16];
|
||||
|
||||
int listViewItemCount;
|
||||
|
@ -43,13 +42,14 @@ typedef struct _GLOBAL_DATA
|
|||
HBITMAP hBitmap;
|
||||
int cxSource;
|
||||
int cySource;
|
||||
} GLOBAL_DATA, *PGLOBAL_DATA;
|
||||
} DATA, *PDATA;
|
||||
|
||||
GLOBAL_DATA g_GlobalData;
|
||||
|
||||
|
||||
/* Add the images in the C:\ReactOS directory and the current wallpaper if any */
|
||||
static VOID
|
||||
AddListViewItems(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
||||
AddListViewItems(HWND hwndDlg, PDATA pData)
|
||||
{
|
||||
WIN32_FIND_DATA fd;
|
||||
HANDLE hFind;
|
||||
|
@ -85,7 +85,7 @@ AddListViewItems(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
(void)ListView_InsertColumn(hwndBackgroundList, 0, &dummy);
|
||||
|
||||
/* Add the "None" item */
|
||||
backgroundItem = &pGlobalData->backgroundItems[pGlobalData->listViewItemCount];
|
||||
backgroundItem = &pData->backgroundItems[pData->listViewItemCount];
|
||||
backgroundItem->bWallpaper = FALSE;
|
||||
LoadString(hApplet,
|
||||
IDS_NONE,
|
||||
|
@ -97,16 +97,16 @@ AddListViewItems(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
listItem.state = 0;
|
||||
listItem.pszText = backgroundItem->szDisplayName;
|
||||
listItem.iImage = -1;
|
||||
listItem.iItem = pGlobalData->listViewItemCount;
|
||||
listItem.lParam = pGlobalData->listViewItemCount;
|
||||
listItem.iItem = pData->listViewItemCount;
|
||||
listItem.lParam = pData->listViewItemCount;
|
||||
|
||||
(void)ListView_InsertItem(hwndBackgroundList, &listItem);
|
||||
ListView_SetItemState(hwndBackgroundList,
|
||||
pGlobalData->listViewItemCount,
|
||||
pData->listViewItemCount,
|
||||
LVIS_SELECTED,
|
||||
LVIS_SELECTED);
|
||||
|
||||
pGlobalData->listViewItemCount++;
|
||||
pData->listViewItemCount++;
|
||||
|
||||
/* Add current wallpaper if any */
|
||||
RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Control Panel\\Desktop"), 0, KEY_ALL_ACCESS, ®Key);
|
||||
|
@ -134,7 +134,7 @@ AddListViewItems(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
(void)ListView_SetImageList(hwndBackgroundList, himl, LVSIL_SMALL);
|
||||
}
|
||||
|
||||
backgroundItem = &pGlobalData->backgroundItems[pGlobalData->listViewItemCount];
|
||||
backgroundItem = &pData->backgroundItems[pData->listViewItemCount];
|
||||
|
||||
backgroundItem->bWallpaper = TRUE;
|
||||
|
||||
|
@ -149,16 +149,16 @@ AddListViewItems(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
listItem.state = 0;
|
||||
listItem.pszText = backgroundItem->szDisplayName;
|
||||
listItem.iImage = sfi.iIcon;
|
||||
listItem.iItem = pGlobalData->listViewItemCount;
|
||||
listItem.lParam = pGlobalData->listViewItemCount;
|
||||
listItem.iItem = pData->listViewItemCount;
|
||||
listItem.lParam = pData->listViewItemCount;
|
||||
|
||||
(void)ListView_InsertItem(hwndBackgroundList, &listItem);
|
||||
ListView_SetItemState(hwndBackgroundList,
|
||||
pGlobalData->listViewItemCount,
|
||||
pData->listViewItemCount,
|
||||
LVIS_SELECTED,
|
||||
LVIS_SELECTED);
|
||||
|
||||
pGlobalData->listViewItemCount++;
|
||||
pData->listViewItemCount++;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -203,7 +203,7 @@ AddListViewItems(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
(void)ListView_SetImageList(hwndBackgroundList, himl, LVSIL_SMALL);
|
||||
}
|
||||
|
||||
backgroundItem = &pGlobalData->backgroundItems[pGlobalData->listViewItemCount];
|
||||
backgroundItem = &pData->backgroundItems[pData->listViewItemCount];
|
||||
|
||||
backgroundItem->bWallpaper = TRUE;
|
||||
|
||||
|
@ -218,12 +218,12 @@ AddListViewItems(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
listItem.pszText = backgroundItem->szDisplayName;
|
||||
listItem.state = 0;
|
||||
listItem.iImage = sfi.iIcon;
|
||||
listItem.iItem = pGlobalData->listViewItemCount;
|
||||
listItem.lParam = pGlobalData->listViewItemCount;
|
||||
listItem.iItem = pData->listViewItemCount;
|
||||
listItem.lParam = pData->listViewItemCount;
|
||||
|
||||
(void)ListView_InsertItem(hwndBackgroundList, &listItem);
|
||||
|
||||
pGlobalData->listViewItemCount++;
|
||||
pData->listViewItemCount++;
|
||||
}
|
||||
|
||||
if(!FindNextFile(hFind, &fd))
|
||||
|
@ -236,7 +236,7 @@ AddListViewItems(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
|
||||
|
||||
static VOID
|
||||
InitBackgroundDialog(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
||||
InitBackgroundDialog(HWND hwndDlg, PDATA pData)
|
||||
{
|
||||
TCHAR szString[256];
|
||||
HKEY regKey;
|
||||
|
@ -246,9 +246,7 @@ InitBackgroundDialog(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
LONG result;
|
||||
BITMAP bitmap;
|
||||
|
||||
pGlobalData->backgroundDesktopColor = GetSysColor(COLOR_BACKGROUND);
|
||||
|
||||
AddListViewItems(hwndDlg, pGlobalData);
|
||||
AddListViewItems(hwndDlg, pData);
|
||||
|
||||
LoadString(hApplet, IDS_CENTER, szString, sizeof(szString) / sizeof(TCHAR));
|
||||
SendDlgItemMessage(hwndDlg, IDC_PLACEMENT_COMBO, CB_INSERTSTRING, PLACEMENT_CENTER, (LPARAM)szString);
|
||||
|
@ -278,19 +276,19 @@ InitBackgroundDialog(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
if (_ttoi(szBuffer) == 0)
|
||||
{
|
||||
SendDlgItemMessage(hwndDlg, IDC_PLACEMENT_COMBO, CB_SETCURSEL, PLACEMENT_CENTER, 0);
|
||||
pGlobalData->placementSelection = PLACEMENT_CENTER;
|
||||
pData->placementSelection = PLACEMENT_CENTER;
|
||||
}
|
||||
|
||||
if (_ttoi(szBuffer) == 2)
|
||||
{
|
||||
SendDlgItemMessage(hwndDlg, IDC_PLACEMENT_COMBO, CB_SETCURSEL, PLACEMENT_STRETCH, 0);
|
||||
pGlobalData->placementSelection = PLACEMENT_STRETCH;
|
||||
pData->placementSelection = PLACEMENT_STRETCH;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SendDlgItemMessage(hwndDlg, IDC_PLACEMENT_COMBO, CB_SETCURSEL, PLACEMENT_CENTER, 0);
|
||||
pGlobalData->placementSelection = PLACEMENT_CENTER;
|
||||
pData->placementSelection = PLACEMENT_CENTER;
|
||||
}
|
||||
|
||||
result = RegQueryValueEx(regKey, TEXT("TileWallpaper"), 0, &varType, (LPBYTE)szBuffer, &bufferSize);
|
||||
|
@ -299,25 +297,25 @@ InitBackgroundDialog(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
if (_ttoi(szBuffer) == 1)
|
||||
{
|
||||
SendDlgItemMessage(hwndDlg, IDC_PLACEMENT_COMBO, CB_SETCURSEL, PLACEMENT_TILE, 0);
|
||||
pGlobalData->placementSelection = PLACEMENT_TILE;
|
||||
pData->placementSelection = PLACEMENT_TILE;
|
||||
}
|
||||
}
|
||||
|
||||
RegCloseKey(regKey);
|
||||
|
||||
pGlobalData->hBitmap = (HBITMAP) LoadImage(hApplet, MAKEINTRESOURCE(IDC_MONITOR), IMAGE_BITMAP, 0, 0, LR_LOADTRANSPARENT);
|
||||
if (pGlobalData->hBitmap != NULL)
|
||||
pData->hBitmap = (HBITMAP) LoadImage(hApplet, MAKEINTRESOURCE(IDC_MONITOR), IMAGE_BITMAP, 0, 0, LR_LOADTRANSPARENT);
|
||||
if (pData->hBitmap != NULL)
|
||||
{
|
||||
GetObject(pGlobalData->hBitmap, sizeof(BITMAP), &bitmap);
|
||||
GetObject(pData->hBitmap, sizeof(BITMAP), &bitmap);
|
||||
|
||||
pGlobalData->cxSource = bitmap.bmWidth;
|
||||
pGlobalData->cySource = bitmap.bmHeight;
|
||||
pData->cxSource = bitmap.bmWidth;
|
||||
pData->cySource = bitmap.bmHeight;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static VOID
|
||||
OnColorButton(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
||||
OnColorButton(HWND hwndDlg, PDATA pData)
|
||||
{
|
||||
/* Load custom colors from Registry */
|
||||
HKEY hKey = NULL;
|
||||
|
@ -331,9 +329,9 @@ OnColorButton(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
{
|
||||
/* Key opened */
|
||||
DWORD dwType = REG_BINARY;
|
||||
DWORD cbData = sizeof(pGlobalData->custom_colors);
|
||||
DWORD cbData = sizeof(pData->custom_colors);
|
||||
res = RegQueryValueEx(hKey, TEXT("CustomColors"), NULL, &dwType,
|
||||
(LPBYTE)pGlobalData->custom_colors, &cbData);
|
||||
(LPBYTE)pData->custom_colors, &cbData);
|
||||
RegCloseKey(hKey);
|
||||
hKey = NULL;
|
||||
}
|
||||
|
@ -343,8 +341,8 @@ OnColorButton(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
cc.lStructSize = sizeof(CHOOSECOLOR);
|
||||
cc.hwndOwner = hwndDlg;
|
||||
cc.hInstance = NULL;
|
||||
cc.rgbResult = pGlobalData->backgroundDesktopColor;
|
||||
cc.lpCustColors = pGlobalData->custom_colors;
|
||||
cc.rgbResult = g_GlobalData.desktop_color;
|
||||
cc.lpCustColors = pData->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 */
|
||||
|
@ -354,7 +352,7 @@ OnColorButton(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
if (ChooseColor(&cc))
|
||||
{
|
||||
/* Save selected color to var */
|
||||
pGlobalData->backgroundDesktopColor = cc.rgbResult;
|
||||
g_GlobalData.desktop_color = cc.rgbResult;
|
||||
|
||||
/* Apply button will be activated */
|
||||
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
|
||||
|
@ -369,7 +367,7 @@ OnColorButton(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
{
|
||||
/* Key opened */
|
||||
RegSetValueEx(hKey, TEXT("CustomColors"), 0, REG_BINARY,
|
||||
(const BYTE *)pGlobalData->custom_colors, sizeof(pGlobalData->custom_colors));
|
||||
(const BYTE *)pData->custom_colors, sizeof(pData->custom_colors));
|
||||
RegCloseKey(hKey);
|
||||
hKey = NULL;
|
||||
}
|
||||
|
@ -400,7 +398,7 @@ CheckListViewFilenameExists(HWND hwndList, LPCTSTR tszFileName)
|
|||
|
||||
|
||||
static VOID
|
||||
OnBrowseButton(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
||||
OnBrowseButton(HWND hwndDlg, PDATA pData)
|
||||
{
|
||||
OPENFILENAME ofn;
|
||||
TCHAR filename[MAX_PATH];
|
||||
|
@ -439,7 +437,7 @@ OnBrowseButton(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
if (CheckListViewFilenameExists(hwndBackgroundList, ofn.lpstrFileTitle) == TRUE)
|
||||
return;
|
||||
|
||||
if (pGlobalData->listViewItemCount > (MAX_BACKGROUNDS - 1))
|
||||
if (pData->listViewItemCount > (MAX_BACKGROUNDS - 1))
|
||||
return;
|
||||
|
||||
SHGetFileInfo(filename,
|
||||
|
@ -448,7 +446,7 @@ OnBrowseButton(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
sizeof(sfi),
|
||||
SHGFI_SYSICONINDEX | SHGFI_SMALLICON | SHGFI_DISPLAYNAME);
|
||||
|
||||
backgroundItem = &pGlobalData->backgroundItems[pGlobalData->listViewItemCount];
|
||||
backgroundItem = &pData->backgroundItems[pData->listViewItemCount];
|
||||
|
||||
backgroundItem->bWallpaper = TRUE;
|
||||
|
||||
|
@ -463,40 +461,40 @@ OnBrowseButton(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
listItem.state = 0;
|
||||
listItem.pszText = backgroundItem->szDisplayName;
|
||||
listItem.iImage = sfi.iIcon;
|
||||
listItem.iItem = pGlobalData->listViewItemCount;
|
||||
listItem.lParam = pGlobalData->listViewItemCount;
|
||||
listItem.iItem = pData->listViewItemCount;
|
||||
listItem.lParam = pData->listViewItemCount;
|
||||
|
||||
(void)ListView_InsertItem(hwndBackgroundList, &listItem);
|
||||
ListView_SetItemState(hwndBackgroundList,
|
||||
pGlobalData->listViewItemCount,
|
||||
pData->listViewItemCount,
|
||||
LVIS_SELECTED,
|
||||
LVIS_SELECTED);
|
||||
SendMessage(hwndBackgroundList, WM_VSCROLL, SB_BOTTOM, 0);
|
||||
|
||||
pGlobalData->listViewItemCount++;
|
||||
pData->listViewItemCount++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static VOID
|
||||
ListViewItemChanged(HWND hwndDlg, PGLOBAL_DATA pGlobalData, int itemIndex)
|
||||
ListViewItemChanged(HWND hwndDlg, PDATA pData, int itemIndex)
|
||||
{
|
||||
BackgroundItem *backgroundItem = NULL;
|
||||
|
||||
pGlobalData->backgroundSelection = itemIndex;
|
||||
backgroundItem = &pGlobalData->backgroundItems[pGlobalData->backgroundSelection];
|
||||
pData->backgroundSelection = itemIndex;
|
||||
backgroundItem = &pData->backgroundItems[pData->backgroundSelection];
|
||||
|
||||
if (pGlobalData->pWallpaperBitmap != NULL)
|
||||
if (pData->pWallpaperBitmap != NULL)
|
||||
{
|
||||
DibFreeImage(pGlobalData->pWallpaperBitmap);
|
||||
pGlobalData->pWallpaperBitmap = NULL;
|
||||
DibFreeImage(pData->pWallpaperBitmap);
|
||||
pData->pWallpaperBitmap = NULL;
|
||||
}
|
||||
|
||||
if (backgroundItem->bWallpaper == TRUE)
|
||||
{
|
||||
pGlobalData->pWallpaperBitmap = DibLoadImage(backgroundItem->szFilename);
|
||||
pData->pWallpaperBitmap = DibLoadImage(backgroundItem->szFilename);
|
||||
|
||||
if (pGlobalData->pWallpaperBitmap == NULL)
|
||||
if (pData->pWallpaperBitmap == NULL)
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -511,7 +509,7 @@ ListViewItemChanged(HWND hwndDlg, PGLOBAL_DATA pGlobalData, int itemIndex)
|
|||
|
||||
|
||||
static VOID
|
||||
DrawBackgroundPreview(LPDRAWITEMSTRUCT draw, PGLOBAL_DATA pGlobalData)
|
||||
DrawBackgroundPreview(LPDRAWITEMSTRUCT draw, PDATA pData)
|
||||
{
|
||||
float scaleX;
|
||||
float scaleY;
|
||||
|
@ -523,23 +521,23 @@ DrawBackgroundPreview(LPDRAWITEMSTRUCT draw, PGLOBAL_DATA pGlobalData)
|
|||
int x;
|
||||
int y;
|
||||
|
||||
if (pGlobalData->backgroundItems[pGlobalData->backgroundSelection].bWallpaper == FALSE)
|
||||
if (pData->backgroundItems[pData->backgroundSelection].bWallpaper == FALSE)
|
||||
{
|
||||
/* update desktop background color image */
|
||||
hBrush = CreateSolidBrush(pGlobalData->backgroundDesktopColor);
|
||||
hBrush = CreateSolidBrush(g_GlobalData.desktop_color);
|
||||
FillRect(draw->hDC, &draw->rcItem, hBrush);
|
||||
DeleteObject(hBrush);
|
||||
return;
|
||||
}
|
||||
|
||||
if (pGlobalData->pWallpaperBitmap == NULL)
|
||||
if (pData->pWallpaperBitmap == NULL)
|
||||
return;
|
||||
|
||||
scaleX = ((float)GetSystemMetrics(SM_CXSCREEN) - 1) / (float)draw->rcItem.right;
|
||||
scaleY = ((float)GetSystemMetrics(SM_CYSCREEN) - 1) / (float)draw->rcItem.bottom;
|
||||
|
||||
scaledWidth = pGlobalData->pWallpaperBitmap->width / scaleX;
|
||||
scaledHeight = pGlobalData->pWallpaperBitmap->height / scaleY;
|
||||
scaledWidth = pData->pWallpaperBitmap->width / scaleX;
|
||||
scaledHeight = pData->pWallpaperBitmap->height / scaleY;
|
||||
|
||||
posX = (draw->rcItem.right / 2) - (scaledWidth / 2);
|
||||
posY = (draw->rcItem.bottom / 2) - (scaledHeight / 2);
|
||||
|
@ -548,7 +546,7 @@ DrawBackgroundPreview(LPDRAWITEMSTRUCT draw, PGLOBAL_DATA pGlobalData)
|
|||
|
||||
SetStretchBltMode(draw->hDC, COLORONCOLOR);
|
||||
|
||||
switch (pGlobalData->placementSelection)
|
||||
switch (pData->placementSelection)
|
||||
{
|
||||
case PLACEMENT_CENTER:
|
||||
StretchDIBits(draw->hDC,
|
||||
|
@ -558,10 +556,10 @@ DrawBackgroundPreview(LPDRAWITEMSTRUCT draw, PGLOBAL_DATA pGlobalData)
|
|||
scaledHeight,
|
||||
0,
|
||||
0,
|
||||
pGlobalData->pWallpaperBitmap->width,
|
||||
pGlobalData->pWallpaperBitmap->height,
|
||||
pGlobalData->pWallpaperBitmap->bits,
|
||||
pGlobalData->pWallpaperBitmap->info,
|
||||
pData->pWallpaperBitmap->width,
|
||||
pData->pWallpaperBitmap->height,
|
||||
pData->pWallpaperBitmap->bits,
|
||||
pData->pWallpaperBitmap->info,
|
||||
DIB_RGB_COLORS,
|
||||
SRCCOPY);
|
||||
break;
|
||||
|
@ -574,10 +572,10 @@ DrawBackgroundPreview(LPDRAWITEMSTRUCT draw, PGLOBAL_DATA pGlobalData)
|
|||
draw->rcItem.bottom,
|
||||
0,
|
||||
0,
|
||||
pGlobalData->pWallpaperBitmap->width,
|
||||
pGlobalData->pWallpaperBitmap->height,
|
||||
pGlobalData->pWallpaperBitmap->bits,
|
||||
pGlobalData->pWallpaperBitmap->info,
|
||||
pData->pWallpaperBitmap->width,
|
||||
pData->pWallpaperBitmap->height,
|
||||
pData->pWallpaperBitmap->bits,
|
||||
pData->pWallpaperBitmap->info,
|
||||
DIB_RGB_COLORS,
|
||||
SRCCOPY);
|
||||
break;
|
||||
|
@ -594,10 +592,10 @@ DrawBackgroundPreview(LPDRAWITEMSTRUCT draw, PGLOBAL_DATA pGlobalData)
|
|||
scaledHeight,
|
||||
0,
|
||||
0,
|
||||
pGlobalData->pWallpaperBitmap->width,
|
||||
pGlobalData->pWallpaperBitmap->height,
|
||||
pGlobalData->pWallpaperBitmap->bits,
|
||||
pGlobalData->pWallpaperBitmap->info,
|
||||
pData->pWallpaperBitmap->width,
|
||||
pData->pWallpaperBitmap->height,
|
||||
pData->pWallpaperBitmap->bits,
|
||||
pData->pWallpaperBitmap->info,
|
||||
DIB_RGB_COLORS,
|
||||
SRCCOPY);
|
||||
}
|
||||
|
@ -608,25 +606,25 @@ DrawBackgroundPreview(LPDRAWITEMSTRUCT draw, PGLOBAL_DATA pGlobalData)
|
|||
|
||||
|
||||
static VOID
|
||||
SetWallpaper(PGLOBAL_DATA pGlobalData)
|
||||
SetWallpaper(PDATA pData)
|
||||
{
|
||||
HKEY regKey;
|
||||
|
||||
RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Control Panel\\Desktop"), 0, KEY_ALL_ACCESS, ®Key);
|
||||
|
||||
if (pGlobalData->placementSelection == PLACEMENT_TILE)
|
||||
if (pData->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 (pGlobalData->placementSelection == PLACEMENT_CENTER)
|
||||
if (pData->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 (pGlobalData->placementSelection == PLACEMENT_STRETCH)
|
||||
if (pData->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);
|
||||
|
@ -634,11 +632,11 @@ SetWallpaper(PGLOBAL_DATA pGlobalData)
|
|||
|
||||
RegCloseKey(regKey);
|
||||
|
||||
if (pGlobalData->backgroundItems[pGlobalData->backgroundSelection].bWallpaper == TRUE)
|
||||
if (pData->backgroundItems[pData->backgroundSelection].bWallpaper == TRUE)
|
||||
{
|
||||
SystemParametersInfo(SPI_SETDESKWALLPAPER,
|
||||
0,
|
||||
pGlobalData->backgroundItems[pGlobalData->backgroundSelection].szFilename,
|
||||
pData->backgroundItems[pData->backgroundSelection].szFilename,
|
||||
SPIF_UPDATEINIFILE);
|
||||
}
|
||||
else
|
||||
|
@ -650,38 +648,33 @@ SetWallpaper(PGLOBAL_DATA pGlobalData)
|
|||
|
||||
/* Change system color */
|
||||
static VOID
|
||||
SetDesktopBackColor(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
||||
SetDesktopBackColor(HWND hwndDlg, DATA *pData)
|
||||
{
|
||||
INT iElement = COLOR_BACKGROUND;
|
||||
HKEY hKey;
|
||||
LONG result;
|
||||
TCHAR clText[16];
|
||||
DWORD red, green, blue;
|
||||
BYTE red, green, blue;
|
||||
DWORD dwDispostion;
|
||||
|
||||
if( !SetSysColors( 1, &iElement, &pGlobalData->backgroundDesktopColor ) )
|
||||
if( !SetSysColors( 1, &iElement, &g_GlobalData.desktop_color ) )
|
||||
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;
|
||||
result = ERROR_SUCCESS;
|
||||
result = RegOpenKeyEx( HKEY_CURRENT_USER, TEXT("Control Panel\\Colors"), 0, KEY_WRITE, &hKey );
|
||||
if( result != ERROR_SUCCESS )
|
||||
{
|
||||
/* Key open failed; maybe it does not exist? create it! */
|
||||
result = RegCreateKeyEx( HKEY_CURRENT_USER, TEXT("Control Panel\\Colors"), 0, NULL, 0,
|
||||
KEY_ALL_ACCESS, NULL, &hKey, NULL );
|
||||
/* Now key must be created and opened and hKey must point at newly created key */
|
||||
/* On error result will not contain ERROR_SUCCESS. I don't know how to handle */
|
||||
/* this case :( */
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
result = RegCreateKeyEx( HKEY_CURRENT_USER, TEXT("Control Panel\\Colors"), 0, NULL, 0,
|
||||
KEY_ALL_ACCESS, NULL, &hKey, &dwDispostion );
|
||||
if (result != ERROR_SUCCESS)
|
||||
{
|
||||
red = GetRValue(g_GlobalData.desktop_color);
|
||||
green = GetGValue(g_GlobalData.desktop_color);
|
||||
blue = GetBValue(g_GlobalData.desktop_color);
|
||||
/* format string to be set to registry */
|
||||
wsprintf(clText, TEXT("%d %d %d"), red, green, blue);
|
||||
RegSetValueEx(hKey, TEXT("Background"), 0, REG_SZ, (BYTE *)clText,
|
||||
(lstrlen(clText) + 1) * sizeof(TCHAR));
|
||||
RegCloseKey(hKey);
|
||||
}
|
||||
}
|
||||
|
||||
INT_PTR CALLBACK
|
||||
BackgroundPageProc(HWND hwndDlg,
|
||||
|
@ -689,16 +682,16 @@ BackgroundPageProc(HWND hwndDlg,
|
|||
WPARAM wParam,
|
||||
LPARAM lParam)
|
||||
{
|
||||
PGLOBAL_DATA pGlobalData;
|
||||
PDATA pData;
|
||||
|
||||
pGlobalData = (PGLOBAL_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
|
||||
pData = (PDATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
|
||||
|
||||
switch (uMsg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
pGlobalData = (GLOBAL_DATA*) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(GLOBAL_DATA));
|
||||
SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData);
|
||||
InitBackgroundDialog(hwndDlg, pGlobalData);
|
||||
pData = (DATA*) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DATA));
|
||||
SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pData);
|
||||
InitBackgroundDialog(hwndDlg, pData);
|
||||
break;
|
||||
|
||||
case WM_COMMAND:
|
||||
|
@ -710,18 +703,18 @@ BackgroundPageProc(HWND hwndDlg,
|
|||
{
|
||||
case IDC_COLOR_BUTTON:
|
||||
if (command == BN_CLICKED)
|
||||
OnColorButton(hwndDlg, pGlobalData);
|
||||
OnColorButton(hwndDlg, pData);
|
||||
break;
|
||||
|
||||
case IDC_BROWSE_BUTTON:
|
||||
if (command == BN_CLICKED)
|
||||
OnBrowseButton(hwndDlg, pGlobalData);
|
||||
OnBrowseButton(hwndDlg, pData);
|
||||
break;
|
||||
|
||||
case IDC_PLACEMENT_COMBO:
|
||||
if (command == CBN_SELCHANGE)
|
||||
{
|
||||
pGlobalData->placementSelection = (int)SendDlgItemMessage(hwndDlg, IDC_PLACEMENT_COMBO, CB_GETCURSEL, 0, 0);
|
||||
pData->placementSelection = (int)SendDlgItemMessage(hwndDlg, IDC_PLACEMENT_COMBO, CB_GETCURSEL, 0, 0);
|
||||
|
||||
InvalidateRect(GetDlgItem(hwndDlg, IDC_BACKGROUND_PREVIEW), NULL, TRUE);
|
||||
|
||||
|
@ -739,11 +732,11 @@ BackgroundPageProc(HWND hwndDlg,
|
|||
hdc = BeginPaint(hwndDlg, &ps);
|
||||
|
||||
hdcMem = CreateCompatibleDC(hdc);
|
||||
SelectObject(hdcMem, pGlobalData->hBitmap);
|
||||
SelectObject(hdcMem, pData->hBitmap);
|
||||
/*
|
||||
TransparentBlt(hdc, 98, 0,
|
||||
pGlobalData->cxSource, pGlobalData->cySource, hdcMem, 0, 0,
|
||||
pGlobalData->cxSource, pGlobalData->cySource, 0xFF80FF);
|
||||
pData->cxSource, pData->cySource, hdcMem, 0, 0,
|
||||
pData->cxSource, pData->cySource, 0xFF80FF);
|
||||
*/
|
||||
DeleteDC(hdcMem);
|
||||
EndPaint(hwndDlg, &ps);
|
||||
|
@ -757,7 +750,7 @@ BackgroundPageProc(HWND hwndDlg,
|
|||
|
||||
if (drawItem->CtlID == IDC_BACKGROUND_PREVIEW)
|
||||
{
|
||||
DrawBackgroundPreview(drawItem, pGlobalData);
|
||||
DrawBackgroundPreview(drawItem, pData);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -770,8 +763,8 @@ BackgroundPageProc(HWND hwndDlg,
|
|||
switch(lpnm->code)
|
||||
{
|
||||
case PSN_APPLY:
|
||||
SetWallpaper(pGlobalData);
|
||||
SetDesktopBackColor(hwndDlg, pGlobalData);
|
||||
SetWallpaper(pData);
|
||||
SetDesktopBackColor(hwndDlg, pData);
|
||||
return TRUE;
|
||||
|
||||
case LVN_ITEMCHANGED:
|
||||
|
@ -781,23 +774,21 @@ BackgroundPageProc(HWND hwndDlg,
|
|||
if ((nm->uNewState & LVIS_SELECTED) == 0)
|
||||
return FALSE;
|
||||
|
||||
ListViewItemChanged(hwndDlg, pGlobalData, nm->iItem);
|
||||
|
||||
} break;
|
||||
ListViewItemChanged(hwndDlg, pData, nm->iItem);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_DESTROY:
|
||||
if (pGlobalData->pWallpaperBitmap != NULL)
|
||||
DibFreeImage(pGlobalData->pWallpaperBitmap);
|
||||
if (pData->pWallpaperBitmap != NULL)
|
||||
DibFreeImage(pData->pWallpaperBitmap);
|
||||
|
||||
DeleteObject(pGlobalData->hBitmap);
|
||||
HeapFree(GetProcessHeap(), 0, pGlobalData);
|
||||
DeleteObject(pData->hBitmap);
|
||||
HeapFree(GetProcessHeap(), 0, pData);
|
||||
break;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -132,6 +132,8 @@ DisplayApplet(HWND hwnd, UINT uMsg, LPARAM wParam, LPARAM lParam)
|
|||
UNREFERENCED_PARAMETER(uMsg);
|
||||
UNREFERENCED_PARAMETER(hwnd);
|
||||
|
||||
g_GlobalData.desktop_color = GetSysColor(COLOR_DESKTOP);
|
||||
|
||||
LoadString(hApplet, IDS_CPLNAME, Caption, sizeof(Caption) / sizeof(TCHAR));
|
||||
|
||||
ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
|
||||
|
|
|
@ -85,6 +85,13 @@ typedef struct _DISPLAY_DEVICE_ENTRY
|
|||
SETTINGS_ENTRY InitialSettings;
|
||||
} DISPLAY_DEVICE_ENTRY, *PDISPLAY_DEVICE_ENTRY;
|
||||
|
||||
typedef struct _GLOBAL_DATA
|
||||
{
|
||||
COLORREF desktop_color;
|
||||
} GLOBAL_DATA, *PGLOBAL_DATA;
|
||||
|
||||
extern GLOBAL_DATA g_GlobalData;
|
||||
|
||||
BOOL
|
||||
DisplayAdvancedSettings(HWND hWndParent, PDISPLAY_DEVICE_ENTRY DisplayDevice);
|
||||
|
||||
|
|
|
@ -541,11 +541,11 @@ MyDrawMenuBarTemp(HWND Wnd, HDC DC, LPRECT Rect, HMENU Menu, HFONT Font, THEME *
|
|||
{
|
||||
GetMenuStringW(Menu, i, Text, 128, MF_BYPOSITION);
|
||||
|
||||
rect.left = x;
|
||||
rect.left = rect.right = x;
|
||||
rect.top = Rect->top;
|
||||
rect.bottom = Rect->bottom;
|
||||
DrawTextW(DC, Text, -1, &rect, DT_SINGLELINE | DT_CALCRECT);
|
||||
|
||||
rect.bottom = Rect->bottom;
|
||||
rect.bottom = Rect->bottom;
|
||||
rect.right += MENU_BAR_ITEMS_SPACE;
|
||||
x += rect.right - rect.left;
|
||||
|
||||
|
|
|
@ -77,6 +77,7 @@ static VOID UpdatePreviewTheme(HWND hwnd, PPREVIEW_DATA pPreviewData, THEME *the
|
|||
pPreviewData->hbrScrollbar = CreateSolidBrush(theme->crColor[COLOR_SCROLLBAR]);
|
||||
if (pPreviewData->hbrDesktop != NULL)
|
||||
DeleteObject(pPreviewData->hbrDesktop);
|
||||
|
||||
pPreviewData->hbrDesktop = CreateSolidBrush(theme->crColor[COLOR_DESKTOP]);
|
||||
if (pPreviewData->hbrWindow != NULL)
|
||||
DeleteObject(pPreviewData->hbrWindow);
|
||||
|
|
|
@ -20,12 +20,12 @@ typedef struct
|
|||
} ScreenSaverItem;
|
||||
|
||||
|
||||
typedef struct _GLOBAL_DATA
|
||||
typedef struct _DATA
|
||||
{
|
||||
ScreenSaverItem ScreenSaverItems[MAX_SCREENSAVERS];
|
||||
PROCESS_INFORMATION PrevWindowPi;
|
||||
int Selection;
|
||||
} GLOBAL_DATA, *PGLOBAL_DATA;
|
||||
} DATA, *PDATA;
|
||||
|
||||
|
||||
static LPTSTR
|
||||
|
@ -75,7 +75,7 @@ GetCurrentScreenSaverValue(LPTSTR lpValue)
|
|||
|
||||
|
||||
static VOID
|
||||
SelectionChanged(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
||||
SelectionChanged(HWND hwndDlg, PDATA pData)
|
||||
{
|
||||
HWND hwndCombo;
|
||||
BOOL bEnable;
|
||||
|
@ -86,7 +86,7 @@ SelectionChanged(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
i = (INT)SendMessage(hwndCombo, CB_GETCURSEL, 0, 0);
|
||||
i = (INT)SendMessage(hwndCombo, CB_GETITEMDATA, i, 0);
|
||||
|
||||
pGlobalData->Selection = i;
|
||||
pData->Selection = i;
|
||||
|
||||
bEnable = (i != 0);
|
||||
|
||||
|
@ -101,31 +101,31 @@ SelectionChanged(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
|
||||
|
||||
static VOID
|
||||
SetScreenSaverPreviewBox(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
||||
SetScreenSaverPreviewBox(HWND hwndDlg, PDATA pData)
|
||||
{
|
||||
HWND hPreview = GetDlgItem(hwndDlg, IDC_SCREENS_PREVIEW);
|
||||
STARTUPINFO si;
|
||||
TCHAR szCmdline[2048];
|
||||
|
||||
/* kill off the previous preview process*/
|
||||
if (pGlobalData->PrevWindowPi.hProcess)
|
||||
if (pData->PrevWindowPi.hProcess)
|
||||
{
|
||||
TerminateProcess(pGlobalData->PrevWindowPi.hProcess, 0);
|
||||
CloseHandle(pGlobalData->PrevWindowPi.hProcess);
|
||||
CloseHandle(pGlobalData->PrevWindowPi.hThread);
|
||||
pGlobalData->PrevWindowPi.hThread = pGlobalData->PrevWindowPi.hProcess = NULL;
|
||||
TerminateProcess(pData->PrevWindowPi.hProcess, 0);
|
||||
CloseHandle(pData->PrevWindowPi.hProcess);
|
||||
CloseHandle(pData->PrevWindowPi.hThread);
|
||||
pData->PrevWindowPi.hThread = pData->PrevWindowPi.hProcess = NULL;
|
||||
}
|
||||
|
||||
if (pGlobalData->Selection > 0)
|
||||
if (pData->Selection > 0)
|
||||
{
|
||||
_stprintf(szCmdline,
|
||||
_T("%s /p %u"),
|
||||
pGlobalData->ScreenSaverItems[pGlobalData->Selection].szFilename,
|
||||
pData->ScreenSaverItems[pData->Selection].szFilename,
|
||||
hPreview);
|
||||
|
||||
ZeroMemory(&si, sizeof(si));
|
||||
si.cb = sizeof(si);
|
||||
ZeroMemory(&pGlobalData->PrevWindowPi, sizeof(pGlobalData->PrevWindowPi));
|
||||
ZeroMemory(&pData->PrevWindowPi, sizeof(pData->PrevWindowPi));
|
||||
|
||||
if (!CreateProcess(NULL,
|
||||
szCmdline,
|
||||
|
@ -136,9 +136,9 @@ SetScreenSaverPreviewBox(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
NULL,
|
||||
NULL,
|
||||
&si,
|
||||
&pGlobalData->PrevWindowPi))
|
||||
&pData->PrevWindowPi))
|
||||
{
|
||||
pGlobalData->PrevWindowPi.hThread = pGlobalData->PrevWindowPi.hProcess = NULL;
|
||||
pData->PrevWindowPi.hThread = pData->PrevWindowPi.hProcess = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -181,7 +181,7 @@ WaitForSettingsDialog(HWND hwndDlg,
|
|||
|
||||
|
||||
static VOID
|
||||
ScreensaverConfig(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
||||
ScreensaverConfig(HWND hwndDlg, PDATA pData)
|
||||
{
|
||||
/*
|
||||
/c:<hwnd> Run configuration, hwnd is handle of calling window
|
||||
|
@ -191,12 +191,12 @@ ScreensaverConfig(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
STARTUPINFO si;
|
||||
PROCESS_INFORMATION pi;
|
||||
|
||||
if (pGlobalData->Selection < 1)
|
||||
if (pData->Selection < 1)
|
||||
return;
|
||||
|
||||
_stprintf(szCmdline,
|
||||
_T("%s /c:%u"),
|
||||
pGlobalData->ScreenSaverItems[pGlobalData->Selection].szFilename,
|
||||
pData->ScreenSaverItems[pData->Selection].szFilename,
|
||||
hwndDlg);
|
||||
|
||||
ZeroMemory(&si, sizeof(si));
|
||||
|
@ -214,22 +214,22 @@ ScreensaverConfig(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
&pi))
|
||||
{
|
||||
/* kill off the previous preview process */
|
||||
if (pGlobalData->PrevWindowPi.hProcess)
|
||||
if (pData->PrevWindowPi.hProcess)
|
||||
{
|
||||
TerminateProcess(pGlobalData->PrevWindowPi.hProcess, 0);
|
||||
CloseHandle(pGlobalData->PrevWindowPi.hProcess);
|
||||
CloseHandle(pGlobalData->PrevWindowPi.hThread);
|
||||
pGlobalData->PrevWindowPi.hThread = pGlobalData->PrevWindowPi.hProcess = NULL;
|
||||
TerminateProcess(pData->PrevWindowPi.hProcess, 0);
|
||||
CloseHandle(pData->PrevWindowPi.hProcess);
|
||||
CloseHandle(pData->PrevWindowPi.hThread);
|
||||
pData->PrevWindowPi.hThread = pData->PrevWindowPi.hProcess = NULL;
|
||||
}
|
||||
|
||||
if (WaitForSettingsDialog(hwndDlg, pi.hProcess))
|
||||
SetScreenSaverPreviewBox(hwndDlg, pGlobalData);
|
||||
SetScreenSaverPreviewBox(hwndDlg, pData);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static VOID
|
||||
ScreensaverPreview(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
||||
ScreensaverPreview(HWND hwndDlg, PDATA pData)
|
||||
{
|
||||
/*
|
||||
/s Run normal
|
||||
|
@ -239,21 +239,21 @@ ScreensaverPreview(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
STARTUPINFO si;
|
||||
PROCESS_INFORMATION pi;
|
||||
|
||||
if (pGlobalData->Selection < 1)
|
||||
if (pData->Selection < 1)
|
||||
return;
|
||||
|
||||
/* kill off the previous preview process*/
|
||||
if (pGlobalData->PrevWindowPi.hProcess)
|
||||
if (pData->PrevWindowPi.hProcess)
|
||||
{
|
||||
TerminateProcess(pGlobalData->PrevWindowPi.hProcess, 0);
|
||||
CloseHandle(pGlobalData->PrevWindowPi.hProcess);
|
||||
CloseHandle(pGlobalData->PrevWindowPi.hThread);
|
||||
pGlobalData->PrevWindowPi.hThread = pGlobalData->PrevWindowPi.hProcess = NULL;
|
||||
TerminateProcess(pData->PrevWindowPi.hProcess, 0);
|
||||
CloseHandle(pData->PrevWindowPi.hProcess);
|
||||
CloseHandle(pData->PrevWindowPi.hThread);
|
||||
pData->PrevWindowPi.hThread = pData->PrevWindowPi.hProcess = NULL;
|
||||
}
|
||||
|
||||
_stprintf(szCmdline,
|
||||
_T("%s /s"),
|
||||
pGlobalData->ScreenSaverItems[pGlobalData->Selection].szFilename);
|
||||
pData->ScreenSaverItems[pData->Selection].szFilename);
|
||||
|
||||
ZeroMemory(&si, sizeof(si));
|
||||
si.cb = sizeof(si);
|
||||
|
@ -322,7 +322,7 @@ CheckRegScreenSaverIsSecure(HWND hwndDlg)
|
|||
|
||||
|
||||
static VOID
|
||||
AddScreenSavers(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
||||
AddScreenSavers(HWND hwndDlg, PDATA pData)
|
||||
{
|
||||
HWND hwndScreenSavers = GetDlgItem(hwndDlg, IDC_SCREENS_LIST);
|
||||
WIN32_FIND_DATA fd;
|
||||
|
@ -334,7 +334,7 @@ AddScreenSavers(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
HANDLE hModule = NULL;
|
||||
|
||||
/* Add the "None" item */
|
||||
ScreenSaverItem = &pGlobalData->ScreenSaverItems[ScreenSaverCount];
|
||||
ScreenSaverItem = &pData->ScreenSaverItems[ScreenSaverCount];
|
||||
|
||||
ScreenSaverItem->bIsScreenSaver = FALSE;
|
||||
|
||||
|
@ -374,7 +374,7 @@ AddScreenSavers(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
_tcscat(filename, TEXT("\\"));
|
||||
_tcscat(filename, fd.cFileName);
|
||||
|
||||
ScreenSaverItem = &pGlobalData->ScreenSaverItems[ScreenSaverCount];
|
||||
ScreenSaverItem = &pData->ScreenSaverItems[ScreenSaverCount];
|
||||
|
||||
ScreenSaverItem->bIsScreenSaver = TRUE;
|
||||
|
||||
|
@ -416,7 +416,7 @@ AddScreenSavers(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
|
||||
|
||||
static VOID
|
||||
SetScreenSaver(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
||||
SetScreenSaver(HWND hwndDlg, PDATA pData)
|
||||
{
|
||||
HKEY regKey;
|
||||
|
||||
|
@ -432,14 +432,14 @@ SetScreenSaver(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
UINT Ret;
|
||||
|
||||
/* set the screensaver */
|
||||
if (pGlobalData->ScreenSaverItems[pGlobalData->Selection].bIsScreenSaver)
|
||||
if (pData->ScreenSaverItems[pData->Selection].bIsScreenSaver)
|
||||
{
|
||||
RegSetValueEx(regKey,
|
||||
_T("SCRNSAVE.EXE"),
|
||||
0,
|
||||
REG_SZ,
|
||||
(PBYTE)pGlobalData->ScreenSaverItems[pGlobalData->Selection].szFilename,
|
||||
_tcslen(pGlobalData->ScreenSaverItems[pGlobalData->Selection].szFilename) * sizeof(TCHAR));
|
||||
(PBYTE)pData->ScreenSaverItems[pData->Selection].szFilename,
|
||||
_tcslen(pData->ScreenSaverItems[pData->Selection].szFilename) * sizeof(TCHAR));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -485,16 +485,16 @@ SetScreenSaver(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
|
||||
|
||||
static BOOL
|
||||
OnInitDialog(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
||||
OnInitDialog(HWND hwndDlg, PDATA pData)
|
||||
{
|
||||
LPTSTR lpCurSs;
|
||||
HWND hwndSSCombo = GetDlgItem(hwndDlg, IDC_SCREENS_LIST);
|
||||
INT Num;
|
||||
|
||||
pGlobalData = HeapAlloc(GetProcessHeap(),
|
||||
pData = HeapAlloc(GetProcessHeap(),
|
||||
HEAP_ZERO_MEMORY,
|
||||
sizeof(GLOBAL_DATA));
|
||||
if (!pGlobalData)
|
||||
sizeof(DATA));
|
||||
if (!pData)
|
||||
{
|
||||
EndDialog(hwndDlg, -1);
|
||||
return FALSE;
|
||||
|
@ -502,9 +502,9 @@ OnInitDialog(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
|
||||
SetWindowLongPtr(hwndDlg,
|
||||
DWLP_USER,
|
||||
(LONG_PTR)pGlobalData);
|
||||
(LONG_PTR)pData);
|
||||
|
||||
pGlobalData->Selection = -1;
|
||||
pData->Selection = -1;
|
||||
|
||||
SendDlgItemMessage(hwndDlg,
|
||||
IDC_SCREENS_TIME,
|
||||
|
@ -514,7 +514,7 @@ OnInitDialog(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
((short) 240, (short) 1));
|
||||
|
||||
AddScreenSavers(hwndDlg,
|
||||
pGlobalData);
|
||||
pData);
|
||||
|
||||
CheckRegScreenSaverIsSecure(hwndDlg);
|
||||
|
||||
|
@ -527,7 +527,7 @@ OnInitDialog(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
|
||||
for (i = 0; i < MAX_SCREENSAVERS; i++)
|
||||
{
|
||||
if (!_tcscmp(lpCurSs, pGlobalData->ScreenSaverItems[i].szFilename))
|
||||
if (!_tcscmp(lpCurSs, pData->ScreenSaverItems[i].szFilename))
|
||||
{
|
||||
bFound = TRUE;
|
||||
break;
|
||||
|
@ -539,7 +539,7 @@ OnInitDialog(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
Num = SendMessage(hwndSSCombo,
|
||||
CB_FINDSTRINGEXACT,
|
||||
-1,
|
||||
(LPARAM)pGlobalData->ScreenSaverItems[i].szDisplayName);
|
||||
(LPARAM)pData->ScreenSaverItems[i].szDisplayName);
|
||||
if (Num != CB_ERR)
|
||||
SendMessage(hwndSSCombo,
|
||||
CB_SETCURSEL,
|
||||
|
@ -588,7 +588,7 @@ OnInitDialog(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
}
|
||||
|
||||
SelectionChanged(hwndDlg,
|
||||
pGlobalData);
|
||||
pData);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -600,36 +600,36 @@ ScreenSaverPageProc(HWND hwndDlg,
|
|||
WPARAM wParam,
|
||||
LPARAM lParam)
|
||||
{
|
||||
PGLOBAL_DATA pGlobalData;
|
||||
PDATA pData;
|
||||
|
||||
pGlobalData = (PGLOBAL_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
|
||||
pData = (PDATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
|
||||
|
||||
switch (uMsg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
{
|
||||
OnInitDialog(hwndDlg, pGlobalData);
|
||||
OnInitDialog(hwndDlg, pData);
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_DESTROY:
|
||||
{
|
||||
if (pGlobalData->PrevWindowPi.hProcess)
|
||||
if (pData->PrevWindowPi.hProcess)
|
||||
{
|
||||
TerminateProcess(pGlobalData->PrevWindowPi.hProcess, 0);
|
||||
CloseHandle(pGlobalData->PrevWindowPi.hProcess);
|
||||
CloseHandle(pGlobalData->PrevWindowPi.hThread);
|
||||
TerminateProcess(pData->PrevWindowPi.hProcess, 0);
|
||||
CloseHandle(pData->PrevWindowPi.hProcess);
|
||||
CloseHandle(pData->PrevWindowPi.hThread);
|
||||
}
|
||||
HeapFree(GetProcessHeap(),
|
||||
0,
|
||||
pGlobalData);
|
||||
pData);
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_ENDSESSION:
|
||||
{
|
||||
SetScreenSaverPreviewBox(hwndDlg,
|
||||
pGlobalData);
|
||||
pData);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -644,8 +644,8 @@ ScreenSaverPageProc(HWND hwndDlg,
|
|||
{
|
||||
if (HIWORD(wParam) == CBN_SELCHANGE)
|
||||
{
|
||||
SelectionChanged(hwndDlg, pGlobalData);
|
||||
SetScreenSaverPreviewBox(hwndDlg, pGlobalData);
|
||||
SelectionChanged(hwndDlg, pData);
|
||||
SetScreenSaverPreviewBox(hwndDlg, pData);
|
||||
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
|
||||
}
|
||||
break;
|
||||
|
@ -668,8 +668,8 @@ ScreenSaverPageProc(HWND hwndDlg,
|
|||
{
|
||||
if(command == BN_CLICKED)
|
||||
{
|
||||
ScreensaverPreview(hwndDlg, pGlobalData);
|
||||
SetScreenSaverPreviewBox(hwndDlg, pGlobalData);
|
||||
ScreensaverPreview(hwndDlg, pData);
|
||||
SetScreenSaverPreviewBox(hwndDlg, pData);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -677,7 +677,7 @@ ScreenSaverPageProc(HWND hwndDlg,
|
|||
case IDC_SCREENS_SETTINGS: // Screensaver Settings
|
||||
{
|
||||
if (command == BN_CLICKED)
|
||||
ScreensaverConfig(hwndDlg, pGlobalData);
|
||||
ScreensaverConfig(hwndDlg, pData);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -702,7 +702,7 @@ ScreenSaverPageProc(HWND hwndDlg,
|
|||
{
|
||||
case PSN_APPLY:
|
||||
{
|
||||
SetScreenSaver(hwndDlg, pGlobalData);
|
||||
SetScreenSaver(hwndDlg, pData);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -710,7 +710,7 @@ ScreenSaverPageProc(HWND hwndDlg,
|
|||
{
|
||||
/* activate screen saver support */
|
||||
SystemParametersInfoW(SPI_SETSCREENSAVEACTIVE, TRUE, 0, SPIF_SENDCHANGE);
|
||||
SetScreenSaverPreviewBox(hwndDlg, pGlobalData);
|
||||
SetScreenSaverPreviewBox(hwndDlg, pData);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -718,12 +718,12 @@ ScreenSaverPageProc(HWND hwndDlg,
|
|||
{
|
||||
/* Disable screensaver support */
|
||||
SystemParametersInfoW(SPI_SETSCREENSAVEACTIVE, FALSE, 0, SPIF_SENDCHANGE);
|
||||
if (pGlobalData->PrevWindowPi.hProcess)
|
||||
if (pData->PrevWindowPi.hProcess)
|
||||
{
|
||||
TerminateProcess(pGlobalData->PrevWindowPi.hProcess, 0);
|
||||
CloseHandle(pGlobalData->PrevWindowPi.hProcess);
|
||||
CloseHandle(pGlobalData->PrevWindowPi.hThread);
|
||||
pGlobalData->PrevWindowPi.hThread = pGlobalData->PrevWindowPi.hProcess = NULL;
|
||||
TerminateProcess(pData->PrevWindowPi.hProcess, 0);
|
||||
CloseHandle(pData->PrevWindowPi.hProcess);
|
||||
CloseHandle(pData->PrevWindowPi.hThread);
|
||||
pData->PrevWindowPi.hThread = pData->PrevWindowPi.hProcess = NULL;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -11,38 +11,38 @@
|
|||
#include "desk.h"
|
||||
#include "monslctl.h"
|
||||
|
||||
typedef struct _GLOBAL_DATA
|
||||
typedef struct _DATA
|
||||
{
|
||||
PDISPLAY_DEVICE_ENTRY DisplayDeviceList;
|
||||
PDISPLAY_DEVICE_ENTRY CurrentDisplayDevice;
|
||||
HBITMAP hSpectrumBitmaps[NUM_SPECTRUM_BITMAPS];
|
||||
int cxSource[NUM_SPECTRUM_BITMAPS];
|
||||
int cySource[NUM_SPECTRUM_BITMAPS];
|
||||
} GLOBAL_DATA, *PGLOBAL_DATA;
|
||||
} DATA, *PDATA;
|
||||
|
||||
|
||||
static VOID
|
||||
UpdateDisplay(IN HWND hwndDlg, PGLOBAL_DATA pGlobalData, IN BOOL bUpdateThumb)
|
||||
UpdateDisplay(IN HWND hwndDlg, PDATA pData, IN BOOL bUpdateThumb)
|
||||
{
|
||||
TCHAR Buffer[64];
|
||||
TCHAR Pixel[64];
|
||||
DWORD index;
|
||||
|
||||
LoadString(hApplet, IDS_PIXEL, Pixel, sizeof(Pixel) / sizeof(TCHAR));
|
||||
_stprintf(Buffer, Pixel, pGlobalData->CurrentDisplayDevice->CurrentSettings->dmPelsWidth, pGlobalData->CurrentDisplayDevice->CurrentSettings->dmPelsHeight, Pixel);
|
||||
_stprintf(Buffer, Pixel, pData->CurrentDisplayDevice->CurrentSettings->dmPelsWidth, pData->CurrentDisplayDevice->CurrentSettings->dmPelsHeight, Pixel);
|
||||
SendDlgItemMessage(hwndDlg, IDC_SETTINGS_RESOLUTION_TEXT, WM_SETTEXT, 0, (LPARAM)Buffer);
|
||||
|
||||
for (index = 0; index < pGlobalData->CurrentDisplayDevice->ResolutionsCount; index++)
|
||||
for (index = 0; index < pData->CurrentDisplayDevice->ResolutionsCount; index++)
|
||||
{
|
||||
if (pGlobalData->CurrentDisplayDevice->Resolutions[index].dmPelsWidth == pGlobalData->CurrentDisplayDevice->CurrentSettings->dmPelsWidth &&
|
||||
pGlobalData->CurrentDisplayDevice->Resolutions[index].dmPelsHeight == pGlobalData->CurrentDisplayDevice->CurrentSettings->dmPelsHeight)
|
||||
if (pData->CurrentDisplayDevice->Resolutions[index].dmPelsWidth == pData->CurrentDisplayDevice->CurrentSettings->dmPelsWidth &&
|
||||
pData->CurrentDisplayDevice->Resolutions[index].dmPelsHeight == pData->CurrentDisplayDevice->CurrentSettings->dmPelsHeight)
|
||||
{
|
||||
if (bUpdateThumb)
|
||||
SendDlgItemMessage(hwndDlg, IDC_SETTINGS_RESOLUTION, TBM_SETPOS, TRUE, index);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (LoadString(hApplet, (2900 + pGlobalData->CurrentDisplayDevice->CurrentSettings->dmBitsPerPel), Buffer, sizeof(Buffer) / sizeof(TCHAR)))
|
||||
if (LoadString(hApplet, (2900 + pData->CurrentDisplayDevice->CurrentSettings->dmBitsPerPel), Buffer, sizeof(Buffer) / sizeof(TCHAR)))
|
||||
SendDlgItemMessage(hwndDlg, IDC_SETTINGS_BPP, CB_SELECTSTRING, (WPARAM)-1, (LPARAM)Buffer);
|
||||
}
|
||||
|
||||
|
@ -140,7 +140,7 @@ GetPossibleSettings(IN LPCTSTR DeviceName, OUT DWORD* pSettingsCount, OUT PSETTI
|
|||
}
|
||||
|
||||
static BOOL
|
||||
AddDisplayDevice(IN PGLOBAL_DATA pGlobalData, IN const DISPLAY_DEVICE *DisplayDevice)
|
||||
AddDisplayDevice(IN PDATA pData, IN const DISPLAY_DEVICE *DisplayDevice)
|
||||
{
|
||||
PDISPLAY_DEVICE_ENTRY newEntry = NULL;
|
||||
LPTSTR description = NULL;
|
||||
|
@ -216,8 +216,8 @@ AddDisplayDevice(IN PGLOBAL_DATA pGlobalData, IN const DISPLAY_DEVICE *DisplayDe
|
|||
newEntry->DeviceKey = key;
|
||||
newEntry->DeviceID = devid;
|
||||
newEntry->DeviceStateFlags = DisplayDevice->StateFlags;
|
||||
newEntry->Flink = pGlobalData->DisplayDeviceList;
|
||||
pGlobalData->DisplayDeviceList = newEntry;
|
||||
newEntry->Flink = pData->DisplayDeviceList;
|
||||
pData->DisplayDeviceList = newEntry;
|
||||
return TRUE;
|
||||
|
||||
ByeBye:
|
||||
|
@ -247,12 +247,12 @@ ByeBye:
|
|||
}
|
||||
|
||||
static VOID
|
||||
OnDisplayDeviceChanged(IN HWND hwndDlg, IN PGLOBAL_DATA pGlobalData, IN PDISPLAY_DEVICE_ENTRY pDeviceEntry)
|
||||
OnDisplayDeviceChanged(IN HWND hwndDlg, IN PDATA pData, IN PDISPLAY_DEVICE_ENTRY pDeviceEntry)
|
||||
{
|
||||
PSETTINGS_ENTRY Current;
|
||||
DWORD index;
|
||||
|
||||
pGlobalData->CurrentDisplayDevice = pDeviceEntry; /* Update global variable */
|
||||
pData->CurrentDisplayDevice = pDeviceEntry; /* Update variable */
|
||||
|
||||
/* Fill color depths combo box */
|
||||
SendDlgItemMessage(hwndDlg, IDC_SETTINGS_BPP, CB_RESETCONTENT, 0, 0);
|
||||
|
@ -274,7 +274,7 @@ OnDisplayDeviceChanged(IN HWND hwndDlg, IN PGLOBAL_DATA pGlobalData, IN PDISPLAY
|
|||
SendDlgItemMessage(hwndDlg, IDC_SETTINGS_RESOLUTION, TBM_CLEARTICS, TRUE, 0);
|
||||
SendDlgItemMessage(hwndDlg, IDC_SETTINGS_RESOLUTION, TBM_SETRANGE, TRUE, MAKELONG(0, pDeviceEntry->ResolutionsCount - 1));
|
||||
|
||||
UpdateDisplay(hwndDlg, pGlobalData, TRUE);
|
||||
UpdateDisplay(hwndDlg, pData, TRUE);
|
||||
}
|
||||
|
||||
static VOID
|
||||
|
@ -285,22 +285,22 @@ OnInitDialog(IN HWND hwndDlg)
|
|||
DWORD iDevNum = 0;
|
||||
DWORD i;
|
||||
DISPLAY_DEVICE displayDevice;
|
||||
PGLOBAL_DATA pGlobalData;
|
||||
PDATA pData;
|
||||
|
||||
pGlobalData = HeapAlloc(GetProcessHeap(), 0, sizeof(GLOBAL_DATA));
|
||||
if (pGlobalData == NULL)
|
||||
pData = HeapAlloc(GetProcessHeap(), 0, sizeof(DATA));
|
||||
if (pData == NULL)
|
||||
return;
|
||||
|
||||
SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData);
|
||||
SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pData);
|
||||
|
||||
/* Get video cards list */
|
||||
pGlobalData->DisplayDeviceList = NULL;
|
||||
pData->DisplayDeviceList = NULL;
|
||||
displayDevice.cb = (DWORD)sizeof(DISPLAY_DEVICE);
|
||||
while (EnumDisplayDevices(NULL, iDevNum, &displayDevice, 0x1))
|
||||
{
|
||||
if ((displayDevice.StateFlags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP) != 0)
|
||||
{
|
||||
if (AddDisplayDevice(pGlobalData, &displayDevice))
|
||||
if (AddDisplayDevice(pData, &displayDevice))
|
||||
Result++;
|
||||
}
|
||||
iDevNum++;
|
||||
|
@ -316,7 +316,7 @@ OnInitDialog(IN HWND hwndDlg)
|
|||
ShowWindow(GetDlgItem(hwndDlg, IDC_SETTINGS_SPECTRUM), SW_HIDE);
|
||||
|
||||
/* Do not initialize the color spectrum bitmaps */
|
||||
memset(pGlobalData->hSpectrumBitmaps, 0, sizeof(pGlobalData->hSpectrumBitmaps));
|
||||
memset(pData->hSpectrumBitmaps, 0, sizeof(pData->hSpectrumBitmaps));
|
||||
return;
|
||||
}
|
||||
else if (Result == 1)
|
||||
|
@ -324,12 +324,12 @@ OnInitDialog(IN HWND hwndDlg)
|
|||
MONSL_MONINFO monitors;
|
||||
|
||||
/* Single video adapter */
|
||||
SendDlgItemMessage(hwndDlg, IDC_SETTINGS_DEVICE, WM_SETTEXT, 0, (LPARAM)pGlobalData->DisplayDeviceList->DeviceDescription);
|
||||
OnDisplayDeviceChanged(hwndDlg, pGlobalData, pGlobalData->DisplayDeviceList);
|
||||
SendDlgItemMessage(hwndDlg, IDC_SETTINGS_DEVICE, WM_SETTEXT, 0, (LPARAM)pData->DisplayDeviceList->DeviceDescription);
|
||||
OnDisplayDeviceChanged(hwndDlg, pData, pData->DisplayDeviceList);
|
||||
|
||||
monitors.Position.x = monitors.Position.y = 0;
|
||||
monitors.Size.cx = pGlobalData->CurrentDisplayDevice->CurrentSettings->dmPelsWidth;
|
||||
monitors.Size.cy = pGlobalData->CurrentDisplayDevice->CurrentSettings->dmPelsHeight;
|
||||
monitors.Size.cx = pData->CurrentDisplayDevice->CurrentSettings->dmPelsWidth;
|
||||
monitors.Size.cy = pData->CurrentDisplayDevice->CurrentSettings->dmPelsHeight;
|
||||
monitors.Flags = 0;
|
||||
SendDlgItemMessage(hwndDlg,
|
||||
IDC_SETTINGS_MONSEL,
|
||||
|
@ -342,8 +342,8 @@ OnInitDialog(IN HWND hwndDlg)
|
|||
PMONSL_MONINFO pMonitors;
|
||||
DWORD i;
|
||||
|
||||
SendDlgItemMessage(hwndDlg, IDC_SETTINGS_DEVICE, WM_SETTEXT, 0, (LPARAM)pGlobalData->DisplayDeviceList->DeviceDescription);
|
||||
OnDisplayDeviceChanged(hwndDlg, pGlobalData, pGlobalData->DisplayDeviceList);
|
||||
SendDlgItemMessage(hwndDlg, IDC_SETTINGS_DEVICE, WM_SETTEXT, 0, (LPARAM)pData->DisplayDeviceList->DeviceDescription);
|
||||
OnDisplayDeviceChanged(hwndDlg, pData, pData->DisplayDeviceList);
|
||||
|
||||
pMonitors = (PMONSL_MONINFO)HeapAlloc(GetProcessHeap(), 0, sizeof(MONSL_MONINFO) * Result);
|
||||
if (pMonitors)
|
||||
|
@ -353,8 +353,8 @@ OnInitDialog(IN HWND hwndDlg)
|
|||
{
|
||||
pMonitors[i].Position.x = hack * i;
|
||||
pMonitors[i].Position.y = 0;
|
||||
pMonitors[i].Size.cx = pGlobalData->DisplayDeviceList->CurrentSettings->dmPelsWidth;
|
||||
pMonitors[i].Size.cy = pGlobalData->DisplayDeviceList->CurrentSettings->dmPelsHeight;
|
||||
pMonitors[i].Size.cx = pData->DisplayDeviceList->CurrentSettings->dmPelsWidth;
|
||||
pMonitors[i].Size.cy = pData->DisplayDeviceList->CurrentSettings->dmPelsHeight;
|
||||
pMonitors[i].Flags = 0;
|
||||
}
|
||||
|
||||
|
@ -371,27 +371,27 @@ OnInitDialog(IN HWND hwndDlg)
|
|||
/* Initialize the color spectrum bitmaps */
|
||||
for(i = 0; i < NUM_SPECTRUM_BITMAPS; i++)
|
||||
{
|
||||
pGlobalData->hSpectrumBitmaps[i] = LoadImageW(hApplet, MAKEINTRESOURCEW(IDB_SPECTRUM_4 + i), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR);
|
||||
pData->hSpectrumBitmaps[i] = LoadImageW(hApplet, MAKEINTRESOURCEW(IDB_SPECTRUM_4 + i), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR);
|
||||
|
||||
if (pGlobalData->hSpectrumBitmaps[i] != NULL)
|
||||
if (pData->hSpectrumBitmaps[i] != NULL)
|
||||
{
|
||||
if (GetObjectW(pGlobalData->hSpectrumBitmaps[i], sizeof(BITMAP), &bitmap) != 0)
|
||||
if (GetObjectW(pData->hSpectrumBitmaps[i], sizeof(BITMAP), &bitmap) != 0)
|
||||
{
|
||||
pGlobalData->cxSource[i] = bitmap.bmWidth;
|
||||
pGlobalData->cySource[i] = bitmap.bmHeight;
|
||||
pData->cxSource[i] = bitmap.bmWidth;
|
||||
pData->cySource[i] = bitmap.bmHeight;
|
||||
}
|
||||
else
|
||||
{
|
||||
pGlobalData->cxSource[i] = 0;
|
||||
pGlobalData->cySource[i] = 0;
|
||||
pData->cxSource[i] = 0;
|
||||
pData->cySource[i] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Get the ID for GLOBAL_DATA::hSpectrumBitmaps */
|
||||
/* Get the ID for DATA::hSpectrumBitmaps */
|
||||
static VOID
|
||||
ShowColorSpectrum(IN HDC hDC, IN LPRECT client, IN DWORD BitsPerPel, IN PGLOBAL_DATA pGlobalData)
|
||||
ShowColorSpectrum(IN HDC hDC, IN LPRECT client, IN DWORD BitsPerPel, IN PDATA pData)
|
||||
{
|
||||
HDC hdcMem;
|
||||
INT iBitmap;
|
||||
|
@ -408,22 +408,22 @@ ShowColorSpectrum(IN HDC hDC, IN LPRECT client, IN DWORD BitsPerPel, IN PGLOBAL_
|
|||
default: iBitmap = 2;
|
||||
}
|
||||
|
||||
if (SelectObject(hdcMem, pGlobalData->hSpectrumBitmaps[iBitmap]))
|
||||
if (SelectObject(hdcMem, pData->hSpectrumBitmaps[iBitmap]))
|
||||
{
|
||||
StretchBlt(hDC,
|
||||
client->left, client->top,
|
||||
client->right - client->left,
|
||||
client->bottom - client->top,
|
||||
hdcMem, 0, 0,
|
||||
pGlobalData->cxSource[iBitmap],
|
||||
pGlobalData->cySource[iBitmap], SRCCOPY);
|
||||
pData->cxSource[iBitmap],
|
||||
pData->cySource[iBitmap], SRCCOPY);
|
||||
}
|
||||
|
||||
DeleteDC(hdcMem);
|
||||
}
|
||||
|
||||
static VOID
|
||||
OnBPPChanged(IN HWND hwndDlg, IN PGLOBAL_DATA pGlobalData)
|
||||
OnBPPChanged(IN HWND hwndDlg, IN PDATA pData)
|
||||
{
|
||||
/* if new BPP is not compatible with resolution:
|
||||
* 1) try to find the nearest smaller matching resolution
|
||||
|
@ -443,10 +443,10 @@ OnBPPChanged(IN HWND hwndDlg, IN PGLOBAL_DATA pGlobalData)
|
|||
hSpectrumControl = GetDlgItem(hwndDlg, IDC_SETTINGS_SPECTRUM);
|
||||
hSpectrumDC = GetDC(hSpectrumControl);
|
||||
GetClientRect(hSpectrumControl, &client);
|
||||
ShowColorSpectrum(hSpectrumDC, &client, dmNewBitsPerPel, pGlobalData);
|
||||
ShowColorSpectrum(hSpectrumDC, &client, dmNewBitsPerPel, pData);
|
||||
|
||||
/* find if new parameters are valid */
|
||||
Current = pGlobalData->CurrentDisplayDevice->CurrentSettings;
|
||||
Current = pData->CurrentDisplayDevice->CurrentSettings;
|
||||
if (dmNewBitsPerPel == Current->dmBitsPerPel)
|
||||
{
|
||||
/* no change */
|
||||
|
@ -461,11 +461,11 @@ OnBPPChanged(IN HWND hwndDlg, IN PGLOBAL_DATA pGlobalData)
|
|||
while (Current != NULL)
|
||||
{
|
||||
if (Current->dmBitsPerPel == dmNewBitsPerPel
|
||||
&& Current->dmPelsHeight == pGlobalData->CurrentDisplayDevice->CurrentSettings->dmPelsHeight
|
||||
&& Current->dmPelsWidth == pGlobalData->CurrentDisplayDevice->CurrentSettings->dmPelsWidth)
|
||||
&& Current->dmPelsHeight == pData->CurrentDisplayDevice->CurrentSettings->dmPelsHeight
|
||||
&& Current->dmPelsWidth == pData->CurrentDisplayDevice->CurrentSettings->dmPelsWidth)
|
||||
{
|
||||
pGlobalData->CurrentDisplayDevice->CurrentSettings = Current;
|
||||
UpdateDisplay(hwndDlg, pGlobalData, TRUE);
|
||||
pData->CurrentDisplayDevice->CurrentSettings = Current;
|
||||
UpdateDisplay(hwndDlg, pData, TRUE);
|
||||
return;
|
||||
}
|
||||
Current = Current->Blink;
|
||||
|
@ -477,11 +477,11 @@ OnBPPChanged(IN HWND hwndDlg, IN PGLOBAL_DATA pGlobalData)
|
|||
while (Current != NULL)
|
||||
{
|
||||
if (Current->dmBitsPerPel == dmNewBitsPerPel
|
||||
&& Current->dmPelsHeight == pGlobalData->CurrentDisplayDevice->CurrentSettings->dmPelsHeight
|
||||
&& Current->dmPelsWidth == pGlobalData->CurrentDisplayDevice->CurrentSettings->dmPelsWidth)
|
||||
&& Current->dmPelsHeight == pData->CurrentDisplayDevice->CurrentSettings->dmPelsHeight
|
||||
&& Current->dmPelsWidth == pData->CurrentDisplayDevice->CurrentSettings->dmPelsWidth)
|
||||
{
|
||||
pGlobalData->CurrentDisplayDevice->CurrentSettings = Current;
|
||||
UpdateDisplay(hwndDlg, pGlobalData, TRUE);
|
||||
pData->CurrentDisplayDevice->CurrentSettings = Current;
|
||||
UpdateDisplay(hwndDlg, pData, TRUE);
|
||||
return;
|
||||
}
|
||||
Current = Current->Flink;
|
||||
|
@ -489,26 +489,26 @@ OnBPPChanged(IN HWND hwndDlg, IN PGLOBAL_DATA pGlobalData)
|
|||
}
|
||||
|
||||
/* search smaller resolution compatible with current color depth */
|
||||
Current = pGlobalData->CurrentDisplayDevice->CurrentSettings->Blink;
|
||||
Current = pData->CurrentDisplayDevice->CurrentSettings->Blink;
|
||||
while (Current != NULL)
|
||||
{
|
||||
if (Current->dmBitsPerPel == dmNewBitsPerPel)
|
||||
{
|
||||
pGlobalData->CurrentDisplayDevice->CurrentSettings = Current;
|
||||
UpdateDisplay(hwndDlg, pGlobalData, TRUE);
|
||||
pData->CurrentDisplayDevice->CurrentSettings = Current;
|
||||
UpdateDisplay(hwndDlg, pData, TRUE);
|
||||
return;
|
||||
}
|
||||
Current = Current->Blink;
|
||||
}
|
||||
|
||||
/* search bigger resolution compatible with current color depth */
|
||||
Current = pGlobalData->CurrentDisplayDevice->CurrentSettings->Flink;
|
||||
Current = pData->CurrentDisplayDevice->CurrentSettings->Flink;
|
||||
while (Current != NULL)
|
||||
{
|
||||
if (Current->dmBitsPerPel == dmNewBitsPerPel)
|
||||
{
|
||||
pGlobalData->CurrentDisplayDevice->CurrentSettings = Current;
|
||||
UpdateDisplay(hwndDlg, pGlobalData, TRUE);
|
||||
pData->CurrentDisplayDevice->CurrentSettings = Current;
|
||||
UpdateDisplay(hwndDlg, pData, TRUE);
|
||||
return;
|
||||
}
|
||||
Current = Current->Flink;
|
||||
|
@ -518,7 +518,7 @@ OnBPPChanged(IN HWND hwndDlg, IN PGLOBAL_DATA pGlobalData)
|
|||
}
|
||||
|
||||
static VOID
|
||||
OnResolutionChanged(IN HWND hwndDlg, IN PGLOBAL_DATA pGlobalData, IN DWORD NewPosition,
|
||||
OnResolutionChanged(IN HWND hwndDlg, IN PDATA pData, IN DWORD NewPosition,
|
||||
IN BOOL bUpdateThumb)
|
||||
{
|
||||
/* if new resolution is not compatible with color depth:
|
||||
|
@ -526,11 +526,11 @@ OnResolutionChanged(IN HWND hwndDlg, IN PGLOBAL_DATA pGlobalData, IN DWORD NewPo
|
|||
* 2) otherwise, get the nearest smaller color depth
|
||||
*/
|
||||
PSETTINGS_ENTRY Current;
|
||||
DWORD dmNewPelsHeight = pGlobalData->CurrentDisplayDevice->Resolutions[NewPosition].dmPelsHeight;
|
||||
DWORD dmNewPelsWidth = pGlobalData->CurrentDisplayDevice->Resolutions[NewPosition].dmPelsWidth;
|
||||
DWORD dmNewPelsHeight = pData->CurrentDisplayDevice->Resolutions[NewPosition].dmPelsHeight;
|
||||
DWORD dmNewPelsWidth = pData->CurrentDisplayDevice->Resolutions[NewPosition].dmPelsWidth;
|
||||
|
||||
/* find if new parameters are valid */
|
||||
Current = pGlobalData->CurrentDisplayDevice->CurrentSettings;
|
||||
Current = pData->CurrentDisplayDevice->CurrentSettings;
|
||||
if (dmNewPelsHeight == Current->dmPelsHeight && dmNewPelsWidth == Current->dmPelsWidth)
|
||||
{
|
||||
/* no change */
|
||||
|
@ -546,10 +546,10 @@ OnResolutionChanged(IN HWND hwndDlg, IN PGLOBAL_DATA pGlobalData, IN DWORD NewPo
|
|||
{
|
||||
if (Current->dmPelsHeight == dmNewPelsHeight
|
||||
&& Current->dmPelsWidth == dmNewPelsWidth
|
||||
&& Current->dmBitsPerPel == pGlobalData->CurrentDisplayDevice->CurrentSettings->dmBitsPerPel)
|
||||
&& Current->dmBitsPerPel == pData->CurrentDisplayDevice->CurrentSettings->dmBitsPerPel)
|
||||
{
|
||||
pGlobalData->CurrentDisplayDevice->CurrentSettings = Current;
|
||||
UpdateDisplay(hwndDlg, pGlobalData, bUpdateThumb);
|
||||
pData->CurrentDisplayDevice->CurrentSettings = Current;
|
||||
UpdateDisplay(hwndDlg, pData, bUpdateThumb);
|
||||
return;
|
||||
}
|
||||
Current = Current->Blink;
|
||||
|
@ -562,10 +562,10 @@ OnResolutionChanged(IN HWND hwndDlg, IN PGLOBAL_DATA pGlobalData, IN DWORD NewPo
|
|||
{
|
||||
if (Current->dmPelsHeight == dmNewPelsHeight
|
||||
&& Current->dmPelsWidth == dmNewPelsWidth
|
||||
&& Current->dmBitsPerPel == pGlobalData->CurrentDisplayDevice->CurrentSettings->dmBitsPerPel)
|
||||
&& Current->dmBitsPerPel == pData->CurrentDisplayDevice->CurrentSettings->dmBitsPerPel)
|
||||
{
|
||||
pGlobalData->CurrentDisplayDevice->CurrentSettings = Current;
|
||||
UpdateDisplay(hwndDlg, pGlobalData, bUpdateThumb);
|
||||
pData->CurrentDisplayDevice->CurrentSettings = Current;
|
||||
UpdateDisplay(hwndDlg, pData, bUpdateThumb);
|
||||
return;
|
||||
}
|
||||
Current = Current->Flink;
|
||||
|
@ -573,26 +573,26 @@ OnResolutionChanged(IN HWND hwndDlg, IN PGLOBAL_DATA pGlobalData, IN DWORD NewPo
|
|||
}
|
||||
|
||||
/* search bigger color depth compatible with current resolution */
|
||||
Current = pGlobalData->CurrentDisplayDevice->CurrentSettings->Flink;
|
||||
Current = pData->CurrentDisplayDevice->CurrentSettings->Flink;
|
||||
while (Current != NULL)
|
||||
{
|
||||
if (dmNewPelsHeight == Current->dmPelsHeight && dmNewPelsWidth == Current->dmPelsWidth)
|
||||
{
|
||||
pGlobalData->CurrentDisplayDevice->CurrentSettings = Current;
|
||||
UpdateDisplay(hwndDlg, pGlobalData, bUpdateThumb);
|
||||
pData->CurrentDisplayDevice->CurrentSettings = Current;
|
||||
UpdateDisplay(hwndDlg, pData, bUpdateThumb);
|
||||
return;
|
||||
}
|
||||
Current = Current->Flink;
|
||||
}
|
||||
|
||||
/* search smaller color depth compatible with current resolution */
|
||||
Current = pGlobalData->CurrentDisplayDevice->CurrentSettings->Blink;
|
||||
Current = pData->CurrentDisplayDevice->CurrentSettings->Blink;
|
||||
while (Current != NULL)
|
||||
{
|
||||
if (dmNewPelsHeight == Current->dmPelsHeight && dmNewPelsWidth == Current->dmPelsWidth)
|
||||
{
|
||||
pGlobalData->CurrentDisplayDevice->CurrentSettings = Current;
|
||||
UpdateDisplay(hwndDlg, pGlobalData, bUpdateThumb);
|
||||
pData->CurrentDisplayDevice->CurrentSettings = Current;
|
||||
UpdateDisplay(hwndDlg, pData, bUpdateThumb);
|
||||
return;
|
||||
}
|
||||
Current = Current->Blink;
|
||||
|
@ -625,10 +625,10 @@ SettingsPageCallbackProc(HWND hwnd, UINT uMsg, LPPROPSHEETPAGE ppsp)
|
|||
INT_PTR CALLBACK
|
||||
SettingsPageProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam)
|
||||
{
|
||||
PGLOBAL_DATA pGlobalData;
|
||||
PDATA pData;
|
||||
TCHAR Message[1024], Title[256];
|
||||
|
||||
pGlobalData = (PGLOBAL_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
|
||||
pData = (PDATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
|
||||
|
||||
switch(uMsg)
|
||||
{
|
||||
|
@ -643,7 +643,7 @@ SettingsPageProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lPar
|
|||
lpDrawItem = (LPDRAWITEMSTRUCT) lParam;
|
||||
|
||||
if (lpDrawItem->CtlID == IDC_SETTINGS_SPECTRUM)
|
||||
ShowColorSpectrum(lpDrawItem->hDC, &lpDrawItem->rcItem, pGlobalData->CurrentDisplayDevice->CurrentSettings->dmBitsPerPel, pGlobalData);
|
||||
ShowColorSpectrum(lpDrawItem->hDC, &lpDrawItem->rcItem, pData->CurrentDisplayDevice->CurrentSettings->dmBitsPerPel, pData);
|
||||
break;
|
||||
}
|
||||
case WM_COMMAND:
|
||||
|
@ -652,9 +652,9 @@ SettingsPageProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lPar
|
|||
DWORD command = HIWORD(wParam);
|
||||
|
||||
if (controlId == IDC_SETTINGS_ADVANCED && command == BN_CLICKED)
|
||||
DisplayAdvancedSettings(hwndDlg, pGlobalData->CurrentDisplayDevice);
|
||||
DisplayAdvancedSettings(hwndDlg, pData->CurrentDisplayDevice);
|
||||
else if (controlId == IDC_SETTINGS_BPP && command == CBN_SELCHANGE)
|
||||
OnBPPChanged(hwndDlg, pGlobalData);
|
||||
OnBPPChanged(hwndDlg, pData);
|
||||
break;
|
||||
}
|
||||
case WM_HSCROLL:
|
||||
|
@ -670,12 +670,12 @@ SettingsPageProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lPar
|
|||
case TB_ENDTRACK:
|
||||
{
|
||||
DWORD newPosition = (DWORD) SendDlgItemMessage(hwndDlg, IDC_SETTINGS_RESOLUTION, TBM_GETPOS, 0, 0);
|
||||
OnResolutionChanged(hwndDlg, pGlobalData, newPosition, TRUE);
|
||||
OnResolutionChanged(hwndDlg, pData, newPosition, TRUE);
|
||||
break;
|
||||
}
|
||||
|
||||
case TB_THUMBTRACK:
|
||||
OnResolutionChanged(hwndDlg, pGlobalData, HIWORD(wParam), FALSE);
|
||||
OnResolutionChanged(hwndDlg, pData, HIWORD(wParam), FALSE);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
@ -685,9 +685,9 @@ SettingsPageProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lPar
|
|||
LPNMHDR lpnm = (LPNMHDR)lParam;
|
||||
if (lpnm->code == (UINT)PSN_APPLY)
|
||||
{
|
||||
if (pGlobalData->CurrentDisplayDevice->CurrentSettings->dmPelsWidth != pGlobalData->CurrentDisplayDevice->InitialSettings.dmPelsWidth
|
||||
|| pGlobalData->CurrentDisplayDevice->CurrentSettings->dmPelsHeight != pGlobalData->CurrentDisplayDevice->InitialSettings.dmPelsHeight
|
||||
|| pGlobalData->CurrentDisplayDevice->CurrentSettings->dmBitsPerPel != pGlobalData->CurrentDisplayDevice->InitialSettings.dmBitsPerPel)
|
||||
if (pData->CurrentDisplayDevice->CurrentSettings->dmPelsWidth != pData->CurrentDisplayDevice->InitialSettings.dmPelsWidth
|
||||
|| pData->CurrentDisplayDevice->CurrentSettings->dmPelsHeight != pData->CurrentDisplayDevice->InitialSettings.dmPelsHeight
|
||||
|| pData->CurrentDisplayDevice->CurrentSettings->dmBitsPerPel != pData->CurrentDisplayDevice->InitialSettings.dmBitsPerPel)
|
||||
{
|
||||
/* FIXME: Need to test changes */
|
||||
/* Apply new settings */
|
||||
|
@ -695,13 +695,13 @@ SettingsPageProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lPar
|
|||
DEVMODE devmode;
|
||||
RtlZeroMemory(&devmode, sizeof(DEVMODE));
|
||||
devmode.dmSize = (WORD)sizeof(DEVMODE);
|
||||
devmode.dmPelsWidth = pGlobalData->CurrentDisplayDevice->CurrentSettings->dmPelsWidth;
|
||||
devmode.dmPelsHeight = pGlobalData->CurrentDisplayDevice->CurrentSettings->dmPelsHeight;
|
||||
devmode.dmBitsPerPel = pGlobalData->CurrentDisplayDevice->CurrentSettings->dmBitsPerPel;
|
||||
devmode.dmDisplayFrequency = pGlobalData->CurrentDisplayDevice->CurrentSettings->dmDisplayFrequency;
|
||||
devmode.dmPelsWidth = pData->CurrentDisplayDevice->CurrentSettings->dmPelsWidth;
|
||||
devmode.dmPelsHeight = pData->CurrentDisplayDevice->CurrentSettings->dmPelsHeight;
|
||||
devmode.dmBitsPerPel = pData->CurrentDisplayDevice->CurrentSettings->dmBitsPerPel;
|
||||
devmode.dmDisplayFrequency = pData->CurrentDisplayDevice->CurrentSettings->dmDisplayFrequency;
|
||||
devmode.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL | DM_DISPLAYFREQUENCY;
|
||||
rc = ChangeDisplaySettingsEx(
|
||||
pGlobalData->CurrentDisplayDevice->DeviceName,
|
||||
pData->CurrentDisplayDevice->DeviceName,
|
||||
&devmode,
|
||||
NULL,
|
||||
CDS_UPDATEREGISTRY,
|
||||
|
@ -709,9 +709,9 @@ SettingsPageProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lPar
|
|||
switch (rc)
|
||||
{
|
||||
case DISP_CHANGE_SUCCESSFUL:
|
||||
pGlobalData->CurrentDisplayDevice->InitialSettings.dmPelsWidth = pGlobalData->CurrentDisplayDevice->CurrentSettings->dmPelsWidth;
|
||||
pGlobalData->CurrentDisplayDevice->InitialSettings.dmPelsHeight = pGlobalData->CurrentDisplayDevice->CurrentSettings->dmPelsHeight;
|
||||
pGlobalData->CurrentDisplayDevice->InitialSettings.dmBitsPerPel = pGlobalData->CurrentDisplayDevice->CurrentSettings->dmBitsPerPel;
|
||||
pData->CurrentDisplayDevice->InitialSettings.dmPelsWidth = pData->CurrentDisplayDevice->CurrentSettings->dmPelsWidth;
|
||||
pData->CurrentDisplayDevice->InitialSettings.dmPelsHeight = pData->CurrentDisplayDevice->CurrentSettings->dmPelsHeight;
|
||||
pData->CurrentDisplayDevice->InitialSettings.dmBitsPerPel = pData->CurrentDisplayDevice->CurrentSettings->dmBitsPerPel;
|
||||
break;
|
||||
case DISP_CHANGE_RESTART:
|
||||
LoadString(hApplet, IDS_DISPLAY_SETTINGS, Title, sizeof(Title) / sizeof(TCHAR));
|
||||
|
@ -833,7 +833,7 @@ SettingsPageProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lPar
|
|||
case WM_DESTROY:
|
||||
{
|
||||
DWORD i;
|
||||
PDISPLAY_DEVICE_ENTRY Current = pGlobalData->DisplayDeviceList;
|
||||
PDISPLAY_DEVICE_ENTRY Current = pData->DisplayDeviceList;
|
||||
|
||||
while (Current != NULL)
|
||||
{
|
||||
|
@ -851,11 +851,11 @@ SettingsPageProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lPar
|
|||
|
||||
for (i = 0; i < NUM_SPECTRUM_BITMAPS; i++)
|
||||
{
|
||||
if (pGlobalData->hSpectrumBitmaps[i])
|
||||
DeleteObject(pGlobalData->hSpectrumBitmaps[i]);
|
||||
if (pData->hSpectrumBitmaps[i])
|
||||
DeleteObject(pData->hSpectrumBitmaps[i]);
|
||||
}
|
||||
|
||||
HeapFree(GetProcessHeap(), 0, pGlobalData);
|
||||
HeapFree(GetProcessHeap(), 0, pData);
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
|
|
Loading…
Reference in a new issue