Compartir a través de


Método IXpsOMObjectFactory::CreateRadialGradientBrush (xpsobjectmodel.h)

Crea una interfaz IXpsOMRadialGradientBrush .

Sintaxis

HRESULT CreateRadialGradientBrush(
  [in]          IXpsOMGradientStop        *gradStop1,
  [in]          IXpsOMGradientStop        *gradStop2,
  [in]          const XPS_POINT           *centerPoint,
  [in]          const XPS_POINT           *gradientOrigin,
  [in]          const XPS_SIZE            *radiiSizes,
  [out, retval] IXpsOMRadialGradientBrush **radialGradientBrush
);

Parámetros

[in] gradStop1

Interfaz IXpsOMGradientStop que especifica las propiedades del degradado en el origen del degradado. Este parámetro no debe ser NULL.

[in] gradStop2

Interfaz IXpsOMGradientStop que especifica las propiedades del degradado al final del vector del degradado, que es la elipse que incluye la región de degradado. Este parámetro no debe ser NULL.

[in] centerPoint

Coordenadas del punto central de la elipse de degradado radial.

[in] gradientOrigin

Coordenadas del origen del degradado radial.

[in] radiiSizes

Estructura XPS_SIZE cuyos miembros especifican las longitudes de los radios de la región degradada.

El tamaño se describe en unidades XPS. Hay 96 unidades XPS por pulgada. Por ejemplo, un radio de 1" es de 96 unidades XPS.

XPS_SIZE Miembro Significado
width Longitud del radio a lo largo del eje X.
height Longitud del radio a lo largo del eje Y.

[out, retval] radialGradientBrush

Puntero a la nueva interfaz IXpsOMRadialGradientBrush .

Valor devuelto

El método devuelve un valor HRESULT. Entre los valores posibles se incluyen, entre otros, los de la tabla siguiente. Para obtener información sobre los valores devueltos de la API de documentos XPS que no aparecen en esta tabla, vea Errores del documento XPS.

Código devuelto Descripción
S_OK
El método se ha llevado a cabo de forma correcta.
E_INVALIDARG
El punto descrito por centerPoint, radiiSizes o gradientOrigin no es válido. Los miembros de la estructura XPS_POINT deben contener valores de punto flotante válidos y finitos.
E_POINTER
gradStop1, gradStop2, centerPoint, gradientOrigin, radiiSizes o radialGradientBrush es NULL.
XPS_E_NO_CUSTOM_OBJECTS
gradStop1 o gradStop1 no apunta a una implementación de interfaz reconocida. No se admite la implementación personalizada de interfaces de LA API de documentos XPS.

Comentarios

Como se muestra en la ilustración siguiente, la región de degradado de un degradado radial es el área entre la elipse descrita por el punto central y los radios x e y que se extienden desde el punto central. El área de propagación es el área fuera de esa elipse. La ruta de degradado (no se muestra) es una línea radial que se dibuja entre el origen del degradado y la elipse que enlaza la región de degradado.

Ilustración que muestra los términos usados en un degradado radial Para los pinceles de degradado radial, el delimitador de degradado establecido por el parámetro gradStop1 corresponde a la ubicación de origen del degradado y un valor de desplazamiento de 0,0. La parada de degradado establecida por el parámetro gradStop2 corresponde a la circunferencia de la región de degradado y un valor de desplazamiento de 1,0. Para obtener más información sobre las paradas de degradado, vea IXpsOMGradientStop.

En el ejemplo de código siguiente se muestra cómo se usa este método para crear una nueva interfaz.


IXpsOMRadialGradientBrush    *newInterface;
// The following values are defined outside of 
// this example.
//  IXpsOMGradientStop       *gradStop1, *gradStop2;
//  XPS_POINT                centerPoint, gradientOrigin;
//  XPS_SIZE                 radiiSizes;

// 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->CreateRadialGradientBrush (
        gradStop1,
        gradStop2,
        &centerPoint,
        &gradientOrigin,
        &radiiSizes,
        &newInterface);

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

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

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7, Windows Vista con SP2 y Platform Update para Windows Vista [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 R2, Windows Server 2008 con SP2 y Actualización de plataforma para Windows Server 2008 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado xpsobjectmodel.h

Consulte también

IXpsOMGradientStop

IXpsOMObjectFactory

IXpsOMRadialGradientBrush

XML Paper Specification

Errores del documento XPS

XPS_POINT

XPS_SIZE