IFsrmPipelineModuleDefinition
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
ファイルを分類する、またはファイルからプロパティを格納および取得するために使用されるモジュールを定義します。
解説(Remarks)
名前とモジュールの種類によって、一意のモジュールが識別されます (分類モジュールとストレージモジュールは同じ名前を使用できます)。
モジュールをプログラムから登録解除する場合 (Delete を呼び出し、続けて Commit を呼び出す場合)、開発者はそのモジュールを使用するアクティブな分類ルールが存在しないことを確認する必要があります。これを適切に行わないと、分類の実行中にルールがエラーを発生させ、UI には既に利用できなくなったモジュールが表示されます。
メソッド 19
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
このモジュール定義で定義されるモジュールを実装するクラスの COM クラス識別子を指定する文字列表現です。(Get)
| moduleClsid | LPWSTR* | out | モジュールを実装する COM オブジェクトの CLSID を文字列で受け取るポインタである。 |
解説(Remarks)
指定する COM クラス識別子は、IFsrmPipelineModuleImplementation を実装するクラスを参照する必要があります。このインターフェイスは、モジュールの種類に応じて IFsrmClassifierModuleImplementation または IFsrmStorageModuleImplementation を通じて継承されます。
このモジュール定義で定義されるモジュールを実装するクラスの COM クラス識別子を指定する文字列表現です。(Put)
| moduleClsid | LPWSTR | in | モジュールを実装する COM オブジェクトの CLSID を文字列で指定する。 |
解説(Remarks)
指定する COM クラス識別子は、IFsrmPipelineModuleImplementation を実装するクラスを参照する必要があります。このインターフェイスは、モジュールの種類に応じて IFsrmClassifierModuleImplementation または IFsrmStorageModuleImplementation を通じて継承されます。
モジュール定義の名前です。(Get)
| name | LPWSTR* | out | パイプラインモジュール定義の名前を受け取る文字列ポインタである。 |
モジュール定義の名前です。(Put)
| name | LPWSTR | in | パイプラインモジュール定義に設定する名前を指定する文字列である。 |
分類モジュールまたはストレージモジュールを作成した会社の名前です。(Get)
| company | LPWSTR* | out | モジュールの提供元会社名を受け取る文字列ポインタである。 |
解説(Remarks)
このプロパティは省略可能です。
分類モジュールまたはストレージモジュールを作成した会社の名前です。(Put)
| company | LPWSTR | in | モジュールの提供元会社名を指定する文字列である。 |
解説(Remarks)
このプロパティは省略可能です。
モジュール定義のバージョンです。(Get)
| version | LPWSTR* | out | モジュールのバージョン文字列を受け取るポインタである。 |
解説(Remarks)
このプロパティは省略可能です。バージョンの形式に制限はありません。
モジュール定義のバージョンです。(Put)
| version | LPWSTR | in | モジュールに設定するバージョン文字列を指定する。 |
解説(Remarks)
このプロパティは省略可能です。バージョンの形式に制限はありません。
モジュールの種類です。
| moduleType | FsrmPipelineModuleType* | out | パイプラインモジュールの種類を示す FsrmPipelineModuleType 列挙値を受け取るポインタである。 |
解説(Remarks)
種類は、モジュール定義オブジェクトを作成するために IFsrmClassificationModule::CreateModuleDefinition メソッドを呼び出すときに指定します。
モジュールが有効かどうかを決定します。(Get)
| enabled | VARIANT_BOOL* | out | モジュールが有効かどうかを示す VARIANT_BOOL を受け取るポインタである。 |
モジュールが有効かどうかを決定します。(Put)
| enabled | VARIANT_BOOL | in | モジュールを有効にするかどうかを指定する VARIANT_BOOL である。 |
モジュールがファイルの内容を読み取る必要があるかどうかを決定します。(Get)
| needsFileContent | VARIANT_BOOL* | out | モジュールがファイルの内容を必要とするかどうかを示す VARIANT_BOOL を受け取るポインタである。 |
解説(Remarks)
NeedsFileContent プロパティの値が VARIANT_TRUE の場合、FSRM はファイルの内容のストリームをモジュールに提供します。これは、分類モジュールがプロパティ値を判別するためにファイルの内容を解析する必要がある場合や、ストレージモジュールがファイルの内容に埋め込まれたプロパティ値を処理する場合に必要となることがあります。
モジュールがファイルの内容を読み取る必要があるかどうかを決定します。(Put)
| needsFileContent | VARIANT_BOOL | in | モジュールがファイルの内容を必要とするかどうかを指定する VARIANT_BOOL である。 |
解説(Remarks)
NeedsFileContent プロパティの値が VARIANT_TRUE の場合、FSRM はファイルの内容のストリームをモジュールに提供します。これは、分類モジュールがプロパティ値を判別するためにファイルの内容を解析する必要がある場合や、ストレージモジュールがファイルの内容に埋め込まれたプロパティ値を処理する場合に必要となることがあります。
モジュールの実行時に使用するアカウントです。(Get)
| retrievalAccount | FsrmAccountType* | out | モジュールの実行に使用するアカウントの種類を示す FsrmAccountType 列挙値を受け取るポインタである。 |
モジュールの実行時に使用するアカウントです。(Put)
| retrievalAccount | FsrmAccountType | in | モジュールの実行に使用するアカウントの種類として設定する FsrmAccountType 列挙値を指定する。 |
このモジュールがサポートするファイル拡張子の一覧です。(Get)
| supportedExtensions | SAFEARRAY** | out | モジュールが対応するファイル拡張子の一覧を格納した SAFEARRAY を受け取るポインタである。 |
解説(Remarks)
このプロパティは省略可能です。サポートするファイルの種類が限られている場合にのみ、このプロパティを設定してください。FSRM は拡張子の一覧を使用して、モジュールに送信するファイルを決定します。一覧が空の場合、FSRM はすべてのファイルをモジュールに送信します。
このモジュールがサポートするファイル拡張子の一覧です。(Put)
| supportedExtensions | SAFEARRAY* | in | モジュールが対応するファイル拡張子として設定する一覧を格納した SAFEARRAY を指定する。 |
解説(Remarks)
このプロパティは省略可能です。サポートするファイルの種類が限られている場合にのみ、このプロパティを設定してください。FSRM は拡張子の一覧を使用して、モジュールに送信するファイルを決定します。一覧が空の場合、FSRM はすべてのファイルをモジュールに送信します。
モジュールに渡す省略可能なパラメーターです。(Get)
| parameters | SAFEARRAY** | out | モジュールに渡されるパラメータ (名前=値 の文字列) の一覧を格納した SAFEARRAY を受け取るポインタである。 |
解説(Remarks)
パラメーターの名前や値の長さに制限はなく、指定できるパラメーターの数にも制限はありません。値を指定せずにパラメーターを指定することも有効です (たとえば "parameter=")。
パラメーターは、FSRM がモジュールの IFsrmPipelineModuleImplementation::OnLoad 実装に渡すモジュール定義に含まれます。
モジュールに渡す省略可能なパラメーターです。(Put)
| parameters | SAFEARRAY* | in | モジュールに設定するパラメータ (名前=値 の文字列) の一覧を格納した SAFEARRAY を指定する。 |
解説(Remarks)
パラメーターの名前や値の長さに制限はなく、指定できるパラメーターの数にも制限はありません。値を指定せずにパラメーターを指定することも有効です (たとえば "parameter=")。
パラメーターは、FSRM がモジュールの IFsrmPipelineModuleImplementation::OnLoad 実装に渡すモジュール定義に含まれます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IFsrmPipelineModuleDefinition "{515C1277-2C81-440E-8FCF-367921ED4F59}" #usecom global IFsrmPipelineModuleDefinition IID_IFsrmPipelineModuleDefinition "{}" #comfunc global IFsrmPipelineModuleDefinition_get_ModuleClsid 12 var #comfunc global IFsrmPipelineModuleDefinition_put_ModuleClsid 13 wstr #comfunc global IFsrmPipelineModuleDefinition_get_Name 14 var #comfunc global IFsrmPipelineModuleDefinition_put_Name 15 wstr #comfunc global IFsrmPipelineModuleDefinition_get_Company 16 var #comfunc global IFsrmPipelineModuleDefinition_put_Company 17 wstr #comfunc global IFsrmPipelineModuleDefinition_get_Version 18 var #comfunc global IFsrmPipelineModuleDefinition_put_Version 19 wstr #comfunc global IFsrmPipelineModuleDefinition_get_ModuleType 20 var #comfunc global IFsrmPipelineModuleDefinition_get_Enabled 21 var #comfunc global IFsrmPipelineModuleDefinition_put_Enabled 22 int #comfunc global IFsrmPipelineModuleDefinition_get_NeedsFileContent 23 var #comfunc global IFsrmPipelineModuleDefinition_put_NeedsFileContent 24 int #comfunc global IFsrmPipelineModuleDefinition_get_Account 25 var #comfunc global IFsrmPipelineModuleDefinition_put_Account 26 int #comfunc global IFsrmPipelineModuleDefinition_get_SupportedExtensions 27 var #comfunc global IFsrmPipelineModuleDefinition_put_SupportedExtensions 28 var #comfunc global IFsrmPipelineModuleDefinition_get_Parameters 29 var #comfunc global IFsrmPipelineModuleDefinition_put_Parameters 30 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IFsrmPipelineModuleDefinition "{515C1277-2C81-440E-8FCF-367921ED4F59}" #usecom global IFsrmPipelineModuleDefinition IID_IFsrmPipelineModuleDefinition "{}" #comfunc global IFsrmPipelineModuleDefinition_get_ModuleClsid 12 sptr #comfunc global IFsrmPipelineModuleDefinition_put_ModuleClsid 13 wstr #comfunc global IFsrmPipelineModuleDefinition_get_Name 14 sptr #comfunc global IFsrmPipelineModuleDefinition_put_Name 15 wstr #comfunc global IFsrmPipelineModuleDefinition_get_Company 16 sptr #comfunc global IFsrmPipelineModuleDefinition_put_Company 17 wstr #comfunc global IFsrmPipelineModuleDefinition_get_Version 18 sptr #comfunc global IFsrmPipelineModuleDefinition_put_Version 19 wstr #comfunc global IFsrmPipelineModuleDefinition_get_ModuleType 20 sptr #comfunc global IFsrmPipelineModuleDefinition_get_Enabled 21 sptr #comfunc global IFsrmPipelineModuleDefinition_put_Enabled 22 int #comfunc global IFsrmPipelineModuleDefinition_get_NeedsFileContent 23 sptr #comfunc global IFsrmPipelineModuleDefinition_put_NeedsFileContent 24 int #comfunc global IFsrmPipelineModuleDefinition_get_Account 25 sptr #comfunc global IFsrmPipelineModuleDefinition_put_Account 26 int #comfunc global IFsrmPipelineModuleDefinition_get_SupportedExtensions 27 sptr #comfunc global IFsrmPipelineModuleDefinition_put_SupportedExtensions 28 sptr #comfunc global IFsrmPipelineModuleDefinition_get_Parameters 29 sptr #comfunc global IFsrmPipelineModuleDefinition_put_Parameters 30 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。