Skip to content

Image Resource Directory

AFP edited this page Mar 31, 2023 · 1 revision

How to Access Image Resource Directory

after initialize the PE class you can get access the Image Resource Directory structure by calling GetImageResourceDirectory() method. by calling this function, you get the object of ImageResourceDirectory class, so you can retrieve the fields, change or modify them.

#include <iostream>
#include <POEX.h> // include POEX header

int main()
{
    auto pe = POEX::PE(L"1.exe");

    // Access to Image Resource Directory
    auto resourceDirectory = pe.GetImageResourceDirectory();

    // other stuff in here

    return 0;
}

With calling GetImageResourceDirectory method, you can access the structure and method in bellow:

/// <summary>
/// Array with the different directory entries.
/// </summary>
/// <returns>List of directory entries</returns>
auto ImageResourceDirectoryEntries() -> std::vector<std::shared_ptr<ImageResourceDirectoryEntry>>;

/// <summary>
/// Get Characteristics
/// </summary>
/// <returns></returns>
auto Characteristics() const -> unsigned int;

/// <summary>
/// Set Characteristics
/// </summary>
/// <param name="characteristics">Characteristics value</param>
/// <returns></returns>
auto Characteristics(const unsigned int& characteristics) -> void;

/// <summary>
/// Get TimeDateStamp
/// </summary>
/// <returns></returns>
auto TimeDateStamp() const -> unsigned int;

/// <summary>
/// Set TimeDateStamp
/// </summary>
/// <param name="time">TimeDateStamp value</param>
/// <returns></returns>
auto TimeDateStamp(const unsigned int& time) -> void;

/// <summary>
/// Get MajorVersion
/// </summary>
/// <returns></returns>
auto MajorVersion() const -> unsigned short;

/// <summary>
/// Set MajorVersion
/// </summary>
/// <param name="majorVersion">MajorVersion value</param>
/// <returns></returns>
auto MajorVersion(const unsigned short& majorVersion) -> void;

/// <summary>
/// Get MinorVersion
/// </summary>
/// <returns></returns>
auto MinorVersion() const -> unsigned short;

/// <summary>
/// Set MinorVersion
/// </summary>
/// <param name="minorVersion">MinorVersion value</param>
/// <returns></returns>
auto MinorVersion(const unsigned short& minorVersion) -> void;

/// <summary>
/// Get NumberOfNameEntries
/// </summary>
/// <returns></returns>
auto NumberOfNameEntries() const -> unsigned short;

/// <summary>
/// Set NumberOfNameEntries
/// </summary>
/// <param name="nameEntires">NumberOfNameEntries value</param>
/// <returns></returns>
auto NumberOfNameEntries(const unsigned short& nameEntires) -> void;

/// <summary>
/// Get NumberOfIdEntries
/// </summary>
/// <returns></returns>
auto NumberOfIdEntries() const -> unsigned short;

/// <summary>
/// Set NumberOfIdEntries
/// </summary>
/// <param name="idEntires">NumberOfIdEntries value</param>
/// <returns></returns>
auto NumberOfIdEntries(const unsigned short& idEntires) -> void;