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

IXpsOMVisualBrush

COM
IID97e294af-5b37-46b4-8057-874d2f64119b継承元IXpsOMTileBrush自前メソッド開始 vtbl18

公式ドキュメント

ビジュアル要素をソースとして使用するブラシです。

解説(Remarks)

次のコード例は、このインターフェイスのインスタンスを作成する方法を示しています。


IXpsOMVisualBrush        *newInterface;

// CoInitializeEx がこのスレッドから事前に呼び出されている
//  ことが暗黙の前提となる点に注意してください。

hr = CoCreateInstance(
    __uuidof(XpsOMObjectFactory),
    NULL,
    CLSCTX_INPROC_SERVER,
    _uuidof(IXpsOMObjectFactory),
    reinterpret_cast<LPVOID*>(&xpsFactory)
    );

if (SUCCEEDED(hr))
{
    hr = xpsFactory->CreateVisualBrush (
        &viewBox,
        &viewPort,
        &newInterface);

    if (SUCCEEDED(hr))
    {
        // 次のいずれかの方法でビジュアルを割り当てます:
        newInterface->SetVisualLocal (localVisual);
        // または
        newInterface->SetVisualLookup (visualLookupKey);
        // newInterface を使用します

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

newInterface->Release();
xpsFactory->Release();

メソッド 6

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

vtbl 18 HRESULT GetVisual(IXpsOMVisual** visual)

ブラシのソースとして使用される、解決済みのビジュアルのインターフェイスへのポインターを取得します。

visualIXpsOMVisual**out

ブラシのソースとして使用される、解決済みのビジュアルオブジェクトの IXpsOMVisual インターフェイスへのポインターです。ビジュアルが設定されていない場合は、NULL ポインターが返されます。

このパラメーターに返される値は、ビジュアルオブジェクトを設定するために直近に呼び出されたメソッドによって異なります。

直近に呼び出されたメソッド visual に返されるオブジェクト
SetVisualLocal SetVisualLocal によって設定されたビジュアル。
SetVisualLookup SetVisualLookup によって設定されたキーと一致するルックアップキーで、リソースディレクトリから取得されたビジュアル。
SetVisualLocalSetVisualLookup のいずれもまだ呼び出されていません。 NULL ポインター。

戻り値

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

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

解説(Remarks)

このメソッドは IXpsOMVisual インターフェイスポインターを返します。ただし、返されるインターフェイスは、IXpsOMCanvasIXpsOMPathIXpsOMGlyphs など、IXpsOMVisual を継承する任意のインターフェイスである可能性があります。

vtbl 19 HRESULT GetVisualLocal(IXpsOMVisual** visual)

ブラシのソースとして使用される、ローカルで共有されないビジュアルのインターフェイスへのポインターを取得します。

visualIXpsOMVisual**out

ブラシのソースとして使用される、ローカルで共有されないビジュアルの IXpsOMVisual インターフェイスへのポインターです。ローカルのビジュアルオブジェクトが設定されていない場合、またはビジュアルのルックアップキーが設定されている場合は、NULL ポインターが返されます。

直近に呼び出されたメソッド visual に返されるオブジェクト
SetVisualLocal SetVisualLocal によって設定されたビジュアル。
SetVisualLookup NULL ポインター。
SetVisualLocalSetVisualLookup のいずれもまだ呼び出されていません。 NULL ポインター。

戻り値

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

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

解説(Remarks)

このメソッドは IXpsOMVisual インターフェイスポインターを返します。ただし、返されるインターフェイスは、IXpsOMCanvasIXpsOMPathIXpsOMGlyphs など、IXpsOMVisual を継承する任意のインターフェイスである可能性があります。

vtbl 20 HRESULT SetVisualLocal(IXpsOMVisual* visual)

ブラシのソースとして使用される、ローカルで共有されないビジュアルのインターフェイスポインターを設定します。

visualIXpsOMVisual*inブラシのビジュアルとして設定する IXpsOMVisual インターフェイスへのポインターです。ローカルのビジュアルが設定されている場合、NULL ポインターを渡すとそれが解放されます。

戻り値

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

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

解説(Remarks)

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

直近に呼び出されたメソッド GetVisual によって visual に返されるオブジェクト GetVisualLocal によって visual に返されるオブジェクト GetVisualLookup によって lookup に返される文字列
SetVisualLocal (このメソッド)。 SetVisualLocal によって設定されたビジュアル。 SetVisualLocal によって設定されたビジュアル。 NULL ポインター。
SetVisualLookup SetVisualLookup によって設定されたキーと一致するルックアップキーで、リソースディレクトリから取得されたビジュアル。 NULL ポインター。 SetVisualLookup によって設定されたルックアップキー。
SetVisualLocalSetVisualLookup のいずれもまだ呼び出されていません。 NULL ポインター。 NULL ポインター。 NULL ポインター。
vtbl 21 HRESULT GetVisualLookup(LPWSTR* lookup)

ブラシのソースとして使用されるビジュアルについて、リソースディクショナリ内のルックアップキー名を取得します。

lookupLPWSTR*out

ブラシのソースとして使用されるビジュアルの、リソースディクショナリ内のキー名です。ビジュアルのルックアップキーが設定されていない場合、またはローカルのビジュアルが設定されている場合は、NULL ポインターが返されます。

直近に呼び出されたメソッド lookup に返されるオブジェクト
SetVisualLocal NULL ポインター。
SetVisualLookup SetVisualLookup によって設定されたルックアップキー。
SetVisualLocalSetVisualLookup のいずれもまだ呼び出されていません。 NULL ポインター。

戻り値

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

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

解説(Remarks)

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

vtbl 22 HRESULT SetVisualLookup(LPWSTR lookup)

ブラシのソースとして使用される、リソースディクショナリに格納された共有ビジュアルのルックアップキー名を設定します。

lookupLPWSTRinブラシのソースとして使用される共有ビジュアルのルックアップキー名です。ルックアップキーが既に設定されている場合、NULL ポインターを渡すとクリアされます。

戻り値

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

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

解説(Remarks)

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

直近に呼び出されたメソッド GetVisual によって visual に返されるオブジェクト GetVisualLocal によって visual に返されるオブジェクト GetVisualLookup によって lookup に返される文字列
SetVisualLocal SetVisualLocal によって設定されたビジュアル。 SetVisualLocal によって設定されたビジュアル。 NULL ポインター。
SetVisualLookup (このメソッド)。 SetVisualLookup によって設定されたキーと一致するルックアップキーで、リソースディレクトリから取得されたビジュアル。 NULL ポインター。 SetVisualLookup によって設定されたルックアップキー。
SetVisualLocalSetVisualLookup のいずれもまだ呼び出されていません。 NULL ポインター。 NULL ポインター。 NULL ポインター。
vtbl 23 HRESULT Clone(IXpsOMVisualBrush** visualBrush)

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

visualBrushIXpsOMVisualBrush**outインターフェイスのコピーへのポインターです。

戻り値

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

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

解説(Remarks)

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

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IXpsOMVisualBrush "{97E294AF-5B37-46B4-8057-874D2F64119B}"
#usecom global IXpsOMVisualBrush IID_IXpsOMVisualBrush "{}"
#comfunc global IXpsOMVisualBrush_GetVisual        18 sptr
#comfunc global IXpsOMVisualBrush_GetVisualLocal   19 sptr
#comfunc global IXpsOMVisualBrush_SetVisualLocal   20 sptr
#comfunc global IXpsOMVisualBrush_GetVisualLookup  21 var
#comfunc global IXpsOMVisualBrush_SetVisualLookup  22 wstr
#comfunc global IXpsOMVisualBrush_Clone            23 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。