IFsrmFileScreenManager
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
ファイルスクリーンオブジェクトを管理するために使用します。
解説(Remarks)
ファイルスクリーンは、特定のディレクトリおよびそのサブディレクトリに格納できるファイルの種類を制限します。 各ファイルスクリーンには、制限対象となる(ファイル名に基づく)パターンの集合を定義する、ブロック対象ファイルグループの構成可能な一覧があります。ファイルが作成または名前変更されると、サーバーは、そのファイル名が パスの親部分に構成されたいずれかのファイルグループのパターンと一致するかどうかを評価します。一致が見つかった場合、その ファイルはブロックされ、一連のアクションが開始されます。
ファイルスクリーンの構成に加えて、特定のディレクトリおよびそのサブディレクトリで明示的に許可するファイルグループの一覧を定義する、 ファイルスクリーンの例外を作成できます。通常、ファイルスクリーンの例外は、ファイルスクリーンが設定されたディレクトリのサブツリーに あるディレクトリに構成します。この場合、スクリーニング規則の評価ではファイルスクリーンの例外の一覧が優先され、 許可されたファイルグループの名前パターンと一致する名前を持つファイルはブロックされません。
ファイルスクリーン、またはファイルスクリーンテンプレートを作成できます。テンプレートは、そのファイルスクリーンテンプレートから派生した ファイルスクリーンに変更を適用することで、プロパティを一括して変更するために使用します。
スクリプトからこのオブジェクトを作成するには、"Fsrm.FsrmFileScreenManager" プログラム 識別子を使用します。
メソッド 9
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
アクションのプロパティ値に指定できるマクロの一覧を取得します。(IFsrmFileScreenManager.get_ActionVariables)
| variables | SAFEARRAY** | out | アクションで使用可能な変数名の一覧を格納した SAFEARRAY を受け取るポインタである。 |
解説(Remarks)
FSRM は、アクションのプロパティを解析してマクロを検出し、そのマクロ文字列を、アクションが発生したイベントおよびコンピューターに 固有の値に置き換えます。たとえば、次の例は、電子メールのメッセージ本文を 書式設定する方法を示しています。 "ユーザー [Source Io Owner] は、サーバー [Server] 上の [Quota Path] に設定されたクォータの制限に達しました。クォータ制限は [Quota Limit MB] MB で、現在の使用量は [Quota Used MB] MB (制限の [Quota Used Percent]%) です。"
IFsrmFileScreenManager::ActionVariables プロパティに含まれるマクロの説明を取得します。
| descriptions | SAFEARRAY** | out | 各アクション変数に対応する説明文の一覧を格納した SAFEARRAY を受け取るポインタである。 |
ファイルスクリーンオブジェクトを作成します。
| path | LPWSTR | in | ファイルスクリーンを適用するローカルディレクトリのパス。文字列は 260 文字までに制限されます。 |
| fileScreen | IFsrmFileScreen** | out | 新しく作成されたファイルスクリーンの IFsrmFileScreen インターフェイス。このファイルスクリーンを FSRM に追加するには、IFsrmFileScreen::Commit メソッドを呼び出します。 |
戻り値
このメソッドは次の戻り値を返します。
解説(Remarks)
スクリーンは、そのディレクトリとそのすべてのサブディレクトリに(再帰的に)適用されます。たとえば、*.mp3 をブロックする P:\directory 上のスクリーンは、P:\directory\subdirectory 上の MP3 ファイルもブロックします。
P:\directory\subdirectory にファイルスクリーンを作成しても、P:\directory に作成したスクリーンは引き続き P:\directory\subdirectory に適用されます。P:\directory のスクリーンを P:\directory\subdirectory に適用したくない場合は、ファイルスクリーンの例外を作成する必要があります。
例
例については、Defining a File Screen を参照してください。
指定されたファイルスクリーンを取得します。
| path | LPWSTR | in | 取得するファイルスクリーンに関連付けられたローカルディレクトリのパス。パスは 260 文字までに制限されます。 |
| fileScreen | IFsrmFileScreen** | out | ファイルスクリーンへの IFsrmFileScreen インターフェイス。 |
戻り値
このメソッドは次の戻り値を返します。
指定されたディレクトリおよびそのサブディレクトリのファイルスクリーンを列挙します。
| path | LPWSTR | in | 取得するファイルスクリーンに関連付けられたローカルディレクトリのパス。 パスが "*" で終わる場合、そのパスの直下のサブディレクトリに関連付けられたすべてのファイルスクリーンを取得します(そのパス自体に関連付けられたファイルスクリーンは含まれません)。 パスが "..." で終わる場合、そのパスのファイルスクリーンと、そのパスの直下のサブディレクトリに関連付けられたすべてのファイルスクリーンを(再帰的に)取得します。 パスが "*" または "..." で終わらない場合、そのパスのファイルスクリーンのみを取得します。 path が null または空の場合、このメソッドはすべてのファイルスクリーンを返します。 |
| options | FsrmEnumOptions | in | ファイルスクリーンを列挙する際に使用するオプション。指定できる値については、FsrmEnumOptions 列挙型を参照してください。 |
| fileScreens | IFsrmCommittableCollection** | out | ファイルスクリーンのコレクションを格納する IFsrmCommittableCollection インターフェイス。 コレクションの各項目は VT_DISPATCH 型の VARIANT です。バリアントの pdispVal メンバーに対して IFsrmFileScreen インターフェイスを照会してください。 このコレクションにはコミット済みのファイルスクリーンのみが含まれます。新しく作成されてまだコミットされていないファイルスクリーンは含まれません。 パスにファイルスクリーンが存在しない場合、コレクションは空になります。 |
戻り値
このメソッドは次の戻り値を返します。
ファイルスクリーンの例外オブジェクトを作成します。
| path | LPWSTR | in | ファイルスクリーンの例外を適用するローカルディレクトリのパス。パスは 260 文字までに制限されます。 |
| fileScreenException | IFsrmFileScreenException** | out | 新しく作成されたファイルスクリーンの例外の IFsrmFileScreenException インターフェイス。この例外を FSRM に追加するには、IFsrmFileScreenException::Commit メソッドを呼び出します。 |
戻り値
このメソッドは次の戻り値を返します。
解説(Remarks)
この例外を使用すると、本来はファイルスクリーンによって保存が妨げられるファイルを、ディレクトリに保存できるようにすることができます。たとえば、P:\directory に *.mp3 をブロックするファイルスクリーンがある場合、P:\directory\subdirectory では MP3 ファイルを許可する例外を作成できます。
例
例については、Defining a File Screen Exception を参照してください。
指定されたファイルスクリーンの例外を取得します。
| path | LPWSTR | in | 取得するファイルスクリーンの例外に関連付けられたローカルディレクトリのパス。パスは 260 文字までに制限されます。 |
| fileScreenException | IFsrmFileScreenException** | out | ファイルスクリーンの例外への IFsrmFileScreenException インターフェイス。 |
戻り値
このメソッドは次の戻り値を返します。
指定されたディレクトリおよびそのサブディレクトリのファイルスクリーンの例外を列挙します。
| path | LPWSTR | in | 取得するファイルスクリーンの例外に関連付けられたローカルディレクトリのパス。 パスが "*" で終わる場合、そのパスの直下のサブディレクトリに関連付けられたすべての例外を取得します(そのパス自体に関連付けられた例外は含まれません)。 パスが "..." で終わる場合、そのパスの例外と、そのパスの直下のサブディレクトリに関連付けられたすべての例外を(再帰的に)取得します。 パスが "*" または "..." で終わらない場合、そのパスの例外のみを取得します。 path が null または空の場合、このメソッドはすべてのファイルスクリーンの例外を返します。 |
| options | FsrmEnumOptions | in | 例外を列挙する際に使用するオプション。指定できる値については、FsrmEnumOptions 列挙型を参照してください。 |
| fileScreenExceptions | IFsrmCommittableCollection** | out | ファイルスクリーンの例外のコレクションを格納する IFsrmCommittableCollection インターフェイス。 コレクションの各項目は VT_DISPATCH 型の VARIANT です。バリアントの pdispVal メンバーに対して IFsrmFileScreenException インターフェイスを照会してください。 このコレクションにはコミット済みの例外のみが含まれます。新しく作成されてまだコミットされていない例外は含まれません。 パスにファイルスクリーンの例外が存在しない場合、コレクションは空になります。 |
戻り値
このメソッドは次の戻り値を返します。
ファイルスクリーンを追加できる空のコレクションを作成します。
| collection | IFsrmCommittableCollection** | out | 新しく作成されたコレクションへの IFsrmCommittableCollection インターフェイス。コレクションにオブジェクトを追加するには、IFsrmMutableCollection::Add メソッドを呼び出します。 |
戻り値
このメソッドは次の戻り値を返します。
解説(Remarks)
コレクションにファイルスクリーンを追加した後、IFsrmCommittableCollection::Commit メソッドを呼び出します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IFsrmFileScreenManager "{FF4FA04E-5A94-4BDA-A3A0-D5B4D3C52EBA}" #usecom global IFsrmFileScreenManager IID_IFsrmFileScreenManager "{95941183-DB53-4C5F-B37B-7D0921CF9DC7}" #comfunc global IFsrmFileScreenManager_get_ActionVariables 7 var #comfunc global IFsrmFileScreenManager_get_ActionVariableDescriptions 8 var #comfunc global IFsrmFileScreenManager_CreateFileScreen 9 wstr,sptr #comfunc global IFsrmFileScreenManager_GetFileScreen 10 wstr,sptr #comfunc global IFsrmFileScreenManager_EnumFileScreens 11 wstr,int,sptr #comfunc global IFsrmFileScreenManager_CreateFileScreenException 12 wstr,sptr #comfunc global IFsrmFileScreenManager_GetFileScreenException 13 wstr,sptr #comfunc global IFsrmFileScreenManager_EnumFileScreenExceptions 14 wstr,int,sptr #comfunc global IFsrmFileScreenManager_CreateFileScreenCollection 15 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_IFsrmFileScreenManager "{FF4FA04E-5A94-4BDA-A3A0-D5B4D3C52EBA}" #usecom global IFsrmFileScreenManager IID_IFsrmFileScreenManager "{95941183-DB53-4C5F-B37B-7D0921CF9DC7}" #comfunc global IFsrmFileScreenManager_get_ActionVariables 7 sptr #comfunc global IFsrmFileScreenManager_get_ActionVariableDescriptions 8 sptr #comfunc global IFsrmFileScreenManager_CreateFileScreen 9 wstr,sptr #comfunc global IFsrmFileScreenManager_GetFileScreen 10 wstr,sptr #comfunc global IFsrmFileScreenManager_EnumFileScreens 11 wstr,int,sptr #comfunc global IFsrmFileScreenManager_CreateFileScreenException 12 wstr,sptr #comfunc global IFsrmFileScreenManager_GetFileScreenException 13 wstr,sptr #comfunc global IFsrmFileScreenManager_EnumFileScreenExceptions 14 wstr,int,sptr #comfunc global IFsrmFileScreenManager_CreateFileScreenCollection 15 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 不要)。