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


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

Создает дескриптор для указанного цветового профиля. Затем дескриптор можно использовать в других функциях управления профилями.

Синтаксис

HPROFILE OpenColorProfileW(
  PPROFILE pProfile,
  DWORD    dwDesiredAccess,
  DWORD    dwShareMode,
  DWORD    dwCreationMode
);

Параметры

pProfile

Указатель на структуру цветового профиля, задающую профиль. Указатель pProfile можно освободить сразу после создания дескриптора.

dwDesiredAccess

Указывает, как получить доступ к заданному профилю. Этот параметр должен принимать одно из следующих значений констант.

Значение Значение
PROFILE_READ
Открывает профиль для доступа на чтение.
PROFILE_READWRITE
Открывает профиль для доступа как для чтения, так и для записи. Не влияет на xml-профили WCS.

dwShareMode

Указывает способ совместного использования профиля, если профиль содержится в файле. Нулевое значение запрещает общий доступ к профилю. Параметр может содержать одну или обе из следующих констант (в сочетании с добавлением или логическим ИЛИ).

Значение Значение
FILE_SHARE_READ
Другие открытые операции можно выполнять в профиле для доступа на чтение.
FILE_SHARE_WRITE
Другие открытые операции можно выполнять с профилем для доступа на запись. Не влияет на xml-профили WCS.

dwCreationMode

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

Значение Значение
CREATE_NEW
Создает новый профиль. Сбой, если профиль уже существует.
CREATE_ALWAYS
Создает новый профиль. Перезаписывает профиль, если он существует.
OPEN_EXISTING
Открывает профиль. Сбой, если он не существует
OPEN_ALWAYS
Открывает профиль, если он существует. Для профилей ICC, если профиль не существует, создает профиль. Для xml-профилей WCS, если профиль не существует, возвращает ошибку.
TRUNCATE_EXISTING
Открывает профиль и усекает его до нуля байтов, возвращая пустой профиль ICC. Сбой, если профиль не существует.

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

Если эта функция выполняется успешно, возвращаемое значение — это дескриптор открытого цветового профиля. Для профилей ICC и WCS функция CAMP и GMMP предоставляется функцией на основе текущих стандартных CAMP и GMMP в реестре.

Если OpenColorProfile обнаруживает профиль ICC со встроенным профилем WCS и если член dwType в структуре Profile не принимает значение DONT_USE_EMBEDDED_WCS_PROFILES, он должен извлечь и использовать профили WCS, содержащиеся в этом wcsProfilesTag. Возвращенный HPROFILE будет HPROFILE WCS.

Если эта функция завершается сбоем, возвращается значение NULL. Для получения дополнительных сведений об ошибке вызовите Метод GetLastError.

Комментарии

Если данные профиля не указаны с помощью имени файла, dwShareMode и dwCreationMode игнорируются.

Флаги dwCreationMode CREATE_NEW, CREATE_ALWAYS и TRUNCATE_EXISTING всегда возвращают пустые значения ICC HPROFILEs. Если присутствуют другие флаги dwCreationMode , вызывается InternalOpenColorProfile (с помощью флагов, предоставленных API), чтобы определить, является ли профиль XML-файлом ICC или WCS.

В пути к коду ICC HPROFILE возвращается с использованием запрошенных флагов общего доступа, доступа и создания, как указано в таблицах выше.

В пути WCS флаг dwCreationMode OPEN_ALWAYS завершится ошибкой, если профиль не существует, так как профили WCS не могут быть созданы или изменены в архитектуре WCS (они должны быть изменены за ее пределами с помощью MSXML6). По этой же причине флаг dwShareMode FILE_SHARE_WRITE и флаг dwDesiredAccess PROFILE_READWRITE игнорируются в пути WCS.

Когда функция открывает профиль ICC, она будет искать WcsProfilesTag и при его наличии извлекать и использовать исходные профили WCS, содержащиеся в нем. (См . WcsCreateIccProfile.)

HPROFILE с данными профиля WCS извлекается из DMP путем получения по умолчанию CAMP и GMMP по умолчанию из реестра. HPROFILE — это композиция DMP, CAMP и GMMP.

После создания дескриптора цветового профиля все сведения, используемые для создания этого дескриптора, можно удалить.

Используйте функцию CloseColorProfile , чтобы закрыть дескриптор объекта, возвращаемый OpenColorProfile.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Верхняя часть icm.h
Библиотека Mscms.lib
DLL Mscms.dll

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