Partager via


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

Crée une interface IXpsOMRadialGradientBrush .

Syntaxe

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
);

Paramètres

[in] gradStop1

Interface IXpsOMGradientStop qui spécifie les propriétés du dégradé à l’origine du dégradé. Ce paramètre ne doit pas avoir la valeur NULL.

[in] gradStop2

Interface IXpsOMGradientStop qui spécifie les propriétés du dégradé à la fin du vecteur du dégradé, qui est l’ellipse qui entoure la région de dégradé. Ce paramètre ne doit pas avoir la valeur NULL.

[in] centerPoint

Coordonnées du point central de l’ellipse de gradient radial.

[in] gradientOrigin

Coordonnées de l’origine du dégradé radial.

[in] radiiSizes

Structure XPS_SIZE dont les membres spécifient les longueurs des rayons de la région de dégradé.

La taille est décrite dans unités XPS. Il existe 96 unités XPS par pouce. Par exemple, un rayon de 1 pouce est de 96 unités XPS.

XPS_SIZE Membre Signification
width Longueur du rayon le long de l’axe des X.
height Longueur du rayon le long de l’axe y.

[out, retval] radialGradientBrush

Pointeur vers la nouvelle interface IXpsOMRadialGradientBrush .

Valeur retournée

Cette méthode retourne un code HRESULT. Les valeurs possibles incluent, sans s’y limiter, celles de la table 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
Le point décrit par centerPoint, radiiSizes ou gradientOrigin n’est pas valide. Les membres de la structure XPS_POINT doivent contenir des valeurs à virgule flottante valides et finies.
E_POINTER
gradStop1, gradStop2, centerPoint, gradientOrigin, radiiSizes ou radialGradientBrush a la valeur NULL.
XPS_E_NO_CUSTOM_OBJECTS
gradStop1 ou gradStop1 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.

Remarques

Comme le montre l’illustration suivante, la région de dégradé d’un dégradé radial est la zone délimitée par l’ellipse décrite par le point central et les rayons x et y qui s’étendent à partir du point central. La zone de propagation est la zone située à l’extérieur de cette ellipse. Le chemin de dégradé (non affiché) est une ligne radiale qui est dessinée entre l’origine du dégradé et l’ellipse qui limite la région de dégradé.

Figure montrant les termes utilisés dans un dégradé radial Pour les pinceaux en dégradé radial, le point de dégradé défini par le paramètre gradStop1 correspond à l’emplacement d’origine du dégradé et à une valeur de décalage de 0,0. Le point de dégradé défini par le paramètre gradStop2 correspond à la circonférence de la région de dégradé et à une valeur de décalage de 1,0. Pour plus d’informations sur les arrêts de dégradé, consultez IXpsOMGradientStop.

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

Configuration requise

Condition requise Valeur
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 Mise à jour de plateforme pour Windows Server 2008 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête xpsobjectmodel.h

Voir aussi

IXpsOMGradientStop

IXpsOMObjectFactory

IXpsOMRadialGradientBrush

XML Paper Specification

Erreurs de document XPS

XPS_POINT

XPS_SIZE