// Hook32.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"
#include "Hook32.h"
#pragma data_seg(".Hook32Data")
HHOOK hHook = NULL;
HINSTANCE hMod = NULL;
HWND g_hWnd=NULL;
#pragma data_seg()
#pragma comment(linker, "/section:.Hook32Data, rws")
BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch(ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
hMod = (HINSTANCE)hModule;
break;
case DLL_PROCESS_DETACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
}
return TRUE;
}
LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if(VK_F2==wParam)
{
ShowWindow(g_hWnd,SW_SHOWMAXIMIZED);
}
return CallNextHookEx(hHook, nCode, wParam, lParam);
}
BOOL InstHook(HWND hwnd)
{
g_hWnd=hwnd;
hHook = SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)HookProc, GetModuleHandle("Hook32"), NULL);
if(hHook != NULL)
{
return true;
}
else
{
return false;
}
}
BOOL UnInstHook()
{
BOOL unhooked = UnhookWindowsHookEx(hHook);
return unhooked;
}
; Hook32.def : Declares the module parameters for the DLL.
LIBRARY "Hook32"
DESCRIPTION 'Hook32 Windows Dynamic Link Library'
EXPORTS
; Explicit exports can go here
InstHook @1
UnInstHook @2
HookProc @3
SECTIONS
.Hook32Data READ WRITE SHARED
// Hook32.h
LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam);
BOOL InstHook();
BOOL UnInstHook();