Compartilhar via


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

Cria uma interface IXpsOMGradientStop para representar uma única definição de cor e local em um gradiente.

Sintaxe

HRESULT CreateGradientStop(
  [in]          const XPS_COLOR            *color,
  [in]          IXpsOMColorProfileResource *colorProfile,
  [in]          FLOAT                      offset,
  [out, retval] IXpsOMGradientStop         **gradientStop
);

Parâmetros

[in] color

O valor da cor.

[in] colorProfile

Um ponteiro para a interface IXpsOMColorProfileResource que contém o perfil de cor a ser usado. Se o tipo de cor não for XPS_COLOR_TYPE_CONTEXT, esse parâmetro deverá ser NULL.

[in] offset

O valor de deslocamento.

Intervalo válido: 0.0–1.0

[out, retval] gradientStop

Um ponteiro para a nova interface IXpsOMGradientStop .

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 valor em offset não é válido.
E_POINTER
color ou gradientStop é NULL.
XPS_E_MISSING_COLORPROFILE
colorProfile é NULL , mas um perfil de cor é esperado. Um perfil de cor é necessário quando o tipo de cor é XPS_COLOR_TYPE_CONTEXT.
XPS_E_NO_CUSTOM_OBJECTS
colorProfile 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.
XPS_E_UNEXPECTED_COLORPROFILE
colorProfile contém um perfil de cor, mas um não é esperado. Um perfil de cor só é permitido quando o tipo de cor é XPS_COLOR_TYPE_CONTEXT.

Comentários

As paradas de gradiente são usadas para definir a cor em um local específico; a cor é interpolada entre as paradas de gradiente. O deslocamento, que é especificado por deslocamento, é uma posição relativa entre os pontos inicial e final do gradiente. O deslocamento no ponto inicial de um gradiente linear ou a origem de um gradiente radial é 0,0. O deslocamento do ponto final de um gradiente linear ou da elipse delimitada de um gradiente radial é 1,0. As paradas de gradiente podem ser especificadas para qualquer deslocamento entre esses pontos, incluindo os pontos inicial e final. A ilustração a seguir mostra o caminho do gradiente e as paradas de gradiente de um gradiente linear.

Uma figura que mostra os termos usados em um gradiente linear A ilustração a seguir mostra as paradas de gradiente de um gradiente radial. Neste exemplo, a região do gradiente radial é a área delimitada pela elipse externa e o método XPS_SPREAD_METHOD_REFLECT spread é usado para preencher o espaço fora da região do gradiente. Uma figura que mostra os termos usados em um gradiente radial A interface IXpsOMGradientStop especifica uma e apenas uma parada em um gradiente.

Os cálculos usados para renderizar um gradiente são descritos na Especificação de Papel XML.

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


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
}

Requisitos

   
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

IXpsOMColorProfileResource

IXpsOMGradientStop

IXpsOMObjectFactory

Especificação de Papel XML

Erros de documento XPS

XPS_COLOR