3 This file explorer protocol defines defines a set of interfaces for
4 how to do file explorer.
6 Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
7 This program and the accompanying materials are licensed and made available under
8 the terms and conditions of the BSD License that accompanies this distribution.
9 The full text of the license may be found at
10 http://opensource.org/licenses/bsd-license.php.
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
17 #ifndef __FILE_EXPLORER_H__
18 #define __FILE_EXPLORER_H__
20 #define EFI_FILE_EXPLORER_PROTOCOL_GUID \
21 { 0x2C03C536, 0x4594, 0x4515, { 0x9E, 0x7A, 0xD3, 0xD2, 0x04, 0xFE, 0x13, 0x63 } }
24 // Forward reference for pure ANSI compatability
26 typedef struct _EFI_FILE_EXPLORER_PROTOCOL EFI_FILE_EXPLORER_PROTOCOL
;
29 Prototype for the next process after user chosed one file.
31 @param[in] FilePath The device path of the find file.
33 @retval TRUE Need exit file explorer after do the extra task.
34 @retval FALSE Not need to exit file explorer after do the extra task.
39 (EFIAPI
*CHOOSE_HANDLER
)(
40 IN EFI_DEVICE_PATH_PROTOCOL
*FilePath
44 Choose a file in the specified directory.
46 If user input NULL for the RootDirectory, will choose file in the system.
48 If user input *File != NULL, function will return the allocate device path
49 info for the choosed file, caller has to free the memory after use it.
51 @param RootDirectory Pointer to the root directory.
52 @param FileType The file type need to choose.
53 @param ChooseHandler Function pointer to the extra task need to do
54 after choose one file.
55 @param File Return the device path for the last time chosed file.
57 @retval EFI_SUCESS Choose the file success.
58 @retval Other errors Choose the file failed.
62 (EFIAPI
*CHOOSE_FILE
) (
63 IN EFI_DEVICE_PATH_PROTOCOL
*RootDirectory
,
64 IN CHAR16
*FileType
, OPTIONAL
65 IN CHOOSE_HANDLER ChooseHandler
, OPTIONAL
66 OUT EFI_DEVICE_PATH_PROTOCOL
**File OPTIONAL
69 struct _EFI_FILE_EXPLORER_PROTOCOL
{
70 CHOOSE_FILE ChooseFile
;
73 extern EFI_GUID gEfiFileExplorerProtocolGuid
;