3.2.4.2.29.8 EnumFileScreenExceptions (Opnum 14)

The EnumFileScreenExceptions method returns all the file screen exceptions from the List of Persisted File Screen Exceptions (section 3.2.1.3) that fall under the specified path.

 [id(FSRM_DISPID_FILESCREEN_MANAGER | 0x06)] HRESULT EnumFileScreenExceptions(
   [in, defaultvalue(L"")] BSTR path,
   [in, defaultvalue(FsrmEnumOptions_None)] 
     FsrmEnumOptions options,
   [out, retval] IFsrmCommittableCollection** fileScreenExceptions
 );

path: Contains the path for which to limit the return of file screen exceptions. Supports wildcards.

options: Contains the FsrmEnumOptions (section 2.2.1.2.5) to use when enumerating the file screen exception.

fileScreenExceptions: Pointer to an IFsrmCommittableCollection interface pointer (section 3.2.4.2.3) that upon completion contains pointers to every file screen exception belonging to a path that is part of the specified path. The caller MUST release the collection when the caller is done with it.

Return Values: The method MUST return zero on success, or a nonzero error code on failure.

Return value/code

Description

0x80045301

FSRM_E_NOT_FOUND

A file screen exception has not been applied to the specified directory.

0x80070057

E_INVALIDARG

The fileScreenExceptions parameter is NULL.

0x80045311

FSRM_E_NOT_SUPPORTED

This options parameter contains invalid FsrmEnumOptions (section 2.2.1.2.5) values.

Upon receiving this message, the server MUST validate parameters:

  • If fileScreenExceptions is NULL, the server MUST return E_INVALIDARG.

  • If options contains FsrmEnumOptions_Asynchronous or any value other than what is specified in section 2.2.1.2.5, the server MUST return FSRM_E_NOT_SUPPORTED.

Upon successful validation of parameters, the server MUST perform the following actions:

  • Create a new List of Non-Persisted File Screen Exception Instances (section 3.2.1.3).

  • Populate it with Non-Persisted File Screen Exception Instances (section 3.2.1.3.2.2) copied from the Persisted File Screen Exceptions (section 3.2.1.3.2.1) in the List of Persisted File Screen Exceptions according to the following rules:

    • If path ends with "\*", the server MUST populate this new List of Non-Persisted File Screen Exception Instances with a copy of every Persisted File Screen Exception from the List of Persisted File Screen Exceptions that belongs to an immediate subdirectory of path.

    • If path ends with "\...", the server MUST populate this new List of Non-Persisted File Screen Exception Instances with a copy of every Persisted File Screen Exception from the List of Persisted File Screen Exceptions that recursively belongs to a subdirectory of path.

    • If path does not end with "\*" or "\...", the server MUST populate this new List of Non-Persisted File Screen Exception Instances with a copy of the only Persisted File Screen Exception for path.

    • If a file screen exception does not exist for path, the server MUST return S_OK and MUST set fileScreenExceptions to an empty IFsrmCommittableCollection.

  • Populate fileScreenExceptions with the IFsrmFileScreenException interface pointer (section 3.2.4.2.28) of every Non-Persisted File Screen Exception Instance in this List of Non-Persisted File Screen Exception Instances.