<div class="content" name="EnumFileScreens" uuid="fd9e9214-1251-46a8-b439-c57487dfe266"><p>The EnumFileScreens method returns all the <a href="809180e0-571e-40a0-8067-ffe89cbdcc40#gt_4029e82b-3938-41a4-9a52-dff21ec37dcb" data-linktype="relative-path">file screens</a> from the <b>List
of Persisted File Screens</b> (section <a href="6226bc6a-8346-416f-83f9-3c121bdd6e59" data-linktype="relative-path">3.2.1.3</a>) that fall under
the specified path.</p><dl>
<dd>
<div><pre> [id(FSRM_DISPID_FILESCREEN_MANAGER | 0x03)] HRESULT EnumFileScreens(
   [in, defaultvalue(L&#34;&#34;)] BSTR path,
   [in, defaultvalue(FsrmEnumOptions_None)] 
     FsrmEnumOptions options,
   [out, retval] IFsrmCommittableCollection** fileScreens
 );
</pre></div>
</dd></dl><p><b>path: </b>Contains the path for which to limit the
return of file screens.</p><p><b>options: </b>Contains the <a href="d01ee30b-4ef8-4eec-8026-3b5a1ccda298" data-linktype="relative-path">FsrmEnumOptions (section 2.2.1.2.5)</a>
to use when enumerating the file screens.</p><p><b>fileScreens: </b>Pointer to an <b>IFsrmCommittableCollection</b>
interface pointer (section <a href="854116b8-04aa-4342-a308-da8b524ec0d9" data-linktype="relative-path">3.2.4.2.3</a>)
that upon completion contains pointers to every file screen belonging to a path
related to the path specified by the wildcards entered in <i>path</i>. The
caller MUST release the collection when the caller is done with it.</p><p><b>Return Values: </b>The method MUST return zero on
success, or a nonzero error code on failure.</p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Return value/code</p>
   </th>
   <th>
   <p>Description</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>0x80045301 FSRM_E_NOT_FOUND</td>
  <td>A file screen has not been applied to the specified directories.</td>
 </tr><tr>
  <td>0x80070057 E_INVALIDARG</td>
  <td>The fileScreens parameter is NULL.</td>
 </tr><tr>
  <td>0x80045311 FSRM_E_NOT_SUPPORTED</td>
  <td>This options parameter contains invalid FsrmEnumOptions (section 2.2.1.2.5) values.</td>
 </tr></tbody></table>
</dd></dl><p>Upon receiving this message, the server MUST validate
parameters:</p><ul><li><p><span><span> 
</span></span>If <i>fileScreens</i> is NULL, the server MUST return E_INVALIDARG.</p>
</li><li><p><span><span> 
</span></span>If <i>options</i> contains <b>FsrmEnumOptions_Asynchronous</b> or
any value other than what is specified in section 2.2.1.2.5, the server MUST
return FSRM_E_NOT_SUPPORTED.</p>
</li></ul><p>Upon successful validation of parameters, the server MUST
perform the following actions:</p><ul><li><p><span><span> 
</span></span>Create a new <b>List of Non-Persisted File Screen Instances</b>
(section 3.2.1.3).</p>
</li><li><p><span><span> 
</span></span>Populate the <b>List of Non-Persisted File Screen Instances</b>
with <a href="2356ea87-e273-444a-81e7-dac2a7dcd804" data-linktype="relative-path">Non-Persisted File
Screen Instances (section 3.2.1.3.1.2)</a> copied from the <a href="73d37c2e-5d40-4074-96dd-39cf217cdb52" data-linktype="relative-path">Persisted File
Screens (section 3.2.1.3.1.1)</a> in the <b>List of Persisted File
Screens</b> according to the following rules:</p>
<ul><li><p><span><span>  </span></span>If <i>path</i>
ends with &#34;\*&#34;, the server MUST populate this <b>List of Non-Persisted
File Screen Instances</b> with a copy of every Persisted File Screen from the <b>List
of Persisted File Screens</b> that belongs to an immediate subdirectory of <i>path</i>.</p>
</li><li><p><span><span>  </span></span>If <i>path</i>
ends with &#34;\...&#34;, the server MUST populate this <b>List of
Non-Persisted File Screen Instances</b> with a copy of every Persisted File
Screen from the <b>List of Persisted File Screens</b> that recursively belongs
to a subdirectory of <i>path</i>.</p>
</li><li><p><span><span>  </span></span>If <i>path</i>
does not end with &#34;\*&#34; or &#34;\...&#34;, the server MUST populate
this <b>List of Non-Persisted File Screen Instances</b> with a copy of only the
file screen for <i>path</i>.</p>
</li><li><p><span><span>  </span></span>If
a file screen does not exist for <i>path</i>, the server MUST return S_OK and
MUST set <i>fileScreenExceptions</i> to an empty <b>IFsrmCommittableCollection</b>.</p>
</li></ul></li><li><p><span><span> 
</span></span>Populate <i>fileScreens</i> with the <b>IFsrmFileScreen</b>
interface pointer (section <a href="ad685a32-0761-44ed-b10c-0c26de4934f0" data-linktype="relative-path">3.2.4.2.27</a>)
of every Non-Persisted File Screen Instance in this <b>List of Non-Persisted
File Screen Instances</b>.</p>
</li></ul></div>