Index: background.c =================================================================== --- background.c (revision 65400) +++ background.c (working copy) @@ -62,7 +62,110 @@ GLOBAL_DATA g_GlobalData; +struct GdiplusStartupInput gdipStartup; +ULONG_PTR gdipToken; + +HRESULT GdipGetEncoderClsid(WCHAR* MimeType, CLSID* pClsid) +{ + UINT num; + UINT size; + UINT i; + ImageCodecInfo* CodecInfo; + + + GdipGetImageEncodersSize(&num, &size); + if(!size) + { + return E_FAIL; + } + + CodecInfo = HeapAlloc(GetProcessHeap(), 0, size); + if(!CodecInfo) + { + return E_FAIL; + } + + if (GdipGetImageEncoders(num, size, CodecInfo) != Ok) + { + HeapFree(GetProcessHeap(), 0, CodecInfo); + return E_FAIL; + } + + for(i = 0; i < num; i++) + { + if(_wcsicmp(CodecInfo[i].MimeType, MimeType) == 0 ) + { + *pClsid = CodecInfo[i].Clsid; + HeapFree(GetProcessHeap(), 0, CodecInfo); + return S_OK; + } + } + + HeapFree(GetProcessHeap(), 0, CodecInfo); + + return E_FAIL; +} + + +LPWSTR +GdipGetSupportedFileExtensions(VOID) +{ + ImageCodecInfo *codecInfo; + UINT num; + UINT size; + UINT j; + LPWSTR lpBuffer = NULL; + + + GdipGetImageDecodersSize(&num, &size); + if (!size) + { + return NULL; + } + + codecInfo = HeapAlloc(GetProcessHeap(), 0, size); + if (!codecInfo) + { + return NULL; + } + + if (GdipGetImageDecoders(num, size, codecInfo) != Ok) + { + HeapFree(GetProcessHeap(), 0, codecInfo); + return NULL; + } + + size = 0; + for (j = 0; j < num; ++j) + { + size = size + wcslen(codecInfo[j].FilenameExtension) + 1; + } + + size = (size + 1) * sizeof(WCHAR); + + lpBuffer = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size); + if (!lpBuffer) + { + HeapFree(GetProcessHeap(), 0, codecInfo); + return NULL; + } + + for (j = 0; j < num; ++j) + { + StringCbCatW(lpBuffer, size, codecInfo[j].FilenameExtension); + if (j < (num - 1)) + { + StringCbCatW(lpBuffer, size, L";"); + } + } + + HeapFree(GetProcessHeap(), 0, codecInfo); + + return lpBuffer; +} + + /* Add the images in the C:\ReactOS directory and the current wallpaper if any */ static VOID AddListViewItems(HWND hwndDlg, PDATA pData) @@ -70,7 +173,8 @@ WIN32_FIND_DATA fd; HANDLE hFind; TCHAR szSearchPath[MAX_PATH]; - TCHAR szFileTypes[MAX_PATH]; + LPTSTR szFileTypes = NULL; + LPWSTR lpBuffer = NULL; LV_ITEM listItem; LV_COLUMN dummy; RECT clientRect; @@ -202,8 +306,46 @@ /* Add all the images in the C:\ReactOS directory. */ - LoadString(hApplet, IDS_SUPPORTED_EXT, szFileTypes, sizeof(szFileTypes) / sizeof(TCHAR)); + lpBuffer = GdipGetSupportedFileExtensions(); + if (!lpBuffer) + { + return; + } +#ifdef UNICODE + bufferSize = (wcslen(lpBuffer) + 1) * sizeof(TCHAR); + + szFileTypes = HeapAlloc(GetProcessHeap(), 0, bufferSize); + if (!szFileTypes) + { + HeapFree(GetProcessHeap(), 0, lpBuffer); + return; + } + + if (FAILED(StringCbCopy(szFileTypes, bufferSize, lpBuffer))) + { + HeapFree(GetProcessHeap(), 0, szFileTypes); + HeapFree(GetProcessHeap(), 0, lpBuffer); + return; + } +#else + bufferSize = WideCharToMultiByte(CP_ACP, WC_COMPOSITECHECK, lpBuffer, -1, szFileTypes, 0, "_", NULL); + + szFileTypes = HeapAlloc(GetProcessHeap(), 0, bufferSize); + if (!szFileTypes) + { + HeapFree(GetProcessHeap(), 0, lpBuffer); + return; + } + + if (!WideCharToMultiByte(CP_ACP, WC_COMPOSITECHECK, lpBuffer, -1, szFileTypes, bufferSize, "_", NULL)) + { + HeapFree(GetProcessHeap(), 0, szFileTypes); + HeapFree(GetProcessHeap(), 0, lpBuffer); + return; + } +#endif + token = _tcstok(szFileTypes, separators); while (token != NULL) { @@ -211,10 +353,17 @@ hr = StringCbCat(szSearchPath, sizeof(szSearchPath), TEXT("\\")); if (FAILED(hr)) - return; + { + HeapFree(GetProcessHeap(), 0, szFileTypes); + HeapFree(GetProcessHeap(), 0, lpBuffer); + } + hr = StringCbCat(szSearchPath, sizeof(szSearchPath), token); if (FAILED(hr)) - return; + { + HeapFree(GetProcessHeap(), 0, szFileTypes); + HeapFree(GetProcessHeap(), 0, lpBuffer); + } hFind = FindFirstFile(szSearchPath, &fd); while (hFind != INVALID_HANDLE_VALUE) @@ -227,6 +376,8 @@ if (FAILED(hr)) { FindClose(hFind); + HeapFree(GetProcessHeap(), 0, szFileTypes); + HeapFree(GetProcessHeap(), 0, lpBuffer); return; } hr = StringCbCat(filename, sizeof(filename), fd.cFileName); @@ -233,6 +384,8 @@ if (FAILED(hr)) { FindClose(hFind); + HeapFree(GetProcessHeap(), 0, szFileTypes); + HeapFree(GetProcessHeap(), 0, lpBuffer); return; } @@ -262,6 +415,8 @@ if (FAILED(hr)) { FindClose(hFind); + HeapFree(GetProcessHeap(), 0, szFileTypes); + HeapFree(GetProcessHeap(), 0, lpBuffer); return; } p = _tcsrchr(backgroundItem->szDisplayName, _T('.')); @@ -271,6 +426,8 @@ if (FAILED(hr)) { FindClose(hFind); + HeapFree(GetProcessHeap(), 0, szFileTypes); + HeapFree(GetProcessHeap(), 0, lpBuffer); return; } @@ -294,6 +451,9 @@ token = _tcstok(NULL, separators); FindClose(hFind); } + + HeapFree(GetProcessHeap(), 0, szFileTypes); + HeapFree(GetProcessHeap(), 0, lpBuffer); } @@ -725,7 +885,24 @@ SetWallpaper(PDATA pData) { HKEY regKey; + TCHAR szWallpaper[MAX_PATH]; + WCHAR szBuffer[MAX_PATH]; + GpImage *image; + CLSID encoderClsid; + size_t length = 0; + GpStatus status; + + if (FAILED(SHGetFolderPath(NULL, CSIDL_LOCAL_APPDATA | CSIDL_FLAG_CREATE, NULL, 0, szWallpaper))) + { + return; + } + + if (FAILED(StringCbCat(szWallpaper, MAX_PATH, TEXT("\\Wallpaper1.bmp")))) + { + return; + } + RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Control Panel\\Desktop"), 0, KEY_ALL_ACCESS, ®Key); if (pData->placementSelection == PLACEMENT_TILE) @@ -746,19 +923,79 @@ RegSetValueEx(regKey, TEXT("WallpaperStyle"), 0, REG_SZ, (BYTE *)TEXT("2"), sizeof(TCHAR) * 2); } - RegCloseKey(regKey); - if (pData->backgroundItems[pData->backgroundSelection].bWallpaper == TRUE) { - SystemParametersInfo(SPI_SETDESKWALLPAPER, - 0, - pData->backgroundItems[pData->backgroundSelection].szFilename, - SPIF_UPDATEINIFILE); + +#ifdef UNICODE + if FAILED(StringCbCopy(szBuffer, sizeof(szBuffer), pData->backgroundItems[pData->backgroundSelection].szFilename)) + { + RegCloseKey(regKey); + return; + } +#else + if (!MultiByteToWideChar(CP_ACP, 0, pData->backgroundItems[pData->backgroundSelection].szFilename, -1, szBuffer, sizeof(szBuffer))) + { + RegCloseKey(regKey); + return; + } +#endif + + GdipLoadImageFromFile(szBuffer, &image); + if (!image) + { + RegCloseKey(regKey); + return; + } + + if (FAILED(GdipGetEncoderClsid(L"image/bmp", &encoderClsid))) + { + GdipDisposeImage(image); + RegCloseKey(regKey); + return; + } + +#ifdef UNICODE + if FAILED(StringCbCopy(szBuffer, sizeof(szBuffer), szWallpaper)) + { + RegCloseKey(regKey); + return; + } +#else + if (!MultiByteToWideChar(CP_ACP, 0, szWallpaper, -1, szBuffer, sizeof(szBuffer))) + { + RegCloseKey(regKey); + return; + } +#endif + + status = GdipSaveImageToFile(image, szWallpaper, &encoderClsid, NULL); + + GdipDisposeImage(image); + + if (status != Ok) + { + RegCloseKey(regKey); + return; + } + + if (SUCCEEDED(StringCchLength(pData->backgroundItems[pData->backgroundSelection].szFilename, MAX_PATH, &length))) + { + RegSetValueEx(regKey, TEXT("ConvertedWallpaper"), 0, REG_SZ, (BYTE*)pData->backgroundItems[pData->backgroundSelection].szFilename, (length + 1) * sizeof(TCHAR)); + } + + if (SUCCEEDED(StringCchLength(szWallpaper, MAX_PATH, &length))) + { + RegSetValueEx(regKey, TEXT("OriginalWallpaper"), 0, REG_SZ, (BYTE *)szWallpaper, (length + 1) * sizeof(TCHAR)); + } + + SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, szWallpaper, SPIF_UPDATEINIFILE); } else { SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, (void*) TEXT(""), SPIF_UPDATEINIFILE); } + + RegCloseKey(regKey); } @@ -805,6 +1042,11 @@ switch (uMsg) { case WM_INITDIALOG: + gdipStartup.GdiplusVersion = 1; + gdipStartup.DebugEventCallback = NULL; + gdipStartup.SuppressBackgroundThread = FALSE; + gdipStartup.SuppressExternalCodecs = FALSE; + GdiplusStartup(&gdipToken, &gdipStartup, NULL); pData = (DATA*) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DATA)); SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pData); InitBackgroundDialog(hwndDlg, pData); @@ -887,6 +1129,7 @@ DeleteObject(pData->hBitmap); HeapFree(GetProcessHeap(), 0, pData); + GdiplusShutdown(gdipToken); break; } Index: CMakeLists.txt =================================================================== --- CMakeLists.txt (revision 65400) +++ CMakeLists.txt (working copy) @@ -30,6 +30,6 @@ set_module_type(desk cpl UNICODE) target_link_libraries(desk uuid) -add_importlibs(desk user32 advapi32 gdi32 comctl32 comdlg32 ole32 setupapi shell32 shlwapi uxtheme msvcrt kernel32 ntdll) +add_importlibs(desk user32 advapi32 gdi32 comctl32 comdlg32 ole32 setupapi shell32 shlwapi uxtheme gdiplus msvcrt kernel32 ntdll) add_pch(desk desk.h SOURCE) add_cd_file(TARGET desk DESTINATION reactos/system32 FOR all) Index: desk.h =================================================================== --- desk.h (revision 65400) +++ desk.h (working copy) @@ -15,6 +15,12 @@ #include #include #include + +// For MultiByteToWideChar() +#ifndef UNICODE + #include +#endif + #include #include #include @@ -23,6 +29,7 @@ #include #include #include +#include #include "appearance.h" #include "preview.h" @@ -41,11 +48,10 @@ typedef struct _DIBITMAP { - BITMAPFILEHEADER *header; BITMAPINFO *info; BYTE *bits; - int width; - int height; + UINT width; + UINT height; } DIBITMAP, *PDIBITMAP; extern HINSTANCE hApplet; Index: dibitmap.c =================================================================== --- dibitmap.c (revision 65400) +++ dibitmap.c (working copy) @@ -12,70 +12,96 @@ PDIBITMAP DibLoadImage(LPTSTR lpFilename) { - BOOL bSuccess; - DWORD dwFileSize, dwHighSize, dwBytesRead; - HANDLE hFile; PDIBITMAP lpBitmap; + GpBitmap *bitmap; + WCHAR szBuffer[MAX_PATH]; + BitmapData lock; - hFile = CreateFile(lpFilename, - GENERIC_READ, - FILE_SHARE_READ, - NULL, - OPEN_EXISTING, - FILE_FLAG_SEQUENTIAL_SCAN, - NULL); - if (hFile == INVALID_HANDLE_VALUE) + +#ifdef UNICODE + if (FAILED(StringCbCopy(szBuffer, sizeof(szBuffer), lpFilename))) + { return NULL; + } +#else + if (!MultiByteToWideChar(CP_ACP, 0, lpFilename, -1, szBuffer, sizeof(szBuffer))) + { + return NULL; + } +#endif - dwFileSize = GetFileSize(hFile, &dwHighSize); - - if (dwHighSize) + GdipCreateBitmapFromFile(szBuffer, &bitmap); + if (!bitmap) { - CloseHandle(hFile); return NULL; } lpBitmap = HeapAlloc(GetProcessHeap(), 0, sizeof(DIBITMAP)); - if (lpBitmap == NULL) + if (!lpBitmap) { - CloseHandle(hFile); + GdipDisposeImage((GpImage*)bitmap); return NULL; } - lpBitmap->header = HeapAlloc(GetProcessHeap(), 0, dwFileSize); - if (lpBitmap->header == NULL) + lpBitmap->info = HeapAlloc(GetProcessHeap(), 0, sizeof(BITMAPINFO)); + if (!lpBitmap->info) { + GdipDisposeImage((GpImage*)bitmap); HeapFree(GetProcessHeap(), 0, lpBitmap); - CloseHandle(hFile); return NULL; } - bSuccess = ReadFile(hFile, lpBitmap->header, dwFileSize, &dwBytesRead, NULL); - CloseHandle(hFile); + if (GdipGetImageWidth((GpImage*)bitmap, &lpBitmap->width) != Ok) + { + GdipDisposeImage((GpImage*)bitmap); + HeapFree(GetProcessHeap(), 0, lpBitmap->info); + HeapFree(GetProcessHeap(), 0, lpBitmap); + return NULL; + } - if (!bSuccess || - (dwBytesRead != dwFileSize) || - (lpBitmap->header->bfType != * (WORD *) "BM") || - (lpBitmap->header->bfSize != dwFileSize)) + if (GdipGetImageHeight((GpImage*)bitmap, &lpBitmap->height) != Ok) { - HeapFree(GetProcessHeap(), 0, lpBitmap->header); + GdipDisposeImage((GpImage*)bitmap); + HeapFree(GetProcessHeap(), 0, lpBitmap->info); HeapFree(GetProcessHeap(), 0, lpBitmap); return NULL; } - lpBitmap->info = (BITMAPINFO *)(lpBitmap->header + 1); - lpBitmap->bits = (BYTE *)lpBitmap->header + lpBitmap->header->bfOffBits; + lpBitmap->bits = HeapAlloc(GetProcessHeap(), 0, lpBitmap->width * lpBitmap->height * 4); + if (!lpBitmap->bits) + { + GdipDisposeImage((GpImage*)bitmap); + HeapFree(GetProcessHeap(), 0, lpBitmap->info); + HeapFree(GetProcessHeap(), 0, lpBitmap); + return NULL; + } - /* Get the DIB width and height */ - if (lpBitmap->info->bmiHeader.biSize == sizeof(BITMAPCOREHEADER)) + ZeroMemory(lpBitmap->info, sizeof(BITMAPINFO)); + lpBitmap->info->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); + lpBitmap->info->bmiHeader.biWidth = lpBitmap->width; + lpBitmap->info->bmiHeader.biHeight = -lpBitmap->height; + lpBitmap->info->bmiHeader.biPlanes = 1; + lpBitmap->info->bmiHeader.biBitCount = 32; + lpBitmap->info->bmiHeader.biCompression = BI_RGB; + lpBitmap->info->bmiHeader.biSizeImage = lpBitmap->width * lpBitmap->height * 4; + + lock.Stride = lpBitmap->width * 4; + lock.Scan0 = lpBitmap->bits; + + if (GdipBitmapLockBits(bitmap, NULL, ImageLockModeRead | ImageLockModeUserInputBuf, PixelFormat32bppPARGB, &lock) != Ok) { - lpBitmap->width = ((BITMAPCOREHEADER *)lpBitmap->info)->bcWidth; - lpBitmap->height = ((BITMAPCOREHEADER *)lpBitmap->info)->bcHeight; + GdipDisposeImage((GpImage*)bitmap); + HeapFree(GetProcessHeap(), 0, lpBitmap->bits); + HeapFree(GetProcessHeap(), 0, lpBitmap->info); + HeapFree(GetProcessHeap(), 0, lpBitmap); + return NULL; } - else + + GdipBitmapUnlockBits(bitmap, &lock); + + if (bitmap) { - lpBitmap->width = lpBitmap->info->bmiHeader.biWidth; - lpBitmap->height = abs(lpBitmap->info->bmiHeader.biHeight); + GdipDisposeImage((GpImage*)bitmap); } return lpBitmap; @@ -88,10 +114,14 @@ if (lpBitmap == NULL) return; - /* Free the header */ - if (lpBitmap->header != NULL) - HeapFree(GetProcessHeap(), 0, lpBitmap->header); + /* Free the image data */ + if (lpBitmap->bits != NULL) + HeapFree(GetProcessHeap(), 0, lpBitmap->bits); + /* Free the bitmap info */ + if (lpBitmap->info != NULL) + HeapFree(GetProcessHeap(), 0, lpBitmap->info); + /* Free the bitmap structure */ if (lpBitmap != NULL) HeapFree(GetProcessHeap(), 0, lpBitmap); Index: lang/bg-BG.rc =================================================================== --- lang/bg-BG.rc (revision 65400) +++ lang/bg-BG.rc (working copy) @@ -211,7 +211,6 @@ STRINGTABLE BEGIN IDS_BACKGROUND_COMDLG_FILTER "Изображения (*.bmp;*.dib)\0*.bmp;*.dib\0" - IDS_SUPPORTED_EXT "*.bmp;*.dib" END STRINGTABLE Index: lang/cs-CZ.rc =================================================================== --- lang/cs-CZ.rc (revision 65400) +++ lang/cs-CZ.rc (working copy) @@ -217,7 +217,6 @@ STRINGTABLE BEGIN IDS_BACKGROUND_COMDLG_FILTER "Obrázky (*.bmp;*.dib)\0*.bmp;*.dib\0" - IDS_SUPPORTED_EXT "*.bmp;*.dib" END STRINGTABLE Index: lang/de-DE.rc =================================================================== --- lang/de-DE.rc (revision 65400) +++ lang/de-DE.rc (working copy) @@ -211,7 +211,6 @@ STRINGTABLE BEGIN IDS_BACKGROUND_COMDLG_FILTER "Bilddateien (*.bmp;*.dib)\0*.bmp;*.dib\0" - IDS_SUPPORTED_EXT "*.bmp;*.dib" END STRINGTABLE Index: lang/el-GR.rc =================================================================== --- lang/el-GR.rc (revision 65400) +++ lang/el-GR.rc (working copy) @@ -211,7 +211,6 @@ STRINGTABLE BEGIN IDS_BACKGROUND_COMDLG_FILTER "Εικόνες (*.bmp;*.dib)\0*.bmp;*.dib\0" - IDS_SUPPORTED_EXT "*.bmp;*.dib" END STRINGTABLE Index: lang/en-US.rc =================================================================== --- lang/en-US.rc (revision 65400) +++ lang/en-US.rc (working copy) @@ -211,7 +211,6 @@ STRINGTABLE BEGIN IDS_BACKGROUND_COMDLG_FILTER "Pictures (*.bmp;*.dib)\0*.bmp;*.dib\0" - IDS_SUPPORTED_EXT "*.bmp;*.dib" END STRINGTABLE Index: lang/es-ES.rc =================================================================== --- lang/es-ES.rc (revision 65400) +++ lang/es-ES.rc (working copy) @@ -213,7 +213,6 @@ STRINGTABLE BEGIN IDS_BACKGROUND_COMDLG_FILTER "Imágenes (*.bmp;*.dib)\0*.bmp;*.dib\0" - IDS_SUPPORTED_EXT "*.bmp;*.dib" END STRINGTABLE Index: lang/fr-FR.rc =================================================================== --- lang/fr-FR.rc (revision 65400) +++ lang/fr-FR.rc (working copy) @@ -213,7 +213,6 @@ STRINGTABLE BEGIN IDS_BACKGROUND_COMDLG_FILTER "Images (*.bmp;*.dib)\0*.bmp;*.dib\0" - IDS_SUPPORTED_EXT "*.bmp;*.dib" END STRINGTABLE Index: lang/he-IL.rc =================================================================== --- lang/he-IL.rc (revision 65400) +++ lang/he-IL.rc (working copy) @@ -211,7 +211,6 @@ STRINGTABLE BEGIN IDS_BACKGROUND_COMDLG_FILTER "תמונות (*.bmp;*.dib)\0*.bmp;*.dib\0" - IDS_SUPPORTED_EXT "*.bmp;*.dib" END STRINGTABLE Index: lang/hu-HU.rc =================================================================== --- lang/hu-HU.rc (revision 65400) +++ lang/hu-HU.rc (working copy) @@ -213,7 +213,6 @@ STRINGTABLE BEGIN IDS_BACKGROUND_COMDLG_FILTER "Képek (*.bmp;*.dib)\0*.bmp;*.dib\0" - IDS_SUPPORTED_EXT "*.bmp;*.dib" END STRINGTABLE Index: lang/id-ID.rc =================================================================== --- lang/id-ID.rc (revision 65400) +++ lang/id-ID.rc (working copy) @@ -211,7 +211,6 @@ STRINGTABLE BEGIN IDS_BACKGROUND_COMDLG_FILTER "Gambar (*.bmp;*.dib)\0*.bmp;*.dib\0" - IDS_SUPPORTED_EXT "*.bmp;*.dib" END STRINGTABLE Index: lang/it-IT.rc =================================================================== --- lang/it-IT.rc (revision 65400) +++ lang/it-IT.rc (working copy) @@ -211,7 +211,6 @@ STRINGTABLE BEGIN IDS_BACKGROUND_COMDLG_FILTER "Immagini (*.bmp;*.dib)\0*.bmp;*.dib\0" - IDS_SUPPORTED_EXT "*.bmp;*.dib" END STRINGTABLE Index: lang/ja-JP.rc =================================================================== --- lang/ja-JP.rc (revision 65400) +++ lang/ja-JP.rc (working copy) @@ -211,7 +211,6 @@ STRINGTABLE BEGIN IDS_BACKGROUND_COMDLG_FILTER "画像 (*.bmp;*.dib)\0*.bmp;*.dib\0" - IDS_SUPPORTED_EXT "*.bmp;*.dib" END STRINGTABLE Index: lang/nl-NL.rc =================================================================== --- lang/nl-NL.rc (revision 65400) +++ lang/nl-NL.rc (working copy) @@ -211,7 +211,6 @@ STRINGTABLE BEGIN IDS_BACKGROUND_COMDLG_FILTER "Pictures (*.bmp;*.dib)\0*.bmp;*.dib\0" - IDS_SUPPORTED_EXT "*.bmp;*.dib" END STRINGTABLE Index: lang/no-NO.rc =================================================================== --- lang/no-NO.rc (revision 65400) +++ lang/no-NO.rc (working copy) @@ -211,7 +211,6 @@ STRINGTABLE BEGIN IDS_BACKGROUND_COMDLG_FILTER "Bilder (*.bmp;*.dib)\0*.bmp;*.dib\0" - IDS_SUPPORTED_EXT "*.bmp;*.dib" END STRINGTABLE Index: lang/pl-PL.rc =================================================================== --- lang/pl-PL.rc (revision 65400) +++ lang/pl-PL.rc (working copy) @@ -220,7 +220,6 @@ STRINGTABLE BEGIN IDS_BACKGROUND_COMDLG_FILTER "Pliki tła (*.bmp;*.dib)\0*.bmp;*.dib\0" - IDS_SUPPORTED_EXT "*.bmp;*.dib" END STRINGTABLE Index: lang/ro-RO.rc =================================================================== --- lang/ro-RO.rc (revision 65400) +++ lang/ro-RO.rc (working copy) @@ -216,7 +216,6 @@ STRINGTABLE BEGIN IDS_BACKGROUND_COMDLG_FILTER "Imagini (*.bmp;*.dib)\0*.bmp;*.dib\0" - IDS_SUPPORTED_EXT "*.bmp;*.dib" END STRINGTABLE Index: lang/ru-RU.rc =================================================================== --- lang/ru-RU.rc (revision 65400) +++ lang/ru-RU.rc (working copy) @@ -211,7 +211,6 @@ STRINGTABLE BEGIN IDS_BACKGROUND_COMDLG_FILTER "Изображения (*.bmp;*.dib)\000*.bmp;*.dib" - IDS_SUPPORTED_EXT "*.bmp;*.dib" END STRINGTABLE Index: lang/sk-SK.rc =================================================================== --- lang/sk-SK.rc (revision 65400) +++ lang/sk-SK.rc (working copy) @@ -213,7 +213,6 @@ STRINGTABLE BEGIN IDS_BACKGROUND_COMDLG_FILTER "Obrázky (*.bmp;*.dib)\0*.bmp;*.dib\0" - IDS_SUPPORTED_EXT "*.bmp;*.dib" END STRINGTABLE Index: lang/sq-AL.rc =================================================================== --- lang/sq-AL.rc (revision 65400) +++ lang/sq-AL.rc (working copy) @@ -215,7 +215,6 @@ STRINGTABLE BEGIN IDS_BACKGROUND_COMDLG_FILTER "Pictures (*.bmp;*.dib)\0*.bmp;*.dib\0" - IDS_SUPPORTED_EXT "*.bmp;*.dib" END STRINGTABLE Index: lang/sv-SE.rc =================================================================== --- lang/sv-SE.rc (revision 65400) +++ lang/sv-SE.rc (working copy) @@ -213,7 +213,6 @@ STRINGTABLE BEGIN IDS_BACKGROUND_COMDLG_FILTER "Pictures (*.bmp;*.dib)\0*.bmp;*.dib\0" - IDS_SUPPORTED_EXT "*.bmp;*.dib" END STRINGTABLE Index: lang/tr-TR.rc =================================================================== --- lang/tr-TR.rc (revision 65400) +++ lang/tr-TR.rc (working copy) @@ -213,7 +213,6 @@ STRINGTABLE BEGIN IDS_BACKGROUND_COMDLG_FILTER "Resimler (*.bmp, *.dib)\0*.bmp;*.dib\0" - IDS_SUPPORTED_EXT "*.bmp;*.dib" END STRINGTABLE Index: lang/uk-UA.rc =================================================================== --- lang/uk-UA.rc (revision 65400) +++ lang/uk-UA.rc (working copy) @@ -219,7 +219,6 @@ STRINGTABLE BEGIN IDS_BACKGROUND_COMDLG_FILTER "Малюнки (*.bmp;*.dib)\0*.bmp;*.dib\0" - IDS_SUPPORTED_EXT "*.bmp;*.dib" END STRINGTABLE Index: lang/zh-CN.rc =================================================================== --- lang/zh-CN.rc (revision 65400) +++ lang/zh-CN.rc (working copy) @@ -218,7 +218,6 @@ STRINGTABLE BEGIN IDS_BACKGROUND_COMDLG_FILTER "位图 (*.bmp;*.dib)\0*.bmp;*.dib\0" - IDS_SUPPORTED_EXT "*.bmp;*.dib" END STRINGTABLE Index: resource.h =================================================================== --- resource.h (revision 65400) +++ resource.h (working copy) @@ -33,7 +33,6 @@ #define IDC_COLOR_BUTTON 1004 #define IDC_PLACEMENT_COMBO 1005 #define IDS_BACKGROUND_COMDLG_FILTER 1006 -#define IDS_SUPPORTED_EXT 1007 /* Screensaver Page */ #define IDC_SCREENS_PREVIEW 1010