IXpsOMRadialGradientBrush
COM公式ドキュメント
放射状グラデーションを指定します。
解説(Remarks)
次の図に示すように、放射状グラデーションのグラデーション領域は、中心点と、その中心点から伸びる x 半径および y 半径によって定義される楕円で囲まれた領域です。スプレッド領域は、その楕円の外側の領域です。グラデーションパス (図には示されていません) は、グラデーションの原点とグラデーション領域を囲む楕円との間に引かれる放射状の線です。
次のコード例は、このインターフェイスのインスタンスを作成する方法を示しています。
IXpsOMRadialGradientBrush *newInterface;
// 次の値は、この例の外部で
// 定義されています。
// IXpsOMGradientStop *gradStop1, *gradStop2;
// XPS_POINT centerPoint, gradientOrigin;
// XPS_SIZE radiiSizes;
// このスレッドから CoInitializeEx が事前に呼び出されている
// ことが暗黙の前提条件である点に注意してください。
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))
{
// newInterface を使用します
newInterface->Release();
}
xpsFactory->Release();
}
else
{
// hr で返された HRESULT エラーを評価します
}
メソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
放射状グラデーション領域の楕円の中心点を取得します。
| center | XPS_POINT* | out | 放射状グラデーション領域の楕円の中心点の x 座標と y 座標。 |
戻り値
このメソッドは HRESULT を返します。返される可能性のある値には、次の表に示すものが含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| center が NULL です。 |
解説(Remarks)
center で指定される x 座標と y 座標は、ページを基準とし、有効になっている変換の単位で表されます。
次の図は、放射状グラデーションの各部を示しています。center は、放射状グラデーション領域を囲む楕円の中心点の位置を取得します。この図の詳細な説明については、IXpsOMRadialGradientBrush を参照してください。

放射状グラデーション領域の楕円の中心点を設定します。
| center | XPS_POINT* | in | 放射状グラデーションの楕円の中心点に設定する x 座標と y 座標。 |
戻り値
このメソッドは HRESULT を返します。返される可能性のある値には、次の表に示すものが含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| center で示される点が無効です。XPS_POINT 構造体には、有効かつ有限の浮動小数点値を格納する必要があります。 | |
| center が NULL です。 |
解説(Remarks)
center で指定される x 座標と y 座標は、ページを基準とし、有効になっている変換の単位で表されます。
次の図は、放射状グラデーションの各部を示しています。center は中心点の位置を設定します。この図の詳細な説明については、IXpsOMRadialGradientBrush を参照してください。

放射状グラデーション領域の楕円を定義する半径のサイズを取得します。
| radiiSizes | XPS_SIZE* | out | 半径のサイズを受け取る XPS_SIZE 構造体。
サイズは XPS 単位で表されます。1 インチは 96 XPS 単位です。たとえば、1 インチの半径は 96 XPS 単位になります。 |
戻り値
このメソッドは HRESULT を返します。返される可能性のある値には、次の表に示すものが含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| radiiSizes が NULL です。 |
解説(Remarks)
次の図は、放射状グラデーションの各部を示しています。radiiSizes.width は x 半径を、radiiSizes.height は y 半径を取得します。この図の詳細な説明については、IXpsOMRadialGradientBrush を参照してください。

放射状グラデーション領域の楕円を定義する半径のサイズを設定します。
| radiiSizes | XPS_SIZE* | in | 半径のサイズを受け取る XPS_SIZE 構造体。
サイズは XPS 単位で表されます。1 インチは 96 XPS 単位です。たとえば、1 インチの半径は 96 XPS 単位になります。 |
戻り値
このメソッドは HRESULT を返します。返される可能性のある値には、次の表に示すものが含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| radiiSizes で示されるサイズのいずれかが無効です。XPS_SIZE 構造体には、有効かつ有限で負でない浮動小数点値を格納する必要があります。 | |
| radiiSizes が NULL です。 |
解説(Remarks)
次の図は、放射状グラデーションの各部を示しています。radiiSizes.width は x 半径を、radiiSizes.height は y 半径を設定します。この図の詳細な説明については、IXpsOMRadialGradientBrush を参照してください。

放射状グラデーションの原点を取得します。
| origin | XPS_POINT* | out | 放射状グラデーションの原点の x 座標と y 座標。 |
戻り値
このメソッドは HRESULT を返します。返される可能性のある値には、次の表に示すものが含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| origin が NULL です。 |
解説(Remarks)
origin で指定される x 座標と y 座標は、ページを基準とし、有効になっている変換の単位で表されます。
次の図は、放射状グラデーションの各部を示しています。origin は、グラデーションの原点の位置を取得します。この図の詳細な説明については、IXpsOMRadialGradientBrush を参照してください。

放射状グラデーションの原点を設定します。
| origin | XPS_POINT* | in | 放射状グラデーションの原点に設定する x 座標と y 座標。 |
戻り値
このメソッドは HRESULT を返します。返される可能性のある値には、次の表に示すものが含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| origin で示される点が無効でした。XPS_POINT 構造体には、有効かつ有限の浮動小数点値を格納する必要があります。 | |
| origin が NULL です。 |
解説(Remarks)
origin で指定される x 座標と y 座標は、ページを基準とし、有効になっている変換の単位で表されます。
次の図は、放射状グラデーションの各部を示しています。origin は、放射状グラデーションの原点の位置を設定します。この図の詳細な説明については、IXpsOMRadialGradientBrush を参照してください。

インターフェイスのディープコピーを作成します。(IXpsOMRadialGradientBrush.Clone)
| radialGradientBrush | IXpsOMRadialGradientBrush** | out | インターフェイスのコピーへのポインター。 |
戻り値
このメソッドは HRESULT を返します。返される可能性のある値には、次の表に示すものが含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| この操作を実行するのに十分なメモリがありません。 | |
| radialGradientBrush が NULL です。 |
解説(Remarks)
このメソッドは、新しい IXpsOMRadialGradientBrush インターフェイス内のリソースポインターを更新しません。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IXpsOMRadialGradientBrush "{75F207E5-08BF-413C-96B1-B82B4064176B}" #usecom global IXpsOMRadialGradientBrush IID_IXpsOMRadialGradientBrush "{}" #comfunc global IXpsOMRadialGradientBrush_GetCenter 17 var #comfunc global IXpsOMRadialGradientBrush_SetCenter 18 var #comfunc global IXpsOMRadialGradientBrush_GetRadiiSizes 19 var #comfunc global IXpsOMRadialGradientBrush_SetRadiiSizes 20 var #comfunc global IXpsOMRadialGradientBrush_GetGradientOrigin 21 var #comfunc global IXpsOMRadialGradientBrush_SetGradientOrigin 22 var #comfunc global IXpsOMRadialGradientBrush_Clone 23 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IXpsOMRadialGradientBrush "{75F207E5-08BF-413C-96B1-B82B4064176B}" #usecom global IXpsOMRadialGradientBrush IID_IXpsOMRadialGradientBrush "{}" #comfunc global IXpsOMRadialGradientBrush_GetCenter 17 sptr #comfunc global IXpsOMRadialGradientBrush_SetCenter 18 sptr #comfunc global IXpsOMRadialGradientBrush_GetRadiiSizes 19 sptr #comfunc global IXpsOMRadialGradientBrush_SetRadiiSizes 20 sptr #comfunc global IXpsOMRadialGradientBrush_GetGradientOrigin 21 sptr #comfunc global IXpsOMRadialGradientBrush_SetGradientOrigin 22 sptr #comfunc global IXpsOMRadialGradientBrush_Clone 23 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。