// ★コメント未記入
// ShitarabianPlugInDll.h: CShitarabianPlugInDll クラスのインターフェイス
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SHITARABIANPLUGINDLL_H__2F6FB024_2143_45DD_A1AB_9D5D15DB975C__INCLUDED_)
#define AFX_SHITARABIANPLUGINDLL_H__2F6FB024_2143_45DD_A1AB_9D5D15DB975C__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "ShitarabianPlugIn.h"
#include "dllInterface.h"

class CDocumentIF;

class CShitarabianPlugInDll : public CShitarabianPlugIn  
{
public:
	CShitarabianPlugInDll();
	virtual ~CShitarabianPlugInDll();

	virtual void		OnInitialize( CDocumentIF*	pDocIF );
	virtual void		OnDestroy( CDocumentIF*	pDocIF );
	virtual void		OnLoad( CDocumentIF*	pDocIF );
	virtual void		OnSave( CDocumentIF*	pDocIF );


	virtual const char*		GetPlugInName();

	// 背景を表示するときのフック
	virtual void		OnDrawWall(
		CDocumentIF*	pDocIF,
		CDC*			pDstDC,
		int				iLeft,
		int				iTop,
		int				iWidth,
		int				iHeight
	);

	// ドキュメントの内容が編集されたときのフック
	virtual void		OnEdit(		CDocumentIF*	pDocIF);

	// 設定ダイアログ
	virtual void		OnSetting(		CDocumentIF*	pDocIF);

	virtual void OnKeyDown(
		CDocumentIF*	pDocIF,
		UCHAR*			punKey,
		BOOL*			pbShift,
		BOOL*			pbCtrl,
		BOOL*			pbAlt
	);

	virtual void OnChar(
		CDocumentIF*	pDocIF,
		CString*		pstrChar,
		BOOL*			pbShift,
		BOOL*			pbCtrl,
		BOOL*			pbAlt
	);

	virtual void OnToolButton(
		CDocumentIF*	pDocIF,
		int				idxButton
	);
	virtual void OnToolButtonUI(
		CDocumentIF*	pDocIF,
		int				idxButton,
		CCmdUI*			pCmdUI
	);

	BOOL	Load(
		CString&	strFilePath
	);

	virtual HINSTANCE	GetInstanceHandle(){ return( m_hDll ); };

protected:
	HINSTANCE			m_hDll;

	ONINITIALIZE		m_OnInitialize;
	ONDESTROY			m_OnDestroy;
	ONLOAD				m_OnLoad;
	ONSAVE				m_OnSave;
	GETPLUGINNAME		m_GetPlugInName;
	ONDRAWWALL			m_OnDrawWall;
	ONEDIT				m_OnEdit;
	ONSETTING			m_OnSetting;
	ONTOOLBUTTON		m_OnToolButton;
	ONTOOLBUTTONUI		m_OnToolButtonUI;
	ONKEYDOWN			m_OnKeyDown;
	ONCHAR				m_OnChar;

	BOOL				Free();

};

#endif // !defined(AFX_SHITARABIANPLUGINDLL_H__2F6FB024_2143_45DD_A1AB_9D5D15DB975C__INCLUDED_)
