IInkDrawingAttributes
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
. (IInkDrawingAttributes)
メソッド 20
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
この InkDrawingAttributes オブジェクトで描画されるインク (手書き) の色を取得または設定します。(Get)
| CurrentColor | INT* | out | 現在のインクの色を RGB 値(整数)として受け取るポインタである。 |
解説(Remarks)
ハイコントラストモードでは、Color プロパティの設定にかかわらず、インクは常にシステムの色設定 (COLOR_WINDOWTEXT) で表示されます。ただし、インクの実際の色は常に設定された色として保存され、設定されていない場合は既定の色 (BLACK) が保存されます。たとえば、Color プロパティに RED を設定した場合、ハイコントラストモードのユーザーにはシステムの色でインクが表示されますが、ハイコントラストモードではないユーザーには設定された色である RED でインクが描画されて表示されます。この機能により、ハイコントラストモードのユーザーは、実際のストロークの色を変更することなく、システム設定の色でインクを表示できます。
つまり、既定ではハイコントラストモードのときにすべてのインクが 1 つの色にマッピングされます。この既定の色マッピング動作を無効にして独自の動作を実装するには、インクコレクターの SupportHighContrastInk プロパティを使用します。
ハイコントラストモードを実際に有効にするには、インクコレクターの AutoRedraw プロパティを TRUE に設定する必要があります (これは、ウィンドウが無効化されたときにインクが再描画されることを意味します)。AutoRedraw プロパティを FALSE に設定した場合、Tablet PC アプリケーションプログラミングインターフェイス (API) はハイコントラストモードをサポートしません。
この InkDrawingAttributes オブジェクトで描画されるインク (手書き) の色を取得または設定します。(Put)
| NewColor | INT | in | インクに設定する色を RGB 値(整数)で指定する。 |
解説(Remarks)
ハイコントラストモードでは、Color プロパティの設定にかかわらず、インクは常にシステムの色設定 (COLOR_WINDOWTEXT) で表示されます。ただし、インクの実際の色は常に設定された色として保存され、設定されていない場合は既定の色 (BLACK) が保存されます。たとえば、Color プロパティに RED を設定した場合、ハイコントラストモードのユーザーにはシステムの色でインクが表示されますが、ハイコントラストモードではないユーザーには設定された色である RED でインクが描画されて表示されます。この機能により、ハイコントラストモードのユーザーは、実際のストロークの色を変更することなく、システム設定の色でインクを表示できます。
つまり、既定ではハイコントラストモードのときにすべてのインクが 1 つの色にマッピングされます。この既定の色マッピング動作を無効にして独自の動作を実装するには、インクコレクターの SupportHighContrastInk プロパティを使用します。
ハイコントラストモードを実際に有効にするには、インクコレクターの AutoRedraw プロパティを TRUE に設定する必要があります (これは、ウィンドウが無効化されたときにインクが再描画されることを意味します)。AutoRedraw プロパティを FALSE に設定した場合、Tablet PC アプリケーションプログラミングインターフェイス (API) はハイコントラストモードをサポートしません。
インクを描画するときのペン先の y 軸方向のサイズ (幅) を取得または設定します。(Get)
| CurrentWidth | FLOAT* | out | 現在のペン幅をインク空間単位(HIMETRIC)で受け取るポインタである。 |
解説(Remarks)
タブレットがペンの筆圧を報告する場合 (IgnorePressure プロパティが false の場合)、インクの実際の幅は描画面に加えられた筆圧の大きさに応じて変化します。最大の筆圧が加えられたときの幅は Width プロパティの値の 150% になり、最小の筆圧のときの幅は Width プロパティの値の 50% になります。既定ではこのプロパティは true に設定されており、ペンからの筆圧が報告されます。筆圧を報告しない (インクの幅が変化しない) ように指定するには、IgnorePressure プロパティを true に設定します。
精度は HIMETRIC 単位の 1000 分の 1 (小数点以下 3 桁) に制限されます。たとえば、2.0006 という値を指定した場合、最も精密な測定値は 2.001 になります。
インクを描画するときのペン先の y 軸方向のサイズ (幅) を取得または設定します。(Put)
| NewWidth | FLOAT | in | 設定するペン幅をインク空間単位(HIMETRIC)で指定する。 |
解説(Remarks)
タブレットがペンの筆圧を報告する場合 (IgnorePressure プロパティが false の場合)、インクの実際の幅は描画面に加えられた筆圧の大きさに応じて変化します。最大の筆圧が加えられたときの幅は Width プロパティの値の 150% になり、最小の筆圧のときの幅は Width プロパティの値の 50% になります。既定ではこのプロパティは true に設定されており、ペンからの筆圧が報告されます。筆圧を報告しない (インクの幅が変化しない) ように指定するには、IgnorePressure プロパティを true に設定します。
精度は HIMETRIC 単位の 1000 分の 1 (小数点以下 3 桁) に制限されます。たとえば、2.0006 という値を指定した場合、最も精密な測定値は 2.001 になります。
InkDrawingAttributes オブジェクトでインクを描画するときのペンの高さを取得または設定します。(Get)
| CurrentHeight | FLOAT* | out | 現在のペン高さをインク空間単位(HIMETRIC)で受け取るポインタである。 |
解説(Remarks)
このプロパティは Rectangle のペン先にのみ適用されます。値は矩形の辺の高さを表します。Ball のペン先を使用している場合、ペン先の高さは Width プロパティと等しくなり、Height プロパティは無視されます。
精度は 1/1000 (小数点以下 3 桁) に制限されます。たとえば、2.0006 という値を指定した場合、最も精密な測定値は 2.001 になります。
InkDrawingAttributes オブジェクトでインクを描画するときのペンの高さを取得または設定します。(Put)
| NewHeight | FLOAT | in | 設定するペン高さをインク空間単位(HIMETRIC)で指定する。 |
解説(Remarks)
このプロパティは Rectangle のペン先にのみ適用されます。値は矩形の辺の高さを表します。Ball のペン先を使用している場合、ペン先の高さは Width プロパティと等しくなり、Height プロパティは無視されます。
精度は 1/1000 (小数点以下 3 桁) に制限されます。たとえば、2.0006 という値を指定した場合、最も精密な測定値は 2.001 になります。
インクの描画にベジエスムージングを使用するかどうかを指定する値を取得または設定します。(Get)
| Flag | VARIANT_BOOL* | out | ストロークにベジエ平滑化を適用するかどうかの現在の設定を受け取る VARIANT_BOOL へのポインタである。 |
解説(Remarks)
ベジエスムージングでは、インクをペンのサンプル点間を結ぶ直線ではなく、一連の曲線として描画します。インクを一連の曲線として描画すると、特に書き手の筆跡が安定していない場合に、インクを滑らかにするのに役立ちます。
ストロークの収集中にこのプロパティを設定した場合、インクは再描画または更新されるまで一連の曲線として描画されません。
インクの描画にベジエスムージングを使用するかどうかを指定する値を取得または設定します。(Put)
| Flag | VARIANT_BOOL | in | ストロークにベジエ平滑化を適用するかどうかを指定する VARIANT_BOOL である。 |
解説(Remarks)
ベジエスムージングでは、インクをペンのサンプル点間を結ぶ直線ではなく、一連の曲線として描画します。インクを一連の曲線として描画すると、特に書き手の筆跡が安定していない場合に、インクを滑らかにするのに役立ちます。
ストロークの収集中にこのプロパティを設定した場合、インクは再描画または更新されるまで一連の曲線として描画されません。
タブレット面へのペン先の筆圧が強くなるにつれて、描画されるインクが自動的に太くなるかどうかを指定する値を取得または設定します。(Get)
| Flag | VARIANT_BOOL* | out | 筆圧を無視して描画するかどうかの現在の設定を受け取る VARIANT_BOOL へのポインタである。 |
解説(Remarks)
ペン先への筆圧が強いほど、多くのインクが描画されます。この効果を発生させたくない場合は、このプロパティに VARIANT_TRUE を設定します。
タブレット面へのペン先の筆圧が強くなるにつれて、描画されるインクが自動的に太くなるかどうかを指定する値を取得または設定します。(Put)
| Flag | VARIANT_BOOL | in | 筆圧を無視して描画するかどうかを指定する VARIANT_BOOL である。 |
解説(Remarks)
ペン先への筆圧が強いほど、多くのインクが描画されます。この効果を発生させたくない場合は、このプロパティに VARIANT_TRUE を設定します。
ストロークをアンチエイリアス処理するかどうかを示す値を取得または設定します。(Get)
| Flag | VARIANT_BOOL* | out | インクをアンチエイリアス処理して描画するかどうかの現在の設定を受け取る VARIANT_BOOL へのポインタである。 |
解説(Remarks)
ストロークがアンチエイリアス処理されると、インクの縁に沿って前景色と背景色が混合され、見た目の滑らかさが向上します。
アンチエイリアス処理は、特に解像度の低いディスプレイでインクをより滑らかで鮮明に見せ、描画の品質を向上させます。ただし、アンチエイリアス処理には追加の処理負荷が伴うため、適切に判断して使用してください。
ストロークをアンチエイリアス処理するかどうかを示す値を取得または設定します。(Put)
| Flag | VARIANT_BOOL | in | インクをアンチエイリアス処理して描画するかどうかを指定する VARIANT_BOOL である。 |
解説(Remarks)
ストロークがアンチエイリアス処理されると、インクの縁に沿って前景色と背景色が混合され、見た目の滑らかさが向上します。
アンチエイリアス処理は、特に解像度の低いディスプレイでインクをより滑らかで鮮明に見せ、描画の品質を向上させます。ただし、アンチエイリアス処理には追加の処理負荷が伴うため、適切に判断して使用してください。
インクの透明度を示す値を取得または設定します。(Get)
| CurrentTransparency | INT* | out | 現在の透明度(0=不透明〜255=完全透明)を受け取るポインタである。 |
解説(Remarks)
インクの透明度を示す値を取得または設定します。(Put)
| NewTransparency | INT | in | 設定する透明度(0=不透明〜255=完全透明)を指定する。 |
解説(Remarks)
ペンと背景の色がどのように相互作用するかを定義する値を取得または設定します。(Get)
| CurrentRasterOperation | InkRasterOperation* | out | インク描画時に適用される現在のラスター演算を受け取る InkRasterOperation へのポインタである。 |
解説(Remarks)
InkRasterOperation 列挙体は、描画されたインクに対してラスター操作を実行するための値を定義します。たとえば、減算による透明化を行う場合は、ラスター値に MaskPen を設定します。
使用可能なラスター操作の完全な一覧については、InkRasterOperation 列挙型を参照してください。
ペンと背景の色がどのように相互作用するかを定義する値を取得または設定します。(Put)
| NewRasterOperation | InkRasterOperation | in | インク描画時に適用するラスター演算を指定する InkRasterOperation 値である。 |
解説(Remarks)
InkRasterOperation 列挙体は、描画されたインクに対してラスター操作を実行するための値を定義します。たとえば、減算による透明化を行う場合は、ラスター値に MaskPen を設定します。
使用可能なラスター操作の完全な一覧については、InkRasterOperation 列挙型を参照してください。
この InkDrawingAttributes オブジェクトに関連付けられたインクを描画するときに、どのペン先を使用するかを示す値を取得または設定します。(Get)
| CurrentPenTip | InkPenTip* | out | 現在のペン先形状(円形または矩形)を受け取る InkPenTip へのポインタである。 |
解説(Remarks)
使用可能なペン先の完全な一覧については、InkPenTip 列挙体を参照してください。
このプロパティに InkPenTip.IPT_Ball を設定した場合、Height プロパティは無視されます。
正方形のペン先を作成するには、PenTip プロパティに InkPenTip.IPT_Rectangle を設定します。次に、Height プロパティを Width プロパティと同じ値に設定します。
この InkDrawingAttributes オブジェクトに関連付けられたインクを描画するときに、どのペン先を使用するかを示す値を取得または設定します。(Put)
| NewPenTip | InkPenTip | in | 設定するペン先形状(円形または矩形)を指定する InkPenTip 値である。 |
解説(Remarks)
使用可能なペン先の完全な一覧については、InkPenTip 列挙体を参照してください。
このプロパティに InkPenTip.IPT_Ball を設定した場合、Height プロパティは無視されます。
正方形のペン先を作成するには、PenTip プロパティに InkPenTip.IPT_Rectangle を設定します。次に、Height プロパティを Width プロパティと同じ値に設定します。
オブジェクトに格納されているアプリケーション定義データのコレクションを取得します。(IInkDrawingAttributes.get_ExtendedProperties)
| Properties | IInkExtendedProperties** | out | この描画属性に関連付けられた拡張プロパティのコレクションを受け取るポインタである。 |
解説(Remarks)
アプリケーションは ExtendedProperties プロパティを使用して、オブジェクトに格納されているカスタムデータにアクセスできます。このカスタムデータは、オブジェクトとともに自動的にシリアル化されます。
InkDrawingAttributes オブジェクトの複製を作成します。
| DrawingAttributes | IInkDrawingAttributes** | out | このメソッドが返るときに、新しく作成された InkDrawingAttributes オブジェクトへのポインターが格納されます。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| 操作を完了するためのメモリを割り当てられません。 | |
| 不特定のエラーが発生しました。 | |
| パラメーターに無効なポインターが含まれていました。 | |
|
メソッド内部で例外が発生しました。 |
|
InkDisp オブジェクトが登録されていません。 |
| 予期しないパラメーターまたはプロパティの型です。 |
解説(Remarks)
Clone メソッドは、InkDisp、InkDrawingAttributes、InkRecognizerContext の各オブジェクトに対して定義されています。Clone メソッドは、元のオブジェクトの完全なコピーを返します。
ほとんどの場合、複製されたオブジェクトは元のオブジェクトの完全なコピーですが、2 つのオブジェクトの間に関連は存在しません。これに対する例外の詳細については、このトピックの解説セクションを参照してください。
InkDrawingAttributes オブジェクト: 通常は、描画属性のマスターコピーを複製し、1 つ以上の属性を変更したうえで、ModifyDrawingAttributes メソッドを呼び出して、変更した描画属性を使用します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IInkDrawingAttributes "{BF519B75-0A15-4623-ADC9-C00D436A8092}" #usecom global IInkDrawingAttributes IID_IInkDrawingAttributes "{D8BF32A2-05A5-44C3-B3AA-5E80AC7D2576}" #comfunc global IInkDrawingAttributes_get_Color 7 var #comfunc global IInkDrawingAttributes_put_Color 8 int #comfunc global IInkDrawingAttributes_get_Width 9 var #comfunc global IInkDrawingAttributes_put_Width 10 float #comfunc global IInkDrawingAttributes_get_Height 11 var #comfunc global IInkDrawingAttributes_put_Height 12 float #comfunc global IInkDrawingAttributes_get_FitToCurve 13 var #comfunc global IInkDrawingAttributes_put_FitToCurve 14 int #comfunc global IInkDrawingAttributes_get_IgnorePressure 15 var #comfunc global IInkDrawingAttributes_put_IgnorePressure 16 int #comfunc global IInkDrawingAttributes_get_AntiAliased 17 var #comfunc global IInkDrawingAttributes_put_AntiAliased 18 int #comfunc global IInkDrawingAttributes_get_Transparency 19 var #comfunc global IInkDrawingAttributes_put_Transparency 20 int #comfunc global IInkDrawingAttributes_get_RasterOperation 21 var #comfunc global IInkDrawingAttributes_put_RasterOperation 22 int #comfunc global IInkDrawingAttributes_get_PenTip 23 var #comfunc global IInkDrawingAttributes_put_PenTip 24 int #comfunc global IInkDrawingAttributes_get_ExtendedProperties 25 sptr #comfunc global IInkDrawingAttributes_Clone 26 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IInkDrawingAttributes "{BF519B75-0A15-4623-ADC9-C00D436A8092}" #usecom global IInkDrawingAttributes IID_IInkDrawingAttributes "{D8BF32A2-05A5-44C3-B3AA-5E80AC7D2576}" #comfunc global IInkDrawingAttributes_get_Color 7 sptr #comfunc global IInkDrawingAttributes_put_Color 8 int #comfunc global IInkDrawingAttributes_get_Width 9 sptr #comfunc global IInkDrawingAttributes_put_Width 10 float #comfunc global IInkDrawingAttributes_get_Height 11 sptr #comfunc global IInkDrawingAttributes_put_Height 12 float #comfunc global IInkDrawingAttributes_get_FitToCurve 13 sptr #comfunc global IInkDrawingAttributes_put_FitToCurve 14 int #comfunc global IInkDrawingAttributes_get_IgnorePressure 15 sptr #comfunc global IInkDrawingAttributes_put_IgnorePressure 16 int #comfunc global IInkDrawingAttributes_get_AntiAliased 17 sptr #comfunc global IInkDrawingAttributes_put_AntiAliased 18 int #comfunc global IInkDrawingAttributes_get_Transparency 19 sptr #comfunc global IInkDrawingAttributes_put_Transparency 20 int #comfunc global IInkDrawingAttributes_get_RasterOperation 21 sptr #comfunc global IInkDrawingAttributes_put_RasterOperation 22 int #comfunc global IInkDrawingAttributes_get_PenTip 23 sptr #comfunc global IInkDrawingAttributes_put_PenTip 24 int #comfunc global IInkDrawingAttributes_get_ExtendedProperties 25 sptr #comfunc global IInkDrawingAttributes_Clone 26 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。