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 |
---|---|
|
O método foi bem-sucedido. |
|
O valor em offset não é válido. |
|
color ou gradientStop é NULL. |
|
colorProfile é NULL , mas um perfil de cor é esperado. Um perfil de cor é necessário quando o tipo de cor é XPS_COLOR_TYPE_CONTEXT. |
|
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. |
|
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.
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. 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 |