Win32 API 日本語リファレンス
ホームStorage.Xps › IXpsOMGradientBrush

IXpsOMGradientBrush

COM
IIDedb59622-61a2-42c3-bace-acf2286c06bf継承元IXpsOMBrush自前メソッド開始 vtbl7

公式ドキュメント

このインターフェイスは、グラデーション ストップで構成されるグラデーションを表します。IXpsOMGradientBrush を継承するクラスは、グラデーション ストップのさまざまな解釈方法を指定します。

解説(Remarks)

このインターフェイスのメソッドは、グラデーションの基本的なパラメーターを定義します。これらのパラメーターがどのように適用されるかは、線形または放射状のいずれかであるグラデーションの種類によって決まります。

次の図に示すように、線形グラデーションの開始点と終了点は、グラデーション パスの両端を示します。グラデーション パスは、開始点と終了点を結ぶ直線です。線形グラデーションのグラデーション領域は、開始点と終了点の間 (これらの点を含む) の領域で構成され、グラデーション パスに対して直角の両方向に広がります。スプレッド領域は、グラデーション領域の外側の領域です。

グラデーション ストップは、グラデーション パス上の特定の位置における色を定義します。次の図に示すように、色はグラデーション ストップの間でグラデーション パスに沿って補間されます。

A figure that shows the terms used in a linear gradient 次の図に示すように、放射状グラデーションのグラデーション領域は、中心点と、中心点から伸びる x 半径および y 半径によって表される楕円で囲まれた領域です。スプレッド領域は、その楕円の外側の領域です。グラデーション パスは、グラデーションの原点からグラデーション領域を囲む楕円まで、グラデーション領域全体を掃引する放射状の線です。次の図では、グラデーション パスは示されていません。 A figure that shows the terms used in a radial gradient スプレッド メソッドは、スプレッド領域をどのように塗りつぶすかを表します。スプレッド メソッドの実装は、グラデーションの種類 (線形または放射状) によって異なります。次の図は、スプレッド領域を塗りつぶす方法の例をいくつか示しています。さまざまなスプレッド メソッドの詳細については、XPS_SPREAD_METHOD を参照してください。 An illustration that shows examples of the spread method 変換は、結果として得られるグラデーションがどのように変換されるかを決定します。最終的に画像として描画されるグラデーションの可視部分は、そのグラデーション ブラシを使用しているパス、ストローク、またはグリフによって決まります。

メソッド 10

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 7 HRESULT GetGradientStops(IXpsOMGradientStopCollection** gradientStops)

グラデーションを定義する IXpsOMGradientStop インターフェイスのコレクションを格納した IXpsOMGradientStopCollection インターフェイスへのポインターを取得します。

gradientStopsIXpsOMGradientStopCollection**outIXpsOMGradientStop インターフェイスのコレクションを格納した IXpsOMGradientStopCollection インターフェイスへのポインター。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
gradientStopsNULL です。

解説(Remarks)

XPS OM において IXpsOMGradientStop インターフェイスで表されるグラデーション ストップは、グラデーション パス上の特定の位置における色を定義するために使用されます。色はグラデーション ストップの間で補間されます。次の図は、線形グラデーションのグラデーション パスとグラデーション ストップを示しています。

A figure that shows the terms used in a linear gradient 次の図は、放射状グラデーションのグラデーション ストップを示しています。この例では、グラデーション領域は外側の楕円で囲まれた領域であり、放射状グラデーションは XPS_SPREAD_METHOD_REFLECT スプレッド メソッドを使用してグラデーション領域の外側の空間を塗りつぶしています。 A figure that shows the terms used in a radial gradient
vtbl 8 HRESULT GetTransform(IXpsOMMatrixTransform** transform)

ブラシに対して解決された行列変換を格納した IXpsOMMatrixTransform インターフェイスへのポインターを取得します。(IXpsOMGradientBrush.GetTransform)

transformIXpsOMMatrixTransform**out

ブラシに対して解決された行列変換を格納した IXpsOMMatrixTransform インターフェイスへのポインター。変換が設定されていない場合は、NULL ポインターが返されます。

このパラメーターに返される値は、変換を設定するために直前に呼び出されたメソッドによって異なります。

直前に呼び出されたメソッド transform に返されるオブジェクト

SetTransformLocal

SetTransformLocal によって設定されたローカルの変換。

SetTransformLookup

SetTransformLookup によって設定されたキーと一致するルックアップ キーで、リソース ディレクトリから取得された共有の変換。
SetTransformLocalSetTransformLookup のどちらもまだ呼び出されていない。 NULL ポインター。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
transformNULL です。
XPS_E_LOOKUP_INVALID_TYPE
SetStrokeBrushLookup によって設定されたルックアップ キー名が、ブラシではないオブジェクトを参照しています。
XPS_E_LOOKUP_NOT_FOUND
ルックアップ値と一致するキー名を持つオブジェクトが見つかりませんでした。

lookup に渡された値と一致するキー名を持つオブジェクトが見つかりませんでした。

解説(Remarks)

変換は、グラデーションがどのように変換されるかを決定します。最終的に画像として描画されるグラデーションの可視部分は、そのグラデーション ブラシを使用しているパス、ストローク、またはグリフによって決まります。

vtbl 9 HRESULT GetTransformLocal(IXpsOMMatrixTransform** transform)

ブラシに対する、ローカルで共有されない解決済みの行列変換を格納した IXpsOMMatrixTransform インターフェイスへのポインターを取得します。

transformIXpsOMMatrixTransform**out

ブラシに対する、ローカルで共有されない解決済みの行列変換を格納した IXpsOMMatrixTransform インターフェイスへのポインター。変換が設定されていない場合、または行列変換のルックアップ キーが設定されている場合は、NULL ポインターが返されます。

このパラメーターに返される値は、変換を設定するために直前に呼び出されたメソッドによって異なります。

直前に呼び出されたメソッド transform に返されるオブジェクト

SetTransformLocal

SetTransformLocal によって設定されたローカルの変換。

SetTransformLookup

NULL ポインター。
SetTransformLocalSetTransformLookup のどちらもまだ呼び出されていない。 NULL ポインター。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
transformNULL です。

解説(Remarks)

変換は、グラデーションがどのように変換されるかを決定します。最終的に画像として描画されるグラデーションの可視部分は、そのグラデーション ブラシを使用しているパス、ストローク、またはグリフによって決まります。

vtbl 10 HRESULT SetTransformLocal(IXpsOMMatrixTransform* transform)

ブラシに使用する、ローカルで共有されない行列変換の IXpsOMMatrixTransform インターフェイス ポインターを設定します。

transformIXpsOMMatrixTransform*inブラシに使用する、ローカルで共有されない行列変換の IXpsOMMatrixTransform インターフェイスへのポインター。NULL ポインターを指定すると、以前に設定されたインターフェイスは解放されます。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。
XPS_E_NO_CUSTOM_OBJECTS
transform が、認識されるインターフェイス実装を指していません。XPS ドキュメント API インターフェイスの独自実装はサポートされていません。

解説(Remarks)

SetTransformLocal を呼び出すと、変換のルックアップ キーは解放され、GetTransformLocaltransform パラメーターに NULL ポインターを返します。次の表は、このプロパティのローカル値とルックアップ値の関係を示しています。

直前に呼び出されたメソッド GetTransform によって transform に返されるオブジェクト GetTransformLocal によって transform に返されるオブジェクト GetTransformLookup によって key に返されるオブジェクト
SetTransformLocal (このメソッド) SetTransformLocal によって設定されたローカルの変換。 SetTransformLocal によって設定されたローカルの変換。 NULL ポインター。

SetTransformLookup

SetTransformLookup によって設定されたキーと一致するルックアップ キーで、リソース ディレクトリから取得された共有の変換。 NULL ポインター。 SetTransformLookup によって設定されたルックアップ キー。
SetTransformLocalSetTransformLookup のどちらもまだ呼び出されていない。 NULL ポインター。 NULL ポインター。 NULL ポインター。

transform に渡された変換は、グラデーションがどのように変換されるかを決定します。最終的に画像として描画されるグラデーションの可視部分は、そのグラデーション ブラシを使用しているパス、ストローク、またはグリフによって決まります。

vtbl 11 HRESULT GetTransformLookup(LPWSTR* key)

ブラシに使用する共有行列変換インターフェイスのルックアップ キー名を取得します。

keyLPWSTR*out

ブラシに使用する共有行列変換インターフェイスのルックアップ キー名。ルックアップ キー名が設定されていない場合、またはローカルの行列変換が設定されている場合は、NULL ポインターが返されます。

このパラメーターに返される値は、ルックアップ キーまたは変換を設定するために直前に呼び出されたメソッドによって異なります。

直前に呼び出されたメソッド key に返される文字列

SetTransformLocal

NULL ポインター。

SetTransformLookup

SetTransformLookup によって設定されたキー。
SetTransformLocalSetTransformLookup のどちらもまだ呼び出されていない。 NULL ポインター。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
keyNULL です。

解説(Remarks)

このメソッドは IXpsOMMatrixTransform インターフェイス ポインターを返しません。ディクショナリからこのポインターを取得するには、IXpsOMDictionary::GetByKey を呼び出してください。

変換は、グラデーションがどのように変換されるかを決定します。最終的に画像として描画されるグラデーションの可視部分は、そのグラデーション ブラシを使用しているパス、ストローク、またはグリフによって決まります。

このメソッドは、key に返される文字列が使用するメモリを割り当てます。keyNULL でない場合は、CoTaskMemFree 関数を使用してメモリを解放してください。

vtbl 12 HRESULT SetTransformLookup(LPWSTR key)

ブラシに使用する共有行列変換のルックアップ キー名を設定します。

keyLPWSTRinブラシに使用する行列変換のルックアップ キー名。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。
XPS_E_INVALID_RESOURCE_KEY
XML Paper Specification に照らして、lookup の値が有効なルックアップ キー文字列ではありません。
XPS_E_INVALID_LOOKUP_TYPE
key のルックアップ キー名が、ジオメトリではないオブジェクトを参照しています。
XPS_E_LOOKUP_NOT_FOUND
key に渡された値と一致するキー名を持つオブジェクトが見つかりませんでした。

解説(Remarks)

SetTransformLookup を呼び出すと、ローカルの変換は解放され、GetTransformLocaltransform パラメーターに NULL ポインターを返します。次の表は、このプロパティのローカル値とルックアップ値の関係を示しています。

直前に呼び出されたメソッド GetTransform によって transform に返されるオブジェクト GetTransformLocal によって transform に返されるオブジェクト GetTransformLookup によって key に返されるオブジェクト

SetTransformLocal

SetTransformLocal によって設定されたローカルの変換。 SetTransformLocal によって設定されたローカルの変換。 NULL ポインター。
SetTransformLookup (このメソッド) SetTransformLookup によって設定されたキーと一致するルックアップ キーで、リソース ディレクトリから取得された共有の変換。 NULL ポインター。 SetTransformLookup によって設定されたルックアップ キー。
SetTransformLocalSetTransformLookup のどちらもまだ呼び出されていない。 NULL ポインター。 NULL ポインター。 NULL ポインター。

key によって参照される変換は、グラデーションがどのように変換されるかを決定します。最終的に画像として描画されるグラデーションの可視部分は、そのブラシを使用しているパス、ストローク、またはグリフによって決まります。

vtbl 13 HRESULT GetSpreadMethod(XPS_SPREAD_METHOD* spreadMethod)

グラデーション領域の外側の領域をどのように描画するかを表す XPS_SPREAD_METHOD 値を取得します。

spreadMethodXPS_SPREAD_METHOD*outグラデーション領域の外側の領域をどのように描画するかを表す XPS_SPREAD_METHOD 値。グラデーション領域は、このインターフェイスを継承する線形グラデーション ブラシまたは放射状グラデーション ブラシによって定義されます。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
spreadMethodNULL です。

解説(Remarks)

さまざまな種類のスプレッド メソッドの詳細については、XPS_SPREAD_METHOD を参照してください。

vtbl 14 HRESULT SetSpreadMethod(XPS_SPREAD_METHOD spreadMethod)

グラデーション領域の外側の領域をどのように描画するかを表す XPS_SPREAD_METHOD 値を設定します。

spreadMethodXPS_SPREAD_METHODinグラデーション領域の外側の領域をどのように描画するかを表す XPS_SPREAD_METHOD 値。グラデーション領域は、このインターフェイスを継承する線形グラデーション ブラシまたは放射状グラデーション ブラシによって定義されます。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。
E_INVALIDARG
spreadMethod パラメーターが有効な XPS_SPREAD_METHOD 値ではありませんでした。

解説(Remarks)

さまざまな種類のスプレッド メソッドの詳細については、XPS_SPREAD_METHOD を参照してください。

vtbl 15 HRESULT GetColorInterpolationMode(XPS_COLOR_INTERPOLATION* colorInterpolationMode)

色の補間に使用するガンマ関数を取得します。

colorInterpolationModeXPS_COLOR_INTERPOLATION*out色の補間に使用するガンマ関数を表す XPS_COLOR_INTERPOLATION 値。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
colorInterpolationModeNULL です。
vtbl 16 HRESULT SetColorInterpolationMode(XPS_COLOR_INTERPOLATION colorInterpolationMode)

色の補間に使用するガンマ関数を表す XPS_COLOR_INTERPOLATION 値を設定します。

colorInterpolationModeXPS_COLOR_INTERPOLATIONin色の補間に使用するガンマ関数を表す XPS_COLOR_INTERPOLATION 値。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IXpsOMGradientBrush "{EDB59622-61A2-42C3-BACE-ACF2286C06BF}"
#usecom global IXpsOMGradientBrush IID_IXpsOMGradientBrush "{}"
#comfunc global IXpsOMGradientBrush_GetGradientStops           7 sptr
#comfunc global IXpsOMGradientBrush_GetTransform               8 sptr
#comfunc global IXpsOMGradientBrush_GetTransformLocal          9 sptr
#comfunc global IXpsOMGradientBrush_SetTransformLocal          10 sptr
#comfunc global IXpsOMGradientBrush_GetTransformLookup         11 var
#comfunc global IXpsOMGradientBrush_SetTransformLookup         12 wstr
#comfunc global IXpsOMGradientBrush_GetSpreadMethod            13 var
#comfunc global IXpsOMGradientBrush_SetSpreadMethod            14 int
#comfunc global IXpsOMGradientBrush_GetColorInterpolationMode  15 var
#comfunc global IXpsOMGradientBrush_SetColorInterpolationMode  16 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。