16#ifndef LIEF_PE_RESOURCE_LANG_CODE_ITEM_H
17#define LIEF_PE_RESOURCE_LANG_CODE_ITEM_H
21#include <unordered_map>
23#include "LIEF/visibility.h"
25#include "LIEF/Object.hpp"
27#include "LIEF/PE/enums.hpp"
32class ResourcesManager;
33struct ResourcesParser;
42 friend struct ResourcesParser;
45 using items_t = std::unordered_map<std::u16string, std::u16string>;
63 const std::u16string&
key()
const;
75 const items_t& items()
const;
78 void type(uint16_t type);
79 void key(
const std::u16string& key);
80 void key(
const std::string& key);
83 void lang(uint32_t lang);
84 void sublang(uint32_t lang);
86 void items(
const items_t& items);
88 void accept(
Visitor& visitor)
const override;
91 LIEF_API
friend std::ostream& operator<<(std::ostream& os,
const LangCodeItem& item);
Class which represents the childs of the ResourceStringFileInfo.
Definition LangCodeItem.hpp:39
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.
uint32_t sublang() const
Sublang for which LangCodeItem::items are defined.
uint16_t type() const
The type of data in the version resource.
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
Definition Visitor.hpp:219
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