/*
 Copyright (C) 2010 Kuri-Applications

 AppClass.h - declarations of CMyApplication
 */

#pragma once

class CMyWindow;

EXTERN_C int APIENTRY MyWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
	LPTSTR lpCmdLine, int nCmdShow);
EXTERN_C BOOL APIENTRY MyDllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved);

class CMyApplication
{
public:
	CMyApplication();
	virtual ~CMyApplication();

	HINSTANCE m_hInstance;
	LPTSTR m_lpCmdLine;
	int m_nCmdShow;

	CMyWindow* m_pMainWnd;

	MSG m_msg;

public:
	virtual bool InitInstance() = 0;
	virtual int ExitInstance();
	virtual int Run();
	bool PumpMessage();
	virtual bool OnIdle(long lCount);
};

CMyApplication* WINAPI GetCurApp();
