//MFC を使う場合は <windows.h> をインクルードする前に MFC 関係のヘッダが必要
//(DllMain が二重定義されてるとかで怒られる)
//↑の為 vcm/win/xgm を別プロジェクトにしないで1つにまとめることが出来なかったが
//いつの間にか問題なくなった

#include "stdafx.h"

//kpi.cpp/kpi_decoder.cpp の内容を変更せずに使う為、ここで cpp をインクルードしてしまう
//良く分からないがその必要がなくなった
//#include "kpi.cpp"
//#include "kpi_decoder.cpp"

//nsf_setup.cpp 内で定義されるので DllMain は不要
//g_hKpi は nsf_setup.cpp 内で値をセットする
#if 0 

#ifdef _DEBUG
#define LEAK_CHECK //メモリリーク検出（しない場合はコメントアウト）
#endif
#ifdef LEAK_CHECK
#include <crtdbg.h>
#endif

HINSTANCE g_hKpi = NULL; //nsf_setup.cpp 内で値をセットする
BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
					 )
{
	switch (ul_reason_for_call)
	{
	case DLL_PROCESS_ATTACH:{
        g_hKpi = hModule;
#ifdef LEAK_CHECK
        //メモリリーク検出
        int tmpDbgFlag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG);
        //tmpDbgFlag |= _CRTDBG_DELAY_FREE_MEM_DF;
        tmpDbgFlag |= _CRTDBG_LEAK_CHECK_DF;
        //tmpDbgFlag |= _CRTDBG_CHECK_ALWAYS_DF;
        _CrtSetDbgFlag(tmpDbgFlag);
#endif
        DisableThreadLibraryCalls(hModule);
        break;
    }
	case DLL_THREAD_ATTACH:
	case DLL_THREAD_DETACH:
	case DLL_PROCESS_DETACH:
		break;
	}
	return TRUE;
}
#endif
