Freigeben über


IXpsOMObjectFactory::CreateGradientStop-Methode (xpsobjectmodel.h)

Erstellt eine IXpsOMGradientStop-Schnittstelle , um eine einzelne Farb- und Positionsdefinition innerhalb eines Farbverlaufs darzustellen.

Syntax

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

Parameter

[in] color

Der Farbwert.

[in] colorProfile

Ein Zeiger auf die IXpsOMColorProfileResource-Schnittstelle , die das zu verwendende Farbprofil enthält. Wenn der Farbtyp nicht XPS_COLOR_TYPE_CONTEXT ist, muss dieser Parameter NULL sein.

[in] offset

Der Offsetwert.

Gültiger Bereich: 0,0–1,0

[out, retval] gradientStop

Ein Zeiger auf die neue IXpsOMGradientStop-Schnittstelle .

Rückgabewert

Die Methode gibt ein HRESULT zurück. Mögliche Werte sind unter anderem diejenigen in der folgenden Tabelle. Informationen zu Rückgabewerten der XPS-Dokument-API, 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 Wert im Offset ist ungültig.
E_POINTER
color oder gradientStop ist NULL.
XPS_E_MISSING_COLORPROFILE
colorProfile ist NULL , aber es wird ein Farbprofil erwartet. Ein Farbprofil ist erforderlich, wenn der Farbtyp XPS_COLOR_TYPE_CONTEXT ist.
XPS_E_NO_CUSTOM_OBJECTS
colorProfile verweist nicht auf eine erkannte Schnittstellenimplementierung. Die benutzerdefinierte Implementierung von XPS-Dokument-API-Schnittstellen wird nicht unterstützt.
XPS_E_UNEXPECTED_COLORPROFILE
colorProfile enthält ein Farbprofil, aber eines wird nicht erwartet. Ein Farbprofil ist nur zulässig, wenn der Farbtyp XPS_COLOR_TYPE_CONTEXT ist.

Hinweise

Farbverlaufsstopps werden verwendet, um die Farbe an einer bestimmten Stelle zu definieren. Die Farbe wird zwischen den Farbverlaufsstopps interpoliert. Der Offset, der durch Offset angegeben wird, ist eine relative Position zwischen dem Anfangs- und Endpunkt des Farbverlaufs. Der Offset am Anfangspunkt eines linearen Farbverlaufs oder der Ursprung eines radialen Farbverlaufs ist 0,0. Der Offset des Endpunkts eines linearen Farbverlaufs oder der umgebenden Ellipse eines radialen Farbverlaufs ist 1,0. Farbverlaufsstopps können für jeden Offset zwischen diesen Punkten angegeben werden, einschließlich der Start- und Endpunkte. Die folgende Abbildung zeigt den Farbverlaufspfad und die Farbverlaufsstopps eines linearen Farbverlaufs.

Abbildung, die die in einem linearen Farbverlauf verwendeten Begriffe zeigt Die folgende Abbildung zeigt die Farbverlaufsstopps eines radialen Farbverlaufs. In diesem Beispiel ist der radiale Farbverlaufsbereich der von der äußeren Ellipse eingeschlossene Bereich, und die XPS_SPREAD_METHOD_REFLECT spread-Methode wird verwendet, um den Raum außerhalb des Farbverlaufsbereichs auszufüllen. Abbildung, die die in einem radialen Farbverlauf verwendeten Begriffe zeigt Die IXpsOMGradientStop-Schnittstelle gibt nur einen Stopp in einem Farbverlauf an.

Die Berechnungen, die zum Rendern eines Farbverlaufs verwendet werden, werden in der XML-Papierspezifikation beschrieben.

Im folgenden Codebeispiel wird veranschaulicht, wie diese Methode zum Erstellen einer neuen Schnittstelle verwendet wird.


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
}

Anforderungen

   
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

IXpsOMColorProfileResource

IXpsOMGradientStop

IXpsOMObjectFactory

XML Paper Specification

XPS-Dokumentfehler

XPS_COLOR