#include <Windows.h>
#include <tchar.h>

#include "udpl_dll.h"

int APIENTRY _tWinMain(HINSTANCE hInstance,
	HINSTANCE hPrevInstance,
	LPTSTR    lpCmdLine,
	int       nCmdShow)
{
	// パス取得
	TCHAR fullPath[MAX_PATH] = { _T('\0') };

	GetModuleFileName(NULL, fullPath, _countof(fullPath));	// 実行ファイルパス取得

	TCHAR* sla = _tcsrchr(fullPath, _T('\\'));
	if (!sla) {
		exit(0);
	}
	*(sla + 1) = _T('\0');
	_tcscat_s(fullPath, _countof(fullPath), _T("udpl.dll"));	// ライブラリフルパス


	HMODULE hdl = nullptr;

	hdl = ::LoadLibrary(fullPath);
	if (hdl == nullptr) {
		MessageBox(NULL, _T("DLL load error"), _T("DLL loading error"), MB_OK);
		exit(-1);
	}

	UDPLFUNC getManager = (UDPLFUNC)GetProcAddress(hdl, "getManager");
	if (getManager == nullptr) {
		MessageBox(NULL, _T("getManager 取得ミス"), _T("error"), MB_OK);
		FreeLibrary(hdl);
		exit(-1);
	}

	UdplManager* manager = getManager();

	manager->initialize();

	MessageBox(NULL, _T("タスクトレイにアイコンを表示しています。OK で終了します"), _T("Message"), MB_OK);

	manager->suicide();
	FreeLibrary(hdl);

	exit(0);
}
