Функция EnumColorProfilesW (icm.h)
Перечисляет все профили, удовлетворяющие заданным критериям перечисления.
Синтаксис
BOOL EnumColorProfilesW(
PCWSTR pMachineName,
PENUMTYPEW pEnumRecord,
PBYTE pEnumerationBuffer,
PDWORD pdwSizeOfEnumerationBuffer,
PDWORD pnProfiles
);
Параметры
pMachineName
Зарезервировано. Должно иметь значение NULL. Этот параметр предназначен для указания имени компьютера, на котором выполняется перечисление профилей. Указатель NULL указывает на локальный компьютер.
pEnumRecord
Указатель на структуру, указывающую критерии перечисления.
pEnumerationBuffer
Указатель на буфер, в котором должны быть перечислены профили. В этот буфер будет помещена строка MULTI_SZ имен профилей, удовлетворяющая условиям, указанным в *pEnumRecord .
pdwSizeOfEnumerationBuffer
Указатель на переменную, содержащую размер буфера, на который указывает pBuffer. При возврате *pdwSize содержит фактически использованный или необходимый размер буфера.
pnProfiles
Указатель на переменную, которая будет содержать при возврате количество имен профилей, фактически скопированных в буфер.
Возвращаемое значение
Если эта функция завершается успешно, возвращается значение TRUE.
Если эта функция завершается сбоем, возвращается значение FALSE. Для получения дополнительных сведений об ошибке вызовите Метод GetLastError.
Комментарии
Несколько профилей обычно связаны с принтерами на основе типов бумаги и рукописного ввода. Для каждого устройства имеется профиль по умолчанию. Для профилей Международного консорциума цветов (ICC) GDI выбирает лучший из профилей, связанных с ICC, когда приложение создает контекст устройства (DC).
Не пытайтесь использовать EnumColorProfiles для определения профиля по умолчанию для устройства. Вместо этого создайте контекст устройства, а затем вызовите функцию GetICMProfile . В Windows Vista и Windows 7 функция WcsGetDefaultColorProfile также может использоваться для определения цветового профиля устройства по умолчанию.
Если элементу dwFields структуры типа ENUMTYPE , на которую указывает параметр pEnumRecord , задано значение ET_DEVICENAME, эта функция перечисляет все цветовые профили, связанные со всеми типами устройств, подключенных к компьютеру пользователя, независимо от класса устройства. Если элементу dwFields структуры, на которую указывает параметр pEnumRecord , задано значение ET_DEVICENAME или ET_DEVICECLASS а в элементе dwDeviceClass структуры указан класс устройства, эта функция будет перечислять только профили, связанные с указанным классом устройства. Если для элемента dwFields задано только значение ET_DEVICECLASS, функция EnumColorProfiles перечисляет все профили, которые могут быть связаны с этим типом устройства.
Каждый раз, когда EnumColorProfiles проверяет профили, связанные с определенным устройством, результаты зависят от того, выбрал ли пользователь использовать системный список профилей, связанных с этим устройством, или его собственный список ("на пользователя"). Вызов WcsSetUsePerUserProfiles с параметром usePerUserProfiles , установленным в true , приводит к тому, что будущие вызовы EnumColorProfiles будут просматривать только список сопоставлений профилей текущего пользователя для указанного устройства. Вызов WcsSetUsePerUserProfiles с параметром usePerUserProfiles , установленным в false , приводит к тому, что будущие вызовы EnumColorProfiles будут искать общесистемный список сопоставлений профилей для указанного устройства. Если wcsSetUsePerUserProfiles никогда не вызывался для текущего пользователя, EnumColorProfiles проверяет общесистемный список.
Приложение может использовать EnumColorProfiles для получения размера буфера, в котором перечисляются профили. Он должен вызывать функцию EnumColorProfiles с параметром pBuffer , имеющим значение NULL. При возврате функции параметр pdwSize будет содержать требуемый размер буфера в байтах. Программа может использовать эти сведения для выделения буфера перечисления. Затем он может снова вызвать EnumColorProfiles с параметром pBuffer , равным адресу буфера.
Эта функция предоставляет сведения для преобразования сведений о DMP, относящихся к WCS, в устаревшую запись EnumType при включении перечисления согласованного профиля. Значения по умолчанию будут теми же, что и ICC, если эти сведения отсутствуют.
Поддержка для отдельных пользователей и LUA
Перечисление предназначено для текущего пользователя. Учитываются связи как системных, так и текущих пользовательских устройств. Для конфигурации профиля по умолчанию текущие параметры пользователя переопределяют параметры всей системы.
Требования
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Верхняя часть | icm.h |