IXpsOMLinearGradientBrush
COM公式ドキュメント
ベクトルに沿った色のグラデーションである線形グラデーションを指定します。
解説(Remarks)
次の図では、線形グラデーションの始点と終点は、それらの点を結ぶ直線であるグラデーションパスの始点と終点でもあります。
線形グラデーションのグラデーション領域は、始点と終点を含むその間の領域であり、グラデーションパスに対して直角となる両方向に広がります。スプレッド領域は、グラデーション領域の外側にあるジオメトリの領域です。
グラデーションストップは、グラデーションパス上の特定の位置における色を定義するために使用します。図では、グラデーションストップ 0 はグラデーションパスの始点に、グラデーションストップ 1 は終点に位置しています。スプレッド領域を塗りつぶすには、XPS_SPREAD_METHOD_PAD スプレッドメソッドが使用されます。
次のコード例は、このインターフェイスのインスタンスを作成する方法を示しています。
IXpsOMLinearGradientBrush *newInterface;
// 次の値は、この例の外部で
// 定義されています。
// IXpsOMGradientStop *gradStop1, *gradStop2;
// XPS_POINT startPoint, endPoint;
// このスレッドから CoInitializeEx が事前に呼び出されている
// ことが暗黙の前提条件である点に注意してください。
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))
{
// newInterface を使用します
newInterface->Release();
}
xpsFactory->Release();
}
else
{
// hr で返された HRESULT エラーを評価します
}
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
グラデーションの始点を取得します。
| startPoint | XPS_POINT* | out | 始点の x 座標と y 座標。 |
戻り値
このメソッドは HRESULT を返します。返される可能性のある値には、次の表に示すものが含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| startPoint が NULL です。 |
解説(Remarks)
座標はページを基準とし、有効になっている変換の単位で表されます。
グラデーションの始点を設定します。
| startPoint | XPS_POINT* | in | 始点の x 座標と y 座標。 |
戻り値
このメソッドは HRESULT を返します。返される可能性のある値には、次の表に示すものが含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| startPoint で示される点が無効でした。XPS_POINT 構造体には、有効かつ有限の浮動小数点値を格納する必要があります。 | |
| startPoint が NULL です。 |
解説(Remarks)
座標はページを基準とし、有効になっている変換の単位で表されます。
グラデーションの終点を取得します。
| endPoint | XPS_POINT* | out | 終点の x 座標と y 座標。 |
戻り値
このメソッドは HRESULT を返します。返される可能性のある値には、次の表に示すものが含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| endPoint が NULL です。 |
解説(Remarks)
座標はページを基準とし、有効になっている変換の単位で表されます。
グラデーションの終点を設定します。
| endPoint | XPS_POINT* | in | 終点の x 座標と y 座標。 |
戻り値
このメソッドは HRESULT を返します。返される可能性のある値には、次の表に示すものが含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| endPoint で示される点が無効でした。XPS_POINT 構造体には、有効かつ有限の浮動小数点値を格納する必要があります。 | |
| endPoint が NULL です。 |
解説(Remarks)
座標はページを基準とし、有効になっている変換の単位で表されます。
インターフェイスのディープコピーを作成します。(IXpsOMLinearGradientBrush.Clone)
| linearGradientBrush | IXpsOMLinearGradientBrush** | out | インターフェイスのコピーへのポインター。 |
戻り値
このメソッドは HRESULT を返します。返される可能性のある値には、次の表に示すものが含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| この操作を実行するのに十分なメモリがありません。 | |
| linearGradientBrush が NULL です。 |
解説(Remarks)
このメソッドは、コピー内のリソースポインターを更新しません。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IXpsOMLinearGradientBrush "{005E279F-C30D-40FF-93EC-1950D3C528DB}" #usecom global IXpsOMLinearGradientBrush IID_IXpsOMLinearGradientBrush "{}" #comfunc global IXpsOMLinearGradientBrush_GetStartPoint 17 var #comfunc global IXpsOMLinearGradientBrush_SetStartPoint 18 var #comfunc global IXpsOMLinearGradientBrush_GetEndPoint 19 var #comfunc global IXpsOMLinearGradientBrush_SetEndPoint 20 var #comfunc global IXpsOMLinearGradientBrush_Clone 21 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IXpsOMLinearGradientBrush "{005E279F-C30D-40FF-93EC-1950D3C528DB}" #usecom global IXpsOMLinearGradientBrush IID_IXpsOMLinearGradientBrush "{}" #comfunc global IXpsOMLinearGradientBrush_GetStartPoint 17 sptr #comfunc global IXpsOMLinearGradientBrush_SetStartPoint 18 sptr #comfunc global IXpsOMLinearGradientBrush_GetEndPoint 19 sptr #comfunc global IXpsOMLinearGradientBrush_SetEndPoint 20 sptr #comfunc global IXpsOMLinearGradientBrush_Clone 21 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。