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。 可能的值包括但不限于后面的表中的值。 有关此表中未列出的 XPS 文档 API 返回值的信息,请参阅 XPS 文档错误

返回代码 说明
S_OK
方法成功。
E_INVALIDARG
由 startPointendPoint 指定的点无效。 XPS_POINT结构的成员必须包含有效和有限的浮点值。
E_POINTER
gradStop1gradStop2startPointfigurelinearGradientBrushNULL
XPS_E_NO_CUSTOM_OBJECTS
gradStop1gradStop1 不指向已识别的接口实现。 不支持 XPS 文档 API 接口的自定义实现。

注解

线性渐变的渐变区域是介于 和 之间的区域,包括起点和终点,并在两个方向上以与渐变路径的直角延伸。 分布区域是位于渐变区域外部的几何图形区域。

渐变停止定义渐变路径上特定位置的颜色。 在图中,由 gradStop1 参数指定的渐变停止点 0 位于渐变路径的起点, gradStop2 参数指定的渐变停止点 1 位于终点。

如下图所示,线性渐变的起点和终点也是渐变路径的起点和终点,渐变路径是连接这些点的直线。

显示线性渐变中使用的术语的图 下面的代码示例演示了如何使用此方法创建新接口。

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、带 SP2 的 Windows Vista 和适用于 Windows Vista 的平台更新 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 R2、Windows Server 2008 SP2 和适用于 Windows Server 2008 的平台更新 [桌面应用 |UWP 应用]
目标平台 Windows
标头 xpsobjectmodel.h

另请参阅

IXpsOMGradientStop

IXpsOMLinearGradientBrush

IXpsOMObjectFactory

XML 纸张规范

XPS 文档错误

XPS_POINT