16#ifndef LIEF_PE_RESOURCE_LANG_CODE_ITEM_H
17#define LIEF_PE_RESOURCE_LANG_CODE_ITEM_H
19#include <unordered_map>
21#include "LIEF/visibility.h"
23#include "LIEF/Object.hpp"
25#include "LIEF/PE/enums.hpp"
30class ResourcesManager;
31struct ResourcesParser;
40 friend struct ResourcesParser;
43 using items_t = std::unordered_map<std::u16string, std::u16string>;
66 const std::u16string&
key()
const {
80 const items_t& items()
const {
88 void type(uint16_t type) {
92 void key(
const std::u16string& key) {
95 void key(
const std::string& key);
97 void code_page(CODE_PAGES code_page);
98 void lang(uint32_t lang);
99 void sublang(uint32_t lang);
101 void items(
const items_t& items);
103 void accept(Visitor& visitor)
const override;
106 LIEF_API
friend std::ostream& operator<<(std::ostream& os,
const LangCodeItem& item);
Class which represents the childs of the ResourceStringFileInfo.
Definition LangCodeItem.hpp:37
CODE_PAGES code_page() const
Code page for which LangCodeItem::items are defined
const std::u16string & key() const
A 8-digit hexadecimal number stored as an Unicode string.
Definition LangCodeItem.hpp:66
uint32_t sublang() const
Sublang for which LangCodeItem::items are defined.
uint16_t type() const
The type of data in the version resource.
Definition LangCodeItem.hpp:57
uint32_t lang() const
Lang for which LangCodeItem::items are defined.
The Resource Manager provides an enhanced API to manipulate the resource tree.
Definition ResourcesManager.hpp:38
CODE_PAGES
Code page from https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers.
Definition PE/enums.hpp:333
LIEF namespace.
Definition Abstract/Binary.hpp:32