mirror of
https://github.com/reactos/reactos.git
synced 2025-08-06 21:52:59 +00:00
[USER32][APITESTS] Use the correct user32 icon resource ids (#7807)
This commit is contained in:
parent
2a901a72f3
commit
c0ea1c0e9f
7 changed files with 65 additions and 13 deletions
|
@ -48,12 +48,8 @@ static BOOL IL_AddImagesForTest(HIMAGELIST himl)
|
||||||
HINSTANCE hInst = LoadLibraryW(L"USER32");
|
HINSTANCE hInst = LoadLibraryW(L"USER32");
|
||||||
if (!hInst)
|
if (!hInst)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
HICON hIco = (HICON)LoadImage(hInst, MAKEINTRESOURCE(100), /* Windows */
|
HICON hIco = (HICON)LoadImage(hInst, MAKEINTRESOURCE(100),
|
||||||
IMAGE_ICON, IL_IMGSIZE, IL_IMGSIZE, 0);
|
IMAGE_ICON, IL_IMGSIZE, IL_IMGSIZE, 0);
|
||||||
if (!hIco)
|
|
||||||
hIco = (HICON)LoadImage(hInst, MAKEINTRESOURCE(32512), /* ReactOS */
|
|
||||||
IMAGE_ICON, IL_IMGSIZE, IL_IMGSIZE, 0);
|
|
||||||
|
|
||||||
if (hIco)
|
if (hIco)
|
||||||
{
|
{
|
||||||
idx = ImageList_AddIcon(himl, hIco);
|
idx = ImageList_AddIcon(himl, hIco);
|
||||||
|
|
|
@ -45,6 +45,42 @@ static void test_LoadImage_DataFile(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_LoadIcon_SystemIds(void)
|
||||||
|
{
|
||||||
|
static const WORD icomap[][2] = {
|
||||||
|
{ 100, (WORD)(SIZE_T)IDI_APPLICATION },
|
||||||
|
{ 101, (WORD)(SIZE_T)IDI_WARNING },
|
||||||
|
{ 102, (WORD)(SIZE_T)IDI_QUESTION },
|
||||||
|
{ 103, (WORD)(SIZE_T)IDI_ERROR },
|
||||||
|
{ 104, (WORD)(SIZE_T)IDI_INFORMATION },
|
||||||
|
{ 105, (WORD)(SIZE_T)IDI_WINLOGO }
|
||||||
|
};
|
||||||
|
HINSTANCE hInst = GetModuleHandleW(L"USER32");
|
||||||
|
typedef BOOL (WINAPI*SHAIE)(HICON, HICON);
|
||||||
|
SHAIE pfnSHAreIconsEqual;
|
||||||
|
HMODULE hSHLWAPI = LoadLibraryA("SHLWAPI");
|
||||||
|
if (!hSHLWAPI)
|
||||||
|
{
|
||||||
|
skip("Could not initialize\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
pfnSHAreIconsEqual = (SHAIE)GetProcAddress(hSHLWAPI, MAKEINTRESOURCEA(548));
|
||||||
|
if (!pfnSHAreIconsEqual)
|
||||||
|
{
|
||||||
|
FreeLibrary(hSHLWAPI);
|
||||||
|
skip("Could not initialize\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (UINT i = 0; i < _countof(icomap); i++)
|
||||||
|
{
|
||||||
|
HICON hIcoRes = LoadIconW(hInst, MAKEINTRESOURCEW(icomap[i][0]));
|
||||||
|
HICON hIcoSys = LoadIconW(NULL, MAKEINTRESOURCEW(icomap[i][1]));
|
||||||
|
ok(hIcoRes && pfnSHAreIconsEqual(hIcoRes, hIcoSys), "SysIcon %d must be resource %d\n", icomap[i][1], icomap[i][0]);
|
||||||
|
}
|
||||||
|
FreeLibrary(hSHLWAPI);
|
||||||
|
}
|
||||||
|
|
||||||
START_TEST(LoadImage)
|
START_TEST(LoadImage)
|
||||||
{
|
{
|
||||||
char path[MAX_PATH];
|
char path[MAX_PATH];
|
||||||
|
@ -133,4 +169,6 @@ START_TEST(LoadImage)
|
||||||
si.cb = sizeof(si);
|
si.cb = sizeof(si);
|
||||||
CreateProcessA( NULL, path, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi );
|
CreateProcessA( NULL, path, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi );
|
||||||
WaitForSingleObject (pi.hProcess, INFINITE);
|
WaitForSingleObject (pi.hProcess, INFINITE);
|
||||||
|
|
||||||
|
test_LoadIcon_SystemIds();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1144,7 +1144,7 @@ co_IntSetWndIcons(VOID)
|
||||||
IntLoadSystenIcons(Common->hIconBang, OIC_BANG);
|
IntLoadSystenIcons(Common->hIconBang, OIC_BANG);
|
||||||
IntLoadSystenIcons(Common->hIconNote, OIC_NOTE);
|
IntLoadSystenIcons(Common->hIconNote, OIC_NOTE);
|
||||||
IntLoadSystenIcons(gpsi->hIconWindows, OIC_WINLOGO);
|
IntLoadSystenIcons(gpsi->hIconWindows, OIC_WINLOGO);
|
||||||
IntLoadSystenIcons(gpsi->hIconSmWindows, OIC_WINLOGO+1);
|
IntLoadSystenIcons(gpsi->hIconSmWindows, OIC_INTERNAL_WINSMALL);
|
||||||
|
|
||||||
ERR("hIconSmWindows %p hIconWindows %p \n",gpsi->hIconSmWindows,gpsi->hIconWindows);
|
ERR("hIconSmWindows %p hIconWindows %p \n",gpsi->hIconSmWindows,gpsi->hIconWindows);
|
||||||
|
|
||||||
|
|
|
@ -155,7 +155,7 @@ IntLoadSystenIcons(HICON hcur, DWORD id)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Set Small Window Icon and do not link.
|
// Set Small Window Icon and do not link.
|
||||||
if ( id == OIC_WINLOGO+1 )
|
if ( id == OIC_INTERNAL_WINSMALL )
|
||||||
{
|
{
|
||||||
pcur->CURSORF_flags |= CURSORF_GLOBAL;
|
pcur->CURSORF_flags |= CURSORF_GLOBAL;
|
||||||
UserReferenceObject(pcur);
|
UserReferenceObject(pcur);
|
||||||
|
|
|
@ -108,6 +108,8 @@ extern SYSTEMCURICO gasyscur[];
|
||||||
#define ROIC_BANG 3
|
#define ROIC_BANG 3
|
||||||
#define ROIC_NOTE 4
|
#define ROIC_NOTE 4
|
||||||
#define ROIC_WINLOGO 5
|
#define ROIC_WINLOGO 5
|
||||||
|
#define ROIC_SHIELD 6
|
||||||
|
#define OIC_INTERNAL_WINSMALL 6 /* Note: This needs to change if SHIELD is added to gasysico. */
|
||||||
|
|
||||||
#define ROCR_ARROW 0
|
#define ROCR_ARROW 0
|
||||||
#define ROCR_IBEAM 1
|
#define ROCR_IBEAM 1
|
||||||
|
|
|
@ -55,12 +55,13 @@ OCR_HAND CURSOR "resources/ocr_hand.cur"
|
||||||
|
|
||||||
/* Icons */
|
/* Icons */
|
||||||
|
|
||||||
OIC_SAMPLE ICON "resources/oic_sample.ico"
|
100 ICON "resources/oic_sample.ico" /* IDI_APPLICATION */
|
||||||
OIC_HAND ICON "resources/oic_hand.ico"
|
101 ICON "resources/oic_bang.ico" /* IDI_WARNING */
|
||||||
OIC_QUES ICON "resources/oic_ques.ico"
|
102 ICON "resources/oic_ques.ico" /* IDI_QUESTION */
|
||||||
OIC_BANG ICON "resources/oic_bang.ico"
|
103 ICON "resources/oic_hand.ico" /* IDI_ERROR */
|
||||||
OIC_NOTE ICON "resources/oic_note.ico"
|
104 ICON "resources/oic_note.ico" /* IDI_INFORMATION */
|
||||||
OIC_WINLOGO ICON "resources/oic_reactos.ico"
|
105 ICON "resources/oic_reactos.ico" /* IDI_WINLOGO */
|
||||||
|
/* 106 ICON "resources/oic_shield.ico" IDI_SHIELD */
|
||||||
|
|
||||||
/* Bitmaps */
|
/* Bitmaps */
|
||||||
|
|
||||||
|
|
|
@ -1738,8 +1738,23 @@ CURSORICON_LoadImageW(
|
||||||
|
|
||||||
/* Check if caller wants OEM icons */
|
/* Check if caller wants OEM icons */
|
||||||
if(!hinst)
|
if(!hinst)
|
||||||
|
{
|
||||||
|
#ifndef IDI_SHIELD
|
||||||
|
#define IDI_SHIELD MAKEINTRESOURCE(32518)
|
||||||
|
#endif
|
||||||
|
|
||||||
hinst = User32Instance;
|
hinst = User32Instance;
|
||||||
|
|
||||||
|
/* Map IDI to resource id */
|
||||||
|
if (bIcon && lpszName >= IDI_APPLICATION && lpszName <= IDI_SHIELD)
|
||||||
|
{
|
||||||
|
SIZE_T id = 100 + (SIZE_T)lpszName - (SIZE_T)IDI_APPLICATION;
|
||||||
|
if ((id | 2) == 103)
|
||||||
|
id ^= 2; /* Must swap IDI_ERROR and IDI_WARNING */
|
||||||
|
lpszName = MAKEINTRESOURCEW(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(lpszName)
|
if(lpszName)
|
||||||
{
|
{
|
||||||
/* Prepare the resource name string */
|
/* Prepare the resource name string */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue