//@STATE=作成中
//@DESCRIPTION ---------------------------------------------------------------
// Windowメイン
// これだけははずせない．．．。
//	履歴:
// $Log: WinMain.cpp,v $
// Revision 1.7  2001/10/28 21:45:06  fujiwara
// DLLに分割
//
// Revision 1.6  2001/07/09 20:30:10  fujiwara
// 例外処理の組み込み
//
// Revision 1.5  2001/07/01 21:30:34  fujiwara
// メモリリークチェック見直し
//
// Revision 1.4  2001/07/01 01:03:45  fujiwara
// const の見直し
// 配置エディタは途中経過
//
// Revision 1.3  2001/05/13 20:04:24  fujiwara
// メモリーリークが発生したので取り除く。
// 自弾のサウンドテスト
//
// Revision 1.2  2001/05/12 00:48:35  fujiwara
// ＣＶＳを導入し、ログ表示を追加
//
//	2001/01/29 メモリーリーク検出用ライブラリの追加 
//@DESCRIPTION_END -----------------------------------------------------------
//@AUTHOR=S.F.
// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
///////////////////////////////////////////////////////////////////////////////
#pragma warning( disable : 4786 )	//STLの警告外し
#define WINMAIN
#define WIN32_LEAN_AND_MEAN
#include "sfdebug.h"


#include "windows.h"
#include "windowsx.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

// WinMain --------------------------------------------------------------------
typedef int (*WINMAINPROC)(HINSTANCE,HINSTANCE,LPSTR,int);

int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance,
					LPSTR lpszCmdParam, int nCmdShow)
{
#ifdef _DEBUG
#ifndef _BORLAND
	_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
#endif
#endif
	HINSTANCE hGame = LoadLibrary("s2001.dll");	
	if(hGame){
		WINMAINPROC proc = (WINMAINPROC)GetProcAddress(hGame,"S2001Main");
		if(proc){
			return (*proc)(hThisInstance,hPrevInstance,lpszCmdParam,nCmdShow);
		} else {
			return -1;
/*			char * pm[1024];
				FormatMessage( 
    FORMAT_MESSAGE_FROM_SYSTEM | 
    FORMAT_MESSAGE_IGNORE_INSERTS,
    NULL,
    GetLastError(),

    MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // デフォルト言語

    (LPTSTR) &pm,

    1024,

    NULL 
	);
*/
		}
	} else {
		return -1;
	}
};// WinMain

