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

返回代码 说明
S_OK
方法成功。
E_INVALIDARG
偏移量中的值无效。
E_POINTER
colorgradientStopNULL
XPS_E_MISSING_COLORPROFILE
colorProfileNULL ,但需要颜色配置文件。 当颜色类型 为XPS_COLOR_TYPE_CONTEXT时,需要颜色配置文件。
XPS_E_NO_CUSTOM_OBJECTS
colorProfile 不指向已识别的接口实现。 不支持 XPS 文档 API 接口的自定义实现。
XPS_E_UNEXPECTED_COLORPROFILE
colorProfile 包含颜色配置文件,但不需要一个。 仅当颜色类型为 XPS_COLOR_TYPE_CONTEXT时,才允许使用颜色配置文件。

注解

渐变停点用于定义特定位置的颜色;颜色在渐变停止点之间内插。 偏移量(由 偏移量指定)是渐变起点和终点之间的相对位置。 线性渐变起点或径向渐变原点的偏移量为 0.0。 线性渐变的终点或径向渐变的边界椭圆的偏移量为 1.0。 可以为这些点之间的任何偏移量指定渐变停止点,包括起点和终点。 下图显示了线性渐变的渐变路径和渐变停止点。

显示线性渐变中使用的术语的图 下图显示了径向渐变的渐变停止点。 在此示例中,径向渐变区域是外椭圆包围的区域, XPS_SPREAD_METHOD_REFLECT 分布方法用于填充渐变区域外部的空间。 显示径向渐变中使用的术语的图IXpsOMGradientStop 接口指定渐变中的一个且唯一的一个停止点。

XML 纸张规范中介绍了用于呈现渐变的计算。

下面的代码示例演示了如何使用此方法创建新接口。


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

另请参阅

IXpsOMColorProfileResource

IXpsOMGradientStop

IXpsOMObjectFactory

XML 纸张规范

XPS 文档错误

XPS_COLOR