Condividi tramite


Metodo IXpsOMObjectFactory::CreateGradientStop (xpsobjectmodel.h)

Crea un'interfaccia IXpsOMGradientStop per rappresentare una singola definizione di colore e posizione all'interno di una sfumatura.

Sintassi

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

Parametri

[in] color

Valore di colore.

[in] colorProfile

Puntatore all'interfaccia IXpsOMColorProfileResource che contiene il profilo di colore da usare. Se il tipo di colore non è XPS_COLOR_TYPE_CONTEXT, questo parametro deve essere NULL.

[in] offset

Valori di offset.

Intervallo valido: 0.0-1.0

[out, retval] gradientStop

Puntatore alla nuova interfaccia IXpsOMGradientStop .

Valore restituito

Il metodo restituisce un HRESULT. I valori possibili includono, ma non sono limitati a quelli della tabella che segue. Per informazioni sui valori restituiti dall'API documento XPS non elencati in questa tabella, vedere Errori del documento XPS.

Codice restituito Descrizione
S_OK
Il metodo è riuscito.
E_INVALIDARG
Il valore in offset non è valido.
E_POINTER
color o gradientStop è NULL.
XPS_E_MISSING_COLORPROFILE
colorProfile è NULL , ma è previsto un profilo di colore. È necessario un profilo di colore quando il tipo di colore è XPS_COLOR_TYPE_CONTEXT.
XPS_E_NO_CUSTOM_OBJECTS
colorProfile non punta a un'implementazione dell'interfaccia riconosciuta. L'implementazione personalizzata delle interfacce API documento XPS non è supportata.
XPS_E_UNEXPECTED_COLORPROFILE
colorProfile contiene un profilo di colore, ma non è previsto. Un profilo di colore è consentito solo quando il tipo di colore è XPS_COLOR_TYPE_CONTEXT.

Commenti

Le interruzioni sfumature vengono usate per definire il colore in una posizione specifica; il colore viene interpolato tra le interruzioni sfumature. L'offset, specificato dall'offset, è una posizione relativa tra i punti iniziale e finale della sfumatura. L'offset al punto iniziale di una sfumatura lineare o l'origine di una sfumatura radiale è 0,0. L'offset del punto finale di una sfumatura lineare o dei puntini di sospensione del limite di una sfumatura radiale è 1,0. Le interruzioni sfumature possono essere specificate per qualsiasi offset tra questi punti, inclusi i punti iniziale e finale. La figura seguente mostra il percorso sfumatura e le interruzioni sfumature di una sfumatura lineare.

Figura che mostra i termini usati in una sfumatura lineare La figura seguente mostra le interruzioni sfumature di una sfumatura radiale. In questo esempio, l'area della sfumatura radiale è l'area racchiusa dai puntini di sospensione esterni e il metodo di diffusione XPS_SPREAD_METHOD_REFLECT viene usato per riempire lo spazio all'esterno dell'area sfumatura. Figura che mostra i termini usati in una sfumatura radiale L'interfaccia IXpsOMGradientStop specifica uno e un solo stop in una sfumatura.

I calcoli usati per eseguire il rendering di una sfumatura sono descritti nella specifica di carta XML.

L'esempio di codice seguente illustra come viene usato questo metodo per creare una nuova interfaccia.


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
}

Requisiti

   
Client minimo supportato Windows 7, Windows Vista con SP2 e Aggiornamento della piattaforma per Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 R2, Windows Server 2008 con SP2 e Platform Update per Windows Server 2008 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione xpsobjectmodel.h

Vedi anche

IXpsOMColorProfileResource

IXpsOMGradientStop

IXpsOMObjectFactory

XML Paper Specification

Errori del documento XPS

XPS_COLOR