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


Метод IXpsOMObjectFactory::CreateGradientStop (xpsobjectmodel.h)

Создает интерфейс IXpsOMGradientStop для представления одного определения цвета и расположения в градиенте.

Синтаксис

HRESULT CreateGradientStop(
  [in]          const XPS_COLOR            *color,
  [in]          IXpsOMColorProfileResource *colorProfile,
  [in]          FLOAT                      offset,
  [out, retval] IXpsOMGradientStop         **gradientStop
);

Параметры

[in] color

Значение цвета.

[in] colorProfile

Указатель на интерфейс IXpsOMColorProfileResource , содержащий используемый цветовой профиль. Если тип цвета не XPS_COLOR_TYPE_CONTEXT, этот параметр должен иметь значение NULL.

[in] offset

Значение смещения.

Допустимый диапазон: 0,0–1,0

[out, retval] gradientStop

Указатель на новый интерфейс IXpsOMGradientStop .

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

Метод возвращает HRESULT. Возможные значения включают, помимо прочего, значения в следующей таблице. Сведения о возвращаемых значениях API документов XPS, не перечисленных в этой таблице, см. в разделе Ошибки документа XPS.

Код возврата Описание
S_OK
Метод выполнен успешно.
E_INVALIDARG
Недопустимое значение смещения .
E_POINTER
color или gradientStop имеет значение NULL.
XPS_E_MISSING_COLORPROFILE
colorProfile имеет значение NULL , но ожидается цветовой профиль. Если тип цвета XPS_COLOR_TYPE_CONTEXT, требуется цветовой профиль.
XPS_E_NO_CUSTOM_OBJECTS
colorProfile не указывает на реализацию распознанного интерфейса. Пользовательская реализация интерфейсов API документов XPS не поддерживается.
XPS_E_UNEXPECTED_COLORPROFILE
colorProfile содержит цветовой профиль, но он не ожидается. Цветовой профиль разрешен только в том случае, если тип цвета XPS_COLOR_TYPE_CONTEXT.

Комментарии

Остановки градиента используются для определения цвета в определенном расположении; цвет интерполируется между остановками градиента. Смещение, заданное с помощью смещения, является относительным положением между начальной и конечной точками градиента. Смещение в начальной точке линейного градиента или начала радиального градиента равно 0,0. Смещение конечной точки линейного градиента или ограничивающего эллипса радиального градиента равно 1,0. Градиентные остановки можно указать для любого смещения между этими точками, включая начальную и конечную точки. На следующем рисунке показан путь градиента и градиентные остановки линейного градиента.

Рисунок, показывающий термины, используемые в линейном градиенте На следующем рисунке показаны остановки градиента радиального градиента. В этом примере радиальная область градиента — это область, заключенная в внешний эллипс, а метод XPS_SPREAD_METHOD_REFLECT распределения используется для заполнения пространства за пределами области градиента. Рисунок, показывающий термины, используемые в радиальном градиенте Интерфейс IXpsOMGradientStop указывает одну и только одну остановку в градиенте.

Вычисления, используемые для отрисовки градиента, описаны в спецификации xml paper.

В следующем примере кода показано, как этот метод используется для создания нового интерфейса.


IXpsOMGradientStop    *newInterface;
// The following values are defined outside of 
// this example.
//  XPS_COLOR                    color;
//  IXpsOMColorProfileResource    *colorProfile;
//  FLOAT                        offset;

// Note the implicit requirement that CoInitializeEx 
//  has previously been called from this thread.

hr = CoCreateInstance(
    __uuidof(XpsOMObjectFactory),
    NULL,
    CLSCTX_INPROC_SERVER,
    _uuidof(IXpsOMObjectFactory),
    reinterpret_cast<LPVOID*>(&xpsFactory)
    );

if (SUCCEEDED(hr))
{
    hr = xpsFactory->CreateGradientStop (
        &color,
        colorProfile,
        offset,
        &newInterface);

    if (SUCCEEDED(hr))
    {
        // use newInterface

        newInterface->Release();
    }
    xpsFactory->Release();
}
else
{
    // evaluate HRESULT error returned in hr
}

Требования

   
Минимальная версия клиента Windows 7, Windows Vista с пакетом обновления 2 (SP2) и обновление платформы для Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 R2, Windows Server 2008 с пакетом обновления 2 (SP2) и Обновление платформы для Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header xpsobjectmodel.h

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

IXpsOMColorProfileResource

IXpsOMGradientStop

IXpsOMObjectFactory

XPS

Ошибки документа XPS

XPS_COLOR