//
// Copyright (c) 2002
// Ronald Kevin Burton
//
// Z poniższym kodem nie jest związana żadna gwarancja poprawności działania.
// Program został dołączony do książki ".NET CLR. Księga eksperta" w celu
// ilustracji koncepcji i zasad przedstawionych w tej książce. Program może być 
// używany na własne ryzyko.
//
// Przyznaje się prawo do użycia lub kopiowania tego oprogramowania do dowolnego celu
// bez konieczności ponoszenia żadnych opłat pod warunkiem, że powyższe uwagi zostaną 
// zachowane we wszystkich kopiach. Przyznaje się także prawo do modyfikacji kodu
// i dystrybucji zmodyfikowanego kodu pod warunkiem zachowania powyższych uwag
// oraz dołączenia informacji mówiącej o modyfikacji kodu.
//
// 
#pragma once
#include "afxcmn.h"

// Okno dialogowe CSectionPage

class CSectionPage : public CPropertyPage
{
	DECLARE_DYNAMIC(CSectionPage)

public:
	CSectionPage();
	virtual ~CSectionPage();

// Dane okna dialogowego
	enum { IDD = IDD_SECTIONPAGE };

protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // Obsługa DDX/DDV

	DECLARE_MESSAGE_MAP()
public:
	virtual BOOL OnInitDialog();
private:
   CTreeCtrl m_ctrlSectionTableTree;
   CFont sectionFont;
   void DumpSectionTable(PIMAGE_SECTION_HEADER section,
                         unsigned cSections,
                         BOOL IsEXE,
						 PIMAGE_DOS_HEADER dosHeader,
						 PIMAGE_SECTION_HEADER pRawSectionData);
	void DumpRawSectionData(PIMAGE_SECTION_HEADER section,
		                    PVOID base,
							HTREEITEM treeDataItem);
	void HexDump(PBYTE ptr, DWORD length, HTREEITEM treeDataItem);
};
