1 /** @file
2 
3   This library class defines a set of interfaces for how to do file explorer.
4 
5 Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR>
6 This program and the accompanying materials are licensed and made available under
7 the terms and conditions of the BSD License that accompanies this distribution.
8 The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php.
10 
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 
14 **/
15 
16 #ifndef __FILE_EXPLORER_LIB_H__
17 #define __FILE_EXPLORER_LIB_H__
18 
19 #include <Protocol/FileExplorer.h>
20 
21 /**
22   Choose a file in the specified directory.
23 
24   If user input NULL for the RootDirectory, will choose file in the system.
25 
26   If user input *File != NULL, function will return the allocate device path
27   info for the choosed file, caller has to free the memory after use it.
28 
29   @param  RootDirectory    Pointer to the root directory.
30   @param  FileType         The file type need to choose.
31   @param  ChooseHandler    Function pointer to the extra task need to do
32                            after choose one file.
33   @param  File             Return the device path for the last time chosed file.
34 
35   @retval EFI_SUCESS       Choose the file success.
36   @retval Other errors     Choose the file failed.
37 **/
38 EFI_STATUS
39 EFIAPI
40 ChooseFile (
41   IN  EFI_DEVICE_PATH_PROTOCOL  *RootDirectory,
42   IN  CHAR16                    *FileType,  OPTIONAL
43   IN  CHOOSE_HANDLER            ChooseHandler,  OPTIONAL
44   OUT EFI_DEVICE_PATH_PROTOCOL  **File  OPTIONAL
45   );
46 
47 #endif
48