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

IXpsOMLinearGradientBrush

COM
IID005e279f-c30d-40ff-93ec-1950d3c528db継承元IXpsOMGradientBrush自前メソッド開始 vtbl17

公式ドキュメント

ベクトルに沿った色のグラデーションである線形グラデーションを指定します。

解説(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。

vtbl 17 HRESULT GetStartPoint(XPS_POINT* startPoint)

グラデーションの始点を取得します。

startPointXPS_POINT*out始点の x 座標と y 座標。

戻り値

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

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

解説(Remarks)

座標はページを基準とし、有効になっている変換の単位で表されます。

vtbl 18 HRESULT SetStartPoint(XPS_POINT* startPoint)

グラデーションの始点を設定します。

startPointXPS_POINT*in始点の x 座標と y 座標。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。
E_INVALIDARG
startPoint で示される点が無効でした。XPS_POINT 構造体には、有効かつ有限の浮動小数点値を格納する必要があります。
E_POINTER
startPointNULL です。

解説(Remarks)

座標はページを基準とし、有効になっている変換の単位で表されます。

vtbl 19 HRESULT GetEndPoint(XPS_POINT* endPoint)

グラデーションの終点を取得します。

endPointXPS_POINT*out終点の x 座標と y 座標。

戻り値

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

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

解説(Remarks)

座標はページを基準とし、有効になっている変換の単位で表されます。

vtbl 20 HRESULT SetEndPoint(XPS_POINT* endPoint)

グラデーションの終点を設定します。

endPointXPS_POINT*in終点の x 座標と y 座標。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。
E_INVALIDARG
endPoint で示される点が無効でした。XPS_POINT 構造体には、有効かつ有限の浮動小数点値を格納する必要があります。
E_POINTER
endPointNULL です。

解説(Remarks)

座標はページを基準とし、有効になっている変換の単位で表されます。

vtbl 21 HRESULT Clone(IXpsOMLinearGradientBrush** linearGradientBrush)

インターフェイスのディープコピーを作成します。(IXpsOMLinearGradientBrush.Clone)

linearGradientBrushIXpsOMLinearGradientBrush**outインターフェイスのコピーへのポインター。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。
E_OUTOFMEMORY
この操作を実行するのに十分なメモリがありません。
E_POINTER
linearGradientBrushNULL です。

解説(Remarks)

このメソッドは、コピー内のリソースポインターを更新しません。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_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 指定が可能。