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

IXpsOMRadialGradientBrush

COM
IID75f207e5-08bf-413c-96b1-b82b4064176b継承元IXpsOMGradientBrush自前メソッド開始 vtbl17

公式ドキュメント

放射状グラデーションを指定します。

解説(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,
        &centerPoint,
        &gradientOrigin,
        &radiiSizes,
        &newInterface);

    if (SUCCEEDED(hr))
    {
        // newInterface を使用します

        newInterface->Release();
    }
    xpsFactory->Release();
}
else
{
    // hr で返された HRESULT エラーを評価します
}

メソッド 7

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

vtbl 17 HRESULT GetCenter(XPS_POINT* center)

放射状グラデーション領域の楕円の中心点を取得します。

centerXPS_POINT*out放射状グラデーション領域の楕円の中心点の x 座標と y 座標。

戻り値

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

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

解説(Remarks)

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

次の図は、放射状グラデーションの各部を示しています。center は、放射状グラデーション領域を囲む楕円の中心点の位置を取得します。この図の詳細な説明については、IXpsOMRadialGradientBrush を参照してください。

放射状グラデーションで使用される用語を示す図
vtbl 18 HRESULT SetCenter(XPS_POINT* center)

放射状グラデーション領域の楕円の中心点を設定します。

centerXPS_POINT*in放射状グラデーションの楕円の中心点に設定する x 座標と y 座標。

戻り値

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

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

解説(Remarks)

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

次の図は、放射状グラデーションの各部を示しています。center は中心点の位置を設定します。この図の詳細な説明については、IXpsOMRadialGradientBrush を参照してください。

放射状グラデーションで使用される用語を示す図
vtbl 19 HRESULT GetRadiiSizes(XPS_SIZE* radiiSizes)

放射状グラデーション領域の楕円を定義する半径のサイズを取得します。

radiiSizesXPS_SIZE*out

半径のサイズを受け取る XPS_SIZE 構造体。

フィールド 意味
width x 軸方向の半径のサイズ。
height y 軸方向の半径のサイズ。

サイズは XPS 単位で表されます。1 インチは 96 XPS 単位です。たとえば、1 インチの半径は 96 XPS 単位になります。

戻り値

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

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

解説(Remarks)

次の図は、放射状グラデーションの各部を示しています。radiiSizes.width は x 半径を、radiiSizes.height は y 半径を取得します。この図の詳細な説明については、IXpsOMRadialGradientBrush を参照してください。

放射状グラデーションで使用される用語を示す図
vtbl 20 HRESULT SetRadiiSizes(XPS_SIZE* radiiSizes)

放射状グラデーション領域の楕円を定義する半径のサイズを設定します。

radiiSizesXPS_SIZE*in

半径のサイズを受け取る XPS_SIZE 構造体。

フィールド 意味
width x 軸方向の半径のサイズ。
height y 軸方向の半径のサイズ。

サイズは XPS 単位で表されます。1 インチは 96 XPS 単位です。たとえば、1 インチの半径は 96 XPS 単位になります。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。
E_INVALIDARG
radiiSizes で示されるサイズのいずれかが無効です。XPS_SIZE 構造体には、有効かつ有限で負でない浮動小数点値を格納する必要があります。
E_POINTER
radiiSizesNULL です。

解説(Remarks)

次の図は、放射状グラデーションの各部を示しています。radiiSizes.width は x 半径を、radiiSizes.height は y 半径を設定します。この図の詳細な説明については、IXpsOMRadialGradientBrush を参照してください。

放射状グラデーションで使用される用語を示す図
vtbl 21 HRESULT GetGradientOrigin(XPS_POINT* origin)

放射状グラデーションの原点を取得します。

originXPS_POINT*out放射状グラデーションの原点の x 座標と y 座標。

戻り値

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

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

解説(Remarks)

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

次の図は、放射状グラデーションの各部を示しています。origin は、グラデーションの原点の位置を取得します。この図の詳細な説明については、IXpsOMRadialGradientBrush を参照してください。

放射状グラデーションで使用される用語を示す図
vtbl 22 HRESULT SetGradientOrigin(XPS_POINT* origin)

放射状グラデーションの原点を設定します。

originXPS_POINT*in放射状グラデーションの原点に設定する x 座標と y 座標。

戻り値

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

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

解説(Remarks)

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

次の図は、放射状グラデーションの各部を示しています。origin は、放射状グラデーションの原点の位置を設定します。この図の詳細な説明については、IXpsOMRadialGradientBrush を参照してください。

放射状グラデーションで使用される用語を示す図
vtbl 23 HRESULT Clone(IXpsOMRadialGradientBrush** radialGradientBrush)

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

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

戻り値

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

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

解説(Remarks)

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

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