Win32 API 日本語リファレンス
ホームStorage.FileServerResourceManager › IFsrmPipelineModuleDefinition

IFsrmPipelineModuleDefinition

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID515c1277-2c81-440e-8fcf-367921ed4f59継承元IFsrmObject呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl12

公式ドキュメント

ファイルを分類する、またはファイルからプロパティを格納および取得するために使用されるモジュールを定義します。

解説(Remarks)

名前とモジュールの種類によって、一意のモジュールが識別されます (分類モジュールとストレージモジュールは同じ名前を使用できます)。

モジュールをプログラムから登録解除する場合 (Delete を呼び出し、続けて Commit を呼び出す場合)、開発者はそのモジュールを使用するアクティブな分類ルールが存在しないことを確認する必要があります。これを適切に行わないと、分類の実行中にルールがエラーを発生させ、UI には既に利用できなくなったモジュールが表示されます。

メソッド 19

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

vtbl 12 HRESULT get_ModuleClsid(LPWSTR* moduleClsid)

このモジュール定義で定義されるモジュールを実装するクラスの COM クラス識別子を指定する文字列表現です。(Get)

moduleClsidLPWSTR*outモジュールを実装する COM オブジェクトの CLSID を文字列で受け取るポインタである。

解説(Remarks)

指定する COM クラス識別子は、IFsrmPipelineModuleImplementation を実装するクラスを参照する必要があります。このインターフェイスは、モジュールの種類に応じて IFsrmClassifierModuleImplementation または IFsrmStorageModuleImplementation を通じて継承されます。

vtbl 13 HRESULT put_ModuleClsid(LPWSTR moduleClsid)

このモジュール定義で定義されるモジュールを実装するクラスの COM クラス識別子を指定する文字列表現です。(Put)

moduleClsidLPWSTRinモジュールを実装する COM オブジェクトの CLSID を文字列で指定する。

解説(Remarks)

指定する COM クラス識別子は、IFsrmPipelineModuleImplementation を実装するクラスを参照する必要があります。このインターフェイスは、モジュールの種類に応じて IFsrmClassifierModuleImplementation または IFsrmStorageModuleImplementation を通じて継承されます。

vtbl 14 HRESULT get_Name(LPWSTR* name)

モジュール定義の名前です。(Get)

nameLPWSTR*outパイプラインモジュール定義の名前を受け取る文字列ポインタである。
vtbl 15 HRESULT put_Name(LPWSTR name)

モジュール定義の名前です。(Put)

nameLPWSTRinパイプラインモジュール定義に設定する名前を指定する文字列である。
vtbl 16 HRESULT get_Company(LPWSTR* company)

分類モジュールまたはストレージモジュールを作成した会社の名前です。(Get)

companyLPWSTR*outモジュールの提供元会社名を受け取る文字列ポインタである。

解説(Remarks)

このプロパティは省略可能です。

vtbl 17 HRESULT put_Company(LPWSTR company)

分類モジュールまたはストレージモジュールを作成した会社の名前です。(Put)

companyLPWSTRinモジュールの提供元会社名を指定する文字列である。

解説(Remarks)

このプロパティは省略可能です。

vtbl 18 HRESULT get_Version(LPWSTR* version)

モジュール定義のバージョンです。(Get)

versionLPWSTR*outモジュールのバージョン文字列を受け取るポインタである。

解説(Remarks)

このプロパティは省略可能です。バージョンの形式に制限はありません。

vtbl 19 HRESULT put_Version(LPWSTR version)

モジュール定義のバージョンです。(Put)

versionLPWSTRinモジュールに設定するバージョン文字列を指定する。

解説(Remarks)

このプロパティは省略可能です。バージョンの形式に制限はありません。

vtbl 20 HRESULT get_ModuleType(FsrmPipelineModuleType* moduleType)

モジュールの種類です。

moduleTypeFsrmPipelineModuleType*outパイプラインモジュールの種類を示す FsrmPipelineModuleType 列挙値を受け取るポインタである。

解説(Remarks)

種類は、モジュール定義オブジェクトを作成するために IFsrmClassificationModule::CreateModuleDefinition メソッドを呼び出すときに指定します。

vtbl 21 HRESULT get_Enabled(VARIANT_BOOL* enabled)

モジュールが有効かどうかを決定します。(Get)

enabledVARIANT_BOOL*outモジュールが有効かどうかを示す VARIANT_BOOL を受け取るポインタである。
vtbl 22 HRESULT put_Enabled(VARIANT_BOOL enabled)

モジュールが有効かどうかを決定します。(Put)

enabledVARIANT_BOOLinモジュールを有効にするかどうかを指定する VARIANT_BOOL である。
vtbl 23 HRESULT get_NeedsFileContent(VARIANT_BOOL* needsFileContent)

モジュールがファイルの内容を読み取る必要があるかどうかを決定します。(Get)

needsFileContentVARIANT_BOOL*outモジュールがファイルの内容を必要とするかどうかを示す VARIANT_BOOL を受け取るポインタである。

解説(Remarks)

NeedsFileContent プロパティの値が VARIANT_TRUE の場合、FSRM はファイルの内容のストリームをモジュールに提供します。これは、分類モジュールがプロパティ値を判別するためにファイルの内容を解析する必要がある場合や、ストレージモジュールがファイルの内容に埋め込まれたプロパティ値を処理する場合に必要となることがあります。

vtbl 24 HRESULT put_NeedsFileContent(VARIANT_BOOL needsFileContent)

モジュールがファイルの内容を読み取る必要があるかどうかを決定します。(Put)

needsFileContentVARIANT_BOOLinモジュールがファイルの内容を必要とするかどうかを指定する VARIANT_BOOL である。

解説(Remarks)

NeedsFileContent プロパティの値が VARIANT_TRUE の場合、FSRM はファイルの内容のストリームをモジュールに提供します。これは、分類モジュールがプロパティ値を判別するためにファイルの内容を解析する必要がある場合や、ストレージモジュールがファイルの内容に埋め込まれたプロパティ値を処理する場合に必要となることがあります。

vtbl 25 HRESULT get_Account(FsrmAccountType* retrievalAccount)

モジュールの実行時に使用するアカウントです。(Get)

retrievalAccountFsrmAccountType*outモジュールの実行に使用するアカウントの種類を示す FsrmAccountType 列挙値を受け取るポインタである。
vtbl 26 HRESULT put_Account(FsrmAccountType retrievalAccount)

モジュールの実行時に使用するアカウントです。(Put)

retrievalAccountFsrmAccountTypeinモジュールの実行に使用するアカウントの種類として設定する FsrmAccountType 列挙値を指定する。
vtbl 27 HRESULT get_SupportedExtensions(SAFEARRAY** supportedExtensions)

このモジュールがサポートするファイル拡張子の一覧です。(Get)

supportedExtensionsSAFEARRAY**outモジュールが対応するファイル拡張子の一覧を格納した SAFEARRAY を受け取るポインタである。

解説(Remarks)

このプロパティは省略可能です。サポートするファイルの種類が限られている場合にのみ、このプロパティを設定してください。FSRM は拡張子の一覧を使用して、モジュールに送信するファイルを決定します。一覧が空の場合、FSRM はすべてのファイルをモジュールに送信します。

vtbl 28 HRESULT put_SupportedExtensions(SAFEARRAY* supportedExtensions)

このモジュールがサポートするファイル拡張子の一覧です。(Put)

supportedExtensionsSAFEARRAY*inモジュールが対応するファイル拡張子として設定する一覧を格納した SAFEARRAY を指定する。

解説(Remarks)

このプロパティは省略可能です。サポートするファイルの種類が限られている場合にのみ、このプロパティを設定してください。FSRM は拡張子の一覧を使用して、モジュールに送信するファイルを決定します。一覧が空の場合、FSRM はすべてのファイルをモジュールに送信します。

vtbl 29 HRESULT get_Parameters(SAFEARRAY** parameters)

モジュールに渡す省略可能なパラメーターです。(Get)

parametersSAFEARRAY**outモジュールに渡されるパラメータ (名前=値 の文字列) の一覧を格納した SAFEARRAY を受け取るポインタである。

解説(Remarks)

パラメーターの名前や値の長さに制限はなく、指定できるパラメーターの数にも制限はありません。値を指定せずにパラメーターを指定することも有効です (たとえば "parameter=")。

パラメーターは、FSRM がモジュールの IFsrmPipelineModuleImplementation::OnLoad 実装に渡すモジュール定義に含まれます。

vtbl 30 HRESULT put_Parameters(SAFEARRAY* parameters)

モジュールに渡す省略可能なパラメーターです。(Put)

parametersSAFEARRAY*inモジュールに設定するパラメータ (名前=値 の文字列) の一覧を格納した SAFEARRAY を指定する。

解説(Remarks)

パラメーターの名前や値の長さに制限はなく、指定できるパラメーターの数にも制限はありません。値を指定せずにパラメーターを指定することも有効です (たとえば "parameter=")。

パラメーターは、FSRM がモジュールの IFsrmPipelineModuleImplementation::OnLoad 実装に渡すモジュール定義に含まれます。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_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 不要)。