Freigeben über


IXpsOMObjectFactory::CreateRadialGradientBrush-Methode (xpsobjectmodel.h)

Erstellt eine IXpsOMRadialGradientBrush-Schnittstelle .

Syntax

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

Parameter

[in] gradStop1

Die IXpsOMGradientStop-Schnittstelle , die die Eigenschaften des Farbverlaufs am Ursprung des Farbverlaufs angibt. Dieser Parameter darf nicht NULL sein.

[in] gradStop2

Die IXpsOMGradientStop-Schnittstelle , die die Eigenschaften des Farbverlaufs am Ende des Farbverlaufsvektors angibt, d. h. die Ellipse, die den Farbverlaufsbereich umschließt. Dieser Parameter darf nicht NULL sein.

[in] centerPoint

Die Koordinaten des Mittelpunkts der radialen Farbverlaufsellipse.

[in] gradientOrigin

Die Koordinaten des Ursprungs des radialen Farbverlaufs.

[in] radiiSizes

Die XPS_SIZE Struktur, deren Elemente die Längen der Radien des Farbverlaufsbereichs angeben.

Die Größe wird in XPS-Einheiten beschrieben. Es gibt 96 XPS-Einheiten pro Zoll. Ein 1"-Radius ist beispielsweise 96 XPS-Einheiten.

XPS_SIZE Mitglied Bedeutung
width Länge des Radius entlang der x-Achse.
height Länge des Radius entlang der y-Achse.

[out, retval] radialGradientBrush

Ein Zeiger auf die neue IXpsOMRadialGradientBrush-Schnittstelle .

Rückgabewert

Die Methode gibt ein HRESULT zurück. Mögliche Werte sind unter anderem die Werte in der folgenden Tabelle. Informationen zu XPS-Dokument-API-Rückgabewerten, die in dieser Tabelle nicht aufgeführt sind, finden Sie unter XPS-Dokumentfehler.

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich ausgeführt.
E_INVALIDARG
Der Von centerPoint, radiiSizes oder gradientOrigin beschriebene Punkt ist ungültig. Die Member der XPS_POINT-Struktur müssen gültige und endliche Gleitkommawerte enthalten.
E_POINTER
gradStop1, gradStop2, centerPoint, gradientOrigin, radiiSizes oder radialGradientBrush ist NULL.
XPS_E_NO_CUSTOM_OBJECTS
gradStop1 oder gradStop1 verweist nicht auf eine erkannte Schnittstellenimplementierung. Die benutzerdefinierte Implementierung von XPS-Dokument-API-Schnittstellen wird nicht unterstützt.

Hinweise

Wie in der folgenden Abbildung gezeigt, ist der Farbverlaufsbereich eines radialen Farbverlaufs der von der Ellipse eingeschlossene Bereich, der durch den Mittelpunkt und die x- und y-Radien beschrieben wird, die sich vom Mittelpunkt erstrecken. Der Spreizbereich ist der Bereich außerhalb dieser Ellipse. Der Farbverlaufspfad (nicht dargestellt) ist eine radiale Linie, die zwischen dem Farbverlaufsursprung und der Ellipse gezeichnet wird, die den Farbverlaufsbereich begrenzt.

Abbildung, die die in einem radialen Farbverlauf verwendeten Begriffe zeigt Bei radialen Farbverlaufspinsel entspricht der Farbverlaufsstopp, der durch den gradStop1-Parameter festgelegt wird, der Position des Farbverlaufsursprungs und einem Offsetwert von 0,0. Der durch den gradStop2-Parameter festgelegte Farbverlaufsstopp entspricht dem Umfang des Farbverlaufsbereichs und einem Offsetwert von 1,0. Weitere Informationen zu Farbverlaufsstopps finden Sie unter IXpsOMGradientStop.

Das folgende Codebeispiel veranschaulicht, wie diese Methode zum Erstellen einer neuen Schnittstelle verwendet wird.


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
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7, Windows Vista mit SP2 und Plattformupdate für Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2, Windows Server 2008 mit SP2 und Plattformupdate für Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile xpsobjectmodel.h

Weitere Informationen

IXpsOMGradientStop

IXpsOMObjectFactory

IXpsOMRadialGradientBrush

XML Paper Specification

XPS-Dokumentfehler

XPS_POINT

XPS_SIZE