LIEF: Library to Instrument Executable Formats Version 0.17.0
|
Loading...
Searching...
No Matches
Go to the documentation of this file.
16#ifndef LIEF_PE_RESOURCE_DIALOG_EXTENDED_H
17#define LIEF_PE_RESOURCE_DIALOG_EXTENDED_H
34 class LIEF_API Item :
public ResourceDialog::Item {
41 Item(
const Item&) =
default;
47 static result<Item>
parse(BinaryStream& stream);
66 uint32_t help_id_ = 0;
68 struct font_t { uint16_t point_size = 0;
80 uint8_t charset =
false;
83 std::u16string typeface;
88 return point_size != 0 || weight != 0;
91 operator bool()
const {
103 using items_t = std::vector<Item>;
104 using it_items = ref_iterator<items_t&>;
105 using it_const_items = const_ref_iterator<const items_t&>;
108 ResourceDialog(ResourceDialog::TYPE::EXTENDED)
112 ResourceDialogExtended&
operator=(
const ResourceDialogExtended&) =
default;
115 ResourceDialogExtended&
operator=(ResourceDialogExtended&&) =
default;
117 static std::unique_ptr<ResourceDialogExtended>
create(BinaryStream& stream);
119 std::unique_ptr<ResourceDialog>
clone()
const override {
120 return std::unique_ptr<ResourceDialogExtended>(
new ResourceDialogExtended(*
this));
123 static bool classof(
const ResourceDialog* dialog) {
124 return dialog->
type() == ResourceDialog::TYPE::EXTENDED;
127 void accept(Visitor& visitor)
const override;
164 items_.push_back(item);
167 ResourceDialogExtended&
version(uint16_t value) {
177 ResourceDialogExtended&
help_id(uint32_t value) {
181 const font_t&
font()
const {
187 ResourceDialogExtended&
font(uint16_t point_size, uint16_t weight,
bool italic,
188 uint8_t charset, std::u16string typeface)
190 font_.point_size = point_size;
191 font_.weight = weight;
192 font_.italic = italic;
193 font_.charset = charset;
194 font_.typeface = std::move(typeface);
198 ResourceDialogExtended&
font(font_t f) {
199 font_ = std::move(f);
204 uint16_t version_ = 0;
205 uint16_t signature_ = 0;
206 uint32_t help_id_ = 0;
Class that is used to a read stream of data from different sources.
Definition BinaryStream.hpp:33
Item & operator=(const Item &)=default
static result< Item > parse(BinaryStream &stream)
Item(const Item &)=default
std::string to_string() const override
uint32_t help_id() const
The help context identifier for the control. When the system sends a WM_HELP message,...
Definition ResourceDialogExtended.hpp:54
Item & operator=(Item &&)=default
Item & help_id(uint32_t value)
Definition ResourceDialogExtended.hpp:58
Implementation for the new extended dialogbox format.
Definition ResourceDialogExtended.hpp:32
ResourceDialogExtended(ResourceDialogExtended &&)=default
uint16_t version() const
The version number of the extended dialog box template. This member must be set to 1.
Definition ResourceDialogExtended.hpp:135
void add_item(const Item &item)
Add a new control item to the dialog.
Definition ResourceDialogExtended.hpp:163
ResourceDialogExtended & font(font_t f)
Definition ResourceDialogExtended.hpp:198
uint16_t signature() const
Indicates whether a template is an extended dialog box template. If signature is 0xFFFF,...
Definition ResourceDialogExtended.hpp:142
ResourceDialogExtended & help_id(uint32_t value)
Definition ResourceDialogExtended.hpp:177
static std::unique_ptr< ResourceDialogExtended > create(BinaryStream &stream)
ResourceDialogExtended & signature(uint16_t value)
Definition ResourceDialogExtended.hpp:172
~ResourceDialogExtended() override=default
ResourceDialogExtended & font(uint16_t point_size, uint16_t weight, bool italic, uint8_t charset, std::u16string typeface)
Definition ResourceDialogExtended.hpp:187
const font_t & font() const
Additional font information.
Definition ResourceDialogExtended.hpp:183
ResourceDialogExtended & version(uint16_t value)
Definition ResourceDialogExtended.hpp:167
std::unique_ptr< ResourceDialog > clone() const override
Definition ResourceDialogExtended.hpp:119
void accept(Visitor &visitor) const override
ResourceDialogExtended(const ResourceDialogExtended &)=default
static bool classof(const ResourceDialog *dialog)
Definition ResourceDialogExtended.hpp:123
ResourceDialogExtended & operator=(const ResourceDialogExtended &)=default
it_const_items items() const
Definition ResourceDialogExtended.hpp:158
std::string to_string() const override
it_items items()
Iterator over the control items of this dialog box.
Definition ResourceDialogExtended.hpp:154
uint32_t help_id() const
The help context identifier for the dialog box window. When the system sends a WM_HELP message,...
Definition ResourceDialogExtended.hpp:149
ResourceDialogExtended()
Definition ResourceDialogExtended.hpp:107
ResourceDialogExtended & operator=(ResourceDialogExtended &&)=default
This class is the base class for either a regular (legacy) Dialog or an extended Dialog....
Definition ResourceDialog.hpp:41
TYPE type() const
Definition ResourceDialog.hpp:333
Namespace related to the LIEF's PE module.
Definition Abstract/Header.hpp:32
LIEF namespace.
Definition Abstract/Binary.hpp:36
bool is_defined() const
Definition ResourceDialogExtended.hpp:87
std::string to_string() const
friend std::ostream & operator<<(std::ostream &os, const font_t &font)
Definition ResourceDialogExtended.hpp:97
#define LIEF_API
Definition visibility.h:41