Поделиться через


Функция EnumColorProfilesA (icm.h)

Перечисляет все профили, удовлетворяющие заданным критериям перечисления.

Синтаксис

BOOL EnumColorProfilesA(
  PCSTR      pMachineName,
  PENUMTYPEA 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

См. также раздел