Compartilhar via


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

Cria uma interface IXpsOMLinearGradientBrush .

Sintaxe

HRESULT CreateLinearGradientBrush(
  [in]          IXpsOMGradientStop        *gradStop1,
  [in]          IXpsOMGradientStop        *gradStop2,
  [in]          const XPS_POINT           *startPoint,
  [in]          const XPS_POINT           *endPoint,
  [out, retval] IXpsOMLinearGradientBrush **linearGradientBrush
);

Parâmetros

[in] gradStop1

A interface IXpsOMGradientStop que especifica as propriedades de gradiente no início do vetor do gradiente. Esse parâmetro não deve ser NULL.

[in] gradStop2

A interface IXpsOMGradientStop que especifica as propriedades de gradiente no final do vetor do gradiente. Esse parâmetro não deve ser NULL.

[in] startPoint

A estrutura XPS_POINT que contém as coordenadas do ponto inicial no espaço bidimensional.

[in] endPoint

A estrutura XPS_POINT que contém as coordenadas do ponto de extremidade no espaço bidimensional.

[out, retval] linearGradientBrush

Um ponteiro para a nova interface IXpsOMLinearGradientBrush .

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 especificado por startPoint ou endPoint não era válido. Os membros da estrutura XPS_POINT devem conter valores de ponto flutuante válidos e finitos.
E_POINTER
gradStop1, gradStop2, startPoint, figure ou linearGradientBrush é 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

A região de gradiente de um gradiente linear é a área entre e incluindo os pontos inicial e final e estendendo-se em ambas as direções em um ângulo reto para o caminho do gradiente. A área de propagação é a área da geometria que fica fora da região do gradiente.

As paradas de gradiente definem a cor em locais específicos ao longo do caminho do gradiente. Na ilustração, a parada de gradiente 0, especificada pelo parâmetro gradStop1 , está localizada no ponto inicial do caminho do gradiente e a parada de gradiente 1, especificada pelo parâmetro gradStop2 , está no ponto final.

Conforme mostrado na ilustração a seguir, os pontos inicial e final de um gradiente linear também são os pontos inicial e final do caminho de gradiente, que é a linha reta que conecta esses pontos.

Uma figura que mostra os termos usados em um gradiente linear O exemplo de código a seguir ilustra como esse método é usado para criar uma nova interface.

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
}

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

IXpsOMLinearGradientBrush

IXpsOMObjectFactory

Especificação de Papel XML

Erros de documento XPS

XPS_POINT