IXpsOMObjectFactory::CreateGradientStop メソッド (xpsobjectmodel.h)

グラデーション内の単一の色と場所の定義を表す IXpsOMGradientStop インターフェイスを作成します。

構文

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

パラメーター

[in] color

カラー値です。

[in] colorProfile

使用するカラー プロファイルを含む IXpsOMColorProfileResource インターフェイスへのポインター。 色の種類が XPS_COLOR_TYPE_CONTEXTされていない場合、このパラメーターは NULL である必要があります。

[in] offset

オフセットの値。

有効な範囲: 0.0 から 1.0

[out, retval] gradientStop

新しい IXpsOMGradientStop インターフェイスへのポインター。

戻り値

このメソッドは HRESULT を返します。 使用可能な値には、次の表に含まれる値が含まれますが、これらに限定されません。 この表に記載されていない XPS ドキュメント API の戻り値については、「 XPS ドキュメント エラー」を参照してください。

リターン コード 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
offset の値が無効です。
E_POINTER
color または gradientStopNULL です
XPS_E_MISSING_COLORPROFILE
colorProfileNULL ですが、カラー プロファイルが必要です。 色の種類が XPS_COLOR_TYPE_CONTEXT場合は、カラー プロファイルが必要です。
XPS_E_NO_CUSTOM_OBJECTS
colorProfile は、認識されたインターフェイス実装を指していません。 XPS ドキュメント API インターフェイスのカスタム実装はサポートされていません。
XPS_E_UNEXPECTED_COLORPROFILE
colorProfile にはカラー プロファイルが含まれていますが、想定されていません。 カラー プロファイルは、色の種類が XPS_COLOR_TYPE_CONTEXTされている場合にのみ許可されます。

注釈

グラデーションの分岐点は、特定の場所で色を定義するために使用されます。グラデーションの分岐点の間に色が補間されます。 offset で指定されるオフセットは、グラデーションの始点と終点の間の相対位置です。 線形グラデーションの始点または放射状グラデーションの原点のオフセットは 0.0 です。 線形グラデーションの終点または放射状グラデーションの境界楕円のオフセットは 1.0 です。 グラデーションの分岐点は、始点と終点を含め、それらの点間の任意のオフセットに対して指定できます。 次の図は、線形グラデーションのグラデーションパスとグラデーションの分岐点を示しています。

線形グラデーションで使用される用語を示す図 次の図は、放射状グラデーションのグラデーションの分岐点を示しています。 この例では、放射状グラデーション領域は外側の楕円で囲まれた領域であり、グラデーション領域の外側の領域を塗りつぶすために XPS_SPREAD_METHOD_REFLECT スプレッドメソッドを使用します。 放射状グラデーションで使用される用語を示す図IXpsOMGradientStop インターフェイスは、グラデーション内の 1 つのストップのみを指定します。

グラデーションのレンダリングに使用される計算については、「 XML Paper Specification」を参照してください

次のコード例は、このメソッドを使用して新しいインターフェイスを作成する方法を示しています。


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
}

要件

   
サポートされている最小のクライアント Windows 7、Windows Vista SP2 と Windows Vista 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 R2、Windows Server 2008 SP2 および Windows Server 2008 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー xpsobjectmodel.h

こちらもご覧ください

IXpsOMColorProfileResource

IXpsOMGradientStop

IXpsOMObjectFactory

XML Paper Specification

XPS ドキュメント エラー

XPS_COLOR