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


Функция GetICMProfileA (wingdi.h)

Функция GetICMProfile извлекает имя файла текущего профиля цвета вывода для указанного контекста устройства.

Синтаксис

BOOL GetICMProfileA(
  HDC     hdc,
  LPDWORD pBufSize,
  LPSTR   pszFilename
);

Параметры

hdc

Указывает контекст устройства, из которого извлекается профиль цвета.

pBufSize

Указатель на DWORD, содержащий размер буфера, на который указывает lpszFilename. Для версии ANSI этой функции размер составляет байты. Для версии Юникода размер находится в WCHARs. Если эта функция выполнена успешно, при возврате этот параметр содержит размер буфера, который фактически использовался. Однако если буфер недостаточно велик, эта функция возвращает FALSE. В этом случае функция GetLastError() возвращает ERROR_INSUFFICIENT_BUFFER, а DWORD, на который указывает этот параметр, содержит размер, необходимый для буфера lpszFilename.

pszFilename

Указывает на буфер, получающий имя пути профиля.

Возвращаемое значение

Если эта функция выполнена успешно, возвращаемое значение TRUE. Он также возвращает значение TRUE, если параметр lpszFilename null и размер буфера копируется в lpcbName.

Если эта функция завершается ошибкой, возвращаемое значение FALSE.

Замечания

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

Учитывая контекст устройства, GetICMProfile выводится через параметр lpszFilename, имя пути файла, содержащего профиль цвета, используемый контекстом устройства. Кроме того, он выводится через параметр lpcbName, длину строки, содержащей имя пути.

Возможно, имя профиля, возвращаемое GetICMProfile, не будет в списке профилей, возвращаемых EnumICMProfiles. Функция EnumICMProfiles возвращает все профили цветового пространства, связанные с контекстом устройства (DC), параметры которого соответствуют параметрам контроллера домена. Если функция SetICMProfile используется для задания текущего профиля, профиль может быть связан с контроллером домена, который не соответствует его параметрам. Например, функцию SetICMProfile можно использовать для связывания профиля SRGB независимо от устройства с контроллером домена. Этот профиль будет использоваться в качестве текущего профиля WCS для этого контроллера домена, а вызовы GetICMProfile возвращают имя файла. Однако профиль не будет отображаться в списке профилей, возвращаемых из EnumICMProfiles.

Если эта функция вызывается перед вызовами функции SetICMProfile, ее можно использовать для получения профиля по умолчанию для контекста устройства.

Windows 95/98/Me: GetICMProfileW поддерживается Microsoft Layer для Юникода. Для этого необходимо добавить в приложение определенные файлы, как описано в Microsoft Layer для Юникода в Windows 95/98/Me Systems.

Заметка

Заголовок wingdi.h определяет GetICMProfile как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка wingdi.h
библиотеки Gdi32.lib
DLL Gdi32.dll

См. также