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


Метод IViewObject::GetColorSet (oleidl.h)

Возвращает логическую палитру, которую объект будет использовать для рисования в методе IViewObject::D raw с соответствующими параметрами.

Синтаксис

HRESULT GetColorSet(
  [in]  DWORD          dwDrawAspect,
  [in]  LONG           lindex,
  [in]  void           *pvAspect,
  [in]  DVTARGETDEVICE *ptd,
  [in]  HDC            hicTargetDev,
  [out] LOGPALETTE     **ppColorSet
);

Параметры

[in] dwDrawAspect

Указывает способ представления объекта. К представлениям относятся содержимое, значок, эскиз или печатный документ. Допустимые значения берутся из перечисления DVASPECT. Дополнительные сведения см. в перечислении DVASPECT .

[in] lindex

Часть объекта, требуемая для операции рисования. Его интерпретация зависит от dwDrawAspect. Дополнительные сведения см. в перечислении DVASPECT .

[in] pvAspect

Указатель на дополнительные сведения о представлении объекта, указанного в dwDrawAspect. Так как ни один из текущих аспектов не поддерживает дополнительные сведения, pvAspect всегда должен иметь значение NULL.

[in] ptd

Указатель на структуру DVTARGETDEVICE , которая описывает устройство, для которого должен быть отрисован объект. Если значение РАВНО NULL, представление должно быть отрисовывается для целевого устройства по умолчанию (обычно это дисплей). Значение, отличное от NULL , интерпретируется в сочетании с hicTargetDev и hdcDraw. Например, если hdcDraw указывает принтер в качестве контекста устройства, ptd указывает на структуру, описывающую это устройство принтера. Данные могут быть напечатаны, если hicTargetDev является допустимым значением, или они могут отображаться в режиме предварительного просмотра, если hicTargetDev имеет значение NULL.

[in] hicTargetDev

Контекст сведений для целевого устройства, указанный параметром ptd , из которого объект может извлекать метрики устройства и тестировать возможности устройства. Если ptd имеет значение NULL, объект должен игнорировать параметр hicTargetDev .

[out] ppColorSet

Адрес переменной указателя LOGPALETTE, которая получает указатель на структуру LOGPALETTE. Структура LOGPALETTE содержит набор цветов, которые будут использоваться при вызове IViewObject::D raw с теми же параметрами для dwAspect, lindex, pvAspect, ptd и hicTargetDev. Если параметр ppColorSet имеет значение NULL, объект не использует палитру.

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

Этот метод возвращает значение S_OK при успешном завершении. Другие возможные возвращаемые значения включают следующее.

Код возврата Описание
S_FALSE
Набор цветов пуст, или объект не выдаст информацию.
OLE_E_BLANK
Нет данных представления для объекта.
DV_E_LINDEX
Недопустимое значение для lindex; В настоящее время поддерживается только -1.
DV_E_DVASPECT
Недопустимое значение для dwAspect.
E_INVALIDARG
Одно или несколько указанных значений параметра являются недопустимыми.
E_OUTOFMEMORY
Недостаточно доступной памяти для этой операции.

Комментарии

Метод IViewObject::GetColorSet рекурсивно запрашивает все вложенные объекты и возвращает набор цветов, представляющий объединение всех запрошенных цветов. Набор цветов в конечном итоге перекачивания в контейнер верхнего уровня, которому принадлежит рамка окна. Этот контейнер может вызывать IViewObject::GetColorSet для каждого внедренного объекта, чтобы получить все цвета, необходимые для рисования внедренных объектов. Контейнер может использовать наборы цветов, полученные в сочетании с другими цветами, которые необходимы ему для настройки общей цветовой палитры.

Предоставленная OLE реализация IViewObject::GetColorSet просматривает данные, которые у него есть для рисования рисунка. Если CF_DIB является форматом рисования, используется палитра, найденная в растровом рисунке. Для обычного растрового изображения сведения о цвете не возвращаются. Если формат рисования является метафайлом, обработчик объектов перечисляет метафайл в поисках записи метафайла CreatePalette. Если он найден, обработчик использует его в качестве набора цветов.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header oleidl.h

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

DVASPECT

IViewObject