Share via


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

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

構文

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

パラメーター

[in] gradStop1

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

[in] gradStop2

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

[in] centerPoint

放射状グラデーション楕円の中心点の座標。

[in] gradientOrigin

放射状グラデーションの原点の座標。

[in] radiiSizes

メンバー がグラデーション 領域の半径の長さを指定するXPS_SIZE構造体。

サイズは XPS 単位で説明されています。 1 インチあたり 96 個の XPS ユニットがあります。 たとえば、1" の半径は 96 XPS 単位です。

XPS_SIZE メンバー 意味
width x 軸に沿った半径の長さ。
height y 軸に沿った半径の長さ。

[out, retval] radialGradientBrush

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

戻り値

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

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

注釈

次の図に示すように、放射状グラデーションのグラデーション領域は、中心点と、中心点から伸びる x および y 半径で表される楕円で囲まれた領域です。 広がり領域は、その楕円の外側の領域です。 グラデーションのパス (表示されません) は、グラデーションの原点とグラデーション領域を境界とする楕円の間に描画される放射状線です。

放射状グラデーションで使用される用語を示す図 放射状グラデーション ブラシの場合、 gradStop1 パラメーターによって設定されるグラデーションの分岐点は、グラデーションの原点の位置とオフセット値 0.0 に対応します。 gradStop2 パラメーターによって設定されるグラデーションの分岐点は、グラデーション領域の円周とオフセット値 1.0 に対応します。 グラデーションの分岐点の詳細については、「 IXpsOMGradientStop」を参照してください。

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


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
}

要件

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

こちらもご覧ください

IXpsOMGradientStop

IXpsOMObjectFactory

IXpsOMRadialGradientBrush

XML Paper Specification

XPS ドキュメント エラー

XPS_POINT

XPS_SIZE