Revision: 10365 https://osdn.net/projects/ttssh2/scm/svn/commits/10365 Author: zmatsuo Date: 2022-11-14 23:12:17 +0900 (Mon, 14 Nov 2022) Log Message: ----------- 画像ファイル名をUnicodeで扱うようにした - 使用しなくなったANSIファイル名版画像読み込み削除 - GetBitmapHandle() - ファイル名長には制限あり(MAX_PATH) Modified Paths: -------------- trunk/teraterm/teraterm/vtdisp.c -------------- next part -------------- Modified: trunk/teraterm/teraterm/vtdisp.c =================================================================== --- trunk/teraterm/teraterm/vtdisp.c 2022-11-14 14:12:05 UTC (rev 10364) +++ trunk/teraterm/teraterm/vtdisp.c 2022-11-14 14:12:17 UTC (rev 10365) @@ -124,16 +124,16 @@ typedef struct _BGSrc { - HDC hdc; - BG_TYPE type; - BG_PATTERN pattern; - BOOL antiAlias; - COLORREF color; - BYTE alpha; - int width; - int height; - char file[MAX_PATH]; -}BGSrc; + HDC hdc; + BG_TYPE type; + BG_PATTERN pattern; + BOOL antiAlias; + COLORREF color; + BYTE alpha; + int width; + int height; + wchar_t fileW[MAX_PATH]; +} BGSrc; static BGSrc BGDest; static BGSrc BGSrc1; @@ -438,7 +438,7 @@ static void BGPreloadPicture(BGSrc *src) { HBITMAP hbm = NULL; - wchar_t *load_file = ToWcharA(src->file); + const wchar_t *load_file = src->fileW; const wchar_t *spi_path = ts.EtermLookfeel.BGSPIPathW; // Susie plugin \x82œǂݍ\x9E\x82\xDD @@ -485,8 +485,6 @@ }else{ src->type = BG_COLOR; } - - free(load_file); } static void BGGetWallpaperInfo(WallpaperInfo *wi) @@ -601,15 +599,6 @@ return hBitmap; } -static HBITMAP GetBitmapHandle(const char *File) -{ - HBITMAP hBmp; - wchar_t *FileW = ToWcharA(File); - hBmp = GetBitmapHandleW(FileW); - free(FileW); - return hBmp; -} - // \x90\xFC\x8C`\x95⊮\x96@\x82ɂ\xE6\x82\xE8\x94\xE4\x8Ar\x93I\x91N\x96\xBE\x82Ƀr\x83b\x83g\x83}\x83b\x83v\x82\xF0\x8Ag\x91\xE5\x81E\x8Fk\x8F\xAC\x82\xB7\x82\xE9\x81B // Windows 9x/NT\x91Ή\x9E // cf.http://katahiromz.web.fc2.com/win32/bilinear.html @@ -835,6 +824,7 @@ static void BGStretchPicture(HDC hdcDest,BGSrc *src,int x,int y,int width,int height,BOOL bAntiAlias) { + const wchar_t *filename = src->fileW; if(!hdcDest || !src) return; @@ -845,10 +835,10 @@ HBITMAP hbm; if (IsLoadImageOnlyEnabled()) { - hbm = LoadImage(0,src->file,IMAGE_BITMAP,width,height,LR_LOADFROMFILE); + hbm = LoadImageW(0,filename,IMAGE_BITMAP,width,height,LR_LOADFROMFILE); } else { HBITMAP newhbm; - hbm = GetBitmapHandle(src->file); + hbm = GetBitmapHandleW(filename); newhbm = CreateStretched32BppBitmapBilinear(hbm, width, height); DeleteObject(hbm); hbm = newhbm; @@ -1215,7 +1205,7 @@ vtdisp_work_t *w = &vtdisp_work; // \x94w\x8Ci\x89摜\x83`\x83F\x83b\x83N - if (BGDest.file[0] == 0) { + if (BGDest.fileW == NULL || BGDest.fileW[0] == 0) { // \x94w\x8Ci\x89摜\x82͎g\x97p\x82\xB5\x82Ȃ\xA2 BGDest.type = BG_NONE; } @@ -3823,7 +3813,7 @@ */ void ThemeSetBG(const BGTheme *bg_theme) { - WideCharToACP_t(bg_theme->BGDest.file, BGDest.file, _countof(BGDest.file)); + wcscpy_s(BGDest.fileW, _countof(bg_theme->BGDest.file), bg_theme->BGDest.file); BGDest.type = bg_theme->BGDest.type; BGDest.color = bg_theme->BGDest.color; BGDest.pattern = bg_theme->BGDest.pattern; @@ -3847,7 +3837,7 @@ void ThemeGetBG(BGTheme *bg_theme) { - ACPToWideChar_t(BGDest.file, bg_theme->BGDest.file, _countof(bg_theme->BGDest.file)); + wcscpy_s(bg_theme->BGDest.file, _countof(bg_theme->BGDest.file), BGDest.fileW); bg_theme->BGDest.type = BG_PICTURE; bg_theme->BGDest.color = BGDest.color; bg_theme->BGDest.pattern = BGDest.pattern;