IFsrmPropertyDefinition
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
ファイルの分類に使用するプロパティを定義します。(IFsrmPropertyDefinition)
解説(Remarks)
name プロパティと type プロパティによって一意のプロパティが定義されます。プロパティの名前を変更したり、その型を変更したりすることはできません。
分類ルールまたはレポートから参照されているプロパティ定義は削除できません。分類ルールは IFsrmRule::PropertyAffected プロパティを使用してプロパティ定義を参照します。
ファイル管理ジョブのプロパティ条件から参照されているプロパティは削除できません。プロパティ条件が参照を保持しているかどうかを確認するには、条件の "name" プロパティが、削除しようとしているプロパティ定義の名前と一致するプロパティ条件を探してください。
レポートでは、プロパティ定義はレポートの種類 FsrmReportType_FilesByProperty のフィルターとしてのみ使用されます。
例
C# および PowerShell の例については、 Accessing Classification Properties を参照してください。
メソッド 10
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
プロパティの名前です。(IFsrmPropertyDefinition.get_Name)
| name | LPWSTR* | out | プロパティ定義の名前を受け取る文字列ポインタである。 |
解説(Remarks)
定義をコミットした後は、名前を変更できません。
プロパティの名前です。(IFsrmPropertyDefinition.put_Name)
| name | LPWSTR | in | プロパティ定義に設定する名前を指定する文字列である。 |
解説(Remarks)
定義をコミットした後は、名前を変更できません。
プロパティが保持するデータの型です。(Get)
| type | FsrmPropertyDefinitionType* | out | プロパティ定義のデータ型を示す FsrmPropertyDefinitionType 列挙値を受け取るポインタである。 |
解説(Remarks)
定義をコミットした後は、型を変更できません。
プロパティが保持するデータの型です。(Put)
| type | FsrmPropertyDefinitionType | in | プロパティ定義のデータ型として設定する FsrmPropertyDefinitionType 列挙値を指定する。 |
解説(Remarks)
定義をコミットした後は、型を変更できません。
プロパティに設定できる値の一覧です。(Get)
| possibleValues | SAFEARRAY** | out | プロパティが取り得る値の一覧を格納した SAFEARRAY を受け取るポインタである。 |
解説(Remarks)
プロパティの型が FsrmPropertyDefinitionType_OrderedList または FsrmPropertyDefinitionType_MultiChoiceList の場合は、設定可能な値の一覧を指定する必要があります。
ルールがある値を指定している場合、その値を一覧から削除することはできません( IFsrmClassificationRule.Value を参照)。値を削除しても、 その値で現在分類されているファイルから値が取り除かれるわけではありません。
一覧内の値の順序は変更できます。順序付きリストの場合、順序を変更すると次回の分類実行時に集計結果へ影響することがあります。
設定可能な各値に説明を指定するには、 IFsrmPropertyDefinition.ValueDescriptions プロパティを設定します。
プロパティに設定できる値の一覧です。(Put)
| possibleValues | SAFEARRAY* | in | プロパティが取り得る値として設定する一覧を格納した SAFEARRAY を指定する。 |
解説(Remarks)
プロパティの型が FsrmPropertyDefinitionType_OrderedList または FsrmPropertyDefinitionType_MultiChoiceList の場合は、設定可能な値の一覧を指定する必要があります。
ルールがある値を指定している場合、その値を一覧から削除することはできません( IFsrmClassificationRule.Value を参照)。値を削除しても、 その値で現在分類されているファイルから値が取り除かれるわけではありません。
一覧内の値の順序は変更できます。順序付きリストの場合、順序を変更すると次回の分類実行時に集計結果へ影響することがあります。
設定可能な各値に説明を指定するには、 IFsrmPropertyDefinition.ValueDescriptions プロパティを設定します。
PossibleValues プロパティで指定された設定可能な各値に対する説明です。(Get)
| valueDescriptions | SAFEARRAY** | out | 取り得る各値に対応する説明文の一覧を格納した SAFEARRAY を受け取るポインタである。 |
解説(Remarks)
これらの説明と、 PossibleValues プロパティで指定された設定可能な値の一覧とは、1 対 1 で対応します。 一覧内のいずれかの値について説明を指定しない場合は、配列内の対応する要素に空の文字列を設定してください。
PossibleValues プロパティで指定された設定可能な各値に対する説明です。(Put)
| valueDescriptions | SAFEARRAY* | in | 取り得る各値に対応する説明文として設定する一覧を格納した SAFEARRAY を指定する。 |
解説(Remarks)
これらの説明と、 PossibleValues プロパティで指定された設定可能な値の一覧とは、1 対 1 で対応します。 一覧内のいずれかの値について説明を指定しない場合は、配列内の対応する要素に空の文字列を設定してください。
プロパティ定義のパラメーターです。(Get)
| parameters | SAFEARRAY** | out | プロパティ定義に関連付けられたパラメータ (名前=値 の文字列) の一覧を格納した SAFEARRAY を受け取るポインタである。 |
プロパティ定義のパラメーターです。(Put)
| parameters | SAFEARRAY* | in | プロパティ定義に設定するパラメータ (名前=値 の文字列) の一覧を格納した SAFEARRAY を指定する。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IFsrmPropertyDefinition "{EDE0150F-E9A3-419C-877C-01FE5D24C5D3}" #usecom global IFsrmPropertyDefinition IID_IFsrmPropertyDefinition "{}" #comfunc global IFsrmPropertyDefinition_get_Name 12 var #comfunc global IFsrmPropertyDefinition_put_Name 13 wstr #comfunc global IFsrmPropertyDefinition_get_Type 14 var #comfunc global IFsrmPropertyDefinition_put_Type 15 int #comfunc global IFsrmPropertyDefinition_get_PossibleValues 16 var #comfunc global IFsrmPropertyDefinition_put_PossibleValues 17 var #comfunc global IFsrmPropertyDefinition_get_ValueDescriptions 18 var #comfunc global IFsrmPropertyDefinition_put_ValueDescriptions 19 var #comfunc global IFsrmPropertyDefinition_get_Parameters 20 var #comfunc global IFsrmPropertyDefinition_put_Parameters 21 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IFsrmPropertyDefinition "{EDE0150F-E9A3-419C-877C-01FE5D24C5D3}" #usecom global IFsrmPropertyDefinition IID_IFsrmPropertyDefinition "{}" #comfunc global IFsrmPropertyDefinition_get_Name 12 sptr #comfunc global IFsrmPropertyDefinition_put_Name 13 wstr #comfunc global IFsrmPropertyDefinition_get_Type 14 sptr #comfunc global IFsrmPropertyDefinition_put_Type 15 int #comfunc global IFsrmPropertyDefinition_get_PossibleValues 16 sptr #comfunc global IFsrmPropertyDefinition_put_PossibleValues 17 sptr #comfunc global IFsrmPropertyDefinition_get_ValueDescriptions 18 sptr #comfunc global IFsrmPropertyDefinition_put_ValueDescriptions 19 sptr #comfunc global IFsrmPropertyDefinition_get_Parameters 20 sptr #comfunc global IFsrmPropertyDefinition_put_Parameters 21 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。