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

IXpsOMLinearGradientBrush インターフェイスを作成します。

構文

HRESULT CreateLinearGradientBrush(
  [in]          IXpsOMGradientStop        *gradStop1,
  [in]          IXpsOMGradientStop        *gradStop2,
  [in]          const XPS_POINT           *startPoint,
  [in]          const XPS_POINT           *endPoint,
  [out, retval] IXpsOMLinearGradientBrush **linearGradientBrush
);

パラメーター

[in] gradStop1

グラデーションのベクトルの先頭にあるグラデーション プロパティを指定する IXpsOMGradientStop インターフェイス。 このパラメーターは NULL にすることはできません。

[in] gradStop2

グラデーションのベクトルの末尾にあるグラデーション プロパティを指定する IXpsOMGradientStop インターフェイス。 このパラメーターは NULL にすることはできません。

[in] startPoint

2 次元空間内の始点の座標を含む XPS_POINT 構造体。

[in] endPoint

2 次元空間内の終点の座標を含む XPS_POINT 構造体。

[out, retval] linearGradientBrush

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

戻り値

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

リターン コード 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
startPoint または endPoint で指定されたポイントが無効でした。 XPS_POINT構造体のメンバーには、有効な浮動小数点値と有限の浮動小数点値を含める必要があります。
E_POINTER
gradStop1gradStop2startPointfigure、または linearGradientBrushNULL です
XPS_E_NO_CUSTOM_OBJECTS
gradStop1 または gradStop1 は、認識されたインターフェイス実装を指していません。 XPS ドキュメント API インターフェイスのカスタム実装はサポートされていません。

注釈

線形グラデーションのグラデーション領域は、始点と終点を含む と の間の領域であり、グラデーション パスに対して直角に双方向に延びる領域です。 スプレッド領域は、グラデーション領域の外側にあるジオメトリの領域です。

グラデーションの停止点は、グラデーション パスに沿って特定の場所で色を定義します。 図では、 gradStop1 パラメーターで指定されたグラデーションの停止点 0 がグラデーション パスの始点に配置され、 gradStop2 パラメーターで指定されたグラデーションの停止点 1 が終点にあります。

次の図に示すように、線形グラデーションの始点と終点は、グラデーション パスの始点と終点でもあります。これは、それらの点を結ぶ直線です。

線形グラデーションで使用される用語を示す図 次のコード例は、このメソッドを使用して新しいインターフェイスを作成する方法を示しています。

IXpsOMLinearGradientBrush    *newInterface;
// The following values are defined outside of 
// this example.
//  IXpsOMGradientStop       *gradStop1, *gradStop2;
//  XPS_POINT                startPoint, endPoint;

// 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->CreateLinearGradientBrush (
        gradStop1,
        gradStop2,
        &startPoint,
        &endPoint,
        &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

こちらもご覧ください

IXpsOMGradientStop

IXpsOMLinearGradientBrush

IXpsOMObjectFactory

XML Paper Specification

XPS ドキュメント エラー

XPS_POINT