Projects

Find all our projects in development below.
All source code is GNU General Public License (GPL)

MSN/Windows Messenger Popup Effects

Browsing cpp/main.cpp (1.22 KB)



#include <windows.h>


LRESULT CALLBACK CBTProc (int nCode, WPARAM wParam, LPARAM lParam); 
#pragma data_seg(".shared")
  HHOOK g_hHook=NULL;
  HWND g_hWnd=NULL;
#pragma data_seg()
#pragma comment(linker, "/section:.shared,RWS") 

HINSTANCE g_hInstance=NULL; 

long (__stdcall SetHook(HWND hWnd))
{    
	if (g_hHook == NULL)
	{

		g_hWnd = hWnd;    
		g_hHook = SetWindowsHookEx(WH_CBT, (HOOKPROC)CBTProc, g_hInstance, NULL);
		if (!g_hHook)
		{
			return -1;
		}
		return 1;
	}
	return -1;
}

long (__stdcall RemoveHook())
{    
	long retval;
	retval = UnhookWindowsHookEx(g_hHook);
	g_hHook = NULL;
	return retval;
}

LRESULT (__stdcall CALLBACK CBTProc(int nCode, WPARAM wParam, LPARAM lParam))
{    
	if (nCode == HCBT_CREATEWND)
	{
		SendMessage(g_hWnd, WM_USER+12345, wParam, lParam);
		return CallNextHookEx(g_hHook, nCode, wParam, lParam);
	} else {
		return CallNextHookEx(g_hHook, nCode, wParam, lParam);
	}
}

BOOL WINAPI DllMain(HINSTANCE hInst, ULONG uReason, LPVOID)
{
  	if(uReason == DLL_THREAD_DETACH || uReason == DLL_PROCESS_DETACH)
	{
		RemoveHook();
		return TRUE;
	}
	g_hInstance = hInst;        
	//DisableThreadLibraryCalls(hInst);    
    return TRUE;
}

 

Download cpp/main.cpp

Back to file list


Back to project page