/** @file This file explorer protocol defines defines a set of interfaces for how to do file explorer. Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef __FILE_EXPLORER_H__ #define __FILE_EXPLORER_H__ #define EFI_FILE_EXPLORER_PROTOCOL_GUID \ { 0x2C03C536, 0x4594, 0x4515, { 0x9E, 0x7A, 0xD3, 0xD2, 0x04, 0xFE, 0x13, 0x63 } } // // Forward reference for pure ANSI compatability // typedef struct _EFI_FILE_EXPLORER_PROTOCOL EFI_FILE_EXPLORER_PROTOCOL; /** Prototype for the next process after user chosed one file. @param[in] FilePath The device path of the find file. @retval TRUE Need exit file explorer after do the extra task. @retval FALSE Not need to exit file explorer after do the extra task. **/ typedef BOOLEAN (EFIAPI *CHOOSE_HANDLER)( IN EFI_DEVICE_PATH_PROTOCOL *FilePath ); /** Choose a file in the specified directory. If user input NULL for the RootDirectory, will choose file in the system. If user input *File != NULL, function will return the allocate device path info for the choosed file, caller has to free the memory after use it. @param RootDirectory Pointer to the root directory. @param FileType The file type need to choose. @param ChooseHandler Function pointer to the extra task need to do after choose one file. @param File Return the device path for the last time chosed file. @retval EFI_SUCESS Choose the file success. @retval Other errors Choose the file failed. **/ typedef EFI_STATUS (EFIAPI *CHOOSE_FILE) ( IN EFI_DEVICE_PATH_PROTOCOL *RootDirectory, IN CHAR16 *FileType, OPTIONAL IN CHOOSE_HANDLER ChooseHandler, OPTIONAL OUT EFI_DEVICE_PATH_PROTOCOL **File OPTIONAL ); struct _EFI_FILE_EXPLORER_PROTOCOL { CHOOSE_FILE ChooseFile; }; extern EFI_GUID gEfiFileExplorerProtocolGuid; #endif