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 ドキュメント エラー」を参照してください。
リターン コード | 説明 |
---|---|
|
メソッドが成功しました。 |
|
centerPoint、radiiSizes、または gradientOrigin で記述されているポイントが無効です。 XPS_POINT構造体のメンバーには、有効で有限の浮動小数点値が含まれている必要があります。 |
|
gradStop1、 gradStop2、 centerPoint、 gradientOrigin、 radiiSizes、または radialGradientBrush が NULL です。 |
|
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,
¢erPoint,
&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 |