Win32 API 日本語リファレンス
ホームUI.TabletPC › IInkExtendedProperties

IInkExtendedProperties

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID89f2a8be-95a9-4530-8b8f-88e971e3e25f継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

アプリケーション定義のデータを保持する IInkExtendedProperty オブジェクトのコレクションを表します。

解説(Remarks)

拡張プロパティのデータは、アプリケーション固有のグローバル一意識別子 (GUID) によってインデックス付けされます。

メモ 空の IInkExtendedProperties オブジェクトを格納することはできません。格納するには、オブジェクトにデータが含まれている必要があります。たとえば、後で使用するためにストロークへ拡張プロパティを追加しようとした場合、その拡張プロパティにデータが含まれていないと例外がスローされます。
IInkExtendedProperties コレクションは、IInkStrokeDispInkDrawingAttributes、および InkDisp の各オブジェクトに追加できます。

オートメーションにおけるコレクションの詳細については、「COM ライブラリの使用」を参照してください。

このインターフェイスを実装するクラスを独自に定義した場合、その新しいクラスは Tablet PC のアプリケーション プログラミング インターフェイス (API) と正しく連携しません。

メソッド 7

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT get_Count(INT* Count)

コレクションに含まれるオブジェクトまたはコレクションの数を取得します。(IInkExtendedProperties.get_Count)

CountINT*outコレクションに含まれる拡張プロパティの個数を受け取るポインタである。
vtbl 8 HRESULT get__NewEnum(IUnknown** _NewEnum)
_NewEnumIUnknown**outコレクションを反復処理するための列挙子 (IEnumVARIANT) を受け取る IUnknown ポインタである。
vtbl 9 HRESULT Item(VARIANT Identifier, IInkExtendedProperty** Item)

IInkExtendedProperties コレクション内の指定したインデックスにある IInkExtendedProperty オブジェクトを取得します。

IdentifierVARIANTin

取得する IInkExtendedProperty オブジェクトの 0 から始まるインデックス、または GUID。

VARIANT 構造体の詳細については、「COM ライブラリの使用」を参照してください。

ItemIInkExtendedProperty**outこのメソッドから制御が戻るときに、IInkExtendedProperties コレクション内の指定したインデックスにある IInkExtendedProperty オブジェクトへのポインターが格納されます。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

戻り値 説明
S_OK
成功しました。
E_POINTER
パラメーターに無効なポインターが含まれていました。
E_FAIL
不特定のエラーが発生しました。
CO_E_CLASSTRING
GUID の形式が無効です。
DISP_E_TYPEMISMATCH
いずれかのパラメーターが有効な VARIANT 型ではありません。
E_INVALIDARG
引数が無効です。
E_UNEXPECTED
パラメーターまたはプロパティの型が予期しないものです。
REGDB_CLASSNOTREG
型オブジェクトが登録されていません。
E_OUTOFMEMORY
操作を完了するためのメモリを割り当てられません。
E_INK_EXCEPTION
メソッド内で例外が発生しました。
TPC_E_RECOGNIZER_NOT_REGISTERED
認識エンジンのレジストリ キーが破損しているか、使用中の環境が手書き認識をサポートしていません。

解説(Remarks)

インデックスがコレクション内の既存のメンバーのいずれにも一致しない場合は、エラーが発生します。

Item メソッドは VARIANT 型の入力引数を受け取ります。ただし、この変数のサブタイプは整数または STRING (BSTR) である必要があります。つまり、スクリプト言語を使用する場合などの遅延バインディングでは、引数を変数としてではなく STRING リテラルとして渡す必要があります。

VARIANT および BSTR データ型の詳細については、「COM ライブラリの使用」を参照してください。

vtbl 10 HRESULT Add(LPWSTR Guid, VARIANT Data, IInkExtendedProperty** InkExtendedProperty)

IInkExtendedProperty オブジェクトを作成し、IInkExtendedProperties コレクションに追加します。

GuidLPWSTRin

新しい IInkExtendedProperty オブジェクトの名前。名前は、グローバル一意識別子 (GUID) を次の形式で表す BSTR として指定します。

{dfc71f44-354b-4ca1-93d7-7459410b6343} (中かっこを含む)

BSTR データ型の詳細については、「COM ライブラリの使用」を参照してください。

DataVARIANTin

新しい IInkExtendedProperty オブジェクトのデータ。

VARIANT 構造体の詳細については、「COM ライブラリの使用」を参照してください。

InkExtendedPropertyIInkExtendedProperty**outこのメソッドから制御が戻るときに、新しい拡張プロパティへのポインターが格納されます。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

戻り値 説明
S_OK
成功しました。
E_POINTER
パラメーターに無効なポインターが含まれていました。
E_INVALIDARG
データが指定されませんでした。
CO_E_CLASSSTRING
GUID の形式が無効です。
E_INK_EXCEPTION
メソッド内で例外が発生しました。
TPC_E_INVALID_STROKE
ストロークが無効です。

解説(Remarks)

メモ 空の IInkExtendedProperty オブジェクトを格納することはできません。格納するには、オブジェクトにデータが含まれている必要があります。たとえば、後で使用するためにストロークへ拡張プロパティを追加しようとした場合、その拡張プロパティにデータが含まれていないと例外がスローされます。
使用できる型は次のとおりです。
メモ Guid パラメーターに、IInkExtendedProperties コレクション内に既に存在する GUID を指定してこのメソッドを呼び出すと、要素が新たに追加されるのではなく、その GUID の既存の拡張プロパティが新しいデータで置き換えられます。
vtbl 11 HRESULT Remove(VARIANT Identifier)

IInkExtendedProperty オブジェクトを IInkExtendedProperties コレクションから削除します。

IdentifierVARIANTin

コレクションから削除する IInkExtendedProperty オブジェクトの識別子。識別子には、グローバル一意識別子 (GUID)、インデックス、または拡張プロパティ オブジェクトを指定できます。

VARIANT 構造体の詳細については、「COM ライブラリの使用」を参照してください。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

戻り値 説明
S_OK
成功しました。
E_POINTER
パラメーターに無効なポインターが含まれていました。
CO_E_CLASSSTRING
GUID の形式が無効です。
TPC_E_INVALID_PROPERTY
プロパティが見つかりませんでした (GUID またはインデックスが無効です)。
E_INK_EXCEPTION
メソッド内で例外が発生しました。
E_FAIL
不特定のエラーが発生しました。
E_INVALIDARG
表示ハンドルが無効です。
E_UNEXPECTED
パラメーターまたはプロパティの型が予期しないものです。

解説(Remarks)

このメソッドは、インク データのスナップショットまたは参照から拡張プロパティを削除するだけであり、実際のインク データは削除しません。

Identifier パラメーターには、BSTR、LONG、または IDispatch を指定できます。プロパティの GUID を指定する場合は BSTR、プロパティのインデックスを指定する場合は LONG、特定のプロパティへの参照を指定する場合は IDispatch を使用します。スクリプト言語を使用する場合などの遅延バインディングでプロパティの GUID を指定するには、引数を変数としてではなく STRING リテラルとして渡す必要があります。

BSTR データ型の詳細については、「COM ライブラリの使用」を参照してください。

vtbl 12 HRESULT Clear()

IInkExtendedProperties コレクションからすべての IInkExtendedProperty オブジェクトをクリアします。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

戻り値 説明
S_OK
成功しました。
E_INK_EXCEPTION
メソッド内で例外が発生しました。
E_FAIL
不特定のエラーが発生しました。

解説(Remarks)

拡張プロパティを一度に 1 つだけクリアするには、IInkExtendedProperties コレクションの Remove メソッドを呼び出します。

vtbl 13 HRESULT DoesPropertyExist(LPWSTR Guid, VARIANT_BOOL* DoesPropertyExist)

IInkExtendedProperties コレクション内に IInkExtendedProperty オブジェクトが存在するかどうかを示す値を取得します。

GuidLPWSTRin

確認するプロパティのグローバル一意識別子 (GUID) を指定します。

BSTR データ型の詳細については、「COM ライブラリの使用」を参照してください。

DoesPropertyExistVARIANT_BOOL*outこのメソッドから制御が戻るときに、プロパティがコレクション内に存在する場合は VARIANT_TRUE、存在しない場合は VARIANT_FALSE が格納されます。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

戻り値 説明
S_OK
成功しました。
E_FAIL
不特定のエラーが発生しました。
E_POINTER
パラメーターに無効なポインターが含まれていました。
CO_E_CLASSSTRING
GUID の形式が無効です。
E_INK_EXCEPTION
メソッド内で例外が発生しました。
E_INVALIDARG
表示ハンドルが無効です。
TPC_E_INVALID_STROKE
ストロークが無効です。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IInkExtendedProperties "{89F2A8BE-95A9-4530-8B8F-88E971E3E25F}"
#usecom global IInkExtendedProperties IID_IInkExtendedProperties "{}"
#comfunc global IInkExtendedProperties_get_Count          7 var
#comfunc global IInkExtendedProperties_get__NewEnum       8 sptr
#comfunc global IInkExtendedProperties_Item               9 int,sptr
#comfunc global IInkExtendedProperties_Add                10 wstr,int,sptr
#comfunc global IInkExtendedProperties_Remove             11 int
#comfunc global IInkExtendedProperties_Clear              12
#comfunc global IInkExtendedProperties_DoesPropertyExist  13 wstr,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。