#pragma once

#include "BkResizableDialogST.h"
#include "ResourceServerST.h"
#include "XPStyleButtonST.h"
#include "BlendedButtonST.h"
#include "BlendedStaticST.h"
#include "ThemeHelperST.h"
#include "RegistryST.h"
#include "FullScreenST.h"
#include "Icons.h"
#include "Hyperlink.h"

#ifdef	CHECK_ICONSDLL_VERSION
#include "verinfo.h"
#endif

class CGenericBkMFCDlg : public CBkResizableDialogST
{
public:
	CGenericBkMFCDlg(CWnd* pParent = nullptr);

#ifdef AFX_DESIGN_TIME
	enum { IDD = IDD_GENERICBKMFC_DIALOG };
#endif

	protected:
	virtual void DoDataExchange(CDataExchange* pDX);


protected:
	HICON m_hIcon;

	// Generated message map functions
	virtual BOOL OnInitDialog();
	virtual void OnCancel();
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();

private:
	void OnPostEraseBkgnd(CDC* pDC);
	DWORD LoadIconsDLL(CResourceServerST* pIconsDLL, LPCTSTR lpszReqVersion);
	BOOL NotifyIconsNotFound(LPCTSTR lpszReqVersion);
	BOOL NotifyIconsVersionMismatch(LPCTSTR lpszReqVersion);
	afx_msg void OnBnClickedBtnfullscreen();

	CThemeHelperST		m_Theme;
	CXPStyleButtonST	m_btnExit;
	CXPStyleButtonST	m_btnFullScreen;

	CResourceServerST	m_IconsDLL;
	CRegistryST			m_Registry;
	CFullScreenST		m_FullScreen;

	CHyperLink			m_EMailLink;
	CHyperLink			m_HomePageLink;

	DECLARE_MESSAGE_MAP()
};
