/** @file\r
The file provides services to manipulate string data.\r
\r
- Copyright (c) 2006 - 2007, Intel Corporation\r
+ Copyright (c) 2006 - 2008, Intel Corporation\r
All rights reserved. This program and the accompanying materials \r
are licensed and made available under the terms and conditions of the BSD License \r
which accompanies this distribution. The full text of the license may be found at \r
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
\r
- Module Name: HiiString.h\r
-\r
**/\r
\r
#ifndef __HII_STRING_H__\r
#define EFI_HII_STRING_PROTOCOL_GUID \\r
{ 0xfd96974, 0x23aa, 0x4cdc, { 0xb9, 0xcb, 0x98, 0xd1, 0x77, 0x50, 0x32, 0x2a } }\r
\r
+#include <Protocol/HiiDatabase.h>\r
+#include <Protocol/HiiFont.h>\r
+\r
\r
typedef struct _EFI_HII_STRING_PROTOCOL EFI_HII_STRING_PROTOCOL;\r
\r
EFI_STATUS\r
(EFIAPI *EFI_HII_NEW_STRING) (\r
IN CONST EFI_HII_STRING_PROTOCOL *This,\r
- IN CONST EFI_HII_HANDLE PackageList,\r
- OUT EFI_STRING_ID *StringId\r
+ IN EFI_HII_HANDLE PackageList,\r
+ OUT EFI_STRING_ID *StringId,\r
IN CONST CHAR8 *Language,\r
+ IN CONST CHAR16 *LanguageName, OPTIONAL \r
IN CONST EFI_STRING String,\r
- IN CONST EFI_FONT_INFO *StringFontInfo OPTIONAL,\r
+ IN CONST EFI_FONT_INFO *StringFontInfo OPTIONAL\r
);\r
\r
\r
points to the length of the string, in\r
bytes.\r
\r
- @param StringFontInfo Points to the string's font\r
- information or NULL if the string font\r
- information is not desired.\r
+ @param StringFontInfo Points to a buffer that will be callee allocated and will \r
+ have the string's font information into this buffer. \r
+ The caller is responsible for freeing this buffer. \r
+ If the parameter is NULL a buffer will not be allocated \r
+ and the string font information will not be returned.\r
\r
@retval EFI_SUCCESS The string was returned successfully.\r
\r
@retval EFI_NOT_FOUND The string specified by StringId is not\r
- available.\r
+ available. The specified PackageList is not in the database.\r
\r
@retval EFI_INVALID_LANGUAGE The string specified by StringId\r
is available but not in the\r
(EFIAPI *EFI_HII_GET_STRING) (\r
IN CONST EFI_HII_STRING_PROTOCOL *This,\r
IN CONST CHAR8 *Language,\r
- IN CONST EFI_HII_HANDLE PackageList,\r
- IN CONST EFI_STRING_ID StringId,\r
+ IN EFI_HII_HANDLE PackageList,\r
+ IN EFI_STRING_ID StringId,\r
OUT EFI_STRING String,\r
- IN OUT UINTN StringSize,\r
- OUT EFI_FONT_INFO *StringFontInfo OPTIONAL\r
+ IN OUT UINTN *StringSize,\r
+ OUT EFI_FONT_INFO **StringFontInfo OPTIONAL\r
);\r
\r
/**\r
@retval EFI_SUCCESS The string was successfully updated.\r
\r
@retval EFI_NOT_FOUND The string specified by StringId is not\r
- in the database.\r
+ in the database. The specified PackageList is not in the database.\r
\r
@retval EFI_INVALID_PARAMETER The String or Language was NULL.\r
\r
EFI_STATUS\r
(EFIAPI *EFI_HII_SET_STRING) (\r
IN CONST EFI_HII_STRING_PROTOCOL *This,\r
- IN CONST EFI_HII_HANDLE PackageList,\r
- IN CONST EFI_STRING_ID StringId,\r
+ IN EFI_HII_HANDLE PackageList,\r
+ IN EFI_STRING_ID StringId,\r
IN CONST CHAR8 *Language,\r
- IN CONST EFI_STRING String,\r
+ IN EFI_STRING String,\r
IN CONST EFI_FONT_INFO *StringFontInfo OPTIONAL\r
);\r
\r
updated to contain the required\r
size.\r
\r
- @retval EFI_INVALID_PARAMETER Languages is NULL.\r
+ @retval EFI_INVALID_PARAMETER Languages or LanguagesSize is NULL.\r
+ @retval EFI_NOT_FOUND The specified PackageList is not in the database.\r
\r
\r
**/\r
typedef\r
EFI_STATUS\r
(EFIAPI *EFI_HII_GET_LANGUAGES) (\r
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,\r
- IN CONST EFI_HII_HANDLE PackageList,\r
+ IN CONST EFI_HII_STRING_PROTOCOL *This,\r
+ IN EFI_HII_HANDLE PackageList,\r
IN OUT CHAR8 *Languages,\r
- IN OUT UINTN LanguagesSize\r
+ IN OUT UINTN *LanguagesSize\r
);\r
\r
\r
\r
@retval EFI_INVALID_PARAMETER FirstLanguage is NULL or\r
SecondLanguage is NULL.\r
+ @retval EFI_NOT_FOUND The specified PackageList is not in the database.\r
\r
**/\r
typedef\r
EFI_STATUS\r
-(EFIAPI *EFI_GET_2ND_LANGUAGES) (\r
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,\r
- IN CONST EFI_HII_HANDLE PackageList,\r
- IN CONST CHAR8 *FirstLanguage;\r
+(EFIAPI *EFI_HII_GET_2ND_LANGUAGES) (\r
+ IN CONST EFI_HII_STRING_PROTOCOL *This,\r
+ IN EFI_HII_HANDLE PackageList,\r
+ IN CONST CHAR8 *FirstLanguage,\r
IN OUT CHAR8 *SecondLanguages,\r
- IN OUT UINTN SecondLanguagesSize\r
+ IN OUT UINTN *SecondLanguagesSize\r
);\r
\r
\r
\r
#endif\r
\r
+\r