GetImmersiveColorTypeFromName始终返回-1

GetImmersiveColorTypeFromName always returning -1

本文关键字:返回 GetImmersiveColorTypeFromName      更新时间:2023-10-16

尝试调用GetImmersiveColorTypeFromName以获取windows 10通知区域的颜色。但它总是返回-1

    typedef int(WINAPI*pGetImmersiveColorTypeFromName)(char* name);
    const pGetImmersiveColorTypeFromName GetImmersiveColorTypeFromName = (pGetImmersiveColorTypeFromName)GetProcAddress(hModule, (LPCSTR)96);
    if (GetImmersiveColorTypeFromName)
    {
        colorType = GetImmersiveColorTypeFromName("ImmersiveApplicationTextDarkTheme");
    }

我尝试过很多其他名称,但总是得到-1

GetImmersiveColorTypeFromName想要一个宽字符串,所以将声明从char*更改为wchar_t*:

typedef int(WINAPI*pGetImmersiveColorTypeFromName)(wchar_t* name);
const pGetImmersiveColorTypeFromName GetImmersiveColorTypeFromName = (pGetImmersiveColorTypeFromName)GetProcAddress(hModule, (LPCSTR)96);
if (GetImmersiveColorTypeFromName)
{
    colorType = GetImmersiveColorTypeFromName(L"ImmersiveApplicationTextDarkTheme");
}