#include <Windows.h>
#include <Icm.h>
#include <iostream>
#include <string> #pragma comment(lib,"Mscms.lib")
#define MAX_PATH 1024
BOOL flag = 0;
int main()
{
WCHAR* szDisplayDeviceName = NULL;
WCHAR szPath[MAX_PATH];
memset(szPath, 0, 1024);
DISPLAY_DEVICE dd;
dd.cb = sizeof(dd); if (flag = EnumDisplayDevices(L"\\\\.\\DISPLAY1", 0, &dd, EDD_GET_DEVICE_INTERFACE_NAME))
{
if (flag = WcsGetDefaultColorProfile(WCS_PROFILE_MANAGEMENT_SCOPE_CURRENT_USER,
dd.DeviceKey,
CPT_ICC,
CPST_PERCEPTUAL,
0, // dwProfileID -- doesn't seem to matter what value you use here
MAX_PATH * sizeof(WCHAR),
szPath))
{
PROFILE profile;
profile.cbDataSize = (DWORD)(wcslen(szPath) + 1) * sizeof(WCHAR);
profile.dwType = PROFILE_FILENAME;
profile.pProfileData = (PVOID)szPath; HPROFILE hProfile = OpenColorProfile(&profile,
PROFILE_READ, FILE_SHARE_READ, OPEN_EXISTING); // now do something with the profile }
} LPWSTR buffer;
ENUMTYPEW pe = { 0 };
pe.dwSize = sizeof(pe);
pe.dwVersion = ENUM_TYPE_VERSION;
pe.dwFields = ET_DEVICENAME;
pe.dwDeviceClass = CLASS_MONITOR;
pe.pDeviceName = dd.DeviceKey;
DWORD p = 0;
DWORD size = 0;
BOOL ret = EnumColorProfilesW(NULL, &pe, NULL, &size, &p);
buffer = (LPWSTR)malloc(size);
ret = EnumColorProfilesW(NULL, &pe, (BYTE*)buffer, &size, &p);
LPWSTR temp = buffer;
for (int i = 0; i < p; i++)
{
wprintf(L"%s\n", temp);
printf("without null character: %zu\n", wcslen(temp));
temp += wcslen(temp) + 1;
} flag = WcsSetDefaultColorProfile(WCS_PROFILE_MANAGEMENT_SCOPE_CURRENT_USER,
dd.DeviceKey,
CPT_ICC,
CPST_PERCEPTUAL,
0, // dwProfileID -- doesn't seem to matter what value you use here
buffer); free(buffer);
return 1;
}

这是列举出本机上的所有icm配置文件

相关链接: https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/master/vendor/aftereffects/win/OpenColorIO_AE_Dialogs_Win.cpp#L348

随机推荐

  1. [转帖]分析redis 大key

    http://www.lishuai.fun/2023/05/05/redis-bigkey/#/%E5%AE%89%E8%A3%85 redis-rdb-tools 是一个 python 的解析 r ...

  2. [转帖]Jmeter性能测试:高并发分布式性能测试

    一.为什么要进行分布式性能测试 当进行高并发性能测试的时候,受限于Jmeter工具本身和电脑硬件的原因,无法满足我们对大并发性能测试的要求.基于这种场景下,我们就需要采用分布式的方式来实现我们高并发的 ...

  3. [转帖]Jmeter接口测试:参数化

    Jmeter接口请求中的参数经常需要通过参数进行赋值 引用形式:${} 变量时:${变量名} 函数时,${_函数名(参数1,参数2,参数3)} 值中"${n}"中,n为变量名:&q ...

  4. Python学习之十一_Windows获取硬件信息

    Python学习之十一_Windows获取硬件信息 简介 网上找了一些方法简单整理了下,可以快速获取部分信息 包含机器名称等. 以及序列号相关 部分学习来源: https://blog.51cto.c ...

  5. [转帖]gcc -O0 -O1 -O2 -O3 四级优化选项及每级分别做什么优化

    相关博客http://blog.chinaunix.net/uid-24954950-id-2956476.html 相关博客http://blog.csdn.net/misiter/article/ ...

  6. [转帖]一次fork引发的惨案!

    https://www.cnblogs.com/xuanyuan/p/15502289.html "你还有什么要说的吗?没有的话我就要动手了",kill程序最后问道. 这一次,我没 ...

  7. sed 删除部分行以及删除包含某些行的命令

    sed的简单学习 前言: 最近进行mysql数据库的备份恢复操作,发现source 命令执行时数据库表的速度非常缓慢, 本来想通过这种方式处理一下,能够减少数据备份的处理. 删除包含内容的信息 sed ...

  8. echarts中坐标与标签刻度对齐

    xAxis: { data: ["土地.房屋及建筑物", "遇用设备", "遇用设备", "裤子", "家具. ...

  9. 使用C#做为游戏开发的服务器语言方案

    Scut开源服务器 开源C#/Python/Lua 手游服务器 主页:http://www.scutgame.com/index.html 开源:https://github.com/ScutGame ...

  10. python2排序

    python list cmp排序 对于list的排序一般使用cmp 示例: sorted(xxlist, cmp=self.sortFunc) def sortFunc(self, a, b): r ...