1 /** @file 2 3 This file explorer protocol defines defines a set of interfaces for 4 how to do file explorer. 5 6 Copyright (c) 2006 - 2015, 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. 11 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. 14 15 **/ 16 17 #ifndef __FILE_EXPLORER_H__ 18 #define __FILE_EXPLORER_H__ 19 20 #define EFI_FILE_EXPLORER_PROTOCOL_GUID \ 21 { 0x2C03C536, 0x4594, 0x4515, { 0x9E, 0x7A, 0xD3, 0xD2, 0x04, 0xFE, 0x13, 0x63 } } 22 23 // 24 // Forward reference for pure ANSI compatability 25 // 26 typedef struct _EFI_FILE_EXPLORER_PROTOCOL EFI_FILE_EXPLORER_PROTOCOL; 27 28 /** 29 Prototype for the next process after user chosed one file. 30 31 @param[in] FilePath The device path of the find file. 32 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. 35 36 **/ 37 typedef 38 BOOLEAN 39 (EFIAPI *CHOOSE_HANDLER)( 40 IN EFI_DEVICE_PATH_PROTOCOL *FilePath 41 ); 42 43 /** 44 Choose a file in the specified directory. 45 46 If user input NULL for the RootDirectory, will choose file in the system. 47 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. 50 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. 56 57 @retval EFI_SUCESS Choose the file success. 58 @retval Other errors Choose the file failed. 59 **/ 60 typedef 61 EFI_STATUS 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 67 ); 68 69 struct _EFI_FILE_EXPLORER_PROTOCOL { 70 CHOOSE_FILE ChooseFile; 71 }; 72 73 extern EFI_GUID gEfiFileExplorerProtocolGuid; 74 75 #endif 76