Compartilhar via


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

Cria uma interface IXpsOMRadialGradientBrush .

Sintaxe

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

A interface IXpsOMGradientStop que especifica as propriedades do gradiente na origem do gradiente. Esse parâmetro não deve ser NULL.

[in] gradStop2

A interface IXpsOMGradientStop que especifica as propriedades do gradiente no final do vetor do gradiente, que é a elipse que inclui a região do gradiente. Esse parâmetro não deve ser NULL.

[in] centerPoint

As coordenadas do ponto central da elipse de gradiente radial.

[in] gradientOrigin

As coordenadas da origem do gradiente radial.

[in] radiiSizes

O XPS_SIZE estrutura cujos membros especificam os comprimentos dos raios da região do gradiente.

O tamanho é descrito em unidades XPS. Há 96 unidades XPS por polegada. Por exemplo, um raio de 1" é de 96 unidades XPS.

XPS_SIZE Membro Significado
width Comprimento do raio ao longo do eixo x.
altura Comprimento do raio ao longo do eixo y.

[out, retval] radialGradientBrush

Um ponteiro para a nova interface IXpsOMRadialGradientBrush .

Retornar valor

O método retorna um HRESULT. Os valores possíveis incluem, mas não se limitam, aqueles na tabela a seguir. Para obter informações sobre valores retornados da API de documento XPS que não estão listados nesta tabela, consulte Erros de documento XPS.

Código de retorno Descrição
S_OK
O método foi bem-sucedido.
E_INVALIDARG
O ponto descrito por centerPoint, radiiSizes ou gradientOrigin não é válido. Os membros da estrutura XPS_POINT devem conter valores de ponto flutuante válidos e finitos.
E_POINTER
gradStop1, gradStop2, centerPoint, gradientOrigin, radiiSizes ou radialGradientBrush é NULL.
XPS_E_NO_CUSTOM_OBJECTS
gradStop1 ou gradStop1 não aponta para uma implementação de interface reconhecida. Não há suporte para a implementação personalizada de interfaces da API de Documento XPS.

Comentários

Conforme mostrado na ilustração a seguir, a região de gradiente de um gradiente radial é a área delimitada pela elipse descrita pelo ponto central e pelos raios x e y que se estendem do ponto central. A área de propagação é a área fora dessa elipse. O caminho do gradiente (não mostrado) é uma linha radial desenhada entre a origem do gradiente e a elipse que associa a região do gradiente.

Uma figura que mostra os termos usados em um gradiente radial Para pincéis radiais-gradientes, a parada de gradiente definida pelo parâmetro gradStop1 corresponde ao local de origem do gradiente e um valor de deslocamento de 0,0. A parada de gradiente definida pelo parâmetro gradStop2 corresponde à circunferência da região do gradiente e a um valor de deslocamento de 1,0. Para obter mais informações sobre paradas de gradiente, consulte IXpsOMGradientStop.

O exemplo de código a seguir ilustra como esse método é usado para criar uma nova interface.


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 Valor
Cliente mínimo com suporte Windows 7, Windows Vista com SP2 e Atualização de Plataforma para Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 R2, Windows Server 2008 com SP2 e Platform Update para Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho xpsobjectmodel.h

Confira também

IXpsOMGradientStop

IXpsOMObjectFactory

IXpsOMRadialGradientBrush

Especificação de Papel XML

Erros de documento XPS

XPS_POINT

XPS_SIZE