#define HAK_DLL __declspec(dllexport)

#include "hak.h"
HMODULE hDll = NULL;
HHOOK hak = NULL;

HAK_DLL BOOL UstawHak()
{
	hak = SetWindowsHookEx(WH_KEYBOARD, KeyboardProc, hDll, 0);  
	return hak != NULL;
}

HAK_DLL BOOL UsunHak()
{
	return UnhookWindowsHookEx(hak);
}

LRESULT CALLBACK  KeyboardProc(int code, WPARAM wParam,LPARAM lParam)
{
	if (code < 0) CallNextHookEx(0, code, wParam, lParam);

	if(code == 0) 
	{
		if (wParam == VK_F4 && (lParam & (1 << 29)) && !(lParam & (1 << 31)))
		{
			MessageBox(NULL, TEXT("Tak łatwo się mnie nie pozbędziesz"), TEXT(""), MB_OK);
			return -1;
		}
	}

	return CallNextHookEx(0, code, wParam, lParam);
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD  ul_reason_for_call,LPVOID lpReserved)
{
	hDll = hModule;
	switch (ul_reason_for_call)
	{
	case DLL_PROCESS_ATTACH:
	case DLL_THREAD_ATTACH:
	case DLL_THREAD_DETACH:
	case DLL_PROCESS_DETACH:
		break;
	}
	return TRUE;
}

