IXpsOMImageBrush
COM公式ドキュメント
ラスター イメージをソースとして使用するブラシです。
解説(Remarks)
このブラシが使用するイメージは、そのイメージの解像度によって指定される座標空間で定義されます。イメージの種類は JPEG、PNG、TIFF 6.0、または HD Photo である必要があります。
次のコード例は、このインターフェイスのインスタンスを作成する方法を示しています。
IXpsOMImageBrush *newInterface;
// The following values are defined outside of
// this example.
// IXpsOMImageResource *image;
// XPS_RECT viewBox;
// XPS_RECT viewPort;
// Note the implicit requirement that CoInitializeEx
// has previously been called from this thread.
hr = CoCreateInstance(
__uuidof(XpsOMObjectFactory),
NULL,
CLSCTX_INPROC_SERVER,
_uuidof(IXpsOMObjectFactory),
reinterpret_cast<LPVOID*>(&xpsFactory)
);
if (SUCCEEDED(hr))
{
hr = xpsFactory->CreateImageBrush (
image,
&viewBox,
&viewPort,
&newInterface);
if (SUCCEEDED(hr))
{
// use newInterface
newInterface->Release();
}
xpsFactory->Release();
}
else
{
// evaluate HRESULT error returned in hr
}
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
ブラシのソースとして使用するイメージ リソースを格納する IXpsOMImageResource インターフェイスへのポインターを取得します。
| imageResource | IXpsOMImageResource** | out | ブラシのソースとして使用するイメージ リソースを格納する IXpsOMImageResource インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表に示すものが含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| リターン コード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| imageResource が NULL です。 |
解説(Remarks)
リソースを XPS OM に読み込んで解析した後、このメソッドは別のリソースに関するエラーを返す場合があります。これは、リソースの読み込み時にすべてのリレーションシップが解析されるためです。
ブラシのソースとして使用するイメージ リソースを格納する IXpsOMImageResource インターフェイスへのポインターを設定します。
| imageResource | IXpsOMImageResource* | in | ブラシのソースとして使用するイメージ リソースです。このパラメーターに NULL ポインターを指定することはできません。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表に示すものが含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| リターン コード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| imageResource が NULL です。 | |
| imageResource が、認識されるインターフェイス実装を指していません。XPS ドキュメント API インターフェイスの独自実装はサポートされていません。 |
解説(Remarks)
イメージ リソースの種類は JPEG、PNG、TIFF 6.0、または HD Photo である必要があります。
イメージに関連付けられたカラー プロファイル リソースを格納する IXpsOMColorProfileResource インターフェイスへのポインターを取得します。
| colorProfileResource | IXpsOMColorProfileResource** | out | イメージに関連付けられたカラー プロファイル リソースを格納する IXpsOMColorProfileResource インターフェイスへのポインターです。カラー プロファイル リソースが設定されていない場合は、NULL ポインターが返されます。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表に示すものが含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| リターン コード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| colorProfileResource が NULL です。 |
解説(Remarks)
リソースを XPS OM に読み込んで解析した後、このメソッドは別のリソースに関するエラーを返す場合があります。これは、リソースの読み込み時にすべてのリレーションシップが解析されるためです。
イメージに関連付けられたカラー プロファイル リソースを格納する IXpsOMColorProfileResource インターフェイスへのポインターを設定します。
| colorProfileResource | IXpsOMColorProfileResource* | in | イメージに関連付けるカラー プロファイル リソースです。NULL ポインターを指定すると、以前に設定されたカラー プロファイル リソースが解放されます。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表に示すものが含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| リターン コード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| colorProfileResource が、認識されるインターフェイス実装を指していません。XPS ドキュメント API インターフェイスの独自実装はサポートされていません。 |
インターフェイスのディープ コピーを作成します。(IXpsOMImageBrush.Clone)
| imageBrush | IXpsOMImageBrush** | out | インターフェイスのコピーへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表に示すものが含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| リターン コード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| この操作を実行するのに十分なメモリがありません。 | |
| imageBrush が NULL です。 |
解説(Remarks)
このメソッドは、コピー内のリソース ポインターを更新しません。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IXpsOMImageBrush "{3DF0B466-D382-49EF-8550-DD94C80242E4}"
#usecom global IXpsOMImageBrush IID_IXpsOMImageBrush "{}"
#comfunc global IXpsOMImageBrush_GetImageResource 18 sptr
#comfunc global IXpsOMImageBrush_SetImageResource 19 sptr
#comfunc global IXpsOMImageBrush_GetColorProfileResource 20 sptr
#comfunc global IXpsOMImageBrush_SetColorProfileResource 21 sptr
#comfunc global IXpsOMImageBrush_Clone 22 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。