#include "PELibrary.hpp" using namespace pepp; // Explicit templates. template class OptionalHeader<32>; template class OptionalHeader<64>; template inline OptionalHeader::OptionalHeader() { } template void OptionalHeader::setMagic(PEMagic magic) { m_base->Magic = static_cast(magic); } template PEMagic OptionalHeader::getMagic() const { return static_cast(m_base->Magic); } template void OptionalHeader::setImageBase(detail::Image_t::Address_t address) { m_base->ImageBase = address; } template detail::Image_t::Address_t OptionalHeader::getImageBase() const { return m_base->ImageBase; } template void OptionalHeader::setSizeOfImage(std::uint32_t size) { m_base->SizeOfImage = size; } template std::uint32_t OptionalHeader::getSizeOfImage() const { return m_base->SizeOfImage; } template void OptionalHeader::setSizeOfCode(std::uint32_t dwSize) { m_base->SizeOfCode = dwSize; } template std::uint32_t OptionalHeader::getSizeOfCode() const { return m_base->SizeOfCode; } template void OptionalHeader::setSizeOfInitializedData(std::uint32_t dwSize) { m_base->SizeOfInitializedData = dwSize; } template std::uint32_t OptionalHeader::getSizeOfInitializedData() const { return m_base->SizeOfInitializedData; } template void pepp::OptionalHeader::setSizeOfHeaders(std::uint32_t dwSize) { m_base->SizeOfHeaders = dwSize; } template std::uint32_t pepp::OptionalHeader::getSizeOfHeaders() const { return m_base->SizeOfHeaders; } template void OptionalHeader::setSizeOfUninitializedData(std::uint32_t dwSize) { m_base->SizeOfUninitializedData = dwSize; } template std::uint32_t OptionalHeader::getSizeOfUninitializedData() const { return m_base->SizeOfUninitializedData; } template void OptionalHeader::setBaseOfCode(std::uint32_t dwBase) { m_base->BaseOfCode = dwBase; } template std::uint32_t OptionalHeader::getBaseOfCode() const { return m_base->BaseOfCode; } template void OptionalHeader::setAddressOfEntryPoint(std::uint32_t dwBase) { m_base->AddressOfEntryPoint = dwBase; } template std::uint32_t OptionalHeader::getAddressOfEntryPoint() const { return m_base->AddressOfEntryPoint; } template std::uint32_t OptionalHeader::getFileAlignment() const { return m_base->FileAlignment; } template std::uint32_t OptionalHeader::getSectionAlignment() const { return m_base->SectionAlignment; } template bool OptionalHeader::hasRelocations() const { return m_base->DataDirectory[DIRECTORY_ENTRY_BASERELOC].Size > 0; }