Метод 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.
Код возврата | Описание |
---|---|
|
Метод выполнен успешно. |
|
Недопустимая точка, указанная в параметрах startPoint или endPoint . Члены структуры XPS_POINT должны содержать допустимые и конечные значения с плавающей запятой. |
|
gradStop1, gradStop2, startPoint, figure или linearGradientBrush имеет значение NULL. |
|
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 |