#pragma once

#include <atlcoll.h>

class CFontInstaller
{
	HANDLE (WINAPI *pAddFontMemResourceEx)(PVOID,DWORD,PVOID,DWORD*);
	BOOL (WINAPI *pRemoveFontMemResourceEx)(HANDLE);
	int (WINAPI *pAddFontResourceEx)(LPCTSTR,DWORD,PVOID);
	BOOL (WINAPI *pRemoveFontResourceEx)(LPCTSTR,DWORD,PVOID);
	BOOL (WINAPI *pMoveFileEx)(LPCTSTR, LPCTSTR,DWORD);

	CAtlList<HANDLE> m_fonts;
	CAtlList<CString> m_files;
	bool InstallFontMemory(const void* pData, UINT len);
	bool InstallFontFile(const void* pData, UINT len);

public:
	CFontInstaller();
	virtual ~CFontInstaller();

	bool InstallFont(const CAtlArray<BYTE>& data);
	bool InstallFont(const void* pData, UINT len);	
	void UninstallFonts();
};