IXpsOMGeometry
COM公式ドキュメント
パスまたはクリッピング領域の形状を記述します。
解説(Remarks)
次のコード例は、このインターフェイスのインスタンスを作成する方法を示しています。
IXpsOMGeometry *newInterface;
// このスレッドから CoInitializeEx が事前に呼び出されている
// ことが暗黙の前提となる点に注意してください。
hr = CoCreateInstance(
__uuidof(XpsOMObjectFactory),
NULL,
CLSCTX_INPROC_SERVER,
_uuidof(IXpsOMObjectFactory),
reinterpret_cast<LPVOID*>(&xpsFactory)
);
if (SUCCEEDED(hr))
{
hr = xpsFactory->CreateGeometry (&newInterface);
if (SUCCEEDED(hr))
{
// newInterface を使用します
newInterface->Release();
}
xpsFactory->Release();
}
else
{
// hr で返された HRESULT エラーを評価します
}
メソッド 9
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
このジオメトリを構成するフィギュアのコレクションを保持する、ジオメトリの IXpsOMGeometryFigureCollection インターフェイスへのポインターを取得します。
| figures | IXpsOMGeometryFigureCollection** | out | IXpsOMGeometryFigureCollection インターフェイスへのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| figures が NULL です。 |
使用する塗りつぶし規則を表す XPS_FILL_RULE 値を取得します。
| fillRule | XPS_FILL_RULE* | out | 使用する塗りつぶし規則を表す XPS_FILL_RULE 値。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| fillRule が NULL です。 |
解説(Remarks)
塗りつぶし規則によって、ある点が塗りつぶし領域の内側にあるかどうかがどのように判定されるかについて詳しくは、XPS_FILL_RULE を参照してください。
fillRule に返される値は、ドキュメントマークアップ内の PathGeometry 要素の FillRule 属性に対応します。
使用する塗りつぶし規則を表す XPS_FILL_RULE 値を設定します。
| fillRule | XPS_FILL_RULE | in | 使用する塗りつぶし規則を表す XPS_FILL_RULE 値。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| fillRule が有効な XPS_FILL_RULE 値ではありません。 |
解説(Remarks)
塗りつぶし規則によって、ある点が塗りつぶし領域の内側にあるかどうかがどのように判定されるかについて詳しくは、XPS_FILL_RULE を参照してください。
ドキュメントマークアップでは、この値は PathGeometry 要素の FillRule 属性に対応します。
ジオメトリの解決済みマトリックス変換を保持する、ジオメトリの IXpsOMMatrixTransform インターフェイスへのポインターを取得します。
| transform | IXpsOMMatrixTransform** | out | ジオメトリの解決済みマトリックス変換を保持する、ジオメトリの IXpsOMMatrixTransform インターフェイスへのポインター。マトリックス変換が設定されていない場合は、NULL ポインターが返されます。 このパラメーターに返される値は、変換を設定するために直近に呼び出されたメソッドによって異なります。
|
戻り値
このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| transform が NULL です。 | |
|
SetStrokeBrushLookup によって設定された参照キー名が、ブラシではないオブジェクトを参照しています。 |
|
参照値と一致するキー名を持つオブジェクトが見つかりませんでした。
lookup に渡された値と一致するキー名を持つオブジェクトが見つかりませんでした。 |
ジオメトリのローカルな (共有されない) マトリックス変換を保持する IXpsOMMatrixTransform インターフェイスへのポインターを取得します。
| transform | IXpsOMMatrixTransform** | out | ジオメトリのローカルな (共有されない) マトリックス変換を保持する IXpsOMMatrixTransform インターフェイスへのポインター。ローカルマトリックス変換が設定されていない場合、またはマトリックス変換の参照キーが設定されている場合は、NULL ポインターが返されます。 このパラメーターに返される値は、変換を設定するために直近に呼び出されたメソッドによって異なります。
|
戻り値
このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| transform が NULL です。 |
ローカルな (共有されない) マトリックス変換を設定します。(IXpsOMGeometry.SetTransformLocal)
| transform | IXpsOMMatrixTransform* | in | ジオメトリのローカルな (共有されない) マトリックス変換として設定する IXpsOMMatrixTransform インターフェイスへのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| transform が、認識可能なインターフェイス実装を指していません。XPS ドキュメント API インターフェイスの独自実装はサポートされていません。 |
解説(Remarks)
SetTransformLocal を呼び出すと、変換の参照キーは解放され、GetTransformLookup は lookup パラメーターに NULL ポインターを返します。次の表は、このプロパティのローカル値と参照値の関係を示しています。
| 直近に呼び出されたメソッド | GetTransform が transform に返すオブジェクト | GetTransformLocal が transform に返すオブジェクト | GetTransformLookup が lookup に返すオブジェクト |
|---|---|---|---|
| SetTransformLocal (このメソッド) | SetTransformLocal によって設定されたローカル変換。 | SetTransformLocal によって設定されたローカル変換。 | NULL ポインター。 |
| SetTransformLookup によって設定されたキーと一致する参照キーで、リソースディレクトリから取得された共有変換。 | NULL ポインター。 | SetTransformLookup によって設定された参照キー。 | |
| SetTransformLocal と SetTransformLookup のどちらもまだ呼び出されていません。 | NULL ポインター。 | NULL ポインター。 | NULL ポインター。 |
ジオメトリの解決済みマトリックス変換を保持する IXpsOMMatrixTransform インターフェイスの参照キーを取得します。
| lookup | LPWSTR* | out | リソースディクショナリ内の IXpsOMMatrixTransform インターフェイスの参照キー。マトリックス変換の参照キーが設定されていない場合、またはローカルマトリックス変換が設定されている場合は、NULL ポインターが返されます。 このパラメーターに返される値は、変換を設定するために直近に呼び出されたメソッドによって異なります。
|
戻り値
このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| lookup が NULL です。 |
解説(Remarks)
このメソッドは、lookup に返される文字列で使用されるメモリを割り当てます。 lookup が NULL でない場合は、CoTaskMemFree 関数を使用してそのメモリを解放してください。
リソースディクショナリ内の共有マトリックス変換の参照キー名を設定します。(IXpsOMGeometry.SetTransformLookup)
| lookup | LPWSTR | in | リソースディクショナリ内の共有マトリックス変換のキー名。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| XML Paper Specification に照らして、lookup の値が有効な参照キー文字列ではありません。 | |
| lookup の参照キー名が、変換ではないオブジェクトを参照しています。 | |
|
lookup に渡された値と一致するキー名を持つオブジェクトが見つかりませんでした。 |
解説(Remarks)
SetTransformLookup を呼び出すと、ローカル変換は解放され、GetTransformLocal は transform パラメーターに NULL ポインターを返します。次の表は、このプロパティのローカル値と参照値の関係を示しています。
| 直近に呼び出されたメソッド | GetTransform が transform に返すオブジェクト | GetTransformLocal が transform に返すオブジェクト | GetTransformLookup が lookup に返すオブジェクト |
|---|---|---|---|
| SetTransformLocal によって設定されたローカル変換。 | SetTransformLocal によって設定されたローカル変換。 | NULL ポインター。 | |
| SetTransformLookup (このメソッド) | SetTransformLookup によって設定されたキーと一致する参照キーで、リソースディレクトリから取得された共有変換。 | NULL ポインター。 | SetTransformLookup によって設定された参照キー。 |
| SetTransformLocal と SetTransformLookup のどちらもまだ呼び出されていません。 | NULL ポインター。 | NULL ポインター。 | NULL ポインター。 |
インターフェイスのディープコピーを作成します。(IXpsOMGeometry.Clone)
| geometry | IXpsOMGeometry** | out | インターフェイスのコピーへのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| この操作を実行するのに十分なメモリがありません。 | |
| geometry が NULL です。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IXpsOMGeometry "{64FCF3D7-4D58-44BA-AD73-A13AF6492072}" #usecom global IXpsOMGeometry IID_IXpsOMGeometry "{}" #comfunc global IXpsOMGeometry_GetFigures 5 sptr #comfunc global IXpsOMGeometry_GetFillRule 6 var #comfunc global IXpsOMGeometry_SetFillRule 7 int #comfunc global IXpsOMGeometry_GetTransform 8 sptr #comfunc global IXpsOMGeometry_GetTransformLocal 9 sptr #comfunc global IXpsOMGeometry_SetTransformLocal 10 sptr #comfunc global IXpsOMGeometry_GetTransformLookup 11 var #comfunc global IXpsOMGeometry_SetTransformLookup 12 wstr #comfunc global IXpsOMGeometry_Clone 13 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IXpsOMGeometry "{64FCF3D7-4D58-44BA-AD73-A13AF6492072}" #usecom global IXpsOMGeometry IID_IXpsOMGeometry "{}" #comfunc global IXpsOMGeometry_GetFigures 5 sptr #comfunc global IXpsOMGeometry_GetFillRule 6 sptr #comfunc global IXpsOMGeometry_SetFillRule 7 int #comfunc global IXpsOMGeometry_GetTransform 8 sptr #comfunc global IXpsOMGeometry_GetTransformLocal 9 sptr #comfunc global IXpsOMGeometry_SetTransformLocal 10 sptr #comfunc global IXpsOMGeometry_GetTransformLookup 11 sptr #comfunc global IXpsOMGeometry_SetTransformLookup 12 wstr #comfunc global IXpsOMGeometry_Clone 13 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。