Partager via


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

Crée une interface IXpsOMGradientStop pour représenter une définition de couleur et d’emplacement unique dans un dégradé.

Syntaxe

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

Paramètres

[in] color

Valeur de la couleur.

[in] colorProfile

Pointeur vers l’interface IXpsOMColorProfileResource qui contient le profil de couleur à utiliser. Si le type de couleur n’est pas XPS_COLOR_TYPE_CONTEXT, ce paramètre doit être NULL.

[in] offset

Valeur de décalage.

Plage valide : 0.0–1.0

[out, retval] gradientStop

Pointeur vers la nouvelle interface IXpsOMGradientStop .

Valeur retournée

Cette méthode retourne un code HRESULT. Les valeurs possibles incluent, sans s’y limiter, celles du tableau qui suit. Pour plus d’informations sur les valeurs de retour de l’API de document XPS qui ne sont pas répertoriées dans ce tableau, consultez Erreurs de document XPS.

Code de retour Description
S_OK
S_OK
E_INVALIDARG
La valeur en offset n’est pas valide.
E_POINTER
color ou gradientStop a la valeur NULL.
XPS_E_MISSING_COLORPROFILE
colorProfile a la valeur NULL , mais un profil de couleur est attendu. Un profil de couleur est requis lorsque le type de couleur est XPS_COLOR_TYPE_CONTEXT.
XPS_E_NO_CUSTOM_OBJECTS
colorProfile ne pointe pas vers une implémentation d’interface reconnue. L’implémentation personnalisée des interfaces d’API document XPS n’est pas prise en charge.
XPS_E_UNEXPECTED_COLORPROFILE
colorProfile contient un profil de couleur, mais il n’est pas attendu. Un profil de couleur n’est autorisé que lorsque le type de couleur est XPS_COLOR_TYPE_CONTEXT.

Remarques

Les points de dégradé sont utilisés pour définir la couleur à un emplacement spécifique ; la couleur est interpolée entre les points de dégradé. Le décalage, qui est spécifié par offset, est une position relative entre les points de début et de fin du dégradé. Le décalage au point de départ d’un dégradé linéaire ou à l’origine d’un dégradé radial est de 0,0. Le décalage du point de terminaison d’un dégradé linéaire ou de l’ellipse englobante d’un dégradé radial est de 1,0. Les points de dégradé peuvent être spécifiés pour n’importe quel décalage entre ces points, y compris les points de début et de fin. L’illustration suivante montre le chemin d’accès et les points de dégradé d’un dégradé linéaire.

Figure montrant les termes utilisés dans un dégradé linéaire L’illustration suivante montre les points de dégradé d’un dégradé radial. Dans cet exemple, la région de dégradé radiale est la zone entourée par l’ellipse externe et la méthode de répartition XPS_SPREAD_METHOD_REFLECT est utilisée pour remplir l’espace à l’extérieur de la région de dégradé. Figure montrant les termes utilisés dans un dégradé radialL’interface IXpsOMGradientStop spécifie un seul arrêt dans un dégradé.

Les calculs utilisés pour afficher un dégradé sont décrits dans la spécification de papier XML.

L’exemple de code qui suit illustre la façon dont cette méthode est utilisée pour créer une 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
}

Configuration requise

   
Client minimal pris en charge Windows 7, Windows Vista avec SP2 et Mise à jour de plateforme pour Windows Vista [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2008 R2, Windows Server 2008 avec SP2 et Platform Update pour Windows Server 2008 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête xpsobjectmodel.h

Voir aussi

IXpsOMColorProfileResource

IXpsOMGradientStop

IXpsOMObjectFactory

XML Paper Specification

Erreurs de document XPS

XPS_COLOR