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


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

Создает интерфейс IXpsOMLinearGradientBrush .

Синтаксис

HRESULT CreateLinearGradientBrush(
  [in]          IXpsOMGradientStop        *gradStop1,
  [in]          IXpsOMGradientStop        *gradStop2,
  [in]          const XPS_POINT           *startPoint,
  [in]          const XPS_POINT           *endPoint,
  [out, retval] IXpsOMLinearGradientBrush **linearGradientBrush
);

Параметры

[in] gradStop1

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

[in] gradStop2

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

[in] startPoint

Структура XPS_POINT , содержащая координаты начальной точки в двумерном пространстве.

[in] endPoint

Структура XPS_POINT , содержащая координаты конечной точки в двумерном пространстве.

[out, retval] linearGradientBrush

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

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

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

Код возврата Описание
S_OK
Метод выполнен успешно.
E_INVALIDARG
Недопустимая точка, указанная в параметрах startPoint или endPoint . Члены структуры XPS_POINT должны содержать допустимые и конечные значения с плавающей запятой.
E_POINTER
gradStop1, gradStop2, startPoint, figure или linearGradientBrush имеет значение NULL.
XPS_E_NO_CUSTOM_OBJECTS
gradStop1 или gradStop1 не указывают на реализацию распознанного интерфейса. Пользовательская реализация интерфейсов API документов XPS не поддерживается.

Комментарии

Область градиента линейного градиента — это область между начальной и конечной точками и с расширением в обоих направлениях под прямым углом к пути градиента. Область распространения — это область геометрии, которая находится за пределами области градиента.

Градиентные остановки определяют цвет в определенных местах вдоль пути градиента. На рисунке точка градиента 0, заданная параметром gradStop1 , находится в начальной точке пути градиента, а точка градиента 1, заданная параметром gradStop2 , находится в конечной точке.

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

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

IXpsOMLinearGradientBrush    *newInterface;
// The following values are defined outside of 
// this example.
//  IXpsOMGradientStop       *gradStop1, *gradStop2;
//  XPS_POINT                startPoint, endPoint;

// 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->CreateLinearGradientBrush (
        gradStop1,
        gradStop2,
        &startPoint,
        &endPoint,
        &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

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

IXpsOMGradientStop

IXpsOMLinearGradientBrush

IXpsOMObjectFactory

XPS

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

XPS_POINT