c++ - GetImmersiveColorTypeFromName 总是返回 -1

标签 c++ c winapi

尝试调用 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");
}

关于c++ - GetImmersiveColorTypeFromName 总是返回 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33680359/

相关文章:

c++ - 使用 "pop_front"从排序列表中删除元素会导致崩溃

c - struct itimerspec 中的浮点值

C - 使用字符指针替换文件中的字符串

c++ - 替换版本信息资源

c++ - 带有 fread 的随机字节

c++ - lexical_cast strtof strtold 失去准确性?

c++ - LNK2019 : Unresolved external symbol

c++ - Protobuf ShortDebugString() 崩溃

c - 输出未知输入的十进制版本

c++ - 如何区分外接显示器和笔记本屏幕本身?