// 04WebServer.h : PROJECT_NAME アプリケーションのメイン ヘッダー ファイルです。
//

#pragma once

#ifndef __AFXWIN_H__
	#error include 'stdafx.h' before including this file for PCH
#endif

#include "resource.h"		// メイン シンボル
#include "04WebServer_i.h"
#include "Server.h"
#include "systemservice.h"


// CMy04WebServerApp:
// このクラスの実装については、04WebServer.cpp を参照してください。
//

class CMy04WebServerApp : public CWinApp
{
protected:
	CCriticalSection	m_scopeLock;

public:
	CMy04WebServerApp();

// オーバーライド
public:
	virtual BOOL InitInstance();

// 実装
protected:
	int	m_comRegisterd;
	int	m_serviceMode;
	CString	m_serverStatus;
	HANDLE	m_mutex;
	int m_exitCode;

	int CheckOther();
	int DoRegister(CString command);
	CString GetCommandOption();

public:
	CServer			*m_server;
	CSystemService	m_serviceContext;

	int StartServer();
	int StopServer();
	CString GetServerErrorInfo();
	int ServerRunning();
	int GetConnectCount();
	int IsService();

	CString GetServerInfoXML();
	CString GetServerSettingXML();
	CString GetServerContextXML();

	CString GetServerInfoString();
	CString GetServerSettingString();
	CString GetServerContextString();

	CString GetAppPath(int directoryPath=TRUE);
	void SetServerStatus(CString stat);

	void SetServerSecurityDescripter();
	int RegisteCOMClassObject();
	void RemoveCOMClassObject();
	void RegisterApp(int reg);
	void RegisterService(int reg);

	void WriteDebugLog(LPCTSTR lpszFormat, ...);
	void KillAllController();

	DECLARE_MESSAGE_MAP()
	virtual int ExitInstance();
};

extern CMy04WebServerApp theApp;
